@mindlogic-ai/logician-ui 3.1.0-alpha.2 → 3.1.0-alpha.4
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/FileInput/FileInput.js +1 -1
- package/dist/components/FileInput/FileInput.js.map +1 -1
- package/dist/components/FileInput/FileInput.mjs +1 -1
- package/dist/components/FileInput/FileInput.mjs.map +1 -1
- package/dist/components/LineGraph/LineGraph.d.ts.map +1 -1
- package/dist/components/LineGraph/LineGraph.js +7 -3
- package/dist/components/LineGraph/LineGraph.js.map +1 -1
- package/dist/components/LineGraph/LineGraph.mjs +7 -3
- package/dist/components/LineGraph/LineGraph.mjs.map +1 -1
- package/dist/components/Textarea/Textarea.d.ts.map +1 -1
- package/dist/components/Textarea/Textarea.js +3 -2
- package/dist/components/Textarea/Textarea.js.map +1 -1
- package/dist/components/Textarea/Textarea.mjs +3 -2
- package/dist/components/Textarea/Textarea.mjs.map +1 -1
- package/package.json +1 -1
- package/src/components/FileInput/FileInput.tsx +1 -1
- package/src/components/LineGraph/LineGraph.tsx +4 -2
- package/src/components/Textarea/Textarea.tsx +3 -1
- package/src/components/claude.md +8 -2
- package/src/theme/claude.md +80 -10
|
@@ -22,7 +22,7 @@ const FileInput = React.forwardRef(({ fileInputLabel, containerStyle = {}, bgIma
|
|
|
22
22
|
const handleChange = (event) => {
|
|
23
23
|
onChange(event.currentTarget.files);
|
|
24
24
|
};
|
|
25
|
-
return (jsxRuntime.jsx(react.Flex, { role: "button", w: "100%", h: "100%", maxH: 32, flexDir: "column", align: "center", justify: "center", border: "1px dashed", borderColor: "border.default", position: "relative", overflow: "hidden", borderRadius: "md", ...containerStyle, children: jsxRuntime.jsxs("label", { role: "group", style: { width: '100%', height: '100%', cursor: 'pointer' }, children: [bgImage && (jsxRuntime.jsx(react.Box, { position: "absolute", top: "0", left: "0", right: "0", bottom: "0", backgroundImage: bgImage, backgroundSize: "cover", backgroundPosition: "center", filter: "grayscale(50%) brightness(80%)", zIndex: "-1" })), jsxRuntime.jsx(react.Input, { type: "file", hidden: true, ref: ref, onChange: handleChange, ...rest }), jsxRuntime.jsx(react.Flex, { w: "100%", h: "100%", p: 7, flexDir: "column", justify: "center", align: "center", bgColor: "
|
|
25
|
+
return (jsxRuntime.jsx(react.Flex, { role: "button", w: "100%", h: "100%", maxH: 32, flexDir: "column", align: "center", justify: "center", border: "1px dashed", borderColor: "border.default", position: "relative", overflow: "hidden", borderRadius: "md", ...containerStyle, children: jsxRuntime.jsxs("label", { role: "group", style: { width: '100%', height: '100%', cursor: 'pointer' }, children: [bgImage && (jsxRuntime.jsx(react.Box, { position: "absolute", top: "0", left: "0", right: "0", bottom: "0", backgroundImage: bgImage, backgroundSize: "cover", backgroundPosition: "center", filter: "grayscale(50%) brightness(80%)", zIndex: "-1" })), jsxRuntime.jsx(react.Input, { type: "file", hidden: true, ref: ref, onChange: handleChange, ...rest }), jsxRuntime.jsx(react.Flex, { w: "100%", h: "100%", p: 7, flexDir: "column", justify: "center", align: "center", bgColor: "color-mix(in srgb, var(--chakra-colors-bg-surface) 85%, transparent)", opacity: bgImage ? 0 : 1, transition: "ease-in", _groupHover: { opacity: 1 }, children: isLoading ? (jsxRuntime.jsx(Spinner.Spinner, {})) : (jsxRuntime.jsxs(react.Flex, { w: "100%", flexDir: "column", align: "center", justify: "center", children: [jsxRuntime.jsx(react.Box, { borderRadius: "lg", bgColor: bgImage ? 'transparent' : 'bg.muted', p: 3, mb: 2, w: "fit-content", children: jsxRuntime.jsx(index.LuUpload, { color: bgImage ? 'fg.default' : 'fg.subtle' }) }), jsxRuntime.jsx(Text.Text, { color: bgImage ? 'fg.default' : 'fg.subtle', children: fileInputLabel || translate('upload_your_file') })] })) })] }) }));
|
|
26
26
|
});
|
|
27
27
|
FileInput.displayName = 'FileInput';
|
|
28
28
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileInput.js","sources":["../../../src/components/FileInput/FileInput.tsx"],"sourcesContent":[null],"names":["forwardRef","useTranslate","_jsx","Flex","_jsxs","Box","Input","Spinner","LuUpload","Text"],"mappings":";;;;;;;;;;;;;;;;;;;AAUO,MAAM,SAAS,GAAGA,gBAAU,CACjC,CACE,EACE,cAAc,EACd,cAAc,GAAG,EAAE,EACnB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EACD,GAAG,KACD;AACF,IAAA,MAAM,SAAS,GAAGC,yBAAY,EAAE;AAEhC,IAAA,MAAM,YAAY,GAAyC,CAAC,KAAK,KAAI;AACnE,QAAA,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;AACrC,IAAA,CAAC;AAED,IAAA,QACEC,cAAA,CAACC,UAAI,EAAA,EACH,IAAI,EAAC,QAAQ,EACb,CAAC,EAAC,MAAM,EACR,CAAC,EAAC,MAAM,EACR,IAAI,EAAE,EAAE,EACR,OAAO,EAAC,QAAQ,EAChB,KAAK,EAAC,QAAQ,EACd,OAAO,EAAC,QAAQ,EAChB,MAAM,EAAC,YAAY,EACnB,WAAW,EAAC,gBAAgB,EAC5B,QAAQ,EAAC,UAAU,EACnB,QAAQ,EAAC,QAAQ,EACjB,YAAY,EAAC,IAAI,EAAA,GACb,cAAc,EAAA,QAAA,EAElBC,eAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EAAA,QAAA,EAAA,CAE1D,OAAO,KACNF,cAAA,CAACG,SAAG,EAAA,EACF,QAAQ,EAAC,UAAU,EACnB,GAAG,EAAC,GAAG,EACP,IAAI,EAAC,GAAG,EACR,KAAK,EAAC,GAAG,EACT,MAAM,EAAC,GAAG,EACV,eAAe,EAAE,OAAO,EACxB,cAAc,EAAC,OAAO,EACtB,kBAAkB,EAAC,QAAQ,EAC3B,MAAM,EAAC,gCAAgC,EACvC,MAAM,EAAC,IAAI,GACX,CACH,EACDH,cAAA,CAACI,WAAK,IACJ,IAAI,EAAC,MAAM,EACX,MAAM,EAAA,IAAA,EACN,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,YAAY,EAAA,GAClB,IAAI,EAAA,CACR,EACFJ,cAAA,CAACC,UAAI,IACH,CAAC,EAAC,MAAM,EACR,CAAC,EAAC,MAAM,EACR,CAAC,EAAE,CAAC,EACJ,OAAO,EAAC,QAAQ,EAChB,OAAO,EAAC,QAAQ,EAChB,KAAK,EAAC,QAAQ,EACd,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"FileInput.js","sources":["../../../src/components/FileInput/FileInput.tsx"],"sourcesContent":[null],"names":["forwardRef","useTranslate","_jsx","Flex","_jsxs","Box","Input","Spinner","LuUpload","Text"],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ const FileInput = forwardRef(({ fileInputLabel, containerStyle = {}, bgImage, on
|
|
|
20
20
|
const handleChange = (event) => {
|
|
21
21
|
onChange(event.currentTarget.files);
|
|
22
22
|
};
|
|
23
|
-
return (jsx(Flex, { role: "button", w: "100%", h: "100%", maxH: 32, flexDir: "column", align: "center", justify: "center", border: "1px dashed", borderColor: "border.default", position: "relative", overflow: "hidden", borderRadius: "md", ...containerStyle, children: jsxs("label", { role: "group", style: { width: '100%', height: '100%', cursor: 'pointer' }, children: [bgImage && (jsx(Box, { position: "absolute", top: "0", left: "0", right: "0", bottom: "0", backgroundImage: bgImage, backgroundSize: "cover", backgroundPosition: "center", filter: "grayscale(50%) brightness(80%)", zIndex: "-1" })), jsx(Input, { type: "file", hidden: true, ref: ref, onChange: handleChange, ...rest }), jsx(Flex, { w: "100%", h: "100%", p: 7, flexDir: "column", justify: "center", align: "center", bgColor: "
|
|
23
|
+
return (jsx(Flex, { role: "button", w: "100%", h: "100%", maxH: 32, flexDir: "column", align: "center", justify: "center", border: "1px dashed", borderColor: "border.default", position: "relative", overflow: "hidden", borderRadius: "md", ...containerStyle, children: jsxs("label", { role: "group", style: { width: '100%', height: '100%', cursor: 'pointer' }, children: [bgImage && (jsx(Box, { position: "absolute", top: "0", left: "0", right: "0", bottom: "0", backgroundImage: bgImage, backgroundSize: "cover", backgroundPosition: "center", filter: "grayscale(50%) brightness(80%)", zIndex: "-1" })), jsx(Input, { type: "file", hidden: true, ref: ref, onChange: handleChange, ...rest }), jsx(Flex, { w: "100%", h: "100%", p: 7, flexDir: "column", justify: "center", align: "center", bgColor: "color-mix(in srgb, var(--chakra-colors-bg-surface) 85%, transparent)", opacity: bgImage ? 0 : 1, transition: "ease-in", _groupHover: { opacity: 1 }, children: isLoading ? (jsx(Spinner, {})) : (jsxs(Flex, { w: "100%", flexDir: "column", align: "center", justify: "center", children: [jsx(Box, { borderRadius: "lg", bgColor: bgImage ? 'transparent' : 'bg.muted', p: 3, mb: 2, w: "fit-content", children: jsx(LuUpload, { color: bgImage ? 'fg.default' : 'fg.subtle' }) }), jsx(Text, { color: bgImage ? 'fg.default' : 'fg.subtle', children: fileInputLabel || translate('upload_your_file') })] })) })] }) }));
|
|
24
24
|
});
|
|
25
25
|
FileInput.displayName = 'FileInput';
|
|
26
26
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileInput.mjs","sources":["../../../src/components/FileInput/FileInput.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":";;;;;;;;;;;;;;;;;AAUO,MAAM,SAAS,GAAG,UAAU,CACjC,CACE,EACE,cAAc,EACd,cAAc,GAAG,EAAE,EACnB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EACD,GAAG,KACD;AACF,IAAA,MAAM,SAAS,GAAG,YAAY,EAAE;AAEhC,IAAA,MAAM,YAAY,GAAyC,CAAC,KAAK,KAAI;AACnE,QAAA,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;AACrC,IAAA,CAAC;AAED,IAAA,QACEA,GAAA,CAAC,IAAI,EAAA,EACH,IAAI,EAAC,QAAQ,EACb,CAAC,EAAC,MAAM,EACR,CAAC,EAAC,MAAM,EACR,IAAI,EAAE,EAAE,EACR,OAAO,EAAC,QAAQ,EAChB,KAAK,EAAC,QAAQ,EACd,OAAO,EAAC,QAAQ,EAChB,MAAM,EAAC,YAAY,EACnB,WAAW,EAAC,gBAAgB,EAC5B,QAAQ,EAAC,UAAU,EACnB,QAAQ,EAAC,QAAQ,EACjB,YAAY,EAAC,IAAI,EAAA,GACb,cAAc,EAAA,QAAA,EAElBC,IAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EAAA,QAAA,EAAA,CAE1D,OAAO,KACND,GAAA,CAAC,GAAG,EAAA,EACF,QAAQ,EAAC,UAAU,EACnB,GAAG,EAAC,GAAG,EACP,IAAI,EAAC,GAAG,EACR,KAAK,EAAC,GAAG,EACT,MAAM,EAAC,GAAG,EACV,eAAe,EAAE,OAAO,EACxB,cAAc,EAAC,OAAO,EACtB,kBAAkB,EAAC,QAAQ,EAC3B,MAAM,EAAC,gCAAgC,EACvC,MAAM,EAAC,IAAI,GACX,CACH,EACDA,GAAA,CAAC,KAAK,IACJ,IAAI,EAAC,MAAM,EACX,MAAM,EAAA,IAAA,EACN,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,YAAY,EAAA,GAClB,IAAI,EAAA,CACR,EACFA,GAAA,CAAC,IAAI,IACH,CAAC,EAAC,MAAM,EACR,CAAC,EAAC,MAAM,EACR,CAAC,EAAE,CAAC,EACJ,OAAO,EAAC,QAAQ,EAChB,OAAO,EAAC,QAAQ,EAChB,KAAK,EAAC,QAAQ,EACd,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"FileInput.mjs","sources":["../../../src/components/FileInput/FileInput.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":";;;;;;;;;;;;;;;;;AAUO,MAAM,SAAS,GAAG,UAAU,CACjC,CACE,EACE,cAAc,EACd,cAAc,GAAG,EAAE,EACnB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EACD,GAAG,KACD;AACF,IAAA,MAAM,SAAS,GAAG,YAAY,EAAE;AAEhC,IAAA,MAAM,YAAY,GAAyC,CAAC,KAAK,KAAI;AACnE,QAAA,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;AACrC,IAAA,CAAC;AAED,IAAA,QACEA,GAAA,CAAC,IAAI,EAAA,EACH,IAAI,EAAC,QAAQ,EACb,CAAC,EAAC,MAAM,EACR,CAAC,EAAC,MAAM,EACR,IAAI,EAAE,EAAE,EACR,OAAO,EAAC,QAAQ,EAChB,KAAK,EAAC,QAAQ,EACd,OAAO,EAAC,QAAQ,EAChB,MAAM,EAAC,YAAY,EACnB,WAAW,EAAC,gBAAgB,EAC5B,QAAQ,EAAC,UAAU,EACnB,QAAQ,EAAC,QAAQ,EACjB,YAAY,EAAC,IAAI,EAAA,GACb,cAAc,EAAA,QAAA,EAElBC,IAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EAAA,QAAA,EAAA,CAE1D,OAAO,KACND,GAAA,CAAC,GAAG,EAAA,EACF,QAAQ,EAAC,UAAU,EACnB,GAAG,EAAC,GAAG,EACP,IAAI,EAAC,GAAG,EACR,KAAK,EAAC,GAAG,EACT,MAAM,EAAC,GAAG,EACV,eAAe,EAAE,OAAO,EACxB,cAAc,EAAC,OAAO,EACtB,kBAAkB,EAAC,QAAQ,EAC3B,MAAM,EAAC,gCAAgC,EACvC,MAAM,EAAC,IAAI,GACX,CACH,EACDA,GAAA,CAAC,KAAK,IACJ,IAAI,EAAC,MAAM,EACX,MAAM,EAAA,IAAA,EACN,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,YAAY,EAAA,GAClB,IAAI,EAAA,CACR,EACFA,GAAA,CAAC,IAAI,IACH,CAAC,EAAC,MAAM,EACR,CAAC,EAAC,MAAM,EACR,CAAC,EAAE,CAAC,EACJ,OAAO,EAAC,QAAQ,EAChB,OAAO,EAAC,QAAQ,EAChB,KAAK,EAAC,QAAQ,EACd,OAAO,EAAC,sEAAsE,EAC9E,OAAO,EAAE,OAAO,GAAG,CAAC,GAAG,CAAC,EACxB,UAAU,EAAC,SAAS,EACpB,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,YAE1B,SAAS,IACRA,GAAA,CAAC,OAAO,EAAA,EAAA,CAAG,KAEXC,IAAA,CAAC,IAAI,EAAA,EAAC,CAAC,EAAC,MAAM,EAAC,OAAO,EAAC,QAAQ,EAAC,KAAK,EAAC,QAAQ,EAAC,OAAO,EAAC,QAAQ,EAAA,QAAA,EAAA,CAC7DD,GAAA,CAAC,GAAG,EAAA,EACF,YAAY,EAAC,IAAI,EACjB,OAAO,EAAE,OAAO,GAAG,aAAa,GAAG,UAAU,EAC7C,CAAC,EAAE,CAAC,EACJ,EAAE,EAAE,CAAC,EACL,CAAC,EAAC,aAAa,EAAA,QAAA,EAEfA,IAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,WAAW,GAAI,EAAA,CACrD,EACNA,GAAA,CAAC,IAAI,IAAC,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,WAAW,EAAA,QAAA,EAC9C,cAAc,IAAI,SAAS,CAAC,kBAAkB,CAAC,EAAA,CAC3C,IACF,CACR,EAAA,CACI,CAAA,EAAA,CACD,EAAA,CACH;AAEX,CAAC;AAGH,SAAS,CAAC,WAAW,GAAG,WAAW;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LineGraph.d.ts","sourceRoot":"","sources":["../../../src/components/LineGraph/LineGraph.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE9D,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,SAAS,EAAE,4CAK5C,cAAc,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"LineGraph.d.ts","sourceRoot":"","sources":["../../../src/components/LineGraph/LineGraph.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE9D,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,SAAS,EAAE,4CAK5C,cAAc,CAAC,CAAC,CAAC,4CAyEnB,CAAC"}
|
|
@@ -37,11 +37,15 @@ const LineGraph = ({ data = [], dataKeys, displayLegend = true, ...rest }) => {
|
|
|
37
37
|
fill: 'var(--chakra-colors-fg-muted)',
|
|
38
38
|
fontSize: `${react.useToken('fontSizes', 'sm')}`,
|
|
39
39
|
}, tickMargin: 0 }), jsxRuntime.jsx(recharts.Tooltip
|
|
40
|
-
//
|
|
40
|
+
// The tooltip surface stays light in both modes, so the label keeps
|
|
41
|
+
// a fixed near-black. Must be a CSS var, not 'gray.1500' — recharts
|
|
42
|
+
// won't resolve Chakra tokens (see XAxis/YAxis above).
|
|
41
43
|
, {
|
|
42
|
-
//
|
|
44
|
+
// The tooltip surface stays light in both modes, so the label keeps
|
|
45
|
+
// a fixed near-black. Must be a CSS var, not 'gray.1500' — recharts
|
|
46
|
+
// won't resolve Chakra tokens (see XAxis/YAxis above).
|
|
43
47
|
labelStyle: {
|
|
44
|
-
color: 'gray
|
|
48
|
+
color: 'var(--chakra-colors-gray-1500)',
|
|
45
49
|
} }), displayLegend && (jsxRuntime.jsx(recharts.Legend, { wrapperStyle: {
|
|
46
50
|
bottom: -16,
|
|
47
51
|
} })), dataKeys.map(({ key, label, color }) => (jsxRuntime.jsx(recharts.Line, { type: "monotone", dataKey: key, name: label, stroke: color ?? primaryColor, dot: { r: 0 } }, `line-${key}`)))] }) }) }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LineGraph.js","sources":["../../../src/components/LineGraph/LineGraph.tsx"],"sourcesContent":[null],"names":["useToken","_jsx","Box","ResponsiveContainer","_jsxs","LineChart","CartesianGrid","XAxis","YAxis","Tooltip","Legend","Line"],"mappings":";;;;;;;MAca,SAAS,GAAG,CAAsB,EAC7C,IAAI,GAAG,EAAE,EACT,QAAQ,EACR,aAAa,GAAG,IAAI,EACpB,GAAG,IAAI,EACW,KAAI;IACtB,MAAM,YAAY,GAAGA,cAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;AAC1D,IAAA,QACEC,cAAA,CAACC,SAAG,EAAA,EAAC,CAAC,EAAC,OAAO,EAAA,GAAK,IAAI,EAAA,QAAA,EACrBD,cAAA,CAACE,4BAAmB,EAAA,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAA,QAAA,EAC7CC,eAAA,CAACC,kBAAS,EAAA,EACR,IAAI,EAAE,IAAI,EACV,MAAM,EAAE;AACN,oBAAA,GAAG,EAAE,CAAC;AACN,oBAAA,MAAM,EAAE,CAAC;AACT,oBAAA,IAAI,EAAE,CAAC;AACP,oBAAA,KAAK,EAAE,EAAE;AACV,iBAAA,EAAA,QAAA,EAAA,CAEDJ,eAACK;;;;AAEC,wBAAA,eAAe,EAAC,EAAE,EAClB,QAAQ,EAAE,KAAK;;;wBAGf,MAAM,EAAC,qCAAqC,EAAA,CAC5C,EACFL,eAACM,cAAK,EAAA,EACJ,OAAO,EAAC,MAAM;;AAEd,wBAAA,MAAM,EAAC,aAAa;;;AAGpB,wBAAA,IAAI,EAAE;AACJ,4BAAA,IAAI,EAAE,+BAA+B;4BACrC,QAAQ,EAAE,GAAGP,cAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA,CAAE;AAC3C,yBAAA,EACD,UAAU,EAAE,CAAC,EAAA,CACb,EACFC,eAACO;;;;AAEC,wBAAA,MAAM,EAAC,aAAa;;AAEpB,wBAAA,IAAI,EAAE;AACJ,4BAAA,IAAI,EAAE,+BAA+B;4BACrC,QAAQ,EAAE,GAAGR,cAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA,CAAE;AAC3C,yBAAA,EACD,UAAU,EAAE,CAAC,EAAA,CACb,EACFC,eAACQ
|
|
1
|
+
{"version":3,"file":"LineGraph.js","sources":["../../../src/components/LineGraph/LineGraph.tsx"],"sourcesContent":[null],"names":["useToken","_jsx","Box","ResponsiveContainer","_jsxs","LineChart","CartesianGrid","XAxis","YAxis","Tooltip","Legend","Line"],"mappings":";;;;;;;MAca,SAAS,GAAG,CAAsB,EAC7C,IAAI,GAAG,EAAE,EACT,QAAQ,EACR,aAAa,GAAG,IAAI,EACpB,GAAG,IAAI,EACW,KAAI;IACtB,MAAM,YAAY,GAAGA,cAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;AAC1D,IAAA,QACEC,cAAA,CAACC,SAAG,EAAA,EAAC,CAAC,EAAC,OAAO,EAAA,GAAK,IAAI,EAAA,QAAA,EACrBD,cAAA,CAACE,4BAAmB,EAAA,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAA,QAAA,EAC7CC,eAAA,CAACC,kBAAS,EAAA,EACR,IAAI,EAAE,IAAI,EACV,MAAM,EAAE;AACN,oBAAA,GAAG,EAAE,CAAC;AACN,oBAAA,MAAM,EAAE,CAAC;AACT,oBAAA,IAAI,EAAE,CAAC;AACP,oBAAA,KAAK,EAAE,EAAE;AACV,iBAAA,EAAA,QAAA,EAAA,CAEDJ,eAACK;;;;AAEC,wBAAA,eAAe,EAAC,EAAE,EAClB,QAAQ,EAAE,KAAK;;;wBAGf,MAAM,EAAC,qCAAqC,EAAA,CAC5C,EACFL,eAACM,cAAK,EAAA,EACJ,OAAO,EAAC,MAAM;;AAEd,wBAAA,MAAM,EAAC,aAAa;;;AAGpB,wBAAA,IAAI,EAAE;AACJ,4BAAA,IAAI,EAAE,+BAA+B;4BACrC,QAAQ,EAAE,GAAGP,cAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA,CAAE;AAC3C,yBAAA,EACD,UAAU,EAAE,CAAC,EAAA,CACb,EACFC,eAACO;;;;AAEC,wBAAA,MAAM,EAAC,aAAa;;AAEpB,wBAAA,IAAI,EAAE;AACJ,4BAAA,IAAI,EAAE,+BAA+B;4BACrC,QAAQ,EAAE,GAAGR,cAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA,CAAE;AAC3C,yBAAA,EACD,UAAU,EAAE,CAAC,EAAA,CACb,EACFC,eAACQ;;;;;;;;AAIC,wBAAA,UAAU,EAAE;AACV,4BAAA,KAAK,EAAE,gCAAgC;yBACxC,EAAA,CACD,EACD,aAAa,KACZR,eAACS,eAAM,EAAA,EACL,YAAY,EAAE;4BACZ,MAAM,EAAE,GAAG;yBACZ,EAAA,CACD,CACH,EACA,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAClCT,cAAA,CAACU,aAAI,EAAA,EAEH,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,GAAG,EACZ,IAAI,EAAE,KAAK,EACX,MAAM,EAAE,KAAK,IAAI,YAAY,EAC7B,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAA,EALR,CAAA,KAAA,EAAQ,GAAG,CAAA,CAAE,CAMlB,CACH,CAAC,CAAA,EAAA,CACQ,EAAA,CACQ,EAAA,CAClB;AAEV;;;;"}
|
|
@@ -35,11 +35,15 @@ const LineGraph = ({ data = [], dataKeys, displayLegend = true, ...rest }) => {
|
|
|
35
35
|
fill: 'var(--chakra-colors-fg-muted)',
|
|
36
36
|
fontSize: `${useToken('fontSizes', 'sm')}`,
|
|
37
37
|
}, tickMargin: 0 }), jsx(Tooltip
|
|
38
|
-
//
|
|
38
|
+
// The tooltip surface stays light in both modes, so the label keeps
|
|
39
|
+
// a fixed near-black. Must be a CSS var, not 'gray.1500' — recharts
|
|
40
|
+
// won't resolve Chakra tokens (see XAxis/YAxis above).
|
|
39
41
|
, {
|
|
40
|
-
//
|
|
42
|
+
// The tooltip surface stays light in both modes, so the label keeps
|
|
43
|
+
// a fixed near-black. Must be a CSS var, not 'gray.1500' — recharts
|
|
44
|
+
// won't resolve Chakra tokens (see XAxis/YAxis above).
|
|
41
45
|
labelStyle: {
|
|
42
|
-
color: 'gray
|
|
46
|
+
color: 'var(--chakra-colors-gray-1500)',
|
|
43
47
|
} }), displayLegend && (jsx(Legend, { wrapperStyle: {
|
|
44
48
|
bottom: -16,
|
|
45
49
|
} })), dataKeys.map(({ key, label, color }) => (jsx(Line, { type: "monotone", dataKey: key, name: label, stroke: color ?? primaryColor, dot: { r: 0 } }, `line-${key}`)))] }) }) }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LineGraph.mjs","sources":["../../../src/components/LineGraph/LineGraph.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":";;;;;MAca,SAAS,GAAG,CAAsB,EAC7C,IAAI,GAAG,EAAE,EACT,QAAQ,EACR,aAAa,GAAG,IAAI,EACpB,GAAG,IAAI,EACW,KAAI;IACtB,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;AAC1D,IAAA,QACEA,GAAA,CAAC,GAAG,EAAA,EAAC,CAAC,EAAC,OAAO,EAAA,GAAK,IAAI,EAAA,QAAA,EACrBA,GAAA,CAAC,mBAAmB,EAAA,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAA,QAAA,EAC7CC,IAAA,CAAC,SAAS,EAAA,EACR,IAAI,EAAE,IAAI,EACV,MAAM,EAAE;AACN,oBAAA,GAAG,EAAE,CAAC;AACN,oBAAA,MAAM,EAAE,CAAC;AACT,oBAAA,IAAI,EAAE,CAAC;AACP,oBAAA,KAAK,EAAE,EAAE;AACV,iBAAA,EAAA,QAAA,EAAA,CAEDD,IAAC;;;;AAEC,wBAAA,eAAe,EAAC,EAAE,EAClB,QAAQ,EAAE,KAAK;;;wBAGf,MAAM,EAAC,qCAAqC,EAAA,CAC5C,EACFA,IAAC,KAAK,EAAA,EACJ,OAAO,EAAC,MAAM;;AAEd,wBAAA,MAAM,EAAC,aAAa;;;AAGpB,wBAAA,IAAI,EAAE;AACJ,4BAAA,IAAI,EAAE,+BAA+B;4BACrC,QAAQ,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA,CAAE;AAC3C,yBAAA,EACD,UAAU,EAAE,CAAC,EAAA,CACb,EACFA,IAAC;;;;AAEC,wBAAA,MAAM,EAAC,aAAa;;AAEpB,wBAAA,IAAI,EAAE;AACJ,4BAAA,IAAI,EAAE,+BAA+B;4BACrC,QAAQ,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA,CAAE;AAC3C,yBAAA,EACD,UAAU,EAAE,CAAC,EAAA,CACb,EACFA,IAAC
|
|
1
|
+
{"version":3,"file":"LineGraph.mjs","sources":["../../../src/components/LineGraph/LineGraph.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":";;;;;MAca,SAAS,GAAG,CAAsB,EAC7C,IAAI,GAAG,EAAE,EACT,QAAQ,EACR,aAAa,GAAG,IAAI,EACpB,GAAG,IAAI,EACW,KAAI;IACtB,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;AAC1D,IAAA,QACEA,GAAA,CAAC,GAAG,EAAA,EAAC,CAAC,EAAC,OAAO,EAAA,GAAK,IAAI,EAAA,QAAA,EACrBA,GAAA,CAAC,mBAAmB,EAAA,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAA,QAAA,EAC7CC,IAAA,CAAC,SAAS,EAAA,EACR,IAAI,EAAE,IAAI,EACV,MAAM,EAAE;AACN,oBAAA,GAAG,EAAE,CAAC;AACN,oBAAA,MAAM,EAAE,CAAC;AACT,oBAAA,IAAI,EAAE,CAAC;AACP,oBAAA,KAAK,EAAE,EAAE;AACV,iBAAA,EAAA,QAAA,EAAA,CAEDD,IAAC;;;;AAEC,wBAAA,eAAe,EAAC,EAAE,EAClB,QAAQ,EAAE,KAAK;;;wBAGf,MAAM,EAAC,qCAAqC,EAAA,CAC5C,EACFA,IAAC,KAAK,EAAA,EACJ,OAAO,EAAC,MAAM;;AAEd,wBAAA,MAAM,EAAC,aAAa;;;AAGpB,wBAAA,IAAI,EAAE;AACJ,4BAAA,IAAI,EAAE,+BAA+B;4BACrC,QAAQ,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA,CAAE;AAC3C,yBAAA,EACD,UAAU,EAAE,CAAC,EAAA,CACb,EACFA,IAAC;;;;AAEC,wBAAA,MAAM,EAAC,aAAa;;AAEpB,wBAAA,IAAI,EAAE;AACJ,4BAAA,IAAI,EAAE,+BAA+B;4BACrC,QAAQ,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA,CAAE;AAC3C,yBAAA,EACD,UAAU,EAAE,CAAC,EAAA,CACb,EACFA,IAAC;;;;;;;;AAIC,wBAAA,UAAU,EAAE;AACV,4BAAA,KAAK,EAAE,gCAAgC;yBACxC,EAAA,CACD,EACD,aAAa,KACZA,IAAC,MAAM,EAAA,EACL,YAAY,EAAE;4BACZ,MAAM,EAAE,GAAG;yBACZ,EAAA,CACD,CACH,EACA,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAClCA,GAAA,CAAC,IAAI,EAAA,EAEH,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,GAAG,EACZ,IAAI,EAAE,KAAK,EACX,MAAM,EAAE,KAAK,IAAI,YAAY,EAC7B,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAA,EALR,CAAA,KAAA,EAAQ,GAAG,CAAA,CAAE,CAMlB,CACH,CAAC,CAAA,EAAA,CACQ,EAAA,CACQ,EAAA,CAClB;AAEV;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../../src/components/Textarea/Textarea.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,eAAO,MAAM,QAAQ,+
|
|
1
|
+
{"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../../src/components/Textarea/Textarea.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,eAAO,MAAM,QAAQ,+GAkGpB,CAAC"}
|
|
@@ -6,7 +6,7 @@ var React = require('react');
|
|
|
6
6
|
var react = require('@chakra-ui/react');
|
|
7
7
|
var mergeCss = require('../../utils/mergeCss.js');
|
|
8
8
|
|
|
9
|
-
const Textarea = React.forwardRef(({ placeholder, onChange, value: propValue, _focusVisible, _hover, _focus, disabled, invalid, readOnly, css, ...props }, ref) => {
|
|
9
|
+
const Textarea = React.forwardRef(({ placeholder, onChange, value: propValue, _focusVisible, _hover, _focus, disabled, invalid, readOnly, borderColor, css, ...props }, ref) => {
|
|
10
10
|
const [currentValue, setCurrentValue] = React.useState(propValue);
|
|
11
11
|
React.useEffect(() => {
|
|
12
12
|
setCurrentValue(propValue);
|
|
@@ -23,7 +23,8 @@ const Textarea = React.forwardRef(({ placeholder, onChange, value: propValue, _f
|
|
|
23
23
|
// `Textarea` recipe does not — so the focus ring defaults to
|
|
24
24
|
// `colorPalette.focusRing` (gray.400) and ends up visibly
|
|
25
25
|
// different from Input/Select. Mirror Input's chain explicitly.
|
|
26
|
-
focusRingColor: invalid ? 'danger.main' : 'primary.main', borderColor:
|
|
26
|
+
focusRingColor: invalid ? 'danger.main' : 'primary.main', borderColor: borderColor ??
|
|
27
|
+
(invalid ? 'danger.main' : { base: 'gray.400', _dark: 'gray.1100' }), _hover: {
|
|
27
28
|
borderColor: invalid ? 'danger.main' : 'primary.lighter',
|
|
28
29
|
..._hover,
|
|
29
30
|
}, _focus: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Textarea.js","sources":["../../../src/components/Textarea/Textarea.tsx"],"sourcesContent":[null],"names":["forwardRef","useState","useEffect","_jsx","ChakraTextarea","mergeCss"],"mappings":";;;;;;;;AAOO,MAAM,QAAQ,GAAGA,gBAAU,CAChC,CACE,EACE,WAAW,EACX,QAAQ,EACR,KAAK,EAAE,SAAS,EAChB,aAAa,EACb,MAAM,EACN,MAAM,EACN,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,GAAG,EACH,GAAG,KAAK,EACT,EACD,GAAG,KACD;IACF,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAGC,cAAQ,CAE9C,SAAS,CAAC;IAEZC,eAAS,CAAC,MAAK;QACb,eAAe,CAAC,SAAS,CAAC;AAC5B,IAAA,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AAEf,IAAA,MAAM,YAAY,GAAG,CAAC,CAAmC,KAAI;AAC3D,QAAA,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAE/B,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,CAAC,CAAC;QACb;AACF,IAAA,CAAC;AAED,IAAA,QACEC,cAAA,CAACC,cAAc,IACb,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAAA,cAAA,EACJ,OAAO,IAAI,SAAS,EAClC,MAAM,EAAC,MAAM,EACb,EAAE,EAAC,YAAY,EACf,KAAK,EAAC,YAAY;;;;;;AAMlB,QAAA,cAAc,EAAE,OAAO,GAAG,aAAa,GAAG,cAAc,EACxD,WAAW,EACT,OAAO,GAAG,aAAa,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"Textarea.js","sources":["../../../src/components/Textarea/Textarea.tsx"],"sourcesContent":[null],"names":["forwardRef","useState","useEffect","_jsx","ChakraTextarea","mergeCss"],"mappings":";;;;;;;;AAOO,MAAM,QAAQ,GAAGA,gBAAU,CAChC,CACE,EACE,WAAW,EACX,QAAQ,EACR,KAAK,EAAE,SAAS,EAChB,aAAa,EACb,MAAM,EACN,MAAM,EACN,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,WAAW,EACX,GAAG,EACH,GAAG,KAAK,EACT,EACD,GAAG,KACD;IACF,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAGC,cAAQ,CAE9C,SAAS,CAAC;IAEZC,eAAS,CAAC,MAAK;QACb,eAAe,CAAC,SAAS,CAAC;AAC5B,IAAA,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AAEf,IAAA,MAAM,YAAY,GAAG,CAAC,CAAmC,KAAI;AAC3D,QAAA,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAE/B,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,CAAC,CAAC;QACb;AACF,IAAA,CAAC;AAED,IAAA,QACEC,cAAA,CAACC,cAAc,IACb,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAAA,cAAA,EACJ,OAAO,IAAI,SAAS,EAClC,MAAM,EAAC,MAAM,EACb,EAAE,EAAC,YAAY,EACf,KAAK,EAAC,YAAY;;;;;;AAMlB,QAAA,cAAc,EAAE,OAAO,GAAG,aAAa,GAAG,cAAc,EACxD,WAAW,EACT,WAAW;aACV,OAAO,GAAG,aAAa,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAEtE,MAAM,EAAE;YACN,WAAW,EAAE,OAAO,GAAG,aAAa,GAAG,iBAAiB;AACxD,YAAA,GAAG,MAAM;AACV,SAAA,EACD,MAAM,EAAE;YACN,WAAW,EAAE,OAAO,GAAG,aAAa,GAAG,cAAc;AACrD,YAAA,GAAG,MAAM;AACV,SAAA,EACD,QAAQ,EAAE;AACR,YAAA,WAAW,EAAE,aAAa;AAC1B,YAAA,MAAM,EAAE;AACN,gBAAA,WAAW,EAAE,aAAa;AAC3B,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,WAAW,EAAE,aAAa;AAC3B,aAAA;AACF,SAAA,EACD,SAAS,EAAE;AACT,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,MAAM,EAAE,aAAa;AACrB,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,WAAW,EAAE,eAAe;AAC7B,SAAA,EACD,SAAS,EAAE;AACT,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,MAAM,EAAE,aAAa;AACrB,YAAA,EAAE,EAAE,WAAW;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE;AAC/C,YAAA,UAAU,EAAE,UAAU;AACvB,SAAA,EAAA,GACG,KAAK,EACT,GAAG,EAAEC,iBAAQ,CACX;AACE,YAAA,eAAe,EAAE,mCAAmC;AACpD,YAAA,eAAe,EAAE,kCAAkC;AACpD,SAAA,EACD,GAAG,CACJ,EAAA,CACD;AAEN,CAAC;AAGH,QAAQ,CAAC,WAAW,GAAG,UAAU;;;;"}
|
|
@@ -4,7 +4,7 @@ import { forwardRef, useState, useEffect } from 'react';
|
|
|
4
4
|
import { Textarea as Textarea$1 } from '@chakra-ui/react';
|
|
5
5
|
import { mergeCss } from '../../utils/mergeCss.mjs';
|
|
6
6
|
|
|
7
|
-
const Textarea = forwardRef(({ placeholder, onChange, value: propValue, _focusVisible, _hover, _focus, disabled, invalid, readOnly, css, ...props }, ref) => {
|
|
7
|
+
const Textarea = forwardRef(({ placeholder, onChange, value: propValue, _focusVisible, _hover, _focus, disabled, invalid, readOnly, borderColor, css, ...props }, ref) => {
|
|
8
8
|
const [currentValue, setCurrentValue] = useState(propValue);
|
|
9
9
|
useEffect(() => {
|
|
10
10
|
setCurrentValue(propValue);
|
|
@@ -21,7 +21,8 @@ const Textarea = forwardRef(({ placeholder, onChange, value: propValue, _focusVi
|
|
|
21
21
|
// `Textarea` recipe does not — so the focus ring defaults to
|
|
22
22
|
// `colorPalette.focusRing` (gray.400) and ends up visibly
|
|
23
23
|
// different from Input/Select. Mirror Input's chain explicitly.
|
|
24
|
-
focusRingColor: invalid ? 'danger.main' : 'primary.main', borderColor:
|
|
24
|
+
focusRingColor: invalid ? 'danger.main' : 'primary.main', borderColor: borderColor ??
|
|
25
|
+
(invalid ? 'danger.main' : { base: 'gray.400', _dark: 'gray.1100' }), _hover: {
|
|
25
26
|
borderColor: invalid ? 'danger.main' : 'primary.lighter',
|
|
26
27
|
..._hover,
|
|
27
28
|
}, _focus: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Textarea.mjs","sources":["../../../src/components/Textarea/Textarea.tsx"],"sourcesContent":[null],"names":["_jsx","ChakraTextarea"],"mappings":";;;;;;AAOO,MAAM,QAAQ,GAAG,UAAU,CAChC,CACE,EACE,WAAW,EACX,QAAQ,EACR,KAAK,EAAE,SAAS,EAChB,aAAa,EACb,MAAM,EACN,MAAM,EACN,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,GAAG,EACH,GAAG,KAAK,EACT,EACD,GAAG,KACD;IACF,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAE9C,SAAS,CAAC;IAEZ,SAAS,CAAC,MAAK;QACb,eAAe,CAAC,SAAS,CAAC;AAC5B,IAAA,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AAEf,IAAA,MAAM,YAAY,GAAG,CAAC,CAAmC,KAAI;AAC3D,QAAA,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAE/B,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,CAAC,CAAC;QACb;AACF,IAAA,CAAC;AAED,IAAA,QACEA,GAAA,CAACC,UAAc,IACb,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAAA,cAAA,EACJ,OAAO,IAAI,SAAS,EAClC,MAAM,EAAC,MAAM,EACb,EAAE,EAAC,YAAY,EACf,KAAK,EAAC,YAAY;;;;;;AAMlB,QAAA,cAAc,EAAE,OAAO,GAAG,aAAa,GAAG,cAAc,EACxD,WAAW,EACT,OAAO,GAAG,aAAa,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"Textarea.mjs","sources":["../../../src/components/Textarea/Textarea.tsx"],"sourcesContent":[null],"names":["_jsx","ChakraTextarea"],"mappings":";;;;;;AAOO,MAAM,QAAQ,GAAG,UAAU,CAChC,CACE,EACE,WAAW,EACX,QAAQ,EACR,KAAK,EAAE,SAAS,EAChB,aAAa,EACb,MAAM,EACN,MAAM,EACN,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,WAAW,EACX,GAAG,EACH,GAAG,KAAK,EACT,EACD,GAAG,KACD;IACF,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAE9C,SAAS,CAAC;IAEZ,SAAS,CAAC,MAAK;QACb,eAAe,CAAC,SAAS,CAAC;AAC5B,IAAA,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AAEf,IAAA,MAAM,YAAY,GAAG,CAAC,CAAmC,KAAI;AAC3D,QAAA,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAE/B,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,CAAC,CAAC;QACb;AACF,IAAA,CAAC;AAED,IAAA,QACEA,GAAA,CAACC,UAAc,IACb,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAAA,cAAA,EACJ,OAAO,IAAI,SAAS,EAClC,MAAM,EAAC,MAAM,EACb,EAAE,EAAC,YAAY,EACf,KAAK,EAAC,YAAY;;;;;;AAMlB,QAAA,cAAc,EAAE,OAAO,GAAG,aAAa,GAAG,cAAc,EACxD,WAAW,EACT,WAAW;aACV,OAAO,GAAG,aAAa,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAEtE,MAAM,EAAE;YACN,WAAW,EAAE,OAAO,GAAG,aAAa,GAAG,iBAAiB;AACxD,YAAA,GAAG,MAAM;AACV,SAAA,EACD,MAAM,EAAE;YACN,WAAW,EAAE,OAAO,GAAG,aAAa,GAAG,cAAc;AACrD,YAAA,GAAG,MAAM;AACV,SAAA,EACD,QAAQ,EAAE;AACR,YAAA,WAAW,EAAE,aAAa;AAC1B,YAAA,MAAM,EAAE;AACN,gBAAA,WAAW,EAAE,aAAa;AAC3B,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,WAAW,EAAE,aAAa;AAC3B,aAAA;AACF,SAAA,EACD,SAAS,EAAE;AACT,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,MAAM,EAAE,aAAa;AACrB,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,WAAW,EAAE,eAAe;AAC7B,SAAA,EACD,SAAS,EAAE;AACT,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,MAAM,EAAE,aAAa;AACrB,YAAA,EAAE,EAAE,WAAW;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE;AAC/C,YAAA,UAAU,EAAE,UAAU;AACvB,SAAA,EAAA,GACG,KAAK,EACT,GAAG,EAAE,QAAQ,CACX;AACE,YAAA,eAAe,EAAE,mCAAmC;AACpD,YAAA,eAAe,EAAE,kCAAkC;AACpD,SAAA,EACD,GAAG,CACJ,EAAA,CACD;AAEN,CAAC;AAGH,QAAQ,CAAC,WAAW,GAAG,UAAU;;;;"}
|
package/package.json
CHANGED
|
@@ -74,7 +74,7 @@ export const FileInput = forwardRef<HTMLInputElement, FileInputProps>(
|
|
|
74
74
|
flexDir="column"
|
|
75
75
|
justify="center"
|
|
76
76
|
align="center"
|
|
77
|
-
bgColor="
|
|
77
|
+
bgColor="color-mix(in srgb, var(--chakra-colors-bg-surface) 85%, transparent)"
|
|
78
78
|
opacity={bgImage ? 0 : 1}
|
|
79
79
|
transition="ease-in"
|
|
80
80
|
_groupHover={{ opacity: 1 }} // Set opacity to 1 on parent hover
|
|
@@ -62,9 +62,11 @@ export const LineGraph = <T extends DatumBase>({
|
|
|
62
62
|
tickMargin={0}
|
|
63
63
|
/>
|
|
64
64
|
<Tooltip
|
|
65
|
-
//
|
|
65
|
+
// The tooltip surface stays light in both modes, so the label keeps
|
|
66
|
+
// a fixed near-black. Must be a CSS var, not 'gray.1500' — recharts
|
|
67
|
+
// won't resolve Chakra tokens (see XAxis/YAxis above).
|
|
66
68
|
labelStyle={{
|
|
67
|
-
color: 'gray
|
|
69
|
+
color: 'var(--chakra-colors-gray-1500)',
|
|
68
70
|
}}
|
|
69
71
|
/>
|
|
70
72
|
{displayLegend && (
|
|
@@ -17,6 +17,7 @@ export const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(
|
|
|
17
17
|
disabled,
|
|
18
18
|
invalid,
|
|
19
19
|
readOnly,
|
|
20
|
+
borderColor,
|
|
20
21
|
css,
|
|
21
22
|
...props
|
|
22
23
|
},
|
|
@@ -57,7 +58,8 @@ export const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(
|
|
|
57
58
|
// different from Input/Select. Mirror Input's chain explicitly.
|
|
58
59
|
focusRingColor={invalid ? 'danger.main' : 'primary.main'}
|
|
59
60
|
borderColor={
|
|
60
|
-
|
|
61
|
+
borderColor ??
|
|
62
|
+
(invalid ? 'danger.main' : { base: 'gray.400', _dark: 'gray.1100' })
|
|
61
63
|
}
|
|
62
64
|
_hover={{
|
|
63
65
|
borderColor: invalid ? 'danger.main' : 'primary.lighter',
|
package/src/components/claude.md
CHANGED
|
@@ -146,7 +146,10 @@ const Component = () => {
|
|
|
146
146
|
**Semantic tokens to use:**
|
|
147
147
|
- `primary.main`, `primary.light` - Primary brand colors
|
|
148
148
|
- `danger.main` - Error/danger states
|
|
149
|
-
- `
|
|
149
|
+
- `bg.*` / `fg.*` / `border.*` - Neutral surfaces, text, and borders that **flip with
|
|
150
|
+
color mode**. Prefer these over raw `gray.*`/`white` so components work in dark mode
|
|
151
|
+
(see `src/theme/claude.md` → Neutral Semantic Tokens). Raw `gray.*` is only for values
|
|
152
|
+
that must stay fixed across modes.
|
|
150
153
|
|
|
151
154
|
### Common Style Patterns
|
|
152
155
|
|
|
@@ -348,7 +351,9 @@ See `.storybook/claude.md` for Storybook-specific patterns.
|
|
|
348
351
|
|
|
349
352
|
1. **Forgetting forwardRef**: Always use it for components wrapping DOM elements
|
|
350
353
|
2. **Not setting displayName**: Required for React DevTools
|
|
351
|
-
3. **Hardcoded colors**: Use theme tokens instead
|
|
354
|
+
3. **Hardcoded / non-flipping colors**: Use theme tokens instead — and for neutrals use the
|
|
355
|
+
flipping `bg.*`/`fg.*`/`border.*` tokens, not raw `gray.*`/`white` (which stay stuck in
|
|
356
|
+
light mode under `.dark`)
|
|
352
357
|
4. **Missing focus states**: Required for accessibility
|
|
353
358
|
5. **Props in wrong order**: Custom props before spread
|
|
354
359
|
6. **Not handling IME**: Important for international users
|
|
@@ -381,6 +386,7 @@ Before considering a component complete:
|
|
|
381
386
|
- [ ] Disabled states work correctly
|
|
382
387
|
- [ ] Hover states are visible
|
|
383
388
|
- [ ] Theme tokens are used (no hardcoded colors)
|
|
389
|
+
- [ ] Neutral colors use flipping `bg.*`/`fg.*`/`border.*` tokens; verified in dark mode
|
|
384
390
|
- [ ] Storybook story is created
|
|
385
391
|
- [ ] Component is exported from src/index.ts
|
|
386
392
|
- [ ] Works with keyboard navigation
|
package/src/theme/claude.md
CHANGED
|
@@ -20,7 +20,9 @@ src/theme/
|
|
|
20
20
|
1. **Accessibility First**: All semantic color combinations meet WCAG 2.1 AA standards (4.5:1 minimum contrast)
|
|
21
21
|
2. **Cool Gray Foundation**: Slate-based grays with blue undertone for a modern, professional feel
|
|
22
22
|
3. **Consistent Scale**: Each color has 50/100/200/300/500/600/700/800/900 steps
|
|
23
|
-
4. **Light Mode
|
|
23
|
+
4. **Light & Dark Mode**: Neutral semantic tokens (`bg.*`/`fg.*`/`border.*`) carry a `_dark`
|
|
24
|
+
variant and flip automatically by color mode. Use them instead of raw `gray.*`/`white`
|
|
25
|
+
primitives so components work in both modes (see [Neutral Semantic Tokens](#neutral-semantic-tokens-dark-mode)).
|
|
24
26
|
|
|
25
27
|
### Primitive Color Palettes
|
|
26
28
|
|
|
@@ -185,6 +187,59 @@ semanticTokens: {
|
|
|
185
187
|
}
|
|
186
188
|
```
|
|
187
189
|
|
|
190
|
+
### Neutral Semantic Tokens (Dark Mode)
|
|
191
|
+
|
|
192
|
+
The brand semantics above carry `_dark` variants, but the **neutral** tokens below are
|
|
193
|
+
the ones to reach for on surfaces, text, and borders. Each maps onto the `gray.0–1500`
|
|
194
|
+
scale and resolves to a different step under `.dark` (Chakra v3's class strategy), so a
|
|
195
|
+
component built with them flips for free — **no `_dark` overrides needed**.
|
|
196
|
+
|
|
197
|
+
```tsx
|
|
198
|
+
semanticTokens: {
|
|
199
|
+
colors: {
|
|
200
|
+
// Backgrounds base (light) → _dark
|
|
201
|
+
bg: {
|
|
202
|
+
canvas: 'gray.0', // app background → gray.1500
|
|
203
|
+
surface: 'white', // cards, menus, popovers → gray.1400
|
|
204
|
+
subtle: 'gray.50', // secondary surface → gray.1300
|
|
205
|
+
muted: 'gray.100', // tertiary fill, hover → gray.1200
|
|
206
|
+
inverse: 'gray.1300', // high-contrast surface → gray.50
|
|
207
|
+
},
|
|
208
|
+
// Foreground (text / icons)
|
|
209
|
+
fg: {
|
|
210
|
+
default: 'gray.1300', // primary text → gray.200
|
|
211
|
+
muted: 'gray.900', // secondary → gray.400
|
|
212
|
+
subtle: 'gray.700', // tertiary → gray.600
|
|
213
|
+
inverse: 'gray.0', // text on inverse → gray.1400
|
|
214
|
+
},
|
|
215
|
+
// Borders / dividers
|
|
216
|
+
border: {
|
|
217
|
+
default: 'gray.300', // standard borders → gray.1100
|
|
218
|
+
subtle: 'gray.200', // low-emphasis → gray.1300
|
|
219
|
+
strong: 'gray.500', // high-emphasis → gray.900
|
|
220
|
+
},
|
|
221
|
+
},
|
|
222
|
+
}
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
```tsx
|
|
226
|
+
// ✅ Flips with color mode
|
|
227
|
+
<Box bg="bg.surface" color="fg.default" borderColor="border.default" />
|
|
228
|
+
|
|
229
|
+
// ❌ Stuck in light mode — a white panel / dark text that never flips
|
|
230
|
+
<Box bg="white" color="gray.1300" borderColor="gray.300" />
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
**Exceptions (intentionally do not flip):**
|
|
234
|
+
- Solid brand fills and their white labels (`bg="primary.main" color="white"`) are
|
|
235
|
+
mode-invariant by design — keep them as primitives.
|
|
236
|
+
- White slider knobs and always-dark surfaces (Tooltip, CodeTabs) stay fixed.
|
|
237
|
+
- **Third-party renderers that don't resolve Chakra tokens** (e.g. recharts in
|
|
238
|
+
`LineGraph`): feed the resolved CSS var instead — `var(--chakra-colors-fg-muted)`.
|
|
239
|
+
- **Translucency**: when you need a semi-transparent surface that still flips, mix the
|
|
240
|
+
CSS var instead of hardcoding rgba — e.g.
|
|
241
|
+
`color-mix(in srgb, var(--chakra-colors-bg-surface) 85%, transparent)` (see `FileInput`).
|
|
242
|
+
|
|
188
243
|
### WCAG Contrast Ratios
|
|
189
244
|
|
|
190
245
|
All semantic color combinations meet WCAG 2.1 accessibility standards:
|
|
@@ -214,13 +269,24 @@ All semantic color combinations meet WCAG 2.1 accessibility standards:
|
|
|
214
269
|
<Box bg="warning.lighter" color="warning.dark" />
|
|
215
270
|
```
|
|
216
271
|
|
|
272
|
+
### Neutral Surfaces / Text / Borders: use `bg.*` / `fg.*` / `border.*`
|
|
273
|
+
|
|
274
|
+
These flip with color mode — prefer them over raw `gray.*`/`white` for anything neutral:
|
|
275
|
+
|
|
276
|
+
```tsx
|
|
277
|
+
// ✅ Best - flips between light and dark
|
|
278
|
+
<Box bgColor="bg.surface" borderColor="border.default" />
|
|
279
|
+
<Text color="fg.default">Primary text</Text>
|
|
280
|
+
<Text color="fg.subtle">Secondary text</Text>
|
|
281
|
+
```
|
|
282
|
+
|
|
217
283
|
### Alternative: Primitive Colors
|
|
218
284
|
|
|
219
285
|
```tsx
|
|
220
|
-
//
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
<
|
|
286
|
+
// ⚠️ Only when the value must stay fixed across modes (rare for neutrals).
|
|
287
|
+
// Raw gray.*/white do NOT flip, so a `white` surface or `gray.1300` text will be
|
|
288
|
+
// stuck in light mode under .dark. Reach for bg.*/fg.*/border.* above instead.
|
|
289
|
+
<Box bgColor="primary.main" color="white" /> // mode-invariant brand fill — OK
|
|
224
290
|
```
|
|
225
291
|
|
|
226
292
|
### Accessing Theme in Components
|
|
@@ -340,13 +406,17 @@ const color = theme.semanticTokens.colors.primary.main;
|
|
|
340
406
|
const color = '#1751D0';
|
|
341
407
|
```
|
|
342
408
|
|
|
343
|
-
### 3. Consistent Gray Usage
|
|
409
|
+
### 3. Consistent Gray Usage — prefer flipping neutral tokens
|
|
344
410
|
|
|
345
411
|
```tsx
|
|
346
|
-
// ✅
|
|
347
|
-
<Text color="
|
|
348
|
-
<Text color="
|
|
349
|
-
<Box borderColor="
|
|
412
|
+
// ✅ Best - neutral semantic tokens flip with color mode
|
|
413
|
+
<Text color="fg.default">Primary text</Text>
|
|
414
|
+
<Text color="fg.subtle">Secondary text</Text>
|
|
415
|
+
<Box bgColor="bg.surface" borderColor="border.default" />
|
|
416
|
+
|
|
417
|
+
// ⚠️ Stuck in light mode - raw gray.*/white never flip under .dark
|
|
418
|
+
<Text color="gray.1300" /> // use fg.default
|
|
419
|
+
<Box bgColor="white" /> // use bg.surface
|
|
350
420
|
|
|
351
421
|
// ❌ Bad - arbitrary values
|
|
352
422
|
<Text color="#333" />
|