@anyknown/ui 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 +121 -0
- package/dist/components/action-bar/ActionBar.d.ts +28 -0
- package/dist/components/action-bar/ActionBar.js +73 -0
- package/dist/components/badge/Badge.d.ts +28 -0
- package/dist/components/badge/Badge.js +79 -0
- package/dist/components/button/Button.d.ts +7 -0
- package/dist/components/button/Button.js +86 -0
- package/dist/components/card/Card.d.ts +2 -0
- package/dist/components/card/Card.js +17 -0
- package/dist/components/checkbox/Checkbox.d.ts +8 -0
- package/dist/components/checkbox/Checkbox.js +102 -0
- package/dist/components/code-block/CodeBlock.d.ts +10 -0
- package/dist/components/code-block/CodeBlock.js +103 -0
- package/dist/components/composer/Composer.d.ts +27 -0
- package/dist/components/composer/Composer.js +278 -0
- package/dist/components/data-table/DataTable.d.ts +38 -0
- package/dist/components/data-table/DataTable.js +256 -0
- package/dist/components/dialog/Dialog.d.ts +36 -0
- package/dist/components/dialog/Dialog.js +77 -0
- package/dist/components/diff-viewer/DiffViewer.d.ts +13 -0
- package/dist/components/diff-viewer/DiffViewer.js +133 -0
- package/dist/components/dropdown/DropdownMenu.d.ts +43 -0
- package/dist/components/dropdown/DropdownMenu.js +86 -0
- package/dist/components/dropzone/Dropzone.d.ts +32 -0
- package/dist/components/dropzone/Dropzone.js +242 -0
- package/dist/components/empty-state/EmptyState.d.ts +9 -0
- package/dist/components/empty-state/EmptyState.js +41 -0
- package/dist/components/file-row/FileRow.d.ts +32 -0
- package/dist/components/file-row/FileRow.js +153 -0
- package/dist/components/handoff-receipt/HandoffReceipt.d.ts +15 -0
- package/dist/components/handoff-receipt/HandoffReceipt.js +147 -0
- package/dist/components/input/Input.d.ts +48 -0
- package/dist/components/input/Input.js +64 -0
- package/dist/components/interaction-card/InteractionCard.d.ts +59 -0
- package/dist/components/interaction-card/InteractionCard.js +238 -0
- package/dist/components/kbd/Kbd.d.ts +9 -0
- package/dist/components/kbd/Kbd.js +43 -0
- package/dist/components/label/Field.d.ts +11 -0
- package/dist/components/label/Field.js +28 -0
- package/dist/components/label/Label.d.ts +7 -0
- package/dist/components/label/Label.js +21 -0
- package/dist/components/label/fieldContext.d.ts +26 -0
- package/dist/components/label/fieldContext.js +16 -0
- package/dist/components/message/Message.d.ts +29 -0
- package/dist/components/message/Message.js +94 -0
- package/dist/components/password-input/PasswordInput.d.ts +20 -0
- package/dist/components/password-input/PasswordInput.js +141 -0
- package/dist/components/popover/Popover.d.ts +38 -0
- package/dist/components/popover/Popover.js +37 -0
- package/dist/components/progress/Progress.d.ts +36 -0
- package/dist/components/progress/Progress.js +200 -0
- package/dist/components/radio/Radio.d.ts +7 -0
- package/dist/components/radio/Radio.js +89 -0
- package/dist/components/radio/RadioGroup.d.ts +21 -0
- package/dist/components/radio/RadioGroup.js +34 -0
- package/dist/components/reasoning-fold/ReasoningFold.d.ts +10 -0
- package/dist/components/reasoning-fold/ReasoningFold.js +92 -0
- package/dist/components/recovery-key/RecoveryKey.d.ts +17 -0
- package/dist/components/recovery-key/RecoveryKey.js +132 -0
- package/dist/components/select/Select.d.ts +31 -0
- package/dist/components/select/Select.js +209 -0
- package/dist/components/skeleton/Skeleton.d.ts +20 -0
- package/dist/components/skeleton/Skeleton.js +57 -0
- package/dist/components/switch/Switch.d.ts +7 -0
- package/dist/components/switch/Switch.js +108 -0
- package/dist/components/tabs/Tabs.d.ts +28 -0
- package/dist/components/tabs/Tabs.js +133 -0
- package/dist/components/text/Text.d.ts +7 -0
- package/dist/components/text/Text.js +31 -0
- package/dist/components/textarea/Textarea.d.ts +7 -0
- package/dist/components/textarea/Textarea.js +25 -0
- package/dist/components/toast/Toast.d.ts +56 -0
- package/dist/components/toast/Toast.js +175 -0
- package/dist/components/tool-card/ToolCard.d.ts +55 -0
- package/dist/components/tool-card/ToolCard.js +281 -0
- package/dist/components/tooltip/Tooltip.d.ts +12 -0
- package/dist/components/tooltip/Tooltip.js +38 -0
- package/dist/components/voice-indicator/VoiceIndicator.d.ts +7 -0
- package/dist/components/voice-indicator/VoiceIndicator.js +51 -0
- package/dist/index.d.ts +55 -0
- package/dist/index.js +38 -0
- package/dist/lib/diff.d.ts +28 -0
- package/dist/lib/diff.js +133 -0
- package/dist/lib/format.d.ts +2 -0
- package/dist/lib/format.js +24 -0
- package/dist/lib/format.test.d.ts +1 -0
- package/dist/lib/format.test.js +37 -0
- package/dist/lib/mergeRefs.d.ts +2 -0
- package/dist/lib/mergeRefs.js +8 -0
- package/dist/lib/motion.d.ts +1 -0
- package/dist/lib/motion.js +10 -0
- package/dist/lib/paths.d.ts +3 -0
- package/dist/lib/paths.js +11 -0
- package/dist/lib/popup.d.ts +29 -0
- package/dist/lib/popup.js +27 -0
- package/dist/lib/progress.d.ts +2 -0
- package/dist/lib/progress.js +28 -0
- package/dist/lib/silk.d.ts +66 -0
- package/dist/lib/silk.js +337 -0
- package/dist/lib/styled.d.ts +29 -0
- package/dist/lib/styled.js +30 -0
- package/dist/lib/svgId.d.ts +1 -0
- package/dist/lib/svgId.js +4 -0
- package/dist/lib/useAnimationFrame.d.ts +1 -0
- package/dist/lib/useAnimationFrame.js +21 -0
- package/dist/lib/useControllableState.d.ts +1 -0
- package/dist/lib/useControllableState.js +14 -0
- package/dist/lib/useCopy.d.ts +4 -0
- package/dist/lib/useCopy.js +19 -0
- package/dist/lib/voice.d.ts +2 -0
- package/dist/lib/voice.js +30 -0
- package/dist/lib/weave.d.ts +28 -0
- package/dist/lib/weave.js +83 -0
- package/dist/scrollbar.css +29 -0
- package/dist/themes.stylex.d.ts +49 -0
- package/dist/themes.stylex.js +52 -0
- package/dist/tokens.css +109 -0
- package/dist/tokens.stylex.d.ts +126 -0
- package/dist/tokens.stylex.js +149 -0
- package/package.json +81 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import * as stylex from "@stylexjs/stylex";
|
|
2
|
+
export declare const light: stylex.Theme<stylex.VarGroup<Readonly<{
|
|
3
|
+
bg: string;
|
|
4
|
+
surface: string;
|
|
5
|
+
surfaceRaised: string;
|
|
6
|
+
border: string;
|
|
7
|
+
borderStrong: string;
|
|
8
|
+
text: string;
|
|
9
|
+
textMuted: string;
|
|
10
|
+
textFaint: string;
|
|
11
|
+
accent: string;
|
|
12
|
+
accentText: string;
|
|
13
|
+
accentSubtle: string;
|
|
14
|
+
danger: string;
|
|
15
|
+
dangerSubtle: string;
|
|
16
|
+
success: string;
|
|
17
|
+
successSubtle: string;
|
|
18
|
+
warning: string;
|
|
19
|
+
warningSubtle: string;
|
|
20
|
+
focusRing: string;
|
|
21
|
+
bone: string;
|
|
22
|
+
sheen: string;
|
|
23
|
+
successHl: string;
|
|
24
|
+
dangerHl: string;
|
|
25
|
+
}>, symbol>, symbol>;
|
|
26
|
+
export declare const dark: stylex.Theme<stylex.VarGroup<Readonly<{
|
|
27
|
+
bg: string;
|
|
28
|
+
surface: string;
|
|
29
|
+
surfaceRaised: string;
|
|
30
|
+
border: string;
|
|
31
|
+
borderStrong: string;
|
|
32
|
+
text: string;
|
|
33
|
+
textMuted: string;
|
|
34
|
+
textFaint: string;
|
|
35
|
+
accent: string;
|
|
36
|
+
accentText: string;
|
|
37
|
+
accentSubtle: string;
|
|
38
|
+
danger: string;
|
|
39
|
+
dangerSubtle: string;
|
|
40
|
+
success: string;
|
|
41
|
+
successSubtle: string;
|
|
42
|
+
warning: string;
|
|
43
|
+
warningSubtle: string;
|
|
44
|
+
focusRing: string;
|
|
45
|
+
bone: string;
|
|
46
|
+
sheen: string;
|
|
47
|
+
successHl: string;
|
|
48
|
+
dangerHl: string;
|
|
49
|
+
}>, symbol>, symbol>;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import * as stylex from "@stylexjs/stylex";
|
|
2
|
+
import { color } from "./tokens.stylex.js";
|
|
3
|
+
// Explicit themes for apps with a user-facing theme switch (e.g. next-themes).
|
|
4
|
+
// Apply on the root element: <div {...stylex.props(dark)}>.
|
|
5
|
+
export const light = stylex.createTheme(color, {
|
|
6
|
+
bg: "#FAFAF6",
|
|
7
|
+
surface: "#FFFFFF",
|
|
8
|
+
surfaceRaised: "#FFFFFF",
|
|
9
|
+
border: "#E3E0D5",
|
|
10
|
+
borderStrong: "#C8C3B4",
|
|
11
|
+
text: "#23211D",
|
|
12
|
+
textMuted: "#777165",
|
|
13
|
+
textFaint: "#9C958A",
|
|
14
|
+
accent: "#23705A",
|
|
15
|
+
accentText: "#FCFCF9",
|
|
16
|
+
accentSubtle: "#E7F0EB",
|
|
17
|
+
danger: "#B3402E",
|
|
18
|
+
dangerSubtle: "#F7E7E3",
|
|
19
|
+
success: "#23705A",
|
|
20
|
+
successSubtle: "#E7F0EB",
|
|
21
|
+
warning: "#9A6A1B",
|
|
22
|
+
warningSubtle: "#F5EBD9",
|
|
23
|
+
focusRing: "#23705A",
|
|
24
|
+
bone: "#ECE9DF",
|
|
25
|
+
sheen: "#F6F4EC",
|
|
26
|
+
successHl: "#C6E0C6",
|
|
27
|
+
dangerHl: "#EFCEC3",
|
|
28
|
+
});
|
|
29
|
+
export const dark = stylex.createTheme(color, {
|
|
30
|
+
bg: "#181613",
|
|
31
|
+
surface: "#201D18",
|
|
32
|
+
surfaceRaised: "#282420",
|
|
33
|
+
border: "#35302A",
|
|
34
|
+
borderStrong: "#4A443C",
|
|
35
|
+
text: "#EAE6DC",
|
|
36
|
+
textMuted: "#A59B8C",
|
|
37
|
+
textFaint: "#736A5D",
|
|
38
|
+
accent: "#4FA184",
|
|
39
|
+
accentText: "#14120F",
|
|
40
|
+
accentSubtle: "#22352E",
|
|
41
|
+
danger: "#DD7059",
|
|
42
|
+
dangerSubtle: "#3D231E",
|
|
43
|
+
success: "#4FA184",
|
|
44
|
+
successSubtle: "#22352E",
|
|
45
|
+
warning: "#D9A254",
|
|
46
|
+
warningSubtle: "#3A2F1D",
|
|
47
|
+
focusRing: "#4FA184",
|
|
48
|
+
bone: "#2A2620",
|
|
49
|
+
sheen: "#35302A",
|
|
50
|
+
successHl: "#2F4A2E",
|
|
51
|
+
dangerHl: "#573328",
|
|
52
|
+
});
|
package/dist/tokens.css
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/* Ledger tokens as plain CSS variables — for non-StyleX consumers
|
|
2
|
+
* (desktop uses Tailwind v4 @theme; reference these vars there).
|
|
3
|
+
* Source of truth: tokens.stylex.ts. Keep values in sync manually for now. */
|
|
4
|
+
|
|
5
|
+
/* 展開/收合讓頁面長高時捲軸出現 → 置中內容左移;永遠留捲軸的位置。 */
|
|
6
|
+
html {
|
|
7
|
+
scrollbar-gutter: stable;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
:root {
|
|
11
|
+
--ak-bg: #fafaf6;
|
|
12
|
+
--ak-surface: #ffffff;
|
|
13
|
+
--ak-surface-raised: #ffffff;
|
|
14
|
+
--ak-border: #e3e0d5;
|
|
15
|
+
--ak-border-strong: #c8c3b4;
|
|
16
|
+
--ak-text: #23211d;
|
|
17
|
+
--ak-text-muted: #777165;
|
|
18
|
+
--ak-text-faint: #9c958a;
|
|
19
|
+
--ak-accent: #23705a;
|
|
20
|
+
--ak-accent-text: #fcfcf9;
|
|
21
|
+
--ak-accent-subtle: #e7f0eb;
|
|
22
|
+
--ak-danger: #b3402e;
|
|
23
|
+
--ak-danger-subtle: #f7e7e3;
|
|
24
|
+
--ak-success: #23705a;
|
|
25
|
+
--ak-success-subtle: #e7f0eb;
|
|
26
|
+
--ak-warning: #9a6a1b;
|
|
27
|
+
--ak-warning-subtle: #f5ebd9;
|
|
28
|
+
--ak-focus-ring: #23705a;
|
|
29
|
+
--ak-bone: #ece9df;
|
|
30
|
+
--ak-sheen: #f6f4ec;
|
|
31
|
+
--ak-success-hl: #c6e0c6;
|
|
32
|
+
--ak-danger-hl: #efcec3;
|
|
33
|
+
|
|
34
|
+
--ak-shadow-popover: 0 8px 24px rgba(35, 33, 29, 0.1);
|
|
35
|
+
--ak-shadow-raised: 0 1px 2px rgba(35, 33, 29, 0.08);
|
|
36
|
+
|
|
37
|
+
--ak-font-display: "Newsreader Variable", Georgia, "Times New Roman", serif;
|
|
38
|
+
--ak-font-body: "Geist Variable", system-ui, sans-serif;
|
|
39
|
+
--ak-font-mono: "Geist Mono Variable", ui-monospace, monospace;
|
|
40
|
+
|
|
41
|
+
--ak-radius-sm: 0.375rem;
|
|
42
|
+
--ak-radius-md: 0.5rem;
|
|
43
|
+
--ak-radius-lg: 0.75rem;
|
|
44
|
+
--ak-radius-xl: 1rem;
|
|
45
|
+
|
|
46
|
+
--ak-motion-fast: 120ms;
|
|
47
|
+
--ak-motion-normal: 200ms;
|
|
48
|
+
--ak-motion-slow: 400ms;
|
|
49
|
+
--ak-motion-ease: cubic-bezier(0.25, 0.1, 0.25, 1);
|
|
50
|
+
--ak-motion-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
|
|
51
|
+
--ak-motion-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
@media (prefers-color-scheme: dark) {
|
|
55
|
+
:root:not([data-theme="light"]) {
|
|
56
|
+
--ak-bg: #181613;
|
|
57
|
+
--ak-surface: #201d18;
|
|
58
|
+
--ak-surface-raised: #282420;
|
|
59
|
+
--ak-border: #35302a;
|
|
60
|
+
--ak-border-strong: #4a443c;
|
|
61
|
+
--ak-text: #eae6dc;
|
|
62
|
+
--ak-text-muted: #a59b8c;
|
|
63
|
+
--ak-text-faint: #736a5d;
|
|
64
|
+
--ak-accent: #4fa184;
|
|
65
|
+
--ak-accent-text: #14120f;
|
|
66
|
+
--ak-accent-subtle: #22352e;
|
|
67
|
+
--ak-danger: #dd7059;
|
|
68
|
+
--ak-danger-subtle: #3d231e;
|
|
69
|
+
--ak-success: #4fa184;
|
|
70
|
+
--ak-success-subtle: #22352e;
|
|
71
|
+
--ak-warning: #d9a254;
|
|
72
|
+
--ak-warning-subtle: #3a2f1d;
|
|
73
|
+
--ak-focus-ring: #4fa184;
|
|
74
|
+
--ak-bone: #2a2620;
|
|
75
|
+
--ak-sheen: #35302a;
|
|
76
|
+
--ak-success-hl: #2f4a2e;
|
|
77
|
+
--ak-danger-hl: #573328;
|
|
78
|
+
|
|
79
|
+
--ak-shadow-popover: 0 8px 24px rgba(0, 0, 0, 0.4);
|
|
80
|
+
--ak-shadow-raised: 0 1px 2px rgba(0, 0, 0, 0.3);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
[data-theme="dark"] {
|
|
85
|
+
--ak-bone: #2a2620;
|
|
86
|
+
--ak-sheen: #35302a;
|
|
87
|
+
--ak-success-hl: #2f4a2e;
|
|
88
|
+
--ak-danger-hl: #573328;
|
|
89
|
+
--ak-shadow-popover: 0 8px 24px rgba(0, 0, 0, 0.4);
|
|
90
|
+
--ak-shadow-raised: 0 1px 2px rgba(0, 0, 0, 0.3);
|
|
91
|
+
--ak-bg: #181613;
|
|
92
|
+
--ak-surface: #201d18;
|
|
93
|
+
--ak-surface-raised: #282420;
|
|
94
|
+
--ak-border: #35302a;
|
|
95
|
+
--ak-border-strong: #4a443c;
|
|
96
|
+
--ak-text: #eae6dc;
|
|
97
|
+
--ak-text-muted: #a59b8c;
|
|
98
|
+
--ak-text-faint: #736a5d;
|
|
99
|
+
--ak-accent: #4fa184;
|
|
100
|
+
--ak-accent-text: #14120f;
|
|
101
|
+
--ak-accent-subtle: #22352e;
|
|
102
|
+
--ak-danger: #dd7059;
|
|
103
|
+
--ak-danger-subtle: #3d231e;
|
|
104
|
+
--ak-success: #4fa184;
|
|
105
|
+
--ak-success-subtle: #22352e;
|
|
106
|
+
--ak-warning: #d9a254;
|
|
107
|
+
--ak-warning-subtle: #3a2f1d;
|
|
108
|
+
--ak-focus-ring: #4fa184;
|
|
109
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import * as stylex from "@stylexjs/stylex";
|
|
2
|
+
export declare const color: stylex.VarGroup<Readonly<{
|
|
3
|
+
bg: string;
|
|
4
|
+
surface: string;
|
|
5
|
+
surfaceRaised: string;
|
|
6
|
+
border: string;
|
|
7
|
+
borderStrong: string;
|
|
8
|
+
text: string;
|
|
9
|
+
textMuted: string;
|
|
10
|
+
textFaint: string;
|
|
11
|
+
accent: string;
|
|
12
|
+
accentText: string;
|
|
13
|
+
accentSubtle: string;
|
|
14
|
+
danger: string;
|
|
15
|
+
dangerSubtle: string;
|
|
16
|
+
success: string;
|
|
17
|
+
successSubtle: string;
|
|
18
|
+
warning: string;
|
|
19
|
+
warningSubtle: string;
|
|
20
|
+
focusRing: string;
|
|
21
|
+
bone: string;
|
|
22
|
+
sheen: string;
|
|
23
|
+
successHl: string;
|
|
24
|
+
dangerHl: string;
|
|
25
|
+
}>, symbol>;
|
|
26
|
+
export declare const yarn: stylex.VarGroup<Readonly<{
|
|
27
|
+
un: string;
|
|
28
|
+
sh: string;
|
|
29
|
+
y0: string;
|
|
30
|
+
y1: string;
|
|
31
|
+
y2: string;
|
|
32
|
+
y3: string;
|
|
33
|
+
y4: string;
|
|
34
|
+
hi: string;
|
|
35
|
+
shadow: string;
|
|
36
|
+
}>, symbol>;
|
|
37
|
+
export declare const yarnSecondary: stylex.VarGroup<Readonly<{
|
|
38
|
+
un: string;
|
|
39
|
+
sh: string;
|
|
40
|
+
y0: string;
|
|
41
|
+
y1: string;
|
|
42
|
+
y2: string;
|
|
43
|
+
y3: string;
|
|
44
|
+
y4: string;
|
|
45
|
+
hi: string;
|
|
46
|
+
shadow: string;
|
|
47
|
+
}>, symbol>;
|
|
48
|
+
export declare const yarnGhost: stylex.VarGroup<Readonly<{
|
|
49
|
+
un: string;
|
|
50
|
+
sh: string;
|
|
51
|
+
y0: string;
|
|
52
|
+
y1: string;
|
|
53
|
+
y2: string;
|
|
54
|
+
y3: string;
|
|
55
|
+
y4: string;
|
|
56
|
+
hi: string;
|
|
57
|
+
shadow: string;
|
|
58
|
+
}>, symbol>;
|
|
59
|
+
export declare const yarnDanger: stylex.VarGroup<Readonly<{
|
|
60
|
+
un: string;
|
|
61
|
+
sh: string;
|
|
62
|
+
y0: string;
|
|
63
|
+
y1: string;
|
|
64
|
+
y2: string;
|
|
65
|
+
y3: string;
|
|
66
|
+
y4: string;
|
|
67
|
+
hi: string;
|
|
68
|
+
shadow: string;
|
|
69
|
+
}>, symbol>;
|
|
70
|
+
export declare const yarnSubtle: stylex.VarGroup<Readonly<{
|
|
71
|
+
un: string;
|
|
72
|
+
sh: string;
|
|
73
|
+
y0: string;
|
|
74
|
+
y1: string;
|
|
75
|
+
y2: string;
|
|
76
|
+
y3: string;
|
|
77
|
+
y4: string;
|
|
78
|
+
hi: string;
|
|
79
|
+
}>, symbol>;
|
|
80
|
+
export declare const shadow: stylex.VarGroup<Readonly<{
|
|
81
|
+
popover: string;
|
|
82
|
+
raised: string;
|
|
83
|
+
}>, symbol>;
|
|
84
|
+
export declare const font: stylex.VarGroup<Readonly<{
|
|
85
|
+
display: string;
|
|
86
|
+
body: string;
|
|
87
|
+
mono: string;
|
|
88
|
+
}>, symbol>;
|
|
89
|
+
export declare const text: stylex.VarGroup<Readonly<{
|
|
90
|
+
xs: string;
|
|
91
|
+
sm: string;
|
|
92
|
+
base: string;
|
|
93
|
+
lg: string;
|
|
94
|
+
xl: string;
|
|
95
|
+
xxl: string;
|
|
96
|
+
display: string;
|
|
97
|
+
code: string;
|
|
98
|
+
leadingTight: string;
|
|
99
|
+
leadingSnug: string;
|
|
100
|
+
leadingNormal: string;
|
|
101
|
+
leadingRelaxed: string;
|
|
102
|
+
}>, symbol>;
|
|
103
|
+
export declare const space: stylex.VarGroup<Readonly<{
|
|
104
|
+
xxs: string;
|
|
105
|
+
xs: string;
|
|
106
|
+
sm: string;
|
|
107
|
+
md: string;
|
|
108
|
+
lg: string;
|
|
109
|
+
xl: string;
|
|
110
|
+
xxl: string;
|
|
111
|
+
}>, symbol>;
|
|
112
|
+
export declare const radius: stylex.VarGroup<Readonly<{
|
|
113
|
+
sm: string;
|
|
114
|
+
md: string;
|
|
115
|
+
lg: string;
|
|
116
|
+
xl: string;
|
|
117
|
+
full: string;
|
|
118
|
+
}>, symbol>;
|
|
119
|
+
export declare const motion: stylex.VarGroup<Readonly<{
|
|
120
|
+
fast: string;
|
|
121
|
+
normal: string;
|
|
122
|
+
slow: string;
|
|
123
|
+
ease: string;
|
|
124
|
+
easeOut: string;
|
|
125
|
+
spring: string;
|
|
126
|
+
}>, symbol>;
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import * as stylex from "@stylexjs/stylex";
|
|
2
|
+
// Semantic tokens for all AnyKnown products — direction B "Ledger":
|
|
3
|
+
// warm paper ground, ink text, viridian accent. Light is the primary mode;
|
|
4
|
+
// dark follows the OS unless a theme from themes.stylex.ts is applied.
|
|
5
|
+
const DARK = "@media (prefers-color-scheme: dark)";
|
|
6
|
+
export const color = stylex.defineVars({
|
|
7
|
+
bg: { default: "#FAFAF6", [DARK]: "#181613" },
|
|
8
|
+
surface: { default: "#FFFFFF", [DARK]: "#201D18" },
|
|
9
|
+
surfaceRaised: { default: "#FFFFFF", [DARK]: "#282420" },
|
|
10
|
+
border: { default: "#E3E0D5", [DARK]: "#35302A" },
|
|
11
|
+
borderStrong: { default: "#C8C3B4", [DARK]: "#4A443C" },
|
|
12
|
+
text: { default: "#23211D", [DARK]: "#EAE6DC" },
|
|
13
|
+
textMuted: { default: "#777165", [DARK]: "#A59B8C" },
|
|
14
|
+
textFaint: { default: "#9C958A", [DARK]: "#736A5D" },
|
|
15
|
+
accent: { default: "#23705A", [DARK]: "#4FA184" },
|
|
16
|
+
accentText: { default: "#FCFCF9", [DARK]: "#14120F" },
|
|
17
|
+
accentSubtle: { default: "#E7F0EB", [DARK]: "#22352E" },
|
|
18
|
+
danger: { default: "#B3402E", [DARK]: "#DD7059" },
|
|
19
|
+
dangerSubtle: { default: "#F7E7E3", [DARK]: "#3D231E" },
|
|
20
|
+
success: { default: "#23705A", [DARK]: "#4FA184" },
|
|
21
|
+
successSubtle: { default: "#E7F0EB", [DARK]: "#22352E" },
|
|
22
|
+
warning: { default: "#9A6A1B", [DARK]: "#D9A254" },
|
|
23
|
+
warningSubtle: { default: "#F5EBD9", [DARK]: "#3A2F1D" },
|
|
24
|
+
focusRing: { default: "#23705A", [DARK]: "#4FA184" },
|
|
25
|
+
bone: { default: "#ECE9DF", [DARK]: "#2A2620" },
|
|
26
|
+
sheen: { default: "#F6F4EC", [DARK]: "#35302A" },
|
|
27
|
+
successHl: { default: "#C6E0C6", [DARK]: "#2F4A2E" },
|
|
28
|
+
dangerHl: { default: "#EFCEC3", [DARK]: "#573328" },
|
|
29
|
+
});
|
|
30
|
+
// 織體紗線階(TEXTURE-GUIDE §3.4):un 底紗、sh 縫隙陰影、y0–y4 面紗(深→淺)、hi 挑面亮紗、
|
|
31
|
+
// shadow 是整塊布的落影(§3.3「實心感落地」,掛在元件的 CSS filter 上)
|
|
32
|
+
export const yarn = stylex.defineVars({
|
|
33
|
+
un: { default: "#11362C", [DARK]: "#173629" },
|
|
34
|
+
sh: { default: "#123C31", [DARK]: "#1B4437" },
|
|
35
|
+
y0: { default: "#1E6250", [DARK]: "#3F8A70" },
|
|
36
|
+
y1: { default: "#216A55", [DARK]: "#47957A" },
|
|
37
|
+
y2: { default: "#23705A", [DARK]: "#4FA184" },
|
|
38
|
+
y3: { default: "#28795F", [DARK]: "#56A98B" },
|
|
39
|
+
y4: { default: "#2E8266", [DARK]: "#5EB193" },
|
|
40
|
+
hi: { default: "#5CAA89", [DARK]: "#8FD2B4" },
|
|
41
|
+
shadow: {
|
|
42
|
+
default: "drop-shadow(0 1px 1.5px rgba(18, 60, 49, 0.3))",
|
|
43
|
+
[DARK]: "drop-shadow(0 1px 2px rgba(0, 0, 0, 0.45))",
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
// secondary(淺色布)、ghost(疏織)、danger(§3.4 原則從 danger 衍生)、
|
|
47
|
+
// subtle(accent-subtle 色系,tabs pills 取景窗用)
|
|
48
|
+
export const yarnSecondary = stylex.defineVars({
|
|
49
|
+
un: { default: "#CBC5B4", [DARK]: "#0E0C09" },
|
|
50
|
+
sh: { default: "#C9C4B4", [DARK]: "#15120E" },
|
|
51
|
+
y0: { default: "#E4E0D3", [DARK]: "#2B2620" },
|
|
52
|
+
y1: { default: "#E8E5D9", [DARK]: "#2F2A23" },
|
|
53
|
+
y2: { default: "#EDEAE0", [DARK]: "#332E26" },
|
|
54
|
+
y3: { default: "#F1EEE6", [DARK]: "#38322A" },
|
|
55
|
+
y4: { default: "#F5F3EC", [DARK]: "#3D372E" },
|
|
56
|
+
hi: { default: "#FFFFFF", [DARK]: "#5E5546" },
|
|
57
|
+
shadow: {
|
|
58
|
+
default: "drop-shadow(0 1px 1.5px rgba(80, 74, 60, 0.22))",
|
|
59
|
+
[DARK]: "drop-shadow(0 1px 2px rgba(0, 0, 0, 0.5))",
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
export const yarnGhost = stylex.defineVars({
|
|
63
|
+
un: { default: "transparent", [DARK]: "transparent" },
|
|
64
|
+
sh: { default: "transparent", [DARK]: "transparent" },
|
|
65
|
+
y0: { default: "#DCD8CA", [DARK]: "#2A251F" },
|
|
66
|
+
y1: { default: "#DFDBCE", [DARK]: "#2F2A23" },
|
|
67
|
+
y2: { default: "#E3E0D5", [DARK]: "#35302A" },
|
|
68
|
+
y3: { default: "#E7E4D9", [DARK]: "#39342D" },
|
|
69
|
+
y4: { default: "#EBE8DE", [DARK]: "#3E3830" },
|
|
70
|
+
hi: { default: "#C8C3B4", [DARK]: "#57503F" },
|
|
71
|
+
shadow: { default: "none", [DARK]: "none" },
|
|
72
|
+
});
|
|
73
|
+
export const yarnDanger = stylex.defineVars({
|
|
74
|
+
un: { default: "#401209", [DARK]: "#38130B" },
|
|
75
|
+
sh: { default: "#4A170D", [DARK]: "#451A10" },
|
|
76
|
+
y0: { default: "#8F3122", [DARK]: "#C25842" },
|
|
77
|
+
y1: { default: "#A13928", [DARK]: "#D0644E" },
|
|
78
|
+
y2: { default: "#B3402E", [DARK]: "#DD7059" },
|
|
79
|
+
y3: { default: "#BC4F3C", [DARK]: "#E17E68" },
|
|
80
|
+
y4: { default: "#C55E4A", [DARK]: "#E58C77" },
|
|
81
|
+
hi: { default: "#E39781", [DARK]: "#F4BCA9" },
|
|
82
|
+
shadow: {
|
|
83
|
+
default: "drop-shadow(0 1px 1.5px rgba(74, 23, 13, 0.3))",
|
|
84
|
+
[DARK]: "drop-shadow(0 1px 2px rgba(0, 0, 0, 0.45))",
|
|
85
|
+
},
|
|
86
|
+
});
|
|
87
|
+
export const yarnSubtle = stylex.defineVars({
|
|
88
|
+
un: { default: "#CFE2D9", [DARK]: "#141F1B" },
|
|
89
|
+
sh: { default: "#CBDFD5", [DARK]: "#17231E" },
|
|
90
|
+
y0: { default: "#DFEBE5", [DARK]: "#1D2E27" },
|
|
91
|
+
y1: { default: "#E3EEE8", [DARK]: "#20312B" },
|
|
92
|
+
y2: { default: "#E7F0EB", [DARK]: "#22352E" },
|
|
93
|
+
y3: { default: "#ECF3EF", [DARK]: "#263A32" },
|
|
94
|
+
y4: { default: "#F1F7F3", [DARK]: "#2A4038" },
|
|
95
|
+
hi: { default: "#FFFFFF", [DARK]: "#3E5F50" },
|
|
96
|
+
});
|
|
97
|
+
export const shadow = stylex.defineVars({
|
|
98
|
+
popover: {
|
|
99
|
+
default: "0 8px 24px rgba(35, 33, 29, 0.1)",
|
|
100
|
+
[DARK]: "0 8px 24px rgba(0, 0, 0, 0.4)",
|
|
101
|
+
},
|
|
102
|
+
raised: {
|
|
103
|
+
default: "0 1px 2px rgba(35, 33, 29, 0.08)",
|
|
104
|
+
[DARK]: "0 1px 2px rgba(0, 0, 0, 0.3)",
|
|
105
|
+
},
|
|
106
|
+
});
|
|
107
|
+
export const font = stylex.defineVars({
|
|
108
|
+
display: "'Newsreader Variable', Georgia, 'Times New Roman', serif",
|
|
109
|
+
body: "'Geist Variable', system-ui, sans-serif",
|
|
110
|
+
mono: "'Geist Mono Variable', ui-monospace, monospace",
|
|
111
|
+
});
|
|
112
|
+
export const text = stylex.defineVars({
|
|
113
|
+
xs: "0.75rem",
|
|
114
|
+
sm: "0.875rem",
|
|
115
|
+
base: "1rem",
|
|
116
|
+
lg: "1.125rem",
|
|
117
|
+
xl: "1.375rem",
|
|
118
|
+
xxl: "1.75rem",
|
|
119
|
+
display: "2.25rem",
|
|
120
|
+
code: "0.8125rem",
|
|
121
|
+
leadingTight: "1.2",
|
|
122
|
+
leadingSnug: "1.4",
|
|
123
|
+
leadingNormal: "1.5",
|
|
124
|
+
leadingRelaxed: "1.6",
|
|
125
|
+
});
|
|
126
|
+
export const space = stylex.defineVars({
|
|
127
|
+
xxs: "0.25rem",
|
|
128
|
+
xs: "0.5rem",
|
|
129
|
+
sm: "0.75rem",
|
|
130
|
+
md: "1rem",
|
|
131
|
+
lg: "1.5rem",
|
|
132
|
+
xl: "2rem",
|
|
133
|
+
xxl: "3rem",
|
|
134
|
+
});
|
|
135
|
+
export const radius = stylex.defineVars({
|
|
136
|
+
sm: "0.375rem",
|
|
137
|
+
md: "0.5rem",
|
|
138
|
+
lg: "0.75rem",
|
|
139
|
+
xl: "1rem",
|
|
140
|
+
full: "9999px",
|
|
141
|
+
});
|
|
142
|
+
export const motion = stylex.defineVars({
|
|
143
|
+
fast: "120ms",
|
|
144
|
+
normal: "200ms",
|
|
145
|
+
slow: "400ms",
|
|
146
|
+
ease: "cubic-bezier(0.25, 0.1, 0.25, 1)",
|
|
147
|
+
easeOut: "cubic-bezier(0.16, 1, 0.3, 1)",
|
|
148
|
+
spring: "cubic-bezier(0.34, 1.56, 0.64, 1)",
|
|
149
|
+
});
|
package/package.json
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@anyknown/ui",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "AnyKnown design system — StyleX tokens, themes, and 34 components",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"files": [
|
|
7
|
+
"dist",
|
|
8
|
+
"LICENSE"
|
|
9
|
+
],
|
|
10
|
+
"type": "module",
|
|
11
|
+
"sideEffects": false,
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"default": "./dist/index.js"
|
|
16
|
+
},
|
|
17
|
+
"./tokens.stylex": {
|
|
18
|
+
"types": "./dist/tokens.stylex.d.ts",
|
|
19
|
+
"default": "./dist/tokens.stylex.js"
|
|
20
|
+
},
|
|
21
|
+
"./themes.stylex": {
|
|
22
|
+
"types": "./dist/themes.stylex.d.ts",
|
|
23
|
+
"default": "./dist/themes.stylex.js"
|
|
24
|
+
},
|
|
25
|
+
"./tokens.css": "./dist/tokens.css",
|
|
26
|
+
"./scrollbar.css": "./dist/scrollbar.css"
|
|
27
|
+
},
|
|
28
|
+
"publishConfig": {
|
|
29
|
+
"access": "public"
|
|
30
|
+
},
|
|
31
|
+
"scripts": {
|
|
32
|
+
"build": "rm -rf dist && tsc -p tsconfig.build.json && node scripts/esm-extensions.mjs && cp src/tokens.css src/scrollbar.css dist/",
|
|
33
|
+
"typecheck": "tsc --noEmit",
|
|
34
|
+
"lint": "oxlint src",
|
|
35
|
+
"fmt": "oxfmt",
|
|
36
|
+
"fmt:check": "oxfmt --check",
|
|
37
|
+
"check": "turbo run typecheck lint fmt:check",
|
|
38
|
+
"test": "vitest run",
|
|
39
|
+
"playground": "vite --config playground/vite.config.ts",
|
|
40
|
+
"site": "vite --config site/vite.config.ts",
|
|
41
|
+
"site:test": "vitest run --config site/smoke.config.ts",
|
|
42
|
+
"site:build": "pnpm build && vite build --config site/vite.config.ts",
|
|
43
|
+
"site:deploy": "pnpm site:build && npx wrangler deploy --config site/wrangler.jsonc",
|
|
44
|
+
"prepublishOnly": "pnpm check && pnpm test && pnpm verify:pack",
|
|
45
|
+
"verify:pack": "pnpm build && node scripts/verify-pack.mjs"
|
|
46
|
+
},
|
|
47
|
+
"dependencies": {
|
|
48
|
+
"@base-ui/react": "^1.7.0",
|
|
49
|
+
"@stylexjs/stylex": "^0.19.0",
|
|
50
|
+
"diff": "^9.0.0"
|
|
51
|
+
},
|
|
52
|
+
"devDependencies": {
|
|
53
|
+
"@babel/core": "^8.0.1",
|
|
54
|
+
"@stylexjs/babel-plugin": "0.19.0",
|
|
55
|
+
"@stylexjs/postcss-plugin": "0.19.0",
|
|
56
|
+
"@testing-library/jest-dom": "^7.0.1",
|
|
57
|
+
"@testing-library/react": "^16.3.3",
|
|
58
|
+
"@testing-library/user-event": "^14.6.6",
|
|
59
|
+
"@types/babel__core": "^7.20.5",
|
|
60
|
+
"@types/node": "^26.4.0",
|
|
61
|
+
"@types/react": "^19.2.0",
|
|
62
|
+
"@types/react-dom": "^19.2.5",
|
|
63
|
+
"@vitejs/plugin-react": "^6.1.0",
|
|
64
|
+
"@vitest/coverage-v8": "^4.1.11",
|
|
65
|
+
"autoprefixer": "^10.5.4",
|
|
66
|
+
"jsdom": "^30.0.1",
|
|
67
|
+
"marked": "^18.0.11",
|
|
68
|
+
"oxfmt": "^0.65.0",
|
|
69
|
+
"oxlint": "^1.80.0",
|
|
70
|
+
"postcss": "^8.5.26",
|
|
71
|
+
"react-dom": "^19.2.8",
|
|
72
|
+
"turbo": "^2.10.9",
|
|
73
|
+
"typescript": "^5.9.0",
|
|
74
|
+
"vite": "^8.2.2",
|
|
75
|
+
"vitest": "^4.1.11"
|
|
76
|
+
},
|
|
77
|
+
"peerDependencies": {
|
|
78
|
+
"react": "^19.0.0"
|
|
79
|
+
},
|
|
80
|
+
"packageManager": "pnpm@10.30.3"
|
|
81
|
+
}
|