@shapesos/clay 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +170 -0
- package/dist/chat.cjs +1117 -0
- package/dist/chat.cjs.map +1 -0
- package/dist/chat.d.cts +46 -0
- package/dist/chat.d.ts +46 -0
- package/dist/chat.js +11 -0
- package/dist/chat.js.map +1 -0
- package/dist/chunk-2GFOESHR.js +613 -0
- package/dist/chunk-2GFOESHR.js.map +1 -0
- package/dist/chunk-5WRI5ZAA.js +31 -0
- package/dist/chunk-5WRI5ZAA.js.map +1 -0
- package/dist/chunk-6HNZQ2BF.js +91 -0
- package/dist/chunk-6HNZQ2BF.js.map +1 -0
- package/dist/chunk-7AJSQJQ5.js +1 -0
- package/dist/chunk-7AJSQJQ5.js.map +1 -0
- package/dist/chunk-A6DKIFWS.js +292 -0
- package/dist/chunk-A6DKIFWS.js.map +1 -0
- package/dist/chunk-C77QMQNT.js +1 -0
- package/dist/chunk-C77QMQNT.js.map +1 -0
- package/dist/chunk-P7NISN4V.js +115 -0
- package/dist/chunk-P7NISN4V.js.map +1 -0
- package/dist/chunk-XY2OM47L.js +16511 -0
- package/dist/chunk-XY2OM47L.js.map +1 -0
- package/dist/icon.cjs +237 -0
- package/dist/icon.cjs.map +1 -0
- package/dist/icon.d.cts +27 -0
- package/dist/icon.d.ts +27 -0
- package/dist/icon.js +12 -0
- package/dist/icon.js.map +1 -0
- package/dist/index.cjs +17634 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +7 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/dist/lottie.cjs +16545 -0
- package/dist/lottie.cjs.map +1 -0
- package/dist/lottie.d.cts +38 -0
- package/dist/lottie.d.ts +38 -0
- package/dist/lottie.js +8 -0
- package/dist/lottie.js.map +1 -0
- package/dist/tokens.cjs +410 -0
- package/dist/tokens.cjs.map +1 -0
- package/dist/tokens.d.cts +121 -0
- package/dist/tokens.d.ts +121 -0
- package/dist/tokens.js +19 -0
- package/dist/tokens.js.map +1 -0
- package/package.json +110 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import {
|
|
2
|
+
colors
|
|
3
|
+
} from "./chunk-6HNZQ2BF.js";
|
|
4
|
+
|
|
5
|
+
// src/icon/icon.tsx
|
|
6
|
+
import { forwardRef } from "react";
|
|
7
|
+
|
|
8
|
+
// src/icon/icon-styles.ts
|
|
9
|
+
import styled from "styled-components";
|
|
10
|
+
var STROKE_WIDTH_BY_SIZE = {
|
|
11
|
+
12: 1.2,
|
|
12
|
+
14: 1.2,
|
|
13
|
+
16: 1.8,
|
|
14
|
+
18: 1.8,
|
|
15
|
+
20: 1.8,
|
|
16
|
+
24: 1.8
|
|
17
|
+
};
|
|
18
|
+
var DEFAULT_STROKE_WIDTH = 1.8;
|
|
19
|
+
function getStrokeWidth(size) {
|
|
20
|
+
return STROKE_WIDTH_BY_SIZE[size] ?? DEFAULT_STROKE_WIDTH;
|
|
21
|
+
}
|
|
22
|
+
var IconWrapper = styled.span`
|
|
23
|
+
display: inline-flex;
|
|
24
|
+
align-items: center;
|
|
25
|
+
justify-content: center;
|
|
26
|
+
color: ${({ $color }) => $color ?? "currentColor"};
|
|
27
|
+
flex-shrink: 0;
|
|
28
|
+
`;
|
|
29
|
+
|
|
30
|
+
// src/icon/icon.tsx
|
|
31
|
+
import { jsx } from "react/jsx-runtime";
|
|
32
|
+
var DEFAULT_SIZE = 16;
|
|
33
|
+
var Icon = forwardRef(function Icon2({ icon: IconComponent, size = DEFAULT_SIZE, color, className, "aria-label": ariaLabel }, ref) {
|
|
34
|
+
return /* @__PURE__ */ jsx(
|
|
35
|
+
IconWrapper,
|
|
36
|
+
{
|
|
37
|
+
ref,
|
|
38
|
+
className,
|
|
39
|
+
$color: color,
|
|
40
|
+
"aria-label": ariaLabel,
|
|
41
|
+
role: ariaLabel ? "img" : void 0,
|
|
42
|
+
children: /* @__PURE__ */ jsx(IconComponent, { width: size, height: size, strokeWidth: getStrokeWidth(size) })
|
|
43
|
+
}
|
|
44
|
+
);
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
// src/icon-button/icon-button.tsx
|
|
48
|
+
import { forwardRef as forwardRef2 } from "react";
|
|
49
|
+
|
|
50
|
+
// src/icon-button/icon-button-styles.ts
|
|
51
|
+
import styled2 from "styled-components";
|
|
52
|
+
var DIMENSIONS = {
|
|
53
|
+
small: 28,
|
|
54
|
+
medium: 32
|
|
55
|
+
};
|
|
56
|
+
var BORDER_RADIUS = {
|
|
57
|
+
small: 6,
|
|
58
|
+
medium: 10
|
|
59
|
+
};
|
|
60
|
+
var Button = styled2.button`
|
|
61
|
+
display: inline-flex;
|
|
62
|
+
align-items: center;
|
|
63
|
+
justify-content: center;
|
|
64
|
+
width: ${({ $size }) => DIMENSIONS[$size]}px;
|
|
65
|
+
height: ${({ $size }) => DIMENSIONS[$size]}px;
|
|
66
|
+
padding: 0;
|
|
67
|
+
border: none;
|
|
68
|
+
border-radius: ${({ $size }) => BORDER_RADIUS[$size]}px;
|
|
69
|
+
background: ${({ $isSelected }) => $isSelected ? colors["brown-40"] : "transparent"};
|
|
70
|
+
color: ${colors["brown-100"]};
|
|
71
|
+
cursor: pointer;
|
|
72
|
+
transition: background-color 100ms ease;
|
|
73
|
+
|
|
74
|
+
&:hover {
|
|
75
|
+
background: ${({ $isSelected }) => $isSelected ? colors["brown-40"] : colors["brown-20"]};
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
&:active {
|
|
79
|
+
background: ${colors["brown-40"]};
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
&:disabled {
|
|
83
|
+
color: ${colors["brown-50"]};
|
|
84
|
+
background: transparent;
|
|
85
|
+
cursor: not-allowed;
|
|
86
|
+
}
|
|
87
|
+
`;
|
|
88
|
+
|
|
89
|
+
// src/icon-button/icon-button.tsx
|
|
90
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
91
|
+
var ICON_SIZE_BY_BUTTON_SIZE = {
|
|
92
|
+
small: 14,
|
|
93
|
+
medium: 16
|
|
94
|
+
};
|
|
95
|
+
var IconButton = forwardRef2(function IconButton2({ icon, size = "small", isSelected = false, disabled = false, onClick, className, "aria-label": ariaLabel }, ref) {
|
|
96
|
+
return /* @__PURE__ */ jsx2(
|
|
97
|
+
Button,
|
|
98
|
+
{
|
|
99
|
+
ref,
|
|
100
|
+
className,
|
|
101
|
+
$size: size,
|
|
102
|
+
$isSelected: isSelected,
|
|
103
|
+
disabled,
|
|
104
|
+
onClick: disabled ? void 0 : onClick,
|
|
105
|
+
"aria-label": ariaLabel,
|
|
106
|
+
children: /* @__PURE__ */ jsx2(Icon, { icon, size: ICON_SIZE_BY_BUTTON_SIZE[size] })
|
|
107
|
+
}
|
|
108
|
+
);
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
export {
|
|
112
|
+
Icon,
|
|
113
|
+
IconButton
|
|
114
|
+
};
|
|
115
|
+
//# sourceMappingURL=chunk-P7NISN4V.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/icon/icon.tsx","../src/icon/icon-styles.ts","../src/icon-button/icon-button.tsx","../src/icon-button/icon-button-styles.ts"],"sourcesContent":["import { forwardRef } from \"react\";\n\nimport { IconWrapper, getStrokeWidth } from \"./icon-styles\";\nimport type { IconProps } from \"./types\";\n\nconst DEFAULT_SIZE = 16;\n\nexport const Icon = forwardRef<HTMLSpanElement, IconProps>(function Icon(\n { icon: IconComponent, size = DEFAULT_SIZE, color, className, \"aria-label\": ariaLabel },\n ref\n) {\n return (\n <IconWrapper\n ref={ref}\n className={className}\n $color={color}\n aria-label={ariaLabel}\n role={ariaLabel ? \"img\" : undefined}\n >\n <IconComponent width={size} height={size} strokeWidth={getStrokeWidth(size)} />\n </IconWrapper>\n );\n});\n","import styled from \"styled-components\";\n\nexport const STROKE_WIDTH_BY_SIZE: Record<number, number> = {\n 12: 1.2,\n 14: 1.2,\n 16: 1.8,\n 18: 1.8,\n 20: 1.8,\n 24: 1.8,\n};\n\nexport const DEFAULT_STROKE_WIDTH = 1.8;\n\nexport function getStrokeWidth(size: number): number {\n return STROKE_WIDTH_BY_SIZE[size] ?? DEFAULT_STROKE_WIDTH;\n}\n\nexport const IconWrapper = styled.span<{ $color?: string }>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n color: ${({ $color }) => $color ?? \"currentColor\"};\n flex-shrink: 0;\n`;\n","import { forwardRef } from \"react\";\n\nimport { Icon } from \"../icon/icon\";\nimport { Button } from \"./icon-button-styles\";\nimport type { IconButtonProps, IconButtonSize } from \"./types\";\n\nconst ICON_SIZE_BY_BUTTON_SIZE: Record<IconButtonSize, number> = {\n small: 14,\n medium: 16,\n};\n\nexport const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(function IconButton(\n { icon, size = \"small\", isSelected = false, disabled = false, onClick, className, \"aria-label\": ariaLabel },\n ref\n) {\n return (\n <Button\n ref={ref}\n className={className}\n $size={size}\n $isSelected={isSelected}\n disabled={disabled}\n onClick={disabled ? undefined : onClick}\n aria-label={ariaLabel}\n >\n <Icon icon={icon} size={ICON_SIZE_BY_BUTTON_SIZE[size]} />\n </Button>\n );\n});\n","import styled from \"styled-components\";\n\nimport { colors } from \"../tokens/colors\";\nimport type { IconButtonSize } from \"./types\";\n\nconst DIMENSIONS: Record<IconButtonSize, number> = {\n small: 28,\n medium: 32,\n};\n\nconst BORDER_RADIUS: Record<IconButtonSize, number> = {\n small: 6,\n medium: 10,\n};\n\nexport const Button = styled.button<{\n $size: IconButtonSize;\n $isSelected: boolean;\n}>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: ${({ $size }) => DIMENSIONS[$size]}px;\n height: ${({ $size }) => DIMENSIONS[$size]}px;\n padding: 0;\n border: none;\n border-radius: ${({ $size }) => BORDER_RADIUS[$size]}px;\n background: ${({ $isSelected }) => ($isSelected ? colors[\"brown-40\"] : \"transparent\")};\n color: ${colors[\"brown-100\"]};\n cursor: pointer;\n transition: background-color 100ms ease;\n\n &:hover {\n background: ${({ $isSelected }) => ($isSelected ? colors[\"brown-40\"] : colors[\"brown-20\"])};\n }\n\n &:active {\n background: ${colors[\"brown-40\"]};\n }\n\n &:disabled {\n color: ${colors[\"brown-50\"]};\n background: transparent;\n cursor: not-allowed;\n }\n`;\n"],"mappings":";;;;;AAAA,SAAS,kBAAkB;;;ACA3B,OAAO,YAAY;AAEZ,IAAM,uBAA+C;AAAA,EAC1D,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEO,IAAM,uBAAuB;AAE7B,SAAS,eAAe,MAAsB;AACnD,SAAO,qBAAqB,IAAI,KAAK;AACvC;AAEO,IAAM,cAAc,OAAO;AAAA;AAAA;AAAA;AAAA,WAIvB,CAAC,EAAE,OAAO,MAAM,UAAU,cAAc;AAAA;AAAA;;;ADF7C;AAdN,IAAM,eAAe;AAEd,IAAM,OAAO,WAAuC,SAASA,MAClE,EAAE,MAAM,eAAe,OAAO,cAAc,OAAO,WAAW,cAAc,UAAU,GACtF,KACA;AACA,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,MACR,cAAY;AAAA,MACZ,MAAM,YAAY,QAAQ;AAAA,MAE1B,8BAAC,iBAAc,OAAO,MAAM,QAAQ,MAAM,aAAa,eAAe,IAAI,GAAG;AAAA;AAAA,EAC/E;AAEJ,CAAC;;;AEtBD,SAAS,cAAAC,mBAAkB;;;ACA3B,OAAOC,aAAY;AAKnB,IAAM,aAA6C;AAAA,EACjD,OAAO;AAAA,EACP,QAAQ;AACV;AAEA,IAAM,gBAAgD;AAAA,EACpD,OAAO;AAAA,EACP,QAAQ;AACV;AAEO,IAAM,SAASC,QAAO;AAAA;AAAA;AAAA;AAAA,WAOlB,CAAC,EAAE,MAAM,MAAM,WAAW,KAAK,CAAC;AAAA,YAC/B,CAAC,EAAE,MAAM,MAAM,WAAW,KAAK,CAAC;AAAA;AAAA;AAAA,mBAGzB,CAAC,EAAE,MAAM,MAAM,cAAc,KAAK,CAAC;AAAA,gBACtC,CAAC,EAAE,YAAY,MAAO,cAAc,OAAO,UAAU,IAAI,aAAc;AAAA,WAC5E,OAAO,WAAW,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,kBAKZ,CAAC,EAAE,YAAY,MAAO,cAAc,OAAO,UAAU,IAAI,OAAO,UAAU,CAAE;AAAA;AAAA;AAAA;AAAA,kBAI5E,OAAO,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,aAIvB,OAAO,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA;;;ADhBzB,gBAAAC,YAAA;AAnBN,IAAM,2BAA2D;AAAA,EAC/D,OAAO;AAAA,EACP,QAAQ;AACV;AAEO,IAAM,aAAaC,YAA+C,SAASC,YAChF,EAAE,MAAM,OAAO,SAAS,aAAa,OAAO,WAAW,OAAO,SAAS,WAAW,cAAc,UAAU,GAC1G,KACA;AACA,SACE,gBAAAF;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP,aAAa;AAAA,MACb;AAAA,MACA,SAAS,WAAW,SAAY;AAAA,MAChC,cAAY;AAAA,MAEZ,0BAAAA,KAAC,QAAK,MAAY,MAAM,yBAAyB,IAAI,GAAG;AAAA;AAAA,EAC1D;AAEJ,CAAC;","names":["Icon","forwardRef","styled","styled","jsx","forwardRef","IconButton"]}
|