@nadicodeai/ui 12.1.31 → 12.1.33
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/README.md +6 -0
- package/dist/assets/brand/aionlabs.svg +1 -1
- package/dist/assets/brand/airtable.svg +1 -1
- package/dist/assets/brand/apple.svg +1 -1
- package/dist/assets/brand/arcee.svg +1 -1
- package/dist/assets/brand/asana.svg +1 -1
- package/dist/assets/brand/atlassian.svg +1 -1
- package/dist/assets/brand/baidu.svg +1 -1
- package/dist/assets/brand/bytedance.svg +1 -1
- package/dist/assets/brand/claude.svg +1 -1
- package/dist/assets/brand/cohere.svg +1 -1
- package/dist/assets/brand/datadog.svg +1 -1
- package/dist/assets/brand/deepseek.svg +1 -1
- package/dist/assets/brand/discord.svg +1 -1
- package/dist/assets/brand/dolphin.svg +1 -1
- package/dist/assets/brand/dotsstudio.svg +1 -1
- package/dist/assets/brand/figma.svg +1 -1
- package/dist/assets/brand/gemini.svg +1 -1
- package/dist/assets/brand/github.svg +1 -1
- package/dist/assets/brand/gitlab.svg +1 -1
- package/dist/assets/brand/gmail.svg +1 -1
- package/dist/assets/brand/google-calendar.svg +1 -1
- package/dist/assets/brand/google-drive.svg +1 -1
- package/dist/assets/brand/grok.svg +1 -1
- package/dist/assets/brand/huggingface.svg +1 -1
- package/dist/assets/brand/ibm.svg +1 -1
- package/dist/assets/brand/inception.svg +1 -1
- package/dist/assets/brand/inference.svg +1 -1
- package/dist/assets/brand/intercom.svg +1 -1
- package/dist/assets/brand/jira.svg +1 -1
- package/dist/assets/brand/kwaipilot.svg +1 -1
- package/dist/assets/brand/linear.svg +1 -1
- package/dist/assets/brand/linux.svg +1 -1
- package/dist/assets/brand/liquid.svg +1 -1
- package/dist/assets/brand/longcat.svg +1 -1
- package/dist/assets/brand/mattermost.svg +1 -1
- package/dist/assets/brand/meta.svg +1 -1
- package/dist/assets/brand/microsoft.svg +1 -1
- package/dist/assets/brand/minimax.svg +1 -1
- package/dist/assets/brand/mistral.svg +1 -1
- package/dist/assets/brand/moonshot.svg +1 -1
- package/dist/assets/brand/morph.svg +1 -1
- package/dist/assets/brand/n8n.svg +1 -1
- package/dist/assets/brand/netlify.svg +1 -1
- package/dist/assets/brand/nexagi.svg +1 -1
- package/dist/assets/brand/notion.svg +1 -1
- package/dist/assets/brand/nousresearch.svg +1 -1
- package/dist/assets/brand/nova.svg +1 -1
- package/dist/assets/brand/nvidia.svg +1 -1
- package/dist/assets/brand/openai.svg +1 -1
- package/dist/assets/brand/openrouter.svg +1 -1
- package/dist/assets/brand/paypal.svg +1 -1
- package/dist/assets/brand/perceptron.svg +1 -1
- package/dist/assets/brand/perplexity.svg +1 -1
- package/dist/assets/brand/poolside.svg +1 -1
- package/dist/assets/brand/postgresql.svg +1 -1
- package/dist/assets/brand/qwen.svg +1 -1
- package/dist/assets/brand/reka.svg +1 -1
- package/dist/assets/brand/relace.svg +1 -1
- package/dist/assets/brand/sakana.svg +1 -1
- package/dist/assets/brand/sentry.svg +1 -1
- package/dist/assets/brand/signal.svg +1 -1
- package/dist/assets/brand/slack.svg +1 -1
- package/dist/assets/brand/spotify.svg +1 -1
- package/dist/assets/brand/square.svg +1 -1
- package/dist/assets/brand/stepfun.svg +1 -1
- package/dist/assets/brand/stripe.svg +1 -1
- package/dist/assets/brand/supabase.svg +1 -1
- package/dist/assets/brand/telegram.svg +1 -1
- package/dist/assets/brand/tencent.svg +1 -1
- package/dist/assets/brand/the-drummer.svg +1 -1
- package/dist/assets/brand/todoist.svg +1 -1
- package/dist/assets/brand/unreal-engine.svg +1 -1
- package/dist/assets/brand/upstage.svg +1 -1
- package/dist/assets/brand/vercel.svg +1 -1
- package/dist/assets/brand/webflow.svg +1 -1
- package/dist/assets/brand/whatsapp.svg +1 -1
- package/dist/assets/brand/windows.svg +1 -1
- package/dist/assets/brand/xiaomimimo.svg +1 -1
- package/dist/assets/brand/youtube.svg +1 -1
- package/dist/assets/brand/yuanbao.svg +1 -1
- package/dist/assets/brand/zai.svg +1 -1
- package/dist/assets/brand/zapier.svg +1 -1
- package/dist/components/agent-card.d.ts +2 -1
- package/dist/components/agent-card.d.ts.map +1 -1
- package/dist/components/agent-card.js +2 -1
- package/dist/components/app-mark-frame.d.ts +34 -0
- package/dist/components/app-mark-frame.d.ts.map +1 -0
- package/dist/components/app-mark-frame.js +37 -0
- package/dist/components/app-mark-lazy/server.d.ts +4 -0
- package/dist/components/app-mark-lazy/server.d.ts.map +1 -0
- package/dist/components/app-mark-lazy/server.js +8 -0
- package/dist/components/app-mark-lazy.d.ts +16 -0
- package/dist/components/app-mark-lazy.d.ts.map +1 -0
- package/dist/components/app-mark-lazy.js +84 -0
- package/dist/components/app-mark.d.ts +6 -15
- package/dist/components/app-mark.d.ts.map +1 -1
- package/dist/components/app-mark.js +7 -21
- package/dist/components/brand-icons/aionlabs.d.ts.map +1 -1
- package/dist/components/brand-icons/aionlabs.js +1 -1
- package/dist/components/brand-icons/airtable.js +1 -1
- package/dist/components/brand-icons/apple.js +1 -1
- package/dist/components/brand-icons/arcee.js +1 -1
- package/dist/components/brand-icons/asana.js +1 -1
- package/dist/components/brand-icons/atlassian.js +1 -1
- package/dist/components/brand-icons/baidu.js +1 -1
- package/dist/components/brand-icons/bytedance.js +1 -1
- package/dist/components/brand-icons/claude.js +1 -1
- package/dist/components/brand-icons/cohere.js +1 -1
- package/dist/components/brand-icons/datadog.js +1 -1
- package/dist/components/brand-icons/deepseek.js +1 -1
- package/dist/components/brand-icons/discord.js +1 -1
- package/dist/components/brand-icons/dolphin.js +1 -1
- package/dist/components/brand-icons/dotsstudio.js +1 -1
- package/dist/components/brand-icons/figma.d.ts.map +1 -1
- package/dist/components/brand-icons/figma.js +1 -1
- package/dist/components/brand-icons/gemini.js +1 -1
- package/dist/components/brand-icons/github.js +1 -1
- package/dist/components/brand-icons/gitlab.js +1 -1
- package/dist/components/brand-icons/gmail.js +1 -1
- package/dist/components/brand-icons/google-calendar.js +1 -1
- package/dist/components/brand-icons/google-drive.js +1 -1
- package/dist/components/brand-icons/grok.js +1 -1
- package/dist/components/brand-icons/huggingface.js +1 -1
- package/dist/components/brand-icons/ibm.js +1 -1
- package/dist/components/brand-icons/inception.js +1 -1
- package/dist/components/brand-icons/inference.js +1 -1
- package/dist/components/brand-icons/intercom.js +1 -1
- package/dist/components/brand-icons/jira.js +1 -1
- package/dist/components/brand-icons/kwaipilot.js +1 -1
- package/dist/components/brand-icons/linear.js +1 -1
- package/dist/components/brand-icons/linux.js +1 -1
- package/dist/components/brand-icons/liquid.js +1 -1
- package/dist/components/brand-icons/longcat.js +1 -1
- package/dist/components/brand-icons/mattermost.js +1 -1
- package/dist/components/brand-icons/meta.js +1 -1
- package/dist/components/brand-icons/microsoft.js +1 -1
- package/dist/components/brand-icons/minimax.js +1 -1
- package/dist/components/brand-icons/mistral.d.ts.map +1 -1
- package/dist/components/brand-icons/mistral.js +1 -1
- package/dist/components/brand-icons/moonshot.js +1 -1
- package/dist/components/brand-icons/morph.js +1 -1
- package/dist/components/brand-icons/n8n.js +1 -1
- package/dist/components/brand-icons/netlify.js +1 -1
- package/dist/components/brand-icons/nexagi.js +1 -1
- package/dist/components/brand-icons/notion.js +1 -1
- package/dist/components/brand-icons/nousresearch.js +1 -1
- package/dist/components/brand-icons/nova.js +1 -1
- package/dist/components/brand-icons/nvidia.js +1 -1
- package/dist/components/brand-icons/openai.js +1 -1
- package/dist/components/brand-icons/openrouter.js +1 -1
- package/dist/components/brand-icons/paypal.js +1 -1
- package/dist/components/brand-icons/perceptron.js +1 -1
- package/dist/components/brand-icons/perplexity.js +1 -1
- package/dist/components/brand-icons/poolside.js +1 -1
- package/dist/components/brand-icons/postgresql.js +1 -1
- package/dist/components/brand-icons/qwen.js +1 -1
- package/dist/components/brand-icons/reka.js +1 -1
- package/dist/components/brand-icons/relace.js +1 -1
- package/dist/components/brand-icons/sakana.js +1 -1
- package/dist/components/brand-icons/sentry.js +1 -1
- package/dist/components/brand-icons/signal.js +1 -1
- package/dist/components/brand-icons/slack.js +1 -1
- package/dist/components/brand-icons/spotify.js +1 -1
- package/dist/components/brand-icons/square.js +1 -1
- package/dist/components/brand-icons/stepfun.js +1 -1
- package/dist/components/brand-icons/stripe.js +1 -1
- package/dist/components/brand-icons/supabase.js +1 -1
- package/dist/components/brand-icons/telegram.js +1 -1
- package/dist/components/brand-icons/tencent.js +1 -1
- package/dist/components/brand-icons/the-drummer.js +2 -2
- package/dist/components/brand-icons/todoist.js +1 -1
- package/dist/components/brand-icons/unreal-engine.js +1 -1
- package/dist/components/brand-icons/upstage.js +1 -1
- package/dist/components/brand-icons/vercel.js +1 -1
- package/dist/components/brand-icons/webflow.js +1 -1
- package/dist/components/brand-icons/whatsapp.js +1 -1
- package/dist/components/brand-icons/windows.js +1 -1
- package/dist/components/brand-icons/xiaomimimo.js +1 -1
- package/dist/components/brand-icons/youtube.js +1 -1
- package/dist/components/brand-icons/yuanbao.js +1 -1
- package/dist/components/brand-icons/zai.js +1 -1
- package/dist/components/brand-icons/zapier.js +1 -1
- package/dist/components/chart-date-range-control.d.ts.map +1 -1
- package/dist/components/chart-date-range-control.js +7 -2
- package/dist/components/item.d.ts +10 -1
- package/dist/components/item.d.ts.map +1 -1
- package/dist/components/item.js +13 -3
- package/dist/components/model-identity.d.ts +4 -6
- package/dist/components/model-identity.d.ts.map +1 -1
- package/dist/components/model-identity.js +14 -5
- package/dist/components/model-mark.d.ts +1 -1
- package/dist/components/model-mark.d.ts.map +1 -1
- package/dist/components/model-mark.js +1 -1
- package/dist/components/object-workspace.d.ts +2 -1
- package/dist/components/object-workspace.d.ts.map +1 -1
- package/dist/components/object-workspace.js +1 -1
- package/dist/components/table-card.d.ts +14 -2
- package/dist/components/table-card.d.ts.map +1 -1
- package/dist/components/table-card.js +9 -3
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/internal/agent-orb.d.ts.map +1 -1
- package/dist/internal/agent-orb.js +21 -5
- package/package.json +8 -2
|
@@ -9,12 +9,21 @@ export function modelAuthor(model) {
|
|
|
9
9
|
const separator = model.indexOf("/");
|
|
10
10
|
return separator === -1 ? "" : model.slice(0, separator);
|
|
11
11
|
}
|
|
12
|
+
const MODEL_NAMES = Object.freeze({
|
|
13
|
+
"anthropic/claude-opus-5": "Claude Opus 5",
|
|
14
|
+
"anthropic/claude-sonnet-5": "Claude Sonnet 5",
|
|
15
|
+
"google/gemini-3.1-flash-lite": "Gemini 3.1 Flash Lite",
|
|
16
|
+
"openai/gpt-5.6-sol": "GPT-5.6 Sol",
|
|
17
|
+
"x-ai/grok-4.5": "Grok 4.5",
|
|
18
|
+
});
|
|
12
19
|
/**
|
|
13
|
-
* The one name form a model is read by: the
|
|
14
|
-
*
|
|
15
|
-
*
|
|
20
|
+
* The one name form a model is read by: the maker's own spelling when the
|
|
21
|
+
* table has it, otherwise the id without its maker prefix, since the mark
|
|
22
|
+
* beside it already says who made it and the muted maker repeats it in words.
|
|
16
23
|
*/
|
|
17
24
|
export function modelDisplayName(model) {
|
|
25
|
+
if (Object.hasOwn(MODEL_NAMES, model))
|
|
26
|
+
return MODEL_NAMES[model];
|
|
18
27
|
const separator = model.indexOf("/");
|
|
19
28
|
return separator === -1 ? model : model.slice(separator + 1);
|
|
20
29
|
}
|
|
@@ -24,6 +33,6 @@ export function modelDisplayName(model) {
|
|
|
24
33
|
* name form and the mark all belong here, so a ranked list, a routing table and
|
|
25
34
|
* a settings row cannot drift into three readings of the same model.
|
|
26
35
|
*/
|
|
27
|
-
export function ModelIdentity({
|
|
28
|
-
return (_jsx(ModelMark, { author: modelAuthor(model), name:
|
|
36
|
+
export function ModelIdentity({ model, markSize, ...props }) {
|
|
37
|
+
return (_jsx(ModelMark, { author: modelAuthor(model), name: modelDisplayName(model), ...(markSize === undefined ? {} : { size: markSize }), ...props }));
|
|
29
38
|
}
|
|
@@ -4,7 +4,7 @@ type ModelMarkProps = Omit<React.ComponentProps<"span">, "children"> & {
|
|
|
4
4
|
author: string;
|
|
5
5
|
/** The model's name. Omitted, the mark renders the maker's logo alone. */
|
|
6
6
|
name?: string;
|
|
7
|
-
/** The tile's box in CSS pixels; the glyph scales with it. Defaults to
|
|
7
|
+
/** The tile's box in CSS pixels; the glyph scales with it. Defaults to 24, the row size. */
|
|
8
8
|
size?: number;
|
|
9
9
|
/**
|
|
10
10
|
* The mark's accessible name. A model named beside it needs none — the text
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-mark.d.ts","sourceRoot":"","sources":["../../src/components/model-mark.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA0J/B,KAAK,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG;IACrE,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,
|
|
1
|
+
{"version":3,"file":"model-mark.d.ts","sourceRoot":"","sources":["../../src/components/model-mark.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA0J/B,KAAK,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG;IACrE,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4FAA4F;IAC5F,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,iBAAS,SAAS,CAAC,EACjB,MAAM,EACN,IAAI,EACJ,IAAsB,EACtB,KAAK,EACL,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,qBAgEhB;AAED,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,YAAY,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -63,7 +63,7 @@ const MODEL_AUTHOR_MARKS = {
|
|
|
63
63
|
xiaomi: identity(XiaomiMimoIcon),
|
|
64
64
|
"z-ai": identity(ZaiIcon),
|
|
65
65
|
};
|
|
66
|
-
const MODEL_MARK_SIZE =
|
|
66
|
+
const MODEL_MARK_SIZE = 24;
|
|
67
67
|
/** The glyph's share of the tile, the ratio the boards' generator derived. */
|
|
68
68
|
const MODEL_MARK_GLYPH_RATIO = 0.62;
|
|
69
69
|
/**
|
|
@@ -14,7 +14,8 @@ export type ObjectIdentitySupportFacts = {
|
|
|
14
14
|
label: string;
|
|
15
15
|
};
|
|
16
16
|
export declare function ObjectIdentity({ visual, title, description, metadata, action, editAction, layout, support, }: {
|
|
17
|
-
|
|
17
|
+
/** The object's picture: an Agent's orb, an app's mark. A skill, which is text, has none. */
|
|
18
|
+
visual?: ReactNode;
|
|
18
19
|
title: ReactNode;
|
|
19
20
|
description?: ReactNode;
|
|
20
21
|
metadata?: ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object-workspace.d.ts","sourceRoot":"","sources":["../../src/components/object-workspace.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,KAAK,EACL,WAAW,EACX,QAAQ,EACR,MAAM,EACN,UAAU,EACV,MAAiB,EACjB,OAAO,GACR,EAAE;IACD,MAAM,EAAE,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"object-workspace.d.ts","sourceRoot":"","sources":["../../src/components/object-workspace.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,KAAK,EACL,WAAW,EACX,QAAQ,EACR,MAAM,EACN,UAAU,EACV,MAAiB,EACjB,OAAO,GACR,EAAE;IACD,6FAA6F;IAC7F,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC9B,OAAO,CAAC,EAAE,0BAA0B,CAAC;CACtC,+BAsCA;AAED,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,UAAU,GACX,EAAE;IACD,OAAO,EAAE,SAAS,CAAC;IACnB,UAAU,EAAE,SAAS,CAAC;CACvB,+BAUA;AAED,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,WAAW,EACX,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,YAAgB,GACjB,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;IACpB,sFAAsF;IACtF,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CAC1B,+BAkBA;AAED,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,OAAmB,GACpB,EAAE;IACD,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CACjC,+BAkCA"}
|
|
@@ -5,7 +5,7 @@ import { ObjectIdentitySupport } from "../internal/object-identity-support.js";
|
|
|
5
5
|
export function ObjectIdentity({ visual, title, description, metadata, action, editAction, layout = "inline", support, }) {
|
|
6
6
|
return (_jsxs(Card, { className: layout === "inline" && support
|
|
7
7
|
? "min-w-0 lg:grid lg:grid-cols-[minmax(0,1fr)_minmax(0,1.25fr)] lg:items-center"
|
|
8
|
-
: "min-w-0", render: _jsx("header", { "data-slot": "object-identity" }), size: "sm", children: [_jsxs(CardHeader, { children: [_jsxs("div", { className: "flex min-w-0 items-center gap-4", children: [_jsx("div", { className: "shrink-0", children: visual }), _jsxs("div", { className: "grid min-w-0 gap-1.5", children: [_jsx(CardTitle, { className: "break-words", children: title }), description ? _jsx(CardDescription, { children: description }) : null, metadata ? (_jsx("div", { className: "flex flex-wrap items-center gap-x-4 gap-y-1 text-xs text-muted-foreground", children: metadata })) : null] })] }), editAction ? _jsx(CardAction, { children: editAction }) : null] }), support || action ? (_jsxs(CardContent, { className: "flex min-w-0 flex-wrap items-start gap-4", children: [support ? (_jsx(ObjectIdentitySupport, { label: support.label, children: _jsx(ObjectFacts, { density: "compact", facts: support.facts }) })) : null, action ? _jsx("div", { className: "min-w-0 flex-1 basis-full", children: action }) : null] })) : null] }));
|
|
8
|
+
: "min-w-0", render: _jsx("header", { "data-slot": "object-identity" }), size: "sm", children: [_jsxs(CardHeader, { children: [_jsxs("div", { className: "flex min-w-0 items-center gap-4", children: [visual ? _jsx("div", { className: "shrink-0", children: visual }) : null, _jsxs("div", { className: "grid min-w-0 gap-1.5", children: [_jsx(CardTitle, { className: "break-words", children: title }), description ? _jsx(CardDescription, { children: description }) : null, metadata ? (_jsx("div", { className: "flex flex-wrap items-center gap-x-4 gap-y-1 text-xs text-muted-foreground", children: metadata })) : null] })] }), editAction ? _jsx(CardAction, { children: editAction }) : null] }), support || action ? (_jsxs(CardContent, { className: "flex min-w-0 flex-wrap items-start gap-4", children: [support ? (_jsx(ObjectIdentitySupport, { label: support.label, children: _jsx(ObjectFacts, { density: "compact", facts: support.facts }) })) : null, action ? _jsx("div", { className: "min-w-0 flex-1 basis-full", children: action }) : null] })) : null] }));
|
|
9
9
|
}
|
|
10
10
|
export function ObjectOverview({ primary, supporting, }) {
|
|
11
11
|
return (_jsxs("div", { "data-slot": "object-overview", className: "grid min-w-0 items-start gap-6 xl:grid-cols-[minmax(0,1.6fr)_minmax(0,1fr)]", children: [_jsx("div", { className: "grid min-w-0 gap-6", children: primary }), _jsx("div", { className: "grid min-w-0 gap-6", children: supporting })] }));
|
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { type CardSurface } from "./card.js";
|
|
3
|
-
/**
|
|
4
|
-
|
|
3
|
+
/**
|
|
4
|
+
* The frame a collection's table sits in: a heading, the collection's own
|
|
5
|
+
* toolbar under it, the table, a labelled total, and the recessed footer
|
|
6
|
+
* strip. The Portal's DataTable and Nadia's record sections draw this one
|
|
7
|
+
* frame, so a registry card ends the same way in both products.
|
|
8
|
+
*/
|
|
9
|
+
declare function TableCard({ title, description, actions, toolbar, summary, footer, footerHint, children, className, surface, ...props }: Omit<React.ComponentProps<"section">, "title"> & {
|
|
5
10
|
title?: React.ReactNode;
|
|
6
11
|
description?: React.ReactNode;
|
|
7
12
|
actions?: React.ReactNode;
|
|
13
|
+
/** The collection's search, filters and actions, under the heading and above the table. */
|
|
14
|
+
toolbar?: React.ReactNode;
|
|
15
|
+
/** A labelled total under the table. */
|
|
16
|
+
summary?: {
|
|
17
|
+
label: React.ReactNode;
|
|
18
|
+
value: React.ReactNode;
|
|
19
|
+
};
|
|
8
20
|
footer?: React.ReactNode;
|
|
9
21
|
footerHint?: React.ReactNode;
|
|
10
22
|
surface?: CardSurface;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-card.d.ts","sourceRoot":"","sources":["../../src/components/table-card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAA4D,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AAGpG
|
|
1
|
+
{"version":3,"file":"table-card.d.ts","sourceRoot":"","sources":["../../src/components/table-card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAA4D,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AAGpG;;;;;GAKG;AACH,iBAAS,SAAS,CAAC,EACjB,KAAK,EACL,WAAW,EACX,OAAO,EACP,OAAO,EACP,OAAO,EACP,MAAM,EACN,UAAU,EACV,QAAQ,EACR,SAAS,EACT,OAAmB,EACnB,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,GAAG;IAClD,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,2FAA2F;IAC3F,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,wCAAwC;IACxC,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;KAAE,CAAC;IAC7D,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB,qBA8CA;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -3,8 +3,14 @@ import { cn } from "../lib/utils.js";
|
|
|
3
3
|
import { FooterStrip } from "../internal/footer-strip.js";
|
|
4
4
|
import { Card, CardAction, CardDescription, CardHeader, CardTitle } from "./card.js";
|
|
5
5
|
import { Separator } from "./separator.js";
|
|
6
|
-
/**
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
/**
|
|
7
|
+
* The frame a collection's table sits in: a heading, the collection's own
|
|
8
|
+
* toolbar under it, the table, a labelled total, and the recessed footer
|
|
9
|
+
* strip. The Portal's DataTable and Nadia's record sections draw this one
|
|
10
|
+
* frame, so a registry card ends the same way in both products.
|
|
11
|
+
*/
|
|
12
|
+
function TableCard({ title, description, actions, toolbar, summary, footer, footerHint, children, className, surface = "resting", ...props }) {
|
|
13
|
+
const heading = title || description || actions;
|
|
14
|
+
return (_jsxs(Card, { render: _jsx("section", { ...props, "data-slot": "table-card" }), surface: surface, className: cn("min-w-0 gap-0 py-0", className), children: [(heading || toolbar) && (_jsxs(_Fragment, { children: [heading && (_jsxs(CardHeader, { className: cn("pt-(--card-spacing)", !toolbar && "pb-(--card-spacing)"), children: [title && (_jsx(CardTitle, { children: _jsx("h2", { children: title }) })), description && _jsx(CardDescription, { children: description }), actions && _jsx(CardAction, { children: actions })] })), toolbar && (_jsx("div", { "data-slot": "table-card-toolbar", className: "px-(--card-spacing) pt-(--card-spacing)", children: toolbar })), _jsx(Separator, {})] })), _jsx("div", { "data-slot": "table-card-body", className: "min-w-0", children: children }), summary && (_jsxs("dl", { "data-slot": "table-card-summary", className: "flex min-w-0 items-start justify-between gap-4 border-t border-border px-4 py-3 text-sm font-medium", children: [_jsx("dt", { children: summary.label }), _jsx("dd", { className: "text-right tabular-nums", children: summary.value })] })), _jsx(FooterStrip, { hint: footerHint, hintSlot: "table-card-hint", children: footer })] }));
|
|
9
15
|
}
|
|
10
16
|
export { TableCard };
|
package/dist/index.d.ts
CHANGED
|
@@ -8,6 +8,8 @@ export * from "./components/agent-orb.js";
|
|
|
8
8
|
export * from "./components/alert.js";
|
|
9
9
|
export * from "./components/alert-dialog.js";
|
|
10
10
|
export * from "./components/app-mark.js";
|
|
11
|
+
export * from "./components/app-mark-frame.js";
|
|
12
|
+
export * from "./components/app-mark-lazy.js";
|
|
11
13
|
export * from "./components/aspect-ratio.js";
|
|
12
14
|
export * from "./components/avatar.js";
|
|
13
15
|
export * from "./components/automation-section.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -8,6 +8,8 @@ export * from "./components/agent-orb.js";
|
|
|
8
8
|
export * from "./components/alert.js";
|
|
9
9
|
export * from "./components/alert-dialog.js";
|
|
10
10
|
export * from "./components/app-mark.js";
|
|
11
|
+
export * from "./components/app-mark-frame.js";
|
|
12
|
+
export * from "./components/app-mark-lazy.js";
|
|
11
13
|
export * from "./components/aspect-ratio.js";
|
|
12
14
|
export * from "./components/avatar.js";
|
|
13
15
|
export * from "./components/automation-section.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-orb.d.ts","sourceRoot":"","sources":["../../src/internal/agent-orb.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,QAAQ,EAEb,KAAK,QAAQ,EAId,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,KAAK,aAAa,EAMnB,MAAM,oBAAoB,CAAC;AAE5B,QAAA,MAAM,aAAa;;;;;;;;CAQ0B,CAAC;AAE9C,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,aAAa,CAAC;AACtD,kEAAkE;AAClE,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,OAAO,CAAC;AACpD,MAAM,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;AAE7D,kDAAkD;AAClD,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,cAAc,CAAC;AACxD,+FAA+F;AAC/F,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-orb.d.ts","sourceRoot":"","sources":["../../src/internal/agent-orb.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,QAAQ,EAEb,KAAK,QAAQ,EAId,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,KAAK,aAAa,EAMnB,MAAM,oBAAoB,CAAC;AAE5B,QAAA,MAAM,aAAa;;;;;;;;CAQ0B,CAAC;AAE9C,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,aAAa,CAAC;AACtD,kEAAkE;AAClE,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,OAAO,CAAC;AACpD,MAAM,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;AAE7D,kDAAkD;AAClD,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,cAAc,CAAC;AACxD,+FAA+F;AAC/F,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAC;AAiClD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAuDpF;AA4FD,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,cAAc,CAAC;IACrB;;;OAGG;IACH,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,GAClD,CAAC;IAAE,MAAM,CAAC,EAAE,QAAQ,CAAC;IAAC,KAAK,CAAC,EAAE,aAAa,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC,CAAC;AAExF,wBAAgB,aAAa,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,oBAAoB;;sBAIzC,OAAO;qBAAuB,aAAa;EAmMvF"}
|
|
@@ -26,6 +26,8 @@ const presenceWeights = {
|
|
|
26
26
|
* tricolore stays visible on a white ground as ink.
|
|
27
27
|
*/
|
|
28
28
|
const nadiaStripes = ["--nc-identity-azzurro", "--nc-identity-verde", null, "--nc-identity-rosso"];
|
|
29
|
+
const celebrationTokens = ["--nc-chart-5", "--nc-chart-6", "--nc-warning", "--nc-chart-4"];
|
|
30
|
+
const appearanceTokens = [...celebrationTokens, ...nadiaStripes.filter((token) => token !== null)];
|
|
29
31
|
/** A stable direction on the unit sphere, the vendor's Fibonacci lattice. */
|
|
30
32
|
function fibonacci(i, n) {
|
|
31
33
|
const y = 1 - (2 * (i + 0.5)) / n;
|
|
@@ -159,6 +161,7 @@ export function mountAgentOrb(canvas, options) {
|
|
|
159
161
|
let color = getComputedStyle(canvas).color;
|
|
160
162
|
let celebrationColors = [color];
|
|
161
163
|
let stripeColors = [color];
|
|
164
|
+
let appearanceKey = "";
|
|
162
165
|
/**
|
|
163
166
|
* The box the orb is displayed at, in CSS pixels. A canvas stretched by
|
|
164
167
|
* layout reads as pixels unless the engine paints at that size, so the box
|
|
@@ -244,6 +247,18 @@ export function mountAgentOrb(canvas, options) {
|
|
|
244
247
|
probe.remove();
|
|
245
248
|
return resolved || color;
|
|
246
249
|
}
|
|
250
|
+
function readAppearanceKey(appearance, side) {
|
|
251
|
+
return [
|
|
252
|
+
side,
|
|
253
|
+
window.devicePixelRatio || 1,
|
|
254
|
+
appearance.color,
|
|
255
|
+
...appearanceTokens.map((token) => appearance.getPropertyValue(token)),
|
|
256
|
+
].join("|");
|
|
257
|
+
}
|
|
258
|
+
function refreshIfChanged() {
|
|
259
|
+
if (readAppearanceKey(getComputedStyle(canvas), measure()) !== appearanceKey)
|
|
260
|
+
refresh();
|
|
261
|
+
}
|
|
247
262
|
function refresh() {
|
|
248
263
|
painted = measure();
|
|
249
264
|
const backing = Math.max(1, Math.round(painted * Math.min(window.devicePixelRatio || 1, 2)));
|
|
@@ -251,8 +266,9 @@ export function mountAgentOrb(canvas, options) {
|
|
|
251
266
|
canvas.height = backing;
|
|
252
267
|
ratio = backing / painted;
|
|
253
268
|
const appearance = getComputedStyle(canvas);
|
|
269
|
+
appearanceKey = readAppearanceKey(appearance, painted);
|
|
254
270
|
color = appearance.color;
|
|
255
|
-
celebrationColors =
|
|
271
|
+
celebrationColors = celebrationTokens.map((token) => computedColor(`color-mix(in oklch, ${appearance.getPropertyValue(token).trim() || color} 75%, white)`));
|
|
256
272
|
stripeColors = nadiaStripes.map((token) => (token && appearance.getPropertyValue(token).trim()) || color);
|
|
257
273
|
play();
|
|
258
274
|
}
|
|
@@ -261,7 +277,7 @@ export function mountAgentOrb(canvas, options) {
|
|
|
261
277
|
play();
|
|
262
278
|
});
|
|
263
279
|
visibility.observe(canvas);
|
|
264
|
-
const appearance = new MutationObserver(
|
|
280
|
+
const appearance = new MutationObserver(refreshIfChanged);
|
|
265
281
|
for (let ancestor = canvas; ancestor; ancestor = ancestor.parentElement) {
|
|
266
282
|
appearance.observe(ancestor, {
|
|
267
283
|
attributes: true,
|
|
@@ -283,12 +299,12 @@ export function mountAgentOrb(canvas, options) {
|
|
|
283
299
|
if (event.propertyName === "color" &&
|
|
284
300
|
event.target instanceof Node &&
|
|
285
301
|
event.target.contains(canvas))
|
|
286
|
-
|
|
302
|
+
refreshIfChanged();
|
|
287
303
|
}
|
|
288
304
|
document.addEventListener("transitionend", settle, true);
|
|
289
305
|
motion.addEventListener("change", play);
|
|
290
306
|
document.addEventListener("visibilitychange", play);
|
|
291
|
-
window.addEventListener("resize",
|
|
307
|
+
window.addEventListener("resize", refreshIfChanged);
|
|
292
308
|
refresh();
|
|
293
309
|
return {
|
|
294
310
|
setState(value) {
|
|
@@ -310,7 +326,7 @@ export function mountAgentOrb(canvas, options) {
|
|
|
310
326
|
document.removeEventListener("transitionend", settle, true);
|
|
311
327
|
motion.removeEventListener("change", play);
|
|
312
328
|
document.removeEventListener("visibilitychange", play);
|
|
313
|
-
window.removeEventListener("resize",
|
|
329
|
+
window.removeEventListener("resize", refreshIfChanged);
|
|
314
330
|
},
|
|
315
331
|
};
|
|
316
332
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nadicodeai/ui",
|
|
3
|
-
"version": "12.1.
|
|
3
|
+
"version": "12.1.33",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -40,6 +40,11 @@
|
|
|
40
40
|
"types": "./dist/lib/format-token-count.d.ts",
|
|
41
41
|
"import": "./dist/lib/format-token-count.js"
|
|
42
42
|
},
|
|
43
|
+
"./components/app-mark-lazy": {
|
|
44
|
+
"types": "./dist/components/app-mark-lazy.d.ts",
|
|
45
|
+
"browser": "./dist/components/app-mark-lazy.js",
|
|
46
|
+
"import": "./dist/components/app-mark-lazy/server.js"
|
|
47
|
+
},
|
|
43
48
|
"./components/*": {
|
|
44
49
|
"types": "./dist/components/*.d.ts",
|
|
45
50
|
"import": "./dist/components/*.js"
|
|
@@ -72,7 +77,7 @@
|
|
|
72
77
|
"@assistant-ui/react": "0.15.21",
|
|
73
78
|
"@assistant-ui/react-markdown": "0.14.16",
|
|
74
79
|
"@base-ui/react": "^1.8.0",
|
|
75
|
-
"@nadicodeai/design-system": "12.1.
|
|
80
|
+
"@nadicodeai/design-system": "12.1.33",
|
|
76
81
|
"class-variance-authority": "^0.7.1",
|
|
77
82
|
"clsx": "^2.1.1",
|
|
78
83
|
"cmdk": "^1.1.1",
|
|
@@ -118,6 +123,7 @@
|
|
|
118
123
|
"react": "19.3.0",
|
|
119
124
|
"react-dom": "19.3.0",
|
|
120
125
|
"shadcn": "4.21.0",
|
|
126
|
+
"svgo": "^4.1.0",
|
|
121
127
|
"tailwindcss": "^4.3.3",
|
|
122
128
|
"typescript": "^6",
|
|
123
129
|
"vitest": "^5.0.0"
|