@object-ui/components 5.0.2 → 5.1.1
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 +129 -0
- package/dist/index.css +50 -4
- package/dist/index.js +128 -66
- package/dist/index.umd.cjs +1 -1
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,134 @@
|
|
|
1
1
|
# @object-ui/components
|
|
2
2
|
|
|
3
|
+
## 5.1.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 8955b9c: fix(empty): render `action` schema via `SchemaRenderer` instead of leaking the raw object
|
|
8
|
+
|
|
9
|
+
The `empty` renderer was spreading the schema's `action` prop straight onto
|
|
10
|
+
`DataEmptyState`, which renders `{action}` as a child. That worked for React
|
|
11
|
+
nodes but blew up on production builds when the docs site fed it a schema
|
|
12
|
+
shape like `action: { type: 'button', label: 'Create', variant: 'default' }`
|
|
13
|
+
(error: "Objects are not valid as a React child").
|
|
14
|
+
|
|
15
|
+
The renderer now passes `schema.action` through `SchemaRenderer` to turn it
|
|
16
|
+
into a real React element, and explicitly strips `action`/`icon` from the
|
|
17
|
+
spread so schema-shaped objects don't reach DOM attributes.
|
|
18
|
+
- @object-ui/types@5.1.1
|
|
19
|
+
- @object-ui/core@5.1.1
|
|
20
|
+
- @object-ui/i18n@5.1.1
|
|
21
|
+
- @object-ui/react@5.1.1
|
|
22
|
+
|
|
23
|
+
## 5.1.0
|
|
24
|
+
|
|
25
|
+
### Minor Changes
|
|
26
|
+
|
|
27
|
+
- cf30cc2: Polish Lightning record detail page layout.
|
|
28
|
+
- `record:details` sections now render with Card chrome by default when a `title` is present, restoring visual grouping that was missing on pages like the opportunity detail page.
|
|
29
|
+
- Section labels can be translated via the `{ns}.objects.{objectName}._sections.{name}.label` convention. Author each section with a stable `name` (e.g. `info`, `forecast`) and the renderer picks up the locale-specific label automatically. Falls back to the literal `label` when no translation exists.
|
|
30
|
+
- The `page:header` action toolbar now collapses into a `⋯` overflow menu when more than two actions are present. The first business action stays inline; secondary system actions (Edit / Share / Delete) move into the menu, with destructive styling applied to Delete.
|
|
31
|
+
- Header action labels resolve via the `{ns}.objects.{objectName}._actions.{name}.label` convention.
|
|
32
|
+
- Removed the meaningless field-count Badge from collapsible section headers (the `2` chip next to "Description"). Field-count metadata wasn't useful in the header and added visual noise.
|
|
33
|
+
- Synth-path `sys_delete` now carries `variant: 'destructive'` so the overflow menu can color it appropriately.
|
|
34
|
+
|
|
35
|
+
### Patch Changes
|
|
36
|
+
|
|
37
|
+
- bd8447d: Three platform-wide detail polish items.
|
|
38
|
+
|
|
39
|
+
**Tighter page rhythm**
|
|
40
|
+
- Outer `PageRenderer` padding `p-4 md:p-6 lg:p-8` → `p-3 md:p-4 lg:p-6`
|
|
41
|
+
and outer body wrap `space-y-8` → `space-y-6` so list / detail / home
|
|
42
|
+
pages share the same edge rhythm. Cuts ~16px of edge slack on lg.
|
|
43
|
+
|
|
44
|
+
**Highlights KPI treatment**
|
|
45
|
+
- `HeaderHighlight` now renders numeric / currency / percent / decimal
|
|
46
|
+
values as KPI numbers (`text-xl md:text-2xl font-semibold tabular-nums`)
|
|
47
|
+
instead of the uniform `text-sm font-semibold`, so amount / probability
|
|
48
|
+
/ count fields read as headline stats — Salesforce-style key facts.
|
|
49
|
+
|
|
50
|
+
**Discussion footer upgrade**
|
|
51
|
+
- `RecordActivityTimeline` now uses `RichTextCommentInput` (bold / italic /
|
|
52
|
+
list / code, `@`-mention autocomplete, preview toggle, Send) instead of
|
|
53
|
+
a bare `<textarea>`.
|
|
54
|
+
- `DiscussionContext` gains an optional `mentionSuggestions` array that
|
|
55
|
+
hosts can wire (e.g. team member directory). Falls back to free-text
|
|
56
|
+
`@mention` when omitted.
|
|
57
|
+
- `RecordChatterPanel` threads `mentionSuggestions` through both inline
|
|
58
|
+
and sidebar positions.
|
|
59
|
+
|
|
60
|
+
- fbd5052: Tighten record-detail visual rhythm. Section card titles were rendering at
|
|
61
|
+
Shadcn's default `text-2xl` which dominated the page; the related-list
|
|
62
|
+
accordion in flush mode dropped all per-item borders so the collapsed
|
|
63
|
+
"Quotes / Products / Open Tasks" triggers stacked with zero visual
|
|
64
|
+
separation.
|
|
65
|
+
- `@object-ui/plugin-detail` `DetailSection`: override the `CardTitle`
|
|
66
|
+
className to `text-base font-semibold tracking-tight`, slim down
|
|
67
|
+
`CardHeader` padding (`py-3 px-4 sm:py-4 sm:px-6`) and `CardContent`
|
|
68
|
+
vertical padding so titles + content read as a single tight block
|
|
69
|
+
rather than a billboard. Demoted the section description from `text-sm
|
|
70
|
+
mt-1.5` to `text-xs mt-1` for the same reason.
|
|
71
|
+
- `@object-ui/components` `PageAccordionRenderer`: in the default
|
|
72
|
+
`flush` variant restore a subtle `border-b last:border-b-0` divider
|
|
73
|
+
between accordion items so collapsed siblings get a separator, and
|
|
74
|
+
style the trigger as `text-sm font-semibold tracking-tight
|
|
75
|
+
hover:no-underline` (Shadcn's hover-underline default looks busy on
|
|
76
|
+
CRM-style related-list lists).
|
|
77
|
+
|
|
78
|
+
- d51a577: feat(platform): Discussion attachments + @mention directory + Reference Rail aside
|
|
79
|
+
- **Discussion attachments** — `RichTextCommentInput` now accepts an `extraSlot`
|
|
80
|
+
and a `canSubmitEmpty` flag so hosts can mount the existing
|
|
81
|
+
`CommentAttachment` composer beneath the editor without forking the toolbar.
|
|
82
|
+
`RecordActivityTimeline` plumbs the attachments through
|
|
83
|
+
`DiscussionContext.onUploadAttachments` and submits attachment-only comments.
|
|
84
|
+
- **@mention directory** — `DiscussionContext` gains a `mentionSuggestions`
|
|
85
|
+
field; `RecordDetailView` populates it from the host `sys_user` collection so
|
|
86
|
+
`@` autocomplete in the composer now resolves against real users.
|
|
87
|
+
- **Reference Rail** — New `record:reference_rail` renderer + a dedicated
|
|
88
|
+
`aside` region emitted by `buildDefaultPageSchema` whenever a record has
|
|
89
|
+
≥ 2 related lists. The rail surfaces a Salesforce/HubSpot-style snapshot
|
|
90
|
+
of related collections (count badge + top 3 records) on `xl+` viewports.
|
|
91
|
+
- **Layout** — `PageRenderer`'s structured-layout `<aside>` wrappers now honor
|
|
92
|
+
`aside.className`, letting schemas attach responsive utilities like
|
|
93
|
+
`hidden xl:flex` to the rail region.
|
|
94
|
+
|
|
95
|
+
- d1ec6a2: Fold inline-edit into the page-header overflow menu (HubSpot/Lightning
|
|
96
|
+
pattern) and remove the orphan "Edit fields" toolbar row that previously
|
|
97
|
+
floated between the tab strip and the first detail section.
|
|
98
|
+
- `@object-ui/app-shell` `RecordDetailView`: injects a new `sys_inline_edit`
|
|
99
|
+
system action that appears in the ⋯ overflow menu and dispatches a
|
|
100
|
+
`objectui:record:inline-edit-toggle` window CustomEvent (filtered by
|
|
101
|
+
recordId + objectName).
|
|
102
|
+
- `@object-ui/plugin-detail` `DetailView`: listens for that event to
|
|
103
|
+
toggle inline-edit mode; the in-page toolbar now renders only during
|
|
104
|
+
active editing / save error / locked states, so the idle layout flows
|
|
105
|
+
tabs → first section card with no orphan row.
|
|
106
|
+
- `@object-ui/components` layout containers: extended `KNOWN_LABEL_DICT`
|
|
107
|
+
with zh-CN + zh-TW translations for common CRM related-list labels
|
|
108
|
+
(Quotes / Products / Contacts / Accounts / Leads / Opportunities /
|
|
109
|
+
Cases / Campaigns / Approvals / Documents / Emails / Calls / Meetings
|
|
110
|
+
/ Open Tasks / Closed Tasks), so authored English labels auto-translate
|
|
111
|
+
in `page:accordion` / `page:tabs` items.
|
|
112
|
+
|
|
113
|
+
- d548d6b: Unify empty-state visuals across timeline + registered `empty` renderer.
|
|
114
|
+
- `RecordActivityTimeline` and `ActivityTimeline` now use `DataEmptyState`
|
|
115
|
+
instead of a bare `<p>` so empty timelines match list/related-list visuals
|
|
116
|
+
(muted icon badge + centered copy).
|
|
117
|
+
- The `ui:empty` schema renderer now delegates to `DataEmptyState`, giving
|
|
118
|
+
schema-driven empty regions the same chrome as ad-hoc consumers.
|
|
119
|
+
|
|
120
|
+
- Updated dependencies [bd8447d]
|
|
121
|
+
- Updated dependencies [d51a577]
|
|
122
|
+
- Updated dependencies [1976691]
|
|
123
|
+
- Updated dependencies [cf30cc2]
|
|
124
|
+
- Updated dependencies [5b80cfd]
|
|
125
|
+
- Updated dependencies [49b1760]
|
|
126
|
+
- Updated dependencies [c0b236f]
|
|
127
|
+
- @object-ui/react@5.1.0
|
|
128
|
+
- @object-ui/i18n@5.1.0
|
|
129
|
+
- @object-ui/types@5.1.0
|
|
130
|
+
- @object-ui/core@5.1.0
|
|
131
|
+
|
|
3
132
|
## 5.0.2
|
|
4
133
|
|
|
5
134
|
### Patch Changes
|
package/dist/index.css
CHANGED
|
@@ -982,6 +982,9 @@
|
|
|
982
982
|
.w-40 {
|
|
983
983
|
width: calc(var(--spacing) * 40);
|
|
984
984
|
}
|
|
985
|
+
.w-44 {
|
|
986
|
+
width: calc(var(--spacing) * 44);
|
|
987
|
+
}
|
|
985
988
|
.w-64 {
|
|
986
989
|
width: calc(var(--spacing) * 64);
|
|
987
990
|
}
|
|
@@ -1654,10 +1657,6 @@
|
|
|
1654
1657
|
--tw-border-style: dashed;
|
|
1655
1658
|
border-style: dashed;
|
|
1656
1659
|
}
|
|
1657
|
-
.border-none {
|
|
1658
|
-
--tw-border-style: none;
|
|
1659
|
-
border-style: none;
|
|
1660
|
-
}
|
|
1661
1660
|
.border-\(--color-border\) {
|
|
1662
1661
|
border-color: var(--color-border);
|
|
1663
1662
|
}
|
|
@@ -3170,6 +3169,12 @@
|
|
|
3170
3169
|
border-bottom-right-radius: var(--radius-md);
|
|
3171
3170
|
}
|
|
3172
3171
|
}
|
|
3172
|
+
.last\:border-b-0 {
|
|
3173
|
+
&:last-child {
|
|
3174
|
+
border-bottom-style: var(--tw-border-style);
|
|
3175
|
+
border-bottom-width: 0px;
|
|
3176
|
+
}
|
|
3177
|
+
}
|
|
3173
3178
|
.focus-within\:ring-2 {
|
|
3174
3179
|
&:focus-within {
|
|
3175
3180
|
--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
|
|
@@ -3425,6 +3430,13 @@
|
|
|
3425
3430
|
}
|
|
3426
3431
|
}
|
|
3427
3432
|
}
|
|
3433
|
+
.hover\:no-underline {
|
|
3434
|
+
&:hover {
|
|
3435
|
+
@media (hover: hover) {
|
|
3436
|
+
text-decoration-line: none;
|
|
3437
|
+
}
|
|
3438
|
+
}
|
|
3439
|
+
}
|
|
3428
3440
|
.hover\:underline {
|
|
3429
3441
|
&:hover {
|
|
3430
3442
|
@media (hover: hover) {
|
|
@@ -3536,6 +3548,14 @@
|
|
|
3536
3548
|
background-color: var(--color-accent);
|
|
3537
3549
|
}
|
|
3538
3550
|
}
|
|
3551
|
+
.focus\:bg-destructive\/10 {
|
|
3552
|
+
&:focus {
|
|
3553
|
+
background-color: color-mix(in srgb, hsl(var(--destructive)) 10%, transparent);
|
|
3554
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
3555
|
+
background-color: color-mix(in oklab, var(--color-destructive) 10%, transparent);
|
|
3556
|
+
}
|
|
3557
|
+
}
|
|
3558
|
+
}
|
|
3539
3559
|
.focus\:text-accent-foreground {
|
|
3540
3560
|
&:focus {
|
|
3541
3561
|
color: var(--color-accent-foreground);
|
|
@@ -4826,11 +4846,21 @@
|
|
|
4826
4846
|
padding-inline: calc(var(--spacing) * 4);
|
|
4827
4847
|
}
|
|
4828
4848
|
}
|
|
4849
|
+
.sm\:px-6 {
|
|
4850
|
+
@media (width >= 40rem) {
|
|
4851
|
+
padding-inline: calc(var(--spacing) * 6);
|
|
4852
|
+
}
|
|
4853
|
+
}
|
|
4829
4854
|
.sm\:py-1 {
|
|
4830
4855
|
@media (width >= 40rem) {
|
|
4831
4856
|
padding-block: calc(var(--spacing) * 1);
|
|
4832
4857
|
}
|
|
4833
4858
|
}
|
|
4859
|
+
.sm\:py-4 {
|
|
4860
|
+
@media (width >= 40rem) {
|
|
4861
|
+
padding-block: calc(var(--spacing) * 4);
|
|
4862
|
+
}
|
|
4863
|
+
}
|
|
4834
4864
|
.sm\:text-left {
|
|
4835
4865
|
@media (width >= 40rem) {
|
|
4836
4866
|
text-align: left;
|
|
@@ -5086,6 +5116,12 @@
|
|
|
5086
5116
|
padding-block: calc(var(--spacing) * 0);
|
|
5087
5117
|
}
|
|
5088
5118
|
}
|
|
5119
|
+
.md\:text-2xl {
|
|
5120
|
+
@media (width >= 48rem) {
|
|
5121
|
+
font-size: var(--text-2xl);
|
|
5122
|
+
line-height: var(--tw-leading, var(--text-2xl--line-height));
|
|
5123
|
+
}
|
|
5124
|
+
}
|
|
5089
5125
|
.md\:text-sm {
|
|
5090
5126
|
@media (width >= 48rem) {
|
|
5091
5127
|
font-size: var(--text-sm);
|
|
@@ -5235,6 +5271,11 @@
|
|
|
5235
5271
|
grid-template-columns: repeat(12, minmax(0, 1fr));
|
|
5236
5272
|
}
|
|
5237
5273
|
}
|
|
5274
|
+
.lg\:p-6 {
|
|
5275
|
+
@media (width >= 64rem) {
|
|
5276
|
+
padding: calc(var(--spacing) * 6);
|
|
5277
|
+
}
|
|
5278
|
+
}
|
|
5238
5279
|
.lg\:p-8 {
|
|
5239
5280
|
@media (width >= 64rem) {
|
|
5240
5281
|
padding: calc(var(--spacing) * 8);
|
|
@@ -5261,6 +5302,11 @@
|
|
|
5261
5302
|
grid-column: span 4 / span 4;
|
|
5262
5303
|
}
|
|
5263
5304
|
}
|
|
5305
|
+
.xl\:flex {
|
|
5306
|
+
@media (width >= 80rem) {
|
|
5307
|
+
display: flex;
|
|
5308
|
+
}
|
|
5309
|
+
}
|
|
5264
5310
|
.xl\:grid-cols-1 {
|
|
5265
5311
|
@media (width >= 80rem) {
|
|
5266
5312
|
grid-template-columns: repeat(1, minmax(0, 1fr));
|
package/dist/index.js
CHANGED
|
@@ -6882,7 +6882,7 @@ var $ = ({ region: e, className: t }) => {
|
|
|
6882
6882
|
children: [a && /* @__PURE__ */ T($, { region: a }), c.map((e, t) => /* @__PURE__ */ T($, { region: e }, e.name || `extra-${t}`))]
|
|
6883
6883
|
}),
|
|
6884
6884
|
o && /* @__PURE__ */ T("aside", {
|
|
6885
|
-
className: G("shrink-0", Bc(o.width || "small")),
|
|
6885
|
+
className: G("shrink-0", Bc(o.width || "small"), o.className),
|
|
6886
6886
|
children: /* @__PURE__ */ T($, { region: o })
|
|
6887
6887
|
})
|
|
6888
6888
|
]
|
|
@@ -6959,7 +6959,7 @@ var $ = ({ region: e, className: t }) => {
|
|
|
6959
6959
|
children: [i && /* @__PURE__ */ T($, { region: i }), s.map((e, t) => /* @__PURE__ */ T($, { region: e }, e.name || `extra-${t}`))]
|
|
6960
6960
|
}),
|
|
6961
6961
|
a && /* @__PURE__ */ T("aside", {
|
|
6962
|
-
className: G("shrink-0", Bc(a.width || "small")),
|
|
6962
|
+
className: G("shrink-0", Bc(a.width || "small"), a.className),
|
|
6963
6963
|
children: /* @__PURE__ */ T($, { region: a })
|
|
6964
6964
|
})
|
|
6965
6965
|
]
|
|
@@ -7012,14 +7012,14 @@ var Jc = ({ schema: e }) => e.regions && e.regions.length > 0 ? /* @__PURE__ */
|
|
|
7012
7012
|
default: return /* @__PURE__ */ T(Jc, { schema: e });
|
|
7013
7013
|
}
|
|
7014
7014
|
}, [e, r]), ne = /* @__PURE__ */ T("div", {
|
|
7015
|
-
className: G("min-h-full w-full bg-background p-
|
|
7015
|
+
className: G("min-h-full w-full bg-background p-3 md:p-4 lg:p-6", t),
|
|
7016
7016
|
"data-page-type": r,
|
|
7017
7017
|
"data-obj-id": i,
|
|
7018
7018
|
"data-obj-type": o,
|
|
7019
7019
|
style: s,
|
|
7020
7020
|
...te,
|
|
7021
7021
|
children: /* @__PURE__ */ E("div", {
|
|
7022
|
-
className: G("mx-auto space-y-
|
|
7022
|
+
className: G("mx-auto space-y-6", Vc(r)),
|
|
7023
7023
|
children: [r !== "record" && (e.title || e.description) && /* @__PURE__ */ E("div", {
|
|
7024
7024
|
className: "space-y-2",
|
|
7025
7025
|
children: [e.title && /* @__PURE__ */ T("h1", {
|
|
@@ -7217,13 +7217,28 @@ var yl = {
|
|
|
7217
7217
|
Notes: "备注",
|
|
7218
7218
|
Files: "文件",
|
|
7219
7219
|
Tasks: "任务",
|
|
7220
|
+
"Open Tasks": "待办任务",
|
|
7221
|
+
"Closed Tasks": "已完成任务",
|
|
7220
7222
|
Events: "日程",
|
|
7221
7223
|
Attachments: "附件",
|
|
7222
7224
|
Chatter: "讨论",
|
|
7223
7225
|
Discussion: "讨论",
|
|
7224
7226
|
Comments: "评论",
|
|
7225
7227
|
Overview: "概览",
|
|
7226
|
-
Summary: "摘要"
|
|
7228
|
+
Summary: "摘要",
|
|
7229
|
+
Quotes: "报价单",
|
|
7230
|
+
Products: "产品",
|
|
7231
|
+
Contacts: "联系人",
|
|
7232
|
+
Accounts: "客户",
|
|
7233
|
+
Leads: "线索",
|
|
7234
|
+
Opportunities: "商机",
|
|
7235
|
+
Cases: "服务案例",
|
|
7236
|
+
Campaigns: "营销活动",
|
|
7237
|
+
Approvals: "审批",
|
|
7238
|
+
Documents: "文档",
|
|
7239
|
+
Emails: "邮件",
|
|
7240
|
+
Calls: "通话",
|
|
7241
|
+
Meetings: "会议"
|
|
7227
7242
|
},
|
|
7228
7243
|
"zh-TW": {
|
|
7229
7244
|
Details: "詳情",
|
|
@@ -7233,13 +7248,28 @@ var yl = {
|
|
|
7233
7248
|
Notes: "備註",
|
|
7234
7249
|
Files: "檔案",
|
|
7235
7250
|
Tasks: "任務",
|
|
7251
|
+
"Open Tasks": "待辦任務",
|
|
7252
|
+
"Closed Tasks": "已完成任務",
|
|
7236
7253
|
Events: "行程",
|
|
7237
7254
|
Attachments: "附件",
|
|
7238
7255
|
Chatter: "討論",
|
|
7239
7256
|
Discussion: "討論",
|
|
7240
7257
|
Comments: "評論",
|
|
7241
7258
|
Overview: "概覽",
|
|
7242
|
-
Summary: "摘要"
|
|
7259
|
+
Summary: "摘要",
|
|
7260
|
+
Quotes: "報價單",
|
|
7261
|
+
Products: "產品",
|
|
7262
|
+
Contacts: "聯絡人",
|
|
7263
|
+
Accounts: "客戶",
|
|
7264
|
+
Leads: "線索",
|
|
7265
|
+
Opportunities: "商機",
|
|
7266
|
+
Cases: "服務案例",
|
|
7267
|
+
Campaigns: "行銷活動",
|
|
7268
|
+
Approvals: "審批",
|
|
7269
|
+
Documents: "文件",
|
|
7270
|
+
Emails: "郵件",
|
|
7271
|
+
Calls: "通話",
|
|
7272
|
+
Meetings: "會議"
|
|
7243
7273
|
}
|
|
7244
7274
|
}, Cl = () => {
|
|
7245
7275
|
if (typeof document < "u") {
|
|
@@ -7389,14 +7419,17 @@ e.register("page:tabs", ({ schema: e, className: t, ...n }) => {
|
|
|
7389
7419
|
category: "layout",
|
|
7390
7420
|
isContainer: !0
|
|
7391
7421
|
}), e.register("page:accordion", ({ schema: e, className: t, ...n }) => {
|
|
7392
|
-
let { designer: r } = bl(n), i = e?.items || [], a = !!e?.allowMultiple, o = (e?.variant ?? e?.properties?.variant ?? "flush") === "flush" ? "border-
|
|
7422
|
+
let { designer: r } = bl(n), i = e?.items || [], a = !!e?.allowMultiple, o = (e?.variant ?? e?.properties?.variant ?? "flush") === "flush" ? "border-b last:border-b-0" : void 0, s = i.map((e, t) => ({
|
|
7393
7423
|
...e,
|
|
7394
7424
|
value: `panel-${t}`,
|
|
7395
7425
|
labelStr: wl(xl(e.label))
|
|
7396
7426
|
})), c = s.filter((e) => e.collapsed === !1).map((e) => e.value), l = s.map((e) => /* @__PURE__ */ E(zt, {
|
|
7397
7427
|
value: e.value,
|
|
7398
7428
|
className: o,
|
|
7399
|
-
children: [/* @__PURE__ */ T(Bt, {
|
|
7429
|
+
children: [/* @__PURE__ */ T(Bt, {
|
|
7430
|
+
className: "text-sm font-semibold tracking-tight hover:no-underline",
|
|
7431
|
+
children: e.labelStr
|
|
7432
|
+
}), /* @__PURE__ */ T(Vt, { children: K(e.children) })]
|
|
7400
7433
|
}, e.value));
|
|
7401
7434
|
return a ? /* @__PURE__ */ T(Rt, {
|
|
7402
7435
|
type: "multiple",
|
|
@@ -7446,7 +7479,7 @@ function Ol(e) {
|
|
|
7446
7479
|
return t = t.replace(/([-·:|/–—])[\s\u00A0]*\1/gu, "$1"), t = t.replace(/[\s\u00A0]+/g, " ").trim(), t;
|
|
7447
7480
|
}
|
|
7448
7481
|
e.register("page:header", ({ schema: e, className: t, ...r }) => {
|
|
7449
|
-
let { designer: i } = bl(r), a = m(), { execute: o } = u(), { objectLabel: s } = jt(),
|
|
7482
|
+
let { designer: i } = bl(r), a = m(), { execute: o } = u(), { objectLabel: s, actionLabel: c } = jt(), l = e?.title ?? e?.properties?.title, d = e?.subtitle ?? e?.properties?.subtitle, f = Tl(xl(l), a?.data), p = Tl(xl(d), a?.data), h = (e?.breadcrumb ?? e?.properties?.breadcrumb) !== !1, _ = e?.recordChrome === !1 || e?.properties?.recordChrome === !1, v = e?.showStar !== !1 && e?.properties?.showStar !== !1, y = e?.showCopyId !== !1 && e?.properties?.showCopyId !== !1, b = e?.actions ?? e?.properties?.actions, x = a?.headerSystemActions, S = g.useMemo(() => {
|
|
7450
7483
|
let e = a?.data, t = new n({
|
|
7451
7484
|
record: e,
|
|
7452
7485
|
data: e
|
|
@@ -7473,53 +7506,90 @@ e.register("page:header", ({ schema: e, className: t, ...r }) => {
|
|
|
7473
7506
|
if (e && r(e)) return !1;
|
|
7474
7507
|
}
|
|
7475
7508
|
return !0;
|
|
7476
|
-
}, o = Array.isArray(
|
|
7509
|
+
}, o = Array.isArray(b) ? b.filter(i) : [], s = Array.isArray(x) ? x.filter(i) : [], c = /* @__PURE__ */ new Set(), l = [];
|
|
7477
7510
|
for (let e of [...o, ...s]) {
|
|
7478
7511
|
let t = e?.name || e?.id || "";
|
|
7479
7512
|
t && c.has(t) || (t && c.add(t), l.push(e));
|
|
7480
7513
|
}
|
|
7481
7514
|
return l;
|
|
7482
7515
|
}, [
|
|
7483
|
-
y,
|
|
7484
7516
|
b,
|
|
7517
|
+
x,
|
|
7485
7518
|
a?.data
|
|
7486
|
-
]),
|
|
7487
|
-
|
|
7488
|
-
|
|
7489
|
-
|
|
7490
|
-
|
|
7491
|
-
|
|
7492
|
-
|
|
7493
|
-
|
|
7494
|
-
|
|
7495
|
-
|
|
7496
|
-
|
|
7497
|
-
|
|
7498
|
-
|
|
7499
|
-
|
|
7500
|
-
|
|
7501
|
-
|
|
7502
|
-
|
|
7503
|
-
|
|
7504
|
-
|
|
7505
|
-
|
|
7506
|
-
|
|
7507
|
-
|
|
7508
|
-
|
|
7509
|
-
|
|
7510
|
-
|
|
7511
|
-
|
|
7519
|
+
]), C = () => {
|
|
7520
|
+
if (S.length === 0) return null;
|
|
7521
|
+
let e = (e, t) => {
|
|
7522
|
+
let n = e?.name || e?.id, r = e?.label || n || `Action ${t + 1}`;
|
|
7523
|
+
return n ? c(a?.objectName, n, r) : r;
|
|
7524
|
+
}, t = S.length > 2, n = t ? S.slice(0, 1) : S, r = t ? S.slice(1) : [];
|
|
7525
|
+
return /* @__PURE__ */ E("div", {
|
|
7526
|
+
className: "flex flex-wrap items-center gap-2 shrink-0",
|
|
7527
|
+
role: "toolbar",
|
|
7528
|
+
"aria-label": "Page header actions",
|
|
7529
|
+
children: [n.map((t, n) => {
|
|
7530
|
+
let r = e(t, n), i = t.variant || "default", a = t.size || "sm", s = typeof t.disabled == "boolean" ? t.disabled : void 0, c = typeof t.icon == "string" ? t.icon : null;
|
|
7531
|
+
return /* @__PURE__ */ E(q, {
|
|
7532
|
+
variant: i,
|
|
7533
|
+
size: a,
|
|
7534
|
+
disabled: s,
|
|
7535
|
+
className: "gap-2",
|
|
7536
|
+
onClick: () => {
|
|
7537
|
+
if (typeof t.onClick == "function") {
|
|
7538
|
+
t.onClick();
|
|
7539
|
+
return;
|
|
7540
|
+
}
|
|
7541
|
+
o(t);
|
|
7542
|
+
},
|
|
7543
|
+
children: [c && /* @__PURE__ */ T(al, {
|
|
7544
|
+
name: c,
|
|
7545
|
+
className: "h-4 w-4"
|
|
7546
|
+
}), /* @__PURE__ */ T("span", { children: r })]
|
|
7547
|
+
}, t.name || t.id || `header-action-${n}`);
|
|
7548
|
+
}), t && /* @__PURE__ */ E(Lr, { children: [/* @__PURE__ */ T(Rr, {
|
|
7549
|
+
asChild: !0,
|
|
7550
|
+
children: /* @__PURE__ */ T(q, {
|
|
7551
|
+
variant: "outline",
|
|
7552
|
+
size: "sm",
|
|
7553
|
+
className: "gap-1 px-2",
|
|
7554
|
+
"aria-label": "More actions",
|
|
7555
|
+
children: /* @__PURE__ */ T(je, { className: "h-4 w-4" })
|
|
7556
|
+
})
|
|
7557
|
+
}), /* @__PURE__ */ T(Gr, {
|
|
7558
|
+
align: "end",
|
|
7559
|
+
className: "w-44",
|
|
7560
|
+
children: r.map((t, n) => {
|
|
7561
|
+
let r = e(t, n + 1), i = typeof t.disabled == "boolean" ? t.disabled : void 0, a = typeof t.icon == "string" ? t.icon : null;
|
|
7562
|
+
return /* @__PURE__ */ E(Kr, {
|
|
7563
|
+
disabled: i,
|
|
7564
|
+
onSelect: (e) => {
|
|
7565
|
+
if (e.preventDefault(), typeof t.onClick == "function") {
|
|
7566
|
+
t.onClick();
|
|
7567
|
+
return;
|
|
7568
|
+
}
|
|
7569
|
+
o(t);
|
|
7570
|
+
},
|
|
7571
|
+
className: G("gap-2", (t.variant === "destructive" || t.name === "sys_delete") && "text-destructive focus:text-destructive focus:bg-destructive/10"),
|
|
7572
|
+
children: [a && /* @__PURE__ */ T(al, {
|
|
7573
|
+
name: a,
|
|
7574
|
+
className: "h-4 w-4"
|
|
7575
|
+
}), /* @__PURE__ */ T("span", { children: r })]
|
|
7576
|
+
}, t.name || t.id || `overflow-action-${n}`);
|
|
7577
|
+
})
|
|
7578
|
+
})] })]
|
|
7579
|
+
});
|
|
7580
|
+
};
|
|
7581
|
+
if (a?.data && a?.objectSchema && !_) {
|
|
7512
7582
|
let e = a.data, n = a.objectSchema, r = a.objectName || n?.name, o = xl(n?.label) || n?.name || a.objectName || "", c = r ? s({
|
|
7513
7583
|
name: r,
|
|
7514
7584
|
label: o
|
|
7515
|
-
}) : o || void 0, l = n?.primaryField, u = n?.titleFormat,
|
|
7585
|
+
}) : o || void 0, l = n?.primaryField, u = n?.titleFormat, d = typeof u == "string" ? u : u && typeof u == "object" && typeof u.source == "string" ? u.source : void 0, m = d ? Ol(Tl(d, e).trim()) : "", g = f || l && e?.[l] || (m && !m.includes("{") ? m : "") || e?.name || e?.full_name || e?.title || e?.subject || e?.display_name || e?.label || (c && e?.id ? `${c} ${String(e.id).slice(0, 8)}` : "") || c || "";
|
|
7516
7586
|
return /* @__PURE__ */ E("header", {
|
|
7517
7587
|
className: G("flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 sm:gap-4 pb-4 border-b", t),
|
|
7518
7588
|
...i,
|
|
7519
7589
|
children: [/* @__PURE__ */ E("div", {
|
|
7520
7590
|
className: "flex flex-col min-w-0 flex-1",
|
|
7521
7591
|
children: [
|
|
7522
|
-
|
|
7592
|
+
h && /* @__PURE__ */ T("div", {
|
|
7523
7593
|
className: "text-xs text-muted-foreground mb-1",
|
|
7524
7594
|
"data-page-breadcrumb-slot": !0
|
|
7525
7595
|
}),
|
|
@@ -7527,17 +7597,17 @@ e.register("page:header", ({ schema: e, className: t, ...r }) => {
|
|
|
7527
7597
|
title: g,
|
|
7528
7598
|
objectLabel: c,
|
|
7529
7599
|
resourceId: e?.id ? String(e.id) : void 0,
|
|
7530
|
-
showStar:
|
|
7531
|
-
showCopyId:
|
|
7600
|
+
showStar: v,
|
|
7601
|
+
showCopyId: y,
|
|
7532
7602
|
isFavorite: a?.isFavorite,
|
|
7533
7603
|
onToggleFavorite: a?.onToggleFavorite ? () => a.onToggleFavorite() : void 0
|
|
7534
7604
|
}),
|
|
7535
|
-
|
|
7605
|
+
p && /* @__PURE__ */ T("p", {
|
|
7536
7606
|
className: "text-sm text-muted-foreground mt-1",
|
|
7537
|
-
children:
|
|
7607
|
+
children: p
|
|
7538
7608
|
})
|
|
7539
7609
|
]
|
|
7540
|
-
}),
|
|
7610
|
+
}), C() ?? /* @__PURE__ */ T("div", {
|
|
7541
7611
|
"data-page-actions-slot": !0,
|
|
7542
7612
|
className: "shrink-0"
|
|
7543
7613
|
})]
|
|
@@ -7546,21 +7616,21 @@ e.register("page:header", ({ schema: e, className: t, ...r }) => {
|
|
|
7546
7616
|
return /* @__PURE__ */ E("header", {
|
|
7547
7617
|
className: G("flex flex-col gap-2 pb-4 border-b", t),
|
|
7548
7618
|
...i,
|
|
7549
|
-
children: [
|
|
7619
|
+
children: [h && /* @__PURE__ */ T("div", {
|
|
7550
7620
|
className: "text-xs text-muted-foreground",
|
|
7551
7621
|
"data-page-breadcrumb-slot": !0
|
|
7552
7622
|
}), /* @__PURE__ */ E("div", {
|
|
7553
7623
|
className: "flex items-center justify-between gap-4",
|
|
7554
7624
|
children: [/* @__PURE__ */ E("div", {
|
|
7555
7625
|
className: "flex flex-col",
|
|
7556
|
-
children: [
|
|
7626
|
+
children: [f && /* @__PURE__ */ T("h1", {
|
|
7557
7627
|
className: "text-2xl font-semibold tracking-tight",
|
|
7558
|
-
children: d
|
|
7559
|
-
}), f && /* @__PURE__ */ T("p", {
|
|
7560
|
-
className: "text-sm text-muted-foreground",
|
|
7561
7628
|
children: f
|
|
7629
|
+
}), p && /* @__PURE__ */ T("p", {
|
|
7630
|
+
className: "text-sm text-muted-foreground",
|
|
7631
|
+
children: p
|
|
7562
7632
|
})]
|
|
7563
|
-
}),
|
|
7633
|
+
}), C() ?? /* @__PURE__ */ T("div", { "data-page-actions-slot": !0 })]
|
|
7564
7634
|
})]
|
|
7565
7635
|
});
|
|
7566
7636
|
}, {
|
|
@@ -8598,24 +8668,16 @@ e.register("statistic", ({ schema: e }) => {
|
|
|
8598
8668
|
}],
|
|
8599
8669
|
defaultProps: { size: "md" }
|
|
8600
8670
|
}), e.register("empty", ({ schema: e, ...t }) => {
|
|
8601
|
-
let { "data-obj-id": n, "data-obj-type": r, style: i,
|
|
8602
|
-
return /* @__PURE__ */
|
|
8603
|
-
|
|
8604
|
-
|
|
8671
|
+
let { "data-obj-id": n, "data-obj-type": r, style: i, action: a, icon: s, ...c } = t, l = e.action, u = l && typeof l == "object" ? /* @__PURE__ */ T(o, { schema: l }) : void 0;
|
|
8672
|
+
return /* @__PURE__ */ T(Ec, {
|
|
8673
|
+
title: e.title || "No data",
|
|
8674
|
+
description: e.description,
|
|
8675
|
+
className: e.className,
|
|
8676
|
+
action: u,
|
|
8677
|
+
...c,
|
|
8605
8678
|
"data-obj-id": n,
|
|
8606
8679
|
"data-obj-type": r,
|
|
8607
|
-
style: i
|
|
8608
|
-
children: [
|
|
8609
|
-
/* @__PURE__ */ T(Te, { className: "h-12 w-12 text-muted-foreground mb-4" }),
|
|
8610
|
-
/* @__PURE__ */ T("h3", {
|
|
8611
|
-
className: "text-lg font-semibold",
|
|
8612
|
-
children: e.title || "No data"
|
|
8613
|
-
}),
|
|
8614
|
-
e.description && /* @__PURE__ */ T("p", {
|
|
8615
|
-
className: "text-sm text-muted-foreground mt-2",
|
|
8616
|
-
children: e.description
|
|
8617
|
-
})
|
|
8618
|
-
]
|
|
8680
|
+
style: i
|
|
8619
8681
|
});
|
|
8620
8682
|
}, {
|
|
8621
8683
|
namespace: "ui",
|
package/dist/index.umd.cjs
CHANGED
|
@@ -15,5 +15,5 @@ ${n.map(([e,n])=>{let r=n.theme?.[t]||n.color;return r?` --color-${e}: ${r};`:n
|
|
|
15
15
|
0% { transform: translateX(-100%); }
|
|
16
16
|
100% { transform: translateX(400%); }
|
|
17
17
|
}
|
|
18
|
-
`,document.head.appendChild(t),Zo=!0}var $o=({active:e,ariaLabel:t=`Refreshing`,className:n,...r})=>(a.useEffect(()=>{e&&Qo()},[e]),e?(0,o.jsx)(`div`,{className:B(`pointer-events-none absolute inset-x-0 top-0 z-20 h-0.5 overflow-hidden`,n),role:`progressbar`,"aria-busy":`true`,"aria-label":t,"data-testid":`refresh-indicator`,...r,children:(0,o.jsx)(`div`,{className:`h-full w-1/4 rounded-full bg-primary/70`,style:{animation:`objui-refresh-bar 1.1s ease-in-out infinite`}})}):null);$o.displayName=`RefreshIndicator`;function es({className:e,message:t=`Loading…`,...n}){return(0,o.jsxs)(`div`,{role:`status`,"aria-label":t,"data-slot":`data-loading-state`,className:B(`flex flex-col items-center justify-center gap-3 p-6 text-center`,e),...n,children:[(0,o.jsx)(c.Loader2,{className:`size-6 animate-spin text-muted-foreground`}),t&&(0,o.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t})]})}function ts({className:e,icon:t,title:n=`No data`,description:r,action:i,children:a,...s}){return(0,o.jsxs)(`div`,{"data-slot":`data-empty-state`,className:B(`flex flex-col items-center justify-center gap-3 p-6 text-center`,e),...s,children:[(0,o.jsx)(`div`,{className:`flex size-10 items-center justify-center rounded-lg bg-muted`,children:t??(0,o.jsx)(c.InboxIcon,{className:`size-5 text-muted-foreground`})}),n&&(0,o.jsx)(`h3`,{className:`text-sm font-medium`,children:n}),r&&(0,o.jsx)(`p`,{className:`max-w-sm text-sm text-muted-foreground`,children:r}),i,a]})}function ns({className:e,title:t=`Something went wrong`,message:n,onRetry:r,retryLabel:i=`Retry`,children:a,...s}){return(0,o.jsxs)(`div`,{role:`alert`,"data-slot":`data-error-state`,className:B(`flex flex-col items-center justify-center gap-3 p-6 text-center`,e),...s,children:[(0,o.jsx)(`div`,{className:`flex size-10 items-center justify-center rounded-lg bg-destructive/10`,children:(0,o.jsx)(c.AlertCircle,{className:`size-5 text-destructive`})}),t&&(0,o.jsx)(`h3`,{className:`text-sm font-medium`,children:t}),n&&(0,o.jsx)(`p`,{className:`max-w-sm text-sm text-muted-foreground`,children:n}),r&&(0,o.jsx)(W,{variant:`outline`,size:`sm`,onClick:r,children:i}),a]})}var rs=a.forwardRef(({className:e,children:t,...n},r)=>(0,o.jsxs)(Tt,{children:[(0,o.jsx)(Dt,{}),(0,o.jsxs)(b.Content,{ref:r,className:B(`fixed inset-0 z-50 w-full bg-background p-4 shadow-lg duration-200`,`h-[100dvh]`,`sm:inset-auto sm:left-[50%] sm:top-[50%] sm:translate-x-[-50%] sm:translate-y-[-50%]`,`sm:max-w-lg sm:h-auto sm:max-h-[90vh] sm:rounded-lg sm:border sm:p-6`,`data-[state=open]:animate-in data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,`data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95`,`data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%]`,`data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]`,e),...n,children:[t,(0,o.jsxs)(b.Close,{className:B(`absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity`,`hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2`,`disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground`,`min-h-[44px] min-w-[44px] sm:min-h-0 sm:min-w-0 flex items-center justify-center`),children:[(0,o.jsx)(c.X,{className:`h-5 w-5 sm:h-4 sm:w-4`}),(0,o.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]}));rs.displayName=`MobileDialogContent`;function is(e){return!e&&e!==0?``:e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:`${(e/(1024*1024*1024)).toFixed(2)} GB`}function as({open:e,onOpenChange:t,job:n,title:r,description:i,filename:s,allowCloseWhileRunning:l=!0,className:u,onAfterDownload:d,closeAfterDownloadMs:f}){let{progress:p,error:m,isRunning:h,cancel:g,download:_,reset:v}=n,y=p?.status,b=typeof p?.percentComplete==`number`?Math.max(0,Math.min(100,p.percentComplete)):void 0,x=y===`completed`,S=y===`failed`||y===`expired`,C=y===`cancelled`,w=a.useCallback(async()=>{await _(s)&&(d?.(),f&&f>0&&setTimeout(()=>t(!1),f))},[_,s,d,f,t]),T=a.useCallback(e=>{!e&&h&&!l||(t(e),!e&&!h&&setTimeout(v,0))},[h,l,t,v]),E=r??(x?`Export ready`:S?`Export failed`:C?`Export cancelled`:`Exporting…`),D=i??(x?`Your export is ready to download.`:S?`The export job did not complete.`:C?`The export was cancelled.`:`Your export is being prepared on the server. You can close this window — the job will continue in the background.`);return(0,o.jsx)(Ct,{open:e,onOpenChange:T,children:(0,o.jsxs)(Ot,{"data-testid":`export-progress-dialog`,className:B(`sm:max-w-md`,u),children:[(0,o.jsxs)(kt,{children:[(0,o.jsxs)(jt,{className:`flex items-center gap-2`,children:[x?(0,o.jsx)(c.CheckCircle2,{className:`h-5 w-5 text-green-600`,"aria-hidden":`true`}):S?(0,o.jsx)(c.AlertCircle,{className:`h-5 w-5 text-destructive`,"aria-hidden":`true`}):(0,o.jsx)(c.Loader2,{className:B(`h-5 w-5 text-muted-foreground`,h&&`animate-spin`),"aria-hidden":`true`}),E]}),(0,o.jsx)(Mt,{children:D})]}),(0,o.jsxs)(`div`,{className:`py-2 space-y-3`,children:[(h||x)&&(0,o.jsx)(`div`,{"data-testid":`export-progress-bar`,children:b===void 0?(0,o.jsx)(Or,{value:void 0,"aria-label":`Export progress (indeterminate)`}):(0,o.jsx)(Or,{value:b,"aria-label":`Export progress`})}),(0,o.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-muted-foreground`,children:[(0,o.jsx)(`span`,{"data-testid":`export-progress-counts`,children:p?.processedRecords==null?h?`Starting…`:``:`${p.processedRecords.toLocaleString()}${p.totalRecords==null?``:` / ${p.totalRecords.toLocaleString()}`} records`}),(0,o.jsx)(`span`,{"data-testid":`export-progress-percent`,children:b===void 0?``:`${b.toFixed(0)}%`})]}),p?.fileSize?(0,o.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:is(p.fileSize)}):null,(m||p?.error)&&(0,o.jsx)(`div`,{"data-testid":`export-progress-error`,className:`text-xs text-destructive bg-destructive/10 border border-destructive/30 rounded-md px-2 py-1`,children:m?.message||p?.error?.message})]}),(0,o.jsxs)(At,{className:`gap-2 sm:gap-2`,children:[h&&(0,o.jsxs)(W,{type:`button`,variant:`ghost`,onClick:()=>g(),"data-testid":`export-progress-cancel`,children:[(0,o.jsx)(c.X,{className:`h-4 w-4`,"aria-hidden":`true`}),(0,o.jsx)(`span`,{className:`ml-1`,children:`Cancel`})]}),x&&(0,o.jsxs)(W,{type:`button`,variant:`default`,onClick:w,"data-testid":`export-progress-download`,children:[(0,o.jsx)(c.Download,{className:`h-4 w-4`,"aria-hidden":`true`}),(0,o.jsx)(`span`,{className:`ml-1`,children:`Download`})]}),!h&&(0,o.jsx)(W,{type:`button`,variant:`outline`,onClick:()=>T(!1),"data-testid":`export-progress-close`,children:`Close`})]})]})})}t.ComponentRegistry.register(`combobox`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,o.jsx)(Pa,{options:e.options||[],placeholder:e.placeholder,value:e.value,disabled:e.disabled,className:e.className,...a,"data-obj-id":n,"data-obj-type":r,style:i})},{namespace:`ui`,label:`Combobox`,inputs:[{name:`placeholder`,type:`string`,label:`Placeholder`},{name:`value`,type:`string`,label:`Value`},{name:`disabled`,type:`boolean`,label:`Disabled`,defaultValue:!1},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{placeholder:`Select option...`,options:[]}}),t.ComponentRegistry.register(`command`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,o.jsxs)(Nt,{className:e.className,...a,"data-obj-id":n,"data-obj-type":r,style:i,children:[(0,o.jsx)(Ft,{placeholder:e.placeholder||`Type a command or search...`}),(0,o.jsxs)(It,{children:[(0,o.jsx)(Lt,{children:e.emptyText||`No results found.`}),e.groups?.map((e,t)=>(0,o.jsx)(Rt,{heading:e.heading,children:e.items?.map((e,t)=>(0,o.jsx)(Bt,{value:e.value,children:e.label},t))},t))]})]})},{namespace:`ui`,label:`Command`,inputs:[{name:`placeholder`,type:`string`,label:`Placeholder`},{name:`emptyText`,type:`string`,label:`Empty Text`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{placeholder:`Type a command or search...`,emptyText:`No results found.`,groups:[]}});var os=(0,a.forwardRef)(({schema:e,className:t,...n},r)=>{let{"data-obj-id":i,"data-obj-type":a,style:s,...c}=n,l=e.clickable||!!n.onClick;return(0,o.jsxs)(Xe,{ref:r,className:B(t,(e.hoverable||l)&&`transition-colors hover:bg-muted/50`,l&&`cursor-pointer active:bg-muted`),...c,"data-obj-id":i,"data-obj-type":a,style:s,children:[(e.title||e.description||e.header)&&(0,o.jsxs)(Ze,{children:[e.title&&(0,o.jsx)(Qe,{children:e.title}),e.description&&(0,o.jsx)($e,{children:e.description}),e.header&&V(e.header)]}),(e.children||e.body)&&(0,o.jsx)(et,{children:V(e.children||e.body)}),e.footer&&(0,o.jsx)(tt,{className:`flex justify-between`,children:V(e.footer)})]})});t.ComponentRegistry.register(`card`,os,{namespace:`ui`,label:`Card`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{title:`Card Title`,description:`Card description goes here`,className:`w-full`},isContainer:!0,resizable:!0,resizeConstraints:{width:!0,height:!0,minWidth:200,minHeight:100}}),t.ComponentRegistry.register(`tabs`,({schema:e,className:t,onChange:n,value:r,...i})=>{let{"data-obj-id":a,"data-obj-type":s,style:c,...l}=i,u=e=>{n&&n(e)},d=e.orientation===`vertical`;return(0,o.jsxs)(Xi,{defaultValue:r===void 0?e.defaultValue:void 0,value:r??e.value,onValueChange:u,orientation:e.orientation||`horizontal`,className:B(t,d&&`flex gap-2`),...l,"data-obj-id":a,"data-obj-type":s,style:c,children:[(0,o.jsx)(Zi,{className:B(d&&`flex-col h-auto items-stretch bg-muted/50 p-1`),children:e.items?.map(e=>(0,o.jsx)(Qi,{value:e.value,disabled:e.disabled,className:B(d&&`justify-start`),children:e.label},e.value))}),e.items?.map(e=>(0,o.jsx)($i,{value:e.value,className:B(`mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,d&&`mt-0 flex-1`),children:V(e.content||e.body)},e.value))]})},{namespace:`ui`,label:`Tabs`,inputs:[{name:`defaultValue`,type:`string`,label:`Default Value`,required:!0},{name:`className`,type:`string`,label:`CSS Class`},{name:`items`,type:`array`,label:`Items`}],defaultProps:{defaultValue:`tab1`,items:[{label:`Tab 1`,value:`tab1`,body:[{type:`text`,content:`Content for Tab 1`}]},{label:`Tab 2`,value:`tab2`,body:[{type:`text`,content:`Content for Tab 2`}]},{label:`Tab 3`,value:`tab3`,body:[{type:`text`,content:`Content for Tab 3`}]}],className:`w-full`}});var ss={1:`grid-cols-1`,2:`grid-cols-2`,3:`grid-cols-3`,4:`grid-cols-4`,5:`grid-cols-5`,6:`grid-cols-6`,7:`grid-cols-7`,8:`grid-cols-8`,9:`grid-cols-9`,10:`grid-cols-10`,11:`grid-cols-11`,12:`grid-cols-12`},cs={1:`sm:grid-cols-1`,2:`sm:grid-cols-2`,3:`sm:grid-cols-3`,4:`sm:grid-cols-4`,5:`sm:grid-cols-5`,6:`sm:grid-cols-6`,7:`sm:grid-cols-7`,8:`sm:grid-cols-8`,9:`sm:grid-cols-9`,10:`sm:grid-cols-10`,11:`sm:grid-cols-11`,12:`sm:grid-cols-12`},ls={1:`md:grid-cols-1`,2:`md:grid-cols-2`,3:`md:grid-cols-3`,4:`md:grid-cols-4`,5:`md:grid-cols-5`,6:`md:grid-cols-6`,7:`md:grid-cols-7`,8:`md:grid-cols-8`,9:`md:grid-cols-9`,10:`md:grid-cols-10`,11:`md:grid-cols-11`,12:`md:grid-cols-12`},us={1:`lg:grid-cols-1`,2:`lg:grid-cols-2`,3:`lg:grid-cols-3`,4:`lg:grid-cols-4`,5:`lg:grid-cols-5`,6:`lg:grid-cols-6`,7:`lg:grid-cols-7`,8:`lg:grid-cols-8`,9:`lg:grid-cols-9`,10:`lg:grid-cols-10`,11:`lg:grid-cols-11`,12:`lg:grid-cols-12`},ds={1:`xl:grid-cols-1`,2:`xl:grid-cols-2`,3:`xl:grid-cols-3`,4:`xl:grid-cols-4`,5:`xl:grid-cols-5`,6:`xl:grid-cols-6`,7:`xl:grid-cols-7`,8:`xl:grid-cols-8`,9:`xl:grid-cols-9`,10:`xl:grid-cols-10`,11:`xl:grid-cols-11`,12:`xl:grid-cols-12`},fs={0:`gap-0`,1:`gap-1`,2:`gap-2`,3:`gap-3`,4:`gap-4`,5:`gap-5`,6:`gap-6`,8:`gap-8`,10:`gap-10`,12:`gap-12`};t.ComponentRegistry.register(`grid`,({schema:e,className:t,...n})=>{let r=2,i,a,s,c;typeof e.columns==`number`?r=e.columns:typeof e.columns==`object`&&e.columns!==null&&(r=e.columns.xs??1,i=e.columns.sm,a=e.columns.md,s=e.columns.lg,c=e.columns.xl),e.smColumns&&(i=e.smColumns),e.mdColumns&&(a=e.mdColumns),e.lgColumns&&(s=e.lgColumns),e.xlColumns&&(c=e.xlColumns);let l=e.gap??4,u=B(`grid`,ss[r]||`grid-cols-2`,i&&cs[i],a&&ls[a],s&&us[s],c&&ds[c],fs[l]||`gap-[${l*.25}rem]`,t),{"data-obj-id":d,"data-obj-type":f,style:p,...m}=n;return(0,o.jsx)(`div`,{className:u,...m,"data-obj-id":d,"data-obj-type":f,style:p,children:e.children&&V(e.children)})},{namespace:`ui`,label:`Grid Layout`,inputs:[{name:`columns`,type:`number`,label:`Base Columns (Mobile)`,defaultValue:2,description:`Number of columns on mobile devices`},{name:`smColumns`,type:`number`,label:`SM Columns (Tablet)`,description:`Columns at sm breakpoint (>640px)`},{name:`mdColumns`,type:`number`,label:`MD Columns (Laptop)`,description:`Columns at md breakpoint (>768px)`},{name:`lgColumns`,type:`number`,label:`LG Columns (Desktop)`,description:`Columns at lg breakpoint (>1024px)`},{name:`xlColumns`,type:`number`,label:`XL Columns (Wide)`,description:`Columns at xl breakpoint (>1280px)`},{name:`gap`,type:`number`,label:`Gap`,defaultValue:4,description:`Gap between items (0-12)`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{columns:1,mdColumns:2,lgColumns:4,gap:4,children:[{type:`card`,title:`Card 1`,description:`First card`},{type:`card`,title:`Card 2`,description:`Second card`},{type:`card`,title:`Card 3`,description:`Third card`},{type:`card`,title:`Card 4`,description:`Fourth card`}]},isContainer:!0,resizable:!0,resizeConstraints:{width:!0,height:!0,minWidth:200,minHeight:100}}),t.ComponentRegistry.register(`flex`,({schema:e,className:t,...n})=>{let r=e.direction||`row`,i=e.justify||`start`,a=e.align||`start`,s=e.gap||2,c=e.wrap||!1,l=B(`flex`,r===`row`&&`flex-row`,r===`col`&&`flex-col`,r===`row-reverse`&&`flex-row-reverse`,r===`col-reverse`&&`flex-col-reverse`,i===`start`&&`justify-start`,i===`end`&&`justify-end`,i===`center`&&`justify-center`,i===`between`&&`justify-between`,i===`around`&&`justify-around`,i===`evenly`&&`justify-evenly`,a===`start`&&`items-start`,a===`end`&&`items-end`,a===`center`&&`items-center`,a===`baseline`&&`items-baseline`,a===`stretch`&&`items-stretch`,s===0&&`gap-0`,s===1&&`gap-1`,s===2&&`gap-1.5 sm:gap-2`,s===3&&`gap-2 sm:gap-3`,s===4&&`gap-2 sm:gap-3 md:gap-4`,s===5&&`gap-3 sm:gap-4 md:gap-5`,s===6&&`gap-3 sm:gap-4 md:gap-6`,s===7&&`gap-4 sm:gap-5 md:gap-7`,s===8&&`gap-4 sm:gap-6 md:gap-8`,c&&`flex-wrap`,t),{"data-obj-id":u,"data-obj-type":d,style:f,...p}=n;return(0,o.jsx)(`div`,{className:l,...p,"data-obj-id":u,"data-obj-type":d,style:f,children:e.children&&V(e.children)})},{namespace:`ui`,label:`Flex Layout`,inputs:[{name:`direction`,type:`enum`,enum:[`row`,`col`,`row-reverse`,`col-reverse`],label:`Direction`,defaultValue:`row`},{name:`justify`,type:`enum`,enum:[`start`,`end`,`center`,`between`,`around`,`evenly`],label:`Justify Content`,defaultValue:`start`},{name:`align`,type:`enum`,enum:[`start`,`end`,`center`,`baseline`,`stretch`],label:`Align Items`,defaultValue:`start`},{name:`gap`,type:`number`,label:`Gap`,defaultValue:2,description:`Gap between items (0-8)`},{name:`wrap`,type:`boolean`,label:`Wrap`,defaultValue:!1,description:`Allow flex items to wrap`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{direction:`row`,justify:`start`,align:`center`,gap:2,wrap:!1,children:[{type:`button`,label:`Button 1`},{type:`button`,label:`Button 2`},{type:`button`,label:`Button 3`}]}});var ps=(0,a.forwardRef)(({schema:e,className:t,...n},r)=>{let i=e.direction||`col`,a=e.justify||`start`,s=e.align||`stretch`,c=e.gap??e.spacing??2,l=e.wrap||!1,u=B(`flex`,i===`row`&&`flex-row`,i===`col`&&`flex-col`,i===`row-reverse`&&`flex-row-reverse`,i===`col-reverse`&&`flex-col-reverse`,a===`start`&&`justify-start`,a===`end`&&`justify-end`,a===`center`&&`justify-center`,a===`between`&&`justify-between`,a===`around`&&`justify-around`,a===`evenly`&&`justify-evenly`,s===`start`&&`items-start`,s===`end`&&`items-end`,s===`center`&&`items-center`,s===`baseline`&&`items-baseline`,s===`stretch`&&`items-stretch`,c===0&&`gap-0`,c===1&&`gap-1`,c===2&&`gap-1.5 sm:gap-2`,c===3&&`gap-2 sm:gap-3`,c===4&&`gap-2 sm:gap-3 md:gap-4`,c===5&&`gap-3 sm:gap-4 md:gap-5`,c===6&&`gap-3 sm:gap-4 md:gap-6`,c===8&&`gap-4 sm:gap-6 md:gap-8`,c===10&&`gap-5 sm:gap-7 md:gap-10`,l&&`flex-wrap`,t),{"data-obj-id":d,"data-obj-type":f,style:p,...m}=n;return(0,o.jsx)(`div`,{ref:r,className:u,...m,"data-obj-id":d,"data-obj-type":f,style:p,children:e.children&&V(e.children)})});t.ComponentRegistry.register(`stack`,ps,{namespace:`ui`,label:`Stack`,inputs:[{name:`direction`,type:`enum`,label:`Direction`,enum:[`col`,`row`,`col-reverse`,`row-reverse`],defaultValue:`col`},{name:`gap`,type:`number`,label:`Gap`,defaultValue:2},{name:`align`,type:`enum`,label:`Align Items`,enum:[`start`,`end`,`center`,`stretch`,`baseline`],defaultValue:`stretch`},{name:`justify`,type:`enum`,label:`Justify Content`,enum:[`start`,`end`,`center`,`between`,`around`,`evenly`],defaultValue:`start`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{direction:`col`,gap:2,align:`stretch`,children:[]},isContainer:!0,resizable:!0,resizeConstraints:{width:!0,height:!0,minWidth:100,minHeight:50}});var ms=(0,a.forwardRef)(({schema:e,className:t,...n},r)=>{let i=e.maxWidth||`xl`,a=e.padding||4,s=e.centered!==!1,c=B(`w-full`,i===`sm`&&`max-w-sm`,i===`md`&&`max-w-md`,i===`lg`&&`max-w-lg`,i===`xl`&&`max-w-xl`,i===`2xl`&&`max-w-2xl`,i===`3xl`&&`max-w-3xl`,i===`4xl`&&`max-w-4xl`,i===`5xl`&&`max-w-5xl`,i===`6xl`&&`max-w-6xl`,i===`7xl`&&`max-w-7xl`,i===`full`&&`max-w-full`,i===`screen`&&`max-w-screen-2xl`,s&&`mx-auto`,a===0&&`p-0`,a===1&&`p-0.5 sm:p-1`,a===2&&`p-1 sm:p-2`,a===3&&`p-2 sm:p-3`,a===4&&`p-2 sm:p-3 md:p-4`,a===5&&`p-3 sm:p-4 md:p-5`,a===6&&`p-3 sm:p-4 md:p-6`,a===7&&`p-4 sm:p-5 md:p-7`,a===8&&`p-4 sm:p-6 md:p-8`,a===10&&`p-5 sm:p-7 md:p-10`,a===12&&`p-6 sm:p-8 md:p-12`,a===16&&`p-8 sm:p-10 md:p-16`,t),{"data-obj-id":l,"data-obj-type":u,style:d,...f}=n;return(0,o.jsx)(`div`,{ref:r,className:c,...f,"data-obj-id":l,"data-obj-type":u,style:d,children:e.children&&V(e.children)})});t.ComponentRegistry.register(`container`,ms,{namespace:`ui`,label:`Container`,inputs:[{name:`maxWidth`,type:`enum`,enum:[`sm`,`md`,`lg`,`xl`,`2xl`,`3xl`,`4xl`,`5xl`,`6xl`,`7xl`,`full`,`screen`],label:`Max Width`,defaultValue:`xl`},{name:`padding`,type:`number`,label:`Padding`,defaultValue:4,description:`Padding value (0, 1-8, 10, 12, 16)`},{name:`centered`,type:`boolean`,label:`Center Horizontally`,defaultValue:!0},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{maxWidth:`xl`,padding:4,centered:!0,children:[{type:`text`,content:`Container content goes here`}]},isContainer:!0,resizable:!0,resizeConstraints:{width:!0,height:!0,minWidth:200,minHeight:100}});function hs(e){switch(e){case`small`:return`w-64`;case`medium`:return`w-80`;case`large`:return`w-96`;case`full`:return`w-full`;default:return e||`w-full`}}function gs(e){switch(e){case`utility`:return`max-w-4xl`;case`home`:return`max-w-screen-2xl`;case`app`:return`max-w-screen-xl`;default:return`max-w-7xl`}}function Q(e,t){return e?.find(e=>e.name?.toLowerCase()===t.toLowerCase())}function _s(e,t){if(!e)return[];let n=new Set(t.map(e=>e.toLowerCase()));return e.filter(e=>!n.has(e.name?.toLowerCase()??``))}var $=({region:e,className:t})=>{let n=e.components||[];return n.length===0?null:(0,o.jsx)(`div`,{className:B(`space-y-4`,e.className,t),"data-region":e.name,children:n.map((t,n)=>(0,o.jsx)(i.SchemaRenderer,{schema:t},t?.id||`${e.name}-${n}`))})},vs=({regions:e,pageType:t,className:n})=>{let r=Q(e,`header`),i=Q(e,`sidebar`),a=Q(e,`main`),s=Q(e,`aside`),c=Q(e,`footer`),l=_s(e,[`header`,`sidebar`,`main`,`aside`,`footer`]);return r||i||a||s||c?(0,o.jsxs)(`div`,{className:B(`flex flex-col gap-6`,n),"data-page-layout":t,children:[r&&(0,o.jsx)($,{region:r,className:B(hs(r.width))}),(0,o.jsxs)(`div`,{className:`flex flex-1 gap-6`,children:[i&&(0,o.jsx)(`aside`,{className:B(`shrink-0`,hs(i.width||`small`)),children:(0,o.jsx)($,{region:i})}),(0,o.jsxs)(`div`,{className:`flex-1 min-w-0 space-y-6`,children:[a&&(0,o.jsx)($,{region:a}),l.map((e,t)=>(0,o.jsx)($,{region:e},e.name||`extra-${t}`))]}),s&&(0,o.jsx)(`aside`,{className:B(`shrink-0`,hs(s.width||`small`)),children:(0,o.jsx)($,{region:s})})]}),c&&(0,o.jsx)($,{region:c,className:B(hs(c.width))})]}):(0,o.jsx)(`div`,{className:B(`space-y-6`,n),"data-page-layout":t,children:e.map((e,t)=>(0,o.jsx)($,{region:e},e.name||t))})},ys=({schema:e})=>{let t=e.body||e.children,n=Array.isArray(t)?t:t?[t]:[];return n.length===0?null:(0,o.jsx)(`div`,{className:`space-y-6`,children:n.map((e,t)=>(0,o.jsx)(i.SchemaRenderer,{schema:e},e?.id||t))})},bs=({schema:e})=>e.regions&&e.regions.length>0?(0,o.jsx)(vs,{regions:e.regions,pageType:e.pageType}):(0,o.jsx)(ys,{schema:e}),xs={default:bs,"full-width":bs,"header-sidebar-main":({schema:e})=>{let t=e.regions||[];if(t.length===0)return(0,o.jsx)(ys,{schema:e});let n=Q(t,`header`),r=Q(t,`sidebar`),i=Q(t,`main`),a=_s(t,[`header`,`sidebar`,`main`]);return(0,o.jsxs)(`div`,{className:`flex flex-col gap-6`,"data-template":`header-sidebar-main`,children:[n&&(0,o.jsx)($,{region:n}),(0,o.jsxs)(`div`,{className:`flex flex-1 gap-6`,children:[r&&(0,o.jsx)(`aside`,{className:B(`shrink-0`,hs(r.width||`medium`)),children:(0,o.jsx)($,{region:r})}),(0,o.jsxs)(`div`,{className:`flex-1 min-w-0 space-y-6`,children:[i&&(0,o.jsx)($,{region:i}),a.map((e,t)=>(0,o.jsx)($,{region:e},e.name||`extra-${t}`))]})]})]})},"three-column":({schema:e})=>{let t=e.regions||[];if(t.length===0)return(0,o.jsx)(ys,{schema:e});let n=Q(t,`header`),r=Q(t,`sidebar`),i=Q(t,`main`),a=Q(t,`aside`),s=Q(t,`footer`),c=_s(t,[`header`,`sidebar`,`main`,`aside`,`footer`]);return(0,o.jsxs)(`div`,{className:`flex flex-col gap-6`,"data-template":`three-column`,children:[n&&(0,o.jsx)($,{region:n}),(0,o.jsxs)(`div`,{className:`flex flex-1 gap-6`,children:[r&&(0,o.jsx)(`aside`,{className:B(`shrink-0`,hs(r.width||`small`)),children:(0,o.jsx)($,{region:r})}),(0,o.jsxs)(`div`,{className:`flex-1 min-w-0 space-y-6`,children:[i&&(0,o.jsx)($,{region:i}),c.map((e,t)=>(0,o.jsx)($,{region:e},e.name||`extra-${t}`))]}),a&&(0,o.jsx)(`aside`,{className:B(`shrink-0`,hs(a.width||`small`)),children:(0,o.jsx)($,{region:a})})]}),s&&(0,o.jsx)($,{region:s})]})},dashboard:({schema:e})=>{let t=e.regions||[];if(t.length===0)return(0,o.jsx)(ys,{schema:e});let n=Q(t,`header`),r=Q(t,`footer`),i=_s(t,[`header`,`footer`]);return(0,o.jsxs)(`div`,{className:`flex flex-col gap-6`,"data-template":`dashboard`,children:[n&&(0,o.jsx)($,{region:n}),(0,o.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-6`,children:i.map((e,t)=>(0,o.jsx)($,{region:e},e.name||`region-${t}`))}),r&&(0,o.jsx)($,{region:r})]})}};function Ss(e){return e.template&&xs[e.template]||null}var Cs=({schema:e})=>e.regions&&e.regions.length>0?(0,o.jsx)(vs,{regions:e.regions,pageType:`record`}):(0,o.jsx)(ys,{schema:e}),ws=({schema:e})=>e.regions&&e.regions.length>0?(0,o.jsx)(vs,{regions:e.regions,pageType:`home`}):(0,o.jsx)(ys,{schema:e}),Ts=({schema:e})=>e.regions&&e.regions.length>0?(0,o.jsx)(vs,{regions:e.regions,pageType:`app`}):(0,o.jsx)(ys,{schema:e}),Es=({schema:e})=>e.regions&&e.regions.length>0?(0,o.jsx)(vs,{regions:e.regions,pageType:`utility`}):(0,o.jsx)(ys,{schema:e}),Ds=({schema:e,className:t,...n})=>{let r=e.pageType||`record`,{"data-obj-id":s,"data-obj-type":c,style:l,pageType:u,schema:d,regions:f,template:p,title:m,icon:h,description:g,object:_,variables:v,blankLayout:y,body:b,isDefault:x,assignedProfiles:S,aria:C,recordOverride:w,permissions:T,requiredPermissions:E,enforceFieldSecurity:D,redactFields:O,children:k,...A}=n,ee=Object.fromEntries(Object.entries(A).filter(([e])=>!e.startsWith(`_`))),j=(0,a.useMemo)(()=>{let t=Ss(e);if(t)return(0,o.jsx)(t,{schema:e});switch(r){case`home`:return(0,o.jsx)(ws,{schema:e});case`app`:return(0,o.jsx)(Ts,{schema:e});case`utility`:return(0,o.jsx)(Es,{schema:e});default:return(0,o.jsx)(Cs,{schema:e})}},[e,r]),te=(0,o.jsx)(`div`,{className:B(`min-h-full w-full bg-background p-4 md:p-6 lg:p-8`,t),"data-page-type":r,"data-obj-id":s,"data-obj-type":c,style:l,...ee,children:(0,o.jsxs)(`div`,{className:B(`mx-auto space-y-8`,gs(r)),children:[r!==`record`&&(e.title||e.description)&&(0,o.jsxs)(`div`,{className:`space-y-2`,children:[e.title&&(0,o.jsx)(`h1`,{className:`text-3xl font-bold tracking-tight text-foreground`,children:e.title}),e.description&&(0,o.jsx)(`p`,{className:`text-muted-foreground`,children:e.description})]}),j]})});return e.variables&&e.variables.length>0?(0,o.jsx)(i.PageVariablesProvider,{definitions:e.variables,children:te}):te},Os={namespace:`ui`,label:`Page`,icon:`Layout`,category:`layout`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`pageType`,type:`string`,label:`Page Type`},{name:`object`,type:`string`,label:`Object Name`},{name:`template`,type:`string`,label:`Template`},{name:`regions`,type:`array`,label:`Regions`,itemType:`object`},{name:`variables`,type:`array`,label:`Variables`,itemType:`object`},{name:`body`,type:`array`,label:`Content (Legacy)`,itemType:`component`}]};t.ComponentRegistry.register(`page`,Ds,Os),t.ComponentRegistry.register(`app`,Ds,{...Os,label:`App Page`}),t.ComponentRegistry.register(`utility`,Ds,{...Os,label:`Utility Page`}),t.ComponentRegistry.register(`home`,Ds,{...Os,label:`Home Page`}),t.ComponentRegistry.register(`record`,Ds,{...Os,label:`Record Page`});function ks(e){return e.includes(`-`)?e.toLowerCase():e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).replace(/([A-Z]+)([A-Z][a-z])/g,`$1-$2`).toLowerCase()}var As=new Set(R.iconNames);function js(e){return As.has(e)}var Ms=new Map;function Ns(e){if(!e)return c.Database;let t=Ms.get(e);if(t)return t;let n=ks(e);if(!js(n))return Ms.set(e,c.Database),c.Database;let r=e=>a.default.createElement(R.DynamicIcon,{name:n,fallback:c.Database,...e});return r.displayName=`LucideIcon(${e})`,Ms.set(e,r),r}var Ps=({name:e,...t})=>{if(!e)return a.default.createElement(c.Database,t);let n=ks(e);return js(n)?a.default.createElement(R.DynamicIcon,{name:n,fallback:c.Database,...t}):a.default.createElement(c.Database,t)},Fs=new Map,Is=new Map,Ls=new Set;function Rs(e,t,n){return`${e}::${t??``}::${n??``}`}function zs(){for(let e of Ls)e()}function Bs(e,t,n){return Fs.get(Rs(e,t,n))}function Vs(e,t,n,r){let i=Rs(e,t,n);Fs.get(i)!==r&&(Fs.set(i,r),zs())}async function Hs(e,t,n,r){let i=Rs(t,n,r),a=Fs.get(i);if(a!==void 0)return a;let o=Is.get(i);if(o)return o;let s=(async()=>{let a={};if(n){if(!r)return 0;a[n]=r}try{let i=await e(t,{$filter:a,$top:1}),o=typeof i?.total==`number`?i.total:Array.isArray(i?.data)?i.data.length:Array.isArray(i)?i.length:0,s=typeof o==`number`?o:0;return Vs(t,n,r,s),s}catch{return 0}finally{Is.delete(i)}})();return Is.set(i,s),s}function Us(e,t){let n=!1,r=`${e}::`;for(let e of Fs.keys())e.startsWith(r)&&(t!==void 0&&!e.endsWith(`::${t}`)||(Fs.delete(e),n=!0));n&&zs()}function Ws(){Fs.size!==0&&(Fs.clear(),zs())}function Gs(e){return Ls.add(e),()=>{Ls.delete(e)}}function Ks(){return Fs}function qs(e,t,n){if((0,a.useSyncExternalStore)(Gs,Ks,Ks),e)return Bs(e,t,n)}var Js={get:Bs,set:Vs,fetch:Hs,invalidate:Us,invalidateAll:Ws,_reset:()=>{Fs.clear(),Is.clear(),zs()}},Ys=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},Xs=e=>e==null?``:typeof e==`string`?e:typeof e==`object`?e.default||e.value||``:String(e),Zs={"zh-CN":{Details:`详情`,Related:`相关`,Activity:`活动`,History:`历史`,Notes:`备注`,Files:`文件`,Tasks:`任务`,Events:`日程`,Attachments:`附件`,Chatter:`讨论`,Discussion:`讨论`,Comments:`评论`,Overview:`概览`,Summary:`摘要`},"zh-TW":{Details:`詳情`,Related:`相關`,Activity:`活動`,History:`歷史`,Notes:`備註`,Files:`檔案`,Tasks:`任務`,Events:`行程`,Attachments:`附件`,Chatter:`討論`,Discussion:`討論`,Comments:`評論`,Overview:`概覽`,Summary:`摘要`}},Qs=()=>{if(typeof document<`u`){let e=document.documentElement?.lang;if(e)return e}return typeof navigator<`u`&&navigator.language?navigator.language:`en`},$s=e=>{if(!e)return e;let t=Qs(),n=Zs[t],r=t.split(`-`)[0]===`zh`?Zs[`zh-CN`]:void 0,i=n||r;if(!i)return e;if(i[e]!==void 0)return i[e];let a=/\s*(?:&|and|和)\s*/i;if(a.test(e)){let n=e.split(a);if(n.every(e=>i[e.trim()]!==void 0)){let e=t.startsWith(`zh`)?`与`:` & `;return n.map(e=>i[e.trim()]).join(e)}}return e},ec=(e,t)=>!e||typeof e!=`string`?e||``:e.includes(`{`)?e.replace(/\{([a-zA-Z0-9_.]+)\}/g,(e,n)=>{let r=n.split(`.`).reduce((e,t)=>e==null?e:e[t],t);return r==null||typeof r==`object`?``:String(r)}).replace(/\s+/g,` `).trim():e,tc=e=>{let t=typeof e==`number`?e:Number(e);return Number.isFinite(t)?t>=1e4?`${Math.round(t/1e3)}k`:t>=1e3?`${(t/1e3).toFixed(1).replace(/\.0$/,``)}k`:String(t):String(e)},nc=(e,t=[])=>{if(!e)return t;let n=Array.isArray(e)?e:[e];for(let e of n){if(!e||typeof e!=`object`)continue;if(e.type===`record:related_list`||e.type===`record_related_list`){t.push(e);continue}let n=[e.children,e.properties?.children,e.properties?.items,e.body,e.items];for(let e of n)e&&nc(e,t)}return t};t.ComponentRegistry.register(`page:tabs`,({schema:e,className:t,...n})=>{let{designer:r}=Ys(n),s=e?.items||[],c=e?.properties?.type||e?.tabStyle||`line`,l=(e?.position||`top`)===`left`,u=(0,i.useRecordContext)(),d=u?.data?.id,f=u?.dataSource;qs(void 0,void 0,d);let p=a.default.useMemo(()=>{let e=new Map;return s.forEach((t,n)=>{if(t.count!==void 0&&t.count!==null&&t.count!==``)return;let r=nc(t.children),i=[];for(let e of r){let t=e?.properties?.objectName||e?.objectName;if(!t)continue;let n=e?.properties?.relationshipField||e?.relationshipField;i.push({objectName:t,relationshipField:n})}i.length>0&&e.set(n,i)}),e},[s]);a.default.useEffect(()=>{if(!f||typeof f.find!=`function`||p.size===0)return;let e=!1;for(let t of p.values())for(let n of t)if(Js.fetch((e,t)=>f.find(e,t),n.objectName,n.relationshipField,d).catch(()=>0),e)return;return()=>{e=!0}},[f,p,d]);let m=e=>{let t=p.get(e);if(!t||t.length===0)return;let n=0,r=!1;for(let e of t){let t=Js.get(e.objectName,e.relationshipField,d);t!==void 0&&(n+=t,r=!0)}return r?n:void 0},h=s.map((e,t)=>({...e,value:`tab-${t}`,labelStr:$s(Xs(e.label)),count:e.count!==void 0&&e.count!==null&&e.count!==``?e.count:m(t)})),g=h[0]?.value,_=B(l&&`flex-col h-auto items-stretch p-1`,c===`card`&&`bg-transparent gap-1`,c===`pill`&&`bg-muted rounded-full p-1 gap-1`,c===`line`&&!l&&`h-auto rounded-none bg-transparent p-0 gap-4 border-b border-border w-full justify-start`,!l&&`sticky top-0 z-20 bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60`),v=()=>B(l&&`justify-start`,c===`card`&&`data-[state=active]:bg-background data-[state=active]:border data-[state=active]:shadow-sm rounded-md`,c===`pill`&&`rounded-full data-[state=active]:bg-background`,c===`line`&&!l&&`rounded-none border-b-2 border-transparent bg-transparent px-1 pb-2.5 -mb-px shadow-none data-[state=active]:border-primary data-[state=active]:bg-transparent data-[state=active]:shadow-none data-[state=active]:text-foreground`);return(0,o.jsxs)(Xi,{defaultValue:g,orientation:l?`vertical`:`horizontal`,className:B(t,l&&`flex gap-4 w-full`),...r,children:[(h.length>1||e?.properties?.alwaysShowStrip===!0)&&(0,o.jsx)(Zi,{className:_,children:h.map(e=>(0,o.jsxs)(Qi,{value:e.value,className:v(),children:[e.icon&&(0,o.jsx)(Ps,{name:e.icon,className:`mr-1.5 h-3.5 w-3.5 shrink-0 opacity-70`,"aria-hidden":!0}),(0,o.jsx)(`span`,{children:e.labelStr}),e.count!==void 0&&e.count!==null&&e.count!==``&&Number(e.count)>0&&(0,o.jsx)(`span`,{className:`ml-1.5 inline-flex h-4 min-w-[1rem] items-center justify-center rounded-full bg-muted px-1 text-[10px] font-medium leading-none text-muted-foreground`,"aria-label":`${tc(e.count)} items`,children:tc(e.count)})]},e.value))}),h.map(e=>(0,o.jsx)($i,{value:e.value,className:B(h.length>1?`mt-3`:`mt-0`,l&&`mt-0 flex-1`),children:V(e.children)},e.value))]})},{namespace:`page`,label:`Page Tabs`,category:`layout`,isContainer:!0}),t.ComponentRegistry.register(`page:card`,({schema:e,className:t,...n})=>{let{designer:r}=Ys(n),i=Xs(e?.title),a=e?.bordered!==!1,s=e?.body,c=e?.footer;return(0,o.jsxs)(Xe,{className:B(t,!a&&`border-0 shadow-none bg-transparent`),...r,children:[i&&(0,o.jsx)(Ze,{children:(0,o.jsx)(Qe,{children:i})}),s&&(0,o.jsx)(et,{children:V(s)}),c&&(0,o.jsx)(tt,{className:`flex justify-between`,children:V(c)})]})},{namespace:`page`,label:`Page Card`,category:`layout`,isContainer:!0}),t.ComponentRegistry.register(`page:accordion`,({schema:e,className:t,...n})=>{let{designer:r}=Ys(n),i=e?.items||[],a=!!e?.allowMultiple,s=(e?.variant??e?.properties?.variant??`flush`)===`flush`?`border-none`:void 0,c=i.map((e,t)=>({...e,value:`panel-${t}`,labelStr:$s(Xs(e.label))})),l=c.filter(e=>e.collapsed===!1).map(e=>e.value),u=c.map(e=>(0,o.jsxs)(ve,{value:e.value,className:s,children:[(0,o.jsx)(ye,{children:e.labelStr}),(0,o.jsx)(be,{children:V(e.children)})]},e.value));return a?(0,o.jsx)(H,{type:`multiple`,defaultValue:l,className:t,...r,children:u}):(0,o.jsx)(H,{type:`single`,collapsible:!0,defaultValue:l[0],className:t,...r,children:u})},{namespace:`page`,label:`Page Accordion`,category:`layout`,isContainer:!0}),t.ComponentRegistry.register(`page:section`,({schema:e,className:t,...n})=>{let{designer:r}=Ys(n);return(0,o.jsx)(`section`,{className:B(`space-y-4`,t),...r,children:V(e?.children||e?.body)})},{namespace:`page`,label:`Page Section`,category:`layout`,isContainer:!0});function rc(e){if(!e)return e;let t=e;for(let e=0;e<4;e+=1){let e=t.replace(/[\s\u00A0]*[-·:|/–—][\s\u00A0]*$/u,``).trimEnd();if(e===t)break;t=e}for(let e=0;e<4;e+=1){let e=t.replace(/^[\s\u00A0]*[-·:|/–—][\s\u00A0]*/u,``).trimStart();if(e===t)break;t=e}return t=t.replace(/([-·:|/–—])[\s\u00A0]*\1/gu,`$1`),t=t.replace(/[\s\u00A0]+/g,` `).trim(),t}t.ComponentRegistry.register(`page:header`,({schema:e,className:n,...r})=>{let{designer:s}=Ys(r),c=(0,i.useRecordContext)(),{execute:l}=(0,i.useAction)(),{objectLabel:u}=(0,L.useObjectLabel)(),d=e?.title??e?.properties?.title,f=e?.subtitle??e?.properties?.subtitle,p=ec(Xs(d),c?.data),m=ec(Xs(f),c?.data),h=(e?.breadcrumb??e?.properties?.breadcrumb)!==!1,g=e?.recordChrome===!1||e?.properties?.recordChrome===!1,_=e?.showStar!==!1&&e?.properties?.showStar!==!1,v=e?.showCopyId!==!1&&e?.properties?.showCopyId!==!1,y=e?.actions??e?.properties?.actions,b=c?.headerSystemActions,x=a.default.useMemo(()=>{let e=c?.data,n=new t.ExpressionEvaluator({record:e,data:e}),r=e=>{try{return n.evaluateExpression(e)}catch{return}},i=e=>{if(Array.isArray(e?.locations)&&e.locations.length>0&&!e.locations.includes(`record_header`))return!1;let t=e?.visible;if(t!=null)if(typeof t==`boolean`){if(!t)return!1}else{let e=typeof t==`string`?t:t&&typeof t==`object`&&typeof t.source==`string`?t.source:null;if(e&&!r(e))return!1}let n=e?.hidden;if(n!=null)if(typeof n==`boolean`){if(n)return!1}else{let e=typeof n==`string`?n:n&&typeof n==`object`&&typeof n.source==`string`?n.source:null;if(e&&r(e))return!1}return!0},a=Array.isArray(y)?y.filter(i):[],o=Array.isArray(b)?b.filter(i):[],s=new Set,l=[];for(let e of[...a,...o]){let t=e?.name||e?.id||``;t&&s.has(t)||(t&&s.add(t),l.push(e))}return l},[y,b,c?.data]),S=()=>x.length===0?null:(0,o.jsx)(`div`,{className:`flex flex-wrap items-center gap-2 shrink-0`,role:`toolbar`,"aria-label":`Page header actions`,children:x.map((e,t)=>{let n=e.label||e.name||`Action ${t+1}`,r=e.variant||`default`,i=e.size||`sm`,a=typeof e.disabled==`boolean`?e.disabled:void 0,s=typeof e.icon==`string`?e.icon:null;return(0,o.jsxs)(W,{variant:r,size:i,disabled:a,className:`gap-2`,onClick:()=>{if(typeof e.onClick==`function`){e.onClick();return}l(e)},children:[s&&(0,o.jsx)(Ps,{name:s,className:`h-4 w-4`}),(0,o.jsx)(`span`,{children:n})]},e.name||e.id||`header-action-${t}`)})});if(c?.data&&c?.objectSchema&&!g){let e=c.data,t=c.objectSchema,r=c.objectName||t?.name,i=Xs(t?.label)||t?.name||c.objectName||``,a=r?u({name:r,label:i}):i||void 0,l=t?.primaryField,d=t?.titleFormat,f=typeof d==`string`?d:d&&typeof d==`object`&&typeof d.source==`string`?d.source:void 0,g=f?rc(ec(f,e).trim()):``,y=p||l&&e?.[l]||(g&&!g.includes(`{`)?g:``)||e?.name||e?.full_name||e?.title||e?.subject||e?.display_name||e?.label||(a&&e?.id?`${a} ${String(e.id).slice(0,8)}`:``)||a||``;return(0,o.jsxs)(`header`,{className:B(`flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 sm:gap-4 pb-4 border-b`,n),...s,children:[(0,o.jsxs)(`div`,{className:`flex flex-col min-w-0 flex-1`,children:[h&&(0,o.jsx)(`div`,{className:`text-xs text-muted-foreground mb-1`,"data-page-breadcrumb-slot":!0}),(0,o.jsx)(Xo,{title:y,objectLabel:a,resourceId:e?.id?String(e.id):void 0,showStar:_,showCopyId:v,isFavorite:c?.isFavorite,onToggleFavorite:c?.onToggleFavorite?()=>c.onToggleFavorite():void 0}),m&&(0,o.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:m})]}),S()??(0,o.jsx)(`div`,{"data-page-actions-slot":!0,className:`shrink-0`})]})}return(0,o.jsxs)(`header`,{className:B(`flex flex-col gap-2 pb-4 border-b`,n),...s,children:[h&&(0,o.jsx)(`div`,{className:`text-xs text-muted-foreground`,"data-page-breadcrumb-slot":!0}),(0,o.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,o.jsxs)(`div`,{className:`flex flex-col`,children:[p&&(0,o.jsx)(`h1`,{className:`text-2xl font-semibold tracking-tight`,children:p}),m&&(0,o.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:m})]}),S()??(0,o.jsx)(`div`,{"data-page-actions-slot":!0})]})]})},{namespace:`page`,label:`Page Header`,category:`layout`}),t.ComponentRegistry.register(`page:footer`,({schema:e,className:t,...n})=>{let{designer:r}=Ys(n);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(Ur,{className:`my-4`}),(0,o.jsx)(`footer`,{className:B(`flex items-center justify-between text-sm text-muted-foreground`,t),...r,children:V(e?.children||e?.body)})]})},{namespace:`page`,label:`Page Footer`,category:`layout`,isContainer:!0}),t.ComponentRegistry.register(`page:sidebar`,({schema:e,className:t,...n})=>{let{designer:r}=Ys(n);return(0,o.jsx)(`aside`,{className:B(`flex flex-col gap-4 w-full md:w-80 shrink-0`,t),...r,children:V(e?.children||e?.body)})},{namespace:`page`,label:`Page Sidebar`,category:`layout`,isContainer:!0}),[`aside`,`main`,`header`,`nav`,`footer`,`section`,`article`].forEach(e=>{let n=(0,a.forwardRef)(({schema:t,className:n,...r},i)=>{let{"data-obj-id":a,"data-obj-type":s,style:c,...l}=r;return(0,o.jsx)(e,{ref:i,className:n,...l,"data-obj-id":a,"data-obj-type":s,style:c,children:V(t.children||t.body)})});n.displayName=`Semantic${e.charAt(0).toUpperCase()+e.slice(1)}`,t.ComponentRegistry.register(e,n,{namespace:`ui`,label:e.charAt(0).toUpperCase()+e.slice(1),category:`layout`,inputs:[{name:`className`,type:`string`,label:`CSS Class`}]})}),t.ComponentRegistry.register(`aspect-ratio`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,o.jsx)(Fe,{ratio:e.ratio||16/9,className:e.className,...a,"data-obj-id":n,"data-obj-type":r,style:i,children:e.image?(0,o.jsx)(`img`,{src:e.image,alt:e.alt||``,loading:`lazy`,className:`rounded-md object-cover w-full h-full`}):V(e.children||e.body)})},{namespace:`ui`,label:`Aspect Ratio`,inputs:[{name:`ratio`,type:`number`,label:`Ratio`,defaultValue:16/9},{name:`image`,type:`string`,label:`Image URL`},{name:`alt`,type:`string`,label:`Alt Text`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{ratio:16/9}}),t.ComponentRegistry.register(`sidebar-provider`,({schema:e,...t})=>(0,o.jsx)(hi,{...t,children:V(e.body)}),{namespace:`ui`,label:`Sidebar Provider`,inputs:[{name:`defaultOpen`,type:`boolean`,label:`Default Open`,defaultValue:!0}],defaultProps:{defaultOpen:!0},defaultChildren:[{type:`sidebar`},{type:`sidebar-inset`}]}),t.ComponentRegistry.register(`sidebar`,({schema:e,...t})=>(0,o.jsx)(gi,{...t,children:V(e.body)}),{namespace:`ui`,label:`Sidebar`,inputs:[{name:`collapsible`,type:`enum`,enum:[`offcanvas`,`icon`,`none`],defaultValue:`icon`,label:`Collapsible`},{name:`side`,type:`enum`,enum:[`left`,`right`],defaultValue:`left`,label:`Side`},{name:`variant`,type:`enum`,enum:[`sidebar`,`floating`,`inset`],defaultValue:`sidebar`,label:`Variant`}],defaultProps:{collapsible:`icon`,side:`left`,variant:`sidebar`},defaultChildren:[{type:`sidebar-header`},{type:`sidebar-content`},{type:`sidebar-footer`}]}),t.ComponentRegistry.register(`sidebar-header`,({schema:e,...t})=>(0,o.jsx)(xi,{...t,children:V(e.body)}),{namespace:`ui`,label:`Sidebar Header`,defaultChildren:[{type:`text`,content:`Sidebar Header`}]}),t.ComponentRegistry.register(`sidebar-content`,({schema:e,...t})=>(0,o.jsx)(wi,{...t,children:V(e.body)}),{namespace:`ui`,label:`Sidebar Content`,defaultChildren:[{type:`sidebar-group`}]}),t.ComponentRegistry.register(`sidebar-group`,({schema:e,...t})=>(0,o.jsxs)(Ti,{...t,children:[e.label&&(0,o.jsx)(Ei,{children:e.label}),(0,o.jsx)(Oi,{children:V(e.body)})]}),{namespace:`ui`,label:`Sidebar Group`,inputs:[{name:`label`,type:`string`,label:`Label`}],defaultProps:{label:`Menu`},defaultChildren:[{type:`sidebar-menu`}]}),t.ComponentRegistry.register(`sidebar-menu`,({schema:e,...t})=>(0,o.jsx)(ki,{...t,children:V(e.body)}),{namespace:`ui`,label:`Sidebar Menu`,defaultChildren:[{type:`sidebar-menu-item`},{type:`sidebar-menu-item`}]}),t.ComponentRegistry.register(`sidebar-menu-item`,({schema:e,...t})=>(0,o.jsx)(Ai,{...t,children:V(e.body)}),{namespace:`ui`,label:`Sidebar Menu Item`,defaultChildren:[{type:`sidebar-menu-button`}]}),t.ComponentRegistry.register(`sidebar-menu-button`,({schema:e,...t})=>(0,o.jsx)(Mi,{isActive:e.active,...t,children:V(e.body)}),{namespace:`ui`,label:`Sidebar Menu Button`,inputs:[{name:`active`,type:`boolean`,label:`Active`,defaultValue:!1},{name:`size`,type:`enum`,enum:[`default`,`sm`,`lg`],defaultValue:`default`,label:`Size`},{name:`tooltip`,type:`string`,label:`Tooltip`}],defaultProps:{size:`default`},defaultChildren:[{type:`text`,content:`Menu Item`}]}),t.ComponentRegistry.register(`sidebar-footer`,({schema:e,...t})=>(0,o.jsx)(Si,{...t,children:V(e.body)}),{namespace:`ui`,label:`Sidebar Footer`,defaultChildren:[{type:`text`,content:`Footer`}]}),t.ComponentRegistry.register(`sidebar-inset`,({schema:e,...t})=>(0,o.jsx)(yi,{...t,children:V(e.body)}),{namespace:`ui`,label:`Sidebar Inset`,defaultChildren:[{type:`div`,className:`p-4`,body:[{type:`text`,content:`Main content area`}]}]}),t.ComponentRegistry.register(`sidebar-trigger`,({className:e,...t})=>(0,o.jsx)(_i,{className:e,...t}),{namespace:`ui`,label:`Sidebar Trigger`,inputs:[{name:`className`,type:`string`,label:`CSS Class`}]});function ic({crumb:e,isLast:t}){let n=(0,i.resolveI18nLabel)(e.label)??``;return e.siblings&&e.siblings.length>0?(0,o.jsxs)(mn,{children:[(0,o.jsxs)(hn,{className:`flex items-center gap-1`,children:[t?(0,o.jsx)(`span`,{className:`font-semibold`,children:n}):(0,o.jsx)(`span`,{children:n}),(0,o.jsx)(c.ChevronDown,{className:`h-3 w-3`})]}),(0,o.jsx)(Sn,{align:`start`,children:e.siblings.map((e,t)=>(0,o.jsx)(Cn,{asChild:!0,children:(0,o.jsx)(`a`,{href:e.href,children:e.label})},t))})]}):t?(0,o.jsx)(Ge,{children:n}):(0,o.jsx)(We,{href:e.href||`#`,children:n})}t.ComponentRegistry.register(`header-bar`,({schema:e})=>(0,o.jsxs)(`header`,{className:`flex h-14 sm:h-16 shrink-0 items-center gap-2 border-b px-3 sm:px-4`,children:[(0,o.jsx)(_i,{}),(0,o.jsx)(Ur,{orientation:`vertical`,className:`mr-2 h-4`}),(0,o.jsx)(Ve,{children:(0,o.jsx)(He,{children:e.crumbs?.map((t,n)=>(0,o.jsxs)(a.default.Fragment,{children:[(0,o.jsx)(Ue,{children:(0,o.jsx)(ic,{crumb:t,isLast:n===e.crumbs.length-1})}),n<e.crumbs.length-1&&(0,o.jsx)(Ke,{})]},n))})}),(0,o.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[e.search?.enabled&&(0,o.jsxs)(`div`,{className:`relative`,children:[(0,o.jsx)(c.Search,{className:`absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground`}),(0,o.jsx)(q,{type:`search`,placeholder:e.search.placeholder,className:`pl-8 w-[200px] lg:w-[300px]`}),e.search.shortcut&&(0,o.jsx)(`kbd`,{className:`pointer-events-none absolute right-2 top-2 hidden h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium opacity-100 sm:flex`,children:e.search.shortcut})]}),e.actions?.map((e,t)=>(0,o.jsx)(i.SchemaRenderer,{schema:e},t)),e.rightContent&&(0,o.jsx)(i.SchemaRenderer,{schema:e.rightContent})]})]}),{namespace:`ui`,label:`Header Bar`,inputs:[{name:`crumbs`,type:`array`,label:`Breadcrumbs`},{name:`search`,type:`object`,label:`Search Configuration`},{name:`actions`,type:`array`,label:`Action Slots`},{name:`rightContent`,type:`object`,label:`Right Content`}],defaultProps:{crumbs:[{label:`Home`,href:`#`},{label:`Current Page`}]}}),t.ComponentRegistry.register(`badge`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,o.jsx)(Be,{variant:e.variant,className:e.className,...a,"data-obj-id":n,"data-obj-type":r,style:i,children:e.label||V(e.body)})},{namespace:`ui`,label:`Badge`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`variant`,type:`enum`,enum:[`default`,`secondary`,`destructive`,`outline`],defaultValue:`default`,label:`Variant`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{label:`Badge`,variant:`default`}}),t.ComponentRegistry.register(`avatar`,({schema:e,className:t,...n})=>(0,o.jsxs)(Ie,{className:t,...n,children:[(0,o.jsx)(Le,{src:e.src,alt:e.alt}),(0,o.jsx)(Re,{children:e.fallback})]}),{namespace:`ui`,label:`Avatar`,inputs:[{name:`src`,type:`string`,label:`Image URL`},{name:`alt`,type:`string`,label:`Alt Text`},{name:`fallback`,type:`string`,label:`Fallback Initials`,defaultValue:`CN`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{fallback:`CN`,alt:`Avatar`}}),t.ComponentRegistry.register(`alert`,({schema:e,className:t,...n})=>(0,o.jsxs)(Me,{variant:e.variant,className:t,...n,children:[(0,o.jsx)(Ne,{children:e.title}),(0,o.jsx)(Pe,{children:e.description||V(e.body)})]}),{namespace:`ui`,label:`Alert`,inputs:[{name:`title`,type:`string`,label:`Title`,required:!0},{name:`description`,type:`string`,label:`Description`},{name:`variant`,type:`enum`,enum:[`default`,`destructive`],defaultValue:`default`,label:`Variant`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{title:`Alert Title`,description:`This is an alert message.`,variant:`default`}}),t.ComponentRegistry.register(`list`,({schema:e,className:t,...n})=>{let r=(0,i.useDataScope)(e.bind),a=Array.isArray(r)?r:Array.isArray(e.items)?e.items:[],s=e.ordered?`ol`:`ul`,c=e.ordered?`list-decimal`:`list-disc`;return(0,o.jsxs)(`div`,{className:B(`space-y-2`,e.wrapperClass),children:[e.title&&(0,o.jsx)(`h3`,{className:`text-lg font-semibold tracking-tight`,children:e.title}),(0,o.jsx)(s,{className:B(`ml-6 [&>li]:mt-2`,c,t),...n,children:a.map((e,t)=>(0,o.jsx)(`li`,{className:B(typeof e==`object`&&e.className),children:typeof e==`string`?e:e.content||V(e.body)},t))})]})},{namespace:`ui`,label:`List`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`ordered`,type:`boolean`,label:`Ordered List (numbered)`,defaultValue:!1},{name:`items`,type:`array`,label:`List Items`,description:`Array of strings or objects with content/body`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{ordered:!1,items:[`First item`,`Second item`,`Third item`],className:`text-sm`}});var ac=({node:e,onNodeClick:t})=>{let[n,r]=(0,a.useState)(!1),i=e.children&&e.children.length>0;return(0,o.jsxs)(`div`,{className:`relative`,children:[(0,o.jsxs)(`div`,{className:B(`group flex items-center py-1.5 px-2 rounded-sm cursor-pointer transition-colors`,`hover:bg-accent hover:text-accent-foreground`,n&&i&&`bg-accent/50`),onClick:()=>{t&&t(e)},children:[i?(0,o.jsx)(`button`,{onClick:e=>{e.stopPropagation(),r(!n)},className:`mr-2 p-0.5 h-5 w-5 flex items-center justify-center rounded-sm hover:bg-muted text-muted-foreground transition-colors`,children:n?(0,o.jsx)(c.ChevronDown,{className:`h-4 w-4`}):(0,o.jsx)(c.ChevronRight,{className:`h-4 w-4`})}):(0,o.jsx)(`span`,{className:`mr-2 w-5 flex justify-center`,children:(0,o.jsx)(`div`,{className:`w-1 h-1 rounded-full bg-muted-foreground/50`})}),e.icon===`folder`||i?n?(0,o.jsx)(c.FolderOpen,{className:`h-4 w-4 mr-2 text-primary`}):(0,o.jsx)(c.Folder,{className:`h-4 w-4 mr-2 text-muted-foreground group-hover:text-primary transition-colors`}):(0,o.jsx)(c.File,{className:`h-4 w-4 mr-2 text-muted-foreground group-hover:text-primary transition-colors`}),(0,o.jsx)(`span`,{className:B(`text-sm transition-colors`,n?`font-medium text-foreground`:`text-muted-foreground group-hover:text-foreground`),children:e.label})]}),i&&n&&(0,o.jsx)(`div`,{className:`relative ml-[11px] pl-3 border-l border-border animate-in slide-in-from-left-2 fade-in duration-200`,children:e.children.map(e=>(0,o.jsx)(ac,{node:e,onNodeClick:t},e.id))})]})};t.ComponentRegistry.register(`tree-view`,({schema:e,className:t,...n})=>{let r=t=>{e.onNodeClick&&e.onNodeClick(t)},a=(0,i.useDataScope)(e.bind)||e.nodes||e.data||[],s=Array.isArray(a)?a:[];return(0,o.jsxs)(`div`,{className:B(`relative border rounded-lg p-3 bg-card text-card-foreground`,t),...n,children:[e.title&&(0,o.jsx)(`div`,{className:`flex items-center gap-2 mb-3 pb-2 border-b`,children:(0,o.jsx)(`h3`,{className:`text-sm font-semibold`,children:e.title})}),(0,o.jsx)(`div`,{className:`space-y-1`,children:s.map(e=>(0,o.jsx)(ac,{node:e,onNodeClick:r},e.id))})]})},{namespace:`ui`,label:`Tree View`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`nodes`,type:`array`,label:`Tree Nodes`,description:`Array of { id, label, icon, children, data }`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{title:`File Explorer`,nodes:[{id:`1`,label:`Documents`,icon:`folder`,children:[{id:`1-1`,label:`Resume.pdf`,icon:`file`},{id:`1-2`,label:`Cover Letter.docx`,icon:`file`}]},{id:`2`,label:`Photos`,icon:`folder`,children:[{id:`2-1`,label:`Vacation`,icon:`folder`,children:[{id:`2-1-1`,label:`Beach.jpg`,icon:`file`}]},{id:`2-2`,label:`Family.jpg`,icon:`file`}]},{id:`3`,label:`README.md`,icon:`file`}]}});var oc=e=>e?Ns(e):null;t.ComponentRegistry.register(`statistic`,({schema:e})=>{let t=e.icon?oc(e.icon):null;return(0,o.jsxs)(`div`,{className:B(`group relative flex flex-col p-4 sm:p-5 md:p-6 rounded-xl border bg-card text-card-foreground shadow-sm`,e.className),children:[(0,o.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[e.label&&(0,o.jsx)(`p`,{className:`text-sm font-medium text-muted-foreground`,children:e.label}),t&&(0,o.jsx)(t,{className:`h-4 w-4 text-muted-foreground`})]}),(0,o.jsx)(`div`,{className:`flex items-baseline gap-2`,children:(0,o.jsx)(`h3`,{className:`text-2xl font-bold tracking-tight`,children:e.value})}),(e.trend||e.description)&&(0,o.jsxs)(`div`,{className:`mt-1 flex items-center text-xs text-muted-foreground`,children:[e.trend===`up`&&(0,o.jsx)(c.TrendingUp,{className:`mr-1 h-3 w-3 text-emerald-500`}),e.trend===`down`&&(0,o.jsx)(c.TrendingDown,{className:`mr-1 h-3 w-3 text-rose-500`}),e.trend===`neutral`&&(0,o.jsx)(c.Minus,{className:`mr-1 h-3 w-3`}),(0,o.jsx)(`span`,{className:B(e.trend===`up`&&`text-emerald-500 font-medium`,e.trend===`down`&&`text-rose-500 font-medium`),children:e.description})]})]})},{namespace:`ui`,label:`Statistic`,category:`data-display`,icon:`Activity`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`value`,type:`string`,label:`Value`},{name:`description`,type:`string`,label:`Description`},{name:`trend`,type:`enum`,enum:[{label:`Up`,value:`up`},{label:`Down`,value:`down`},{label:`Neutral`,value:`neutral`}],label:`Trend`}],defaultProps:{label:`Total Revenue`,value:`$45,231.89`,trend:`up`,description:`+20.1% from last month`}}),t.ComponentRegistry.register(`breadcrumb`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:a,...s}=t;return(0,o.jsx)(Ve,{className:e.className,...s,"data-obj-id":n,"data-obj-type":r,style:a,children:(0,o.jsx)(He,{children:e.items?.map((t,n)=>(0,o.jsxs)(`div`,{className:`flex items-center`,children:[(0,o.jsx)(Ue,{children:n===(e.items?.length||0)-1?(0,o.jsx)(Ge,{children:(0,i.resolveI18nLabel)(t.label)??``}):(0,o.jsx)(We,{href:t.href,children:(0,i.resolveI18nLabel)(t.label)??``})}),n<(e.items?.length||0)-1&&(0,o.jsx)(Ke,{})]},n))})})},{namespace:`ui`,label:`Breadcrumb`,inputs:[{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{items:[{label:`Home`,href:`/`},{label:`Products`,href:`/products`},{label:`Product`}]}}),t.ComponentRegistry.register(`kbd`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t,s=Array.isArray(e.keys)?e.keys:[e.keys||e.label||`K`];return(0,o.jsx)(`div`,{className:B(`inline-flex flex-wrap gap-1`,e.className),children:s.map((e,t)=>(0,o.jsx)(`kbd`,{className:`pointer-events-none inline-flex h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium text-muted-foreground opacity-100`,...a,...t===0?{"data-obj-id":n,"data-obj-type":r,style:i}:{},children:e},t))})},{namespace:`ui`,label:`Keyboard Key`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{label:`K`}}),t.ComponentRegistry.register(`table`,({schema:e,className:t})=>{let n=(0,i.useDataScope)(e.bind)||e.data||e.props?.data||[],r=Array.isArray(e.columns)?e.columns:Array.isArray(e.props?.columns)?e.props.columns:[];if(n&&!Array.isArray(n))return(0,o.jsx)(`div`,{className:`text-red-500 p-2 border border-red-200 bg-red-50 rounded text-sm`,children:`Table data must be an array`});let a=Array.isArray(n)?n:[];return(0,o.jsx)(`div`,{className:B(`rounded-md border`,t),children:(0,o.jsxs)(Hi,{children:[(0,o.jsx)(Ui,{children:(0,o.jsx)(Ki,{children:r.map((e,t)=>(0,o.jsx)(qi,{children:e.label||e.header},e.key||e.accessorKey||t))})}),(0,o.jsx)(Wi,{children:a.length===0?(0,o.jsx)(Ki,{children:(0,o.jsx)(Ji,{colSpan:r.length,className:`h-24 text-center`,children:`No results.`})}):a.map((e,t)=>(0,o.jsx)(Ki,{children:r.map((t,n)=>{let r=t.key||t.accessorKey||``,i=r?e[r]:``;return(0,o.jsx)(Ji,{children:typeof i==`object`&&i?String(i):i},t.key||t.accessorKey||n)})},e.id||t))})]})})},{namespace:`ui`}),t.ComponentRegistry.register(`progress`,({schema:e,className:t,...n})=>(0,o.jsx)(Or,{value:e.value,className:t,...n}),{namespace:`ui`,label:`Progress`,inputs:[{name:`value`,type:`number`,label:`Value`,defaultValue:0},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{value:50,className:`w-full`}}),t.ComponentRegistry.register(`skeleton`,({schema:e,className:t,...n})=>(0,o.jsx)(Z,{className:t,...n,style:{width:e.width,height:e.height}}),{namespace:`ui`,label:`Skeleton`,inputs:[{name:`width`,type:`string`,label:`Width`},{name:`height`,type:`string`,label:`Height`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{width:`100%`,height:`20px`,className:`rounded-md`}}),t.ComponentRegistry.register(`toaster`,()=>(0,o.jsx)(Bi,{}),{namespace:`ui`,label:`Toaster`,inputs:[],defaultProps:{}}),t.ComponentRegistry.register(`loading`,({schema:e,className:t,...n})=>{let r=e.size||`md`,i=e.fullscreen||!1,a=(0,o.jsxs)(`div`,{className:B(`flex flex-col items-center justify-center gap-2`,t),children:[(0,o.jsx)(Lo,{className:B(r===`sm`&&`h-4 w-4`,r===`md`&&`h-8 w-8`,r===`lg`&&`h-12 w-12`,r===`xl`&&`h-16 w-16`)}),e.text&&(0,o.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.text})]});return i?(0,o.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-background/80 backdrop-blur-sm`,...n,children:a}):(0,o.jsx)(`div`,{className:`flex items-center justify-center p-8`,...n,children:a})},{namespace:`ui`,label:`Loading`,inputs:[{name:`text`,type:`string`,label:`Loading Text`},{name:`size`,type:`enum`,enum:[`sm`,`md`,`lg`,`xl`],label:`Size`,defaultValue:`md`},{name:`fullscreen`,type:`boolean`,label:`Fullscreen Overlay`,defaultValue:!1},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{text:`Loading...`,size:`md`,fullscreen:!1}}),t.ComponentRegistry.register(`toast`,({schema:e})=>(0,o.jsx)(W,{onClick:()=>{(e.variant===`success`?F.toast.success:e.variant===`error`?F.toast.error:e.variant===`warning`?F.toast.warning:e.variant===`info`?F.toast.info:F.toast)(e.title||`Notification`,{description:e.description,duration:e.duration})},variant:e.buttonVariant,className:e.className,children:e.buttonLabel||`Show Toast`}),{namespace:`ui`,label:`Toast`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`variant`,type:`enum`,enum:[`default`,`success`,`warning`,`error`,`info`],defaultValue:`default`,label:`Variant`},{name:`duration`,type:`number`,label:`Duration (ms)`},{name:`buttonLabel`,type:`string`,label:`Button Label`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{title:`Notification`,buttonLabel:`Show Toast`,variant:`default`,duration:5e3}}),t.ComponentRegistry.register(`spinner`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,o.jsx)(c.Loader2,{className:B(`animate-spin`,{sm:`h-4 w-4`,md:`h-6 w-6`,lg:`h-8 w-8`,xl:`h-12 w-12`}[e.size||`md`],e.className),...a,"data-obj-id":n,"data-obj-type":r,style:i})},{namespace:`ui`,label:`Spinner`,inputs:[{name:`size`,type:`enum`,enum:[`sm`,`md`,`lg`,`xl`],defaultValue:`md`,label:`Size`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{size:`md`}}),t.ComponentRegistry.register(`empty`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,o.jsxs)(`div`,{className:B(`flex flex-col items-center justify-center p-8 text-center`,e.className),...a,"data-obj-id":n,"data-obj-type":r,style:i,children:[(0,o.jsx)(c.InboxIcon,{className:`h-12 w-12 text-muted-foreground mb-4`}),(0,o.jsx)(`h3`,{className:`text-lg font-semibold`,children:e.title||`No data`}),e.description&&(0,o.jsx)(`p`,{className:`text-sm text-muted-foreground mt-2`,children:e.description})]})},{namespace:`ui`,label:`Empty`,inputs:[{name:`title`,type:`string`,label:`Title`,defaultValue:`No data`},{name:`description`,type:`string`,label:`Description`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{title:`No data`}}),t.ComponentRegistry.register(`sonner`,({schema:e,...t})=>(0,o.jsx)(W,{onClick:()=>{(e.variant===`success`?F.toast.success:e.variant===`error`?F.toast.error:e.variant===`warning`?F.toast.warning:e.variant===`info`?F.toast.info:F.toast)(e.message||e.title||`Notification`,{description:e.description})},variant:e.buttonVariant,className:e.className,...t,children:e.buttonLabel||`Show Toast`}),{namespace:`ui`,label:`Sonner Toast`,inputs:[{name:`message`,type:`string`,label:`Message`},{name:`description`,type:`string`,label:`Description`},{name:`variant`,type:`enum`,enum:[`default`,`success`,`error`,`warning`,`info`],defaultValue:`default`,label:`Variant`},{name:`buttonLabel`,type:`string`,label:`Button Label`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{message:`Notification`,buttonLabel:`Show Toast`,variant:`default`}}),t.ComponentRegistry.register(`dialog`,({schema:e,className:t,...n})=>(0,o.jsxs)(Ct,{modal:e.modal,defaultOpen:e.defaultOpen,...n,children:[(0,o.jsx)(wt,{asChild:!0,children:V(e.trigger)}),(0,o.jsxs)(Ot,{className:t,children:[(0,o.jsxs)(kt,{children:[e.title&&(0,o.jsx)(jt,{children:e.title}),e.description&&(0,o.jsx)(Mt,{children:e.description})]}),V(e.content),e.footer&&(0,o.jsx)(At,{children:V(e.footer)})]})]}),{namespace:`ui`,label:`Dialog`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`modal`,type:`boolean`,label:`Modal`,defaultValue:!0},{name:`defaultOpen`,type:`boolean`,label:`Default Open`},{name:`trigger`,type:`slot`,label:`Trigger`,description:`Element that opens the dialog`},{name:`content`,type:`slot`,label:`Content`,description:`Main content of the dialog`},{name:`footer`,type:`slot`,label:`Footer`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{title:`Dialog Title`,description:`Dialog description goes here`,modal:!0,trigger:[{type:`button`,label:`Open Dialog`}],content:[{type:`text`,content:`Dialog content goes here`}]}}),t.ComponentRegistry.register(`sheet`,({schema:e,className:t,...n})=>(0,o.jsxs)(Wr,{modal:e.modal,defaultOpen:e.defaultOpen,...n,children:[(0,o.jsx)(Gr,{asChild:!0,children:V(e.trigger)}),(0,o.jsxs)(Xr,{side:e.side||`right`,className:t,children:[(0,o.jsxs)(Zr,{children:[e.title&&(0,o.jsx)($r,{children:e.title}),e.description&&(0,o.jsx)(ei,{children:e.description})]}),V(e.content),e.footer&&(0,o.jsx)(Qr,{children:V(e.footer)})]})]}),{namespace:`ui`,label:`Sheet`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`side`,type:`enum`,enum:[`top`,`right`,`bottom`,`left`],defaultValue:`right`,label:`Side`},{name:`modal`,type:`boolean`,label:`Modal`,defaultValue:!0},{name:`defaultOpen`,type:`boolean`,label:`Default Open`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`content`,type:`slot`,label:`Content`},{name:`footer`,type:`slot`,label:`Footer`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{title:`Sheet Title`,description:`Sheet description`,side:`right`,modal:!0,trigger:[{type:`button`,label:`Open Sheet`}],content:[{type:`text`,content:`Sheet content goes here`}]}}),t.ComponentRegistry.register(`popover`,({schema:e,className:t,...n})=>(0,o.jsxs)(Tr,{modal:e.modal,defaultOpen:e.defaultOpen,...n,children:[(0,o.jsx)(Er,{asChild:!0,children:V(e.trigger)}),(0,o.jsx)(Dr,{align:e.align,side:e.side,className:t,children:V(e.content)})]}),{namespace:`ui`,label:`Popover`,inputs:[{name:`modal`,type:`boolean`,label:`Modal`},{name:`defaultOpen`,type:`boolean`,label:`Default Open`},{name:`align`,type:`enum`,enum:[`start`,`center`,`end`],label:`Align`},{name:`side`,type:`enum`,enum:[`top`,`right`,`bottom`,`left`],label:`Side`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`content`,type:`slot`,label:`Content`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{trigger:[{type:`button`,label:`Open Popover`,variant:`outline`}],content:[{type:`text`,content:`Popover content goes here`}],align:`center`,side:`bottom`}}),t.ComponentRegistry.register(`tooltip`,({schema:e,className:t,...n})=>(0,o.jsx)(ri,{delayDuration:e.delayDuration,children:(0,o.jsxs)(ii,{...n,children:[(0,o.jsx)(ai,{asChild:!0,children:V(e.trigger)}),(0,o.jsx)(oi,{side:e.side,align:e.align,className:t,children:e.content||V(e.body)})]})}),{namespace:`ui`,label:`Tooltip`,inputs:[{name:`delayDuration`,type:`number`,label:`Delay Duration`,defaultValue:700},{name:`side`,type:`enum`,enum:[`top`,`right`,`bottom`,`left`],label:`Side`},{name:`align`,type:`enum`,enum:[`start`,`center`,`end`],label:`Align`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`content`,type:`string`,label:`Content Text`},{name:`body`,type:`slot`,label:`Rich Content`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{trigger:[{type:`button`,label:`Hover me`,variant:`outline`}],content:`Tooltip content`,delayDuration:700,side:`top`}}),t.ComponentRegistry.register(`alert-dialog`,({schema:e,className:t,...n})=>(0,o.jsxs)(xe,{defaultOpen:e.defaultOpen,...n,children:[(0,o.jsx)(Se,{asChild:!0,children:V(e.trigger)}),(0,o.jsxs)(Te,{className:t,children:[(0,o.jsxs)(Ee,{children:[e.title&&(0,o.jsx)(De,{children:e.title}),e.description&&(0,o.jsx)(Oe,{children:e.description})]}),V(e.content),(0,o.jsxs)(G,{children:[e.cancelText&&(0,o.jsx)(Ae,{children:e.cancelText}),e.actionText&&(0,o.jsx)(ke,{onClick:e.onAction,children:e.actionText})]})]})]}),{namespace:`ui`,label:`Alert Dialog`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`cancelText`,type:`string`,label:`Cancel Text`,defaultValue:`Cancel`},{name:`actionText`,type:`string`,label:`Action Text`,defaultValue:`Continue`},{name:`defaultOpen`,type:`boolean`,label:`Default Open`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`content`,type:`slot`,label:`Content/Body`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{title:`Are you sure?`,description:`This action cannot be undone.`,cancelText:`Cancel`,actionText:`Continue`,trigger:[{type:`button`,label:`Open Alert`,variant:`destructive`}]}}),t.ComponentRegistry.register(`drawer`,({schema:e,className:t,...n})=>(0,o.jsxs)(rn,{shouldScaleBackground:e.shouldScaleBackground,defaultOpen:e.defaultOpen,...n,children:[(0,o.jsx)(an,{asChild:!0,children:V(e.trigger)}),(0,o.jsxs)(ln,{className:t,children:[(0,o.jsxs)(un,{children:[e.title&&(0,o.jsx)(fn,{children:e.title}),e.description&&(0,o.jsx)(pn,{children:e.description})]}),V(e.content),e.footer&&(0,o.jsxs)(dn,{children:[V(e.footer),e.showClose&&(0,o.jsx)(sn,{asChild:!0,children:(0,o.jsx)(`button`,{children:`Close`})})]})]})]}),{namespace:`ui`,label:`Drawer`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`shouldScaleBackground`,type:`boolean`,label:`Scale Background`},{name:`defaultOpen`,type:`boolean`,label:`Default Open`},{name:`showClose`,type:`boolean`,label:`Show Close Button in Footer`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`content`,type:`slot`,label:`Content`},{name:`footer`,type:`slot`,label:`Footer`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{title:`Drawer Title`,description:`Drawer description`,trigger:[{type:`button`,label:`Open Drawer`}],content:[{type:`text`,content:`Drawer content goes here`}]}}),t.ComponentRegistry.register(`hover-card`,({schema:e,className:t,...n})=>(0,o.jsxs)(Bn,{openDelay:e.openDelay,closeDelay:e.closeDelay,...n,children:[(0,o.jsx)(Vn,{asChild:!0,children:V(e.trigger)}),(0,o.jsx)(Hn,{align:e.align,side:e.side,className:t,children:V(e.content)})]}),{namespace:`ui`,label:`Hover Card`,inputs:[{name:`openDelay`,type:`number`,label:`Open Delay`},{name:`closeDelay`,type:`number`,label:`Close Delay`},{name:`side`,type:`enum`,enum:[`top`,`right`,`bottom`,`left`],label:`Side`},{name:`align`,type:`enum`,enum:[`start`,`center`,`end`],label:`Align`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`content`,type:`slot`,label:`Content`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{trigger:[{type:`button`,label:`Hover me`,variant:`link`}],content:[{type:`text`,content:`Hover card content appears on hover`}],side:`top`}});var sc=e=>e?e.map((e,t)=>e.type===`separator`?(0,o.jsx)(Dn,{},t):e.type===`label`?(0,o.jsx)(En,{children:e.label},t):e.children?(0,o.jsxs)(vn,{children:[(0,o.jsxs)(bn,{inset:e.inset,children:[e.icon&&(0,o.jsx)(`span`,{className:`mr-2`,children:e.icon}),e.label]}),(0,o.jsx)(xn,{children:sc(e.children)})]},t):(0,o.jsxs)(Cn,{disabled:e.disabled,inset:e.inset,onSelect:e.onSelect,children:[e.icon&&(0,o.jsx)(`span`,{className:`mr-2`,children:e.icon}),e.label,e.shortcut&&(0,o.jsx)(`span`,{className:`ml-auto text-xs tracking-widest opacity-60`,children:e.shortcut})]},t)):null;t.ComponentRegistry.register(`dropdown-menu`,({schema:e,className:t,...n})=>(0,o.jsxs)(mn,{modal:e.modal,defaultOpen:e.defaultOpen,...n,children:[(0,o.jsx)(hn,{asChild:!0,children:V(e.trigger)}),(0,o.jsxs)(Sn,{align:e.align,side:e.side,className:t,children:[e.label&&(0,o.jsx)(En,{children:e.label}),e.label&&(0,o.jsx)(Dn,{}),sc(e.items)]})]}),{namespace:`ui`,label:`Dropdown Menu`,inputs:[{name:`label`,type:`string`,label:`Menu Label`},{name:`side`,type:`enum`,enum:[`top`,`right`,`bottom`,`left`],label:`Side`},{name:`align`,type:`enum`,enum:[`start`,`center`,`end`],label:`Align`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`items`,type:`array`,label:`Items`,description:`Recursive structure: { type?: "separator"|"label", label, icon, shortcut, disabled, children: [] }`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{trigger:[{type:`button`,label:`Menu`,variant:`outline`}],items:[{label:`Item 1`},{label:`Item 2`},{type:`separator`},{label:`Item 3`}],align:`start`,side:`bottom`}});var cc=e=>e?e.map((e,t)=>e.type===`separator`?(0,o.jsx)(tn,{},t):e.type===`label`?(0,o.jsx)(en,{children:e.label},t):e.children?(0,o.jsxs)(Kt,{children:[(0,o.jsx)(Jt,{inset:e.inset,children:e.label}),(0,o.jsx)(Yt,{children:cc(e.children)})]},t):(0,o.jsxs)(Zt,{disabled:e.disabled,inset:e.inset,onSelect:e.onSelect,children:[e.label,e.shortcut&&(0,o.jsx)(nn,{children:e.shortcut})]},t)):null;t.ComponentRegistry.register(`context-menu`,({schema:e,className:t,...n})=>{let r=e.triggerClassName||t||e.className||`h-[120px] w-full sm:h-[150px] sm:w-[300px] border border-dashed text-sm flex items-center justify-center`,i=e.contentClassName;return(0,o.jsxs)(Ht,{modal:e.modal,...n,children:[(0,o.jsx)(Ut,{asChild:!0,children:(0,o.jsx)(`div`,{className:r,children:V(e.trigger||{type:`text`,value:`Right click here`})})}),(0,o.jsx)(Xt,{className:i,children:cc(e.items)})]})},{namespace:`ui`,label:`Context Menu`,inputs:[{name:`trigger`,type:`slot`,label:`Trigger Area`},{name:`triggerClassName`,type:`string`,label:`Trigger Area Class`},{name:`items`,type:`array`,label:`Items`,description:`Recursive structure: { type?: "separator"|"label", label, shortcut, children }`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{items:[{label:`Action 1`},{label:`Action 2`},{type:`separator`},{label:`Action 3`}],trigger:[{type:`text`,content:`Right click here`}]}}),t.ComponentRegistry.register(`menubar`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,o.jsx)(Qn,{className:e.className,...a,"data-obj-id":n,"data-obj-type":r,style:i,children:e.menus?.map((e,t)=>(0,o.jsxs)(qn,{children:[(0,o.jsx)($n,{children:e.label}),(0,o.jsx)(nr,{children:e.items?.map((e,t)=>e.separator?(0,o.jsx)(sr,{},t):e.children?(0,o.jsxs)(Zn,{children:[(0,o.jsx)(er,{children:e.label}),(0,o.jsx)(tr,{children:e.children.map((e,t)=>(0,o.jsx)(rr,{children:e.label},t))})]},t):(0,o.jsx)(rr,{disabled:e.disabled,children:e.label},t))})]},t))})},{namespace:`ui`,label:`Menubar`,inputs:[{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{menus:[{label:`File`,items:[{label:`New`},{label:`Open`},{separator:!0},{label:`Exit`}]}]}}),t.ComponentRegistry.register(`accordion`,({schema:e,className:t,...n})=>(0,o.jsx)(H,{type:e.accordionType||`single`,collapsible:e.collapsible,className:t,...n,children:e.items?.map((e,t)=>(0,o.jsxs)(ve,{value:e.value||`item-${t}`,children:[(0,o.jsx)(ye,{children:e.title}),(0,o.jsx)(be,{children:V(e.content)})]},e.value||t))}),{namespace:`ui`,label:`Accordion`,inputs:[{name:`accordionType`,type:`enum`,enum:[`single`,`multiple`],defaultValue:`single`,label:`Type`},{name:`collapsible`,type:`boolean`,label:`Collapsible (for single type)`},{name:`items`,type:`array`,label:`Items`,description:`Array of { trigger, content, value }`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{accordionType:`single`,collapsible:!0,items:[{label:`Item 1`,value:`item-1`,content:[{type:`text`,content:`Content for item 1`}]},{label:`Item 2`,value:`item-2`,content:[{type:`text`,content:`Content for item 2`}]},{label:`Item 3`,value:`item-3`,content:[{type:`text`,content:`Content for item 3`}]}],className:`w-full`}}),t.ComponentRegistry.register(`collapsible`,({schema:e,className:t,...n})=>(0,o.jsxs)(bt,{defaultOpen:e.defaultOpen,disabled:e.disabled,className:t,...n,children:[(0,o.jsx)(xt,{asChild:!0,children:V(e.trigger)}),(0,o.jsx)(St,{children:V(e.content)})]}),{namespace:`ui`,label:`Collapsible`,inputs:[{name:`defaultOpen`,type:`boolean`,label:`Default Open`},{name:`disabled`,type:`boolean`,label:`Disabled`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`content`,type:`slot`,label:`Content`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{trigger:[{type:`button`,label:`Toggle`,variant:`outline`}],content:[{type:`text`,content:`Collapsible content goes here`}],className:`w-full`}}),t.ComponentRegistry.register(`toggle-group`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,type:a,...s}=t;return(0,o.jsx)(ia,{type:e.selectionType||`single`,variant:e.variant,size:e.size,value:e.value,className:e.className,...s,"data-obj-id":n,"data-obj-type":r,style:i,children:e.items?.map((e,t)=>(0,o.jsx)(aa,{value:e.value,"aria-label":e.label,children:e.label},t))})},{namespace:`ui`,label:`Toggle Group`,inputs:[{name:`selectionType`,type:`enum`,enum:[`single`,`multiple`],defaultValue:`single`,label:`Selection Type`},{name:`variant`,type:`enum`,enum:[`default`,`outline`],defaultValue:`default`,label:`Variant`},{name:`size`,type:`enum`,enum:[`default`,`sm`,`lg`],defaultValue:`default`,label:`Size`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{selectionType:`single`,variant:`default`,size:`default`,items:[{value:`bold`,label:`Bold`},{value:`italic`,label:`Italic`},{value:`underline`,label:`Underline`}]}}),t.ComponentRegistry.register(`carousel`,({schema:e,className:t,...n})=>(0,o.jsxs)(it,{opts:e.opts,orientation:e.orientation||`horizontal`,className:t,...n,children:[(0,o.jsx)(at,{children:e.items?.map((t,n)=>(0,o.jsx)(ot,{className:e.itemClassName,children:V(t)},n))}),e.showArrows&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(st,{}),(0,o.jsx)(ct,{})]})]}),{namespace:`ui`,label:`Carousel`,inputs:[{name:`orientation`,type:`enum`,enum:[`horizontal`,`vertical`],defaultValue:`horizontal`,label:`Orientation`},{name:`showArrows`,type:`boolean`,label:`Show Arrows`,defaultValue:!0},{name:`items`,type:`array`,label:`Items`,description:`Array of content schemas`},{name:`itemClassName`,type:`string`,label:`Item CSS Class`},{name:`className`,type:`string`,label:`Container CSS Class`}],defaultProps:{orientation:`horizontal`,showArrows:!0,items:[[{type:`div`,className:`p-4 sm:p-6 md:p-8 border rounded bg-slate-50`,body:[{type:`text`,content:`Slide 1`}]}],[{type:`div`,className:`p-4 sm:p-6 md:p-8 border rounded bg-slate-50`,body:[{type:`text`,content:`Slide 2`}]}],[{type:`div`,className:`p-4 sm:p-6 md:p-8 border rounded bg-slate-50`,body:[{type:`text`,content:`Slide 3`}]}]],className:`w-full max-w-xs`}}),t.ComponentRegistry.register(`filter-builder`,({schema:e,className:t,onChange:n,...r})=>(0,o.jsxs)(`div`,{className:e.wrapperClass||``,children:[e.label&&(0,o.jsx)(`label`,{className:`text-sm font-medium mb-2 block`,children:e.label}),(0,o.jsx)(Xa,{fields:e.fields||[],value:e.value||r.value,onChange:t=>{n&&n({target:{name:e.name,value:t}})},className:t,...r})]}),{namespace:`ui`,label:`Filter Builder`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`name`,type:`string`,label:`Name`,required:!0},{name:`fields`,type:`array`,label:`Fields`,description:`Array of { value: string, label: string, type?: string } objects`,required:!0},{name:`value`,type:`object`,label:`Initial Value`,description:`FilterGroup object with conditions`}],defaultProps:{label:`Filters`,name:`filters`,fields:[{value:`name`,label:`Name`,type:`text`},{value:`email`,label:`Email`,type:`text`},{value:`age`,label:`Age`,type:`number`},{value:`status`,label:`Status`,type:`text`}],value:{id:`root`,logic:`and`,conditions:[]}}}),t.ComponentRegistry.register(`scroll-area`,({schema:e,className:t,...n})=>{let{"data-obj-id":r,"data-obj-type":i,style:a,...s}=n,c=e.orientation||`vertical`;return(0,o.jsxs)(Pr,{className:t,style:{height:e.height,width:e.width,...a},...s,"data-obj-id":r,"data-obj-type":i,children:[V(e.children),(c===`horizontal`||c===`both`)&&(0,o.jsx)(Fr,{orientation:`horizontal`}),(c===`vertical`||c===`both`)&&(0,o.jsx)(Fr,{orientation:`vertical`})]})},{namespace:`ui`,label:`Scroll Area`,inputs:[{name:`height`,type:`string`,label:`Height (e.g. 200px)`},{name:`width`,type:`string`,label:`Width`},{name:`orientation`,type:`enum`,enum:[`vertical`,`horizontal`,`both`],defaultValue:`vertical`,label:`Orientation`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{height:`200px`,width:`100%`,orientation:`vertical`,children:[{type:`div`,className:`p-4`,body:[{type:`text`,content:`Scrollable content goes here. Add more content to see scrolling behavior.`}]}],className:`rounded-md border`}}),t.ComponentRegistry.register(`resizable`,({schema:e,className:t,...n})=>{let r=Array.isArray(e.panels)?e.panels:[];return(0,o.jsx)(jr,{orientation:e.direction||`horizontal`,className:t,...n,style:{minHeight:e.minHeight||`200px`},children:r.map((t,n)=>(0,o.jsxs)(a.default.Fragment,{children:[(0,o.jsx)(Mr,{defaultSize:t.defaultSize,minSize:t.minSize,maxSize:t.maxSize,children:V(t.content)}),n<r.length-1&&(0,o.jsx)(Nr,{withHandle:e.withHandle})]},n))})},{namespace:`ui`,label:`Resizable Panel Group`,inputs:[{name:`direction`,type:`enum`,enum:[`horizontal`,`vertical`],defaultValue:`horizontal`,label:`Direction`},{name:`minHeight`,type:`string`,label:`Min Height`},{name:`withHandle`,type:`boolean`,label:`Show Handle Icon`,defaultValue:!0},{name:`panels`,type:`array`,label:`Panels`,description:`Array of { defaultSize, minSize, maxSize, content }`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{direction:`horizontal`,minHeight:`200px`,withHandle:!0,panels:[{defaultSize:50,content:[{type:`div`,className:`p-4`,body:[{type:`text`,content:`Panel 1`}]}]},{defaultSize:50,content:[{type:`div`,className:`p-4`,body:[{type:`text`,content:`Panel 2`}]}]}],className:`rounded-lg border`}}),t.ComponentRegistry.register(`table`,({schema:e,className:t,...n})=>(0,o.jsxs)(Hi,{className:t,...n,children:[e.caption&&(0,o.jsx)(Yi,{children:e.caption}),(0,o.jsx)(Ui,{children:(0,o.jsx)(Ki,{children:e.columns?.map((e,t)=>(0,o.jsx)(qi,{className:e.className,style:{width:e.width},children:e.header||e.label},t))})}),(0,o.jsx)(Wi,{children:e.data?.map((t,n)=>(0,o.jsx)(Ki,{children:e.columns?.map((e,n)=>(0,o.jsx)(Ji,{className:e.cellClassName,children:t[e.accessorKey||e.name]},n))},n))}),e.footer&&(0,o.jsx)(Gi,{children:(0,o.jsx)(Ki,{children:(0,o.jsx)(Ji,{colSpan:e.columns?.length,children:typeof e.footer==`string`?e.footer:V(e.footer)})})})]}),{namespace:`ui`,label:`Table`,inputs:[{name:`caption`,type:`string`,label:`Caption`},{name:`footer`,type:`string`,label:`Footer Content`},{name:`columns`,type:`array`,label:`Columns`,description:`Array of { header, accessorKey, className, width }`},{name:`data`,type:`array`,label:`Data`,description:`Array of objects`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{caption:`Table Caption`,columns:[{header:`Column 1`,accessorKey:`col1`},{header:`Column 2`,accessorKey:`col2`},{header:`Column 3`,accessorKey:`col3`}],data:[{col1:`Row 1, Col 1`,col2:`Row 1, Col 2`,col3:`Row 1, Col 3`},{col1:`Row 2, Col 1`,col2:`Row 2, Col 2`,col3:`Row 2, Col 3`},{col1:`Row 3, Col 1`,col2:`Row 3, Col 2`,col3:`Row 3, Col 3`}]}});var lc={"table.rowsPerPage":`Rows per page`,"table.pageInfo":`Page {{current}} of {{total}}`,"table.totalRecords":`{{count}} total`,"table.noResults":`No results found`,"table.noResultsHint":`Try adjusting your filters or search query.`,"table.sortAsc":`Sort ascending`,"table.sortDesc":`Sort descending`,"table.hideColumn":`Hide column`,"table.cancelAll":`Cancel All`,"table.saveAll":`Save All ({{count}})`,"table.exportCSV":`Export CSV`,"table.addRecord":`Add record`,"table.open":`Open`,"table.search":`Search...`,"table.modified":`{{count}} row modified`,"table.selected":`{{count}} selected`,"table.edit":`Edit`,"table.delete":`Delete`,"common.actions":`Actions`};function uc(){try{let e=(0,i.useObjectTranslation)();return e.t(`table.rowsPerPage`)===`table.rowsPerPage`?{t:(e,t)=>{let n=lc[e]||e;if(t)for(let[e,r]of Object.entries(t))n=n.replace(`{{${e}}}`,String(r));return n},language:e.language||`en`}:{t:e.t,language:e.language||`en`}}catch{return{t:(e,t)=>{let n=lc[e]||e;if(t)for(let[e,r]of Object.entries(t))n=n.replace(`{{${e}}}`,String(r));return n},language:`en`}}}t.ComponentRegistry.register(`data-table`,({schema:e})=>{let{caption:n,columns:r=[],data:i=[],pagination:s=!0,pageSize:l=10,searchable:u=!0,selectable:d=!1,sortable:f=!0,exportable:p=!1,rowActions:m=!1,resizableColumns:h=!0,reorderableColumns:g=!0,editable:_=!1,singleClickEdit:v=!1,selectionStyle:y=`always`,rowClassName:b,rowStyle:x,className:S,cellClassName:C,frozenColumns:w=0,showRowNumbers:T=!1,showAddRow:E=!1,borderless:D=!1}=e,{t:O,language:k}=uc(),A=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:?\d{2})?)?$/,ee=a.default.useCallback(e=>{if(typeof e!=`string`||e.length<8||!A.test(e))return e;let t=Date.parse(e);if(Number.isNaN(t))return e;let n=e.includes(`T`);try{return new Intl.DateTimeFormat(k,n?{year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}:{year:`numeric`,month:`short`,day:`numeric`}).format(new Date(t))}catch{return e}},[k]),j=Array.isArray(i)?i:[],te=(0,a.useMemo)(()=>r.map(e=>({...e,header:e.header||e.label,accessorKey:e.accessorKey||e.name})),[r]),M=(0,a.useMemo)(()=>{let e={},t=r.map(e=>({header:e.header||e.label,accessorKey:e.accessorKey||e.name,width:e.width}));for(let n of t){if(n.width)continue;let t=(n.header||``).length,r=j.slice(0,50);for(let e of r){let r=e[n.accessorKey],i=r==null?0:String(r).length;i>t&&(t=i)}e[n.accessorKey]=Math.min(400,Math.max(80,t*8+48))}return e},[r,j]),[N,ne]=(0,a.useState)(``),[P,re]=(0,a.useState)(null),[ie,F]=(0,a.useState)(null),[ae,oe]=(0,a.useState)(new Set),[I,se]=(0,a.useState)(1),[L,ce]=(0,a.useState)(l),[R,le]=(0,a.useState)(te),[ue,de]=(0,a.useState)({}),[fe,pe]=(0,a.useState)(null),[me,he]=(0,a.useState)(null),[z,V]=(0,a.useState)(null),[ge,_e]=(0,a.useState)(``),[H,ve]=(0,a.useState)(new Map),[ye,be]=(0,a.useState)(!1),[U,xe]=(0,a.useState)(null),Se=(0,a.useRef)(null),Ce=(0,a.useRef)(0),we=(0,a.useRef)(0),Te=(0,a.useRef)(null);(0,a.useEffect)(()=>{le(te)},[te]);let Ee=(0,a.useMemo)(()=>N?j.filter(e=>R.some(t=>e[t.accessorKey]?.toString().toLowerCase().includes(N.toLowerCase()))):j,[j,N,R]),G=(0,a.useMemo)(()=>!P||!ie?Ee:[...Ee].sort((e,t)=>{let n=e[P],r=t[P];if(n===r)return 0;let i=n<r?-1:1;return ie===`asc`?i:-i}),[Ee,P,ie]),De=Math.ceil(G.length/L),Oe=s?G.slice((I-1)*L,I*L):G,ke=(e,t)=>e.id===void 0?`row-${t}`:e.id,Ae=e=>{f&&(P===e?ie===`asc`?F(`desc`):ie===`desc`&&(F(null),re(null)):(re(e),F(`asc`)))},je=(e,t)=>{e.preventDefault(),xe({x:e.clientX,y:e.clientY,columnKey:t})},Me=e=>{le(t=>t.filter(t=>t.accessorKey!==e)),xe(null)};(0,a.useEffect)(()=>{if(!U)return;let e=()=>xe(null);return document.addEventListener(`click`,e),()=>document.removeEventListener(`click`,e)},[U]);let Ne=t=>{let n=new Set;if(t&&Oe.forEach((e,t)=>{let r=ke(e,(I-1)*L+t);n.add(r)}),oe(n),e.onSelectionChange){let t=G.filter((e,t)=>{let r=ke(e,t);return n.has(r)});e.onSelectionChange(t)}},Pe=(t,n)=>{let r=new Set(ae);if(n?r.add(t):r.delete(t),oe(r),e.onSelectionChange){let t=G.filter((e,t)=>{let n=ke(e,t);return r.has(n)});e.onSelectionChange(t)}},Fe=()=>{let e=[R.map(e=>e.header).join(`,`),...G.map(e=>R.map(t=>JSON.stringify(e[t.accessorKey]||``)).join(`,`))].join(`
|
|
18
|
+
`,document.head.appendChild(t),Zo=!0}var $o=({active:e,ariaLabel:t=`Refreshing`,className:n,...r})=>(a.useEffect(()=>{e&&Qo()},[e]),e?(0,o.jsx)(`div`,{className:B(`pointer-events-none absolute inset-x-0 top-0 z-20 h-0.5 overflow-hidden`,n),role:`progressbar`,"aria-busy":`true`,"aria-label":t,"data-testid":`refresh-indicator`,...r,children:(0,o.jsx)(`div`,{className:`h-full w-1/4 rounded-full bg-primary/70`,style:{animation:`objui-refresh-bar 1.1s ease-in-out infinite`}})}):null);$o.displayName=`RefreshIndicator`;function es({className:e,message:t=`Loading…`,...n}){return(0,o.jsxs)(`div`,{role:`status`,"aria-label":t,"data-slot":`data-loading-state`,className:B(`flex flex-col items-center justify-center gap-3 p-6 text-center`,e),...n,children:[(0,o.jsx)(c.Loader2,{className:`size-6 animate-spin text-muted-foreground`}),t&&(0,o.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t})]})}function ts({className:e,icon:t,title:n=`No data`,description:r,action:i,children:a,...s}){return(0,o.jsxs)(`div`,{"data-slot":`data-empty-state`,className:B(`flex flex-col items-center justify-center gap-3 p-6 text-center`,e),...s,children:[(0,o.jsx)(`div`,{className:`flex size-10 items-center justify-center rounded-lg bg-muted`,children:t??(0,o.jsx)(c.InboxIcon,{className:`size-5 text-muted-foreground`})}),n&&(0,o.jsx)(`h3`,{className:`text-sm font-medium`,children:n}),r&&(0,o.jsx)(`p`,{className:`max-w-sm text-sm text-muted-foreground`,children:r}),i,a]})}function ns({className:e,title:t=`Something went wrong`,message:n,onRetry:r,retryLabel:i=`Retry`,children:a,...s}){return(0,o.jsxs)(`div`,{role:`alert`,"data-slot":`data-error-state`,className:B(`flex flex-col items-center justify-center gap-3 p-6 text-center`,e),...s,children:[(0,o.jsx)(`div`,{className:`flex size-10 items-center justify-center rounded-lg bg-destructive/10`,children:(0,o.jsx)(c.AlertCircle,{className:`size-5 text-destructive`})}),t&&(0,o.jsx)(`h3`,{className:`text-sm font-medium`,children:t}),n&&(0,o.jsx)(`p`,{className:`max-w-sm text-sm text-muted-foreground`,children:n}),r&&(0,o.jsx)(W,{variant:`outline`,size:`sm`,onClick:r,children:i}),a]})}var rs=a.forwardRef(({className:e,children:t,...n},r)=>(0,o.jsxs)(Tt,{children:[(0,o.jsx)(Dt,{}),(0,o.jsxs)(b.Content,{ref:r,className:B(`fixed inset-0 z-50 w-full bg-background p-4 shadow-lg duration-200`,`h-[100dvh]`,`sm:inset-auto sm:left-[50%] sm:top-[50%] sm:translate-x-[-50%] sm:translate-y-[-50%]`,`sm:max-w-lg sm:h-auto sm:max-h-[90vh] sm:rounded-lg sm:border sm:p-6`,`data-[state=open]:animate-in data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,`data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95`,`data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%]`,`data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]`,e),...n,children:[t,(0,o.jsxs)(b.Close,{className:B(`absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity`,`hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2`,`disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground`,`min-h-[44px] min-w-[44px] sm:min-h-0 sm:min-w-0 flex items-center justify-center`),children:[(0,o.jsx)(c.X,{className:`h-5 w-5 sm:h-4 sm:w-4`}),(0,o.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]}));rs.displayName=`MobileDialogContent`;function is(e){return!e&&e!==0?``:e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:`${(e/(1024*1024*1024)).toFixed(2)} GB`}function as({open:e,onOpenChange:t,job:n,title:r,description:i,filename:s,allowCloseWhileRunning:l=!0,className:u,onAfterDownload:d,closeAfterDownloadMs:f}){let{progress:p,error:m,isRunning:h,cancel:g,download:_,reset:v}=n,y=p?.status,b=typeof p?.percentComplete==`number`?Math.max(0,Math.min(100,p.percentComplete)):void 0,x=y===`completed`,S=y===`failed`||y===`expired`,C=y===`cancelled`,w=a.useCallback(async()=>{await _(s)&&(d?.(),f&&f>0&&setTimeout(()=>t(!1),f))},[_,s,d,f,t]),T=a.useCallback(e=>{!e&&h&&!l||(t(e),!e&&!h&&setTimeout(v,0))},[h,l,t,v]),E=r??(x?`Export ready`:S?`Export failed`:C?`Export cancelled`:`Exporting…`),D=i??(x?`Your export is ready to download.`:S?`The export job did not complete.`:C?`The export was cancelled.`:`Your export is being prepared on the server. You can close this window — the job will continue in the background.`);return(0,o.jsx)(Ct,{open:e,onOpenChange:T,children:(0,o.jsxs)(Ot,{"data-testid":`export-progress-dialog`,className:B(`sm:max-w-md`,u),children:[(0,o.jsxs)(kt,{children:[(0,o.jsxs)(jt,{className:`flex items-center gap-2`,children:[x?(0,o.jsx)(c.CheckCircle2,{className:`h-5 w-5 text-green-600`,"aria-hidden":`true`}):S?(0,o.jsx)(c.AlertCircle,{className:`h-5 w-5 text-destructive`,"aria-hidden":`true`}):(0,o.jsx)(c.Loader2,{className:B(`h-5 w-5 text-muted-foreground`,h&&`animate-spin`),"aria-hidden":`true`}),E]}),(0,o.jsx)(Mt,{children:D})]}),(0,o.jsxs)(`div`,{className:`py-2 space-y-3`,children:[(h||x)&&(0,o.jsx)(`div`,{"data-testid":`export-progress-bar`,children:b===void 0?(0,o.jsx)(Or,{value:void 0,"aria-label":`Export progress (indeterminate)`}):(0,o.jsx)(Or,{value:b,"aria-label":`Export progress`})}),(0,o.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-muted-foreground`,children:[(0,o.jsx)(`span`,{"data-testid":`export-progress-counts`,children:p?.processedRecords==null?h?`Starting…`:``:`${p.processedRecords.toLocaleString()}${p.totalRecords==null?``:` / ${p.totalRecords.toLocaleString()}`} records`}),(0,o.jsx)(`span`,{"data-testid":`export-progress-percent`,children:b===void 0?``:`${b.toFixed(0)}%`})]}),p?.fileSize?(0,o.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:is(p.fileSize)}):null,(m||p?.error)&&(0,o.jsx)(`div`,{"data-testid":`export-progress-error`,className:`text-xs text-destructive bg-destructive/10 border border-destructive/30 rounded-md px-2 py-1`,children:m?.message||p?.error?.message})]}),(0,o.jsxs)(At,{className:`gap-2 sm:gap-2`,children:[h&&(0,o.jsxs)(W,{type:`button`,variant:`ghost`,onClick:()=>g(),"data-testid":`export-progress-cancel`,children:[(0,o.jsx)(c.X,{className:`h-4 w-4`,"aria-hidden":`true`}),(0,o.jsx)(`span`,{className:`ml-1`,children:`Cancel`})]}),x&&(0,o.jsxs)(W,{type:`button`,variant:`default`,onClick:w,"data-testid":`export-progress-download`,children:[(0,o.jsx)(c.Download,{className:`h-4 w-4`,"aria-hidden":`true`}),(0,o.jsx)(`span`,{className:`ml-1`,children:`Download`})]}),!h&&(0,o.jsx)(W,{type:`button`,variant:`outline`,onClick:()=>T(!1),"data-testid":`export-progress-close`,children:`Close`})]})]})})}t.ComponentRegistry.register(`combobox`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,o.jsx)(Pa,{options:e.options||[],placeholder:e.placeholder,value:e.value,disabled:e.disabled,className:e.className,...a,"data-obj-id":n,"data-obj-type":r,style:i})},{namespace:`ui`,label:`Combobox`,inputs:[{name:`placeholder`,type:`string`,label:`Placeholder`},{name:`value`,type:`string`,label:`Value`},{name:`disabled`,type:`boolean`,label:`Disabled`,defaultValue:!1},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{placeholder:`Select option...`,options:[]}}),t.ComponentRegistry.register(`command`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,o.jsxs)(Nt,{className:e.className,...a,"data-obj-id":n,"data-obj-type":r,style:i,children:[(0,o.jsx)(Ft,{placeholder:e.placeholder||`Type a command or search...`}),(0,o.jsxs)(It,{children:[(0,o.jsx)(Lt,{children:e.emptyText||`No results found.`}),e.groups?.map((e,t)=>(0,o.jsx)(Rt,{heading:e.heading,children:e.items?.map((e,t)=>(0,o.jsx)(Bt,{value:e.value,children:e.label},t))},t))]})]})},{namespace:`ui`,label:`Command`,inputs:[{name:`placeholder`,type:`string`,label:`Placeholder`},{name:`emptyText`,type:`string`,label:`Empty Text`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{placeholder:`Type a command or search...`,emptyText:`No results found.`,groups:[]}});var os=(0,a.forwardRef)(({schema:e,className:t,...n},r)=>{let{"data-obj-id":i,"data-obj-type":a,style:s,...c}=n,l=e.clickable||!!n.onClick;return(0,o.jsxs)(Xe,{ref:r,className:B(t,(e.hoverable||l)&&`transition-colors hover:bg-muted/50`,l&&`cursor-pointer active:bg-muted`),...c,"data-obj-id":i,"data-obj-type":a,style:s,children:[(e.title||e.description||e.header)&&(0,o.jsxs)(Ze,{children:[e.title&&(0,o.jsx)(Qe,{children:e.title}),e.description&&(0,o.jsx)($e,{children:e.description}),e.header&&V(e.header)]}),(e.children||e.body)&&(0,o.jsx)(et,{children:V(e.children||e.body)}),e.footer&&(0,o.jsx)(tt,{className:`flex justify-between`,children:V(e.footer)})]})});t.ComponentRegistry.register(`card`,os,{namespace:`ui`,label:`Card`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{title:`Card Title`,description:`Card description goes here`,className:`w-full`},isContainer:!0,resizable:!0,resizeConstraints:{width:!0,height:!0,minWidth:200,minHeight:100}}),t.ComponentRegistry.register(`tabs`,({schema:e,className:t,onChange:n,value:r,...i})=>{let{"data-obj-id":a,"data-obj-type":s,style:c,...l}=i,u=e=>{n&&n(e)},d=e.orientation===`vertical`;return(0,o.jsxs)(Xi,{defaultValue:r===void 0?e.defaultValue:void 0,value:r??e.value,onValueChange:u,orientation:e.orientation||`horizontal`,className:B(t,d&&`flex gap-2`),...l,"data-obj-id":a,"data-obj-type":s,style:c,children:[(0,o.jsx)(Zi,{className:B(d&&`flex-col h-auto items-stretch bg-muted/50 p-1`),children:e.items?.map(e=>(0,o.jsx)(Qi,{value:e.value,disabled:e.disabled,className:B(d&&`justify-start`),children:e.label},e.value))}),e.items?.map(e=>(0,o.jsx)($i,{value:e.value,className:B(`mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,d&&`mt-0 flex-1`),children:V(e.content||e.body)},e.value))]})},{namespace:`ui`,label:`Tabs`,inputs:[{name:`defaultValue`,type:`string`,label:`Default Value`,required:!0},{name:`className`,type:`string`,label:`CSS Class`},{name:`items`,type:`array`,label:`Items`}],defaultProps:{defaultValue:`tab1`,items:[{label:`Tab 1`,value:`tab1`,body:[{type:`text`,content:`Content for Tab 1`}]},{label:`Tab 2`,value:`tab2`,body:[{type:`text`,content:`Content for Tab 2`}]},{label:`Tab 3`,value:`tab3`,body:[{type:`text`,content:`Content for Tab 3`}]}],className:`w-full`}});var ss={1:`grid-cols-1`,2:`grid-cols-2`,3:`grid-cols-3`,4:`grid-cols-4`,5:`grid-cols-5`,6:`grid-cols-6`,7:`grid-cols-7`,8:`grid-cols-8`,9:`grid-cols-9`,10:`grid-cols-10`,11:`grid-cols-11`,12:`grid-cols-12`},cs={1:`sm:grid-cols-1`,2:`sm:grid-cols-2`,3:`sm:grid-cols-3`,4:`sm:grid-cols-4`,5:`sm:grid-cols-5`,6:`sm:grid-cols-6`,7:`sm:grid-cols-7`,8:`sm:grid-cols-8`,9:`sm:grid-cols-9`,10:`sm:grid-cols-10`,11:`sm:grid-cols-11`,12:`sm:grid-cols-12`},ls={1:`md:grid-cols-1`,2:`md:grid-cols-2`,3:`md:grid-cols-3`,4:`md:grid-cols-4`,5:`md:grid-cols-5`,6:`md:grid-cols-6`,7:`md:grid-cols-7`,8:`md:grid-cols-8`,9:`md:grid-cols-9`,10:`md:grid-cols-10`,11:`md:grid-cols-11`,12:`md:grid-cols-12`},us={1:`lg:grid-cols-1`,2:`lg:grid-cols-2`,3:`lg:grid-cols-3`,4:`lg:grid-cols-4`,5:`lg:grid-cols-5`,6:`lg:grid-cols-6`,7:`lg:grid-cols-7`,8:`lg:grid-cols-8`,9:`lg:grid-cols-9`,10:`lg:grid-cols-10`,11:`lg:grid-cols-11`,12:`lg:grid-cols-12`},ds={1:`xl:grid-cols-1`,2:`xl:grid-cols-2`,3:`xl:grid-cols-3`,4:`xl:grid-cols-4`,5:`xl:grid-cols-5`,6:`xl:grid-cols-6`,7:`xl:grid-cols-7`,8:`xl:grid-cols-8`,9:`xl:grid-cols-9`,10:`xl:grid-cols-10`,11:`xl:grid-cols-11`,12:`xl:grid-cols-12`},fs={0:`gap-0`,1:`gap-1`,2:`gap-2`,3:`gap-3`,4:`gap-4`,5:`gap-5`,6:`gap-6`,8:`gap-8`,10:`gap-10`,12:`gap-12`};t.ComponentRegistry.register(`grid`,({schema:e,className:t,...n})=>{let r=2,i,a,s,c;typeof e.columns==`number`?r=e.columns:typeof e.columns==`object`&&e.columns!==null&&(r=e.columns.xs??1,i=e.columns.sm,a=e.columns.md,s=e.columns.lg,c=e.columns.xl),e.smColumns&&(i=e.smColumns),e.mdColumns&&(a=e.mdColumns),e.lgColumns&&(s=e.lgColumns),e.xlColumns&&(c=e.xlColumns);let l=e.gap??4,u=B(`grid`,ss[r]||`grid-cols-2`,i&&cs[i],a&&ls[a],s&&us[s],c&&ds[c],fs[l]||`gap-[${l*.25}rem]`,t),{"data-obj-id":d,"data-obj-type":f,style:p,...m}=n;return(0,o.jsx)(`div`,{className:u,...m,"data-obj-id":d,"data-obj-type":f,style:p,children:e.children&&V(e.children)})},{namespace:`ui`,label:`Grid Layout`,inputs:[{name:`columns`,type:`number`,label:`Base Columns (Mobile)`,defaultValue:2,description:`Number of columns on mobile devices`},{name:`smColumns`,type:`number`,label:`SM Columns (Tablet)`,description:`Columns at sm breakpoint (>640px)`},{name:`mdColumns`,type:`number`,label:`MD Columns (Laptop)`,description:`Columns at md breakpoint (>768px)`},{name:`lgColumns`,type:`number`,label:`LG Columns (Desktop)`,description:`Columns at lg breakpoint (>1024px)`},{name:`xlColumns`,type:`number`,label:`XL Columns (Wide)`,description:`Columns at xl breakpoint (>1280px)`},{name:`gap`,type:`number`,label:`Gap`,defaultValue:4,description:`Gap between items (0-12)`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{columns:1,mdColumns:2,lgColumns:4,gap:4,children:[{type:`card`,title:`Card 1`,description:`First card`},{type:`card`,title:`Card 2`,description:`Second card`},{type:`card`,title:`Card 3`,description:`Third card`},{type:`card`,title:`Card 4`,description:`Fourth card`}]},isContainer:!0,resizable:!0,resizeConstraints:{width:!0,height:!0,minWidth:200,minHeight:100}}),t.ComponentRegistry.register(`flex`,({schema:e,className:t,...n})=>{let r=e.direction||`row`,i=e.justify||`start`,a=e.align||`start`,s=e.gap||2,c=e.wrap||!1,l=B(`flex`,r===`row`&&`flex-row`,r===`col`&&`flex-col`,r===`row-reverse`&&`flex-row-reverse`,r===`col-reverse`&&`flex-col-reverse`,i===`start`&&`justify-start`,i===`end`&&`justify-end`,i===`center`&&`justify-center`,i===`between`&&`justify-between`,i===`around`&&`justify-around`,i===`evenly`&&`justify-evenly`,a===`start`&&`items-start`,a===`end`&&`items-end`,a===`center`&&`items-center`,a===`baseline`&&`items-baseline`,a===`stretch`&&`items-stretch`,s===0&&`gap-0`,s===1&&`gap-1`,s===2&&`gap-1.5 sm:gap-2`,s===3&&`gap-2 sm:gap-3`,s===4&&`gap-2 sm:gap-3 md:gap-4`,s===5&&`gap-3 sm:gap-4 md:gap-5`,s===6&&`gap-3 sm:gap-4 md:gap-6`,s===7&&`gap-4 sm:gap-5 md:gap-7`,s===8&&`gap-4 sm:gap-6 md:gap-8`,c&&`flex-wrap`,t),{"data-obj-id":u,"data-obj-type":d,style:f,...p}=n;return(0,o.jsx)(`div`,{className:l,...p,"data-obj-id":u,"data-obj-type":d,style:f,children:e.children&&V(e.children)})},{namespace:`ui`,label:`Flex Layout`,inputs:[{name:`direction`,type:`enum`,enum:[`row`,`col`,`row-reverse`,`col-reverse`],label:`Direction`,defaultValue:`row`},{name:`justify`,type:`enum`,enum:[`start`,`end`,`center`,`between`,`around`,`evenly`],label:`Justify Content`,defaultValue:`start`},{name:`align`,type:`enum`,enum:[`start`,`end`,`center`,`baseline`,`stretch`],label:`Align Items`,defaultValue:`start`},{name:`gap`,type:`number`,label:`Gap`,defaultValue:2,description:`Gap between items (0-8)`},{name:`wrap`,type:`boolean`,label:`Wrap`,defaultValue:!1,description:`Allow flex items to wrap`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{direction:`row`,justify:`start`,align:`center`,gap:2,wrap:!1,children:[{type:`button`,label:`Button 1`},{type:`button`,label:`Button 2`},{type:`button`,label:`Button 3`}]}});var ps=(0,a.forwardRef)(({schema:e,className:t,...n},r)=>{let i=e.direction||`col`,a=e.justify||`start`,s=e.align||`stretch`,c=e.gap??e.spacing??2,l=e.wrap||!1,u=B(`flex`,i===`row`&&`flex-row`,i===`col`&&`flex-col`,i===`row-reverse`&&`flex-row-reverse`,i===`col-reverse`&&`flex-col-reverse`,a===`start`&&`justify-start`,a===`end`&&`justify-end`,a===`center`&&`justify-center`,a===`between`&&`justify-between`,a===`around`&&`justify-around`,a===`evenly`&&`justify-evenly`,s===`start`&&`items-start`,s===`end`&&`items-end`,s===`center`&&`items-center`,s===`baseline`&&`items-baseline`,s===`stretch`&&`items-stretch`,c===0&&`gap-0`,c===1&&`gap-1`,c===2&&`gap-1.5 sm:gap-2`,c===3&&`gap-2 sm:gap-3`,c===4&&`gap-2 sm:gap-3 md:gap-4`,c===5&&`gap-3 sm:gap-4 md:gap-5`,c===6&&`gap-3 sm:gap-4 md:gap-6`,c===8&&`gap-4 sm:gap-6 md:gap-8`,c===10&&`gap-5 sm:gap-7 md:gap-10`,l&&`flex-wrap`,t),{"data-obj-id":d,"data-obj-type":f,style:p,...m}=n;return(0,o.jsx)(`div`,{ref:r,className:u,...m,"data-obj-id":d,"data-obj-type":f,style:p,children:e.children&&V(e.children)})});t.ComponentRegistry.register(`stack`,ps,{namespace:`ui`,label:`Stack`,inputs:[{name:`direction`,type:`enum`,label:`Direction`,enum:[`col`,`row`,`col-reverse`,`row-reverse`],defaultValue:`col`},{name:`gap`,type:`number`,label:`Gap`,defaultValue:2},{name:`align`,type:`enum`,label:`Align Items`,enum:[`start`,`end`,`center`,`stretch`,`baseline`],defaultValue:`stretch`},{name:`justify`,type:`enum`,label:`Justify Content`,enum:[`start`,`end`,`center`,`between`,`around`,`evenly`],defaultValue:`start`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{direction:`col`,gap:2,align:`stretch`,children:[]},isContainer:!0,resizable:!0,resizeConstraints:{width:!0,height:!0,minWidth:100,minHeight:50}});var ms=(0,a.forwardRef)(({schema:e,className:t,...n},r)=>{let i=e.maxWidth||`xl`,a=e.padding||4,s=e.centered!==!1,c=B(`w-full`,i===`sm`&&`max-w-sm`,i===`md`&&`max-w-md`,i===`lg`&&`max-w-lg`,i===`xl`&&`max-w-xl`,i===`2xl`&&`max-w-2xl`,i===`3xl`&&`max-w-3xl`,i===`4xl`&&`max-w-4xl`,i===`5xl`&&`max-w-5xl`,i===`6xl`&&`max-w-6xl`,i===`7xl`&&`max-w-7xl`,i===`full`&&`max-w-full`,i===`screen`&&`max-w-screen-2xl`,s&&`mx-auto`,a===0&&`p-0`,a===1&&`p-0.5 sm:p-1`,a===2&&`p-1 sm:p-2`,a===3&&`p-2 sm:p-3`,a===4&&`p-2 sm:p-3 md:p-4`,a===5&&`p-3 sm:p-4 md:p-5`,a===6&&`p-3 sm:p-4 md:p-6`,a===7&&`p-4 sm:p-5 md:p-7`,a===8&&`p-4 sm:p-6 md:p-8`,a===10&&`p-5 sm:p-7 md:p-10`,a===12&&`p-6 sm:p-8 md:p-12`,a===16&&`p-8 sm:p-10 md:p-16`,t),{"data-obj-id":l,"data-obj-type":u,style:d,...f}=n;return(0,o.jsx)(`div`,{ref:r,className:c,...f,"data-obj-id":l,"data-obj-type":u,style:d,children:e.children&&V(e.children)})});t.ComponentRegistry.register(`container`,ms,{namespace:`ui`,label:`Container`,inputs:[{name:`maxWidth`,type:`enum`,enum:[`sm`,`md`,`lg`,`xl`,`2xl`,`3xl`,`4xl`,`5xl`,`6xl`,`7xl`,`full`,`screen`],label:`Max Width`,defaultValue:`xl`},{name:`padding`,type:`number`,label:`Padding`,defaultValue:4,description:`Padding value (0, 1-8, 10, 12, 16)`},{name:`centered`,type:`boolean`,label:`Center Horizontally`,defaultValue:!0},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{maxWidth:`xl`,padding:4,centered:!0,children:[{type:`text`,content:`Container content goes here`}]},isContainer:!0,resizable:!0,resizeConstraints:{width:!0,height:!0,minWidth:200,minHeight:100}});function hs(e){switch(e){case`small`:return`w-64`;case`medium`:return`w-80`;case`large`:return`w-96`;case`full`:return`w-full`;default:return e||`w-full`}}function gs(e){switch(e){case`utility`:return`max-w-4xl`;case`home`:return`max-w-screen-2xl`;case`app`:return`max-w-screen-xl`;default:return`max-w-7xl`}}function Q(e,t){return e?.find(e=>e.name?.toLowerCase()===t.toLowerCase())}function _s(e,t){if(!e)return[];let n=new Set(t.map(e=>e.toLowerCase()));return e.filter(e=>!n.has(e.name?.toLowerCase()??``))}var $=({region:e,className:t})=>{let n=e.components||[];return n.length===0?null:(0,o.jsx)(`div`,{className:B(`space-y-4`,e.className,t),"data-region":e.name,children:n.map((t,n)=>(0,o.jsx)(i.SchemaRenderer,{schema:t},t?.id||`${e.name}-${n}`))})},vs=({regions:e,pageType:t,className:n})=>{let r=Q(e,`header`),i=Q(e,`sidebar`),a=Q(e,`main`),s=Q(e,`aside`),c=Q(e,`footer`),l=_s(e,[`header`,`sidebar`,`main`,`aside`,`footer`]);return r||i||a||s||c?(0,o.jsxs)(`div`,{className:B(`flex flex-col gap-6`,n),"data-page-layout":t,children:[r&&(0,o.jsx)($,{region:r,className:B(hs(r.width))}),(0,o.jsxs)(`div`,{className:`flex flex-1 gap-6`,children:[i&&(0,o.jsx)(`aside`,{className:B(`shrink-0`,hs(i.width||`small`)),children:(0,o.jsx)($,{region:i})}),(0,o.jsxs)(`div`,{className:`flex-1 min-w-0 space-y-6`,children:[a&&(0,o.jsx)($,{region:a}),l.map((e,t)=>(0,o.jsx)($,{region:e},e.name||`extra-${t}`))]}),s&&(0,o.jsx)(`aside`,{className:B(`shrink-0`,hs(s.width||`small`),s.className),children:(0,o.jsx)($,{region:s})})]}),c&&(0,o.jsx)($,{region:c,className:B(hs(c.width))})]}):(0,o.jsx)(`div`,{className:B(`space-y-6`,n),"data-page-layout":t,children:e.map((e,t)=>(0,o.jsx)($,{region:e},e.name||t))})},ys=({schema:e})=>{let t=e.body||e.children,n=Array.isArray(t)?t:t?[t]:[];return n.length===0?null:(0,o.jsx)(`div`,{className:`space-y-6`,children:n.map((e,t)=>(0,o.jsx)(i.SchemaRenderer,{schema:e},e?.id||t))})},bs=({schema:e})=>e.regions&&e.regions.length>0?(0,o.jsx)(vs,{regions:e.regions,pageType:e.pageType}):(0,o.jsx)(ys,{schema:e}),xs={default:bs,"full-width":bs,"header-sidebar-main":({schema:e})=>{let t=e.regions||[];if(t.length===0)return(0,o.jsx)(ys,{schema:e});let n=Q(t,`header`),r=Q(t,`sidebar`),i=Q(t,`main`),a=_s(t,[`header`,`sidebar`,`main`]);return(0,o.jsxs)(`div`,{className:`flex flex-col gap-6`,"data-template":`header-sidebar-main`,children:[n&&(0,o.jsx)($,{region:n}),(0,o.jsxs)(`div`,{className:`flex flex-1 gap-6`,children:[r&&(0,o.jsx)(`aside`,{className:B(`shrink-0`,hs(r.width||`medium`)),children:(0,o.jsx)($,{region:r})}),(0,o.jsxs)(`div`,{className:`flex-1 min-w-0 space-y-6`,children:[i&&(0,o.jsx)($,{region:i}),a.map((e,t)=>(0,o.jsx)($,{region:e},e.name||`extra-${t}`))]})]})]})},"three-column":({schema:e})=>{let t=e.regions||[];if(t.length===0)return(0,o.jsx)(ys,{schema:e});let n=Q(t,`header`),r=Q(t,`sidebar`),i=Q(t,`main`),a=Q(t,`aside`),s=Q(t,`footer`),c=_s(t,[`header`,`sidebar`,`main`,`aside`,`footer`]);return(0,o.jsxs)(`div`,{className:`flex flex-col gap-6`,"data-template":`three-column`,children:[n&&(0,o.jsx)($,{region:n}),(0,o.jsxs)(`div`,{className:`flex flex-1 gap-6`,children:[r&&(0,o.jsx)(`aside`,{className:B(`shrink-0`,hs(r.width||`small`)),children:(0,o.jsx)($,{region:r})}),(0,o.jsxs)(`div`,{className:`flex-1 min-w-0 space-y-6`,children:[i&&(0,o.jsx)($,{region:i}),c.map((e,t)=>(0,o.jsx)($,{region:e},e.name||`extra-${t}`))]}),a&&(0,o.jsx)(`aside`,{className:B(`shrink-0`,hs(a.width||`small`),a.className),children:(0,o.jsx)($,{region:a})})]}),s&&(0,o.jsx)($,{region:s})]})},dashboard:({schema:e})=>{let t=e.regions||[];if(t.length===0)return(0,o.jsx)(ys,{schema:e});let n=Q(t,`header`),r=Q(t,`footer`),i=_s(t,[`header`,`footer`]);return(0,o.jsxs)(`div`,{className:`flex flex-col gap-6`,"data-template":`dashboard`,children:[n&&(0,o.jsx)($,{region:n}),(0,o.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-6`,children:i.map((e,t)=>(0,o.jsx)($,{region:e},e.name||`region-${t}`))}),r&&(0,o.jsx)($,{region:r})]})}};function Ss(e){return e.template&&xs[e.template]||null}var Cs=({schema:e})=>e.regions&&e.regions.length>0?(0,o.jsx)(vs,{regions:e.regions,pageType:`record`}):(0,o.jsx)(ys,{schema:e}),ws=({schema:e})=>e.regions&&e.regions.length>0?(0,o.jsx)(vs,{regions:e.regions,pageType:`home`}):(0,o.jsx)(ys,{schema:e}),Ts=({schema:e})=>e.regions&&e.regions.length>0?(0,o.jsx)(vs,{regions:e.regions,pageType:`app`}):(0,o.jsx)(ys,{schema:e}),Es=({schema:e})=>e.regions&&e.regions.length>0?(0,o.jsx)(vs,{regions:e.regions,pageType:`utility`}):(0,o.jsx)(ys,{schema:e}),Ds=({schema:e,className:t,...n})=>{let r=e.pageType||`record`,{"data-obj-id":s,"data-obj-type":c,style:l,pageType:u,schema:d,regions:f,template:p,title:m,icon:h,description:g,object:_,variables:v,blankLayout:y,body:b,isDefault:x,assignedProfiles:S,aria:C,recordOverride:w,permissions:T,requiredPermissions:E,enforceFieldSecurity:D,redactFields:O,children:k,...A}=n,ee=Object.fromEntries(Object.entries(A).filter(([e])=>!e.startsWith(`_`))),j=(0,a.useMemo)(()=>{let t=Ss(e);if(t)return(0,o.jsx)(t,{schema:e});switch(r){case`home`:return(0,o.jsx)(ws,{schema:e});case`app`:return(0,o.jsx)(Ts,{schema:e});case`utility`:return(0,o.jsx)(Es,{schema:e});default:return(0,o.jsx)(Cs,{schema:e})}},[e,r]),te=(0,o.jsx)(`div`,{className:B(`min-h-full w-full bg-background p-3 md:p-4 lg:p-6`,t),"data-page-type":r,"data-obj-id":s,"data-obj-type":c,style:l,...ee,children:(0,o.jsxs)(`div`,{className:B(`mx-auto space-y-6`,gs(r)),children:[r!==`record`&&(e.title||e.description)&&(0,o.jsxs)(`div`,{className:`space-y-2`,children:[e.title&&(0,o.jsx)(`h1`,{className:`text-3xl font-bold tracking-tight text-foreground`,children:e.title}),e.description&&(0,o.jsx)(`p`,{className:`text-muted-foreground`,children:e.description})]}),j]})});return e.variables&&e.variables.length>0?(0,o.jsx)(i.PageVariablesProvider,{definitions:e.variables,children:te}):te},Os={namespace:`ui`,label:`Page`,icon:`Layout`,category:`layout`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`pageType`,type:`string`,label:`Page Type`},{name:`object`,type:`string`,label:`Object Name`},{name:`template`,type:`string`,label:`Template`},{name:`regions`,type:`array`,label:`Regions`,itemType:`object`},{name:`variables`,type:`array`,label:`Variables`,itemType:`object`},{name:`body`,type:`array`,label:`Content (Legacy)`,itemType:`component`}]};t.ComponentRegistry.register(`page`,Ds,Os),t.ComponentRegistry.register(`app`,Ds,{...Os,label:`App Page`}),t.ComponentRegistry.register(`utility`,Ds,{...Os,label:`Utility Page`}),t.ComponentRegistry.register(`home`,Ds,{...Os,label:`Home Page`}),t.ComponentRegistry.register(`record`,Ds,{...Os,label:`Record Page`});function ks(e){return e.includes(`-`)?e.toLowerCase():e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).replace(/([A-Z]+)([A-Z][a-z])/g,`$1-$2`).toLowerCase()}var As=new Set(R.iconNames);function js(e){return As.has(e)}var Ms=new Map;function Ns(e){if(!e)return c.Database;let t=Ms.get(e);if(t)return t;let n=ks(e);if(!js(n))return Ms.set(e,c.Database),c.Database;let r=e=>a.default.createElement(R.DynamicIcon,{name:n,fallback:c.Database,...e});return r.displayName=`LucideIcon(${e})`,Ms.set(e,r),r}var Ps=({name:e,...t})=>{if(!e)return a.default.createElement(c.Database,t);let n=ks(e);return js(n)?a.default.createElement(R.DynamicIcon,{name:n,fallback:c.Database,...t}):a.default.createElement(c.Database,t)},Fs=new Map,Is=new Map,Ls=new Set;function Rs(e,t,n){return`${e}::${t??``}::${n??``}`}function zs(){for(let e of Ls)e()}function Bs(e,t,n){return Fs.get(Rs(e,t,n))}function Vs(e,t,n,r){let i=Rs(e,t,n);Fs.get(i)!==r&&(Fs.set(i,r),zs())}async function Hs(e,t,n,r){let i=Rs(t,n,r),a=Fs.get(i);if(a!==void 0)return a;let o=Is.get(i);if(o)return o;let s=(async()=>{let a={};if(n){if(!r)return 0;a[n]=r}try{let i=await e(t,{$filter:a,$top:1}),o=typeof i?.total==`number`?i.total:Array.isArray(i?.data)?i.data.length:Array.isArray(i)?i.length:0,s=typeof o==`number`?o:0;return Vs(t,n,r,s),s}catch{return 0}finally{Is.delete(i)}})();return Is.set(i,s),s}function Us(e,t){let n=!1,r=`${e}::`;for(let e of Fs.keys())e.startsWith(r)&&(t!==void 0&&!e.endsWith(`::${t}`)||(Fs.delete(e),n=!0));n&&zs()}function Ws(){Fs.size!==0&&(Fs.clear(),zs())}function Gs(e){return Ls.add(e),()=>{Ls.delete(e)}}function Ks(){return Fs}function qs(e,t,n){if((0,a.useSyncExternalStore)(Gs,Ks,Ks),e)return Bs(e,t,n)}var Js={get:Bs,set:Vs,fetch:Hs,invalidate:Us,invalidateAll:Ws,_reset:()=>{Fs.clear(),Is.clear(),zs()}},Ys=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},Xs=e=>e==null?``:typeof e==`string`?e:typeof e==`object`?e.default||e.value||``:String(e),Zs={"zh-CN":{Details:`详情`,Related:`相关`,Activity:`活动`,History:`历史`,Notes:`备注`,Files:`文件`,Tasks:`任务`,"Open Tasks":`待办任务`,"Closed Tasks":`已完成任务`,Events:`日程`,Attachments:`附件`,Chatter:`讨论`,Discussion:`讨论`,Comments:`评论`,Overview:`概览`,Summary:`摘要`,Quotes:`报价单`,Products:`产品`,Contacts:`联系人`,Accounts:`客户`,Leads:`线索`,Opportunities:`商机`,Cases:`服务案例`,Campaigns:`营销活动`,Approvals:`审批`,Documents:`文档`,Emails:`邮件`,Calls:`通话`,Meetings:`会议`},"zh-TW":{Details:`詳情`,Related:`相關`,Activity:`活動`,History:`歷史`,Notes:`備註`,Files:`檔案`,Tasks:`任務`,"Open Tasks":`待辦任務`,"Closed Tasks":`已完成任務`,Events:`行程`,Attachments:`附件`,Chatter:`討論`,Discussion:`討論`,Comments:`評論`,Overview:`概覽`,Summary:`摘要`,Quotes:`報價單`,Products:`產品`,Contacts:`聯絡人`,Accounts:`客戶`,Leads:`線索`,Opportunities:`商機`,Cases:`服務案例`,Campaigns:`行銷活動`,Approvals:`審批`,Documents:`文件`,Emails:`郵件`,Calls:`通話`,Meetings:`會議`}},Qs=()=>{if(typeof document<`u`){let e=document.documentElement?.lang;if(e)return e}return typeof navigator<`u`&&navigator.language?navigator.language:`en`},$s=e=>{if(!e)return e;let t=Qs(),n=Zs[t],r=t.split(`-`)[0]===`zh`?Zs[`zh-CN`]:void 0,i=n||r;if(!i)return e;if(i[e]!==void 0)return i[e];let a=/\s*(?:&|and|和)\s*/i;if(a.test(e)){let n=e.split(a);if(n.every(e=>i[e.trim()]!==void 0)){let e=t.startsWith(`zh`)?`与`:` & `;return n.map(e=>i[e.trim()]).join(e)}}return e},ec=(e,t)=>!e||typeof e!=`string`?e||``:e.includes(`{`)?e.replace(/\{([a-zA-Z0-9_.]+)\}/g,(e,n)=>{let r=n.split(`.`).reduce((e,t)=>e==null?e:e[t],t);return r==null||typeof r==`object`?``:String(r)}).replace(/\s+/g,` `).trim():e,tc=e=>{let t=typeof e==`number`?e:Number(e);return Number.isFinite(t)?t>=1e4?`${Math.round(t/1e3)}k`:t>=1e3?`${(t/1e3).toFixed(1).replace(/\.0$/,``)}k`:String(t):String(e)},nc=(e,t=[])=>{if(!e)return t;let n=Array.isArray(e)?e:[e];for(let e of n){if(!e||typeof e!=`object`)continue;if(e.type===`record:related_list`||e.type===`record_related_list`){t.push(e);continue}let n=[e.children,e.properties?.children,e.properties?.items,e.body,e.items];for(let e of n)e&&nc(e,t)}return t};t.ComponentRegistry.register(`page:tabs`,({schema:e,className:t,...n})=>{let{designer:r}=Ys(n),s=e?.items||[],c=e?.properties?.type||e?.tabStyle||`line`,l=(e?.position||`top`)===`left`,u=(0,i.useRecordContext)(),d=u?.data?.id,f=u?.dataSource;qs(void 0,void 0,d);let p=a.default.useMemo(()=>{let e=new Map;return s.forEach((t,n)=>{if(t.count!==void 0&&t.count!==null&&t.count!==``)return;let r=nc(t.children),i=[];for(let e of r){let t=e?.properties?.objectName||e?.objectName;if(!t)continue;let n=e?.properties?.relationshipField||e?.relationshipField;i.push({objectName:t,relationshipField:n})}i.length>0&&e.set(n,i)}),e},[s]);a.default.useEffect(()=>{if(!f||typeof f.find!=`function`||p.size===0)return;let e=!1;for(let t of p.values())for(let n of t)if(Js.fetch((e,t)=>f.find(e,t),n.objectName,n.relationshipField,d).catch(()=>0),e)return;return()=>{e=!0}},[f,p,d]);let m=e=>{let t=p.get(e);if(!t||t.length===0)return;let n=0,r=!1;for(let e of t){let t=Js.get(e.objectName,e.relationshipField,d);t!==void 0&&(n+=t,r=!0)}return r?n:void 0},h=s.map((e,t)=>({...e,value:`tab-${t}`,labelStr:$s(Xs(e.label)),count:e.count!==void 0&&e.count!==null&&e.count!==``?e.count:m(t)})),g=h[0]?.value,_=B(l&&`flex-col h-auto items-stretch p-1`,c===`card`&&`bg-transparent gap-1`,c===`pill`&&`bg-muted rounded-full p-1 gap-1`,c===`line`&&!l&&`h-auto rounded-none bg-transparent p-0 gap-4 border-b border-border w-full justify-start`,!l&&`sticky top-0 z-20 bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60`),v=()=>B(l&&`justify-start`,c===`card`&&`data-[state=active]:bg-background data-[state=active]:border data-[state=active]:shadow-sm rounded-md`,c===`pill`&&`rounded-full data-[state=active]:bg-background`,c===`line`&&!l&&`rounded-none border-b-2 border-transparent bg-transparent px-1 pb-2.5 -mb-px shadow-none data-[state=active]:border-primary data-[state=active]:bg-transparent data-[state=active]:shadow-none data-[state=active]:text-foreground`);return(0,o.jsxs)(Xi,{defaultValue:g,orientation:l?`vertical`:`horizontal`,className:B(t,l&&`flex gap-4 w-full`),...r,children:[(h.length>1||e?.properties?.alwaysShowStrip===!0)&&(0,o.jsx)(Zi,{className:_,children:h.map(e=>(0,o.jsxs)(Qi,{value:e.value,className:v(),children:[e.icon&&(0,o.jsx)(Ps,{name:e.icon,className:`mr-1.5 h-3.5 w-3.5 shrink-0 opacity-70`,"aria-hidden":!0}),(0,o.jsx)(`span`,{children:e.labelStr}),e.count!==void 0&&e.count!==null&&e.count!==``&&Number(e.count)>0&&(0,o.jsx)(`span`,{className:`ml-1.5 inline-flex h-4 min-w-[1rem] items-center justify-center rounded-full bg-muted px-1 text-[10px] font-medium leading-none text-muted-foreground`,"aria-label":`${tc(e.count)} items`,children:tc(e.count)})]},e.value))}),h.map(e=>(0,o.jsx)($i,{value:e.value,className:B(h.length>1?`mt-3`:`mt-0`,l&&`mt-0 flex-1`),children:V(e.children)},e.value))]})},{namespace:`page`,label:`Page Tabs`,category:`layout`,isContainer:!0}),t.ComponentRegistry.register(`page:card`,({schema:e,className:t,...n})=>{let{designer:r}=Ys(n),i=Xs(e?.title),a=e?.bordered!==!1,s=e?.body,c=e?.footer;return(0,o.jsxs)(Xe,{className:B(t,!a&&`border-0 shadow-none bg-transparent`),...r,children:[i&&(0,o.jsx)(Ze,{children:(0,o.jsx)(Qe,{children:i})}),s&&(0,o.jsx)(et,{children:V(s)}),c&&(0,o.jsx)(tt,{className:`flex justify-between`,children:V(c)})]})},{namespace:`page`,label:`Page Card`,category:`layout`,isContainer:!0}),t.ComponentRegistry.register(`page:accordion`,({schema:e,className:t,...n})=>{let{designer:r}=Ys(n),i=e?.items||[],a=!!e?.allowMultiple,s=(e?.variant??e?.properties?.variant??`flush`)===`flush`?`border-b last:border-b-0`:void 0,c=i.map((e,t)=>({...e,value:`panel-${t}`,labelStr:$s(Xs(e.label))})),l=c.filter(e=>e.collapsed===!1).map(e=>e.value),u=c.map(e=>(0,o.jsxs)(ve,{value:e.value,className:s,children:[(0,o.jsx)(ye,{className:`text-sm font-semibold tracking-tight hover:no-underline`,children:e.labelStr}),(0,o.jsx)(be,{children:V(e.children)})]},e.value));return a?(0,o.jsx)(H,{type:`multiple`,defaultValue:l,className:t,...r,children:u}):(0,o.jsx)(H,{type:`single`,collapsible:!0,defaultValue:l[0],className:t,...r,children:u})},{namespace:`page`,label:`Page Accordion`,category:`layout`,isContainer:!0}),t.ComponentRegistry.register(`page:section`,({schema:e,className:t,...n})=>{let{designer:r}=Ys(n);return(0,o.jsx)(`section`,{className:B(`space-y-4`,t),...r,children:V(e?.children||e?.body)})},{namespace:`page`,label:`Page Section`,category:`layout`,isContainer:!0});function rc(e){if(!e)return e;let t=e;for(let e=0;e<4;e+=1){let e=t.replace(/[\s\u00A0]*[-·:|/–—][\s\u00A0]*$/u,``).trimEnd();if(e===t)break;t=e}for(let e=0;e<4;e+=1){let e=t.replace(/^[\s\u00A0]*[-·:|/–—][\s\u00A0]*/u,``).trimStart();if(e===t)break;t=e}return t=t.replace(/([-·:|/–—])[\s\u00A0]*\1/gu,`$1`),t=t.replace(/[\s\u00A0]+/g,` `).trim(),t}t.ComponentRegistry.register(`page:header`,({schema:e,className:n,...r})=>{let{designer:s}=Ys(r),l=(0,i.useRecordContext)(),{execute:u}=(0,i.useAction)(),{objectLabel:d,actionLabel:f}=(0,L.useObjectLabel)(),p=e?.title??e?.properties?.title,m=e?.subtitle??e?.properties?.subtitle,h=ec(Xs(p),l?.data),g=ec(Xs(m),l?.data),_=(e?.breadcrumb??e?.properties?.breadcrumb)!==!1,v=e?.recordChrome===!1||e?.properties?.recordChrome===!1,y=e?.showStar!==!1&&e?.properties?.showStar!==!1,b=e?.showCopyId!==!1&&e?.properties?.showCopyId!==!1,x=e?.actions??e?.properties?.actions,S=l?.headerSystemActions,C=a.default.useMemo(()=>{let e=l?.data,n=new t.ExpressionEvaluator({record:e,data:e}),r=e=>{try{return n.evaluateExpression(e)}catch{return}},i=e=>{if(Array.isArray(e?.locations)&&e.locations.length>0&&!e.locations.includes(`record_header`))return!1;let t=e?.visible;if(t!=null)if(typeof t==`boolean`){if(!t)return!1}else{let e=typeof t==`string`?t:t&&typeof t==`object`&&typeof t.source==`string`?t.source:null;if(e&&!r(e))return!1}let n=e?.hidden;if(n!=null)if(typeof n==`boolean`){if(n)return!1}else{let e=typeof n==`string`?n:n&&typeof n==`object`&&typeof n.source==`string`?n.source:null;if(e&&r(e))return!1}return!0},a=Array.isArray(x)?x.filter(i):[],o=Array.isArray(S)?S.filter(i):[],s=new Set,c=[];for(let e of[...a,...o]){let t=e?.name||e?.id||``;t&&s.has(t)||(t&&s.add(t),c.push(e))}return c},[x,S,l?.data]),w=()=>{if(C.length===0)return null;let e=(e,t)=>{let n=e?.name||e?.id,r=e?.label||n||`Action ${t+1}`;return n?f(l?.objectName,n,r):r},t=C.length>2,n=t?C.slice(0,1):C,r=t?C.slice(1):[];return(0,o.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 shrink-0`,role:`toolbar`,"aria-label":`Page header actions`,children:[n.map((t,n)=>{let r=e(t,n),i=t.variant||`default`,a=t.size||`sm`,s=typeof t.disabled==`boolean`?t.disabled:void 0,c=typeof t.icon==`string`?t.icon:null;return(0,o.jsxs)(W,{variant:i,size:a,disabled:s,className:`gap-2`,onClick:()=>{if(typeof t.onClick==`function`){t.onClick();return}u(t)},children:[c&&(0,o.jsx)(Ps,{name:c,className:`h-4 w-4`}),(0,o.jsx)(`span`,{children:r})]},t.name||t.id||`header-action-${n}`)}),t&&(0,o.jsxs)(mn,{children:[(0,o.jsx)(hn,{asChild:!0,children:(0,o.jsx)(W,{variant:`outline`,size:`sm`,className:`gap-1 px-2`,"aria-label":`More actions`,children:(0,o.jsx)(c.MoreHorizontal,{className:`h-4 w-4`})})}),(0,o.jsx)(Sn,{align:`end`,className:`w-44`,children:r.map((t,n)=>{let r=e(t,n+1),i=typeof t.disabled==`boolean`?t.disabled:void 0,a=typeof t.icon==`string`?t.icon:null;return(0,o.jsxs)(Cn,{disabled:i,onSelect:e=>{if(e.preventDefault(),typeof t.onClick==`function`){t.onClick();return}u(t)},className:B(`gap-2`,(t.variant===`destructive`||t.name===`sys_delete`)&&`text-destructive focus:text-destructive focus:bg-destructive/10`),children:[a&&(0,o.jsx)(Ps,{name:a,className:`h-4 w-4`}),(0,o.jsx)(`span`,{children:r})]},t.name||t.id||`overflow-action-${n}`)})})]})]})};if(l?.data&&l?.objectSchema&&!v){let e=l.data,t=l.objectSchema,r=l.objectName||t?.name,i=Xs(t?.label)||t?.name||l.objectName||``,a=r?d({name:r,label:i}):i||void 0,c=t?.primaryField,u=t?.titleFormat,f=typeof u==`string`?u:u&&typeof u==`object`&&typeof u.source==`string`?u.source:void 0,p=f?rc(ec(f,e).trim()):``,m=h||c&&e?.[c]||(p&&!p.includes(`{`)?p:``)||e?.name||e?.full_name||e?.title||e?.subject||e?.display_name||e?.label||(a&&e?.id?`${a} ${String(e.id).slice(0,8)}`:``)||a||``;return(0,o.jsxs)(`header`,{className:B(`flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 sm:gap-4 pb-4 border-b`,n),...s,children:[(0,o.jsxs)(`div`,{className:`flex flex-col min-w-0 flex-1`,children:[_&&(0,o.jsx)(`div`,{className:`text-xs text-muted-foreground mb-1`,"data-page-breadcrumb-slot":!0}),(0,o.jsx)(Xo,{title:m,objectLabel:a,resourceId:e?.id?String(e.id):void 0,showStar:y,showCopyId:b,isFavorite:l?.isFavorite,onToggleFavorite:l?.onToggleFavorite?()=>l.onToggleFavorite():void 0}),g&&(0,o.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:g})]}),w()??(0,o.jsx)(`div`,{"data-page-actions-slot":!0,className:`shrink-0`})]})}return(0,o.jsxs)(`header`,{className:B(`flex flex-col gap-2 pb-4 border-b`,n),...s,children:[_&&(0,o.jsx)(`div`,{className:`text-xs text-muted-foreground`,"data-page-breadcrumb-slot":!0}),(0,o.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,o.jsxs)(`div`,{className:`flex flex-col`,children:[h&&(0,o.jsx)(`h1`,{className:`text-2xl font-semibold tracking-tight`,children:h}),g&&(0,o.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:g})]}),w()??(0,o.jsx)(`div`,{"data-page-actions-slot":!0})]})]})},{namespace:`page`,label:`Page Header`,category:`layout`}),t.ComponentRegistry.register(`page:footer`,({schema:e,className:t,...n})=>{let{designer:r}=Ys(n);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(Ur,{className:`my-4`}),(0,o.jsx)(`footer`,{className:B(`flex items-center justify-between text-sm text-muted-foreground`,t),...r,children:V(e?.children||e?.body)})]})},{namespace:`page`,label:`Page Footer`,category:`layout`,isContainer:!0}),t.ComponentRegistry.register(`page:sidebar`,({schema:e,className:t,...n})=>{let{designer:r}=Ys(n);return(0,o.jsx)(`aside`,{className:B(`flex flex-col gap-4 w-full md:w-80 shrink-0`,t),...r,children:V(e?.children||e?.body)})},{namespace:`page`,label:`Page Sidebar`,category:`layout`,isContainer:!0}),[`aside`,`main`,`header`,`nav`,`footer`,`section`,`article`].forEach(e=>{let n=(0,a.forwardRef)(({schema:t,className:n,...r},i)=>{let{"data-obj-id":a,"data-obj-type":s,style:c,...l}=r;return(0,o.jsx)(e,{ref:i,className:n,...l,"data-obj-id":a,"data-obj-type":s,style:c,children:V(t.children||t.body)})});n.displayName=`Semantic${e.charAt(0).toUpperCase()+e.slice(1)}`,t.ComponentRegistry.register(e,n,{namespace:`ui`,label:e.charAt(0).toUpperCase()+e.slice(1),category:`layout`,inputs:[{name:`className`,type:`string`,label:`CSS Class`}]})}),t.ComponentRegistry.register(`aspect-ratio`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,o.jsx)(Fe,{ratio:e.ratio||16/9,className:e.className,...a,"data-obj-id":n,"data-obj-type":r,style:i,children:e.image?(0,o.jsx)(`img`,{src:e.image,alt:e.alt||``,loading:`lazy`,className:`rounded-md object-cover w-full h-full`}):V(e.children||e.body)})},{namespace:`ui`,label:`Aspect Ratio`,inputs:[{name:`ratio`,type:`number`,label:`Ratio`,defaultValue:16/9},{name:`image`,type:`string`,label:`Image URL`},{name:`alt`,type:`string`,label:`Alt Text`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{ratio:16/9}}),t.ComponentRegistry.register(`sidebar-provider`,({schema:e,...t})=>(0,o.jsx)(hi,{...t,children:V(e.body)}),{namespace:`ui`,label:`Sidebar Provider`,inputs:[{name:`defaultOpen`,type:`boolean`,label:`Default Open`,defaultValue:!0}],defaultProps:{defaultOpen:!0},defaultChildren:[{type:`sidebar`},{type:`sidebar-inset`}]}),t.ComponentRegistry.register(`sidebar`,({schema:e,...t})=>(0,o.jsx)(gi,{...t,children:V(e.body)}),{namespace:`ui`,label:`Sidebar`,inputs:[{name:`collapsible`,type:`enum`,enum:[`offcanvas`,`icon`,`none`],defaultValue:`icon`,label:`Collapsible`},{name:`side`,type:`enum`,enum:[`left`,`right`],defaultValue:`left`,label:`Side`},{name:`variant`,type:`enum`,enum:[`sidebar`,`floating`,`inset`],defaultValue:`sidebar`,label:`Variant`}],defaultProps:{collapsible:`icon`,side:`left`,variant:`sidebar`},defaultChildren:[{type:`sidebar-header`},{type:`sidebar-content`},{type:`sidebar-footer`}]}),t.ComponentRegistry.register(`sidebar-header`,({schema:e,...t})=>(0,o.jsx)(xi,{...t,children:V(e.body)}),{namespace:`ui`,label:`Sidebar Header`,defaultChildren:[{type:`text`,content:`Sidebar Header`}]}),t.ComponentRegistry.register(`sidebar-content`,({schema:e,...t})=>(0,o.jsx)(wi,{...t,children:V(e.body)}),{namespace:`ui`,label:`Sidebar Content`,defaultChildren:[{type:`sidebar-group`}]}),t.ComponentRegistry.register(`sidebar-group`,({schema:e,...t})=>(0,o.jsxs)(Ti,{...t,children:[e.label&&(0,o.jsx)(Ei,{children:e.label}),(0,o.jsx)(Oi,{children:V(e.body)})]}),{namespace:`ui`,label:`Sidebar Group`,inputs:[{name:`label`,type:`string`,label:`Label`}],defaultProps:{label:`Menu`},defaultChildren:[{type:`sidebar-menu`}]}),t.ComponentRegistry.register(`sidebar-menu`,({schema:e,...t})=>(0,o.jsx)(ki,{...t,children:V(e.body)}),{namespace:`ui`,label:`Sidebar Menu`,defaultChildren:[{type:`sidebar-menu-item`},{type:`sidebar-menu-item`}]}),t.ComponentRegistry.register(`sidebar-menu-item`,({schema:e,...t})=>(0,o.jsx)(Ai,{...t,children:V(e.body)}),{namespace:`ui`,label:`Sidebar Menu Item`,defaultChildren:[{type:`sidebar-menu-button`}]}),t.ComponentRegistry.register(`sidebar-menu-button`,({schema:e,...t})=>(0,o.jsx)(Mi,{isActive:e.active,...t,children:V(e.body)}),{namespace:`ui`,label:`Sidebar Menu Button`,inputs:[{name:`active`,type:`boolean`,label:`Active`,defaultValue:!1},{name:`size`,type:`enum`,enum:[`default`,`sm`,`lg`],defaultValue:`default`,label:`Size`},{name:`tooltip`,type:`string`,label:`Tooltip`}],defaultProps:{size:`default`},defaultChildren:[{type:`text`,content:`Menu Item`}]}),t.ComponentRegistry.register(`sidebar-footer`,({schema:e,...t})=>(0,o.jsx)(Si,{...t,children:V(e.body)}),{namespace:`ui`,label:`Sidebar Footer`,defaultChildren:[{type:`text`,content:`Footer`}]}),t.ComponentRegistry.register(`sidebar-inset`,({schema:e,...t})=>(0,o.jsx)(yi,{...t,children:V(e.body)}),{namespace:`ui`,label:`Sidebar Inset`,defaultChildren:[{type:`div`,className:`p-4`,body:[{type:`text`,content:`Main content area`}]}]}),t.ComponentRegistry.register(`sidebar-trigger`,({className:e,...t})=>(0,o.jsx)(_i,{className:e,...t}),{namespace:`ui`,label:`Sidebar Trigger`,inputs:[{name:`className`,type:`string`,label:`CSS Class`}]});function ic({crumb:e,isLast:t}){let n=(0,i.resolveI18nLabel)(e.label)??``;return e.siblings&&e.siblings.length>0?(0,o.jsxs)(mn,{children:[(0,o.jsxs)(hn,{className:`flex items-center gap-1`,children:[t?(0,o.jsx)(`span`,{className:`font-semibold`,children:n}):(0,o.jsx)(`span`,{children:n}),(0,o.jsx)(c.ChevronDown,{className:`h-3 w-3`})]}),(0,o.jsx)(Sn,{align:`start`,children:e.siblings.map((e,t)=>(0,o.jsx)(Cn,{asChild:!0,children:(0,o.jsx)(`a`,{href:e.href,children:e.label})},t))})]}):t?(0,o.jsx)(Ge,{children:n}):(0,o.jsx)(We,{href:e.href||`#`,children:n})}t.ComponentRegistry.register(`header-bar`,({schema:e})=>(0,o.jsxs)(`header`,{className:`flex h-14 sm:h-16 shrink-0 items-center gap-2 border-b px-3 sm:px-4`,children:[(0,o.jsx)(_i,{}),(0,o.jsx)(Ur,{orientation:`vertical`,className:`mr-2 h-4`}),(0,o.jsx)(Ve,{children:(0,o.jsx)(He,{children:e.crumbs?.map((t,n)=>(0,o.jsxs)(a.default.Fragment,{children:[(0,o.jsx)(Ue,{children:(0,o.jsx)(ic,{crumb:t,isLast:n===e.crumbs.length-1})}),n<e.crumbs.length-1&&(0,o.jsx)(Ke,{})]},n))})}),(0,o.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[e.search?.enabled&&(0,o.jsxs)(`div`,{className:`relative`,children:[(0,o.jsx)(c.Search,{className:`absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground`}),(0,o.jsx)(q,{type:`search`,placeholder:e.search.placeholder,className:`pl-8 w-[200px] lg:w-[300px]`}),e.search.shortcut&&(0,o.jsx)(`kbd`,{className:`pointer-events-none absolute right-2 top-2 hidden h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium opacity-100 sm:flex`,children:e.search.shortcut})]}),e.actions?.map((e,t)=>(0,o.jsx)(i.SchemaRenderer,{schema:e},t)),e.rightContent&&(0,o.jsx)(i.SchemaRenderer,{schema:e.rightContent})]})]}),{namespace:`ui`,label:`Header Bar`,inputs:[{name:`crumbs`,type:`array`,label:`Breadcrumbs`},{name:`search`,type:`object`,label:`Search Configuration`},{name:`actions`,type:`array`,label:`Action Slots`},{name:`rightContent`,type:`object`,label:`Right Content`}],defaultProps:{crumbs:[{label:`Home`,href:`#`},{label:`Current Page`}]}}),t.ComponentRegistry.register(`badge`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,o.jsx)(Be,{variant:e.variant,className:e.className,...a,"data-obj-id":n,"data-obj-type":r,style:i,children:e.label||V(e.body)})},{namespace:`ui`,label:`Badge`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`variant`,type:`enum`,enum:[`default`,`secondary`,`destructive`,`outline`],defaultValue:`default`,label:`Variant`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{label:`Badge`,variant:`default`}}),t.ComponentRegistry.register(`avatar`,({schema:e,className:t,...n})=>(0,o.jsxs)(Ie,{className:t,...n,children:[(0,o.jsx)(Le,{src:e.src,alt:e.alt}),(0,o.jsx)(Re,{children:e.fallback})]}),{namespace:`ui`,label:`Avatar`,inputs:[{name:`src`,type:`string`,label:`Image URL`},{name:`alt`,type:`string`,label:`Alt Text`},{name:`fallback`,type:`string`,label:`Fallback Initials`,defaultValue:`CN`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{fallback:`CN`,alt:`Avatar`}}),t.ComponentRegistry.register(`alert`,({schema:e,className:t,...n})=>(0,o.jsxs)(Me,{variant:e.variant,className:t,...n,children:[(0,o.jsx)(Ne,{children:e.title}),(0,o.jsx)(Pe,{children:e.description||V(e.body)})]}),{namespace:`ui`,label:`Alert`,inputs:[{name:`title`,type:`string`,label:`Title`,required:!0},{name:`description`,type:`string`,label:`Description`},{name:`variant`,type:`enum`,enum:[`default`,`destructive`],defaultValue:`default`,label:`Variant`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{title:`Alert Title`,description:`This is an alert message.`,variant:`default`}}),t.ComponentRegistry.register(`list`,({schema:e,className:t,...n})=>{let r=(0,i.useDataScope)(e.bind),a=Array.isArray(r)?r:Array.isArray(e.items)?e.items:[],s=e.ordered?`ol`:`ul`,c=e.ordered?`list-decimal`:`list-disc`;return(0,o.jsxs)(`div`,{className:B(`space-y-2`,e.wrapperClass),children:[e.title&&(0,o.jsx)(`h3`,{className:`text-lg font-semibold tracking-tight`,children:e.title}),(0,o.jsx)(s,{className:B(`ml-6 [&>li]:mt-2`,c,t),...n,children:a.map((e,t)=>(0,o.jsx)(`li`,{className:B(typeof e==`object`&&e.className),children:typeof e==`string`?e:e.content||V(e.body)},t))})]})},{namespace:`ui`,label:`List`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`ordered`,type:`boolean`,label:`Ordered List (numbered)`,defaultValue:!1},{name:`items`,type:`array`,label:`List Items`,description:`Array of strings or objects with content/body`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{ordered:!1,items:[`First item`,`Second item`,`Third item`],className:`text-sm`}});var ac=({node:e,onNodeClick:t})=>{let[n,r]=(0,a.useState)(!1),i=e.children&&e.children.length>0;return(0,o.jsxs)(`div`,{className:`relative`,children:[(0,o.jsxs)(`div`,{className:B(`group flex items-center py-1.5 px-2 rounded-sm cursor-pointer transition-colors`,`hover:bg-accent hover:text-accent-foreground`,n&&i&&`bg-accent/50`),onClick:()=>{t&&t(e)},children:[i?(0,o.jsx)(`button`,{onClick:e=>{e.stopPropagation(),r(!n)},className:`mr-2 p-0.5 h-5 w-5 flex items-center justify-center rounded-sm hover:bg-muted text-muted-foreground transition-colors`,children:n?(0,o.jsx)(c.ChevronDown,{className:`h-4 w-4`}):(0,o.jsx)(c.ChevronRight,{className:`h-4 w-4`})}):(0,o.jsx)(`span`,{className:`mr-2 w-5 flex justify-center`,children:(0,o.jsx)(`div`,{className:`w-1 h-1 rounded-full bg-muted-foreground/50`})}),e.icon===`folder`||i?n?(0,o.jsx)(c.FolderOpen,{className:`h-4 w-4 mr-2 text-primary`}):(0,o.jsx)(c.Folder,{className:`h-4 w-4 mr-2 text-muted-foreground group-hover:text-primary transition-colors`}):(0,o.jsx)(c.File,{className:`h-4 w-4 mr-2 text-muted-foreground group-hover:text-primary transition-colors`}),(0,o.jsx)(`span`,{className:B(`text-sm transition-colors`,n?`font-medium text-foreground`:`text-muted-foreground group-hover:text-foreground`),children:e.label})]}),i&&n&&(0,o.jsx)(`div`,{className:`relative ml-[11px] pl-3 border-l border-border animate-in slide-in-from-left-2 fade-in duration-200`,children:e.children.map(e=>(0,o.jsx)(ac,{node:e,onNodeClick:t},e.id))})]})};t.ComponentRegistry.register(`tree-view`,({schema:e,className:t,...n})=>{let r=t=>{e.onNodeClick&&e.onNodeClick(t)},a=(0,i.useDataScope)(e.bind)||e.nodes||e.data||[],s=Array.isArray(a)?a:[];return(0,o.jsxs)(`div`,{className:B(`relative border rounded-lg p-3 bg-card text-card-foreground`,t),...n,children:[e.title&&(0,o.jsx)(`div`,{className:`flex items-center gap-2 mb-3 pb-2 border-b`,children:(0,o.jsx)(`h3`,{className:`text-sm font-semibold`,children:e.title})}),(0,o.jsx)(`div`,{className:`space-y-1`,children:s.map(e=>(0,o.jsx)(ac,{node:e,onNodeClick:r},e.id))})]})},{namespace:`ui`,label:`Tree View`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`nodes`,type:`array`,label:`Tree Nodes`,description:`Array of { id, label, icon, children, data }`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{title:`File Explorer`,nodes:[{id:`1`,label:`Documents`,icon:`folder`,children:[{id:`1-1`,label:`Resume.pdf`,icon:`file`},{id:`1-2`,label:`Cover Letter.docx`,icon:`file`}]},{id:`2`,label:`Photos`,icon:`folder`,children:[{id:`2-1`,label:`Vacation`,icon:`folder`,children:[{id:`2-1-1`,label:`Beach.jpg`,icon:`file`}]},{id:`2-2`,label:`Family.jpg`,icon:`file`}]},{id:`3`,label:`README.md`,icon:`file`}]}});var oc=e=>e?Ns(e):null;t.ComponentRegistry.register(`statistic`,({schema:e})=>{let t=e.icon?oc(e.icon):null;return(0,o.jsxs)(`div`,{className:B(`group relative flex flex-col p-4 sm:p-5 md:p-6 rounded-xl border bg-card text-card-foreground shadow-sm`,e.className),children:[(0,o.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[e.label&&(0,o.jsx)(`p`,{className:`text-sm font-medium text-muted-foreground`,children:e.label}),t&&(0,o.jsx)(t,{className:`h-4 w-4 text-muted-foreground`})]}),(0,o.jsx)(`div`,{className:`flex items-baseline gap-2`,children:(0,o.jsx)(`h3`,{className:`text-2xl font-bold tracking-tight`,children:e.value})}),(e.trend||e.description)&&(0,o.jsxs)(`div`,{className:`mt-1 flex items-center text-xs text-muted-foreground`,children:[e.trend===`up`&&(0,o.jsx)(c.TrendingUp,{className:`mr-1 h-3 w-3 text-emerald-500`}),e.trend===`down`&&(0,o.jsx)(c.TrendingDown,{className:`mr-1 h-3 w-3 text-rose-500`}),e.trend===`neutral`&&(0,o.jsx)(c.Minus,{className:`mr-1 h-3 w-3`}),(0,o.jsx)(`span`,{className:B(e.trend===`up`&&`text-emerald-500 font-medium`,e.trend===`down`&&`text-rose-500 font-medium`),children:e.description})]})]})},{namespace:`ui`,label:`Statistic`,category:`data-display`,icon:`Activity`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`value`,type:`string`,label:`Value`},{name:`description`,type:`string`,label:`Description`},{name:`trend`,type:`enum`,enum:[{label:`Up`,value:`up`},{label:`Down`,value:`down`},{label:`Neutral`,value:`neutral`}],label:`Trend`}],defaultProps:{label:`Total Revenue`,value:`$45,231.89`,trend:`up`,description:`+20.1% from last month`}}),t.ComponentRegistry.register(`breadcrumb`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:a,...s}=t;return(0,o.jsx)(Ve,{className:e.className,...s,"data-obj-id":n,"data-obj-type":r,style:a,children:(0,o.jsx)(He,{children:e.items?.map((t,n)=>(0,o.jsxs)(`div`,{className:`flex items-center`,children:[(0,o.jsx)(Ue,{children:n===(e.items?.length||0)-1?(0,o.jsx)(Ge,{children:(0,i.resolveI18nLabel)(t.label)??``}):(0,o.jsx)(We,{href:t.href,children:(0,i.resolveI18nLabel)(t.label)??``})}),n<(e.items?.length||0)-1&&(0,o.jsx)(Ke,{})]},n))})})},{namespace:`ui`,label:`Breadcrumb`,inputs:[{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{items:[{label:`Home`,href:`/`},{label:`Products`,href:`/products`},{label:`Product`}]}}),t.ComponentRegistry.register(`kbd`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t,s=Array.isArray(e.keys)?e.keys:[e.keys||e.label||`K`];return(0,o.jsx)(`div`,{className:B(`inline-flex flex-wrap gap-1`,e.className),children:s.map((e,t)=>(0,o.jsx)(`kbd`,{className:`pointer-events-none inline-flex h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium text-muted-foreground opacity-100`,...a,...t===0?{"data-obj-id":n,"data-obj-type":r,style:i}:{},children:e},t))})},{namespace:`ui`,label:`Keyboard Key`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{label:`K`}}),t.ComponentRegistry.register(`table`,({schema:e,className:t})=>{let n=(0,i.useDataScope)(e.bind)||e.data||e.props?.data||[],r=Array.isArray(e.columns)?e.columns:Array.isArray(e.props?.columns)?e.props.columns:[];if(n&&!Array.isArray(n))return(0,o.jsx)(`div`,{className:`text-red-500 p-2 border border-red-200 bg-red-50 rounded text-sm`,children:`Table data must be an array`});let a=Array.isArray(n)?n:[];return(0,o.jsx)(`div`,{className:B(`rounded-md border`,t),children:(0,o.jsxs)(Hi,{children:[(0,o.jsx)(Ui,{children:(0,o.jsx)(Ki,{children:r.map((e,t)=>(0,o.jsx)(qi,{children:e.label||e.header},e.key||e.accessorKey||t))})}),(0,o.jsx)(Wi,{children:a.length===0?(0,o.jsx)(Ki,{children:(0,o.jsx)(Ji,{colSpan:r.length,className:`h-24 text-center`,children:`No results.`})}):a.map((e,t)=>(0,o.jsx)(Ki,{children:r.map((t,n)=>{let r=t.key||t.accessorKey||``,i=r?e[r]:``;return(0,o.jsx)(Ji,{children:typeof i==`object`&&i?String(i):i},t.key||t.accessorKey||n)})},e.id||t))})]})})},{namespace:`ui`}),t.ComponentRegistry.register(`progress`,({schema:e,className:t,...n})=>(0,o.jsx)(Or,{value:e.value,className:t,...n}),{namespace:`ui`,label:`Progress`,inputs:[{name:`value`,type:`number`,label:`Value`,defaultValue:0},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{value:50,className:`w-full`}}),t.ComponentRegistry.register(`skeleton`,({schema:e,className:t,...n})=>(0,o.jsx)(Z,{className:t,...n,style:{width:e.width,height:e.height}}),{namespace:`ui`,label:`Skeleton`,inputs:[{name:`width`,type:`string`,label:`Width`},{name:`height`,type:`string`,label:`Height`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{width:`100%`,height:`20px`,className:`rounded-md`}}),t.ComponentRegistry.register(`toaster`,()=>(0,o.jsx)(Bi,{}),{namespace:`ui`,label:`Toaster`,inputs:[],defaultProps:{}}),t.ComponentRegistry.register(`loading`,({schema:e,className:t,...n})=>{let r=e.size||`md`,i=e.fullscreen||!1,a=(0,o.jsxs)(`div`,{className:B(`flex flex-col items-center justify-center gap-2`,t),children:[(0,o.jsx)(Lo,{className:B(r===`sm`&&`h-4 w-4`,r===`md`&&`h-8 w-8`,r===`lg`&&`h-12 w-12`,r===`xl`&&`h-16 w-16`)}),e.text&&(0,o.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.text})]});return i?(0,o.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-background/80 backdrop-blur-sm`,...n,children:a}):(0,o.jsx)(`div`,{className:`flex items-center justify-center p-8`,...n,children:a})},{namespace:`ui`,label:`Loading`,inputs:[{name:`text`,type:`string`,label:`Loading Text`},{name:`size`,type:`enum`,enum:[`sm`,`md`,`lg`,`xl`],label:`Size`,defaultValue:`md`},{name:`fullscreen`,type:`boolean`,label:`Fullscreen Overlay`,defaultValue:!1},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{text:`Loading...`,size:`md`,fullscreen:!1}}),t.ComponentRegistry.register(`toast`,({schema:e})=>(0,o.jsx)(W,{onClick:()=>{(e.variant===`success`?F.toast.success:e.variant===`error`?F.toast.error:e.variant===`warning`?F.toast.warning:e.variant===`info`?F.toast.info:F.toast)(e.title||`Notification`,{description:e.description,duration:e.duration})},variant:e.buttonVariant,className:e.className,children:e.buttonLabel||`Show Toast`}),{namespace:`ui`,label:`Toast`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`variant`,type:`enum`,enum:[`default`,`success`,`warning`,`error`,`info`],defaultValue:`default`,label:`Variant`},{name:`duration`,type:`number`,label:`Duration (ms)`},{name:`buttonLabel`,type:`string`,label:`Button Label`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{title:`Notification`,buttonLabel:`Show Toast`,variant:`default`,duration:5e3}}),t.ComponentRegistry.register(`spinner`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,o.jsx)(c.Loader2,{className:B(`animate-spin`,{sm:`h-4 w-4`,md:`h-6 w-6`,lg:`h-8 w-8`,xl:`h-12 w-12`}[e.size||`md`],e.className),...a,"data-obj-id":n,"data-obj-type":r,style:i})},{namespace:`ui`,label:`Spinner`,inputs:[{name:`size`,type:`enum`,enum:[`sm`,`md`,`lg`,`xl`],defaultValue:`md`,label:`Size`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{size:`md`}}),t.ComponentRegistry.register(`empty`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:a,action:s,icon:c,...l}=t,u=e.action,d=u&&typeof u==`object`?(0,o.jsx)(i.SchemaRenderer,{schema:u}):void 0;return(0,o.jsx)(ts,{title:e.title||`No data`,description:e.description,className:e.className,action:d,...l,"data-obj-id":n,"data-obj-type":r,style:a})},{namespace:`ui`,label:`Empty`,inputs:[{name:`title`,type:`string`,label:`Title`,defaultValue:`No data`},{name:`description`,type:`string`,label:`Description`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{title:`No data`}}),t.ComponentRegistry.register(`sonner`,({schema:e,...t})=>(0,o.jsx)(W,{onClick:()=>{(e.variant===`success`?F.toast.success:e.variant===`error`?F.toast.error:e.variant===`warning`?F.toast.warning:e.variant===`info`?F.toast.info:F.toast)(e.message||e.title||`Notification`,{description:e.description})},variant:e.buttonVariant,className:e.className,...t,children:e.buttonLabel||`Show Toast`}),{namespace:`ui`,label:`Sonner Toast`,inputs:[{name:`message`,type:`string`,label:`Message`},{name:`description`,type:`string`,label:`Description`},{name:`variant`,type:`enum`,enum:[`default`,`success`,`error`,`warning`,`info`],defaultValue:`default`,label:`Variant`},{name:`buttonLabel`,type:`string`,label:`Button Label`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{message:`Notification`,buttonLabel:`Show Toast`,variant:`default`}}),t.ComponentRegistry.register(`dialog`,({schema:e,className:t,...n})=>(0,o.jsxs)(Ct,{modal:e.modal,defaultOpen:e.defaultOpen,...n,children:[(0,o.jsx)(wt,{asChild:!0,children:V(e.trigger)}),(0,o.jsxs)(Ot,{className:t,children:[(0,o.jsxs)(kt,{children:[e.title&&(0,o.jsx)(jt,{children:e.title}),e.description&&(0,o.jsx)(Mt,{children:e.description})]}),V(e.content),e.footer&&(0,o.jsx)(At,{children:V(e.footer)})]})]}),{namespace:`ui`,label:`Dialog`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`modal`,type:`boolean`,label:`Modal`,defaultValue:!0},{name:`defaultOpen`,type:`boolean`,label:`Default Open`},{name:`trigger`,type:`slot`,label:`Trigger`,description:`Element that opens the dialog`},{name:`content`,type:`slot`,label:`Content`,description:`Main content of the dialog`},{name:`footer`,type:`slot`,label:`Footer`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{title:`Dialog Title`,description:`Dialog description goes here`,modal:!0,trigger:[{type:`button`,label:`Open Dialog`}],content:[{type:`text`,content:`Dialog content goes here`}]}}),t.ComponentRegistry.register(`sheet`,({schema:e,className:t,...n})=>(0,o.jsxs)(Wr,{modal:e.modal,defaultOpen:e.defaultOpen,...n,children:[(0,o.jsx)(Gr,{asChild:!0,children:V(e.trigger)}),(0,o.jsxs)(Xr,{side:e.side||`right`,className:t,children:[(0,o.jsxs)(Zr,{children:[e.title&&(0,o.jsx)($r,{children:e.title}),e.description&&(0,o.jsx)(ei,{children:e.description})]}),V(e.content),e.footer&&(0,o.jsx)(Qr,{children:V(e.footer)})]})]}),{namespace:`ui`,label:`Sheet`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`side`,type:`enum`,enum:[`top`,`right`,`bottom`,`left`],defaultValue:`right`,label:`Side`},{name:`modal`,type:`boolean`,label:`Modal`,defaultValue:!0},{name:`defaultOpen`,type:`boolean`,label:`Default Open`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`content`,type:`slot`,label:`Content`},{name:`footer`,type:`slot`,label:`Footer`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{title:`Sheet Title`,description:`Sheet description`,side:`right`,modal:!0,trigger:[{type:`button`,label:`Open Sheet`}],content:[{type:`text`,content:`Sheet content goes here`}]}}),t.ComponentRegistry.register(`popover`,({schema:e,className:t,...n})=>(0,o.jsxs)(Tr,{modal:e.modal,defaultOpen:e.defaultOpen,...n,children:[(0,o.jsx)(Er,{asChild:!0,children:V(e.trigger)}),(0,o.jsx)(Dr,{align:e.align,side:e.side,className:t,children:V(e.content)})]}),{namespace:`ui`,label:`Popover`,inputs:[{name:`modal`,type:`boolean`,label:`Modal`},{name:`defaultOpen`,type:`boolean`,label:`Default Open`},{name:`align`,type:`enum`,enum:[`start`,`center`,`end`],label:`Align`},{name:`side`,type:`enum`,enum:[`top`,`right`,`bottom`,`left`],label:`Side`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`content`,type:`slot`,label:`Content`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{trigger:[{type:`button`,label:`Open Popover`,variant:`outline`}],content:[{type:`text`,content:`Popover content goes here`}],align:`center`,side:`bottom`}}),t.ComponentRegistry.register(`tooltip`,({schema:e,className:t,...n})=>(0,o.jsx)(ri,{delayDuration:e.delayDuration,children:(0,o.jsxs)(ii,{...n,children:[(0,o.jsx)(ai,{asChild:!0,children:V(e.trigger)}),(0,o.jsx)(oi,{side:e.side,align:e.align,className:t,children:e.content||V(e.body)})]})}),{namespace:`ui`,label:`Tooltip`,inputs:[{name:`delayDuration`,type:`number`,label:`Delay Duration`,defaultValue:700},{name:`side`,type:`enum`,enum:[`top`,`right`,`bottom`,`left`],label:`Side`},{name:`align`,type:`enum`,enum:[`start`,`center`,`end`],label:`Align`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`content`,type:`string`,label:`Content Text`},{name:`body`,type:`slot`,label:`Rich Content`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{trigger:[{type:`button`,label:`Hover me`,variant:`outline`}],content:`Tooltip content`,delayDuration:700,side:`top`}}),t.ComponentRegistry.register(`alert-dialog`,({schema:e,className:t,...n})=>(0,o.jsxs)(xe,{defaultOpen:e.defaultOpen,...n,children:[(0,o.jsx)(Se,{asChild:!0,children:V(e.trigger)}),(0,o.jsxs)(Te,{className:t,children:[(0,o.jsxs)(Ee,{children:[e.title&&(0,o.jsx)(De,{children:e.title}),e.description&&(0,o.jsx)(Oe,{children:e.description})]}),V(e.content),(0,o.jsxs)(G,{children:[e.cancelText&&(0,o.jsx)(Ae,{children:e.cancelText}),e.actionText&&(0,o.jsx)(ke,{onClick:e.onAction,children:e.actionText})]})]})]}),{namespace:`ui`,label:`Alert Dialog`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`cancelText`,type:`string`,label:`Cancel Text`,defaultValue:`Cancel`},{name:`actionText`,type:`string`,label:`Action Text`,defaultValue:`Continue`},{name:`defaultOpen`,type:`boolean`,label:`Default Open`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`content`,type:`slot`,label:`Content/Body`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{title:`Are you sure?`,description:`This action cannot be undone.`,cancelText:`Cancel`,actionText:`Continue`,trigger:[{type:`button`,label:`Open Alert`,variant:`destructive`}]}}),t.ComponentRegistry.register(`drawer`,({schema:e,className:t,...n})=>(0,o.jsxs)(rn,{shouldScaleBackground:e.shouldScaleBackground,defaultOpen:e.defaultOpen,...n,children:[(0,o.jsx)(an,{asChild:!0,children:V(e.trigger)}),(0,o.jsxs)(ln,{className:t,children:[(0,o.jsxs)(un,{children:[e.title&&(0,o.jsx)(fn,{children:e.title}),e.description&&(0,o.jsx)(pn,{children:e.description})]}),V(e.content),e.footer&&(0,o.jsxs)(dn,{children:[V(e.footer),e.showClose&&(0,o.jsx)(sn,{asChild:!0,children:(0,o.jsx)(`button`,{children:`Close`})})]})]})]}),{namespace:`ui`,label:`Drawer`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`shouldScaleBackground`,type:`boolean`,label:`Scale Background`},{name:`defaultOpen`,type:`boolean`,label:`Default Open`},{name:`showClose`,type:`boolean`,label:`Show Close Button in Footer`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`content`,type:`slot`,label:`Content`},{name:`footer`,type:`slot`,label:`Footer`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{title:`Drawer Title`,description:`Drawer description`,trigger:[{type:`button`,label:`Open Drawer`}],content:[{type:`text`,content:`Drawer content goes here`}]}}),t.ComponentRegistry.register(`hover-card`,({schema:e,className:t,...n})=>(0,o.jsxs)(Bn,{openDelay:e.openDelay,closeDelay:e.closeDelay,...n,children:[(0,o.jsx)(Vn,{asChild:!0,children:V(e.trigger)}),(0,o.jsx)(Hn,{align:e.align,side:e.side,className:t,children:V(e.content)})]}),{namespace:`ui`,label:`Hover Card`,inputs:[{name:`openDelay`,type:`number`,label:`Open Delay`},{name:`closeDelay`,type:`number`,label:`Close Delay`},{name:`side`,type:`enum`,enum:[`top`,`right`,`bottom`,`left`],label:`Side`},{name:`align`,type:`enum`,enum:[`start`,`center`,`end`],label:`Align`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`content`,type:`slot`,label:`Content`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{trigger:[{type:`button`,label:`Hover me`,variant:`link`}],content:[{type:`text`,content:`Hover card content appears on hover`}],side:`top`}});var sc=e=>e?e.map((e,t)=>e.type===`separator`?(0,o.jsx)(Dn,{},t):e.type===`label`?(0,o.jsx)(En,{children:e.label},t):e.children?(0,o.jsxs)(vn,{children:[(0,o.jsxs)(bn,{inset:e.inset,children:[e.icon&&(0,o.jsx)(`span`,{className:`mr-2`,children:e.icon}),e.label]}),(0,o.jsx)(xn,{children:sc(e.children)})]},t):(0,o.jsxs)(Cn,{disabled:e.disabled,inset:e.inset,onSelect:e.onSelect,children:[e.icon&&(0,o.jsx)(`span`,{className:`mr-2`,children:e.icon}),e.label,e.shortcut&&(0,o.jsx)(`span`,{className:`ml-auto text-xs tracking-widest opacity-60`,children:e.shortcut})]},t)):null;t.ComponentRegistry.register(`dropdown-menu`,({schema:e,className:t,...n})=>(0,o.jsxs)(mn,{modal:e.modal,defaultOpen:e.defaultOpen,...n,children:[(0,o.jsx)(hn,{asChild:!0,children:V(e.trigger)}),(0,o.jsxs)(Sn,{align:e.align,side:e.side,className:t,children:[e.label&&(0,o.jsx)(En,{children:e.label}),e.label&&(0,o.jsx)(Dn,{}),sc(e.items)]})]}),{namespace:`ui`,label:`Dropdown Menu`,inputs:[{name:`label`,type:`string`,label:`Menu Label`},{name:`side`,type:`enum`,enum:[`top`,`right`,`bottom`,`left`],label:`Side`},{name:`align`,type:`enum`,enum:[`start`,`center`,`end`],label:`Align`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`items`,type:`array`,label:`Items`,description:`Recursive structure: { type?: "separator"|"label", label, icon, shortcut, disabled, children: [] }`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{trigger:[{type:`button`,label:`Menu`,variant:`outline`}],items:[{label:`Item 1`},{label:`Item 2`},{type:`separator`},{label:`Item 3`}],align:`start`,side:`bottom`}});var cc=e=>e?e.map((e,t)=>e.type===`separator`?(0,o.jsx)(tn,{},t):e.type===`label`?(0,o.jsx)(en,{children:e.label},t):e.children?(0,o.jsxs)(Kt,{children:[(0,o.jsx)(Jt,{inset:e.inset,children:e.label}),(0,o.jsx)(Yt,{children:cc(e.children)})]},t):(0,o.jsxs)(Zt,{disabled:e.disabled,inset:e.inset,onSelect:e.onSelect,children:[e.label,e.shortcut&&(0,o.jsx)(nn,{children:e.shortcut})]},t)):null;t.ComponentRegistry.register(`context-menu`,({schema:e,className:t,...n})=>{let r=e.triggerClassName||t||e.className||`h-[120px] w-full sm:h-[150px] sm:w-[300px] border border-dashed text-sm flex items-center justify-center`,i=e.contentClassName;return(0,o.jsxs)(Ht,{modal:e.modal,...n,children:[(0,o.jsx)(Ut,{asChild:!0,children:(0,o.jsx)(`div`,{className:r,children:V(e.trigger||{type:`text`,value:`Right click here`})})}),(0,o.jsx)(Xt,{className:i,children:cc(e.items)})]})},{namespace:`ui`,label:`Context Menu`,inputs:[{name:`trigger`,type:`slot`,label:`Trigger Area`},{name:`triggerClassName`,type:`string`,label:`Trigger Area Class`},{name:`items`,type:`array`,label:`Items`,description:`Recursive structure: { type?: "separator"|"label", label, shortcut, children }`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{items:[{label:`Action 1`},{label:`Action 2`},{type:`separator`},{label:`Action 3`}],trigger:[{type:`text`,content:`Right click here`}]}}),t.ComponentRegistry.register(`menubar`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,o.jsx)(Qn,{className:e.className,...a,"data-obj-id":n,"data-obj-type":r,style:i,children:e.menus?.map((e,t)=>(0,o.jsxs)(qn,{children:[(0,o.jsx)($n,{children:e.label}),(0,o.jsx)(nr,{children:e.items?.map((e,t)=>e.separator?(0,o.jsx)(sr,{},t):e.children?(0,o.jsxs)(Zn,{children:[(0,o.jsx)(er,{children:e.label}),(0,o.jsx)(tr,{children:e.children.map((e,t)=>(0,o.jsx)(rr,{children:e.label},t))})]},t):(0,o.jsx)(rr,{disabled:e.disabled,children:e.label},t))})]},t))})},{namespace:`ui`,label:`Menubar`,inputs:[{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{menus:[{label:`File`,items:[{label:`New`},{label:`Open`},{separator:!0},{label:`Exit`}]}]}}),t.ComponentRegistry.register(`accordion`,({schema:e,className:t,...n})=>(0,o.jsx)(H,{type:e.accordionType||`single`,collapsible:e.collapsible,className:t,...n,children:e.items?.map((e,t)=>(0,o.jsxs)(ve,{value:e.value||`item-${t}`,children:[(0,o.jsx)(ye,{children:e.title}),(0,o.jsx)(be,{children:V(e.content)})]},e.value||t))}),{namespace:`ui`,label:`Accordion`,inputs:[{name:`accordionType`,type:`enum`,enum:[`single`,`multiple`],defaultValue:`single`,label:`Type`},{name:`collapsible`,type:`boolean`,label:`Collapsible (for single type)`},{name:`items`,type:`array`,label:`Items`,description:`Array of { trigger, content, value }`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{accordionType:`single`,collapsible:!0,items:[{label:`Item 1`,value:`item-1`,content:[{type:`text`,content:`Content for item 1`}]},{label:`Item 2`,value:`item-2`,content:[{type:`text`,content:`Content for item 2`}]},{label:`Item 3`,value:`item-3`,content:[{type:`text`,content:`Content for item 3`}]}],className:`w-full`}}),t.ComponentRegistry.register(`collapsible`,({schema:e,className:t,...n})=>(0,o.jsxs)(bt,{defaultOpen:e.defaultOpen,disabled:e.disabled,className:t,...n,children:[(0,o.jsx)(xt,{asChild:!0,children:V(e.trigger)}),(0,o.jsx)(St,{children:V(e.content)})]}),{namespace:`ui`,label:`Collapsible`,inputs:[{name:`defaultOpen`,type:`boolean`,label:`Default Open`},{name:`disabled`,type:`boolean`,label:`Disabled`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`content`,type:`slot`,label:`Content`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{trigger:[{type:`button`,label:`Toggle`,variant:`outline`}],content:[{type:`text`,content:`Collapsible content goes here`}],className:`w-full`}}),t.ComponentRegistry.register(`toggle-group`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,type:a,...s}=t;return(0,o.jsx)(ia,{type:e.selectionType||`single`,variant:e.variant,size:e.size,value:e.value,className:e.className,...s,"data-obj-id":n,"data-obj-type":r,style:i,children:e.items?.map((e,t)=>(0,o.jsx)(aa,{value:e.value,"aria-label":e.label,children:e.label},t))})},{namespace:`ui`,label:`Toggle Group`,inputs:[{name:`selectionType`,type:`enum`,enum:[`single`,`multiple`],defaultValue:`single`,label:`Selection Type`},{name:`variant`,type:`enum`,enum:[`default`,`outline`],defaultValue:`default`,label:`Variant`},{name:`size`,type:`enum`,enum:[`default`,`sm`,`lg`],defaultValue:`default`,label:`Size`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{selectionType:`single`,variant:`default`,size:`default`,items:[{value:`bold`,label:`Bold`},{value:`italic`,label:`Italic`},{value:`underline`,label:`Underline`}]}}),t.ComponentRegistry.register(`carousel`,({schema:e,className:t,...n})=>(0,o.jsxs)(it,{opts:e.opts,orientation:e.orientation||`horizontal`,className:t,...n,children:[(0,o.jsx)(at,{children:e.items?.map((t,n)=>(0,o.jsx)(ot,{className:e.itemClassName,children:V(t)},n))}),e.showArrows&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(st,{}),(0,o.jsx)(ct,{})]})]}),{namespace:`ui`,label:`Carousel`,inputs:[{name:`orientation`,type:`enum`,enum:[`horizontal`,`vertical`],defaultValue:`horizontal`,label:`Orientation`},{name:`showArrows`,type:`boolean`,label:`Show Arrows`,defaultValue:!0},{name:`items`,type:`array`,label:`Items`,description:`Array of content schemas`},{name:`itemClassName`,type:`string`,label:`Item CSS Class`},{name:`className`,type:`string`,label:`Container CSS Class`}],defaultProps:{orientation:`horizontal`,showArrows:!0,items:[[{type:`div`,className:`p-4 sm:p-6 md:p-8 border rounded bg-slate-50`,body:[{type:`text`,content:`Slide 1`}]}],[{type:`div`,className:`p-4 sm:p-6 md:p-8 border rounded bg-slate-50`,body:[{type:`text`,content:`Slide 2`}]}],[{type:`div`,className:`p-4 sm:p-6 md:p-8 border rounded bg-slate-50`,body:[{type:`text`,content:`Slide 3`}]}]],className:`w-full max-w-xs`}}),t.ComponentRegistry.register(`filter-builder`,({schema:e,className:t,onChange:n,...r})=>(0,o.jsxs)(`div`,{className:e.wrapperClass||``,children:[e.label&&(0,o.jsx)(`label`,{className:`text-sm font-medium mb-2 block`,children:e.label}),(0,o.jsx)(Xa,{fields:e.fields||[],value:e.value||r.value,onChange:t=>{n&&n({target:{name:e.name,value:t}})},className:t,...r})]}),{namespace:`ui`,label:`Filter Builder`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`name`,type:`string`,label:`Name`,required:!0},{name:`fields`,type:`array`,label:`Fields`,description:`Array of { value: string, label: string, type?: string } objects`,required:!0},{name:`value`,type:`object`,label:`Initial Value`,description:`FilterGroup object with conditions`}],defaultProps:{label:`Filters`,name:`filters`,fields:[{value:`name`,label:`Name`,type:`text`},{value:`email`,label:`Email`,type:`text`},{value:`age`,label:`Age`,type:`number`},{value:`status`,label:`Status`,type:`text`}],value:{id:`root`,logic:`and`,conditions:[]}}}),t.ComponentRegistry.register(`scroll-area`,({schema:e,className:t,...n})=>{let{"data-obj-id":r,"data-obj-type":i,style:a,...s}=n,c=e.orientation||`vertical`;return(0,o.jsxs)(Pr,{className:t,style:{height:e.height,width:e.width,...a},...s,"data-obj-id":r,"data-obj-type":i,children:[V(e.children),(c===`horizontal`||c===`both`)&&(0,o.jsx)(Fr,{orientation:`horizontal`}),(c===`vertical`||c===`both`)&&(0,o.jsx)(Fr,{orientation:`vertical`})]})},{namespace:`ui`,label:`Scroll Area`,inputs:[{name:`height`,type:`string`,label:`Height (e.g. 200px)`},{name:`width`,type:`string`,label:`Width`},{name:`orientation`,type:`enum`,enum:[`vertical`,`horizontal`,`both`],defaultValue:`vertical`,label:`Orientation`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{height:`200px`,width:`100%`,orientation:`vertical`,children:[{type:`div`,className:`p-4`,body:[{type:`text`,content:`Scrollable content goes here. Add more content to see scrolling behavior.`}]}],className:`rounded-md border`}}),t.ComponentRegistry.register(`resizable`,({schema:e,className:t,...n})=>{let r=Array.isArray(e.panels)?e.panels:[];return(0,o.jsx)(jr,{orientation:e.direction||`horizontal`,className:t,...n,style:{minHeight:e.minHeight||`200px`},children:r.map((t,n)=>(0,o.jsxs)(a.default.Fragment,{children:[(0,o.jsx)(Mr,{defaultSize:t.defaultSize,minSize:t.minSize,maxSize:t.maxSize,children:V(t.content)}),n<r.length-1&&(0,o.jsx)(Nr,{withHandle:e.withHandle})]},n))})},{namespace:`ui`,label:`Resizable Panel Group`,inputs:[{name:`direction`,type:`enum`,enum:[`horizontal`,`vertical`],defaultValue:`horizontal`,label:`Direction`},{name:`minHeight`,type:`string`,label:`Min Height`},{name:`withHandle`,type:`boolean`,label:`Show Handle Icon`,defaultValue:!0},{name:`panels`,type:`array`,label:`Panels`,description:`Array of { defaultSize, minSize, maxSize, content }`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{direction:`horizontal`,minHeight:`200px`,withHandle:!0,panels:[{defaultSize:50,content:[{type:`div`,className:`p-4`,body:[{type:`text`,content:`Panel 1`}]}]},{defaultSize:50,content:[{type:`div`,className:`p-4`,body:[{type:`text`,content:`Panel 2`}]}]}],className:`rounded-lg border`}}),t.ComponentRegistry.register(`table`,({schema:e,className:t,...n})=>(0,o.jsxs)(Hi,{className:t,...n,children:[e.caption&&(0,o.jsx)(Yi,{children:e.caption}),(0,o.jsx)(Ui,{children:(0,o.jsx)(Ki,{children:e.columns?.map((e,t)=>(0,o.jsx)(qi,{className:e.className,style:{width:e.width},children:e.header||e.label},t))})}),(0,o.jsx)(Wi,{children:e.data?.map((t,n)=>(0,o.jsx)(Ki,{children:e.columns?.map((e,n)=>(0,o.jsx)(Ji,{className:e.cellClassName,children:t[e.accessorKey||e.name]},n))},n))}),e.footer&&(0,o.jsx)(Gi,{children:(0,o.jsx)(Ki,{children:(0,o.jsx)(Ji,{colSpan:e.columns?.length,children:typeof e.footer==`string`?e.footer:V(e.footer)})})})]}),{namespace:`ui`,label:`Table`,inputs:[{name:`caption`,type:`string`,label:`Caption`},{name:`footer`,type:`string`,label:`Footer Content`},{name:`columns`,type:`array`,label:`Columns`,description:`Array of { header, accessorKey, className, width }`},{name:`data`,type:`array`,label:`Data`,description:`Array of objects`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{caption:`Table Caption`,columns:[{header:`Column 1`,accessorKey:`col1`},{header:`Column 2`,accessorKey:`col2`},{header:`Column 3`,accessorKey:`col3`}],data:[{col1:`Row 1, Col 1`,col2:`Row 1, Col 2`,col3:`Row 1, Col 3`},{col1:`Row 2, Col 1`,col2:`Row 2, Col 2`,col3:`Row 2, Col 3`},{col1:`Row 3, Col 1`,col2:`Row 3, Col 2`,col3:`Row 3, Col 3`}]}});var lc={"table.rowsPerPage":`Rows per page`,"table.pageInfo":`Page {{current}} of {{total}}`,"table.totalRecords":`{{count}} total`,"table.noResults":`No results found`,"table.noResultsHint":`Try adjusting your filters or search query.`,"table.sortAsc":`Sort ascending`,"table.sortDesc":`Sort descending`,"table.hideColumn":`Hide column`,"table.cancelAll":`Cancel All`,"table.saveAll":`Save All ({{count}})`,"table.exportCSV":`Export CSV`,"table.addRecord":`Add record`,"table.open":`Open`,"table.search":`Search...`,"table.modified":`{{count}} row modified`,"table.selected":`{{count}} selected`,"table.edit":`Edit`,"table.delete":`Delete`,"common.actions":`Actions`};function uc(){try{let e=(0,i.useObjectTranslation)();return e.t(`table.rowsPerPage`)===`table.rowsPerPage`?{t:(e,t)=>{let n=lc[e]||e;if(t)for(let[e,r]of Object.entries(t))n=n.replace(`{{${e}}}`,String(r));return n},language:e.language||`en`}:{t:e.t,language:e.language||`en`}}catch{return{t:(e,t)=>{let n=lc[e]||e;if(t)for(let[e,r]of Object.entries(t))n=n.replace(`{{${e}}}`,String(r));return n},language:`en`}}}t.ComponentRegistry.register(`data-table`,({schema:e})=>{let{caption:n,columns:r=[],data:i=[],pagination:s=!0,pageSize:l=10,searchable:u=!0,selectable:d=!1,sortable:f=!0,exportable:p=!1,rowActions:m=!1,resizableColumns:h=!0,reorderableColumns:g=!0,editable:_=!1,singleClickEdit:v=!1,selectionStyle:y=`always`,rowClassName:b,rowStyle:x,className:S,cellClassName:C,frozenColumns:w=0,showRowNumbers:T=!1,showAddRow:E=!1,borderless:D=!1}=e,{t:O,language:k}=uc(),A=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:?\d{2})?)?$/,ee=a.default.useCallback(e=>{if(typeof e!=`string`||e.length<8||!A.test(e))return e;let t=Date.parse(e);if(Number.isNaN(t))return e;let n=e.includes(`T`);try{return new Intl.DateTimeFormat(k,n?{year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}:{year:`numeric`,month:`short`,day:`numeric`}).format(new Date(t))}catch{return e}},[k]),j=Array.isArray(i)?i:[],te=(0,a.useMemo)(()=>r.map(e=>({...e,header:e.header||e.label,accessorKey:e.accessorKey||e.name})),[r]),M=(0,a.useMemo)(()=>{let e={},t=r.map(e=>({header:e.header||e.label,accessorKey:e.accessorKey||e.name,width:e.width}));for(let n of t){if(n.width)continue;let t=(n.header||``).length,r=j.slice(0,50);for(let e of r){let r=e[n.accessorKey],i=r==null?0:String(r).length;i>t&&(t=i)}e[n.accessorKey]=Math.min(400,Math.max(80,t*8+48))}return e},[r,j]),[N,ne]=(0,a.useState)(``),[P,re]=(0,a.useState)(null),[ie,F]=(0,a.useState)(null),[ae,oe]=(0,a.useState)(new Set),[I,se]=(0,a.useState)(1),[L,ce]=(0,a.useState)(l),[R,le]=(0,a.useState)(te),[ue,de]=(0,a.useState)({}),[fe,pe]=(0,a.useState)(null),[me,he]=(0,a.useState)(null),[z,V]=(0,a.useState)(null),[ge,_e]=(0,a.useState)(``),[H,ve]=(0,a.useState)(new Map),[ye,be]=(0,a.useState)(!1),[U,xe]=(0,a.useState)(null),Se=(0,a.useRef)(null),Ce=(0,a.useRef)(0),we=(0,a.useRef)(0),Te=(0,a.useRef)(null);(0,a.useEffect)(()=>{le(te)},[te]);let Ee=(0,a.useMemo)(()=>N?j.filter(e=>R.some(t=>e[t.accessorKey]?.toString().toLowerCase().includes(N.toLowerCase()))):j,[j,N,R]),G=(0,a.useMemo)(()=>!P||!ie?Ee:[...Ee].sort((e,t)=>{let n=e[P],r=t[P];if(n===r)return 0;let i=n<r?-1:1;return ie===`asc`?i:-i}),[Ee,P,ie]),De=Math.ceil(G.length/L),Oe=s?G.slice((I-1)*L,I*L):G,ke=(e,t)=>e.id===void 0?`row-${t}`:e.id,Ae=e=>{f&&(P===e?ie===`asc`?F(`desc`):ie===`desc`&&(F(null),re(null)):(re(e),F(`asc`)))},je=(e,t)=>{e.preventDefault(),xe({x:e.clientX,y:e.clientY,columnKey:t})},Me=e=>{le(t=>t.filter(t=>t.accessorKey!==e)),xe(null)};(0,a.useEffect)(()=>{if(!U)return;let e=()=>xe(null);return document.addEventListener(`click`,e),()=>document.removeEventListener(`click`,e)},[U]);let Ne=t=>{let n=new Set;if(t&&Oe.forEach((e,t)=>{let r=ke(e,(I-1)*L+t);n.add(r)}),oe(n),e.onSelectionChange){let t=G.filter((e,t)=>{let r=ke(e,t);return n.has(r)});e.onSelectionChange(t)}},Pe=(t,n)=>{let r=new Set(ae);if(n?r.add(t):r.delete(t),oe(r),e.onSelectionChange){let t=G.filter((e,t)=>{let n=ke(e,t);return r.has(n)});e.onSelectionChange(t)}},Fe=()=>{let e=[R.map(e=>e.header).join(`,`),...G.map(e=>R.map(t=>JSON.stringify(e[t.accessorKey]||``)).join(`,`))].join(`
|
|
19
19
|
`),t=new Blob([e],{type:`text/csv`}),n=window.URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`table-export.csv`,r.click(),window.URL.revokeObjectURL(n)},Ie=e=>P===e?ie===`asc`?(0,o.jsx)(c.ChevronUp,{className:`h-3 w-3 ml-0.5 text-primary`}):(0,o.jsx)(c.ChevronDown,{className:`h-3 w-3 ml-0.5 text-primary`}):(0,o.jsx)(c.ChevronsUpDown,{className:`h-3 w-3 ml-0.5 opacity-0 group-hover:opacity-50 transition-opacity`}),Le=(e,t)=>{if(!h)return;e.preventDefault(),e.stopPropagation(),Se.current=t,Ce.current=e.clientX;let n=e.target.closest(`th`);n&&(we.current=n.offsetWidth),document.addEventListener(`mousemove`,Re),document.addEventListener(`mouseup`,ze)},Re=e=>{if(!Se.current)return;let t=e.clientX-Ce.current,n=Math.max(50,we.current+t);de(e=>({...e,[Se.current]:n}))},ze=()=>{Se.current=null,document.removeEventListener(`mousemove`,Re),document.removeEventListener(`mouseup`,ze)},Be=(e,t)=>{g&&(pe(t),e.dataTransfer.effectAllowed=`move`)},Ve=(e,t)=>{g&&(e.preventDefault(),e.dataTransfer.dropEffect=`move`,he(t))},He=(t,n)=>{if(!g||fe===null)return;if(t.preventDefault(),fe===n){pe(null),he(null);return}let r=[...R],[i]=r.splice(fe,1);r.splice(n,0,i),le(r),pe(null),he(null),e.onColumnsReorder&&e.onColumnsReorder(r)},Ue=()=>{pe(null),he(null)},We=(e,t)=>{if(!_||R.find(e=>e.accessorKey===t)?.editable===!1)return;V({rowIndex:e,columnKey:t});let n=H.get(e),r=Oe[e][t];_e(n?.[t]??r??``)},Ge=(t=!1)=>{if(!z||!t&&z===null)return;let{rowIndex:n,columnKey:r}=z,i=(I-1)*L+n,a=G[i],o=new Map(H),s=o.get(n)||{};s[r]=ge,o.set(n,s),ve(o),e.onCellChange&&e.onCellChange(i,r,ge,a),V(null),_e(``)},Ke=()=>{V(null),_e(``)},qe=async t=>{let n=(I-1)*L+t,r=G[n],i=H.get(t);if(!(!i||Object.keys(i).length===0)){be(!0);try{e.onRowSave&&await e.onRowSave(n,i,r);let a=new Map(H);a.delete(t),ve(a)}catch(e){console.error(`Failed to save row:`,e)}finally{be(!1)}}},Je=e=>{let t=new Map(H);t.delete(e),ve(t)},Ye=async()=>{if(H.size!==0){be(!0);try{let t=Array.from(H.entries()).map(([e,t])=>{let n=(I-1)*L+e;return{rowIndex:n,changes:t,row:G[n]}});e.onBatchSave&&await e.onBatchSave(t),ve(new Map)}catch(e){console.error(`Failed to save batch:`,e)}finally{be(!1)}}},Xe=()=>{ve(new Map)},Ze=(e,t,n)=>{if((e.ctrlKey||e.metaKey)&&e.key===`c`&&!z){e.preventDefault();let r=G[(I-1)*L+t];if(r){let e=r[n],t=e==null?``:String(e);navigator.clipboard.writeText(t).catch(()=>{})}return}_&&R.find(e=>e.accessorKey===n)?.editable!==!1&&e.key===`Enter`&&!z&&(e.preventDefault(),We(t,n))},Qe=e=>{e.key===`Enter`?(e.preventDefault(),Ge(!0)):e.key===`Escape`&&(e.preventDefault(),Ke())};(0,a.useEffect)(()=>{z&&Te.current&&(Te.current.focus(),Te.current.select())},[z]),(0,a.useEffect)(()=>()=>{document.removeEventListener(`mousemove`,Re),document.removeEventListener(`mouseup`,ze)},[]);let $e=Oe.length>0&&Oe.every((e,t)=>{let n=ke(e,(I-1)*L+t);return ae.has(n)}),et=Oe.some((e,t)=>{let n=ke(e,(I-1)*L+t);return ae.has(n)})&&!$e,tt=H.size>0,nt=u||p||d&&ae.size>0||tt;return(0,o.jsxs)(`div`,{className:`flex flex-col h-full gap-2 sm:gap-4 ${S||``}`,children:[nt&&(0,o.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-stretch sm:items-center justify-between gap-2 sm:gap-4 flex-none`,children:[(0,o.jsx)(`div`,{className:`flex items-center gap-2 flex-1`,children:u&&(0,o.jsxs)(`div`,{className:`relative w-full sm:max-w-sm flex-1`,children:[(0,o.jsx)(c.Search,{className:`absolute left-2 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground`}),(0,o.jsx)(q,{placeholder:O(`table.search`),value:N,onChange:e=>{ne(e.target.value),se(1)},className:`pl-8`})]})}),(0,o.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[tt&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:O(`table.modified`,{count:H.size})}),(0,o.jsxs)(W,{variant:`outline`,size:`sm`,onClick:Xe,disabled:ye,children:[(0,o.jsx)(c.X,{className:`h-4 w-4 mr-2`}),O(`table.cancelAll`)]}),(0,o.jsxs)(W,{variant:`default`,size:`sm`,onClick:Ye,disabled:ye,children:[(0,o.jsx)(c.Save,{className:`h-4 w-4 mr-2`}),O(`table.saveAll`,{count:H.size})]})]}),p&&(0,o.jsxs)(W,{variant:`outline`,size:`sm`,onClick:Fe,disabled:G.length===0,children:[(0,o.jsx)(c.Download,{className:`h-4 w-4 mr-2`}),O(`table.exportCSV`)]}),d&&ae.size>0&&(0,o.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:O(`table.selected`,{count:ae.size})})]})]}),(0,o.jsx)(`div`,{className:B(`flex-1 min-h-0 overflow-auto relative bg-background [-webkit-overflow-scrolling:touch]`,!D&&`rounded-md border shadow-[inset_-8px_0_8px_-8px_rgba(0,0,0,0.08)]`),children:(0,o.jsxs)(Hi,{children:[n&&(0,o.jsx)(Yi,{children:n}),(0,o.jsx)(Ui,{className:`sticky top-0 bg-muted/30 z-10`,children:(0,o.jsxs)(Ki,{children:[d&&(0,o.jsx)(qi,{className:B(`w-10 bg-muted/30`,w>0&&`sticky left-0 z-20`),children:(0,o.jsx)(yt,{checked:$e?!0:et?`indeterminate`:!1,onCheckedChange:Ne})}),T&&(0,o.jsx)(qi,{className:B(`w-10 bg-muted/30 text-center`,w>0&&`sticky z-20`),style:w>0?{left:d?40:0}:void 0,children:(0,o.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`#`})}),R.map((e,t)=>{let n=ue[e.accessorKey]||e.width||M[e.accessorKey],r=fe===t,i=me===t,a=w>0&&t<w,s=a?R.slice(0,t).reduce((e,t,n)=>{if(n<w){let n=ue[t.accessorKey]||t.width||M[t.accessorKey];return e+(typeof n==`number`?n:n&&parseInt(String(n),10)||150)}return e},(d?40:0)+(T?40:0)):void 0;return(0,o.jsx)(qi,{className:B(e.className,f&&e.sortable!==!1&&`cursor-pointer select-none`,r&&`opacity-50`,i&&`border-l-2 border-primary`,e.align===`right`&&`text-right`,e.align===`center`&&`text-center`,`relative group bg-muted/30`,a&&`sticky z-20`,a&&t===w-1&&`border-r-2 border-border shadow-[2px_0_4px_-2px_rgba(0,0,0,0.1)]`),style:{width:n,minWidth:n,...a&&{left:s}},draggable:g,onDragStart:e=>Be(e,t),onDragOver:e=>Ve(e,t),onDrop:e=>He(e,t),onDragEnd:Ue,onClick:()=>f&&e.sortable!==!1&&Ae(e.accessorKey),onContextMenu:t=>je(t,e.accessorKey),children:(0,o.jsxs)(`div`,{className:B(`flex items-center`,e.align===`right`?`justify-end`:`justify-between`),children:[(0,o.jsxs)(`div`,{className:`flex items-center gap-1`,children:[g&&(0,o.jsx)(c.GripVertical,{className:`h-4 w-4 opacity-0 group-hover:opacity-50 cursor-grab active:cursor-grabbing shrink-0`}),e.headerIcon&&(0,o.jsx)(`span`,{className:`text-muted-foreground shrink-0`,children:e.headerIcon}),(0,o.jsx)(`span`,{className:`text-xs font-normal text-muted-foreground whitespace-nowrap truncate`,children:e.header}),f&&e.sortable!==!1&&Ie(e.accessorKey)]}),h&&e.resizable!==!1&&(0,o.jsx)(`div`,{className:`absolute right-0 top-0 h-full w-1 cursor-col-resize hover:bg-primary opacity-0 hover:opacity-100 transition-opacity`,onMouseDown:t=>Le(t,e.accessorKey),onClick:e=>e.stopPropagation()})]})},e.accessorKey)}),m&&(0,o.jsx)(qi,{className:`w-24 text-right bg-muted/30`,children:O(`common.actions`)})]})}),(0,o.jsx)(Wi,{children:Oe.length===0?(0,o.jsx)(Ki,{className:`hover:bg-transparent`,children:(0,o.jsx)(Ji,{colSpan:R.length+ +!!d+ +!!T+ +!!m,className:`h-48 text-center text-muted-foreground border-0`,children:(0,o.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-3`,children:[(0,o.jsx)(c.Search,{className:`h-8 w-8 text-muted-foreground/50`}),(0,o.jsxs)(`div`,{className:`space-y-1`,children:[(0,o.jsx)(`p`,{children:O(`table.noResults`)}),(0,o.jsx)(`p`,{className:`text-xs text-muted-foreground/50`,children:O(`table.noResultsHint`)})]}),e.emptyAction&&(()=>{let n=e.emptyAction,r=n?.type?t.ComponentRegistry.get(n.type):null;return r?(0,o.jsx)(r,{schema:n}):null})()]})})}):(0,o.jsxs)(o.Fragment,{children:[Oe.map((t,n)=>{let r=(I-1)*L+n,i=ke(t,r),a=ae.has(i),s=H.has(n),l=H.get(n)||{};return(0,o.jsxs)(Ki,{"data-state":a?`selected`:void 0,className:B(`bg-background border-b border-border group/row transition-colors`,`hover:bg-muted/40`,`data-[state=selected]:bg-primary/5 data-[state=selected]:hover:bg-primary/10`,`focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-inset`,e.onRowClick&&`cursor-pointer`,s&&`bg-amber-50 dark:bg-amber-950/20`,b&&b(t,n)),style:x?x(t,n):void 0,onClick:n=>{if(e.onRowClick&&!n.defaultPrevented){let r=n.target;if(r.closest(`button`)||r.closest(`a`)||r.closest(`input, select, textarea, label`)||r.closest(`[role="checkbox"]`)||r.closest(`[role="menu"]`)||r.closest(`[role="menuitem"]`)||r.closest(`[role="menuitemcheckbox"]`)||r.closest(`[role="menuitemradio"]`)||r.closest(`[role="dialog"]`)||r.closest(`[role="alertdialog"]`)||r.closest(`[role="listbox"]`)||r.closest(`[role="option"]`)||r.closest(`[role="tab"]`)||r.closest(`[data-radix-popper-content-wrapper]`))return;e.onRowClick(t)}},children:[d&&(0,o.jsx)(Ji,{className:B(C,w>0&&`sticky left-0 z-10 bg-background`,y===`hover`&&`relative`),children:y===`hover`?(0,o.jsx)(`div`,{className:B(`transition-opacity`,a?`opacity-100`:`opacity-0 group-hover/row:opacity-100`),children:(0,o.jsx)(yt,{checked:a,onCheckedChange:e=>Pe(i,e)})}):(0,o.jsx)(yt,{checked:a,onCheckedChange:e=>Pe(i,e)})}),T&&(0,o.jsxs)(Ji,{className:B(`text-center w-10 relative`,C,w>0&&`sticky z-10 bg-background`),style:w>0?{left:d?40:0}:void 0,children:[(0,o.jsx)(`span`,{className:B(`text-xs text-muted-foreground tabular-nums select-none`,!d&&e.onRowClick&&`group-hover/row:invisible`),children:r+1}),!d&&e.onRowClick&&(0,o.jsxs)(`button`,{type:`button`,className:`absolute inset-0 hidden group-hover/row:flex items-center justify-center gap-0.5 text-xs font-medium text-primary hover:text-primary/80`,"data-testid":`row-expand-button`,onClick:n=>{n.stopPropagation(),e.onRowClick?.(t)},title:`Open record`,children:[(0,o.jsx)(`span`,{children:O(`table.open`)}),(0,o.jsx)(c.ChevronRight,{className:`h-3 w-3`})]})]}),R.map((e,r)=>{let i=ue[e.accessorKey]||e.width||M[e.accessorKey],a=t[e.accessorKey],s=l[e.accessorKey]!==void 0,c=s?l[e.accessorKey]:a,u=z?.rowIndex===n&&z?.columnKey===e.accessorKey,f=_&&e.editable!==!1,p=w>0&&r<w,m=p?R.slice(0,r).reduce((e,t,n)=>{if(n<w){let n=ue[t.accessorKey]||t.width||M[t.accessorKey];return e+(typeof n==`number`?n:n&&parseInt(String(n),10)||150)}return e},(d?40:0)+(T?40:0)):void 0;return(0,o.jsx)(Ji,{className:B(e.cellClassName,e.align===`right`&&`text-right`,e.align===`center`&&`text-center`,f&&!u&&`cursor-text hover:bg-muted/50`,s&&`font-semibold text-amber-700 dark:text-amber-400`,p&&`sticky z-10 bg-background`,p&&r===w-1&&`border-r-2 border-border shadow-[2px_0_4px_-2px_rgba(0,0,0,0.1)]`),style:{width:i,minWidth:i,maxWidth:i,...p&&{left:m}},onDoubleClick:()=>f&&!v&&We(n,e.accessorKey),onClick:()=>f&&v&&We(n,e.accessorKey),onKeyDown:t=>Ze(t,n,e.accessorKey),tabIndex:0,children:u?(0,o.jsx)(q,{ref:Te,value:ge,onChange:e=>_e(e.target.value),onKeyDown:Qe,className:`h-8 px-2 py-1`}):typeof e.cell==`function`?e.cell(c,t):typeof c==`object`&&c?String(c):ee(c)},r)}),m&&(0,o.jsx)(Ji,{className:B(`text-right`,C),children:(0,o.jsx)(`div`,{className:`flex items-center justify-end gap-1`,children:s&&(e.onRowSave||e.onBatchSave)?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(W,{variant:`ghost`,size:`icon`,onClick:()=>Je(n),disabled:ye,title:`Cancel changes`,children:(0,o.jsx)(c.X,{className:`h-4 w-4`})}),(0,o.jsx)(W,{variant:`ghost`,size:`icon`,onClick:()=>qe(n),disabled:ye,title:`Save row`,children:(0,o.jsx)(c.Save,{className:`h-4 w-4 text-green-600`})})]}):(e.onRowEdit||e.onRowDelete)&&(0,o.jsxs)(mn,{children:[(0,o.jsx)(hn,{asChild:!0,children:(0,o.jsx)(W,{variant:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:e=>e.stopPropagation(),"aria-label":`Row actions`,children:(0,o.jsx)(c.MoreHorizontal,{className:`h-4 w-4`})})}),(0,o.jsxs)(Sn,{align:`end`,onClick:e=>e.stopPropagation(),children:[e.onRowEdit&&(0,o.jsxs)(Cn,{onClick:()=>e.onRowEdit?.(t),children:[(0,o.jsx)(c.Edit,{className:`mr-2 h-4 w-4`}),O(`table.edit`)]}),e.onRowEdit&&e.onRowDelete&&(0,o.jsx)(Dn,{}),e.onRowDelete&&(0,o.jsxs)(Cn,{onClick:()=>e.onRowDelete?.(t),className:`text-destructive focus:text-destructive`,children:[(0,o.jsx)(c.Trash2,{className:`mr-2 h-4 w-4`}),O(`table.delete`)]})]})]})})})]},i)}),E&&(0,o.jsx)(Ki,{className:`hover:bg-muted/30 cursor-pointer border-b border-border`,"data-testid":`add-record-row`,onClick:()=>e.onAddRecord?.(),children:(0,o.jsx)(Ji,{colSpan:R.length+ +!!d+ +!!T+ +!!m,className:`h-9 px-3 py-1.5`,children:(0,o.jsxs)(`span`,{className:`flex items-center gap-1.5 text-muted-foreground text-sm hover:text-foreground transition-colors`,children:[(0,o.jsx)(c.Plus,{className:`h-3.5 w-3.5`}),O(`table.addRecord`)]})})})]})})]})}),s&&G.length>0&&De>1&&(0,o.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-center justify-between gap-2`,children:[(0,o.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,o.jsxs)(`span`,{className:`text-xs sm:text-sm text-muted-foreground`,children:[O(`table.rowsPerPage`),`:`]}),(0,o.jsxs)(Ir,{value:L.toString(),onValueChange:e=>{ce(Number(e)),se(1)},children:[(0,o.jsx)(J,{className:`w-20`,children:(0,o.jsx)(Rr,{})}),(0,o.jsxs)(Y,{children:[(0,o.jsx)(X,{value:`5`,children:`5`}),(0,o.jsx)(X,{value:`10`,children:`10`}),(0,o.jsx)(X,{value:`20`,children:`20`}),(0,o.jsx)(X,{value:`50`,children:`50`}),(0,o.jsx)(X,{value:`100`,children:`100`})]})]})]}),(0,o.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,o.jsx)(`span`,{className:`text-xs sm:text-sm text-muted-foreground`,children:O(`table.pageInfo`,{current:I,total:De})}),(0,o.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,o.jsx)(W,{variant:`outline`,size:`icon`,onClick:()=>se(1),disabled:I===1,children:(0,o.jsx)(c.ChevronsLeft,{className:`h-4 w-4`})}),(0,o.jsx)(W,{variant:`outline`,size:`icon`,onClick:()=>se(Math.max(1,I-1)),disabled:I===1,children:(0,o.jsx)(c.ChevronLeft,{className:`h-4 w-4`})}),(0,o.jsx)(W,{variant:`outline`,size:`icon`,onClick:()=>se(Math.min(De,I+1)),disabled:I===De,children:(0,o.jsx)(c.ChevronRight,{className:`h-4 w-4`})}),(0,o.jsx)(W,{variant:`outline`,size:`icon`,onClick:()=>se(De),disabled:I===De,children:(0,o.jsx)(c.ChevronsRight,{className:`h-4 w-4`})})]})]})]}),U&&(0,o.jsxs)(`div`,{className:`fixed z-50 min-w-[160px] rounded-md border bg-popover p-1 shadow-md`,style:{left:U.x,top:U.y},"data-testid":`column-context-menu`,onClick:e=>e.stopPropagation(),children:[f&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent hover:text-accent-foreground cursor-pointer`,onClick:()=>{re(U.columnKey),F(`asc`),xe(null)},children:[(0,o.jsx)(c.ChevronUp,{className:`h-3.5 w-3.5`}),O(`table.sortAsc`)]}),(0,o.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent hover:text-accent-foreground cursor-pointer`,onClick:()=>{re(U.columnKey),F(`desc`),xe(null)},children:[(0,o.jsx)(c.ChevronDown,{className:`h-3.5 w-3.5`}),O(`table.sortDesc`)]}),(0,o.jsx)(`div`,{className:`my-1 h-px bg-border`})]}),(0,o.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent hover:text-accent-foreground cursor-pointer`,onClick:()=>Me(U.columnKey),children:[(0,o.jsx)(c.X,{className:`h-3.5 w-3.5`}),O(`table.hideColumn`)]})]})]})},{namespace:`ui`,label:`Data Table`,icon:`table`,inputs:[{name:`caption`,type:`string`,label:`Caption`},{name:`columns`,type:`array`,label:`Columns`,description:`Array of { header, accessorKey, className, width, sortable, filterable, resizable }`,required:!0},{name:`data`,type:`array`,label:`Data`,description:`Array of data objects`,required:!0},{name:`pagination`,type:`boolean`,label:`Enable Pagination`,defaultValue:!0},{name:`pageSize`,type:`number`,label:`Page Size`,defaultValue:10},{name:`searchable`,type:`boolean`,label:`Enable Search`,defaultValue:!0},{name:`selectable`,type:`boolean`,label:`Enable Row Selection`,defaultValue:!1},{name:`sortable`,type:`boolean`,label:`Enable Sorting`,defaultValue:!0},{name:`exportable`,type:`boolean`,label:`Enable Export`,defaultValue:!1},{name:`rowActions`,type:`boolean`,label:`Show Row Actions`,defaultValue:!1},{name:`resizableColumns`,type:`boolean`,label:`Enable Column Resizing`,defaultValue:!0},{name:`reorderableColumns`,type:`boolean`,label:`Enable Column Reordering`,defaultValue:!0},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{caption:`Enterprise Data Table`,pagination:!0,pageSize:10,searchable:!0,selectable:!0,sortable:!0,exportable:!0,rowActions:!0,resizableColumns:!0,reorderableColumns:!0,columns:[{header:`ID`,accessorKey:`id`,width:`80px`},{header:`Name`,accessorKey:`name`},{header:`Email`,accessorKey:`email`},{header:`Status`,accessorKey:`status`},{header:`Role`,accessorKey:`role`}],data:[{id:1,name:`John Doe`,email:`john@example.com`,status:`Active`,role:`Admin`},{id:2,name:`Jane Smith`,email:`jane@example.com`,status:`Active`,role:`User`},{id:3,name:`Bob Johnson`,email:`bob@example.com`,status:`Inactive`,role:`User`},{id:4,name:`Alice Williams`,email:`alice@example.com`,status:`Active`,role:`Manager`},{id:5,name:`Charlie Brown`,email:`charlie@example.com`,status:`Active`,role:`User`},{id:6,name:`Diana Prince`,email:`diana@example.com`,status:`Active`,role:`Admin`},{id:7,name:`Ethan Hunt`,email:`ethan@example.com`,status:`Inactive`,role:`User`},{id:8,name:`Fiona Gallagher`,email:`fiona@example.com`,status:`Active`,role:`User`},{id:9,name:`George Wilson`,email:`george@example.com`,status:`Active`,role:`Manager`},{id:10,name:`Hannah Montana`,email:`hannah@example.com`,status:`Active`,role:`User`},{id:11,name:`Ivan Drago`,email:`ivan@example.com`,status:`Inactive`,role:`User`},{id:12,name:`Julia Roberts`,email:`julia@example.com`,status:`Active`,role:`Admin`}]}});function dc(e){return e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)}var fc={Home:`House`};function pc(e){if(!e)return null;let t=dc(e);return c.icons[fc[t]||t]??null}var mc=(0,a.forwardRef)(({schema:e,className:t,context:n,...r},s)=>{let{"data-obj-id":l,"data-obj-type":u,style:d,data:f,...p}=r,{execute:m}=(0,i.useAction)(),[h,g]=(0,a.useState)(!1),_=typeof f==`object`&&f?f:{},v=(0,i.useCondition)((0,i.toPredicateInput)(e.visible),_),y=(0,i.useCondition)((0,i.toPredicateInput)(e.enabled),_),b=pc(e.icon),x=e.variant===`primary`?`default`:e.variant||`default`,S=e.size===`md`?`default`:e.size||`default`,C=(0,a.useCallback)(async()=>{if(!h){g(!0);try{let t=Array.isArray(e.params)?{actionParams:e.params}:{params:e.params};await m({type:e.actionType||e.type,name:e.name,target:e.target,execute:e.execute,endpoint:e.endpoint,method:e.method,...t,confirmText:e.confirmText,successMessage:e.successMessage,errorMessage:e.errorMessage,refreshAfter:e.refreshAfter,toast:e.toast,...n})}finally{g(!1)}}},[e,m,h,n]);return e.visible&&!v?null:(0,o.jsxs)(W,{ref:s,type:`button`,variant:x,size:S,className:B(e.className,t),disabled:(e.enabled?!y:!1)||h,onClick:C,...p,"data-obj-id":l,"data-obj-type":u,style:d,children:[h&&(0,o.jsx)(c.Loader2,{className:`mr-2 h-4 w-4 animate-spin`}),!h&&b&&(0,o.jsx)(b,{className:B(`h-4 w-4`,e.label&&`mr-2`)}),e.label]})});mc.displayName=`ActionButtonRenderer`,t.ComponentRegistry.register(`action:button`,mc,{namespace:`action`,label:`Action Button`,inputs:[{name:`name`,type:`string`,label:`Action Name`},{name:`label`,type:`string`,label:`Label`,defaultValue:`Action`},{name:`icon`,type:`string`,label:`Icon`},{name:`type`,type:`enum`,label:`Action Type`,enum:[`script`,`url`,`modal`,`flow`,`api`],defaultValue:`script`},{name:`target`,type:`string`,label:`Target`},{name:`variant`,type:`enum`,label:`Variant`,enum:[`default`,`primary`,`secondary`,`destructive`,`outline`,`ghost`],defaultValue:`default`},{name:`size`,type:`enum`,label:`Size`,enum:[`sm`,`md`,`lg`],defaultValue:`md`},{name:`className`,type:`string`,label:`CSS Class`,advanced:!0}],defaultProps:{label:`Action`,type:`script`,variant:`default`,size:`md`}});var hc=(0,a.forwardRef)(({schema:e,className:t,context:n,...r},s)=>{let{"data-obj-id":l,"data-obj-type":u,style:d,...f}=r,{execute:p}=(0,i.useAction)(),[m,h]=(0,a.useState)(!1),g=(0,i.useCondition)((0,i.toPredicateInput)(e.visible)),_=(0,i.useCondition)((0,i.toPredicateInput)(e.enabled)),v=pc(e.icon),y=e.variant===`primary`?`default`:e.variant||`ghost`,b=(0,a.useCallback)(async()=>{if(!m){h(!0);try{await p({type:e.type,name:e.name,target:e.target,execute:e.execute,endpoint:e.endpoint,method:e.method,params:e.params,confirmText:e.confirmText,successMessage:e.successMessage,errorMessage:e.errorMessage,refreshAfter:e.refreshAfter,toast:e.toast,...n})}finally{h(!1)}}},[e,p,m,n]);if(e.visible&&!g)return null;let x=(0,o.jsx)(W,{ref:s,type:`button`,variant:y,size:`icon`,className:B(`h-8 w-8`,e.className,t),disabled:(e.enabled?!_:!1)||m,onClick:b,"aria-label":e.label||e.name,...f,"data-obj-id":l,"data-obj-type":u,style:d,children:m?(0,o.jsx)(c.Loader2,{className:`h-4 w-4 animate-spin`}):v?(0,o.jsx)(v,{className:`h-4 w-4`}):(0,o.jsx)(`span`,{className:`text-xs`,children:e.label?.charAt(0)||`?`})});return e.label||e.description?(0,o.jsx)(ri,{delayDuration:300,children:(0,o.jsxs)(ii,{children:[(0,o.jsx)(ai,{asChild:!0,children:x}),(0,o.jsx)(oi,{children:(0,o.jsx)(`p`,{children:e.label||e.description})})]})}):x});hc.displayName=`ActionIconRenderer`,t.ComponentRegistry.register(`action:icon`,hc,{namespace:`action`,label:`Action Icon`,inputs:[{name:`name`,type:`string`,label:`Action Name`},{name:`label`,type:`string`,label:`Tooltip Label`},{name:`icon`,type:`string`,label:`Icon`},{name:`type`,type:`enum`,label:`Action Type`,enum:[`script`,`url`,`modal`,`flow`,`api`],defaultValue:`script`},{name:`target`,type:`string`,label:`Target`},{name:`variant`,type:`enum`,label:`Variant`,enum:[`default`,`secondary`,`destructive`,`outline`,`ghost`],defaultValue:`ghost`},{name:`className`,type:`string`,label:`CSS Class`,advanced:!0}],defaultProps:{icon:`play`,type:`script`,variant:`ghost`}});function gc(){try{let{t:e}=(0,L.useObjectTranslation)(),t=e(`detail.moreActions`);return!t||t===`detail.moreActions`?`More actions`:t}catch{return`More actions`}}var _c=({action:e,onExecute:t})=>{let n=(0,i.useCondition)((0,i.toPredicateInput)(e.visible)),r=(0,i.useCondition)((0,i.toPredicateInput)(e.enabled)),s=(0,a.useMemo)(()=>{let t=pc(e.icon);return t?(0,o.jsx)(t,{className:`mr-2 h-4 w-4`}):null},[e.icon]);return e.visible&&!n?null:(0,o.jsxs)(Cn,{disabled:e.enabled?!r:!1,onSelect:n=>{n.preventDefault(),t(e)},className:B(e.variant===`destructive`&&`text-destructive focus:text-destructive`,e.className),children:[s,(0,o.jsx)(`span`,{children:e.label||e.name})]})};_c.displayName=`ActionMenuItem`;var vc=(0,a.forwardRef)(({schema:e,className:t,...n},r)=>{let{"data-obj-id":s,"data-obj-type":l,style:u,...d}=n,{execute:f}=(0,i.useAction)(),[p,m]=(0,a.useState)(!1),h=gc(),g=(0,i.useCondition)((0,i.toPredicateInput)(e.visible)),_=pc(e.icon)||c.MoreHorizontal,v=e.variant||`ghost`,y=e.size||`icon`,b=(0,a.useCallback)(async e=>{m(!0);try{if(typeof e.onClick==`function`){await e.onClick();return}await f({type:e.type,name:e.name,target:e.target,execute:e.execute,endpoint:e.endpoint,method:e.method,params:e.params,confirmText:e.confirmText,successMessage:e.successMessage,errorMessage:e.errorMessage,refreshAfter:e.refreshAfter,toast:e.toast})}finally{m(!1)}},[f]);if(e.visible&&!g)return null;let x=e.actions||[];return x.length===0?null:(0,o.jsxs)(mn,{children:[(0,o.jsx)(hn,{asChild:!0,children:(0,o.jsx)(W,{ref:r,type:`button`,variant:v,size:y,className:B(y===`icon`&&`h-8 w-8`,e.className,t),disabled:p,"aria-label":e.label||h,...d,"data-obj-id":s,"data-obj-type":l,style:u,children:p?(0,o.jsx)(c.Loader2,{className:`h-4 w-4 animate-spin`}):(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(_,{className:B(`h-4 w-4`,e.label&&`mr-2`)}),e.label&&(0,o.jsx)(`span`,{children:e.label})]})})}),(0,o.jsx)(Sn,{align:`end`,children:x.map((e,t)=>{let n=e.tags?.includes(`separator-before`)&&t>0;return(0,o.jsxs)(a.default.Fragment,{children:[n&&(0,o.jsx)(Dn,{}),(0,o.jsx)(_c,{action:e,onExecute:b})]},e.name||t)})})]})});vc.displayName=`ActionMenuRenderer`,t.ComponentRegistry.register(`action:menu`,vc,{namespace:`action`,label:`Action Menu`,inputs:[{name:`label`,type:`string`,label:`Trigger Label`},{name:`icon`,type:`string`,label:`Trigger Icon`},{name:`actions`,type:`object`,label:`Actions`},{name:`variant`,type:`enum`,label:`Trigger Variant`,enum:[`default`,`secondary`,`outline`,`ghost`],defaultValue:`ghost`},{name:`className`,type:`string`,label:`CSS Class`,advanced:!0}],defaultProps:{variant:`ghost`,actions:[]}});var yc=({action:e,variant:t,size:n,onExecute:r})=>{let[s,l]=(0,a.useState)(!1),u=(0,i.useCondition)((0,i.toPredicateInput)(e.visible)),d=(0,i.useCondition)((0,i.toPredicateInput)(e.enabled)),f=pc(e.icon),p=e.variant===`primary`?`default`:e.variant||t||`outline`,m=e.size===`md`?`default`:e.size||n||`sm`,h=(0,a.useCallback)(async()=>{if(!s){l(!0);try{await r(e)}finally{l(!1)}}},[e,r,s]);return e.visible&&!u?null:(0,o.jsxs)(W,{type:`button`,variant:p,size:m,className:e.className,disabled:(e.enabled?!d:!1)||s,onClick:h,children:[s&&(0,o.jsx)(c.Loader2,{className:`mr-2 h-4 w-4 animate-spin`}),!s&&f&&(0,o.jsx)(f,{className:B(`h-4 w-4`,e.label&&`mr-2`)}),e.label]})};yc.displayName=`InlineActionButton`;var bc=(0,a.forwardRef)(({schema:e,className:t,...n},r)=>{let{"data-obj-id":s,"data-obj-type":l,style:u,...d}=n,{execute:f}=(0,i.useAction)(),[p,m]=(0,a.useState)(!1),h=(0,i.useCondition)((0,i.toPredicateInput)(e.visible)),g=e.actions||[];e.location&&(g=g.filter(t=>!t.locations||t.locations.includes(e.location)));let _=(0,a.useCallback)(async e=>{await f({type:e.type,name:e.name,target:e.target,execute:e.execute,endpoint:e.endpoint,method:e.method,params:e.params,confirmText:e.confirmText,successMessage:e.successMessage,errorMessage:e.errorMessage,refreshAfter:e.refreshAfter,toast:e.toast})},[f]);if(e.visible&&!h||g.length===0)return null;if((e.display||`inline`)===`dropdown`){let n=pc(e.icon);return(0,o.jsxs)(mn,{children:[(0,o.jsx)(hn,{asChild:!0,children:(0,o.jsxs)(W,{type:`button`,variant:e.variant||`outline`,size:e.size===`md`?`default`:e.size||`default`,className:B(e.className,t),disabled:p,"data-obj-id":s,"data-obj-type":l,style:u,children:[p&&(0,o.jsx)(c.Loader2,{className:`mr-2 h-4 w-4 animate-spin`}),!p&&n&&(0,o.jsx)(n,{className:`mr-2 h-4 w-4`}),e.label||`Actions`,(0,o.jsx)(c.ChevronDown,{className:`ml-2 h-3 w-3 opacity-50`})]})}),(0,o.jsx)(Sn,{align:`end`,children:g.map((e,t)=>{let n=pc(e.icon),r=e.tags?.includes(`separator-before`)&&t>0;return(0,o.jsxs)(a.default.Fragment,{children:[r&&(0,o.jsx)(Dn,{}),(0,o.jsxs)(Cn,{onSelect:async t=>{t.preventDefault(),m(!0);try{await _(e)}finally{m(!1)}},className:B(e.variant===`destructive`&&`text-destructive focus:text-destructive`,e.className),children:[n&&(0,o.jsx)(n,{className:`mr-2 h-4 w-4`}),(0,o.jsx)(`span`,{children:e.label||e.name})]})]},e.name||t)})})]})}return(0,o.jsx)(`div`,{ref:r,className:B(`flex items-center gap-2`,e.className,t),...d,"data-obj-id":s,"data-obj-type":l,style:u,children:g.map(t=>(0,o.jsx)(yc,{action:t,variant:e.variant,size:e.size,onExecute:_},t.name))})});bc.displayName=`ActionGroupRenderer`,t.ComponentRegistry.register(`action:group`,bc,{namespace:`action`,label:`Action Group`,inputs:[{name:`name`,type:`string`,label:`Group Name`},{name:`label`,type:`string`,label:`Label`},{name:`icon`,type:`string`,label:`Icon`},{name:`actions`,type:`object`,label:`Actions`},{name:`display`,type:`enum`,label:`Display Mode`,enum:[`inline`,`dropdown`],defaultValue:`inline`},{name:`variant`,type:`enum`,label:`Variant`,enum:[`default`,`secondary`,`outline`,`ghost`],defaultValue:`outline`},{name:`size`,type:`enum`,label:`Size`,enum:[`sm`,`md`,`lg`],defaultValue:`sm`},{name:`className`,type:`string`,label:`CSS Class`,advanced:!0}],defaultProps:{display:`inline`,variant:`outline`,size:`sm`,actions:[]}});function xc(){try{let{t:e}=(0,L.useObjectTranslation)(),t=e(`common.actions`);return!t||t===`common.actions`?`Actions`:t}catch{return`Actions`}}var Sc=(0,a.forwardRef)(({schema:e,className:n,...r},s)=>{let c=xc(),{"data-obj-id":l,"data-obj-type":u,style:d,data:f,actions:p,systemActions:m,location:h,maxVisible:g,mobileMaxVisible:_,direction:v,gap:y,variant:b,size:x,visible:S,...C}=r,w=(0,i.useCondition)((0,i.toPredicateInput)(e.visible)),T=ni(),E=(0,a.useMemo)(()=>{let t=e.actions||[],n=e.location?t.filter(t=>!t.locations||t.locations.length===0||t.locations.includes(e.location)):t,r=new Set;return n.filter(e=>e.name?r.has(e.name)?!1:(r.add(e.name),!0):!0)},[e.actions,e.location]),D=(0,a.useMemo)(()=>{let t=e.systemActions||[],n=new Set;return t.filter(e=>e.name?n.has(e.name)?!1:(n.add(e.name),!0):!0)},[e.systemActions]),O=T?e.mobileMaxVisible??1:e.maxVisible??3,{inlineActions:k,overflowActions:A}=(0,a.useMemo)(()=>E.length<=O?{inlineActions:E,overflowActions:[]}:{inlineActions:E.slice(0,O),overflowActions:E.slice(O)},[E,O]),ee=(0,a.useMemo)(()=>{if(D.length===0)return A;if(A.length===0)return D;let[e,...t]=D,n={...e,tags:[...e.tags||[],`separator-before`]};return[...A,n,...t]},[A,D]);if(e.visible&&!w||E.length===0&&D.length===0)return null;let j=e.direction||`horizontal`,te=e.gap||`gap-2`,M=ee.length>0?t.ComponentRegistry.get(`action:menu`):null,N=M?(0,o.jsx)(M,{schema:{type:`action:menu`,actions:ee,variant:e.variant||`ghost`,size:e.size||`sm`}}):null;return(0,o.jsxs)(`div`,{ref:s,className:B(`flex items-center`,j===`vertical`?`flex-col items-stretch`:`flex-row flex-wrap`,te,e.className,n),role:`toolbar`,"aria-label":c,...C,"data-obj-id":l,"data-obj-type":u,style:d,children:[k.map(n=>{let r=n.component||`action:button`,i=t.ComponentRegistry.get(r);return i?(0,o.jsx)(i,{schema:{...n,type:r,actionType:n.type,variant:n.variant||e.variant,size:n.size||e.size},data:f},n.name):null}),ee.length>0&&N]})});Sc.displayName=`ActionBarRenderer`,t.ComponentRegistry.register(`action:bar`,Sc,{namespace:`action`,label:`Action Bar`,inputs:[{name:`actions`,type:`object`,label:`Actions`},{name:`systemActions`,type:`object`,label:`System Actions (always in overflow)`},{name:`location`,type:`enum`,label:`Location`,enum:[`list_toolbar`,`list_item`,`record_header`,`record_more`,`record_related`,`global_nav`]},{name:`maxVisible`,type:`number`,label:`Max Visible Actions`,defaultValue:3},{name:`direction`,type:`enum`,label:`Direction`,enum:[`horizontal`,`vertical`],defaultValue:`horizontal`},{name:`variant`,type:`enum`,label:`Default Variant`,enum:[`default`,`secondary`,`outline`,`ghost`],defaultValue:`outline`},{name:`size`,type:`enum`,label:`Default Size`,enum:[`sm`,`md`,`lg`],defaultValue:`sm`},{name:`className`,type:`string`,label:`CSS Class`,advanced:!0}],defaultProps:{maxVisible:3,direction:`horizontal`,variant:`outline`,size:`sm`,actions:[]}});var Cc=({schema:e,className:t})=>{let n=e.type,r=n.startsWith(`view:`),i=n.startsWith(`widget:`),a=n.startsWith(`field:`);return(0,o.jsxs)(`div`,{className:B(`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),children:[(0,o.jsxs)(`div`,{className:B(`flex items-center gap-2 text-muted-foreground`,a&&`text-sm`),children:[a?(0,o.jsx)(c.Box,{className:`h-4 w-4`}):(0,o.jsx)(c.FileQuestion,{className:`h-8 w-8 mb-2 opacity-50`}),(0,o.jsxs)(`div`,{className:`flex flex-col items-center text-center`,children:[(0,o.jsx)(`span`,{className:`font-mono font-medium text-foreground`,children:n}),!a&&(0,o.jsx)(`span`,{className:`text-xs`,children:`Component Placeholder`})]})]}),e.props&&!a&&(0,o.jsxs)(`div`,{className:`mt-4 w-full text-xs text-muted-foreground bg-background/50 p-2 rounded overflow-hidden`,children:[(0,o.jsx)(`div`,{className:`opacity-70`,children:`Properties:`}),(0,o.jsx)(`pre`,{className:`mt-1 truncate`,children:JSON.stringify(e.props,null,0)})]})]})},wc=`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(`.`);function Tc(){wc.forEach(e=>{t.ComponentRegistry.get(e)||t.ComponentRegistry.register(e,Cc)})}function Ec(e,t){let n=t?.maxHistory??50,[r,i]=(0,a.useState)({...e}),[o,s]=(0,a.useState)(t?.mode===`create`),c=(0,a.useRef)([]),l=(0,a.useRef)([]),[,u]=(0,a.useState)(0);(0,a.useEffect)(()=>{i({...e}),s(t?.mode===`create`),c.current=[],l.current=[]},[e]);let d=(0,a.useCallback)((e,r)=>{i(t=>(c.current=[...c.current.slice(-(n-1)),t],l.current=[],{...t,[e]:r})),s(!0),u(e=>e+1),t?.onUpdate?.(e,r)},[t?.onUpdate,n]),f=(0,a.useCallback)(()=>{c.current.length!==0&&(i(e=>{let t=[...c.current],n=t.pop();return c.current=t,l.current=[e,...l.current],n}),u(e=>e+1))},[]),p=(0,a.useCallback)(()=>{l.current.length!==0&&(i(e=>{let t=[...l.current],n=t.shift();return l.current=t,c.current=[...c.current,e],n}),u(e=>e+1))},[]);return{draft:r,isDirty:o,updateField:d,discard:(0,a.useCallback)(()=>{i({...e}),s(!1),c.current=[],l.current=[],u(e=>e+1)},[e]),setDraft:i,undo:f,redo:p,canUndo:c.current.length>0,canRedo:l.current.length>0}}function Dc(e){let[t,n]=a.useState({width:0,height:0});return a.useEffect(()=>{let t=e.current;if(!t||typeof ResizeObserver>`u`)return;let r=t.getBoundingClientRect();n(e=>e.width===r.width&&e.height===r.height?e:{width:r.width,height:r.height});let i=new ResizeObserver(e=>{let t=e[0];if(!t)return;let r,i=t.borderBoxSize?.[0];r=i?{width:i.inlineSize,height:i.blockSize}:{width:t.contentRect.width,height:t.contentRect.height},n(e=>e.width===r.width&&e.height===r.height?e:r)});return i.observe(t),()=>i.disconnect()},[e]),t}var Oc=[`completed`,`failed`,`cancelled`,`expired`];function kc(e){return!!e&&Oc.includes(e)}function Ac(e={}){let{dataSource:t,pollIntervalMs:n=1500,maxAttempts:r=600,onComplete:i,onError:o}=e,[s,c]=(0,a.useState)(null),[l,u]=(0,a.useState)(null),[d,f]=(0,a.useState)(!1),p=(0,a.useRef)(null),m=(0,a.useRef)(null),h=(0,a.useRef)(0),g=(0,a.useRef)(!1),_=(0,a.useRef)({onComplete:i,onError:o});_.current={onComplete:i,onError:o};let v=!!t?.createExportJob&&!!t?.getExportJobProgress,y=(0,a.useCallback)(()=>{m.current&&=(clearTimeout(m.current),null)},[]),b=(0,a.useCallback)(()=>{y(),p.current=null,g.current=!1,h.current=0,c(null),u(null),f(!1)},[y]);(0,a.useEffect)(()=>()=>y(),[y]);let x=(0,a.useCallback)(async()=>{if(t?.getExportJobProgress&&!(!p.current||g.current)){if(h.current+=1,h.current>r){let e=Error(`Export job timed out (max attempts exceeded)`);u(e),f(!1),_.current.onError?.(e,s??void 0);return}try{let e=await t.getExportJobProgress(p.current);if(g.current)return;if(c(e),kc(e.status)){if(f(!1),e.status===`completed`)_.current.onComplete?.(e);else{let t=e.error?.message??`Export ${e.status}`,n=Error(t);u(n),_.current.onError?.(n,e)}return}m.current=setTimeout(x,n)}catch(e){if(g.current)return;let t=e instanceof Error?e:Error(String(e));u(t),f(!1),_.current.onError?.(t,s??void 0)}}},[t,r,n,s]),S=(0,a.useCallback)(async(e,r)=>{if(!t?.createExportJob){let e=Error(`DataSource does not implement createExportJob — cannot start async export.`);return u(e),_.current.onError?.(e),null}y(),g.current=!1,h.current=0,u(null),c(null),f(!0);try{let i=await t.createExportJob(e,r);if(p.current=i.jobId,c({jobId:i.jobId,status:i.status,processedRecords:0,totalRecords:i.estimatedRecords,percentComplete:0}),kc(i.status)){if(f(!1),i.status===`completed`&&t.getExportJobProgress)try{let e=await t.getExportJobProgress(i.jobId);c(e),_.current.onComplete?.(e)}catch{}return i.jobId}return m.current=setTimeout(x,n),i.jobId}catch(e){let t=e instanceof Error?e:Error(String(e));return u(t),f(!1),_.current.onError?.(t),null}},[t,y,x,n]),C=(0,a.useCallback)(async()=>{if(p.current){if(g.current=!0,y(),f(!1),t?.cancelExportJob)try{await t.cancelExportJob(p.current)}catch{}c(e=>e&&{...e,status:`cancelled`})}},[t,y]),w=(0,a.useCallback)(async()=>{if(!p.current)return null;if(t?.getExportJobDownloadUrl)try{return await t.getExportJobDownloadUrl(p.current)}catch{}return s?.downloadUrl??null},[t,s]);return{isRunning:d,progress:s,error:l,isSupported:v,start:S,cancel:C,getDownloadUrl:w,download:(0,a.useCallback)(async e=>{let t=await w();if(!t)return!1;let n=document.createElement(`a`);return n.href=t,e&&(n.download=e),n.rel=`noopener`,document.body.appendChild(n),n.click(),n.remove(),!0},[w]),reset:b}}function jc({schema:e}){return e?(0,o.jsx)(`pre`,{className:`text-[11px] leading-relaxed font-mono overflow-auto max-h-[60vh] whitespace-pre-wrap break-all`,children:JSON.stringify(e,null,2)}):(0,o.jsx)(`p`,{className:`text-xs text-muted-foreground italic`,children:`No schema available`})}function Mc({dataContext:e}){return e?(0,o.jsx)(`pre`,{className:`text-[11px] leading-relaxed font-mono overflow-auto max-h-[60vh] whitespace-pre-wrap break-all`,children:JSON.stringify(e,null,2)}):(0,o.jsx)(`p`,{className:`text-xs text-muted-foreground italic`,children:`No data context available`})}function Nc(){let e=(0,a.useMemo)(()=>{try{return t.ComponentRegistry.getAllTypes()}catch{return[]}},[]);return e.length===0?(0,o.jsx)(`p`,{className:`text-xs text-muted-foreground italic`,children:`No registered components`}):(0,o.jsxs)(`div`,{className:`space-y-1 max-h-[60vh] overflow-auto`,children:[e.map(e=>(0,o.jsxs)(`div`,{className:`flex items-center gap-2 px-2 py-1 rounded text-xs font-mono bg-muted/30`,children:[(0,o.jsx)(`span`,{className:`inline-block w-2 h-2 rounded-full bg-green-500 shrink-0`}),e]},e)),(0,o.jsxs)(`p`,{className:`text-[10px] text-muted-foreground mt-2`,children:[e.length,` component`,e.length===1?``:`s`,` registered`]})]})}function Pc({flags:e}){return e?(0,o.jsx)(`pre`,{className:`text-[11px] leading-relaxed font-mono overflow-auto max-h-[60vh] whitespace-pre-wrap break-all`,children:JSON.stringify(e,null,2)}):(0,o.jsx)(`p`,{className:`text-xs text-muted-foreground italic`,children:`No debug flags`})}function Fc(e){let n=t.DebugCollector.getInstance(),[r,i]=(0,a.useState)(()=>n.getEntries(e));return a.default.useEffect(()=>(i(n.getEntries(e)),n.subscribe(()=>{i(n.getEntries(e))})),[n,e]),r}function Ic(){let e=Fc(`perf`).map(e=>e.data);return e.length===0?(0,o.jsx)(`p`,{className:`text-xs text-muted-foreground italic`,children:`No performance data collected yet`}):(0,o.jsxs)(`div`,{className:`space-y-1 max-h-[60vh] overflow-auto`,children:[e.map((e,t)=>(0,o.jsxs)(`div`,{className:B(`flex items-center justify-between px-2 py-1 rounded text-xs font-mono`,e.durationMs>16?`bg-red-50 text-red-700`:`bg-muted/30`),children:[(0,o.jsxs)(`span`,{className:`truncate mr-2`,children:[e.type,e.id?`:${e.id}`:``]}),(0,o.jsxs)(`span`,{className:`shrink-0 tabular-nums`,children:[e.durationMs.toFixed(2),`ms`]})]},t)),(0,o.jsxs)(`p`,{className:`text-[10px] text-muted-foreground mt-2`,children:[e.length,` render`,e.length===1?``:`s`,` tracked`]})]})}function Lc(){let e=Fc(`expr`).map(e=>e.data);return e.length===0?(0,o.jsx)(`p`,{className:`text-xs text-muted-foreground italic`,children:`No expression evaluations tracked yet`}):(0,o.jsxs)(`div`,{className:`space-y-1.5 max-h-[60vh] overflow-auto`,children:[e.map((e,t)=>(0,o.jsxs)(`div`,{className:`px-2 py-1.5 rounded bg-muted/30 text-xs font-mono`,children:[(0,o.jsx)(`div`,{className:`text-muted-foreground truncate`,children:e.expression}),(0,o.jsxs)(`div`,{className:`mt-0.5`,children:[`→ `,JSON.stringify(e.result)]})]},t)),(0,o.jsxs)(`p`,{className:`text-[10px] text-muted-foreground mt-2`,children:[e.length,` evaluation`,e.length===1?``:`s`,` tracked`]})]})}function Rc(){let e=Fc(`event`).map(e=>e.data);return e.length===0?(0,o.jsx)(`p`,{className:`text-xs text-muted-foreground italic`,children:`No events captured yet`}):(0,o.jsxs)(`div`,{className:`space-y-1.5 max-h-[60vh] overflow-auto`,children:[e.map((e,t)=>(0,o.jsxs)(`div`,{className:`px-2 py-1.5 rounded bg-muted/30 text-xs font-mono`,children:[(0,o.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,o.jsx)(`span`,{className:`font-semibold`,children:e.action}),(0,o.jsx)(`span`,{className:`text-[10px] text-muted-foreground tabular-nums`,children:new Date(e.timestamp).toLocaleTimeString()})]}),e.payload!==void 0&&(0,o.jsx)(`pre`,{className:`mt-0.5 text-[10px] text-muted-foreground truncate`,children:JSON.stringify(e.payload)})]},t)),(0,o.jsxs)(`p`,{className:`text-[10px] text-muted-foreground mt-2`,children:[e.length,` event`,e.length===1?``:`s`,` captured`]})]})}function zc({open:e,onClose:t,flags:n,schema:r,dataContext:i,extraTabs:s=[],className:c}){let l=(0,a.useMemo)(()=>[{id:`schema`,label:`Schema`,render:()=>(0,o.jsx)(jc,{schema:r})},{id:`data`,label:`Data`,render:()=>(0,o.jsx)(Mc,{dataContext:i})},{id:`perf`,label:`Perf`,render:()=>(0,o.jsx)(Ic,{})},{id:`expr`,label:`Expr`,render:()=>(0,o.jsx)(Lc,{})},{id:`events`,label:`Events`,render:()=>(0,o.jsx)(Rc,{})},{id:`registry`,label:`Registry`,render:()=>(0,o.jsx)(Nc,{})},{id:`flags`,label:`Flags`,render:()=>(0,o.jsx)(Pc,{flags:n})}],[r,i,n]),u=(0,a.useMemo)(()=>[...l,...s],[l,s]),[d,f]=(0,a.useState)(u[0]?.id??`schema`),p=u.find(e=>e.id===d)??u[0],m=(0,a.useCallback)(e=>{f(e)},[]);return e?(0,o.jsxs)(`div`,{className:B(`fixed bottom-4 right-4 z-[9999] w-[420px] max-w-[95vw] rounded-lg border bg-background shadow-2xl`,`flex flex-col overflow-hidden`,c),"data-testid":`debug-panel`,role:`dialog`,"aria-label":`Developer Debug Panel`,children:[(0,o.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 border-b bg-muted/30`,children:[(0,o.jsx)(`span`,{className:`text-xs font-semibold uppercase tracking-wider text-muted-foreground`,children:`🛠 Debug Panel`}),(0,o.jsx)(`button`,{onClick:t,className:`text-muted-foreground hover:text-foreground text-sm leading-none px-1`,"aria-label":`Close debug panel`,"data-testid":`debug-panel-close`,children:`✕`})]}),(0,o.jsx)(`div`,{className:`flex border-b overflow-x-auto`,role:`tablist`,children:u.map(e=>(0,o.jsxs)(`button`,{role:`tab`,"aria-selected":e.id===p?.id,onClick:()=>m(e.id),className:B(`px-3 py-1.5 text-xs font-medium whitespace-nowrap transition-colors`,e.id===p?.id?`border-b-2 border-primary text-foreground`:`text-muted-foreground hover:text-foreground`),"data-testid":`debug-tab-${e.id}`,children:[e.icon&&(0,o.jsx)(`span`,{className:`mr-1`,children:e.icon}),e.label]},e.id))}),(0,o.jsx)(`div`,{className:`p-3 overflow-auto max-h-[50vh]`,"data-testid":`debug-panel-content`,children:p?.render()})]}):null}function Bc(){return!0}e.Accordion=H,e.AccordionContent=be,e.AccordionItem=ve,e.AccordionTrigger=ye,e.ActionParamDialog=Bo,e.Alert=Me,e.AlertDescription=Pe,e.AlertDialog=xe,e.AlertDialogAction=ke,e.AlertDialogCancel=Ae,e.AlertDialogContent=Te,e.AlertDialogDescription=Oe,e.AlertDialogFooter=G,e.AlertDialogHeader=Ee,e.AlertDialogOverlay=we,e.AlertDialogPortal=Ce,e.AlertDialogTitle=De,e.AlertDialogTrigger=Se,e.AlertTitle=Ne,e.AspectRatio=Fe,e.Avatar=Ie,e.AvatarFallback=Re,e.AvatarImage=Le,e.Badge=Be,e.Breadcrumb=Ve,e.BreadcrumbEllipsis=qe,e.BreadcrumbItem=Ue,e.BreadcrumbLink=We,e.BreadcrumbList=He,e.BreadcrumbPage=Ge,e.BreadcrumbSeparator=Ke,e.Button=W,e.ButtonGroup=ja,e.ButtonGroupSeparator=Na,e.ButtonGroupText=Ma,e.Calendar=Je,e.CalendarDayButton=Ye,e.Card=Xe,e.CardContent=et,e.CardDescription=$e,e.CardFooter=tt,e.CardHeader=Ze,e.CardTitle=Qe,e.Carousel=it,e.CarouselContent=at,e.CarouselItem=ot,e.CarouselNext=ct,e.CarouselPrevious=st,e.ChartContainer=ft,e.ChartLegend=gt,e.ChartLegendContent=_t,e.ChartSkeleton=Go,e.ChartStyle=pt,e.ChartTooltip=mt,e.ChartTooltipContent=ht,e.Checkbox=yt,e.Collapsible=bt,e.CollapsibleContent=St,e.CollapsibleTrigger=xt,e.Combobox=Pa,e.Command=Nt,e.CommandDialog=Pt,e.CommandEmpty=Lt,e.CommandGroup=Rt,e.CommandInput=Ft,e.CommandItem=Bt,e.CommandList=It,e.CommandSeparator=zt,e.CommandShortcut=Vt,e.ConfigFieldRenderer=$a,e.ConfigPanelRenderer=to,e.ConfigRow=Fa,e.ContextMenu=Ht,e.ContextMenuCheckboxItem=Qt,e.ContextMenuContent=Xt,e.ContextMenuGroup=Wt,e.ContextMenuItem=Zt,e.ContextMenuLabel=en,e.ContextMenuPortal=Gt,e.ContextMenuRadioGroup=qt,e.ContextMenuRadioItem=$t,e.ContextMenuSeparator=tn,e.ContextMenuShortcut=nn,e.ContextMenuSub=Kt,e.ContextMenuSubContent=Yt,e.ContextMenuSubTrigger=Jt,e.ContextMenuTrigger=Ut,e.DataEmptyState=ts,e.DataErrorState=ns,e.DataLoadingState=es,e.DatePicker=no,e.DebugPanel=zc,e.Dialog=Ct,e.DialogClose=Et,e.DialogContent=Ot,e.DialogDescription=Mt,e.DialogFooter=At,e.DialogHeader=kt,e.DialogOverlay=Dt,e.DialogPortal=Tt,e.DialogTitle=jt,e.DialogTrigger=wt,e.Drawer=rn,e.DrawerClose=sn,e.DrawerContent=ln,e.DrawerDescription=pn,e.DrawerFooter=dn,e.DrawerHeader=un,e.DrawerOverlay=cn,e.DrawerPortal=on,e.DrawerTitle=fn,e.DrawerTrigger=an,e.DropdownMenu=mn,e.DropdownMenuCheckboxItem=wn,e.DropdownMenuContent=Sn,e.DropdownMenuGroup=gn,e.DropdownMenuItem=Cn,e.DropdownMenuLabel=En,e.DropdownMenuPortal=_n,e.DropdownMenuRadioGroup=yn,e.DropdownMenuRadioItem=Tn,e.DropdownMenuSeparator=Dn,e.DropdownMenuShortcut=On,e.DropdownMenuSub=vn,e.DropdownMenuSubContent=xn,e.DropdownMenuSubTrigger=bn,e.DropdownMenuTrigger=hn,e.Empty=io,e.EmptyContent=uo,e.EmptyDescription=lo,e.EmptyHeader=ao,e.EmptyMedia=so,e.EmptyTitle=co,e.EmptyValue=fo,e.ExportProgressDialog=as,e.Field=mo,e.FilterBuilder=Xa,e.Form=An,e.FormControl=Ln,e.FormDescription=Rn,e.FormField=Mn,e.FormItem=Fn,e.FormLabel=In,e.FormMessage=zn,e.FormSkeleton=Uo,e.GridSkeleton=Vo,e.GroupingEditor=zo,e.HoverCard=Bn,e.HoverCardContent=Hn,e.HoverCardTrigger=Vn,e.Input=q,e.InputGroup=ho,e.InputOTP=Un,e.InputOTPGroup=Wn,e.InputOTPSeparator=Kn,e.InputOTPSlot=Gn,e.Item=yo,e.ItemActions=To,e.ItemContent=So,e.ItemDescription=wo,e.ItemFooter=Do,e.ItemGroup=go,e.ItemHeader=Eo,e.ItemMedia=xo,e.ItemSeparator=_o,e.ItemTitle=Co,e.KanbanSkeleton=Ho,e.Kbd=Oo,e.KbdGroup=ko,e.Label=K,e.LazyIcon=Ps,e.ListSkeleton=Wo,e.LookupValuePicker=Za,e.Menubar=Qn,e.MenubarCheckboxItem=ir,e.MenubarContent=nr,e.MenubarGroup=Jn,e.MenubarItem=rr,e.MenubarLabel=or,e.MenubarMenu=qn,e.MenubarPortal=Yn,e.MenubarRadioGroup=Xn,e.MenubarRadioItem=ar,e.MenubarSeparator=sr,e.MenubarShortcut=cr,e.MenubarSub=Zn,e.MenubarSubContent=tr,e.MenubarSubTrigger=er,e.MenubarTrigger=$n,e.MobileDialogContent=rs,e.NativeSelect=Ao,e.NavigationMenu=lr,e.NavigationMenuContent=mr,e.NavigationMenuIndicator=_r,e.NavigationMenuItem=dr,e.NavigationMenuLink=hr,e.NavigationMenuList=ur,e.NavigationMenuTrigger=pr,e.NavigationMenuViewport=gr,e.NavigationOverlay=Io,e.Pagination=vr,e.PaginationContent=yr,e.PaginationEllipsis=wr,e.PaginationItem=br,e.PaginationLink=xr,e.PaginationNext=Cr,e.PaginationPrevious=Sr,e.Popover=Tr,e.PopoverContent=Dr,e.PopoverTrigger=Er,e.Progress=Or,e.RadioGroup=kr,e.RadioGroupItem=Ar,e.RecordTitleChip=Xo,e.RefreshIndicator=$o,e.RelatedCountStore=Js,e.ResizableHandle=Nr,e.ResizablePanel=Mr,e.ResizablePanelGroup=jr,e.ScrollArea=Pr,e.ScrollBar=Fr,e.SectionHeader=eo,e.Select=Ir,e.SelectContent=Y,e.SelectGroup=Lr,e.SelectItem=X,e.SelectLabel=Vr,e.SelectScrollDownButton=Br,e.SelectScrollUpButton=zr,e.SelectSeparator=Hr,e.SelectTrigger=J,e.SelectValue=Rr,e.Separator=Ur,e.Sheet=Wr,e.SheetClose=Kr,e.SheetContent=Xr,e.SheetDescription=ei,e.SheetFooter=Qr,e.SheetHeader=Zr,e.SheetOverlay=Jr,e.SheetPortal=qr,e.SheetTitle=$r,e.SheetTrigger=Gr,e.Sidebar=gi,e.SidebarContent=wi,e.SidebarFooter=Si,e.SidebarGroup=Ti,e.SidebarGroupAction=Di,e.SidebarGroupContent=Oi,e.SidebarGroupLabel=Ei,e.SidebarHeader=xi,e.SidebarInput=bi,e.SidebarInset=yi,e.SidebarMenu=ki,e.SidebarMenuAction=Ni,e.SidebarMenuBadge=Pi,e.SidebarMenuButton=Mi,e.SidebarMenuItem=Ai,e.SidebarMenuSkeleton=Fi,e.SidebarMenuSub=Ii,e.SidebarMenuSubButton=Ri,e.SidebarMenuSubItem=Li,e.SidebarProvider=hi,e.SidebarRail=vi,e.SidebarSeparator=Ci,e.SidebarTrigger=_i,e.Skeleton=Z,e.Slider=zi,e.SortBuilder=Qa,e.Spinner=Lo,e.Switch=Vi,e.Table=Hi,e.TableBody=Wi,e.TableCaption=Yi,e.TableCell=Ji,e.TableFooter=Gi,e.TableHead=qi,e.TableHeader=Ui,e.TableRow=Ki,e.Tabs=Xi,e.TabsContent=$i,e.TabsList=Zi,e.TabsTrigger=Qi,e.Textarea=ea,e.Toaster=Bi,e.Toggle=na,e.ToggleGroup=ia,e.ToggleGroupItem=aa,e.Tooltip=ii,e.TooltipContent=oi,e.TooltipProvider=ri,e.TooltipTrigger=ai,e.TypographyBlockquote=da,e.TypographyH1=oa,e.TypographyH2=sa,e.TypographyH3=ca,e.TypographyH4=la,e.TypographyInlineCode=pa,e.TypographyLarge=ha,e.TypographyLead=ma,e.TypographyList=fa,e.TypographyMuted=_a,e.TypographyP=ua,e.TypographySmall=ga,e.ViewSkeleton=Ko,e.badgeVariants=ze,e.buttonGroupVariants=Aa,e.buttonVariants=U,e.cn=B,Object.defineProperty(e,`cva`,{enumerable:!0,get:function(){return d.cva}}),e.getLazyIcon=Ns,e.initializeComponents=Bc,e.navigationMenuTriggerStyle=fr,e.registerPlaceholders=Tc,e.renderChildren=V,e.toKebabIconName=ks,e.toggleVariants=ta,e.useConfigDraft=Ec,e.useExportJob=Ac,e.useFormField=Nn,e.useIsMobile=ni,e.useRelatedCount=qs,e.useResizeObserver=Dc,e.useSidebar=mi});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@object-ui/components",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.1.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "Standard UI component library for Object UI, built with Shadcn UI + Tailwind CSS",
|
|
@@ -69,10 +69,10 @@
|
|
|
69
69
|
"tailwind-merge": "^3.6.0",
|
|
70
70
|
"tailwindcss-animate": "^1.0.7",
|
|
71
71
|
"vaul": "^1.1.2",
|
|
72
|
-
"@object-ui/core": "5.
|
|
73
|
-
"@object-ui/i18n": "5.
|
|
74
|
-
"@object-ui/react": "5.
|
|
75
|
-
"@object-ui/types": "5.
|
|
72
|
+
"@object-ui/core": "5.1.1",
|
|
73
|
+
"@object-ui/i18n": "5.1.1",
|
|
74
|
+
"@object-ui/react": "5.1.1",
|
|
75
|
+
"@object-ui/types": "5.1.1"
|
|
76
76
|
},
|
|
77
77
|
"peerDependencies": {
|
|
78
78
|
"react": "^18.0.0 || ^19.0.0",
|