@nadicodeai/ui 12.1.40 → 12.1.42
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/dist/components/text-link.d.ts +7 -0
- package/dist/components/text-link.d.ts.map +1 -0
- package/dist/components/text-link.js +14 -0
- package/dist/eslint/rules/one-control-height.js +32 -11
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type VariantProps } from "class-variance-authority";
|
|
2
|
+
declare const textLinkVariants: (props?: ({
|
|
3
|
+
kind?: "plain" | "inline" | "quiet" | null | undefined;
|
|
4
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
5
|
+
type TextLinkKind = NonNullable<VariantProps<typeof textLinkVariants>["kind"]>;
|
|
6
|
+
export { textLinkVariants, type TextLinkKind };
|
|
7
|
+
//# sourceMappingURL=text-link.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-link.d.ts","sourceRoot":"","sources":["../../src/components/text-link.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,QAAA,MAAM,gBAAgB;;8EAYpB,CAAC;AAEH,KAAK,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAE/E,OAAO,EAAE,gBAAgB,EAAE,KAAK,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { cva } from "class-variance-authority";
|
|
2
|
+
const textLinkVariants = cva("nc-transition-paint rounded-md underline-offset-4", {
|
|
3
|
+
variants: {
|
|
4
|
+
kind: {
|
|
5
|
+
inline: "text-(--nc-link) underline hover:decoration-2",
|
|
6
|
+
plain: "hover:underline",
|
|
7
|
+
quiet: "inline-flex w-fit shrink-0 items-center gap-1 text-muted-foreground hover:text-foreground hover:underline [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
8
|
+
},
|
|
9
|
+
},
|
|
10
|
+
defaultVariants: {
|
|
11
|
+
kind: "plain",
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
export { textLinkVariants };
|
|
@@ -12,8 +12,9 @@
|
|
|
12
12
|
* What is read is a JSX element that is a control (a name ending in `Button`
|
|
13
13
|
* or `Trigger`, or a `Toggle`/`ToggleGroupItem`/`NativeSelect`) and its `size`
|
|
14
14
|
* attribute and the heights its `className` sets (`h-7`, `min-h-7`, `size-7`,
|
|
15
|
-
* `h-[28px]
|
|
16
|
-
*
|
|
15
|
+
* `h-[28px]`, and a fixed `h-10` or `size-10` above the control unless every
|
|
16
|
+
* branch of its `size` is `"lg"`), with `!` read on either side, plus the `triggerSize` attribute a confirm
|
|
17
|
+
* form passes to the button it renders, plus the `size` key of a `buttonVariants({ ... })` or
|
|
17
18
|
* `toggleVariants({ ... })` call that styles a link as a button.
|
|
18
19
|
* A string literal is read directly and through both branches of a
|
|
19
20
|
* conditional, so `size={compact ? "sm" : "default"}` is reported too.
|
|
@@ -57,17 +58,24 @@ function variantsAndUtility(className) {
|
|
|
57
58
|
start = index + 1;
|
|
58
59
|
}
|
|
59
60
|
}
|
|
60
|
-
return { variants: parts, utility: className.slice(start).replace(
|
|
61
|
+
return { variants: parts, utility: className.slice(start).replace(/^!|!$/g, "") };
|
|
61
62
|
}
|
|
62
63
|
|
|
63
|
-
function
|
|
64
|
+
function offHeight(className) {
|
|
64
65
|
const { variants, utility } = variantsAndUtility(className);
|
|
65
66
|
if (variants.some((variant) => variant.startsWith("[&") || /^\*{1,2}$/.test(variant)))
|
|
66
|
-
return
|
|
67
|
-
const match =
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
67
|
+
return undefined;
|
|
68
|
+
const match =
|
|
69
|
+
/^(?<property>min-h|h|size)-(?:(?<steps>\d+(?:\.\d+)?)|\[(?<px>\d+(?:\.\d+)?)px\])$/.exec(
|
|
70
|
+
utility,
|
|
71
|
+
);
|
|
72
|
+
if (!match?.groups) return undefined;
|
|
73
|
+
const { property, steps, px } = match.groups;
|
|
74
|
+
const pixels = steps === undefined ? Number(px) : Number(steps) * SPACING_UNIT_PX;
|
|
75
|
+
const growsFromFloor = property === "min-h";
|
|
76
|
+
if (pixels > 0 && pixels < CONTROL_HEIGHT_PX) return "small";
|
|
77
|
+
if (pixels > CONTROL_HEIGHT_PX && !growsFromFloor) return "tall";
|
|
78
|
+
return undefined;
|
|
71
79
|
}
|
|
72
80
|
|
|
73
81
|
function literals(node) {
|
|
@@ -102,6 +110,8 @@ export const oneControlHeight = {
|
|
|
102
110
|
'{{attribute}}="{{size}}" renders this control below the 32px control height. Product chrome uses one control: drop the size for the default, or use "icon" for an icon-only control (DESIGN.md "Layout", rule/one-control-height).',
|
|
103
111
|
smallClassHeight:
|
|
104
112
|
'"{{utility}}" sets this control below the 32px control height. Product chrome uses one control: drop the height and let the control keep `h-control-height` (DESIGN.md "Layout", rule/one-control-height).',
|
|
113
|
+
tallClassHeight:
|
|
114
|
+
'"{{utility}}" sets this control above the 32px control height. Product chrome uses one control: drop the height and let the control keep `h-control-height` (DESIGN.md "Layout", rule/one-control-height).',
|
|
105
115
|
},
|
|
106
116
|
},
|
|
107
117
|
create(context) {
|
|
@@ -126,9 +136,20 @@ export const oneControlHeight = {
|
|
|
126
136
|
const attributeName = attribute.name.type === "JSXIdentifier" ? attribute.name.name : "";
|
|
127
137
|
if (attributeName === "className") {
|
|
128
138
|
if (!isControl(jsxComponentName(attribute.parent, context))) return;
|
|
139
|
+
const large = attribute.parent.attributes.some((other) => {
|
|
140
|
+
if (other.type !== "JSXAttribute" || other.name.name !== "size") return false;
|
|
141
|
+
const sizes = literals(other.value);
|
|
142
|
+
return sizes.length > 0 && sizes.every(({ value }) => value === "lg");
|
|
143
|
+
});
|
|
129
144
|
for (const utility of classUtilities(attribute, context)) {
|
|
130
|
-
|
|
131
|
-
|
|
145
|
+
const off = offHeight(utility);
|
|
146
|
+
if (off === "tall" && large) continue;
|
|
147
|
+
if (off)
|
|
148
|
+
context.report({
|
|
149
|
+
node: attribute,
|
|
150
|
+
messageId: `${off}ClassHeight`,
|
|
151
|
+
data: { utility },
|
|
152
|
+
});
|
|
132
153
|
}
|
|
133
154
|
return;
|
|
134
155
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -108,6 +108,7 @@ export * from "./components/table-card.js";
|
|
|
108
108
|
export * from "./components/table-value.js";
|
|
109
109
|
export * from "./components/object-workspace.js";
|
|
110
110
|
export * from "./components/tabs.js";
|
|
111
|
+
export * from "./components/text-link.js";
|
|
111
112
|
export * from "./components/textarea.js";
|
|
112
113
|
export * from "./components/theme-mode-switcher.js";
|
|
113
114
|
export * from "./components/toggle.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
|
@@ -108,6 +108,7 @@ export * from "./components/table-card.js";
|
|
|
108
108
|
export * from "./components/table-value.js";
|
|
109
109
|
export * from "./components/object-workspace.js";
|
|
110
110
|
export * from "./components/tabs.js";
|
|
111
|
+
export * from "./components/text-link.js";
|
|
111
112
|
export * from "./components/textarea.js";
|
|
112
113
|
export * from "./components/theme-mode-switcher.js";
|
|
113
114
|
export * from "./components/toggle.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nadicodeai/ui",
|
|
3
|
-
"version": "12.1.
|
|
3
|
+
"version": "12.1.42",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"@assistant-ui/react": "0.15.22",
|
|
78
78
|
"@assistant-ui/react-markdown": "0.14.17",
|
|
79
79
|
"@base-ui/react": "^1.8.0",
|
|
80
|
-
"@nadicodeai/design-system": "12.1.
|
|
80
|
+
"@nadicodeai/design-system": "12.1.42",
|
|
81
81
|
"class-variance-authority": "^0.7.1",
|
|
82
82
|
"clsx": "^2.1.1",
|
|
83
83
|
"cmdk": "^1.1.1",
|