@object-ui/components 13.1.0 → 13.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,64 @@
1
1
  # @object-ui/components
2
2
 
3
+ ## 13.2.0
4
+
5
+ ### Patch Changes
6
+
7
+ - 80901aa: Honor action `visible` (and `enabled`) predicates in three more action renderers.
8
+
9
+ Following the data-table row-action fix, three sibling renderers still rendered schema-defined actions without evaluating their `visible` CEL predicate:
10
+
11
+ - **`action:group` dropdown mode** (`@object-ui/components`) — dropdown items ignored `visible`/`enabled`, while the group's inline mode already honored them.
12
+ - **Related-list `list_toolbar` header actions** (`@object-ui/plugin-detail`) — e.g. an organization's "Invite User" button ignored `visible`, even though the sibling row actions (fed by the same `deriveActions` bridge) already honored it via the data-table's `DataTableRowActionItem`.
13
+ - **Grid bulk-action bar** (`@object-ui/plugin-grid`) — `bulkActionDefs.visible` was ignored entirely; the button is now hidden when the predicate is false (the `BulkActionDef.visible` doc comment is corrected from "disables" to "hides" to match).
14
+
15
+ Each now evaluates `visible` (and, where applicable, `enabled`) via a hook-safe per-item component that mirrors `RowActionMenuItem` / `DataTableRowActionItem`, resolving `features`/`user` from the ambient `ExpressionProvider` scope. Rendering-layer only — no action definitions changed.
16
+
17
+ - e492b9d: Permission sets — pure separation of **design** (Studio) and **assignment**
18
+ (Setup), per ADR-0056 / epic #2398. A `sys_permission_set` used to render its six
19
+ authorization facets in Setup as raw `[Object]` / JSON textareas, and only
20
+ objects+fields were editable in Studio; this reworks both surfaces.
21
+
22
+ **Setup (assign + read-only):**
23
+ - The six facets (`object_permissions`, `field_permissions`, `system_permissions`,
24
+ `row_level_security`, `tab_permissions`, `admin_scope`) now render read-only on
25
+ the `sys_permission_set` record page as a compact summary (counts, or capability
26
+ chips) plus a **“Design in Studio →”** deep-link into the structured editor
27
+ (`/apps/:appName/metadata/permission/:setName`, env scope). No `[Object]`, no
28
+ JSON — in the record view, inline edit, and the create/edit form. Implemented as
29
+ a `permission-facet-link` field widget stamped onto the six fields via the single
30
+ `ObjectStackAdapter.getObjectSchema` choke point and honored by DetailSection +
31
+ the record form.
32
+ - User assignment (add/remove via `sys_user_permission_set`) is surfaced directly
33
+ on the Setup record page.
34
+
35
+ **Studio (design every facet):** the permission matrix editor gains structured
36
+ editors for the facets that were JSON-only —
37
+ - **System Capabilities**: a multi-select over the live `sys_capability` registry
38
+ (scope-grouped, labelled chips).
39
+ - **Row-Level Security**: per-policy rows (object · operation · enabled) with CEL
40
+ USING/CHECK.
41
+ - **Tab Visibility**: per-tab `visible | hidden | default_on | default_off`.
42
+ - **Delegated Admin Scope**: business-unit + subtree, manage-assignments /
43
+ -bindings / author-env-sets toggles, and an assignable-permission-sets allowlist.
44
+ Assignment was moved out of the editor (it is now a Setup act) — the editor is
45
+ purely a design surface.
46
+
47
+ Storage/types are unchanged; editors read/write the draft’s existing parsed
48
+ fields and tolerate legacy JSON strings on load. Note: env-scope metadata saves of
49
+ these facets do not yet project onto the queryable `sys_permission_set` data
50
+ record the Setup summary reads, so a fresh Studio edit isn’t reflected in Setup’s
51
+ read-only view until the projection refreshes — tracked as a framework follow-up
52
+ (enforcement reads the authoritative metadata).
53
+
54
+ - Updated dependencies [53c40c2]
55
+ - @object-ui/i18n@13.2.0
56
+ - @object-ui/react@13.2.0
57
+ - @object-ui/types@13.2.0
58
+ - @object-ui/core@13.2.0
59
+ - @object-ui/react-runtime@13.2.0
60
+ - @object-ui/sdui-parser@13.2.0
61
+
3
62
  ## 13.1.0
4
63
 
5
64
  ### Patch Changes
package/dist/index.js CHANGED
@@ -3582,7 +3582,8 @@ var gc = tn({
3582
3582
  ]), xc = /* @__PURE__ */ new Set([
3583
3583
  "lookup",
3584
3584
  "master_detail",
3585
- "tree"
3585
+ "tree",
3586
+ "capability-multiselect"
3586
3587
  ]);
3587
3588
  function Sc(e) {
3588
3589
  let { dataSource: t, inputType: n, options: r, field: i, schema: a, showActions: o, fieldContainerClass: s, mobileStickyActions: c, mobile_fullscreen: l, fullscreen: u, dependentValues: d, dependsOn: f, emptyHint: p, ...m } = e;
@@ -3785,13 +3786,13 @@ t.register("form", ({ schema: e, className: t, onAction: n, ...r }) => {
3785
3786
  type: "form_cancel",
3786
3787
  data: D.getValues()
3787
3788
  });
3788
- }, le = y > 1 ? K("grid gap-4", y === 1 ? "" : y === 2 ? "md:grid-cols-2" : y === 3 ? "md:grid-cols-2 lg:grid-cols-3" : "md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4") : "space-y-4", { "data-obj-id": L, "data-obj-type": ue, style: de, onSubmit: fe, onChange: pe, submitLabel: me, cancelLabel: he, showSubmit: ge, showCancel: _e, resetOnSubmit: ve, defaultValues: ye, inputType: be, dataSource: xe, showActions: Se, fieldContainerClass: Ce, mobileStickyActions: we, ...Te } = r;
3789
+ }, le = y > 1 ? K("grid gap-4", y === 1 ? "" : y === 2 ? "md:grid-cols-2" : y === 3 ? "md:grid-cols-2 lg:grid-cols-3" : "md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4") : "space-y-4", { "data-obj-id": L, "data-obj-type": ue, style: de, onSubmit: fe, onChange: pe, submitLabel: me, cancelLabel: he, showSubmit: ge, showCancel: _e, resetOnSubmit: ve, defaultValues: ye, inputType: be, dataSource: xe, showActions: Se, fieldContainerClass: Ce, mobileStickyActions: we, objectName: Te, onDirtyChange: Ee, onCancel: De, fields: Oe, layout: ke, columns: Ae, validationMode: je, disabled: Me, ...Ne } = r;
3789
3790
  return /* @__PURE__ */ F(Ai, {
3790
3791
  ...D,
3791
3792
  children: /* @__PURE__ */ I("form", {
3792
3793
  onSubmit: P,
3793
3794
  className: t,
3794
- ...Te,
3795
+ ...Ne,
3795
3796
  "data-obj-id": L,
3796
3797
  "data-obj-type": ue,
3797
3798
  style: de,
@@ -13082,7 +13083,21 @@ var Hd = ({ action: e, variant: t, size: n, onExecute: r }) => {
13082
13083
  });
13083
13084
  };
13084
13085
  Hd.displayName = "InlineActionButton";
13085
- var Ud = j(({ schema: e, className: t, ...n }, r) => {
13086
+ var Ud = ({ action: e, index: t, onSelect: n }) => {
13087
+ let r = w(x(e.visible)), i = w(x(e.enabled));
13088
+ if (e.visible && !r) return null;
13089
+ let a = wd(e.icon), o = e.enabled ? !i : !1;
13090
+ return /* @__PURE__ */ I(P, { children: [e.tags?.includes("separator-before") && t > 0 && /* @__PURE__ */ F(Di, {}), /* @__PURE__ */ I(Ci, {
13091
+ disabled: o,
13092
+ onSelect: async (t) => {
13093
+ t.preventDefault(), !o && await n(e);
13094
+ },
13095
+ className: K(e.variant === "destructive" && "text-destructive focus:text-destructive", e.className),
13096
+ children: [a && /* @__PURE__ */ F(a, { className: "mr-2 h-4 w-4" }), /* @__PURE__ */ F("span", { children: e.label || e.name })]
13097
+ })] });
13098
+ };
13099
+ Ud.displayName = "DropdownActionItem";
13100
+ var Wd = j(({ schema: e, className: t, ...n }, r) => {
13086
13101
  let { "data-obj-id": i, "data-obj-type": a, style: o, ...s } = n, { execute: c } = S(), [l, u] = N(!1), d = w(x(e.visible)), f = e.actions || [];
13087
13102
  e.location && (f = f.filter((t) => !t.locations || t.locations.includes(e.location)));
13088
13103
  let p = M(async (e) => {
@@ -13102,7 +13117,14 @@ var Ud = j(({ schema: e, className: t, ...n }, r) => {
13102
13117
  locations: e.locations,
13103
13118
  toast: e.toast
13104
13119
  });
13105
- }, [c]);
13120
+ }, [c]), m = M(async (e) => {
13121
+ u(!0);
13122
+ try {
13123
+ await p(e);
13124
+ } finally {
13125
+ u(!1);
13126
+ }
13127
+ }, [p]);
13106
13128
  if (e.visible && !d || f.length === 0) return null;
13107
13129
  if ((e.display || "inline") === "dropdown") {
13108
13130
  let n = wd(e.icon);
@@ -13126,21 +13148,11 @@ var Ud = j(({ schema: e, className: t, ...n }, r) => {
13126
13148
  })
13127
13149
  }), /* @__PURE__ */ F(Si, {
13128
13150
  align: "end",
13129
- children: f.map((e, t) => {
13130
- let n = wd(e.icon), r = e.tags?.includes("separator-before") && t > 0;
13131
- return /* @__PURE__ */ I(A.Fragment, { children: [r && /* @__PURE__ */ F(Di, {}), /* @__PURE__ */ I(Ci, {
13132
- onSelect: async (t) => {
13133
- t.preventDefault(), u(!0);
13134
- try {
13135
- await p(e);
13136
- } finally {
13137
- u(!1);
13138
- }
13139
- },
13140
- className: K(e.variant === "destructive" && "text-destructive focus:text-destructive", e.className),
13141
- children: [n && /* @__PURE__ */ F(n, { className: "mr-2 h-4 w-4" }), /* @__PURE__ */ F("span", { children: e.label || e.name })]
13142
- })] }, e.name || t);
13143
- })
13151
+ children: f.map((e, t) => /* @__PURE__ */ F(Ud, {
13152
+ action: e,
13153
+ index: t,
13154
+ onSelect: m
13155
+ }, e.name || t))
13144
13156
  })] });
13145
13157
  }
13146
13158
  return /* @__PURE__ */ F("div", {
@@ -13158,7 +13170,7 @@ var Ud = j(({ schema: e, className: t, ...n }, r) => {
13158
13170
  }, t.name))
13159
13171
  });
13160
13172
  });
13161
- Ud.displayName = "ActionGroupRenderer", t.register("action:group", Ud, {
13173
+ Wd.displayName = "ActionGroupRenderer", t.register("action:group", Wd, {
13162
13174
  namespace: "action",
13163
13175
  label: "Action Group",
13164
13176
  inputs: [
@@ -13228,7 +13240,7 @@ Ud.displayName = "ActionGroupRenderer", t.register("action:group", Ud, {
13228
13240
  });
13229
13241
  //#endregion
13230
13242
  //#region src/renderers/action/action-bar.tsx
13231
- function Wd() {
13243
+ function Gd() {
13232
13244
  try {
13233
13245
  let { t: e } = on(), t = e("common.actions");
13234
13246
  return !t || t === "common.actions" ? "Actions" : t;
@@ -13236,8 +13248,8 @@ function Wd() {
13236
13248
  return "Actions";
13237
13249
  }
13238
13250
  }
13239
- var Gd = j(({ schema: e, className: n, ...r }, i) => {
13240
- let a = Wd(), { "data-obj-id": o, "data-obj-type": s, style: c, data: l, actions: u, systemActions: d, location: f, maxVisible: p, mobileMaxVisible: m, direction: h, gap: g, variant: _, size: v, visible: y, ...b } = r, S = w(x(e.visible), void 0, { throwOnError: !0 }), C = io(), T = ie(() => {
13251
+ var Kd = j(({ schema: e, className: n, ...r }, i) => {
13252
+ let a = Gd(), { "data-obj-id": o, "data-obj-type": s, style: c, data: l, actions: u, systemActions: d, location: f, maxVisible: p, mobileMaxVisible: m, direction: h, gap: g, variant: _, size: v, visible: y, ...b } = r, S = w(x(e.visible), void 0, { throwOnError: !0 }), C = io(), T = ie(() => {
13241
13253
  let t = e.actions || [], n = e.location ? t.filter((t) => !t.locations || t.locations.length === 0 || t.locations.includes(e.location)) : t, r = /* @__PURE__ */ new Set(), i = n.filter((e) => e.name ? r.has(e.name) ? !1 : (r.add(e.name), !0) : !0);
13242
13254
  return i.some((e) => e.order !== void 0) ? [...i].sort((e, t) => (e.order ?? 0) - (t.order ?? 0)) : i;
13243
13255
  }, [e.actions, e.location]), E = ie(() => {
@@ -13293,7 +13305,7 @@ var Gd = j(({ schema: e, className: n, ...r }, i) => {
13293
13305
  }), te.length > 0 && j]
13294
13306
  });
13295
13307
  });
13296
- Gd.displayName = "ActionBarRenderer", t.register("action:bar", Gd, {
13308
+ Kd.displayName = "ActionBarRenderer", t.register("action:bar", Kd, {
13297
13309
  namespace: "action",
13298
13310
  label: "Action Bar",
13299
13311
  inputs: [
@@ -13366,7 +13378,7 @@ Gd.displayName = "ActionBarRenderer", t.register("action:bar", Gd, {
13366
13378
  });
13367
13379
  //#endregion
13368
13380
  //#region src/renderers/placeholders.tsx
13369
- var Kd = ({ schema: e, className: t }) => {
13381
+ var qd = ({ schema: e, className: t }) => {
13370
13382
  let n = e.type, r = n.startsWith("view:"), i = n.startsWith("widget:"), a = n.startsWith("field:");
13371
13383
  return /* @__PURE__ */ I("div", {
13372
13384
  className: K("flex flex-col items-center justify-center p-6 border-2 border-dashed rounded-lg bg-muted/30 transition-colors hover:bg-muted/50", r && "border-blue-300 bg-blue-50/50 min-h-[200px]", i && "border-purple-300 bg-purple-50/50 min-h-[150px]", a && "border-yellow-300 bg-yellow-50/50 p-2 min-h-[40px] flex-row gap-2 justify-start", t),
@@ -13393,15 +13405,15 @@ var Kd = ({ schema: e, className: t }) => {
13393
13405
  })]
13394
13406
  })]
13395
13407
  });
13396
- }, qd = /* @__PURE__ */ "view:grid.view:kanban.view:map.view:calendar.view:gantt.view:timeline.view:gallery.view:simple.view:wizard.view:tabbed.view:drawer.view:modal.view:split.field:text.field:textarea.field:password.field:email.field:url.field:phone.field:markdown.field:html.field:code.field:number.field:currency.field:percent.field:slider.field:boolean.field:checkboxes.field:select.field:multiselect.field:radio.field:date.field:datetime.field:time.field:duration.field:lookup.field:master_detail.field:tree.field:image.field:file.field:video.field:audio.field:avatar.field:color.field:rating.field:signature.field:qrcode.field:progress.field:json.field:address.field:location.page:header.page-header.page:footer.page:tabs.page:accordion.page:card.page:sidebar.record:details.record:highlights.record:related_list.record:activity.record:chatter.record:path.app:launcher.nav:menu.nav:breadcrumb.global:search.global:notifications.user:profile.widget:metric.widget:bar.widget:line.widget:pie.widget:funnel.widget:radar.widget:scatter.widget:heatmap.widget:pivot.widget:table.widget:text.widget:image.ai:input.ai:suggestion.ai:feedback".split(".");
13397
- function Jd() {
13398
- qd.forEach((e) => {
13399
- t.get(e) || t.register(e, Kd, { namespace: "protocol-placeholder" });
13408
+ }, Jd = /* @__PURE__ */ "view:grid.view:kanban.view:map.view:calendar.view:gantt.view:timeline.view:gallery.view:simple.view:wizard.view:tabbed.view:drawer.view:modal.view:split.field:text.field:textarea.field:password.field:email.field:url.field:phone.field:markdown.field:html.field:code.field:number.field:currency.field:percent.field:slider.field:boolean.field:checkboxes.field:select.field:multiselect.field:radio.field:date.field:datetime.field:time.field:duration.field:lookup.field:master_detail.field:tree.field:image.field:file.field:video.field:audio.field:avatar.field:color.field:rating.field:signature.field:qrcode.field:progress.field:json.field:address.field:location.page:header.page-header.page:footer.page:tabs.page:accordion.page:card.page:sidebar.record:details.record:highlights.record:related_list.record:activity.record:chatter.record:path.app:launcher.nav:menu.nav:breadcrumb.global:search.global:notifications.user:profile.widget:metric.widget:bar.widget:line.widget:pie.widget:funnel.widget:radar.widget:scatter.widget:heatmap.widget:pivot.widget:table.widget:text.widget:image.ai:input.ai:suggestion.ai:feedback".split(".");
13409
+ function Yd() {
13410
+ Jd.forEach((e) => {
13411
+ t.get(e) || t.register(e, qd, { namespace: "protocol-placeholder" });
13400
13412
  });
13401
13413
  }
13402
13414
  //#endregion
13403
13415
  //#region src/hooks/use-config-draft.ts
13404
- function Yd(e, t) {
13416
+ function Xd(e, t) {
13405
13417
  let n = t?.maxHistory ?? 50, [r, i] = N({ ...e }), [a, o] = N(t?.mode === "create"), s = ae([]), c = ae([]), [, l] = N(0);
13406
13418
  re(() => {
13407
13419
  i({ ...e }), o(t?.mode === "create"), s.current = [], c.current = [];
@@ -13438,7 +13450,7 @@ function Yd(e, t) {
13438
13450
  }
13439
13451
  //#endregion
13440
13452
  //#region src/hooks/use-resize-observer.tsx
13441
- function Xd(e) {
13453
+ function Zd(e) {
13442
13454
  let [t, n] = k.useState({
13443
13455
  width: 0,
13444
13456
  height: 0
@@ -13468,16 +13480,16 @@ function Xd(e) {
13468
13480
  }
13469
13481
  //#endregion
13470
13482
  //#region src/hooks/use-export-job.ts
13471
- var Zd = [
13483
+ var Qd = [
13472
13484
  "completed",
13473
13485
  "failed",
13474
13486
  "cancelled",
13475
13487
  "expired"
13476
13488
  ];
13477
- function Qd(e) {
13478
- return !!e && Zd.includes(e);
13489
+ function $d(e) {
13490
+ return !!e && Qd.includes(e);
13479
13491
  }
13480
- function $d(e = {}) {
13492
+ function ef(e = {}) {
13481
13493
  let { dataSource: t, pollIntervalMs: n = 1500, maxAttempts: r = 600, onComplete: i, onError: a } = e, [o, s] = N(null), [c, l] = N(null), [u, d] = N(!1), f = ae(null), p = ae(null), m = ae(0), h = ae(!1), g = ae({
13482
13494
  onComplete: i,
13483
13495
  onError: a
@@ -13502,7 +13514,7 @@ function $d(e = {}) {
13502
13514
  try {
13503
13515
  let e = await t.getExportJobProgress(f.current);
13504
13516
  if (h.current) return;
13505
- if (s(e), Qd(e.status)) {
13517
+ if (s(e), $d(e.status)) {
13506
13518
  if (d(!1), e.status === "completed") g.current.onComplete?.(e);
13507
13519
  else {
13508
13520
  let t = e.error?.message ?? `Export ${e.status}`, n = Error(t);
@@ -13536,7 +13548,7 @@ function $d(e = {}) {
13536
13548
  processedRecords: 0,
13537
13549
  totalRecords: i.estimatedRecords,
13538
13550
  percentComplete: 0
13539
- }), Qd(i.status)) {
13551
+ }), $d(i.status)) {
13540
13552
  if (d(!1), i.status === "completed" && t.getExportJobProgress) try {
13541
13553
  let e = await t.getExportJobProgress(i.jobId);
13542
13554
  s(e), g.current.onComplete?.(e);
@@ -13589,7 +13601,7 @@ function $d(e = {}) {
13589
13601
  }
13590
13602
  //#endregion
13591
13603
  //#region src/debug/DebugPanel.tsx
13592
- function ef({ schema: e }) {
13604
+ function tf({ schema: e }) {
13593
13605
  return e ? /* @__PURE__ */ F("pre", {
13594
13606
  className: "text-[11px] leading-relaxed font-mono overflow-auto max-h-[60vh] whitespace-pre-wrap break-all",
13595
13607
  children: JSON.stringify(e, null, 2)
@@ -13598,7 +13610,7 @@ function ef({ schema: e }) {
13598
13610
  children: "No schema available"
13599
13611
  });
13600
13612
  }
13601
- function tf({ dataContext: e }) {
13613
+ function nf({ dataContext: e }) {
13602
13614
  return e ? /* @__PURE__ */ F("pre", {
13603
13615
  className: "text-[11px] leading-relaxed font-mono overflow-auto max-h-[60vh] whitespace-pre-wrap break-all",
13604
13616
  children: JSON.stringify(e, null, 2)
@@ -13607,7 +13619,7 @@ function tf({ dataContext: e }) {
13607
13619
  children: "No data context available"
13608
13620
  });
13609
13621
  }
13610
- function nf() {
13622
+ function rf() {
13611
13623
  let e = ie(() => {
13612
13624
  try {
13613
13625
  return t.getAllTypes();
@@ -13634,7 +13646,7 @@ function nf() {
13634
13646
  })]
13635
13647
  });
13636
13648
  }
13637
- function rf({ flags: e }) {
13649
+ function af({ flags: e }) {
13638
13650
  return e ? /* @__PURE__ */ F("pre", {
13639
13651
  className: "text-[11px] leading-relaxed font-mono overflow-auto max-h-[60vh] whitespace-pre-wrap break-all",
13640
13652
  children: JSON.stringify(e, null, 2)
@@ -13643,14 +13655,14 @@ function rf({ flags: e }) {
13643
13655
  children: "No debug flags"
13644
13656
  });
13645
13657
  }
13646
- function af(e) {
13658
+ function of(e) {
13647
13659
  let t = n.getInstance(), [r, i] = N(() => t.getEntries(e));
13648
13660
  return A.useEffect(() => (i(t.getEntries(e)), t.subscribe(() => {
13649
13661
  i(t.getEntries(e));
13650
13662
  })), [t, e]), r;
13651
13663
  }
13652
- function of() {
13653
- let e = af("perf").map((e) => e.data);
13664
+ function sf() {
13665
+ let e = of("perf").map((e) => e.data);
13654
13666
  return e.length === 0 ? /* @__PURE__ */ F("p", {
13655
13667
  className: "text-xs text-muted-foreground italic",
13656
13668
  children: "No performance data collected yet"
@@ -13676,8 +13688,8 @@ function of() {
13676
13688
  })]
13677
13689
  });
13678
13690
  }
13679
- function sf() {
13680
- let e = af("expr").map((e) => e.data);
13691
+ function cf() {
13692
+ let e = of("expr").map((e) => e.data);
13681
13693
  return e.length === 0 ? /* @__PURE__ */ F("p", {
13682
13694
  className: "text-xs text-muted-foreground italic",
13683
13695
  children: "No expression evaluations tracked yet"
@@ -13703,8 +13715,8 @@ function sf() {
13703
13715
  })]
13704
13716
  });
13705
13717
  }
13706
- function cf() {
13707
- let e = af("event").map((e) => e.data);
13718
+ function lf() {
13719
+ let e = of("event").map((e) => e.data);
13708
13720
  return e.length === 0 ? /* @__PURE__ */ F("p", {
13709
13721
  className: "text-xs text-muted-foreground italic",
13710
13722
  children: "No events captured yet"
@@ -13736,42 +13748,42 @@ function cf() {
13736
13748
  })]
13737
13749
  });
13738
13750
  }
13739
- function lf({ open: e, onClose: t, flags: n, schema: r, dataContext: i, extraTabs: a = [], className: o }) {
13751
+ function uf({ open: e, onClose: t, flags: n, schema: r, dataContext: i, extraTabs: a = [], className: o }) {
13740
13752
  let s = ie(() => [
13741
13753
  {
13742
13754
  id: "schema",
13743
13755
  label: "Schema",
13744
- render: () => /* @__PURE__ */ F(ef, { schema: r })
13756
+ render: () => /* @__PURE__ */ F(tf, { schema: r })
13745
13757
  },
13746
13758
  {
13747
13759
  id: "data",
13748
13760
  label: "Data",
13749
- render: () => /* @__PURE__ */ F(tf, { dataContext: i })
13761
+ render: () => /* @__PURE__ */ F(nf, { dataContext: i })
13750
13762
  },
13751
13763
  {
13752
13764
  id: "perf",
13753
13765
  label: "Perf",
13754
- render: () => /* @__PURE__ */ F(of, {})
13766
+ render: () => /* @__PURE__ */ F(sf, {})
13755
13767
  },
13756
13768
  {
13757
13769
  id: "expr",
13758
13770
  label: "Expr",
13759
- render: () => /* @__PURE__ */ F(sf, {})
13771
+ render: () => /* @__PURE__ */ F(cf, {})
13760
13772
  },
13761
13773
  {
13762
13774
  id: "events",
13763
13775
  label: "Events",
13764
- render: () => /* @__PURE__ */ F(cf, {})
13776
+ render: () => /* @__PURE__ */ F(lf, {})
13765
13777
  },
13766
13778
  {
13767
13779
  id: "registry",
13768
13780
  label: "Registry",
13769
- render: () => /* @__PURE__ */ F(nf, {})
13781
+ render: () => /* @__PURE__ */ F(rf, {})
13770
13782
  },
13771
13783
  {
13772
13784
  id: "flags",
13773
13785
  label: "Flags",
13774
- render: () => /* @__PURE__ */ F(rf, { flags: n })
13786
+ render: () => /* @__PURE__ */ F(af, { flags: n })
13775
13787
  }
13776
13788
  ], [
13777
13789
  r,
@@ -13824,13 +13836,13 @@ function lf({ open: e, onClose: t, flags: n, schema: r, dataContext: i, extraTab
13824
13836
  }
13825
13837
  //#endregion
13826
13838
  //#region src/share/ShareDialog.tsx
13827
- var uf = {
13839
+ var df = {
13828
13840
  permission: "view",
13829
13841
  audience: "link_only",
13830
13842
  expiresInDays: 7,
13831
13843
  password: "",
13832
13844
  label: ""
13833
- }, df = [
13845
+ }, ff = [
13834
13846
  {
13835
13847
  label: "1 day",
13836
13848
  value: 1
@@ -13851,7 +13863,7 @@ var uf = {
13851
13863
  label: "Never",
13852
13864
  value: null
13853
13865
  }
13854
- ], ff = [{
13866
+ ], pf = [{
13855
13867
  value: "link_only",
13856
13868
  label: "Anyone with the link",
13857
13869
  help: "No sign-in required"
@@ -13860,10 +13872,10 @@ var uf = {
13860
13872
  label: "Signed-in users",
13861
13873
  help: "Must be logged in to view"
13862
13874
  }];
13863
- function pf(e, t) {
13875
+ function mf(e, t) {
13864
13876
  return `${(e ?? (typeof window < "u" ? `${window.location.origin}/s` : "/s")).replace(/\/+$/, "")}/${t}`;
13865
13877
  }
13866
- async function mf(e) {
13878
+ async function hf(e) {
13867
13879
  try {
13868
13880
  if (typeof navigator < "u" && navigator.clipboard?.writeText) return await navigator.clipboard.writeText(e), !0;
13869
13881
  } catch {}
@@ -13878,8 +13890,8 @@ async function mf(e) {
13878
13890
  }
13879
13891
  return !1;
13880
13892
  }
13881
- function hf({ open: e, onOpenChange: t, objectName: n, recordId: r, recordLabel: i, apiBase: a, publicBaseUrl: o, fetchHeaders: s }) {
13882
- let [c, l] = N([]), [u, d] = N(!1), [f, p] = N(!1), [m, h] = N(null), [g, _] = N(uf), [v, y] = N(null), b = M(async () => {
13893
+ function gf({ open: e, onOpenChange: t, objectName: n, recordId: r, recordLabel: i, apiBase: a, publicBaseUrl: o, fetchHeaders: s }) {
13894
+ let [c, l] = N([]), [u, d] = N(!1), [f, p] = N(!1), [m, h] = N(null), [g, _] = N(df), [v, y] = N(null), b = M(async () => {
13883
13895
  let e = { "Content-Type": "application/json" };
13884
13896
  if (!s) return e;
13885
13897
  let t = await s();
@@ -13908,7 +13920,7 @@ function hf({ open: e, onOpenChange: t, objectName: n, recordId: r, recordLabel:
13908
13920
  }
13909
13921
  }, [x, b]);
13910
13922
  re(() => {
13911
- e && (S(), _(uf));
13923
+ e && (S(), _(df));
13912
13924
  }, [e, S]);
13913
13925
  let C = M(async () => {
13914
13926
  p(!0), h(null);
@@ -13933,7 +13945,7 @@ function hf({ open: e, onOpenChange: t, objectName: n, recordId: r, recordLabel:
13933
13945
  }
13934
13946
  let s = await i.json(), c = s.link ?? s.data;
13935
13947
  if (!c) throw Error("Share link create response missing link payload");
13936
- l((e) => [c, ...e]), await mf(pf(o, c.token)) && (y(c.id), setTimeout(() => y(null), 1500)), _(uf);
13948
+ l((e) => [c, ...e]), await hf(mf(o, c.token)) && (y(c.id), setTimeout(() => y(null), 1500)), _(df);
13937
13949
  } catch (e) {
13938
13950
  h(e?.message ?? "Failed to create share link");
13939
13951
  } finally {
@@ -13962,7 +13974,7 @@ function hf({ open: e, onOpenChange: t, objectName: n, recordId: r, recordLabel:
13962
13974
  h(e?.message ?? "Failed to revoke link");
13963
13975
  }
13964
13976
  }, [a, b]), T = M(async (e) => {
13965
- await mf(pf(o, e.token)) && (y(e.id), setTimeout(() => y(null), 1500));
13977
+ await hf(mf(o, e.token)) && (y(e.id), setTimeout(() => y(null), 1500));
13966
13978
  }, [o]), E = c.filter((e) => !e.revoked_at), D = c.filter((e) => e.revoked_at);
13967
13979
  return /* @__PURE__ */ F(wr, {
13968
13980
  open: e,
@@ -14004,7 +14016,7 @@ function hf({ open: e, onOpenChange: t, objectName: n, recordId: r, recordLabel:
14004
14016
  className: "h-8 text-xs",
14005
14017
  "data-testid": "share-audience",
14006
14018
  children: /* @__PURE__ */ F(Ra, {})
14007
- }), /* @__PURE__ */ F(Ha, { children: ff.map((e) => /* @__PURE__ */ F(Z, {
14019
+ }), /* @__PURE__ */ F(Ha, { children: pf.map((e) => /* @__PURE__ */ F(Z, {
14008
14020
  value: e.value,
14009
14021
  className: "text-xs",
14010
14022
  children: /* @__PURE__ */ I("div", {
@@ -14032,7 +14044,7 @@ function hf({ open: e, onOpenChange: t, objectName: n, recordId: r, recordLabel:
14032
14044
  className: "h-8 text-xs",
14033
14045
  "data-testid": "share-expiry",
14034
14046
  children: /* @__PURE__ */ F(Ra, {})
14035
- }), /* @__PURE__ */ F(Ha, { children: df.map((e) => /* @__PURE__ */ F(Z, {
14047
+ }), /* @__PURE__ */ F(Ha, { children: ff.map((e) => /* @__PURE__ */ F(Z, {
14036
14048
  value: e.value == null ? "never" : String(e.value),
14037
14049
  className: "text-xs",
14038
14050
  children: e.label
@@ -14101,7 +14113,7 @@ function hf({ open: e, onOpenChange: t, objectName: n, recordId: r, recordLabel:
14101
14113
  /* @__PURE__ */ I("ul", {
14102
14114
  className: "space-y-2",
14103
14115
  children: [
14104
- E.map((e) => /* @__PURE__ */ F(gf, {
14116
+ E.map((e) => /* @__PURE__ */ F(_f, {
14105
14117
  link: e,
14106
14118
  copied: v === e.id,
14107
14119
  onCopy: () => T(e),
@@ -14112,7 +14124,7 @@ function hf({ open: e, onOpenChange: t, objectName: n, recordId: r, recordLabel:
14112
14124
  className: "pt-2 text-[10px] uppercase tracking-wide text-muted-foreground",
14113
14125
  children: "Revoked"
14114
14126
  }),
14115
- D.map((e) => /* @__PURE__ */ F(gf, {
14127
+ D.map((e) => /* @__PURE__ */ F(_f, {
14116
14128
  link: e,
14117
14129
  copied: !1,
14118
14130
  onCopy: () => T(e),
@@ -14134,8 +14146,8 @@ function hf({ open: e, onOpenChange: t, objectName: n, recordId: r, recordLabel:
14134
14146
  })
14135
14147
  });
14136
14148
  }
14137
- function gf({ link: e, copied: t, onCopy: n, onRevoke: r, publicBaseUrl: i, disabled: a }) {
14138
- let o = pf(i, e.token);
14149
+ function _f({ link: e, copied: t, onCopy: n, onRevoke: r, publicBaseUrl: i, disabled: a }) {
14150
+ let o = mf(i, e.token);
14139
14151
  return /* @__PURE__ */ I("li", {
14140
14152
  className: K("flex items-center gap-2 rounded-md border bg-card px-2 py-2 text-xs", a && "opacity-60"),
14141
14153
  "data-testid": "share-link-row",
@@ -14186,8 +14198,8 @@ function gf({ link: e, copied: t, onCopy: n, onRevoke: r, publicBaseUrl: i, disa
14186
14198
  }
14187
14199
  //#endregion
14188
14200
  //#region src/index.ts
14189
- function _f() {
14201
+ function vf() {
14190
14202
  return !0;
14191
14203
  }
14192
14204
  //#endregion
14193
- export { gn as Accordion, yn as AccordionContent, _n as AccordionItem, vn as AccordionTrigger, Jl as ActionParamDialog, Nn as Alert, Fn as AlertDescription, xn as AlertDialog, An as AlertDialogAction, jn as AlertDialogCancel, Tn as AlertDialogContent, kn as AlertDialogDescription, Dn as AlertDialogFooter, En as AlertDialogHeader, wn as AlertDialogOverlay, Cn as AlertDialogPortal, On as AlertDialogTitle, Sn as AlertDialogTrigger, Pn as AlertTitle, In as AspectRatio, Ln as Avatar, zn as AvatarFallback, Rn as AvatarImage, Vn as Badge, Hn as Breadcrumb, Jn as BreadcrumbEllipsis, Wn as BreadcrumbItem, Gn as BreadcrumbLink, Un as BreadcrumbList, Kn as BreadcrumbPage, qn as BreadcrumbSeparator, J as Button, Pc as ButtonGroup, Ic as ButtonGroupSeparator, Fc as ButtonGroupText, Yn as Calendar, Xn as CalendarDayButton, Zn as Card, tr as CardContent, er as CardDescription, nr as CardFooter, Qn as CardHeader, $n as CardTitle, ar as Carousel, or as CarouselContent, sr as CarouselItem, lr as CarouselNext, cr as CarouselPrevious, pr as ChartContainer, _r as ChartLegend, vr as ChartLegendContent, $l as ChartSkeleton, mr as ChartStyle, hr as ChartTooltip, gr as ChartTooltipContent, br as Checkbox, xr as Collapsible, Cr as CollapsibleContent, Sr as CollapsibleTrigger, Lc as Combobox, Pr as Command, Fr as CommandDialog, Rr as CommandEmpty, zr as CommandGroup, Ir as CommandInput, Vr as CommandItem, Lr as CommandList, Br as CommandSeparator, Hr as CommandShortcut, il as ConfigFieldRenderer, ol as ConfigPanelRenderer, Rc as ConfigRow, Ur as ContextMenu, $r as ContextMenuCheckboxItem, Zr as ContextMenuContent, Gr as ContextMenuGroup, Qr as ContextMenuItem, ti as ContextMenuLabel, Kr as ContextMenuPortal, Jr as ContextMenuRadioGroup, ei as ContextMenuRadioItem, ni as ContextMenuSeparator, ri as ContextMenuShortcut, qr as ContextMenuSub, Xr as ContextMenuSubContent, Yr as ContextMenuSubTrigger, Wr as ContextMenuTrigger, uu as DataEmptyState, uu as EmptyState, du as DataErrorState, lu as DataLoadingState, sl as DatePicker, lf as DebugPanel, wr as Dialog, Dr as DialogClose, kr as DialogContent, Nr as DialogDescription, jr as DialogFooter, Ar as DialogHeader, Or as DialogOverlay, Er as DialogPortal, Mr as DialogTitle, Tr as DialogTrigger, ii as Drawer, si as DrawerClose, li as DrawerContent, pi as DrawerDescription, di as DrawerFooter, ui as DrawerHeader, ci as DrawerOverlay, oi as DrawerPortal, fi as DrawerTitle, ai as DrawerTrigger, mi as DropdownMenu, wi as DropdownMenuCheckboxItem, Si as DropdownMenuContent, gi as DropdownMenuGroup, Ci as DropdownMenuItem, Ei as DropdownMenuLabel, _i as DropdownMenuPortal, yi as DropdownMenuRadioGroup, Ti as DropdownMenuRadioItem, Di as DropdownMenuSeparator, Oi as DropdownMenuShortcut, vi as DropdownMenuSub, xi as DropdownMenuSubContent, bi as DropdownMenuSubTrigger, hi as DropdownMenuTrigger, ll as Empty, hl as EmptyContent, ml as EmptyDescription, ul as EmptyHeader, fl as EmptyMedia, pl as EmptyTitle, gl as EmptyValue, pu as ExportProgressDialog, vl as Field, el as FilterBuilder, Ai as Form, Li as FormControl, Ri as FormDescription, Mi as FormField, Fi as FormItem, Ii as FormLabel, zi as FormMessage, Zl as FormSkeleton, Ed as GridFieldAuthoringProvider, Yl as GridSkeleton, ql as GroupingEditor, Bi as HoverCard, Hi as HoverCardContent, Vi as HoverCardTrigger, X as Input, yl as InputGroup, Ui as InputOTP, Wi as InputOTPGroup, Ki as InputOTPSeparator, Gi as InputOTPSlot, Cl as Item, kl as ItemActions, El as ItemContent, Ol as ItemDescription, jl as ItemFooter, bl as ItemGroup, Al as ItemHeader, Tl as ItemMedia, xl as ItemSeparator, Dl as ItemTitle, Xl as KanbanSkeleton, Ml as Kbd, Nl as KbdGroup, Y as Label, Ps as LazyIcon, Ql as ListSkeleton, tl as LookupValuePicker, Qi as Menubar, ia as MenubarCheckboxItem, na as MenubarContent, Ji as MenubarGroup, ra as MenubarItem, oa as MenubarLabel, qi as MenubarMenu, Yi as MenubarPortal, Xi as MenubarRadioGroup, aa as MenubarRadioItem, sa as MenubarSeparator, ca as MenubarShortcut, Zi as MenubarSub, ta as MenubarSubContent, ea as MenubarSubTrigger, $i as MenubarTrigger, Rl as MobileDialogContent, Pl as NativeSelect, la as NavigationMenu, ma as NavigationMenuContent, _a as NavigationMenuIndicator, da as NavigationMenuItem, ha as NavigationMenuLink, ua as NavigationMenuList, pa as NavigationMenuTrigger, ga as NavigationMenuViewport, Wl as NavigationOverlay, va as Pagination, ya as PaginationContent, wa as PaginationEllipsis, ba as PaginationItem, xa as PaginationLink, Ca as PaginationNext, Sa as PaginationPrevious, Ta as Popover, Da as PopoverContent, Ea as PopoverTrigger, Oa as Progress, ka as RadioGroup, Aa as RadioGroupItem, au as RecordTitleChip, cu as RefreshIndicator, sd as RelatedCountStore, Na as ResizableHandle, Ma as ResizablePanel, ja as ResizablePanelGroup, Pa as ScrollArea, Fa as ScrollBar, al as SectionHeader, Ia as Select, Ha as SelectContent, La as SelectGroup, Z as SelectItem, Ua as SelectLabel, Va as SelectScrollDownButton, Ba as SelectScrollUpButton, Wa as SelectSeparator, za as SelectTrigger, Ra as SelectValue, Ga as Separator, hf as ShareDialog, Ka as Sheet, Ja as SheetClose, Qa as SheetContent, no as SheetDescription, eo as SheetFooter, $a as SheetHeader, Xa as SheetOverlay, Ya as SheetPortal, to as SheetTitle, qa as SheetTrigger, tu as ShimmerSkeleton, yo as Sidebar, Do as SidebarContent, To as SidebarFooter, Oo as SidebarGroup, Ao as SidebarGroupAction, jo as SidebarGroupContent, ko as SidebarGroupLabel, wo as SidebarHeader, Co as SidebarInput, So as SidebarInset, Mo as SidebarMenu, Io as SidebarMenuAction, Lo as SidebarMenuBadge, Fo as SidebarMenuButton, No as SidebarMenuItem, Ro as SidebarMenuSkeleton, zo as SidebarMenuSub, Vo as SidebarMenuSubButton, Bo as SidebarMenuSubItem, vo as SidebarProvider, xo as SidebarRail, Eo as SidebarSeparator, bo as SidebarTrigger, Q as Skeleton, Ho as Slider, rl as SortBuilder, Gl as Spinner, Wo as Switch, Go as Table, qo as TableBody, Qo as TableCaption, Zo as TableCell, Jo as TableFooter, Xo as TableHead, Ko as TableHeader, Yo as TableRow, $o as Tabs, ns as TabsContent, es as TabsList, ts as TabsTrigger, rs as Textarea, Uo as Toaster, as as Toggle, ss as ToggleGroup, cs as ToggleGroupItem, oo as Tooltip, co as TooltipContent, ao as TooltipProvider, so as TooltipTrigger, ms as TypographyBlockquote, ls as TypographyH1, us as TypographyH2, ds as TypographyH3, fs as TypographyH4, gs as TypographyInlineCode, vs as TypographyLarge, _s as TypographyLead, hs as TypographyList, bs as TypographyMuted, ps as TypographyP, ys as TypographySmall, eu as ViewSkeleton, Bn as badgeVariants, Nc as buttonGroupVariants, bn as buttonVariants, K as cn, _t as cva, Ns as getLazyIcon, _f as initializeComponents, Il as isInsidePopperLayer, fa as navigationMenuTriggerStyle, Jd as registerPlaceholders, q as renderChildren, ks as toKebabIconName, Yt as toast, is as toggleVariants, Yd as useConfigDraft, $d as useExportJob, Ni as useFormField, Dd as useGridFieldAuthoring, io as useIsMobile, Ll as usePopperAwareInteractOutside, ad as useRelatedCount, od as useRelatedCountVersion, Xd as useResizeObserver, _o as useSidebar };
14205
+ export { gn as Accordion, yn as AccordionContent, _n as AccordionItem, vn as AccordionTrigger, Jl as ActionParamDialog, Nn as Alert, Fn as AlertDescription, xn as AlertDialog, An as AlertDialogAction, jn as AlertDialogCancel, Tn as AlertDialogContent, kn as AlertDialogDescription, Dn as AlertDialogFooter, En as AlertDialogHeader, wn as AlertDialogOverlay, Cn as AlertDialogPortal, On as AlertDialogTitle, Sn as AlertDialogTrigger, Pn as AlertTitle, In as AspectRatio, Ln as Avatar, zn as AvatarFallback, Rn as AvatarImage, Vn as Badge, Hn as Breadcrumb, Jn as BreadcrumbEllipsis, Wn as BreadcrumbItem, Gn as BreadcrumbLink, Un as BreadcrumbList, Kn as BreadcrumbPage, qn as BreadcrumbSeparator, J as Button, Pc as ButtonGroup, Ic as ButtonGroupSeparator, Fc as ButtonGroupText, Yn as Calendar, Xn as CalendarDayButton, Zn as Card, tr as CardContent, er as CardDescription, nr as CardFooter, Qn as CardHeader, $n as CardTitle, ar as Carousel, or as CarouselContent, sr as CarouselItem, lr as CarouselNext, cr as CarouselPrevious, pr as ChartContainer, _r as ChartLegend, vr as ChartLegendContent, $l as ChartSkeleton, mr as ChartStyle, hr as ChartTooltip, gr as ChartTooltipContent, br as Checkbox, xr as Collapsible, Cr as CollapsibleContent, Sr as CollapsibleTrigger, Lc as Combobox, Pr as Command, Fr as CommandDialog, Rr as CommandEmpty, zr as CommandGroup, Ir as CommandInput, Vr as CommandItem, Lr as CommandList, Br as CommandSeparator, Hr as CommandShortcut, il as ConfigFieldRenderer, ol as ConfigPanelRenderer, Rc as ConfigRow, Ur as ContextMenu, $r as ContextMenuCheckboxItem, Zr as ContextMenuContent, Gr as ContextMenuGroup, Qr as ContextMenuItem, ti as ContextMenuLabel, Kr as ContextMenuPortal, Jr as ContextMenuRadioGroup, ei as ContextMenuRadioItem, ni as ContextMenuSeparator, ri as ContextMenuShortcut, qr as ContextMenuSub, Xr as ContextMenuSubContent, Yr as ContextMenuSubTrigger, Wr as ContextMenuTrigger, uu as DataEmptyState, uu as EmptyState, du as DataErrorState, lu as DataLoadingState, sl as DatePicker, uf as DebugPanel, wr as Dialog, Dr as DialogClose, kr as DialogContent, Nr as DialogDescription, jr as DialogFooter, Ar as DialogHeader, Or as DialogOverlay, Er as DialogPortal, Mr as DialogTitle, Tr as DialogTrigger, ii as Drawer, si as DrawerClose, li as DrawerContent, pi as DrawerDescription, di as DrawerFooter, ui as DrawerHeader, ci as DrawerOverlay, oi as DrawerPortal, fi as DrawerTitle, ai as DrawerTrigger, mi as DropdownMenu, wi as DropdownMenuCheckboxItem, Si as DropdownMenuContent, gi as DropdownMenuGroup, Ci as DropdownMenuItem, Ei as DropdownMenuLabel, _i as DropdownMenuPortal, yi as DropdownMenuRadioGroup, Ti as DropdownMenuRadioItem, Di as DropdownMenuSeparator, Oi as DropdownMenuShortcut, vi as DropdownMenuSub, xi as DropdownMenuSubContent, bi as DropdownMenuSubTrigger, hi as DropdownMenuTrigger, ll as Empty, hl as EmptyContent, ml as EmptyDescription, ul as EmptyHeader, fl as EmptyMedia, pl as EmptyTitle, gl as EmptyValue, pu as ExportProgressDialog, vl as Field, el as FilterBuilder, Ai as Form, Li as FormControl, Ri as FormDescription, Mi as FormField, Fi as FormItem, Ii as FormLabel, zi as FormMessage, Zl as FormSkeleton, Ed as GridFieldAuthoringProvider, Yl as GridSkeleton, ql as GroupingEditor, Bi as HoverCard, Hi as HoverCardContent, Vi as HoverCardTrigger, X as Input, yl as InputGroup, Ui as InputOTP, Wi as InputOTPGroup, Ki as InputOTPSeparator, Gi as InputOTPSlot, Cl as Item, kl as ItemActions, El as ItemContent, Ol as ItemDescription, jl as ItemFooter, bl as ItemGroup, Al as ItemHeader, Tl as ItemMedia, xl as ItemSeparator, Dl as ItemTitle, Xl as KanbanSkeleton, Ml as Kbd, Nl as KbdGroup, Y as Label, Ps as LazyIcon, Ql as ListSkeleton, tl as LookupValuePicker, Qi as Menubar, ia as MenubarCheckboxItem, na as MenubarContent, Ji as MenubarGroup, ra as MenubarItem, oa as MenubarLabel, qi as MenubarMenu, Yi as MenubarPortal, Xi as MenubarRadioGroup, aa as MenubarRadioItem, sa as MenubarSeparator, ca as MenubarShortcut, Zi as MenubarSub, ta as MenubarSubContent, ea as MenubarSubTrigger, $i as MenubarTrigger, Rl as MobileDialogContent, Pl as NativeSelect, la as NavigationMenu, ma as NavigationMenuContent, _a as NavigationMenuIndicator, da as NavigationMenuItem, ha as NavigationMenuLink, ua as NavigationMenuList, pa as NavigationMenuTrigger, ga as NavigationMenuViewport, Wl as NavigationOverlay, va as Pagination, ya as PaginationContent, wa as PaginationEllipsis, ba as PaginationItem, xa as PaginationLink, Ca as PaginationNext, Sa as PaginationPrevious, Ta as Popover, Da as PopoverContent, Ea as PopoverTrigger, Oa as Progress, ka as RadioGroup, Aa as RadioGroupItem, au as RecordTitleChip, cu as RefreshIndicator, sd as RelatedCountStore, Na as ResizableHandle, Ma as ResizablePanel, ja as ResizablePanelGroup, Pa as ScrollArea, Fa as ScrollBar, al as SectionHeader, Ia as Select, Ha as SelectContent, La as SelectGroup, Z as SelectItem, Ua as SelectLabel, Va as SelectScrollDownButton, Ba as SelectScrollUpButton, Wa as SelectSeparator, za as SelectTrigger, Ra as SelectValue, Ga as Separator, gf as ShareDialog, Ka as Sheet, Ja as SheetClose, Qa as SheetContent, no as SheetDescription, eo as SheetFooter, $a as SheetHeader, Xa as SheetOverlay, Ya as SheetPortal, to as SheetTitle, qa as SheetTrigger, tu as ShimmerSkeleton, yo as Sidebar, Do as SidebarContent, To as SidebarFooter, Oo as SidebarGroup, Ao as SidebarGroupAction, jo as SidebarGroupContent, ko as SidebarGroupLabel, wo as SidebarHeader, Co as SidebarInput, So as SidebarInset, Mo as SidebarMenu, Io as SidebarMenuAction, Lo as SidebarMenuBadge, Fo as SidebarMenuButton, No as SidebarMenuItem, Ro as SidebarMenuSkeleton, zo as SidebarMenuSub, Vo as SidebarMenuSubButton, Bo as SidebarMenuSubItem, vo as SidebarProvider, xo as SidebarRail, Eo as SidebarSeparator, bo as SidebarTrigger, Q as Skeleton, Ho as Slider, rl as SortBuilder, Gl as Spinner, Wo as Switch, Go as Table, qo as TableBody, Qo as TableCaption, Zo as TableCell, Jo as TableFooter, Xo as TableHead, Ko as TableHeader, Yo as TableRow, $o as Tabs, ns as TabsContent, es as TabsList, ts as TabsTrigger, rs as Textarea, Uo as Toaster, as as Toggle, ss as ToggleGroup, cs as ToggleGroupItem, oo as Tooltip, co as TooltipContent, ao as TooltipProvider, so as TooltipTrigger, ms as TypographyBlockquote, ls as TypographyH1, us as TypographyH2, ds as TypographyH3, fs as TypographyH4, gs as TypographyInlineCode, vs as TypographyLarge, _s as TypographyLead, hs as TypographyList, bs as TypographyMuted, ps as TypographyP, ys as TypographySmall, eu as ViewSkeleton, Bn as badgeVariants, Nc as buttonGroupVariants, bn as buttonVariants, K as cn, _t as cva, Ns as getLazyIcon, vf as initializeComponents, Il as isInsidePopperLayer, fa as navigationMenuTriggerStyle, Yd as registerPlaceholders, q as renderChildren, ks as toKebabIconName, Yt as toast, is as toggleVariants, Xd as useConfigDraft, ef as useExportJob, Ni as useFormField, Dd as useGridFieldAuthoring, io as useIsMobile, Ll as usePopperAwareInteractOutside, ad as useRelatedCount, od as useRelatedCountVersion, Zd as useResizeObserver, _o as useSidebar };