@compose-market/theme 0.0.2 → 0.0.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.
Files changed (82) hide show
  1. package/dist/css/dark.css +38 -0
  2. package/dist/css/index.css +10 -0
  3. package/dist/css/index.d.ts +16 -0
  4. package/dist/css/index.d.ts.map +1 -0
  5. package/dist/css/index.js +97 -0
  6. package/dist/css/index.js.map +1 -0
  7. package/dist/css/light.css +70 -0
  8. package/dist/css/shell.css +414 -0
  9. package/dist/css/tokens.css +24 -0
  10. package/dist/index.d.ts +7 -5
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +7 -5
  13. package/dist/index.js.map +1 -1
  14. package/dist/shell/index.d.ts +67 -0
  15. package/dist/shell/index.d.ts.map +1 -0
  16. package/dist/shell/index.js +45 -0
  17. package/dist/shell/index.js.map +1 -0
  18. package/dist/shell/styles.d.ts +2 -0
  19. package/dist/shell/styles.d.ts.map +1 -0
  20. package/dist/shell/styles.js +416 -0
  21. package/dist/shell/styles.js.map +1 -0
  22. package/dist/tailwind/preset.d.ts +282 -0
  23. package/dist/tailwind/preset.d.ts.map +1 -0
  24. package/dist/tailwind/preset.js +144 -0
  25. package/dist/tailwind/preset.js.map +1 -0
  26. package/package.json +16 -41
  27. package/dist/components/brand/Logo.d.ts +0 -25
  28. package/dist/components/brand/Logo.d.ts.map +0 -1
  29. package/dist/components/brand/Logo.js +0 -20
  30. package/dist/components/brand/Logo.js.map +0 -1
  31. package/dist/components/brand/index.d.ts +0 -2
  32. package/dist/components/brand/index.d.ts.map +0 -1
  33. package/dist/components/brand/index.js +0 -2
  34. package/dist/components/brand/index.js.map +0 -1
  35. package/dist/components/session.d.ts +0 -58
  36. package/dist/components/session.d.ts.map +0 -1
  37. package/dist/components/session.js +0 -280
  38. package/dist/components/session.js.map +0 -1
  39. package/dist/components/ui/badge.d.ts +0 -10
  40. package/dist/components/ui/badge.d.ts.map +0 -1
  41. package/dist/components/ui/badge.js +0 -24
  42. package/dist/components/ui/badge.js.map +0 -1
  43. package/dist/components/ui/button.d.ts +0 -14
  44. package/dist/components/ui/button.d.ts.map +0 -1
  45. package/dist/components/ui/button.js +0 -43
  46. package/dist/components/ui/button.js.map +0 -1
  47. package/dist/components/ui/card.d.ts +0 -13
  48. package/dist/components/ui/card.d.ts.map +0 -1
  49. package/dist/components/ui/card.js +0 -18
  50. package/dist/components/ui/card.js.map +0 -1
  51. package/dist/components/ui/dialog.d.ts +0 -20
  52. package/dist/components/ui/dialog.d.ts.map +0 -1
  53. package/dist/components/ui/dialog.js +0 -23
  54. package/dist/components/ui/dialog.js.map +0 -1
  55. package/dist/components/ui/dropdown-menu.d.ts +0 -28
  56. package/dist/components/ui/dropdown-menu.d.ts.map +0 -1
  57. package/dist/components/ui/dropdown-menu.js +0 -37
  58. package/dist/components/ui/dropdown-menu.js.map +0 -1
  59. package/dist/components/ui/index.d.ts +0 -7
  60. package/dist/components/ui/index.d.ts.map +0 -1
  61. package/dist/components/ui/index.js +0 -7
  62. package/dist/components/ui/index.js.map +0 -1
  63. package/dist/components/ui/progress.d.ts +0 -5
  64. package/dist/components/ui/progress.d.ts.map +0 -1
  65. package/dist/components/ui/progress.js +0 -9
  66. package/dist/components/ui/progress.js.map +0 -1
  67. package/dist/components/ui/surface-variant.d.ts +0 -4
  68. package/dist/components/ui/surface-variant.d.ts.map +0 -1
  69. package/dist/components/ui/surface-variant.js +0 -10
  70. package/dist/components/ui/surface-variant.js.map +0 -1
  71. package/dist/lib/utils.d.ts +0 -3
  72. package/dist/lib/utils.d.ts.map +0 -1
  73. package/dist/lib/utils.js +0 -6
  74. package/dist/lib/utils.js.map +0 -1
  75. package/dist/lib/visual-system.d.ts +0 -39
  76. package/dist/lib/visual-system.d.ts.map +0 -1
  77. package/dist/lib/visual-system.js +0 -129
  78. package/dist/lib/visual-system.js.map +0 -1
  79. package/dist/utils/index.d.ts +0 -2
  80. package/dist/utils/index.d.ts.map +0 -1
  81. package/dist/utils/index.js +0 -2
  82. package/dist/utils/index.js.map +0 -1
@@ -0,0 +1,282 @@
1
+ /**
2
+ * Tailwind CSS Preset - Compose.Market Design System
3
+ *
4
+ * This preset maps Compose.Market design tokens to Tailwind CSS.
5
+ * It provides a seamless integration for the web app while
6
+ * maintaining the single source of truth from the theme package.
7
+ *
8
+ * Usage in tailwind.config.js:
9
+ *
10
+ * import composeTheme from '@compose-market/theme/tailwind';
11
+ *
12
+ * export default {
13
+ * presets: [composeTheme],
14
+ * // ... other config
15
+ * }
16
+ */
17
+ export declare const colors: {
18
+ background: string;
19
+ foreground: string;
20
+ card: {
21
+ DEFAULT: string;
22
+ foreground: string;
23
+ };
24
+ popover: {
25
+ DEFAULT: string;
26
+ foreground: string;
27
+ };
28
+ primary: {
29
+ DEFAULT: string;
30
+ foreground: string;
31
+ };
32
+ secondary: {
33
+ DEFAULT: string;
34
+ foreground: string;
35
+ };
36
+ muted: {
37
+ DEFAULT: string;
38
+ foreground: string;
39
+ };
40
+ accent: {
41
+ DEFAULT: string;
42
+ foreground: string;
43
+ };
44
+ destructive: {
45
+ DEFAULT: string;
46
+ foreground: string;
47
+ };
48
+ border: string;
49
+ input: string;
50
+ ring: string;
51
+ sidebar: {
52
+ DEFAULT: string;
53
+ foreground: string;
54
+ primary: string;
55
+ 'primary-foreground': string;
56
+ accent: string;
57
+ 'accent-foreground': string;
58
+ border: string;
59
+ ring: string;
60
+ };
61
+ };
62
+ export declare const fontFamily: Record<string, string>;
63
+ export declare const borderRadius: {
64
+ lg: string;
65
+ md: string;
66
+ sm: string;
67
+ xl: string;
68
+ };
69
+ export declare const extend: {
70
+ colors: {
71
+ background: string;
72
+ foreground: string;
73
+ card: {
74
+ DEFAULT: string;
75
+ foreground: string;
76
+ };
77
+ popover: {
78
+ DEFAULT: string;
79
+ foreground: string;
80
+ };
81
+ primary: {
82
+ DEFAULT: string;
83
+ foreground: string;
84
+ };
85
+ secondary: {
86
+ DEFAULT: string;
87
+ foreground: string;
88
+ };
89
+ muted: {
90
+ DEFAULT: string;
91
+ foreground: string;
92
+ };
93
+ accent: {
94
+ DEFAULT: string;
95
+ foreground: string;
96
+ };
97
+ destructive: {
98
+ DEFAULT: string;
99
+ foreground: string;
100
+ };
101
+ border: string;
102
+ input: string;
103
+ ring: string;
104
+ sidebar: {
105
+ DEFAULT: string;
106
+ foreground: string;
107
+ primary: string;
108
+ 'primary-foreground': string;
109
+ accent: string;
110
+ 'accent-foreground': string;
111
+ border: string;
112
+ ring: string;
113
+ };
114
+ };
115
+ fontFamily: Record<string, string>;
116
+ borderRadius: {
117
+ lg: string;
118
+ md: string;
119
+ sm: string;
120
+ xl: string;
121
+ };
122
+ keyframes: {
123
+ 'accordion-down': {
124
+ from: {
125
+ height: string;
126
+ };
127
+ to: {
128
+ height: string;
129
+ };
130
+ };
131
+ 'accordion-up': {
132
+ from: {
133
+ height: string;
134
+ };
135
+ to: {
136
+ height: string;
137
+ };
138
+ };
139
+ 'pulse-slow': {
140
+ '0%, 100%': {
141
+ opacity: string;
142
+ };
143
+ '50%': {
144
+ opacity: string;
145
+ };
146
+ };
147
+ shimmer: {
148
+ '0%': {
149
+ transform: string;
150
+ };
151
+ '100%': {
152
+ transform: string;
153
+ };
154
+ };
155
+ 'neon-pulse': {
156
+ from: {
157
+ boxShadow: string;
158
+ };
159
+ to: {
160
+ boxShadow: string;
161
+ };
162
+ };
163
+ };
164
+ animation: {
165
+ 'accordion-down': string;
166
+ 'accordion-up': string;
167
+ 'pulse-slow': string;
168
+ shimmer: string;
169
+ 'neon-glow': string;
170
+ };
171
+ };
172
+ declare const composeTheme: {
173
+ content: never[];
174
+ theme: {
175
+ extend: {
176
+ colors: {
177
+ background: string;
178
+ foreground: string;
179
+ card: {
180
+ DEFAULT: string;
181
+ foreground: string;
182
+ };
183
+ popover: {
184
+ DEFAULT: string;
185
+ foreground: string;
186
+ };
187
+ primary: {
188
+ DEFAULT: string;
189
+ foreground: string;
190
+ };
191
+ secondary: {
192
+ DEFAULT: string;
193
+ foreground: string;
194
+ };
195
+ muted: {
196
+ DEFAULT: string;
197
+ foreground: string;
198
+ };
199
+ accent: {
200
+ DEFAULT: string;
201
+ foreground: string;
202
+ };
203
+ destructive: {
204
+ DEFAULT: string;
205
+ foreground: string;
206
+ };
207
+ border: string;
208
+ input: string;
209
+ ring: string;
210
+ sidebar: {
211
+ DEFAULT: string;
212
+ foreground: string;
213
+ primary: string;
214
+ 'primary-foreground': string;
215
+ accent: string;
216
+ 'accent-foreground': string;
217
+ border: string;
218
+ ring: string;
219
+ };
220
+ };
221
+ fontFamily: Record<string, string>;
222
+ borderRadius: {
223
+ lg: string;
224
+ md: string;
225
+ sm: string;
226
+ xl: string;
227
+ };
228
+ keyframes: {
229
+ 'accordion-down': {
230
+ from: {
231
+ height: string;
232
+ };
233
+ to: {
234
+ height: string;
235
+ };
236
+ };
237
+ 'accordion-up': {
238
+ from: {
239
+ height: string;
240
+ };
241
+ to: {
242
+ height: string;
243
+ };
244
+ };
245
+ 'pulse-slow': {
246
+ '0%, 100%': {
247
+ opacity: string;
248
+ };
249
+ '50%': {
250
+ opacity: string;
251
+ };
252
+ };
253
+ shimmer: {
254
+ '0%': {
255
+ transform: string;
256
+ };
257
+ '100%': {
258
+ transform: string;
259
+ };
260
+ };
261
+ 'neon-pulse': {
262
+ from: {
263
+ boxShadow: string;
264
+ };
265
+ to: {
266
+ boxShadow: string;
267
+ };
268
+ };
269
+ };
270
+ animation: {
271
+ 'accordion-down': string;
272
+ 'accordion-up': string;
273
+ 'pulse-slow': string;
274
+ shimmer: string;
275
+ 'neon-glow': string;
276
+ };
277
+ };
278
+ };
279
+ plugins: never[];
280
+ };
281
+ export default composeTheme;
282
+ //# sourceMappingURL=preset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preset.d.ts","sourceRoot":"","sources":["../../src/tailwind/preset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAuCH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6ClB,CAAC;AAEF,eAAO,MAAM,UAAU,wBAAyC,CAAC;AAEjE,eAAO,MAAM,YAAY;;;;;CAMxB,CAAC;AAEF,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqClB,CAAC;AAEF,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * Tailwind CSS Preset - Compose.Market Design System
3
+ *
4
+ * This preset maps Compose.Market design tokens to Tailwind CSS.
5
+ * It provides a seamless integration for the web app while
6
+ * maintaining the single source of truth from the theme package.
7
+ *
8
+ * Usage in tailwind.config.js:
9
+ *
10
+ * import composeTheme from '@compose-market/theme/tailwind';
11
+ *
12
+ * export default {
13
+ * presets: [composeTheme],
14
+ * // ... other config
15
+ * }
16
+ */
17
+ import { fontFamilies } from '../tokens/typography';
18
+ import { radius } from '../tokens/radius';
19
+ import { colorScales } from '../tokens/colors';
20
+ function generateColorScales(scales) {
21
+ const result = {};
22
+ for (const [scaleName, scale] of Object.entries(scales)) {
23
+ result[scaleName] = {};
24
+ for (const [shade, hsl] of Object.entries(scale)) {
25
+ result[scaleName][shade] = `hsl(${hsl} / <alpha-value>)`;
26
+ }
27
+ }
28
+ return result;
29
+ }
30
+ function generateFontFamilyTokens(fonts) {
31
+ const result = {};
32
+ for (const [key, font] of Object.entries(fonts)) {
33
+ result[key] = `var(${font.cssVar})`;
34
+ }
35
+ return result;
36
+ }
37
+ function generateRadiusTokens(r) {
38
+ const result = {};
39
+ for (const [key, value] of Object.entries(r)) {
40
+ result[key === 'DEFAULT' ? 'DEFAULT' : key] = `var(${value.cssVar})`;
41
+ }
42
+ return result;
43
+ }
44
+ export const colors = {
45
+ background: 'hsl(var(--background) / <alpha-value>)',
46
+ foreground: 'hsl(var(--foreground) / <alpha-value>)',
47
+ card: {
48
+ DEFAULT: 'hsl(var(--card) / <alpha-value>)',
49
+ foreground: 'hsl(var(--card-foreground) / <alpha-value>)',
50
+ },
51
+ popover: {
52
+ DEFAULT: 'hsl(var(--popover) / <alpha-value>)',
53
+ foreground: 'hsl(var(--popover-foreground) / <alpha-value>)',
54
+ },
55
+ primary: {
56
+ DEFAULT: 'hsl(var(--primary) / <alpha-value>)',
57
+ foreground: 'hsl(var(--primary-foreground) / <alpha-value>)',
58
+ },
59
+ secondary: {
60
+ DEFAULT: 'hsl(var(--secondary) / <alpha-value>)',
61
+ foreground: 'hsl(var(--secondary-foreground) / <alpha-value>)',
62
+ },
63
+ muted: {
64
+ DEFAULT: 'hsl(var(--muted) / <alpha-value>)',
65
+ foreground: 'hsl(var(--muted-foreground) / <alpha-value>)',
66
+ },
67
+ accent: {
68
+ DEFAULT: 'hsl(var(--accent) / <alpha-value>)',
69
+ foreground: 'hsl(var(--accent-foreground) / <alpha-value>)',
70
+ },
71
+ destructive: {
72
+ DEFAULT: 'hsl(var(--destructive) / <alpha-value>)',
73
+ foreground: 'hsl(var(--destructive-foreground) / <alpha-value>)',
74
+ },
75
+ border: 'hsl(var(--border) / <alpha-value>)',
76
+ input: 'hsl(var(--input) / <alpha-value>)',
77
+ ring: 'hsl(var(--ring) / <alpha-value>)',
78
+ sidebar: {
79
+ DEFAULT: 'hsl(var(--sidebar) / <alpha-value>)',
80
+ foreground: 'hsl(var(--sidebar-foreground) / <alpha-value>)',
81
+ primary: 'hsl(var(--sidebar-primary) / <alpha-value>)',
82
+ 'primary-foreground': 'hsl(var(--sidebar-primary-foreground) / <alpha-value>)',
83
+ accent: 'hsl(var(--sidebar-accent) / <alpha-value>)',
84
+ 'accent-foreground': 'hsl(var(--sidebar-accent-foreground) / <alpha-value>)',
85
+ border: 'hsl(var(--sidebar-border) / <alpha-value>)',
86
+ ring: 'hsl(var(--sidebar-ring) / <alpha-value>)',
87
+ },
88
+ ...generateColorScales(colorScales),
89
+ };
90
+ export const fontFamily = generateFontFamilyTokens(fontFamilies);
91
+ export const borderRadius = {
92
+ ...generateRadiusTokens(radius),
93
+ lg: 'var(--radius-lg)',
94
+ md: 'var(--radius-md)',
95
+ sm: 'var(--radius-sm)',
96
+ xl: 'var(--radius-xl)',
97
+ };
98
+ export const extend = {
99
+ colors,
100
+ fontFamily,
101
+ borderRadius,
102
+ keyframes: {
103
+ 'accordion-down': {
104
+ from: { height: '0' },
105
+ to: { height: 'var(--radix-accordion-content-height)' },
106
+ },
107
+ 'accordion-up': {
108
+ from: { height: 'var(--radix-accordion-content-height)' },
109
+ to: { height: '0' },
110
+ },
111
+ 'pulse-slow': {
112
+ '0%, 100%': { opacity: '1' },
113
+ '50%': { opacity: '0.5' },
114
+ },
115
+ shimmer: {
116
+ '0%': { transform: 'translateX(-100%)' },
117
+ '100%': { transform: 'translateX(100%)' },
118
+ },
119
+ 'neon-pulse': {
120
+ from: {
121
+ boxShadow: '0 0 5px hsl(var(--primary) / 0.5), 0 0 10px hsl(var(--primary) / 0.3), 0 0 15px hsl(var(--primary) / 0.1)',
122
+ },
123
+ to: {
124
+ boxShadow: '0 0 10px hsl(var(--primary) / 0.6), 0 0 20px hsl(var(--primary) / 0.4), 0 0 30px hsl(var(--primary) / 0.2)',
125
+ },
126
+ },
127
+ },
128
+ animation: {
129
+ 'accordion-down': 'accordion-down 0.2s ease-out',
130
+ 'accordion-up': 'accordion-up 0.2s ease-out',
131
+ 'pulse-slow': 'pulse 4s cubic-bezier(0.4, 0, 0.6, 1) infinite',
132
+ shimmer: 'shimmer 2s linear infinite',
133
+ 'neon-glow': 'neon-pulse 2s ease-in-out infinite alternate',
134
+ },
135
+ };
136
+ const composeTheme = {
137
+ content: [],
138
+ theme: {
139
+ extend,
140
+ },
141
+ plugins: [],
142
+ };
143
+ export default composeTheme;
144
+ //# sourceMappingURL=preset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preset.js","sourceRoot":"","sources":["../../src/tailwind/preset.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,14 +1,13 @@
1
1
  {
2
2
  "name": "@compose-market/theme",
3
- "version": "0.0.2",
4
- "description": "Official design tokens and UI primitives for Compose.Market",
3
+ "version": "0.0.4",
4
+ "description": "Official design tokens and theme system for Compose.Market",
5
5
  "keywords": [
6
6
  "design-tokens",
7
7
  "theme",
8
8
  "compose-market",
9
9
  "tailwind",
10
- "css-variables",
11
- "react-components"
10
+ "css-variables"
12
11
  ],
13
12
  "homepage": "https://github.com/compose-market/theme#readme",
14
13
  "bugs": {
@@ -27,10 +26,10 @@
27
26
  "import": "./dist/index.js",
28
27
  "default": "./dist/index.js"
29
28
  },
30
- "./utils": {
31
- "types": "./dist/utils/index.d.ts",
32
- "import": "./dist/utils/index.js",
33
- "default": "./dist/utils/index.js"
29
+ "./shell": {
30
+ "types": "./dist/shell/index.d.ts",
31
+ "import": "./dist/shell/index.js",
32
+ "default": "./dist/shell/index.js"
34
33
  },
35
34
  "./tokens": {
36
35
  "types": "./dist/tokens/index.d.ts",
@@ -48,6 +47,7 @@
48
47
  "default": "./dist/tailwind/preset.js"
49
48
  },
50
49
  "./css": "./dist/css/index.css",
50
+ "./css/shell": "./dist/css/shell.css",
51
51
  "./css/tokens": "./dist/css/tokens.css",
52
52
  "./css/dark": "./dist/css/dark.css",
53
53
  "./css/light": "./dist/css/light.css"
@@ -58,50 +58,25 @@
58
58
  "dist"
59
59
  ],
60
60
  "scripts": {
61
- "build": "tsc",
61
+ "build": "tsx scripts/build.ts",
62
62
  "prepublishOnly": "npm run build",
63
63
  "typecheck": "tsc --noEmit"
64
64
  },
65
65
  "dependencies": {
66
- "@compose-market/session": "^0.0.3",
67
- "@radix-ui/react-accordion": "^1.2.12",
68
- "@radix-ui/react-alert-dialog": "^1.1.15",
69
- "@radix-ui/react-aspect-ratio": "^1.1.8",
70
- "@radix-ui/react-avatar": "^1.1.11",
71
- "@radix-ui/react-checkbox": "^1.3.3",
72
- "@radix-ui/react-collapsible": "^1.1.12",
73
- "@radix-ui/react-context-menu": "^2.2.16",
74
- "@radix-ui/react-dialog": "^1.1.15",
75
- "@radix-ui/react-dropdown-menu": "^2.1.16",
76
- "@radix-ui/react-hover-card": "^1.1.15",
77
- "@radix-ui/react-label": "^2.1.8",
78
- "@radix-ui/react-menubar": "^1.1.16",
79
- "@radix-ui/react-navigation-menu": "^1.2.14",
80
- "@radix-ui/react-popover": "^1.1.15",
81
- "@radix-ui/react-progress": "^1.1.8",
82
- "@radix-ui/react-radio-group": "^1.3.8",
83
- "@radix-ui/react-scroll-area": "^1.2.10",
84
- "@radix-ui/react-select": "^2.2.6",
85
- "@radix-ui/react-separator": "^1.1.8",
86
- "@radix-ui/react-slider": "^1.3.6",
87
- "@radix-ui/react-slot": "^1.2.4",
88
- "@radix-ui/react-switch": "^1.2.6",
89
- "@radix-ui/react-tabs": "^1.1.13",
90
- "@radix-ui/react-tooltip": "^1.2.8",
91
- "class-variance-authority": "^0.7.1",
92
- "clsx": "^2.1.1",
93
- "lucide-react": "^0.575.0",
94
- "tailwind-merge": "^3.5.0"
66
+ "esbuild": "^0.27.3",
67
+ "get-tsconfig": "^4.13.6",
68
+ "resolve-pkg-maps": "^1.0.0",
69
+ "undici-types": "^7.22.0"
95
70
  },
96
71
  "devDependencies": {
97
- "@types/node": "^25.3.3",
72
+ "@types/node": "^25.4.0",
98
73
  "@types/react": "^19.2.14",
99
74
  "react": "^19.2.4",
75
+ "tsx": "^4.21.0",
100
76
  "typescript": "^5.9.3"
101
77
  },
102
78
  "peerDependencies": {
103
- "react": ">=18.0.0",
104
- "react-dom": ">=18.0.0"
79
+ "react": "^19.0.0"
105
80
  },
106
81
  "publishConfig": {
107
82
  "access": "public"
@@ -1,25 +0,0 @@
1
- import React from "react";
2
- interface LogoProps {
3
- className?: string;
4
- }
5
- /**
6
- * The Compose.Market Logo
7
- * Abstract "C" / "M" formed by connected nodes
8
- */
9
- export declare function ComposeLogo({ className }: LogoProps): import("react/jsx-runtime").JSX.Element;
10
- /**
11
- * 3D Asset: The "Workflow Cube"
12
- * Symbol of Composability
13
- */
14
- export declare function WorkflowCube({ className }: LogoProps): import("react/jsx-runtime").JSX.Element;
15
- /**
16
- * GlitchText component for hover glitch effect
17
- */
18
- interface GlitchTextProps {
19
- text: string;
20
- as?: React.ElementType;
21
- className?: string;
22
- }
23
- export declare function GlitchText({ text, as: Component, className }: GlitchTextProps): import("react/jsx-runtime").JSX.Element;
24
- export {};
25
- //# sourceMappingURL=Logo.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Logo.d.ts","sourceRoot":"","sources":["../../../src/components/brand/Logo.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,SAAS;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,EAAE,SAAS,2CAkBnD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,EAAE,SAAS,2CAepD;AAED;;GAEG;AACH,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAkB,EAAE,SAAS,EAAE,EAAE,eAAe,2CAYtF"}
@@ -1,20 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { cn } from "@/lib/utils";
3
- /**
4
- * The Compose.Market Logo
5
- * Abstract "C" / "M" formed by connected nodes
6
- */
7
- export function ComposeLogo({ className }) {
8
- return (_jsxs("svg", { viewBox: "0 0 100 100", className: cn("fill-none stroke-current", className), children: [_jsx("path", { d: "M30 30 L30 70 L70 70", className: "stroke-cyan-400", strokeWidth: "4", strokeLinecap: "round" }), _jsx("path", { d: "M70 30 L70 50", className: "stroke-fuchsia-500", strokeWidth: "4", strokeLinecap: "round" }), _jsx("circle", { cx: "30", cy: "30", r: "6", className: "fill-cyan-950 stroke-cyan-400", strokeWidth: "2" }), _jsx("circle", { cx: "30", cy: "70", r: "6", className: "fill-cyan-950 stroke-cyan-400", strokeWidth: "2" }), _jsx("circle", { cx: "70", cy: "70", r: "6", className: "fill-cyan-950 stroke-cyan-400", strokeWidth: "2" }), _jsx("circle", { cx: "70", cy: "30", r: "6", className: "fill-cyan-950 stroke-fuchsia-500", strokeWidth: "2" }), _jsx("path", { d: "M30 30 L70 30", className: "stroke-cyan-500/30", strokeWidth: "1", strokeDasharray: "4 4" }), _jsx("path", { d: "M70 70 L70 50", className: "stroke-fuchsia-500/50", strokeWidth: "1" })] }));
9
- }
10
- /**
11
- * 3D Asset: The "Workflow Cube"
12
- * Symbol of Composability
13
- */
14
- export function WorkflowCube({ className }) {
15
- return (_jsxs("svg", { viewBox: "0 0 100 100", className: cn("stroke-current fill-none", className), children: [_jsx("path", { d: "M50 5 L90 25 L90 70 L50 90 L10 70 L10 25 Z", className: "stroke-cyan-500/30", strokeWidth: "1" }), _jsx("path", { d: "M50 5 L50 45 M50 90 L50 45 M90 25 L50 45 L10 25", className: "stroke-cyan-500/30", strokeWidth: "1" }), _jsx("path", { d: "M50 30 L70 40 L70 60 L50 70 L30 60 L30 40 Z", className: "fill-cyan-500/10 stroke-cyan-400", strokeWidth: "2" }), _jsx("circle", { cx: "50", cy: "30", r: "2", className: "fill-fuchsia-500" }), _jsx("circle", { cx: "70", cy: "40", r: "2", className: "fill-fuchsia-500" }), _jsx("circle", { cx: "30", cy: "60", r: "2", className: "fill-fuchsia-500" })] }));
16
- }
17
- export function GlitchText({ text, as: Component = "span", className }) {
18
- return (_jsxs(Component, { className: cn("relative inline-block group", className), children: [_jsx("span", { className: "relative z-10", children: text }), _jsx("span", { className: "absolute top-0 left-0 -ml-0.5 translate-x-[2px] text-fuchsia-500 opacity-0 group-hover:opacity-70 animate-pulse z-0 mix-blend-screen", children: text }), _jsx("span", { className: "absolute top-0 left-0 -ml-0.5 -translate-x-[2px] text-cyan-500 opacity-0 group-hover:opacity-70 animate-pulse z-0 mix-blend-screen", style: { animationDelay: "75ms" }, children: text })] }));
19
- }
20
- //# sourceMappingURL=Logo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Logo.js","sourceRoot":"","sources":["../../../src/components/brand/Logo.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export * from "./Logo";
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/brand/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from "./Logo";
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/brand/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
@@ -1,58 +0,0 @@
1
- import { BUDGET_PRESETS } from "@compose-market/session/hooks";
2
- export { BUDGET_PRESETS };
3
- export interface ComposeKeyRecord {
4
- composeKeyId: string;
5
- budgetLimitWei: number;
6
- budgetUsedWei: number;
7
- budgetRemainingWei: number;
8
- createdAt: number;
9
- expiresAt: number;
10
- revokedAt?: number;
11
- name?: string;
12
- lastUsedAt?: number;
13
- chainId?: number;
14
- }
15
- export interface SessionState {
16
- isActive: boolean;
17
- composeKeyId: string | null;
18
- composeKeyToken: string | null;
19
- paymentSessionId: string | null;
20
- paymentSessionStatus: "active" | "expired" | "depleted" | "suspended" | null;
21
- budgetLimitWei: number;
22
- budgetUsedWei: number;
23
- budgetLockedWei: number;
24
- budgetRemainingWei: number;
25
- expiresAt: number | null;
26
- chainId: number | null;
27
- name?: string;
28
- }
29
- export interface SessionActions {
30
- createSession: (budgetUSDC: number, durationHours?: number) => Promise<boolean>;
31
- ensureToken: () => Promise<string | null>;
32
- endSession: () => void;
33
- }
34
- export interface SessionBudgetDialogProps {
35
- open?: boolean;
36
- onOpenChange?: (open: boolean) => void;
37
- showTrigger?: boolean;
38
- }
39
- export interface SessionStatusCardProps {
40
- className?: string;
41
- }
42
- export interface SessionIndicatorProps {
43
- apiBaseUrl?: string;
44
- }
45
- export interface SessionManageDialogProps {
46
- open: boolean;
47
- onOpenChange: (open: boolean) => void;
48
- apiBaseUrl?: string;
49
- }
50
- export interface ComposeKeyDialogProps {
51
- open: boolean;
52
- onOpenChange: (open: boolean) => void;
53
- apiBaseUrl?: string;
54
- }
55
- export declare function SessionBudgetDialog({ open: controlledOpen, onOpenChange: controlledOnOpenChange, showTrigger, }?: SessionBudgetDialogProps): import("react/jsx-runtime").JSX.Element;
56
- export declare function SessionStatusCard({ className }?: SessionStatusCardProps): import("react/jsx-runtime").JSX.Element | null;
57
- export declare function SessionIndicator({ apiBaseUrl }?: SessionIndicatorProps): import("react/jsx-runtime").JSX.Element | null;
58
- //# sourceMappingURL=session.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/components/session.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAc,MAAM,+BAA+B,CAAC;AAsB3E,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,oBAAoB,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI,CAAC;IAC7E,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChF,WAAW,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1C,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAoDD,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EAAE,cAAc,EACpB,YAAY,EAAE,sBAAsB,EACpC,WAAkB,GACnB,GAAE,wBAA6B,2CAmI/B;AAED,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,GAAE,sBAA2B,kDAwD3E;AAED,wBAAgB,gBAAgB,CAAC,EAAE,UAAU,EAAE,GAAE,qBAA0B,kDA2D1E"}