@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.
Files changed (121) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +121 -0
  3. package/dist/components/action-bar/ActionBar.d.ts +28 -0
  4. package/dist/components/action-bar/ActionBar.js +73 -0
  5. package/dist/components/badge/Badge.d.ts +28 -0
  6. package/dist/components/badge/Badge.js +79 -0
  7. package/dist/components/button/Button.d.ts +7 -0
  8. package/dist/components/button/Button.js +86 -0
  9. package/dist/components/card/Card.d.ts +2 -0
  10. package/dist/components/card/Card.js +17 -0
  11. package/dist/components/checkbox/Checkbox.d.ts +8 -0
  12. package/dist/components/checkbox/Checkbox.js +102 -0
  13. package/dist/components/code-block/CodeBlock.d.ts +10 -0
  14. package/dist/components/code-block/CodeBlock.js +103 -0
  15. package/dist/components/composer/Composer.d.ts +27 -0
  16. package/dist/components/composer/Composer.js +278 -0
  17. package/dist/components/data-table/DataTable.d.ts +38 -0
  18. package/dist/components/data-table/DataTable.js +256 -0
  19. package/dist/components/dialog/Dialog.d.ts +36 -0
  20. package/dist/components/dialog/Dialog.js +77 -0
  21. package/dist/components/diff-viewer/DiffViewer.d.ts +13 -0
  22. package/dist/components/diff-viewer/DiffViewer.js +133 -0
  23. package/dist/components/dropdown/DropdownMenu.d.ts +43 -0
  24. package/dist/components/dropdown/DropdownMenu.js +86 -0
  25. package/dist/components/dropzone/Dropzone.d.ts +32 -0
  26. package/dist/components/dropzone/Dropzone.js +242 -0
  27. package/dist/components/empty-state/EmptyState.d.ts +9 -0
  28. package/dist/components/empty-state/EmptyState.js +41 -0
  29. package/dist/components/file-row/FileRow.d.ts +32 -0
  30. package/dist/components/file-row/FileRow.js +153 -0
  31. package/dist/components/handoff-receipt/HandoffReceipt.d.ts +15 -0
  32. package/dist/components/handoff-receipt/HandoffReceipt.js +147 -0
  33. package/dist/components/input/Input.d.ts +48 -0
  34. package/dist/components/input/Input.js +64 -0
  35. package/dist/components/interaction-card/InteractionCard.d.ts +59 -0
  36. package/dist/components/interaction-card/InteractionCard.js +238 -0
  37. package/dist/components/kbd/Kbd.d.ts +9 -0
  38. package/dist/components/kbd/Kbd.js +43 -0
  39. package/dist/components/label/Field.d.ts +11 -0
  40. package/dist/components/label/Field.js +28 -0
  41. package/dist/components/label/Label.d.ts +7 -0
  42. package/dist/components/label/Label.js +21 -0
  43. package/dist/components/label/fieldContext.d.ts +26 -0
  44. package/dist/components/label/fieldContext.js +16 -0
  45. package/dist/components/message/Message.d.ts +29 -0
  46. package/dist/components/message/Message.js +94 -0
  47. package/dist/components/password-input/PasswordInput.d.ts +20 -0
  48. package/dist/components/password-input/PasswordInput.js +141 -0
  49. package/dist/components/popover/Popover.d.ts +38 -0
  50. package/dist/components/popover/Popover.js +37 -0
  51. package/dist/components/progress/Progress.d.ts +36 -0
  52. package/dist/components/progress/Progress.js +200 -0
  53. package/dist/components/radio/Radio.d.ts +7 -0
  54. package/dist/components/radio/Radio.js +89 -0
  55. package/dist/components/radio/RadioGroup.d.ts +21 -0
  56. package/dist/components/radio/RadioGroup.js +34 -0
  57. package/dist/components/reasoning-fold/ReasoningFold.d.ts +10 -0
  58. package/dist/components/reasoning-fold/ReasoningFold.js +92 -0
  59. package/dist/components/recovery-key/RecoveryKey.d.ts +17 -0
  60. package/dist/components/recovery-key/RecoveryKey.js +132 -0
  61. package/dist/components/select/Select.d.ts +31 -0
  62. package/dist/components/select/Select.js +209 -0
  63. package/dist/components/skeleton/Skeleton.d.ts +20 -0
  64. package/dist/components/skeleton/Skeleton.js +57 -0
  65. package/dist/components/switch/Switch.d.ts +7 -0
  66. package/dist/components/switch/Switch.js +108 -0
  67. package/dist/components/tabs/Tabs.d.ts +28 -0
  68. package/dist/components/tabs/Tabs.js +133 -0
  69. package/dist/components/text/Text.d.ts +7 -0
  70. package/dist/components/text/Text.js +31 -0
  71. package/dist/components/textarea/Textarea.d.ts +7 -0
  72. package/dist/components/textarea/Textarea.js +25 -0
  73. package/dist/components/toast/Toast.d.ts +56 -0
  74. package/dist/components/toast/Toast.js +175 -0
  75. package/dist/components/tool-card/ToolCard.d.ts +55 -0
  76. package/dist/components/tool-card/ToolCard.js +281 -0
  77. package/dist/components/tooltip/Tooltip.d.ts +12 -0
  78. package/dist/components/tooltip/Tooltip.js +38 -0
  79. package/dist/components/voice-indicator/VoiceIndicator.d.ts +7 -0
  80. package/dist/components/voice-indicator/VoiceIndicator.js +51 -0
  81. package/dist/index.d.ts +55 -0
  82. package/dist/index.js +38 -0
  83. package/dist/lib/diff.d.ts +28 -0
  84. package/dist/lib/diff.js +133 -0
  85. package/dist/lib/format.d.ts +2 -0
  86. package/dist/lib/format.js +24 -0
  87. package/dist/lib/format.test.d.ts +1 -0
  88. package/dist/lib/format.test.js +37 -0
  89. package/dist/lib/mergeRefs.d.ts +2 -0
  90. package/dist/lib/mergeRefs.js +8 -0
  91. package/dist/lib/motion.d.ts +1 -0
  92. package/dist/lib/motion.js +10 -0
  93. package/dist/lib/paths.d.ts +3 -0
  94. package/dist/lib/paths.js +11 -0
  95. package/dist/lib/popup.d.ts +29 -0
  96. package/dist/lib/popup.js +27 -0
  97. package/dist/lib/progress.d.ts +2 -0
  98. package/dist/lib/progress.js +28 -0
  99. package/dist/lib/silk.d.ts +66 -0
  100. package/dist/lib/silk.js +337 -0
  101. package/dist/lib/styled.d.ts +29 -0
  102. package/dist/lib/styled.js +30 -0
  103. package/dist/lib/svgId.d.ts +1 -0
  104. package/dist/lib/svgId.js +4 -0
  105. package/dist/lib/useAnimationFrame.d.ts +1 -0
  106. package/dist/lib/useAnimationFrame.js +21 -0
  107. package/dist/lib/useControllableState.d.ts +1 -0
  108. package/dist/lib/useControllableState.js +14 -0
  109. package/dist/lib/useCopy.d.ts +4 -0
  110. package/dist/lib/useCopy.js +19 -0
  111. package/dist/lib/voice.d.ts +2 -0
  112. package/dist/lib/voice.js +30 -0
  113. package/dist/lib/weave.d.ts +28 -0
  114. package/dist/lib/weave.js +83 -0
  115. package/dist/scrollbar.css +29 -0
  116. package/dist/themes.stylex.d.ts +49 -0
  117. package/dist/themes.stylex.js +52 -0
  118. package/dist/tokens.css +109 -0
  119. package/dist/tokens.stylex.d.ts +126 -0
  120. package/dist/tokens.stylex.js +149 -0
  121. 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
+ });
@@ -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
+ }