@nadicodeai/ui 8.2.0 → 8.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSES/MODEL-IDENTITY-ASSETS-NOTICE.txt +28 -0
- package/NOTICE +7 -2
- package/dist/components/brand-icons/aionlabs.d.ts +18 -0
- package/dist/components/brand-icons/aionlabs.d.ts.map +1 -0
- package/dist/components/brand-icons/aionlabs.js +22 -0
- package/dist/components/brand-icons/arcee.d.ts +18 -0
- package/dist/components/brand-icons/arcee.d.ts.map +1 -0
- package/dist/components/brand-icons/arcee.js +22 -0
- package/dist/components/brand-icons/baidu.d.ts +18 -0
- package/dist/components/brand-icons/baidu.d.ts.map +1 -0
- package/dist/components/brand-icons/baidu.js +22 -0
- package/dist/components/brand-icons/bytedance.d.ts +18 -0
- package/dist/components/brand-icons/bytedance.d.ts.map +1 -0
- package/dist/components/brand-icons/bytedance.js +22 -0
- package/dist/components/brand-icons/cohere.d.ts +18 -0
- package/dist/components/brand-icons/cohere.d.ts.map +1 -0
- package/dist/components/brand-icons/cohere.js +22 -0
- package/dist/components/brand-icons/dolphin.d.ts +18 -0
- package/dist/components/brand-icons/dolphin.d.ts.map +1 -0
- package/dist/components/brand-icons/dolphin.js +22 -0
- package/dist/components/brand-icons/dotsstudio.d.ts +18 -0
- package/dist/components/brand-icons/dotsstudio.d.ts.map +1 -0
- package/dist/components/brand-icons/dotsstudio.js +22 -0
- package/dist/components/brand-icons/huggingface.d.ts +18 -0
- package/dist/components/brand-icons/huggingface.d.ts.map +1 -0
- package/dist/components/brand-icons/huggingface.js +22 -0
- package/dist/components/brand-icons/ibm.d.ts +18 -0
- package/dist/components/brand-icons/ibm.d.ts.map +1 -0
- package/dist/components/brand-icons/ibm.js +22 -0
- package/dist/components/brand-icons/inception.d.ts +18 -0
- package/dist/components/brand-icons/inception.d.ts.map +1 -0
- package/dist/components/brand-icons/inception.js +22 -0
- package/dist/components/brand-icons/inclusionai.d.ts +13 -0
- package/dist/components/brand-icons/inclusionai.d.ts.map +1 -0
- package/dist/components/brand-icons/inclusionai.js +18 -0
- package/dist/components/brand-icons/inference.d.ts +18 -0
- package/dist/components/brand-icons/inference.d.ts.map +1 -0
- package/dist/components/brand-icons/inference.js +22 -0
- package/dist/components/brand-icons/kwaipilot.d.ts +18 -0
- package/dist/components/brand-icons/kwaipilot.d.ts.map +1 -0
- package/dist/components/brand-icons/kwaipilot.js +25 -0
- package/dist/components/brand-icons/liquid.d.ts +18 -0
- package/dist/components/brand-icons/liquid.d.ts.map +1 -0
- package/dist/components/brand-icons/liquid.js +22 -0
- package/dist/components/brand-icons/longcat.d.ts +18 -0
- package/dist/components/brand-icons/longcat.d.ts.map +1 -0
- package/dist/components/brand-icons/longcat.js +22 -0
- package/dist/components/brand-icons/microsoft.d.ts +18 -0
- package/dist/components/brand-icons/microsoft.d.ts.map +1 -0
- package/dist/components/brand-icons/microsoft.js +22 -0
- package/dist/components/brand-icons/minimax.d.ts +18 -0
- package/dist/components/brand-icons/minimax.d.ts.map +1 -0
- package/dist/components/brand-icons/minimax.js +25 -0
- package/dist/components/brand-icons/morph.d.ts +18 -0
- package/dist/components/brand-icons/morph.d.ts.map +1 -0
- package/dist/components/brand-icons/morph.js +22 -0
- package/dist/components/brand-icons/nexagi.d.ts +18 -0
- package/dist/components/brand-icons/nexagi.d.ts.map +1 -0
- package/dist/components/brand-icons/nexagi.js +22 -0
- package/dist/components/brand-icons/nousresearch.d.ts +18 -0
- package/dist/components/brand-icons/nousresearch.d.ts.map +1 -0
- package/dist/components/brand-icons/nousresearch.js +22 -0
- package/dist/components/brand-icons/nova.d.ts +18 -0
- package/dist/components/brand-icons/nova.d.ts.map +1 -0
- package/dist/components/brand-icons/nova.js +25 -0
- package/dist/components/brand-icons/nvidia.d.ts +18 -0
- package/dist/components/brand-icons/nvidia.d.ts.map +1 -0
- package/dist/components/brand-icons/nvidia.js +22 -0
- package/dist/components/brand-icons/openrouter.d.ts +18 -0
- package/dist/components/brand-icons/openrouter.d.ts.map +1 -0
- package/dist/components/brand-icons/openrouter.js +22 -0
- package/dist/components/brand-icons/perceptron.d.ts +18 -0
- package/dist/components/brand-icons/perceptron.d.ts.map +1 -0
- package/dist/components/brand-icons/perceptron.js +22 -0
- package/dist/components/brand-icons/perplexity.d.ts +18 -0
- package/dist/components/brand-icons/perplexity.d.ts.map +1 -0
- package/dist/components/brand-icons/perplexity.js +22 -0
- package/dist/components/brand-icons/poolside.d.ts +18 -0
- package/dist/components/brand-icons/poolside.d.ts.map +1 -0
- package/dist/components/brand-icons/poolside.js +25 -0
- package/dist/components/brand-icons/reka.d.ts +18 -0
- package/dist/components/brand-icons/reka.d.ts.map +1 -0
- package/dist/components/brand-icons/reka.js +22 -0
- package/dist/components/brand-icons/relace.d.ts +18 -0
- package/dist/components/brand-icons/relace.d.ts.map +1 -0
- package/dist/components/brand-icons/relace.js +22 -0
- package/dist/components/brand-icons/sakana.d.ts +18 -0
- package/dist/components/brand-icons/sakana.d.ts.map +1 -0
- package/dist/components/brand-icons/sakana.js +22 -0
- package/dist/components/brand-icons/stepfun.d.ts +18 -0
- package/dist/components/brand-icons/stepfun.d.ts.map +1 -0
- package/dist/components/brand-icons/stepfun.js +25 -0
- package/dist/components/brand-icons/tencent.d.ts +18 -0
- package/dist/components/brand-icons/tencent.d.ts.map +1 -0
- package/dist/components/brand-icons/tencent.js +22 -0
- package/dist/components/brand-icons/the-drummer.d.ts +13 -0
- package/dist/components/brand-icons/the-drummer.d.ts.map +1 -0
- package/dist/components/brand-icons/the-drummer.js +18 -0
- package/dist/components/brand-icons/thinkingmachines.d.ts +13 -0
- package/dist/components/brand-icons/thinkingmachines.d.ts.map +1 -0
- package/dist/components/brand-icons/thinkingmachines.js +18 -0
- package/dist/components/brand-icons/unbiased.d.ts +13 -0
- package/dist/components/brand-icons/unbiased.d.ts.map +1 -0
- package/dist/components/brand-icons/unbiased.js +18 -0
- package/dist/components/brand-icons/upstage.d.ts +18 -0
- package/dist/components/brand-icons/upstage.d.ts.map +1 -0
- package/dist/components/brand-icons/upstage.js +25 -0
- package/dist/components/brand-icons/writer.d.ts +13 -0
- package/dist/components/brand-icons/writer.d.ts.map +1 -0
- package/dist/components/brand-icons/writer.js +18 -0
- package/dist/components/brand-icons/xiaomimimo.d.ts +18 -0
- package/dist/components/brand-icons/xiaomimimo.d.ts.map +1 -0
- package/dist/components/brand-icons/xiaomimimo.js +22 -0
- package/dist/components/brand-icons/zai.d.ts +18 -0
- package/dist/components/brand-icons/zai.d.ts.map +1 -0
- package/dist/components/brand-icons/zai.js +22 -0
- package/dist/components/brand-icons.d.ts +38 -0
- package/dist/components/brand-icons.d.ts.map +1 -1
- package/dist/components/brand-icons.js +38 -0
- package/dist/components/chart-bar-horizontal.d.ts +14 -0
- package/dist/components/chart-bar-horizontal.d.ts.map +1 -0
- package/dist/components/chart-bar-horizontal.js +67 -0
- package/dist/components/model-mark.d.ts.map +1 -1
- package/dist/components/model-mark.js +76 -36
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/docs/contract.md +19 -13
- package/package.json +3 -3
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type BrandIconProps } from "./brand-icon.js";
|
|
2
|
+
/**
|
|
3
|
+
* The upstage-color mark from the LobeHub icon set.
|
|
4
|
+
*
|
|
5
|
+
* Painted in the brand's official colors. Those colors are the identity
|
|
6
|
+
* being shown, so they do not follow the semantic theme.
|
|
7
|
+
*
|
|
8
|
+
* Under forced-colors mode the mark flattens to the user's system colors. That
|
|
9
|
+
* loss of brand color is the correct outcome of a contrast choice the user made,
|
|
10
|
+
* so `forced-color-adjust` stays at its `auto` default and nothing here
|
|
11
|
+
* preserves the paint.
|
|
12
|
+
*
|
|
13
|
+
* Hidden from assistive technology by default because a brand mark sits beside
|
|
14
|
+
* the text label that names it. Pass `role="img"` with an `aria-label` when
|
|
15
|
+
* the mark stands alone.
|
|
16
|
+
*/
|
|
17
|
+
export declare function UpstageIcon({ size, ...props }: BrandIconProps): import("react").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=upstage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upstage.d.ts","sourceRoot":"","sources":["../../../src/components/brand-icons/upstage.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAuC,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAExF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,EAAE,IAAsB,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,+BA+B/E"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// Generated by scripts/build-brand-icons.mjs from @lobehub/icons-static-svg (MIT).
|
|
2
|
+
// Edit the allow-list in that script and regenerate; hand edits to brand-icons/upstage.tsx are lost.
|
|
3
|
+
"use client";
|
|
4
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { useId } from "react";
|
|
6
|
+
import { BRAND_ICON_SIZE, brandIconLabelling } from "./brand-icon.js";
|
|
7
|
+
/**
|
|
8
|
+
* The upstage-color mark from the LobeHub icon set.
|
|
9
|
+
*
|
|
10
|
+
* Painted in the brand's official colors. Those colors are the identity
|
|
11
|
+
* being shown, so they do not follow the semantic theme.
|
|
12
|
+
*
|
|
13
|
+
* Under forced-colors mode the mark flattens to the user's system colors. That
|
|
14
|
+
* loss of brand color is the correct outcome of a contrast choice the user made,
|
|
15
|
+
* so `forced-color-adjust` stays at its `auto` default and nothing here
|
|
16
|
+
* preserves the paint.
|
|
17
|
+
*
|
|
18
|
+
* Hidden from assistive technology by default because a brand mark sits beside
|
|
19
|
+
* the text label that names it. Pass `role="img"` with an `aria-label` when
|
|
20
|
+
* the mark stands alone.
|
|
21
|
+
*/
|
|
22
|
+
export function UpstageIcon({ size = BRAND_ICON_SIZE, ...props }) {
|
|
23
|
+
const scope = `brand-icon-upstage-${useId().replace(/[^a-zA-Z0-9]/g, "")}`;
|
|
24
|
+
return (_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 24 24", "data-slot": "brand-icon", "data-brand": "upstage", ...props, ...brandIconLabelling(props), children: [_jsx("path", { d: "M19.763 0l-.373 1.297h2.594L22.354 0h-2.591zM16.192 2.27l-.376 1.298h5.52l.37-1.298h-5.514zM12.897 4.54l-.376 1.298h8.166l.37-1.298h-8.16zM2.85 6.81l-.377 1.298h17.565l.37-1.297H2.848zM3.884 9.081l-.376 1.297H19.39l.37-1.297H3.882zM4.088 24l.376-1.297H1.866L1.5 24h2.588zM7.662 21.73l.376-1.297H2.515L2.15 21.73h5.513zM10.957 19.459l.376-1.297h-8.17l-.366 1.297h8.16zM21.005 17.189l.376-1.297H3.812l-.366 1.297h17.559zM19.967 14.919l.376-1.297H4.461l-.366 1.297h15.872zM18.786 12.649l.376-1.297H4.26l-.366 1.297h14.893z", fill: `url(#${scope}-a)` }), _jsx("defs", { children: _jsxs("linearGradient", { gradientUnits: "userSpaceOnUse", id: `${scope}-a`, x1: "11.927", x2: "11.927", y2: "24", children: [_jsx("stop", { offset: "0", stopColor: "#AEBCFE" }), _jsx("stop", { offset: "1", stopColor: "#805DFA" })] }) })] }));
|
|
25
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type BrandIconProps } from "./brand-icon.js";
|
|
2
|
+
/**
|
|
3
|
+
* The writer.png mark from the published identity asset at https://writer.com/wp-content/uploads/2021/08/writer-w-logo-1.png?w=192.
|
|
4
|
+
*
|
|
5
|
+
* The published raster is embedded unchanged so the package never depends on
|
|
6
|
+
* a runtime network fetch. It is shown only as nominative model identity.
|
|
7
|
+
*
|
|
8
|
+
* Hidden from assistive technology by default because a brand mark sits beside
|
|
9
|
+
* the text label that names it. Pass `role="img"` with an `aria-label` when
|
|
10
|
+
* the mark stands alone.
|
|
11
|
+
*/
|
|
12
|
+
export declare function WriterIcon({ size, ...props }: BrandIconProps): import("react").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=writer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../../src/components/brand-icons/writer.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAuC,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAKxF;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,EAAE,IAAsB,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,+BAgB9E"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// Generated by scripts/build-brand-icons.mjs from published model-identity assets (nominative use).
|
|
3
|
+
// Edit the allow-list in that script and regenerate; hand edits to brand-icons/writer.tsx are lost.
|
|
4
|
+
import { BRAND_ICON_SIZE, brandIconLabelling } from "./brand-icon.js";
|
|
5
|
+
const WRITER_DATA = "data:image/png;base64,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";
|
|
6
|
+
/**
|
|
7
|
+
* The writer.png mark from the published identity asset at https://writer.com/wp-content/uploads/2021/08/writer-w-logo-1.png?w=192.
|
|
8
|
+
*
|
|
9
|
+
* The published raster is embedded unchanged so the package never depends on
|
|
10
|
+
* a runtime network fetch. It is shown only as nominative model identity.
|
|
11
|
+
*
|
|
12
|
+
* Hidden from assistive technology by default because a brand mark sits beside
|
|
13
|
+
* the text label that names it. Pass `role="img"` with an `aria-label` when
|
|
14
|
+
* the mark stands alone.
|
|
15
|
+
*/
|
|
16
|
+
export function WriterIcon({ size = BRAND_ICON_SIZE, ...props }) {
|
|
17
|
+
return (_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 192 192", "data-slot": "brand-icon", "data-brand": "writer", ...props, ...brandIconLabelling(props), children: [_jsx("rect", { width: "192", height: "192", fill: "#fff" }), _jsx("image", { href: WRITER_DATA, width: "192", height: "192", preserveAspectRatio: "xMidYMid meet" })] }));
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type BrandIconProps } from "./brand-icon.js";
|
|
2
|
+
/**
|
|
3
|
+
* The xiaomimimo mark from the LobeHub icon set.
|
|
4
|
+
*
|
|
5
|
+
* Drawn as one silhouette, so it paints with `currentColor` and stays
|
|
6
|
+
* under the semantic theme in every mode.
|
|
7
|
+
*
|
|
8
|
+
* Under forced-colors mode the mark flattens to the user's system colors. That
|
|
9
|
+
* loss of brand color is the correct outcome of a contrast choice the user made,
|
|
10
|
+
* so `forced-color-adjust` stays at its `auto` default and nothing here
|
|
11
|
+
* preserves the paint.
|
|
12
|
+
*
|
|
13
|
+
* Hidden from assistive technology by default because a brand mark sits beside
|
|
14
|
+
* the text label that names it. Pass `role="img"` with an `aria-label` when
|
|
15
|
+
* the mark stands alone.
|
|
16
|
+
*/
|
|
17
|
+
export declare function XiaomiMimoIcon({ size, ...props }: BrandIconProps): import("react").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=xiaomimimo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xiaomimimo.d.ts","sourceRoot":"","sources":["../../../src/components/brand-icons/xiaomimimo.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAuC,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAExF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,EAAE,IAAsB,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,+BAiBlF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// Generated by scripts/build-brand-icons.mjs from @lobehub/icons-static-svg (MIT).
|
|
3
|
+
// Edit the allow-list in that script and regenerate; hand edits to brand-icons/xiaomimimo.tsx are lost.
|
|
4
|
+
import { BRAND_ICON_SIZE, brandIconLabelling } from "./brand-icon.js";
|
|
5
|
+
/**
|
|
6
|
+
* The xiaomimimo mark from the LobeHub icon set.
|
|
7
|
+
*
|
|
8
|
+
* Drawn as one silhouette, so it paints with `currentColor` and stays
|
|
9
|
+
* under the semantic theme in every mode.
|
|
10
|
+
*
|
|
11
|
+
* Under forced-colors mode the mark flattens to the user's system colors. That
|
|
12
|
+
* loss of brand color is the correct outcome of a contrast choice the user made,
|
|
13
|
+
* so `forced-color-adjust` stays at its `auto` default and nothing here
|
|
14
|
+
* preserves the paint.
|
|
15
|
+
*
|
|
16
|
+
* Hidden from assistive technology by default because a brand mark sits beside
|
|
17
|
+
* the text label that names it. Pass `role="img"` with an `aria-label` when
|
|
18
|
+
* the mark stands alone.
|
|
19
|
+
*/
|
|
20
|
+
export function XiaomiMimoIcon({ size = BRAND_ICON_SIZE, ...props }) {
|
|
21
|
+
return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 24 24", fill: "currentColor", fillRule: "evenodd", "data-slot": "brand-icon", "data-brand": "xiaomimimo", ...props, ...brandIconLabelling(props), children: _jsx("path", { d: "M.958 15.936a.459.459 0 01.459.44v2.729a.46.46 0 01-.918 0v-2.729a.459.459 0 01.459-.44zm4.814-2.035a.46.46 0 01.553.45v4.754a.458.458 0 11-.918 0V15.48L3.74 17.202a.462.462 0 01-.655.016.462.462 0 01-.065-.082L.628 14.67a.459.459 0 01.658-.637l2.124 2.187 2.127-2.188a.46.46 0 01.235-.13zm2.068.004a.46.46 0 01.458.445v4.755a.46.46 0 01-.458.458.459.459 0 01-.458-.458V14.35a.459.459 0 01.458-.445zm1.973 2.014a.46.46 0 01.46.457v2.729a.46.46 0 01-.784.324.46.46 0 01-.134-.324v-2.729a.46.46 0 01.458-.458zm.002-2.045a.458.458 0 01.328.157l2.127 2.19 2.125-2.19a.459.459 0 01.784.318v4.756a.46.46 0 01-.455.458.46.46 0 01-.458-.458V15.48l-1.667 1.723a.46.46 0 01-.65.008l-.005-.005c0-.002-.002-.002-.004-.003l-2.455-2.534a.46.46 0 01-.008-.667.461.461 0 01.338-.128zm6.797 1.206a.46.46 0 01.53.651A1.966 1.966 0 0019.81 18.4a.462.462 0 01.623.18.46.46 0 01-.181.624 2.863 2.863 0 01-1.38.353l-.142-.004a2.88 2.88 0 01-2.393-4.263.461.461 0 01.274-.21zm.864-.931a2.884 2.884 0 013.915 3.914.46.46 0 01-.402.24l-.057-.004a.458.458 0 01-.164-.055.46.46 0 01-.182-.622 1.967 1.967 0 00-2.669-2.67.459.459 0 11-.441-.803zM9.59 6.368c1.481 0 1.696 1.202 1.696 1.654v2.648h-.917v-.432c-.26.346-.792.535-1.36.535-.133 0-1.289-.03-1.384-1.136-.082-.932.675-1.61 2.053-1.61h.691c0-.563-.367-.886-.983-.886-.44.013-.864.174-1.2.458l-.36-.664c.484-.379 1.012-.567 1.764-.567zm4.427.1c1.263 0 2.082.97 2.083 2.15 0 1.181-.824 2.154-2.083 2.154-1.26 0-2.084-.972-2.084-2.152 0-1.18.82-2.153 2.084-2.153zm6.801.015c.68 0 1.202.465 1.197 1.548v2.642H21.1V8.29c0-.312-.002-.98-.63-.98s-.628.667-.628.838v2.524h-.89V8.148c0-.17-.001-.838-.63-.838-.628 0-.628.668-.628.98v2.383h-.917v-4.03h.917V7a1.22 1.22 0 01.947-.516c.398 0 .76.193.982.686a1.321 1.321 0 011.195-.686zm-18.093.872l1.457-1.772H5.32L3.311 8.07l2.14 2.602H4.24L2.725 8.796 1.21 10.672H0L2.138 8.07.13 5.583h1.138l1.458 1.772zm4.149 3.317h-.916V6.644h.916v4.028zm16.99 0h-.916V6.644h.916v4.028zM9.925 8.71c-1.055 0-1.359.412-1.326.742.032.329.324.537.757.537a1.013 1.013 0 001.014-.968l.002-.31h-.447zM14.018 7.3c-.663 0-1.184.487-1.184 1.32 0 .832.52 1.32 1.184 1.32.662 0 1.182-.49 1.182-1.32 0-.832-.52-1.32-1.182-1.32zM6.417 5.001a.568.568 0 01.587.582.588.588 0 01-1.175 0A.57.57 0 016.417 5zm16.991 0a.57.57 0 01.592.582.588.588 0 01-1.174 0 .57.57 0 01.357-.542.572.572 0 01.225-.04z" }) }));
|
|
22
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type BrandIconProps } from "./brand-icon.js";
|
|
2
|
+
/**
|
|
3
|
+
* The zai mark from the LobeHub icon set.
|
|
4
|
+
*
|
|
5
|
+
* Drawn as one silhouette, so it paints with `currentColor` and stays
|
|
6
|
+
* under the semantic theme in every mode.
|
|
7
|
+
*
|
|
8
|
+
* Under forced-colors mode the mark flattens to the user's system colors. That
|
|
9
|
+
* loss of brand color is the correct outcome of a contrast choice the user made,
|
|
10
|
+
* so `forced-color-adjust` stays at its `auto` default and nothing here
|
|
11
|
+
* preserves the paint.
|
|
12
|
+
*
|
|
13
|
+
* Hidden from assistive technology by default because a brand mark sits beside
|
|
14
|
+
* the text label that names it. Pass `role="img"` with an `aria-label` when
|
|
15
|
+
* the mark stands alone.
|
|
16
|
+
*/
|
|
17
|
+
export declare function ZaiIcon({ size, ...props }: BrandIconProps): import("react").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=zai.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zai.d.ts","sourceRoot":"","sources":["../../../src/components/brand-icons/zai.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAuC,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAExF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CAAC,EAAE,IAAsB,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,+BAiB3E"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// Generated by scripts/build-brand-icons.mjs from @lobehub/icons-static-svg (MIT).
|
|
3
|
+
// Edit the allow-list in that script and regenerate; hand edits to brand-icons/zai.tsx are lost.
|
|
4
|
+
import { BRAND_ICON_SIZE, brandIconLabelling } from "./brand-icon.js";
|
|
5
|
+
/**
|
|
6
|
+
* The zai mark from the LobeHub icon set.
|
|
7
|
+
*
|
|
8
|
+
* Drawn as one silhouette, so it paints with `currentColor` and stays
|
|
9
|
+
* under the semantic theme in every mode.
|
|
10
|
+
*
|
|
11
|
+
* Under forced-colors mode the mark flattens to the user's system colors. That
|
|
12
|
+
* loss of brand color is the correct outcome of a contrast choice the user made,
|
|
13
|
+
* so `forced-color-adjust` stays at its `auto` default and nothing here
|
|
14
|
+
* preserves the paint.
|
|
15
|
+
*
|
|
16
|
+
* Hidden from assistive technology by default because a brand mark sits beside
|
|
17
|
+
* the text label that names it. Pass `role="img"` with an `aria-label` when
|
|
18
|
+
* the mark stands alone.
|
|
19
|
+
*/
|
|
20
|
+
export function ZaiIcon({ size = BRAND_ICON_SIZE, ...props }) {
|
|
21
|
+
return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 24 24", fill: "currentColor", fillRule: "evenodd", "data-slot": "brand-icon", "data-brand": "zai", ...props, ...brandIconLabelling(props), children: _jsx("path", { d: "M12.105 2L9.927 4.953H.653L2.83 2h9.276zM23.254 19.048L21.078 22h-9.242l2.174-2.952h9.244zM24 2L9.264 22H0L14.736 2H24z" }) }));
|
|
22
|
+
}
|
|
@@ -2,13 +2,51 @@ export { BRAND_ICON_SIZE, brandIconLabelling, type BrandIconProps, } from "./bra
|
|
|
2
2
|
export { WindowsIcon } from "./brand-icons/windows.js";
|
|
3
3
|
export { AppleIcon } from "./brand-icons/apple.js";
|
|
4
4
|
export { LinuxIcon } from "./brand-icons/linux.js";
|
|
5
|
+
export { AionLabsIcon } from "./brand-icons/aionlabs.js";
|
|
6
|
+
export { NovaIcon } from "./brand-icons/nova.js";
|
|
5
7
|
export { OpenaiIcon } from "./brand-icons/openai.js";
|
|
6
8
|
export { ClaudeIcon } from "./brand-icons/claude.js";
|
|
9
|
+
export { ArceeIcon } from "./brand-icons/arcee.js";
|
|
10
|
+
export { BaiduIcon } from "./brand-icons/baidu.js";
|
|
11
|
+
export { ByteDanceIcon } from "./brand-icons/bytedance.js";
|
|
12
|
+
export { DolphinIcon } from "./brand-icons/dolphin.js";
|
|
13
|
+
export { CohereIcon } from "./brand-icons/cohere.js";
|
|
7
14
|
export { GeminiIcon } from "./brand-icons/gemini.js";
|
|
8
15
|
export { DeepseekIcon } from "./brand-icons/deepseek.js";
|
|
16
|
+
export { DotsStudioIcon } from "./brand-icons/dotsstudio.js";
|
|
17
|
+
export { HuggingFaceIcon } from "./brand-icons/huggingface.js";
|
|
18
|
+
export { IbmIcon } from "./brand-icons/ibm.js";
|
|
19
|
+
export { InceptionIcon } from "./brand-icons/inception.js";
|
|
20
|
+
export { InferenceIcon } from "./brand-icons/inference.js";
|
|
21
|
+
export { KwaipilotIcon } from "./brand-icons/kwaipilot.js";
|
|
22
|
+
export { LiquidIcon } from "./brand-icons/liquid.js";
|
|
23
|
+
export { LongcatIcon } from "./brand-icons/longcat.js";
|
|
9
24
|
export { GrokIcon } from "./brand-icons/grok.js";
|
|
25
|
+
export { MicrosoftIcon } from "./brand-icons/microsoft.js";
|
|
26
|
+
export { MinimaxIcon } from "./brand-icons/minimax.js";
|
|
10
27
|
export { MistralIcon } from "./brand-icons/mistral.js";
|
|
11
28
|
export { MetaIcon } from "./brand-icons/meta.js";
|
|
29
|
+
export { MorphIcon } from "./brand-icons/morph.js";
|
|
30
|
+
export { NousResearchIcon } from "./brand-icons/nousresearch.js";
|
|
31
|
+
export { NvidiaIcon } from "./brand-icons/nvidia.js";
|
|
32
|
+
export { OpenrouterIcon } from "./brand-icons/openrouter.js";
|
|
33
|
+
export { PerceptronIcon } from "./brand-icons/perceptron.js";
|
|
34
|
+
export { PerplexityIcon } from "./brand-icons/perplexity.js";
|
|
35
|
+
export { PoolsideIcon } from "./brand-icons/poolside.js";
|
|
12
36
|
export { QwenIcon } from "./brand-icons/qwen.js";
|
|
37
|
+
export { RekaIcon } from "./brand-icons/reka.js";
|
|
38
|
+
export { RelaceIcon } from "./brand-icons/relace.js";
|
|
39
|
+
export { SakanaIcon } from "./brand-icons/sakana.js";
|
|
40
|
+
export { StepfunIcon } from "./brand-icons/stepfun.js";
|
|
41
|
+
export { TencentIcon } from "./brand-icons/tencent.js";
|
|
13
42
|
export { MoonshotIcon } from "./brand-icons/moonshot.js";
|
|
43
|
+
export { UpstageIcon } from "./brand-icons/upstage.js";
|
|
44
|
+
export { XiaomiMimoIcon } from "./brand-icons/xiaomimimo.js";
|
|
45
|
+
export { ZaiIcon } from "./brand-icons/zai.js";
|
|
46
|
+
export { InclusionAiIcon } from "./brand-icons/inclusionai.js";
|
|
47
|
+
export { NexAgiIcon } from "./brand-icons/nexagi.js";
|
|
48
|
+
export { ThinkingMachinesIcon } from "./brand-icons/thinkingmachines.js";
|
|
49
|
+
export { TheDrummerIcon } from "./brand-icons/the-drummer.js";
|
|
50
|
+
export { UnbiasedIcon } from "./brand-icons/unbiased.js";
|
|
51
|
+
export { WriterIcon } from "./brand-icons/writer.js";
|
|
14
52
|
//# sourceMappingURL=brand-icons.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brand-icons.d.ts","sourceRoot":"","sources":["../../src/components/brand-icons.tsx"],"names":[],"mappings":"AAOA,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,KAAK,cAAc,GACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"brand-icons.d.ts","sourceRoot":"","sources":["../../src/components/brand-icons.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,12 +8,50 @@ export { BRAND_ICON_SIZE, brandIconLabelling, } from "./brand-icons/brand-icon.j
|
|
|
8
8
|
export { WindowsIcon } from "./brand-icons/windows.js";
|
|
9
9
|
export { AppleIcon } from "./brand-icons/apple.js";
|
|
10
10
|
export { LinuxIcon } from "./brand-icons/linux.js";
|
|
11
|
+
export { AionLabsIcon } from "./brand-icons/aionlabs.js";
|
|
12
|
+
export { NovaIcon } from "./brand-icons/nova.js";
|
|
11
13
|
export { OpenaiIcon } from "./brand-icons/openai.js";
|
|
12
14
|
export { ClaudeIcon } from "./brand-icons/claude.js";
|
|
15
|
+
export { ArceeIcon } from "./brand-icons/arcee.js";
|
|
16
|
+
export { BaiduIcon } from "./brand-icons/baidu.js";
|
|
17
|
+
export { ByteDanceIcon } from "./brand-icons/bytedance.js";
|
|
18
|
+
export { DolphinIcon } from "./brand-icons/dolphin.js";
|
|
19
|
+
export { CohereIcon } from "./brand-icons/cohere.js";
|
|
13
20
|
export { GeminiIcon } from "./brand-icons/gemini.js";
|
|
14
21
|
export { DeepseekIcon } from "./brand-icons/deepseek.js";
|
|
22
|
+
export { DotsStudioIcon } from "./brand-icons/dotsstudio.js";
|
|
23
|
+
export { HuggingFaceIcon } from "./brand-icons/huggingface.js";
|
|
24
|
+
export { IbmIcon } from "./brand-icons/ibm.js";
|
|
25
|
+
export { InceptionIcon } from "./brand-icons/inception.js";
|
|
26
|
+
export { InferenceIcon } from "./brand-icons/inference.js";
|
|
27
|
+
export { KwaipilotIcon } from "./brand-icons/kwaipilot.js";
|
|
28
|
+
export { LiquidIcon } from "./brand-icons/liquid.js";
|
|
29
|
+
export { LongcatIcon } from "./brand-icons/longcat.js";
|
|
15
30
|
export { GrokIcon } from "./brand-icons/grok.js";
|
|
31
|
+
export { MicrosoftIcon } from "./brand-icons/microsoft.js";
|
|
32
|
+
export { MinimaxIcon } from "./brand-icons/minimax.js";
|
|
16
33
|
export { MistralIcon } from "./brand-icons/mistral.js";
|
|
17
34
|
export { MetaIcon } from "./brand-icons/meta.js";
|
|
35
|
+
export { MorphIcon } from "./brand-icons/morph.js";
|
|
36
|
+
export { NousResearchIcon } from "./brand-icons/nousresearch.js";
|
|
37
|
+
export { NvidiaIcon } from "./brand-icons/nvidia.js";
|
|
38
|
+
export { OpenrouterIcon } from "./brand-icons/openrouter.js";
|
|
39
|
+
export { PerceptronIcon } from "./brand-icons/perceptron.js";
|
|
40
|
+
export { PerplexityIcon } from "./brand-icons/perplexity.js";
|
|
41
|
+
export { PoolsideIcon } from "./brand-icons/poolside.js";
|
|
18
42
|
export { QwenIcon } from "./brand-icons/qwen.js";
|
|
43
|
+
export { RekaIcon } from "./brand-icons/reka.js";
|
|
44
|
+
export { RelaceIcon } from "./brand-icons/relace.js";
|
|
45
|
+
export { SakanaIcon } from "./brand-icons/sakana.js";
|
|
46
|
+
export { StepfunIcon } from "./brand-icons/stepfun.js";
|
|
47
|
+
export { TencentIcon } from "./brand-icons/tencent.js";
|
|
19
48
|
export { MoonshotIcon } from "./brand-icons/moonshot.js";
|
|
49
|
+
export { UpstageIcon } from "./brand-icons/upstage.js";
|
|
50
|
+
export { XiaomiMimoIcon } from "./brand-icons/xiaomimimo.js";
|
|
51
|
+
export { ZaiIcon } from "./brand-icons/zai.js";
|
|
52
|
+
export { InclusionAiIcon } from "./brand-icons/inclusionai.js";
|
|
53
|
+
export { NexAgiIcon } from "./brand-icons/nexagi.js";
|
|
54
|
+
export { ThinkingMachinesIcon } from "./brand-icons/thinkingmachines.js";
|
|
55
|
+
export { TheDrummerIcon } from "./brand-icons/the-drummer.js";
|
|
56
|
+
export { UnbiasedIcon } from "./brand-icons/unbiased.js";
|
|
57
|
+
export { WriterIcon } from "./brand-icons/writer.js";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type ChartCardProps } from "./chart-card.js";
|
|
2
|
+
declare function signedAxis(data: readonly Record<string, number | string>[], valueKey: string): {
|
|
3
|
+
domain: readonly [number, number];
|
|
4
|
+
ticks: number[];
|
|
5
|
+
};
|
|
6
|
+
declare function ChartBarHorizontal({ title, description, action, summary, aside, footer, headingLevel, data, xKey, valueKey, displayKey, categoryDisplayKey, positiveLabel, negativeLabel, valueFormatter, axisFormatter, emptyState, size, className, }: Omit<ChartCardProps, "series" | "entityColorMap"> & {
|
|
7
|
+
valueKey: string;
|
|
8
|
+
displayKey?: string;
|
|
9
|
+
categoryDisplayKey?: string;
|
|
10
|
+
positiveLabel: string;
|
|
11
|
+
negativeLabel: string;
|
|
12
|
+
}): import("react").JSX.Element;
|
|
13
|
+
export { ChartBarHorizontal, signedAxis };
|
|
14
|
+
//# sourceMappingURL=chart-bar-horizontal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-bar-horizontal.d.ts","sourceRoot":"","sources":["../../src/components/chart-bar-horizontal.tsx"],"names":[],"mappings":"AAaA,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,yBAAyB,CAAC;AAOjC,iBAAS,UAAU,CAAC,IAAI,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM;;;EAoCrF;AAED,iBAAS,kBAAkB,CAAC,EAC1B,KAAK,EACL,WAAW,EACX,MAAM,EACN,OAAO,EACP,KAAK,EACL,MAAM,EACN,YAAY,EACZ,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,cAAsC,EACtC,aAAa,EACb,UAAU,EACV,IAAgB,EAChB,SAAS,GACV,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,gBAAgB,CAAC,GAAG;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB,+BAyGA;AAED,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// Pulled from the shadcn registry item `chart-bar-horizontal`.
|
|
2
|
+
"use client";
|
|
3
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { Bar, BarChart, CartesianGrid, ReferenceLine, XAxis, YAxis } from "recharts";
|
|
5
|
+
import { ChartContainer, ChartLegend, ChartLegendContent, ChartTooltip, ChartTooltipContent, } from "./chart.js";
|
|
6
|
+
import { niceAxisMax, niceAxisTicks, niceStep } from "./chart-axis.js";
|
|
7
|
+
import { CHART_LEGEND_CLASS, ChartCard, chartPlotClassName, defaultValueFormatter, } from "./chart-card.js";
|
|
8
|
+
const POSITIVE_KEY = "__positive";
|
|
9
|
+
const NEGATIVE_KEY = "__negative";
|
|
10
|
+
const POSITIVE_BAR_COLOR = "var(--nc-success)";
|
|
11
|
+
const NEGATIVE_BAR_COLOR = "var(--destructive)";
|
|
12
|
+
function signedAxis(data, valueKey) {
|
|
13
|
+
const values = data.flatMap((datum) => {
|
|
14
|
+
const value = datum[valueKey];
|
|
15
|
+
return typeof value === "number" && Number.isFinite(value) ? [value] : [];
|
|
16
|
+
});
|
|
17
|
+
const minimum = Math.min(0, ...values);
|
|
18
|
+
const maximum = Math.max(0, ...values);
|
|
19
|
+
if (minimum === 0) {
|
|
20
|
+
const bound = niceAxisMax(maximum) ?? 1;
|
|
21
|
+
return { domain: [0, bound], ticks: niceAxisTicks(bound) ?? [0, bound] };
|
|
22
|
+
}
|
|
23
|
+
if (maximum === 0) {
|
|
24
|
+
const bound = niceAxisMax(Math.abs(minimum)) ?? 1;
|
|
25
|
+
return {
|
|
26
|
+
domain: [-bound, 0],
|
|
27
|
+
ticks: (niceAxisTicks(bound) ?? [0, bound]).map((value) => -value).reverse(),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
const intervals = 4;
|
|
31
|
+
const positiveIntervals = Math.min(3, Math.max(1, Math.round((maximum / (maximum + Math.abs(minimum))) * intervals)));
|
|
32
|
+
const negativeIntervals = intervals - positiveIntervals;
|
|
33
|
+
const positiveStep = niceStep(maximum / positiveIntervals);
|
|
34
|
+
const negativeStep = niceStep(Math.abs(minimum) / negativeIntervals);
|
|
35
|
+
const negativeTicks = Array.from({ length: negativeIntervals }, (_unused, index) => -negativeStep * (negativeIntervals - index));
|
|
36
|
+
const positiveTicks = Array.from({ length: positiveIntervals }, (_unused, index) => positiveStep * (index + 1));
|
|
37
|
+
const ticks = [...negativeTicks, 0, ...positiveTicks];
|
|
38
|
+
return { domain: [ticks[0] ?? minimum, ticks.at(-1) ?? maximum], ticks };
|
|
39
|
+
}
|
|
40
|
+
function ChartBarHorizontal({ title, description, action, summary, aside, footer, headingLevel, data, xKey, valueKey, displayKey, categoryDisplayKey, positiveLabel, negativeLabel, valueFormatter = defaultValueFormatter, axisFormatter, emptyState, size = "default", className, }) {
|
|
41
|
+
const axis = signedAxis(data, valueKey);
|
|
42
|
+
const signedData = data.map((datum) => {
|
|
43
|
+
const value = datum[valueKey];
|
|
44
|
+
const numeric = typeof value === "number" && Number.isFinite(value) ? value : 0;
|
|
45
|
+
return {
|
|
46
|
+
...datum,
|
|
47
|
+
[POSITIVE_KEY]: numeric > 0 ? numeric : 0,
|
|
48
|
+
[NEGATIVE_KEY]: numeric < 0 ? numeric : 0,
|
|
49
|
+
};
|
|
50
|
+
});
|
|
51
|
+
const chartConfig = {
|
|
52
|
+
[POSITIVE_KEY]: { label: positiveLabel, color: POSITIVE_BAR_COLOR },
|
|
53
|
+
[NEGATIVE_KEY]: { label: negativeLabel, color: NEGATIVE_BAR_COLOR },
|
|
54
|
+
};
|
|
55
|
+
return (_jsx(ChartCard, { title: title, description: description, action: action, summary: summary, aside: aside, footer: footer, ...(headingLevel ? { headingLevel } : {}), className: className, children: (titleId) => emptyState && data.length === 0 ? (emptyState) : (_jsx(ChartContainer, { config: chartConfig, className: chartPlotClassName(size), children: _jsxs(BarChart, { accessibilityLayer: true, "aria-labelledby": titleId, data: signedData, layout: "vertical", margin: { left: 8, right: 16 }, children: [_jsx(CartesianGrid, { horizontal: false, strokeDasharray: "3 3" }), _jsx(XAxis, { type: "number", domain: axis.domain, ticks: axis.ticks, tickLine: false, axisLine: false, tickMargin: 8, tickFormatter: (value) => (axisFormatter ?? valueFormatter)(Number(value)) }), _jsx(YAxis, { type: "category", dataKey: xKey, width: 112, tickLine: false, axisLine: false, tickMargin: 8 }), _jsx(ReferenceLine, { x: 0, stroke: "var(--border)", strokeWidth: 1.5 }), _jsx(ChartTooltip, { cursor: false, content: _jsx(ChartTooltipContent, { indicator: "line", labelFormatter: (_label, payload) => {
|
|
56
|
+
const exact = categoryDisplayKey
|
|
57
|
+
? payload?.[0]?.payload?.[categoryDisplayKey]
|
|
58
|
+
: undefined;
|
|
59
|
+
return typeof exact === "string" ? exact : _label;
|
|
60
|
+
}, formatter: (value, _name, item) => {
|
|
61
|
+
if (Number(value) === 0)
|
|
62
|
+
return null;
|
|
63
|
+
const exact = displayKey ? item.payload?.[displayKey] : undefined;
|
|
64
|
+
return (_jsx("span", { className: "ml-auto font-mono font-medium text-foreground tabular-nums", children: typeof exact === "string" ? exact : valueFormatter(Number(value)) }));
|
|
65
|
+
} }) }), _jsx(ChartLegend, { itemSorter: null, content: _jsx(ChartLegendContent, { className: CHART_LEGEND_CLASS }) }), _jsx(Bar, { dataKey: POSITIVE_KEY, stackId: "signed", fill: POSITIVE_BAR_COLOR, radius: [0, 4, 4, 0], maxBarSize: 32 }), _jsx(Bar, { dataKey: NEGATIVE_KEY, stackId: "signed", fill: NEGATIVE_BAR_COLOR, radius: [4, 0, 0, 4], maxBarSize: 32 })] }) })) }));
|
|
66
|
+
}
|
|
67
|
+
export { ChartBarHorizontal, signedAxis };
|
|
@@ -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;
|
|
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,8EAA8E;IAC9E,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,qBAyDhB;AAED,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,YAAY,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -1,39 +1,67 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { cn } from "../lib/utils.js";
|
|
3
|
-
import { ClaudeIcon, DeepseekIcon, GeminiIcon, GrokIcon, MetaIcon, MistralIcon, MoonshotIcon, OpenaiIcon, QwenIcon, } from "./brand-icons.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
* `src/components/brand-icons/` from the LobeHub icon set (MIT), keyed here by
|
|
11
|
-
* the author slug a usage read reports. An author off this allow-list still gets
|
|
12
|
-
* a tile — the neutral register — so a model never falls back to a bare color
|
|
13
|
-
* swatch. Colour alone never identifies a model.
|
|
14
|
-
*
|
|
15
|
-
* Presentation is one component with two readings: a `name` prints the model
|
|
16
|
-
* beside its maker, as a table cell or ranked list reads it; without one the
|
|
17
|
-
* bare mark stands in a chart legend beside that legend's own label. The tile,
|
|
18
|
-
* not the artwork, sets the box: the glyph scales with it because a 24px mark
|
|
19
|
-
* inside an 18px tile would overflow.
|
|
20
|
-
*/
|
|
21
|
-
/**
|
|
22
|
-
* The maker allow-list by author slug, drawn from the icons the Analytics
|
|
23
|
-
* boards used (`nadicodeai/2026-09-18-live-usage`, `mockups/source/icons`).
|
|
24
|
-
* Adding an author is two edits: its mark to the generator's allow-list in
|
|
25
|
-
* `scripts/build-brand-icons.mjs`, then its slug here.
|
|
26
|
-
*/
|
|
3
|
+
import { AionLabsIcon, ArceeIcon, BaiduIcon, ByteDanceIcon, ClaudeIcon, CohereIcon, DeepseekIcon, DolphinIcon, DotsStudioIcon, GeminiIcon, GrokIcon, HuggingFaceIcon, IbmIcon, InclusionAiIcon, InceptionIcon, InferenceIcon, KwaipilotIcon, LiquidIcon, LongcatIcon, MetaIcon, MicrosoftIcon, MinimaxIcon, MistralIcon, MoonshotIcon, MorphIcon, NexAgiIcon, NousResearchIcon, NovaIcon, NvidiaIcon, OpenaiIcon, OpenrouterIcon, PerceptronIcon, PerplexityIcon, PoolsideIcon, QwenIcon, RekaIcon, RelaceIcon, SakanaIcon, StepfunIcon, TencentIcon, TheDrummerIcon, ThinkingMachinesIcon, UnbiasedIcon, UpstageIcon, WriterIcon, XiaomiMimoIcon, ZaiIcon, } from "./brand-icons.js";
|
|
4
|
+
function identity(Mark) {
|
|
5
|
+
return { Mark, source: "identity" };
|
|
6
|
+
}
|
|
7
|
+
function openRouterHuggingFaceFallback() {
|
|
8
|
+
return { Mark: HuggingFaceIcon, source: "openrouter-hugging-face-fallback" };
|
|
9
|
+
}
|
|
27
10
|
const MODEL_AUTHOR_MARKS = {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
"
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
11
|
+
"aion-labs": identity(AionLabsIcon),
|
|
12
|
+
amazon: identity(NovaIcon),
|
|
13
|
+
"anthracite-org": openRouterHuggingFaceFallback(),
|
|
14
|
+
anthropic: identity(ClaudeIcon),
|
|
15
|
+
"arcee-ai": identity(ArceeIcon),
|
|
16
|
+
baidu: identity(BaiduIcon),
|
|
17
|
+
bytedance: identity(ByteDanceIcon),
|
|
18
|
+
"bytedance-seed": identity(ByteDanceIcon),
|
|
19
|
+
cognitivecomputations: identity(DolphinIcon),
|
|
20
|
+
cohere: identity(CohereIcon),
|
|
21
|
+
deepseek: identity(DeepseekIcon),
|
|
22
|
+
"dots-studio": identity(DotsStudioIcon),
|
|
23
|
+
google: identity(GeminiIcon),
|
|
24
|
+
gryphe: openRouterHuggingFaceFallback(),
|
|
25
|
+
"ibm-granite": identity(IbmIcon),
|
|
26
|
+
inception: identity(InceptionIcon),
|
|
27
|
+
inclusionai: identity(InclusionAiIcon),
|
|
28
|
+
"inference-net": identity(InferenceIcon),
|
|
29
|
+
kwaipilot: identity(KwaipilotIcon),
|
|
30
|
+
liquid: identity(LiquidIcon),
|
|
31
|
+
mancer: openRouterHuggingFaceFallback(),
|
|
32
|
+
meituan: identity(LongcatIcon),
|
|
33
|
+
meta: identity(MetaIcon),
|
|
34
|
+
"meta-llama": identity(MetaIcon),
|
|
35
|
+
microsoft: identity(MicrosoftIcon),
|
|
36
|
+
minimax: identity(MinimaxIcon),
|
|
37
|
+
mistralai: identity(MistralIcon),
|
|
38
|
+
moonshotai: identity(MoonshotIcon),
|
|
39
|
+
morph: identity(MorphIcon),
|
|
40
|
+
"nex-agi": identity(NexAgiIcon),
|
|
41
|
+
nousresearch: identity(NousResearchIcon),
|
|
42
|
+
nvidia: identity(NvidiaIcon),
|
|
43
|
+
openai: identity(OpenaiIcon),
|
|
44
|
+
openrouter: identity(OpenrouterIcon),
|
|
45
|
+
perceptron: identity(PerceptronIcon),
|
|
46
|
+
perplexity: identity(PerplexityIcon),
|
|
47
|
+
poolside: identity(PoolsideIcon),
|
|
48
|
+
"prism-ml": openRouterHuggingFaceFallback(),
|
|
49
|
+
qwen: identity(QwenIcon),
|
|
50
|
+
rekaai: identity(RekaIcon),
|
|
51
|
+
relace: identity(RelaceIcon),
|
|
52
|
+
sakana: identity(SakanaIcon),
|
|
53
|
+
sao10k: openRouterHuggingFaceFallback(),
|
|
54
|
+
stepfun: identity(StepfunIcon),
|
|
55
|
+
tencent: identity(TencentIcon),
|
|
56
|
+
thedrummer: identity(TheDrummerIcon),
|
|
57
|
+
thinkingmachines: identity(ThinkingMachinesIcon),
|
|
58
|
+
unbiased: identity(UnbiasedIcon),
|
|
59
|
+
undi95: openRouterHuggingFaceFallback(),
|
|
60
|
+
upstage: identity(UpstageIcon),
|
|
61
|
+
writer: identity(WriterIcon),
|
|
62
|
+
"x-ai": identity(GrokIcon),
|
|
63
|
+
xiaomi: identity(XiaomiMimoIcon),
|
|
64
|
+
"z-ai": identity(ZaiIcon),
|
|
37
65
|
};
|
|
38
66
|
const MODEL_MARK_SIZE = 28;
|
|
39
67
|
/** The glyph's share of the tile, the ratio the boards' generator derived. */
|
|
@@ -47,9 +75,21 @@ const MODEL_MARK_GLYPH_RATIO = 0.62;
|
|
|
47
75
|
function isModelAuthor(slug) {
|
|
48
76
|
return Object.hasOwn(MODEL_AUTHOR_MARKS, slug);
|
|
49
77
|
}
|
|
78
|
+
function normalizedAuthor(author) {
|
|
79
|
+
return author.trim().toLowerCase().replace(/^~+/, "");
|
|
80
|
+
}
|
|
81
|
+
function authorInitials(author) {
|
|
82
|
+
const words = author.split(/[^a-z0-9]+/).filter(Boolean);
|
|
83
|
+
return (words
|
|
84
|
+
.slice(0, 2)
|
|
85
|
+
.map((word) => word[0])
|
|
86
|
+
.join("")
|
|
87
|
+
.toUpperCase() || "?");
|
|
88
|
+
}
|
|
50
89
|
function ModelMark({ author, name, size = MODEL_MARK_SIZE, label, className, ...props }) {
|
|
51
|
-
const slug = author
|
|
52
|
-
const
|
|
90
|
+
const slug = normalizedAuthor(author);
|
|
91
|
+
const definition = isModelAuthor(slug) ? MODEL_AUTHOR_MARKS[slug] : undefined;
|
|
92
|
+
const Mark = definition?.Mark;
|
|
53
93
|
// A name reaches the root from `label` or from the caller's own aria
|
|
54
94
|
// attributes; only the `label` prop also states the role, because a name
|
|
55
95
|
// alone on a generic element is not an accessible name. A mark with no name
|
|
@@ -61,6 +101,6 @@ function ModelMark({ author, name, size = MODEL_MARK_SIZE, label, className, ...
|
|
|
61
101
|
: label?.trim()
|
|
62
102
|
? { role: "img", "aria-label": label }
|
|
63
103
|
: {};
|
|
64
|
-
return (_jsxs("span", { "data-slot": "model-mark", "data-author": author, className: cn("inline-flex min-w-0 items-center gap-1.5", className), ...props, ...labelling, children: [_jsx("span", { "data-slot": "model-mark-tile", "data-mark": Mark ? "brand" : "
|
|
104
|
+
return (_jsxs("span", { "data-slot": "model-mark", "data-author": author, "data-resolved-author": slug, className: cn("inline-flex min-w-0 items-center gap-1.5", className), ...props, ...labelling, children: [_jsx("span", { "data-slot": "model-mark-tile", "data-mark": Mark ? "brand" : "monogram", "data-mark-source": definition?.source, "aria-hidden": "true", className: "inline-flex shrink-0 items-center justify-center rounded-md border border-border bg-background text-foreground", style: { width: size, height: size }, children: Mark ? (_jsx(Mark, { size: Math.round(size * MODEL_MARK_GLYPH_RATIO) })) : (_jsx("span", { "aria-hidden": "true", className: "font-semibold leading-none text-muted-foreground", "data-slot": "model-author-monogram", style: { fontSize: Math.max(8, Math.round(size * 0.32)) }, children: authorInitials(slug) })) }), name ? (_jsxs("span", { className: "min-w-0 truncate", children: [_jsx("span", { className: "font-medium", children: name }), " ", _jsx("span", { className: "text-xs text-muted-foreground", children: author })] })) : null] }));
|
|
65
105
|
}
|
|
66
106
|
export { ModelMark };
|
package/dist/index.d.ts
CHANGED
|
@@ -29,6 +29,7 @@ export * from "./components/carousel.js";
|
|
|
29
29
|
export * from "./components/chart.js";
|
|
30
30
|
export * from "./components/chart-area-stacked.js";
|
|
31
31
|
export * from "./components/chart-bar-multiple.js";
|
|
32
|
+
export * from "./components/chart-bar-horizontal.js";
|
|
32
33
|
export * from "./components/chart-bar-stacked.js";
|
|
33
34
|
export * from "./components/chart-card.js";
|
|
34
35
|
export * from "./components/chart-date-range.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":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uCAAuC,CAAC;AACtD,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mCAAmC,CAAC;AAClD,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -29,6 +29,7 @@ export * from "./components/carousel.js";
|
|
|
29
29
|
export * from "./components/chart.js";
|
|
30
30
|
export * from "./components/chart-area-stacked.js";
|
|
31
31
|
export * from "./components/chart-bar-multiple.js";
|
|
32
|
+
export * from "./components/chart-bar-horizontal.js";
|
|
32
33
|
export * from "./components/chart-bar-stacked.js";
|
|
33
34
|
export * from "./components/chart-card.js";
|
|
34
35
|
export * from "./components/chart-date-range.js";
|