@tomny-dev/uzi 0.2.4 → 0.2.6
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/index.cjs +66 -2
- package/dist/index.js +25 -1594
- package/dist/index10.cjs +26 -0
- package/dist/index10.cjs.map +1 -0
- package/dist/index10.js +19 -0
- package/dist/index10.js.map +1 -0
- package/dist/index11.cjs +22 -0
- package/dist/index11.cjs.map +1 -0
- package/dist/index11.js +22 -0
- package/dist/index11.js.map +1 -0
- package/dist/index12.cjs +22 -0
- package/dist/index12.cjs.map +1 -0
- package/dist/index12.js +41 -0
- package/dist/index12.js.map +1 -0
- package/dist/index13.cjs +56 -0
- package/dist/index13.cjs.map +1 -0
- package/dist/index13.js +84 -0
- package/dist/index13.js.map +1 -0
- package/dist/index14.cjs +87 -0
- package/dist/index14.cjs.map +1 -0
- package/dist/index14.js +17 -0
- package/dist/index14.js.map +1 -0
- package/dist/index15.cjs +22 -0
- package/dist/index15.cjs.map +1 -0
- package/dist/index15.js +16 -0
- package/dist/index15.js.map +1 -0
- package/dist/index16.cjs +16 -0
- package/dist/index16.cjs.map +1 -0
- package/dist/index16.js +45 -0
- package/dist/index16.js.map +1 -0
- package/dist/index17.cjs +64 -0
- package/dist/index17.cjs.map +1 -0
- package/dist/index17.js +435 -0
- package/dist/index17.js.map +1 -0
- package/dist/index18.cjs +438 -0
- package/dist/index18.cjs.map +1 -0
- package/dist/index18.js +7 -0
- package/dist/index18.js.map +1 -0
- package/dist/index19.cjs +8 -0
- package/dist/index19.cjs.map +1 -0
- package/dist/index19.js +18 -0
- package/dist/index19.js.map +1 -0
- package/dist/index2.cjs +23 -0
- package/dist/index20.cjs +20 -0
- package/dist/index20.cjs.map +1 -0
- package/dist/index20.js +7 -0
- package/dist/index20.js.map +1 -0
- package/dist/index21.cjs +8 -0
- package/dist/index21.cjs.map +1 -0
- package/dist/index21.js +15 -0
- package/dist/index21.js.map +1 -0
- package/dist/index22.cjs +17 -0
- package/dist/index22.cjs.map +1 -0
- package/dist/index22.js +7 -0
- package/dist/index22.js.map +1 -0
- package/dist/index23.cjs +8 -0
- package/dist/index23.cjs.map +1 -0
- package/dist/index23.js +18 -0
- package/dist/index23.js.map +1 -0
- package/dist/index24.cjs +20 -0
- package/dist/index24.cjs.map +1 -0
- package/dist/index24.js +41 -0
- package/dist/index24.js.map +1 -0
- package/dist/index25.cjs +58 -0
- package/dist/index25.cjs.map +1 -0
- package/dist/index25.js +123 -0
- package/dist/index25.js.map +1 -0
- package/dist/index26.cjs +126 -0
- package/dist/index26.cjs.map +1 -0
- package/dist/index26.js +29 -0
- package/dist/index26.js.map +1 -0
- package/dist/index27.cjs +40 -0
- package/dist/index27.cjs.map +1 -0
- package/dist/index27.js +110 -0
- package/dist/index27.js.map +1 -0
- package/dist/index28.cjs +113 -0
- package/dist/index28.cjs.map +1 -0
- package/dist/index28.js +26 -0
- package/dist/index28.js.map +1 -0
- package/dist/index29.cjs +28 -0
- package/dist/index29.cjs.map +1 -0
- package/dist/index29.js +29 -0
- package/dist/index29.js.map +1 -0
- package/dist/index3.js +8 -0
- package/dist/index3.js.map +1 -0
- package/dist/index30.cjs +40 -0
- package/dist/index30.cjs.map +1 -0
- package/dist/index30.js +118 -0
- package/dist/index30.js.map +1 -0
- package/dist/index31.cjs +134 -0
- package/dist/index31.cjs.map +1 -0
- package/dist/index31.js +20 -0
- package/dist/index31.js.map +1 -0
- package/dist/index32.cjs +23 -0
- package/dist/index32.cjs.map +1 -0
- package/dist/index32.js +114 -0
- package/dist/index32.js.map +1 -0
- package/dist/index33.cjs +115 -0
- package/dist/index33.cjs.map +1 -0
- package/dist/index33.js +7 -0
- package/dist/index33.js.map +1 -0
- package/dist/index34.cjs +8 -0
- package/dist/index34.cjs.map +1 -0
- package/dist/index34.js +66 -0
- package/dist/index34.js.map +1 -0
- package/dist/index35.cjs +66 -0
- package/dist/index35.cjs.map +1 -0
- package/dist/index35.js +25 -0
- package/dist/index35.js.map +1 -0
- package/dist/index36.cjs +34 -0
- package/dist/index36.cjs.map +1 -0
- package/dist/index36.js +55 -0
- package/dist/index36.js.map +1 -0
- package/dist/index37.cjs +55 -0
- package/dist/index37.cjs.map +1 -0
- package/dist/index37.js +35 -0
- package/dist/index37.js.map +1 -0
- package/dist/index38.cjs +49 -0
- package/dist/index38.cjs.map +1 -0
- package/dist/index38.js +150 -0
- package/dist/index38.js.map +1 -0
- package/dist/index39.cjs +150 -0
- package/dist/index39.cjs.map +1 -0
- package/dist/index39.js +43 -0
- package/dist/index39.js.map +1 -0
- package/dist/index4.cjs +8 -0
- package/dist/index4.cjs.map +1 -0
- package/dist/index4.js +29 -0
- package/dist/index4.js.map +1 -0
- package/dist/index40.cjs +61 -0
- package/dist/index40.cjs.map +1 -0
- package/dist/index40.js +173 -0
- package/dist/index40.js.map +1 -0
- package/dist/index41.cjs +173 -0
- package/dist/index41.cjs.map +1 -0
- package/dist/index41.js +14 -0
- package/dist/index41.js.map +1 -0
- package/dist/index42.cjs +15 -0
- package/dist/index42.cjs.map +1 -0
- package/dist/index42.js +21 -0
- package/dist/index42.js.map +1 -0
- package/dist/index43.cjs +21 -0
- package/dist/index43.cjs.map +1 -0
- package/dist/index43.js +15 -0
- package/dist/index43.js.map +1 -0
- package/dist/index44.cjs +17 -0
- package/dist/index44.cjs.map +1 -0
- package/dist/index44.js +24 -0
- package/dist/index44.js.map +1 -0
- package/dist/index45.cjs +24 -0
- package/dist/index45.cjs.map +1 -0
- package/dist/index45.js +13 -0
- package/dist/index45.js.map +1 -0
- package/dist/index46.cjs +16 -0
- package/dist/index46.cjs.map +1 -0
- package/dist/index46.js +96 -0
- package/dist/index46.js.map +1 -0
- package/dist/index47.cjs +98 -0
- package/dist/index47.cjs.map +1 -0
- package/dist/index5.cjs +40 -0
- package/dist/index5.cjs.map +1 -0
- package/dist/index5.js +45 -0
- package/dist/index5.js.map +1 -0
- package/dist/index6.cjs +47 -0
- package/dist/index6.cjs.map +1 -0
- package/dist/index6.js +17 -0
- package/dist/index6.js.map +1 -0
- package/dist/index7.cjs +20 -0
- package/dist/index7.cjs.map +1 -0
- package/dist/index7.js +30 -0
- package/dist/index7.js.map +1 -0
- package/dist/index8.cjs +35 -0
- package/dist/index8.cjs.map +1 -0
- package/dist/index8.js +18 -0
- package/dist/index8.js.map +1 -0
- package/dist/index9.cjs +20 -0
- package/dist/index9.cjs.map +1 -0
- package/dist/index9.js +26 -0
- package/dist/index9.js.map +1 -0
- package/dist/style.css +2025 -1
- package/package.json +1 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
package/dist/index47.cjs
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
const require_runtime = require("./index2.cjs");
|
|
3
|
+
const require_cx = require("./index4.cjs");
|
|
4
|
+
const require_segmented_toggle_module = require("./index46.cjs");
|
|
5
|
+
let react = require("react");
|
|
6
|
+
react = require_runtime.__toESM(react, 1);
|
|
7
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
8
|
+
//#region src/components/segmented-toggle/SegmentedToggle.tsx
|
|
9
|
+
function SegmentedToggle({ options, value, onChange, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, className }) {
|
|
10
|
+
const itemRefs = react.useRef([]);
|
|
11
|
+
const selectedIndex = options.findIndex((opt) => opt.value === value);
|
|
12
|
+
const fallbackIndex = options.findIndex((opt) => !opt.disabled);
|
|
13
|
+
let lastEnabledIndex = -1;
|
|
14
|
+
for (let index = options.length - 1; index >= 0; index -= 1) if (!options[index]?.disabled) {
|
|
15
|
+
lastEnabledIndex = index;
|
|
16
|
+
break;
|
|
17
|
+
}
|
|
18
|
+
const tabbableIndex = selectedIndex >= 0 && !options[selectedIndex]?.disabled ? selectedIndex : fallbackIndex;
|
|
19
|
+
const focusItem = (index) => {
|
|
20
|
+
itemRefs.current[index]?.focus();
|
|
21
|
+
};
|
|
22
|
+
const findEnabledIndex = (startIndex, direction) => {
|
|
23
|
+
if (options.length === 0) return -1;
|
|
24
|
+
let nextIndex = startIndex;
|
|
25
|
+
for (let i = 0; i < options.length; i += 1) {
|
|
26
|
+
nextIndex = (nextIndex + direction + options.length) % options.length;
|
|
27
|
+
if (!options[nextIndex]?.disabled) return nextIndex;
|
|
28
|
+
}
|
|
29
|
+
return startIndex;
|
|
30
|
+
};
|
|
31
|
+
const selectIndex = (index) => {
|
|
32
|
+
const nextOption = options[index];
|
|
33
|
+
if (!nextOption || nextOption.disabled || nextOption.value === value) return;
|
|
34
|
+
onChange(nextOption.value);
|
|
35
|
+
};
|
|
36
|
+
const handleKeyDown = (event, index) => {
|
|
37
|
+
switch (event.key) {
|
|
38
|
+
case "ArrowRight":
|
|
39
|
+
case "ArrowDown": {
|
|
40
|
+
event.preventDefault();
|
|
41
|
+
const nextIndex = findEnabledIndex(index, 1);
|
|
42
|
+
focusItem(nextIndex);
|
|
43
|
+
selectIndex(nextIndex);
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
case "ArrowLeft":
|
|
47
|
+
case "ArrowUp": {
|
|
48
|
+
event.preventDefault();
|
|
49
|
+
const nextIndex = findEnabledIndex(index, -1);
|
|
50
|
+
focusItem(nextIndex);
|
|
51
|
+
selectIndex(nextIndex);
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
case "Home":
|
|
55
|
+
event.preventDefault();
|
|
56
|
+
focusItem(fallbackIndex);
|
|
57
|
+
if (fallbackIndex >= 0) selectIndex(fallbackIndex);
|
|
58
|
+
break;
|
|
59
|
+
case "End":
|
|
60
|
+
event.preventDefault();
|
|
61
|
+
if (lastEnabledIndex >= 0) {
|
|
62
|
+
focusItem(lastEnabledIndex);
|
|
63
|
+
selectIndex(lastEnabledIndex);
|
|
64
|
+
}
|
|
65
|
+
break;
|
|
66
|
+
default: break;
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
70
|
+
className: require_cx.cx(require_segmented_toggle_module.default.track, className),
|
|
71
|
+
role: "radiogroup",
|
|
72
|
+
"aria-label": ariaLabel,
|
|
73
|
+
"aria-labelledby": ariaLabelledBy,
|
|
74
|
+
children: options.map((opt, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
75
|
+
ref: (node) => {
|
|
76
|
+
itemRefs.current[index] = node;
|
|
77
|
+
},
|
|
78
|
+
type: "button",
|
|
79
|
+
role: "radio",
|
|
80
|
+
"aria-checked": opt.value === value,
|
|
81
|
+
disabled: opt.disabled,
|
|
82
|
+
tabIndex: opt.disabled ? -1 : index === tabbableIndex ? 0 : -1,
|
|
83
|
+
onClick: () => {
|
|
84
|
+
if (opt.value !== value) onChange(opt.value);
|
|
85
|
+
},
|
|
86
|
+
onKeyDown: (event) => handleKeyDown(event, index),
|
|
87
|
+
className: require_cx.cx(require_segmented_toggle_module.default.option),
|
|
88
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
89
|
+
className: require_segmented_toggle_module.default.label,
|
|
90
|
+
children: opt.label
|
|
91
|
+
})
|
|
92
|
+
}, opt.value))
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
//#endregion
|
|
96
|
+
exports.SegmentedToggle = SegmentedToggle;
|
|
97
|
+
|
|
98
|
+
//# sourceMappingURL=index47.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index47.cjs","names":[],"sources":["../src/components/segmented-toggle/SegmentedToggle.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport type { ReactNode } from \"react\";\nimport { cx } from \"../../utils/cx\";\nimport styles from \"./segmented-toggle.module.css\";\n\nexport type SegmentedToggleOption<T extends string = string> = {\n label: ReactNode;\n value: T;\n disabled?: boolean;\n};\n\nexport type SegmentedToggleProps<T extends string = string> = {\n options: SegmentedToggleOption<T>[];\n value: T;\n onChange: (value: T) => void;\n \"aria-label\"?: string;\n \"aria-labelledby\"?: string;\n className?: string;\n};\n\nexport function SegmentedToggle<T extends string = string>({\n options,\n value,\n onChange,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n className,\n}: SegmentedToggleProps<T>) {\n const itemRefs = React.useRef<Array<HTMLButtonElement | null>>([]);\n const selectedIndex = options.findIndex((opt) => opt.value === value);\n const fallbackIndex = options.findIndex((opt) => !opt.disabled);\n let lastEnabledIndex = -1;\n for (let index = options.length - 1; index >= 0; index -= 1) {\n if (!options[index]?.disabled) {\n lastEnabledIndex = index;\n break;\n }\n }\n const tabbableIndex =\n selectedIndex >= 0 && !options[selectedIndex]?.disabled\n ? selectedIndex\n : fallbackIndex;\n\n const focusItem = (index: number) => {\n itemRefs.current[index]?.focus();\n };\n\n const findEnabledIndex = (\n startIndex: number,\n direction: 1 | -1,\n ): number => {\n if (options.length === 0) return -1;\n\n let nextIndex = startIndex;\n for (let i = 0; i < options.length; i += 1) {\n nextIndex = (nextIndex + direction + options.length) % options.length;\n if (!options[nextIndex]?.disabled) {\n return nextIndex;\n }\n }\n\n return startIndex;\n };\n\n const selectIndex = (index: number) => {\n const nextOption = options[index];\n if (!nextOption || nextOption.disabled || nextOption.value === value) {\n return;\n }\n onChange(nextOption.value);\n };\n\n const handleKeyDown = (\n event: React.KeyboardEvent<HTMLButtonElement>,\n index: number,\n ) => {\n switch (event.key) {\n case \"ArrowRight\":\n case \"ArrowDown\": {\n event.preventDefault();\n const nextIndex = findEnabledIndex(index, 1);\n focusItem(nextIndex);\n selectIndex(nextIndex);\n break;\n }\n case \"ArrowLeft\":\n case \"ArrowUp\": {\n event.preventDefault();\n const nextIndex = findEnabledIndex(index, -1);\n focusItem(nextIndex);\n selectIndex(nextIndex);\n break;\n }\n case \"Home\": {\n event.preventDefault();\n focusItem(fallbackIndex);\n if (fallbackIndex >= 0) {\n selectIndex(fallbackIndex);\n }\n break;\n }\n case \"End\": {\n event.preventDefault();\n if (lastEnabledIndex >= 0) {\n focusItem(lastEnabledIndex);\n selectIndex(lastEnabledIndex);\n }\n break;\n }\n default:\n break;\n }\n };\n\n return (\n <div\n className={cx(styles.track, className)}\n role=\"radiogroup\"\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n {options.map((opt, index) => (\n <button\n key={opt.value}\n ref={(node) => {\n itemRefs.current[index] = node;\n }}\n type=\"button\"\n role=\"radio\"\n aria-checked={opt.value === value}\n disabled={opt.disabled}\n tabIndex={\n opt.disabled\n ? -1\n : index === tabbableIndex\n ? 0\n : -1\n }\n onClick={() => {\n if (opt.value !== value) {\n onChange(opt.value);\n }\n }}\n onKeyDown={(event) => handleKeyDown(event, index)}\n className={cx(styles.option)}\n >\n <span className={styles.label}>{opt.label}</span>\n </button>\n ))}\n </div>\n );\n}\n"],"mappings":";;;;;;;;AAsBA,SAAgB,gBAA2C,EACzD,SACA,OACA,UACA,cAAc,WACd,mBAAmB,gBACnB,aAC0B;CAC1B,MAAM,WAAW,MAAM,OAAwC,CAAC,CAAC;CACjE,MAAM,gBAAgB,QAAQ,WAAW,QAAQ,IAAI,UAAU,KAAK;CACpE,MAAM,gBAAgB,QAAQ,WAAW,QAAQ,CAAC,IAAI,QAAQ;CAC9D,IAAI,mBAAmB;CACvB,KAAK,IAAI,QAAQ,QAAQ,SAAS,GAAG,SAAS,GAAG,SAAS,GACxD,IAAI,CAAC,QAAQ,MAAM,EAAE,UAAU;EAC7B,mBAAmB;EACnB;CACF;CAEF,MAAM,gBACJ,iBAAiB,KAAK,CAAC,QAAQ,cAAc,EAAE,WAC3C,gBACA;CAEN,MAAM,aAAa,UAAkB;EACnC,SAAS,QAAQ,MAAM,EAAE,MAAM;CACjC;CAEA,MAAM,oBACJ,YACA,cACW;EACX,IAAI,QAAQ,WAAW,GAAG,OAAO;EAEjC,IAAI,YAAY;EAChB,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,GAAG;GAC1C,aAAa,YAAY,YAAY,QAAQ,UAAU,QAAQ;GAC/D,IAAI,CAAC,QAAQ,UAAU,EAAE,UACvB,OAAO;EAEX;EAEA,OAAO;CACT;CAEA,MAAM,eAAe,UAAkB;EACrC,MAAM,aAAa,QAAQ;EAC3B,IAAI,CAAC,cAAc,WAAW,YAAY,WAAW,UAAU,OAC7D;EAEF,SAAS,WAAW,KAAK;CAC3B;CAEA,MAAM,iBACJ,OACA,UACG;EACH,QAAQ,MAAM,KAAd;GACE,KAAK;GACL,KAAK,aAAa;IAChB,MAAM,eAAe;IACrB,MAAM,YAAY,iBAAiB,OAAO,CAAC;IAC3C,UAAU,SAAS;IACnB,YAAY,SAAS;IACrB;GACF;GACA,KAAK;GACL,KAAK,WAAW;IACd,MAAM,eAAe;IACrB,MAAM,YAAY,iBAAiB,OAAO,EAAE;IAC5C,UAAU,SAAS;IACnB,YAAY,SAAS;IACrB;GACF;GACA,KAAK;IACH,MAAM,eAAe;IACrB,UAAU,aAAa;IACvB,IAAI,iBAAiB,GACnB,YAAY,aAAa;IAE3B;GAEF,KAAK;IACH,MAAM,eAAe;IACrB,IAAI,oBAAoB,GAAG;KACzB,UAAU,gBAAgB;KAC1B,YAAY,gBAAgB;IAC9B;IACA;GAEF,SACE;EACJ;CACF;CAEA,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,WAAW,WAAA,GAAG,gCAAA,QAAO,OAAO,SAAS;EACrC,MAAK;EACL,cAAY;EACZ,mBAAiB;YAEhB,QAAQ,KAAK,KAAK,UACjB,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;GAEE,MAAM,SAAS;IACb,SAAS,QAAQ,SAAS;GAC5B;GACA,MAAK;GACL,MAAK;GACL,gBAAc,IAAI,UAAU;GAC5B,UAAU,IAAI;GACd,UACE,IAAI,WACA,KACA,UAAU,gBACR,IACA;GAER,eAAe;IACb,IAAI,IAAI,UAAU,OAChB,SAAS,IAAI,KAAK;GAEtB;GACA,YAAY,UAAU,cAAc,OAAO,KAAK;GAChD,WAAW,WAAA,GAAG,gCAAA,QAAO,MAAM;aAE3B,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;IAAM,WAAW,gCAAA,QAAO;cAAQ,IAAI;GAAY,CAAA;EAC1C,GAxBD,IAAI,KAwBH,CACT;CACE,CAAA;AAET"}
|
package/dist/index5.cjs
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
//#region src/components/button/button.module.css
|
|
2
|
+
var button = "uzi-button-module__button__5dzDN";
|
|
3
|
+
var sizeSm = "uzi-button-module__sizeSm__jb544";
|
|
4
|
+
var sizeMd = "uzi-button-module__sizeMd__lIo8M";
|
|
5
|
+
var sizeLg = "uzi-button-module__sizeLg__QSSuW";
|
|
6
|
+
var sizeIcon = "uzi-button-module__sizeIcon__Aa9tN";
|
|
7
|
+
var variantPrimary = "uzi-button-module__variantPrimary__zp2Pg";
|
|
8
|
+
var variantSecondary = "uzi-button-module__variantSecondary__oX5CB";
|
|
9
|
+
var variantOutline = "uzi-button-module__variantOutline__uXfiP";
|
|
10
|
+
var variantGhost = "uzi-button-module__variantGhost__-OEB8";
|
|
11
|
+
var variantDestructive = "uzi-button-module__variantDestructive__5IeYA";
|
|
12
|
+
var variantLink = "uzi-button-module__variantLink__Olx4I";
|
|
13
|
+
var button_module_default = {
|
|
14
|
+
button,
|
|
15
|
+
sizeSm,
|
|
16
|
+
sizeMd,
|
|
17
|
+
sizeLg,
|
|
18
|
+
sizeIcon,
|
|
19
|
+
variantPrimary,
|
|
20
|
+
variantSecondary,
|
|
21
|
+
variantOutline,
|
|
22
|
+
variantGhost,
|
|
23
|
+
variantDestructive,
|
|
24
|
+
variantLink
|
|
25
|
+
};
|
|
26
|
+
//#endregion
|
|
27
|
+
exports.button = button;
|
|
28
|
+
exports.default = button_module_default;
|
|
29
|
+
exports.sizeIcon = sizeIcon;
|
|
30
|
+
exports.sizeLg = sizeLg;
|
|
31
|
+
exports.sizeMd = sizeMd;
|
|
32
|
+
exports.sizeSm = sizeSm;
|
|
33
|
+
exports.variantDestructive = variantDestructive;
|
|
34
|
+
exports.variantGhost = variantGhost;
|
|
35
|
+
exports.variantLink = variantLink;
|
|
36
|
+
exports.variantOutline = variantOutline;
|
|
37
|
+
exports.variantPrimary = variantPrimary;
|
|
38
|
+
exports.variantSecondary = variantSecondary;
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=index5.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index5.cjs","names":[],"sources":["../src/components/button/button.module.css"],"sourcesContent":[".button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n font-family: inherit;\n font-weight: 600;\n border-radius: 8px;\n border: 1px solid transparent;\n cursor: pointer;\n text-decoration: none;\n transition:\n opacity 0.15s,\n border-color 0.15s,\n color 0.15s,\n background 0.15s;\n white-space: nowrap;\n line-height: 1;\n}\n\n.button:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n}\n\n.button svg {\n width: 1rem;\n height: 1rem;\n flex-shrink: 0;\n}\n\n.button:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n\n/* Sizes */\n.sizeSm {\n font-size: 0.82rem;\n min-height: 2rem;\n padding: 6px 14px;\n}\n\n.sizeMd {\n font-size: 0.95rem;\n min-height: 2.25rem;\n padding: 10px 22px;\n}\n\n.sizeLg {\n font-size: 1rem;\n min-height: 2.5rem;\n padding: 12px 28px;\n}\n\n.sizeIcon {\n width: 2.25rem;\n height: 2.25rem;\n padding: 0;\n}\n\n/* Variants */\n.variantPrimary {\n background: var(--ts-btn-primary-bg, var(--primary));\n color: var(--ts-btn-primary-text, var(--primary-foreground));\n}\n\n.variantPrimary:hover:not(:disabled) {\n opacity: 0.88;\n}\n\n.variantSecondary {\n background: var(--ts-btn-secondary-bg, var(--secondary));\n color: var(--ts-btn-secondary-text, var(--secondary-foreground));\n border-color: var(--ts-btn-secondary-border, var(--border));\n}\n\n.variantSecondary:hover:not(:disabled) {\n background: var(--ts-btn-secondary-hover-bg, color-mix(in srgb, var(--secondary) 90%, black));\n}\n\n.variantOutline {\n background: var(--ts-btn-outline-bg, var(--background));\n color: var(--ts-btn-outline-text, var(--foreground));\n border-color: var(--ts-btn-outline-border, var(--border));\n}\n\n.variantOutline:hover:not(:disabled) {\n background: var(--ts-btn-outline-hover-bg, var(--accent));\n color: var(--ts-btn-outline-hover-text, var(--accent-foreground));\n}\n\n.variantGhost {\n background: transparent;\n color: var(--ts-btn-ghost-text, var(--muted-foreground));\n padding-left: 8px;\n padding-right: 8px;\n}\n\n.variantGhost:hover:not(:disabled) {\n background: var(--ts-btn-ghost-hover-bg, var(--accent));\n color: var(--ts-btn-ghost-hover-text, var(--accent-foreground));\n}\n\n.variantDestructive {\n background: var(--ts-btn-danger-bg, var(--destructive));\n color: var(--ts-btn-danger-text, var(--destructive-foreground));\n}\n\n.variantDestructive:hover:not(:disabled) {\n opacity: 0.9;\n}\n\n.variantLink {\n background: transparent;\n color: var(--ts-btn-link-text, var(--primary));\n border-color: transparent;\n min-height: auto;\n padding: 0;\n border-radius: 0;\n}\n\n.variantLink:hover:not(:disabled) {\n text-decoration: underline;\n text-underline-offset: 0.2em;\n}\n"],"mappings":""}
|
package/dist/index5.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { cx } from "./index3.js";
|
|
2
|
+
import button_module_default from "./index4.js";
|
|
3
|
+
import "react";
|
|
4
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/button/Button.tsx
|
|
7
|
+
var variantClass = {
|
|
8
|
+
default: "variantPrimary",
|
|
9
|
+
primary: "variantPrimary",
|
|
10
|
+
secondary: "variantSecondary",
|
|
11
|
+
outline: "variantOutline",
|
|
12
|
+
ghost: "variantGhost",
|
|
13
|
+
destructive: "variantDestructive",
|
|
14
|
+
link: "variantLink"
|
|
15
|
+
};
|
|
16
|
+
var sizeClass = {
|
|
17
|
+
default: "sizeMd",
|
|
18
|
+
sm: "sizeSm",
|
|
19
|
+
md: "sizeMd",
|
|
20
|
+
lg: "sizeLg",
|
|
21
|
+
icon: "sizeIcon"
|
|
22
|
+
};
|
|
23
|
+
function Button({ as, variant = "default", size = "default", className, children, asChild = false, ...rest }) {
|
|
24
|
+
const classes = cx(button_module_default.button, button_module_default[variantClass[variant]], button_module_default[sizeClass[size]], className);
|
|
25
|
+
if (asChild) return /* @__PURE__ */ jsx(Slot, {
|
|
26
|
+
className: classes,
|
|
27
|
+
...rest,
|
|
28
|
+
children
|
|
29
|
+
});
|
|
30
|
+
if (as === "a") return /* @__PURE__ */ jsx("a", {
|
|
31
|
+
className: classes,
|
|
32
|
+
...rest,
|
|
33
|
+
children
|
|
34
|
+
});
|
|
35
|
+
return /* @__PURE__ */ jsx("button", {
|
|
36
|
+
type: "button",
|
|
37
|
+
className: classes,
|
|
38
|
+
...rest,
|
|
39
|
+
children
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
//#endregion
|
|
43
|
+
export { Button };
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=index5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index5.js","names":[],"sources":["../src/components/button/Button.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cx } from \"../../utils/cx\";\nimport styles from \"./button.module.css\";\n\nexport type ButtonVariant =\n | \"default\"\n | \"primary\"\n | \"secondary\"\n | \"outline\"\n | \"ghost\"\n | \"destructive\"\n | \"link\";\nexport type ButtonSize = \"default\" | \"sm\" | \"md\" | \"lg\" | \"icon\";\n\ntype BaseProps = {\n variant?: ButtonVariant;\n size?: ButtonSize;\n className?: string;\n children?: React.ReactNode;\n asChild?: boolean;\n};\n\ntype AsButton = BaseProps &\n React.ButtonHTMLAttributes<HTMLButtonElement> & { as?: \"button\" };\n\ntype AsAnchor = BaseProps &\n React.AnchorHTMLAttributes<HTMLAnchorElement> & { as: \"a\" };\n\nexport type ButtonProps = AsButton | AsAnchor;\n\nconst variantClass: Record<ButtonVariant, string> = {\n default: \"variantPrimary\",\n primary: \"variantPrimary\",\n secondary: \"variantSecondary\",\n outline: \"variantOutline\",\n ghost: \"variantGhost\",\n destructive: \"variantDestructive\",\n link: \"variantLink\",\n};\n\nconst sizeClass: Record<ButtonSize, string> = {\n default: \"sizeMd\",\n sm: \"sizeSm\",\n md: \"sizeMd\",\n lg: \"sizeLg\",\n icon: \"sizeIcon\",\n};\n\nexport function Button({\n as,\n variant = \"default\",\n size = \"default\",\n className,\n children,\n asChild = false,\n ...rest\n}: ButtonProps) {\n const classes = cx(\n styles.button,\n styles[variantClass[variant]],\n styles[sizeClass[size]],\n className,\n );\n\n if (asChild) {\n return (\n <Slot className={classes} {...rest}>\n {children}\n </Slot>\n );\n }\n\n if (as === \"a\") {\n return (\n <a\n className={classes}\n {...(rest as React.AnchorHTMLAttributes<HTMLAnchorElement>)}\n >\n {children}\n </a>\n );\n }\n\n return (\n <button\n type=\"button\"\n className={classes}\n {...(rest as React.ButtonHTMLAttributes<HTMLButtonElement>)}\n >\n {children}\n </button>\n );\n}\n"],"mappings":";;;;;;AA+BA,IAAM,eAA8C;CAClD,SAAS;CACT,SAAS;CACT,WAAW;CACX,SAAS;CACT,OAAO;CACP,aAAa;CACb,MAAM;AACR;AAEA,IAAM,YAAwC;CAC5C,SAAS;CACT,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,MAAM;AACR;AAEA,SAAgB,OAAO,EACrB,IACA,UAAU,WACV,OAAO,WACP,WACA,UACA,UAAU,OACV,GAAG,QACW;CACd,MAAM,UAAU,GACd,sBAAO,QACP,sBAAO,aAAa,WACpB,sBAAO,UAAU,QACjB,SACF;CAEA,IAAI,SACF,OACE,oBAAC,MAAD;EAAM,WAAW;EAAS,GAAI;EAC3B;CACG,CAAA;CAIV,IAAI,OAAO,KACT,OACE,oBAAC,KAAD;EACE,WAAW;EACX,GAAK;EAEJ;CACA,CAAA;CAIP,OACE,oBAAC,UAAD;EACE,MAAK;EACL,WAAW;EACX,GAAK;EAEJ;CACK,CAAA;AAEZ"}
|
package/dist/index6.cjs
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
const require_runtime = require("./index2.cjs");
|
|
2
|
+
const require_cx = require("./index4.cjs");
|
|
3
|
+
const require_button_module = require("./index5.cjs");
|
|
4
|
+
let react = require("react");
|
|
5
|
+
react = require_runtime.__toESM(react, 1);
|
|
6
|
+
let _radix_ui_react_slot = require("@radix-ui/react-slot");
|
|
7
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
8
|
+
//#region src/components/button/Button.tsx
|
|
9
|
+
var variantClass = {
|
|
10
|
+
default: "variantPrimary",
|
|
11
|
+
primary: "variantPrimary",
|
|
12
|
+
secondary: "variantSecondary",
|
|
13
|
+
outline: "variantOutline",
|
|
14
|
+
ghost: "variantGhost",
|
|
15
|
+
destructive: "variantDestructive",
|
|
16
|
+
link: "variantLink"
|
|
17
|
+
};
|
|
18
|
+
var sizeClass = {
|
|
19
|
+
default: "sizeMd",
|
|
20
|
+
sm: "sizeSm",
|
|
21
|
+
md: "sizeMd",
|
|
22
|
+
lg: "sizeLg",
|
|
23
|
+
icon: "sizeIcon"
|
|
24
|
+
};
|
|
25
|
+
function Button({ as, variant = "default", size = "default", className, children, asChild = false, ...rest }) {
|
|
26
|
+
const classes = require_cx.cx(require_button_module.default.button, require_button_module.default[variantClass[variant]], require_button_module.default[sizeClass[size]], className);
|
|
27
|
+
if (asChild) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_radix_ui_react_slot.Slot, {
|
|
28
|
+
className: classes,
|
|
29
|
+
...rest,
|
|
30
|
+
children
|
|
31
|
+
});
|
|
32
|
+
if (as === "a") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("a", {
|
|
33
|
+
className: classes,
|
|
34
|
+
...rest,
|
|
35
|
+
children
|
|
36
|
+
});
|
|
37
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
38
|
+
type: "button",
|
|
39
|
+
className: classes,
|
|
40
|
+
...rest,
|
|
41
|
+
children
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
//#endregion
|
|
45
|
+
exports.Button = Button;
|
|
46
|
+
|
|
47
|
+
//# sourceMappingURL=index6.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index6.cjs","names":[],"sources":["../src/components/button/Button.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cx } from \"../../utils/cx\";\nimport styles from \"./button.module.css\";\n\nexport type ButtonVariant =\n | \"default\"\n | \"primary\"\n | \"secondary\"\n | \"outline\"\n | \"ghost\"\n | \"destructive\"\n | \"link\";\nexport type ButtonSize = \"default\" | \"sm\" | \"md\" | \"lg\" | \"icon\";\n\ntype BaseProps = {\n variant?: ButtonVariant;\n size?: ButtonSize;\n className?: string;\n children?: React.ReactNode;\n asChild?: boolean;\n};\n\ntype AsButton = BaseProps &\n React.ButtonHTMLAttributes<HTMLButtonElement> & { as?: \"button\" };\n\ntype AsAnchor = BaseProps &\n React.AnchorHTMLAttributes<HTMLAnchorElement> & { as: \"a\" };\n\nexport type ButtonProps = AsButton | AsAnchor;\n\nconst variantClass: Record<ButtonVariant, string> = {\n default: \"variantPrimary\",\n primary: \"variantPrimary\",\n secondary: \"variantSecondary\",\n outline: \"variantOutline\",\n ghost: \"variantGhost\",\n destructive: \"variantDestructive\",\n link: \"variantLink\",\n};\n\nconst sizeClass: Record<ButtonSize, string> = {\n default: \"sizeMd\",\n sm: \"sizeSm\",\n md: \"sizeMd\",\n lg: \"sizeLg\",\n icon: \"sizeIcon\",\n};\n\nexport function Button({\n as,\n variant = \"default\",\n size = \"default\",\n className,\n children,\n asChild = false,\n ...rest\n}: ButtonProps) {\n const classes = cx(\n styles.button,\n styles[variantClass[variant]],\n styles[sizeClass[size]],\n className,\n );\n\n if (asChild) {\n return (\n <Slot className={classes} {...rest}>\n {children}\n </Slot>\n );\n }\n\n if (as === \"a\") {\n return (\n <a\n className={classes}\n {...(rest as React.AnchorHTMLAttributes<HTMLAnchorElement>)}\n >\n {children}\n </a>\n );\n }\n\n return (\n <button\n type=\"button\"\n className={classes}\n {...(rest as React.ButtonHTMLAttributes<HTMLButtonElement>)}\n >\n {children}\n </button>\n );\n}\n"],"mappings":";;;;;;;;AA+BA,IAAM,eAA8C;CAClD,SAAS;CACT,SAAS;CACT,WAAW;CACX,SAAS;CACT,OAAO;CACP,aAAa;CACb,MAAM;AACR;AAEA,IAAM,YAAwC;CAC5C,SAAS;CACT,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,MAAM;AACR;AAEA,SAAgB,OAAO,EACrB,IACA,UAAU,WACV,OAAO,WACP,WACA,UACA,UAAU,OACV,GAAG,QACW;CACd,MAAM,UAAU,WAAA,GACd,sBAAA,QAAO,QACP,sBAAA,QAAO,aAAa,WACpB,sBAAA,QAAO,UAAU,QACjB,SACF;CAEA,IAAI,SACF,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,qBAAA,MAAD;EAAM,WAAW;EAAS,GAAI;EAC3B;CACG,CAAA;CAIV,IAAI,OAAO,KACT,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,KAAD;EACE,WAAW;EACX,GAAK;EAEJ;CACA,CAAA;CAIP,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;EACE,MAAK;EACL,WAAW;EACX,GAAK;EAEJ;CACK,CAAA;AAEZ"}
|
package/dist/index6.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region src/components/avatar/avatar.module.css
|
|
2
|
+
var avatar = "uzi-avatar-module__avatar__yPIOs";
|
|
3
|
+
var image = "uzi-avatar-module__image__Ngo7A";
|
|
4
|
+
var fallback = "uzi-avatar-module__fallback__Tf3oZ";
|
|
5
|
+
var avatar_module_default = {
|
|
6
|
+
avatar,
|
|
7
|
+
"size-sm": "uzi-avatar-module__size-sm__v5riJ",
|
|
8
|
+
"size-md": "uzi-avatar-module__size-md__g7IQS",
|
|
9
|
+
"size-lg": "uzi-avatar-module__size-lg__Ca4xk",
|
|
10
|
+
"size-xl": "uzi-avatar-module__size-xl__K0Dfk",
|
|
11
|
+
image,
|
|
12
|
+
fallback
|
|
13
|
+
};
|
|
14
|
+
//#endregion
|
|
15
|
+
export { avatar, avatar_module_default as default, fallback, image };
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=index6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index6.js","names":[],"sources":["../src/components/avatar/avatar.module.css"],"sourcesContent":[".avatar {\n position: relative;\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n border-radius: 999px;\n background: var(--ts-avatar-bg, var(--muted));\n color: var(--ts-avatar-fg, var(--muted-foreground));\n}\n\n.size-sm {\n width: 1.75rem;\n height: 1.75rem;\n}\n\n.size-md {\n width: 2rem;\n height: 2rem;\n}\n\n.size-lg {\n width: 2.25rem;\n height: 2.25rem;\n}\n\n.size-xl {\n width: 4rem;\n height: 4rem;\n}\n\n.image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.fallback {\n display: flex;\n width: 100%;\n height: 100%;\n align-items: center;\n justify-content: center;\n border-radius: inherit;\n background: var(--ts-avatar-fallback-bg, var(--muted));\n color: var(--ts-avatar-fallback-fg, var(--muted-foreground));\n font-size: 0.85rem;\n font-weight: 700;\n line-height: 1;\n text-transform: uppercase;\n}\n"],"mappings":""}
|
package/dist/index7.cjs
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//#region src/components/avatar/avatar.module.css
|
|
2
|
+
var avatar = "uzi-avatar-module__avatar__yPIOs";
|
|
3
|
+
var image = "uzi-avatar-module__image__Ngo7A";
|
|
4
|
+
var fallback = "uzi-avatar-module__fallback__Tf3oZ";
|
|
5
|
+
var avatar_module_default = {
|
|
6
|
+
avatar,
|
|
7
|
+
"size-sm": "uzi-avatar-module__size-sm__v5riJ",
|
|
8
|
+
"size-md": "uzi-avatar-module__size-md__g7IQS",
|
|
9
|
+
"size-lg": "uzi-avatar-module__size-lg__Ca4xk",
|
|
10
|
+
"size-xl": "uzi-avatar-module__size-xl__K0Dfk",
|
|
11
|
+
image,
|
|
12
|
+
fallback
|
|
13
|
+
};
|
|
14
|
+
//#endregion
|
|
15
|
+
exports.avatar = avatar;
|
|
16
|
+
exports.default = avatar_module_default;
|
|
17
|
+
exports.fallback = fallback;
|
|
18
|
+
exports.image = image;
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=index7.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index7.cjs","names":[],"sources":["../src/components/avatar/avatar.module.css"],"sourcesContent":[".avatar {\n position: relative;\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n border-radius: 999px;\n background: var(--ts-avatar-bg, var(--muted));\n color: var(--ts-avatar-fg, var(--muted-foreground));\n}\n\n.size-sm {\n width: 1.75rem;\n height: 1.75rem;\n}\n\n.size-md {\n width: 2rem;\n height: 2rem;\n}\n\n.size-lg {\n width: 2.25rem;\n height: 2.25rem;\n}\n\n.size-xl {\n width: 4rem;\n height: 4rem;\n}\n\n.image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.fallback {\n display: flex;\n width: 100%;\n height: 100%;\n align-items: center;\n justify-content: center;\n border-radius: inherit;\n background: var(--ts-avatar-fallback-bg, var(--muted));\n color: var(--ts-avatar-fallback-fg, var(--muted-foreground));\n font-size: 0.85rem;\n font-weight: 700;\n line-height: 1;\n text-transform: uppercase;\n}\n"],"mappings":""}
|
package/dist/index7.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cx } from "./index3.js";
|
|
3
|
+
import avatar_module_default from "./index6.js";
|
|
4
|
+
import "react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
import * as AvatarPrimitive from "@radix-ui/react-avatar";
|
|
7
|
+
//#region src/components/avatar/Avatar.tsx
|
|
8
|
+
function Avatar({ className, size = "md", ...props }) {
|
|
9
|
+
const sizeClass = size === "sm" ? avatar_module_default["size-sm"] : size === "lg" ? avatar_module_default["size-lg"] : size === "xl" ? avatar_module_default["size-xl"] : avatar_module_default["size-md"];
|
|
10
|
+
return /* @__PURE__ */ jsx(AvatarPrimitive.Root, {
|
|
11
|
+
className: cx(avatar_module_default.avatar, sizeClass, className),
|
|
12
|
+
...props
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
function AvatarImage({ className, ...props }) {
|
|
16
|
+
return /* @__PURE__ */ jsx(AvatarPrimitive.Image, {
|
|
17
|
+
className: cx(avatar_module_default.image, className),
|
|
18
|
+
...props
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
function AvatarFallback({ className, ...props }) {
|
|
22
|
+
return /* @__PURE__ */ jsx(AvatarPrimitive.Fallback, {
|
|
23
|
+
className: cx(avatar_module_default.fallback, className),
|
|
24
|
+
...props
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//#endregion
|
|
28
|
+
export { Avatar, AvatarFallback, AvatarImage };
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=index7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index7.js","names":[],"sources":["../src/components/avatar/Avatar.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\";\nimport { cx } from \"../../utils/cx\";\nimport styles from \"./avatar.module.css\";\n\nexport type AvatarSize = \"sm\" | \"md\" | \"lg\" | \"xl\";\n\nexport type AvatarProps = React.ComponentProps<typeof AvatarPrimitive.Root> & {\n size?: AvatarSize;\n};\n\nexport function Avatar({\n className,\n size = \"md\",\n ...props\n}: AvatarProps) {\n const sizeClass =\n size === \"sm\" ? styles[\"size-sm\"] : size === \"lg\" ? styles[\"size-lg\"] : size === \"xl\" ? styles[\"size-xl\"] : styles[\"size-md\"];\n\n return (\n <AvatarPrimitive.Root\n className={cx(styles.avatar, sizeClass, className)}\n {...props}\n />\n );\n}\n\nexport function AvatarImage({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n className={cx(styles.image, className)}\n {...props}\n />\n );\n}\n\nexport function AvatarFallback({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n className={cx(styles.fallback, className)}\n {...props}\n />\n );\n}\n"],"mappings":";;;;;;;AAaA,SAAgB,OAAO,EACrB,WACA,OAAO,MACP,GAAG,SACW;CACd,MAAM,YACJ,SAAS,OAAO,sBAAO,aAAa,SAAS,OAAO,sBAAO,aAAa,SAAS,OAAO,sBAAO,aAAa,sBAAO;CAErH,OACE,oBAAC,gBAAgB,MAAjB;EACE,WAAW,GAAG,sBAAO,QAAQ,WAAW,SAAS;EACjD,GAAI;CACL,CAAA;AAEL;AAEA,SAAgB,YAAY,EAC1B,WACA,GAAG,SACkD;CACrD,OACE,oBAAC,gBAAgB,OAAjB;EACE,WAAW,GAAG,sBAAO,OAAO,SAAS;EACrC,GAAI;CACL,CAAA;AAEL;AAEA,SAAgB,eAAe,EAC7B,WACA,GAAG,SACqD;CACxD,OACE,oBAAC,gBAAgB,UAAjB;EACE,WAAW,GAAG,sBAAO,UAAU,SAAS;EACxC,GAAI;CACL,CAAA;AAEL"}
|
package/dist/index8.cjs
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
const require_runtime = require("./index2.cjs");
|
|
3
|
+
const require_cx = require("./index4.cjs");
|
|
4
|
+
const require_avatar_module = require("./index7.cjs");
|
|
5
|
+
let react = require("react");
|
|
6
|
+
react = require_runtime.__toESM(react, 1);
|
|
7
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
8
|
+
let _radix_ui_react_avatar = require("@radix-ui/react-avatar");
|
|
9
|
+
_radix_ui_react_avatar = require_runtime.__toESM(_radix_ui_react_avatar, 1);
|
|
10
|
+
//#region src/components/avatar/Avatar.tsx
|
|
11
|
+
function Avatar({ className, size = "md", ...props }) {
|
|
12
|
+
const sizeClass = size === "sm" ? require_avatar_module.default["size-sm"] : size === "lg" ? require_avatar_module.default["size-lg"] : size === "xl" ? require_avatar_module.default["size-xl"] : require_avatar_module.default["size-md"];
|
|
13
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_radix_ui_react_avatar.Root, {
|
|
14
|
+
className: require_cx.cx(require_avatar_module.default.avatar, sizeClass, className),
|
|
15
|
+
...props
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
function AvatarImage({ className, ...props }) {
|
|
19
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_radix_ui_react_avatar.Image, {
|
|
20
|
+
className: require_cx.cx(require_avatar_module.default.image, className),
|
|
21
|
+
...props
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
function AvatarFallback({ className, ...props }) {
|
|
25
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_radix_ui_react_avatar.Fallback, {
|
|
26
|
+
className: require_cx.cx(require_avatar_module.default.fallback, className),
|
|
27
|
+
...props
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//#endregion
|
|
31
|
+
exports.Avatar = Avatar;
|
|
32
|
+
exports.AvatarFallback = AvatarFallback;
|
|
33
|
+
exports.AvatarImage = AvatarImage;
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=index8.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index8.cjs","names":[],"sources":["../src/components/avatar/Avatar.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\";\nimport { cx } from \"../../utils/cx\";\nimport styles from \"./avatar.module.css\";\n\nexport type AvatarSize = \"sm\" | \"md\" | \"lg\" | \"xl\";\n\nexport type AvatarProps = React.ComponentProps<typeof AvatarPrimitive.Root> & {\n size?: AvatarSize;\n};\n\nexport function Avatar({\n className,\n size = \"md\",\n ...props\n}: AvatarProps) {\n const sizeClass =\n size === \"sm\" ? styles[\"size-sm\"] : size === \"lg\" ? styles[\"size-lg\"] : size === \"xl\" ? styles[\"size-xl\"] : styles[\"size-md\"];\n\n return (\n <AvatarPrimitive.Root\n className={cx(styles.avatar, sizeClass, className)}\n {...props}\n />\n );\n}\n\nexport function AvatarImage({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n className={cx(styles.image, className)}\n {...props}\n />\n );\n}\n\nexport function AvatarFallback({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n className={cx(styles.fallback, className)}\n {...props}\n />\n );\n}\n"],"mappings":";;;;;;;;;;AAaA,SAAgB,OAAO,EACrB,WACA,OAAO,MACP,GAAG,SACW;CACd,MAAM,YACJ,SAAS,OAAO,sBAAA,QAAO,aAAa,SAAS,OAAO,sBAAA,QAAO,aAAa,SAAS,OAAO,sBAAA,QAAO,aAAa,sBAAA,QAAO;CAErH,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,uBAAgB,MAAjB;EACE,WAAW,WAAA,GAAG,sBAAA,QAAO,QAAQ,WAAW,SAAS;EACjD,GAAI;CACL,CAAA;AAEL;AAEA,SAAgB,YAAY,EAC1B,WACA,GAAG,SACkD;CACrD,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,uBAAgB,OAAjB;EACE,WAAW,WAAA,GAAG,sBAAA,QAAO,OAAO,SAAS;EACrC,GAAI;CACL,CAAA;AAEL;AAEA,SAAgB,eAAe,EAC7B,WACA,GAAG,SACqD;CACxD,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,uBAAgB,UAAjB;EACE,WAAW,WAAA,GAAG,sBAAA,QAAO,UAAU,SAAS;EACxC,GAAI;CACL,CAAA;AAEL"}
|
package/dist/index8.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//#region src/components/card/card.module.css
|
|
2
|
+
var card = "uzi-card-module__card__ZPFTz";
|
|
3
|
+
var interactive = "uzi-card-module__interactive__zlPML";
|
|
4
|
+
var card_module_default = {
|
|
5
|
+
card,
|
|
6
|
+
"tone-default": "uzi-card-module__tone-default__7Ujf9",
|
|
7
|
+
"tone-muted": "uzi-card-module__tone-muted__RQy5B",
|
|
8
|
+
"tone-contrast": "uzi-card-module__tone-contrast__JpFxL",
|
|
9
|
+
interactive,
|
|
10
|
+
"padding-none": "uzi-card-module__padding-none__LXdx-",
|
|
11
|
+
"padding-sm": "uzi-card-module__padding-sm__-Ub1s",
|
|
12
|
+
"padding-md": "uzi-card-module__padding-md__kUf46",
|
|
13
|
+
"padding-lg": "uzi-card-module__padding-lg__a5mWP"
|
|
14
|
+
};
|
|
15
|
+
//#endregion
|
|
16
|
+
export { card, card_module_default as default, interactive };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=index8.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index8.js","names":[],"sources":["../src/components/card/card.module.css"],"sourcesContent":[".card {\n position: relative;\n overflow: visible;\n border-radius: var(--ts-card-radius, 12px);\n border: 1px solid var(--ts-card-border, var(--border));\n background: var(--ts-card-bg, var(--panel));\n color: var(--ts-card-fg, var(--foreground));\n box-shadow: var(--ts-card-shadow, 0 16px 36px rgba(0, 0, 0, 0.28));\n padding: var(--ts-card-padding, 16px);\n transition:\n transform 140ms ease,\n box-shadow 140ms ease,\n border-color 140ms ease,\n background-color 140ms ease;\n}\n\n.tone-default {\n --ts-card-bg: var(--panel);\n --ts-card-border: var(--border);\n --ts-card-shadow: 0 16px 36px rgba(0, 0, 0, 0.28);\n}\n\n.tone-muted {\n --ts-card-bg: var(--muted);\n --ts-card-border: var(--border);\n --ts-card-shadow: 0 10px 26px rgba(0, 0, 0, 0.22);\n}\n\n.tone-contrast {\n --ts-card-bg: var(--ts-card-contrast-bg, color-mix(in srgb, var(--background) 60%, black));\n --ts-card-border: var(--border);\n --ts-card-shadow: 0 18px 50px rgba(0, 0, 0, 0.32);\n}\n\n.interactive {\n cursor: default;\n}\n\n.interactive:hover {\n transform: translateY(-1px);\n box-shadow: 0 22px 60px rgba(0, 0, 0, 0.32);\n border-color: var(--ts-card-hover-border, color-mix(in srgb, var(--primary) 40%, transparent));\n}\n\n.interactive:focus-within {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n}\n\n.padding-none { --ts-card-padding: 0; }\n.padding-sm { --ts-card-padding: 10px; }\n.padding-md { --ts-card-padding: 16px; }\n.padding-lg { --ts-card-padding: 20px; }\n"],"mappings":""}
|
package/dist/index9.cjs
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//#region src/components/card/card.module.css
|
|
2
|
+
var card = "uzi-card-module__card__ZPFTz";
|
|
3
|
+
var interactive = "uzi-card-module__interactive__zlPML";
|
|
4
|
+
var card_module_default = {
|
|
5
|
+
card,
|
|
6
|
+
"tone-default": "uzi-card-module__tone-default__7Ujf9",
|
|
7
|
+
"tone-muted": "uzi-card-module__tone-muted__RQy5B",
|
|
8
|
+
"tone-contrast": "uzi-card-module__tone-contrast__JpFxL",
|
|
9
|
+
interactive,
|
|
10
|
+
"padding-none": "uzi-card-module__padding-none__LXdx-",
|
|
11
|
+
"padding-sm": "uzi-card-module__padding-sm__-Ub1s",
|
|
12
|
+
"padding-md": "uzi-card-module__padding-md__kUf46",
|
|
13
|
+
"padding-lg": "uzi-card-module__padding-lg__a5mWP"
|
|
14
|
+
};
|
|
15
|
+
//#endregion
|
|
16
|
+
exports.card = card;
|
|
17
|
+
exports.default = card_module_default;
|
|
18
|
+
exports.interactive = interactive;
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=index9.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index9.cjs","names":[],"sources":["../src/components/card/card.module.css"],"sourcesContent":[".card {\n position: relative;\n overflow: visible;\n border-radius: var(--ts-card-radius, 12px);\n border: 1px solid var(--ts-card-border, var(--border));\n background: var(--ts-card-bg, var(--panel));\n color: var(--ts-card-fg, var(--foreground));\n box-shadow: var(--ts-card-shadow, 0 16px 36px rgba(0, 0, 0, 0.28));\n padding: var(--ts-card-padding, 16px);\n transition:\n transform 140ms ease,\n box-shadow 140ms ease,\n border-color 140ms ease,\n background-color 140ms ease;\n}\n\n.tone-default {\n --ts-card-bg: var(--panel);\n --ts-card-border: var(--border);\n --ts-card-shadow: 0 16px 36px rgba(0, 0, 0, 0.28);\n}\n\n.tone-muted {\n --ts-card-bg: var(--muted);\n --ts-card-border: var(--border);\n --ts-card-shadow: 0 10px 26px rgba(0, 0, 0, 0.22);\n}\n\n.tone-contrast {\n --ts-card-bg: var(--ts-card-contrast-bg, color-mix(in srgb, var(--background) 60%, black));\n --ts-card-border: var(--border);\n --ts-card-shadow: 0 18px 50px rgba(0, 0, 0, 0.32);\n}\n\n.interactive {\n cursor: default;\n}\n\n.interactive:hover {\n transform: translateY(-1px);\n box-shadow: 0 22px 60px rgba(0, 0, 0, 0.32);\n border-color: var(--ts-card-hover-border, color-mix(in srgb, var(--primary) 40%, transparent));\n}\n\n.interactive:focus-within {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n}\n\n.padding-none { --ts-card-padding: 0; }\n.padding-sm { --ts-card-padding: 10px; }\n.padding-md { --ts-card-padding: 16px; }\n.padding-lg { --ts-card-padding: 20px; }\n"],"mappings":""}
|
package/dist/index9.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { cx } from "./index3.js";
|
|
2
|
+
import card_module_default from "./index8.js";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
//#region src/components/card/Card.tsx
|
|
5
|
+
function Card({ as, tone = "default", padding = "md", interactive = false, className, children, ...rest }) {
|
|
6
|
+
const Component = as ?? "div";
|
|
7
|
+
const TONE_CLASS = {
|
|
8
|
+
default: null,
|
|
9
|
+
muted: "tone-muted",
|
|
10
|
+
contrast: "tone-contrast"
|
|
11
|
+
};
|
|
12
|
+
return /* @__PURE__ */ jsx(Component, {
|
|
13
|
+
className: cx(card_module_default.card, TONE_CLASS[tone] ? card_module_default[TONE_CLASS[tone]] : null, card_module_default[{
|
|
14
|
+
none: "padding-none",
|
|
15
|
+
sm: "padding-sm",
|
|
16
|
+
md: "padding-md",
|
|
17
|
+
lg: "padding-lg"
|
|
18
|
+
}[padding]], interactive && card_module_default.interactive, className),
|
|
19
|
+
...rest,
|
|
20
|
+
children
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
export { Card };
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=index9.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index9.js","names":[],"sources":["../src/components/card/Card.tsx"],"sourcesContent":["/**\n * Lightweight container component used for panels across the app.\n *\n * @remarks\n * Supports tone variants, padding presets, and an optional interactive affordance.\n *\n * @param props.as - Semantic element to render (defaults to `div`).\n * @param props.tone - Visual tone variant.\n * @param props.padding - Padding preset.\n * @param props.interactive - Enables hover/focus affordance.\n */\nimport type { HTMLAttributes } from \"react\";\nimport { cx } from \"../../utils/cx\";\nimport styles from \"./card.module.css\";\n\nexport type CardTone = \"default\" | \"muted\" | \"contrast\";\nexport type CardPadding = \"none\" | \"sm\" | \"md\" | \"lg\";\n\ntype CardElement = \"div\" | \"section\" | \"article\";\n\nexport type CardProps = HTMLAttributes<HTMLElement> & {\n /** Optional semantic element type. Defaults to `div`. */\n as?: CardElement;\n /** Visual tone; drives background/border CSS vars. */\n tone?: CardTone;\n /** Padding preset; maps to CSS variables so consumers can override globally. */\n padding?: CardPadding;\n /** Adds hover/focus affordance (lift + outline). */\n interactive?: boolean;\n};\n\nexport function Card({\n as,\n tone = \"default\",\n padding = \"md\",\n interactive = false,\n className,\n children,\n ...rest\n}: CardProps) {\n const Component: CardElement = as ?? \"div\";\n const TONE_CLASS: Record<CardTone, string | null> = { default: null, muted: \"tone-muted\", contrast: \"tone-contrast\" };\n const PADDING_CLASS: Record<CardPadding, string> = { none: \"padding-none\", sm: \"padding-sm\", md: \"padding-md\", lg: \"padding-lg\" };\n const classes = cx(\n styles.card,\n TONE_CLASS[tone] ? styles[TONE_CLASS[tone]] : null,\n styles[PADDING_CLASS[padding]],\n interactive && styles.interactive,\n className,\n );\n\n return (\n <Component className={classes} {...rest}>\n {children}\n </Component>\n );\n}\n"],"mappings":";;;;AA+BA,SAAgB,KAAK,EACnB,IACA,OAAO,WACP,UAAU,MACV,cAAc,OACd,WACA,UACA,GAAG,QACS;CACZ,MAAM,YAAyB,MAAM;CACrC,MAAM,aAA8C;EAAE,SAAS;EAAM,OAAO;EAAc,UAAU;CAAgB;CAUpH,OACE,oBAAC,WAAD;EAAW,WATG,GACd,oBAAO,MACP,WAAW,QAAQ,oBAAO,WAAW,SAAS,MAC9C,oBAAO;GAJ4C,MAAM;GAAgB,IAAI;GAAc,IAAI;GAAc,IAAI;EAI1G,EAAc,WACrB,eAAe,oBAAO,aACtB,SAIsB;EAAS,GAAI;EAChC;CACQ,CAAA;AAEf"}
|