@rdmind/webui 0.2.4-alpha.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/package.json ADDED
@@ -0,0 +1,80 @@
1
+ {
2
+ "name": "@rdmind/webui",
3
+ "version": "0.2.4-alpha.0",
4
+ "description": "Shared UI components for RDMind packages",
5
+ "type": "module",
6
+ "main": "./dist/index.cjs",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js",
13
+ "require": "./dist/index.cjs"
14
+ },
15
+ "./icons": {
16
+ "types": "./dist/components/icons/index.d.ts",
17
+ "import": "./dist/components/icons/index.js",
18
+ "require": "./dist/components/icons/index.cjs"
19
+ },
20
+ "./tailwind.preset": "./tailwind.preset.cjs",
21
+ "./styles.css": "./dist/styles.css"
22
+ },
23
+ "files": [
24
+ "dist",
25
+ "tailwind.preset.cjs"
26
+ ],
27
+ "sideEffects": [
28
+ "**/*.css"
29
+ ],
30
+ "publishConfig": {
31
+ "access": "public"
32
+ },
33
+ "scripts": {
34
+ "dev": "vite build --watch",
35
+ "build": "vite build",
36
+ "typecheck": "tsc --noEmit",
37
+ "lint": "eslint src --ext .ts,.tsx",
38
+ "lint:fix": "eslint src --ext .ts,.tsx --fix",
39
+ "storybook": "storybook dev -p 6006",
40
+ "build-storybook": "storybook build"
41
+ },
42
+ "peerDependencies": {
43
+ "react": "^18.0.0 || ^19.0.0",
44
+ "react-dom": "^18.0.0 || ^19.0.0"
45
+ },
46
+ "dependencies": {
47
+ "markdown-it": "^14.1.0"
48
+ },
49
+ "devDependencies": {
50
+ "@types/markdown-it": "^14.1.2",
51
+ "@types/react": "^19.1.8",
52
+ "@types/react-dom": "^19.1.6",
53
+ "@vitejs/plugin-react": "^4.2.0",
54
+ "autoprefixer": "^10.4.0",
55
+ "postcss": "^8.4.0",
56
+ "tailwindcss": "^3.4.0",
57
+ "typescript": "^5.0.0",
58
+ "vite": "^5.0.0",
59
+ "vite-plugin-dts": "^4.5.4",
60
+ "storybook": "^10.1.11",
61
+ "@storybook/react-vite": "^10.1.11",
62
+ "@chromatic-com/storybook": "^5.0.0",
63
+ "@storybook/addon-vitest": "^10.1.11",
64
+ "@storybook/addon-a11y": "^10.1.11",
65
+ "@storybook/addon-docs": "^10.1.11",
66
+ "@storybook/addon-onboarding": "^10.1.11",
67
+ "eslint-plugin-storybook": "^10.1.11",
68
+ "playwright": "^1.57.0",
69
+ "@vitest/browser": "^3.2.4",
70
+ "@vitest/coverage-v8": "^3.2.4"
71
+ },
72
+ "keywords": [
73
+ "qwen",
74
+ "ui",
75
+ "components",
76
+ "shared"
77
+ ],
78
+ "author": "Qwen Team",
79
+ "license": "MIT"
80
+ }
@@ -0,0 +1,90 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Qwen Team
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ /**
8
+ * @rdmind/webui Tailwind CSS Preset
9
+ *
10
+ * This preset provides shared theme configuration for all Qwen Code products.
11
+ * Consumers should include this preset in their tailwind.config.js:
12
+ *
13
+ * @example
14
+ * module.exports = {
15
+ * presets: [require('@rdmind/webui/tailwind.preset')],
16
+ * content: [
17
+ * './src/**\/*.{ts,tsx}',
18
+ * './node_modules/@rdmind/webui/dist/**\/*.js'
19
+ * ]
20
+ * }
21
+ */
22
+
23
+ /* eslint-env node */
24
+ module.exports = {
25
+ theme: {
26
+ extend: {
27
+ colors: {
28
+ // Primary colors using CSS variables for runtime theming
29
+ 'app-primary': 'var(--app-primary, #3b82f6)',
30
+ 'app-primary-hover': 'var(--app-primary-hover, #2563eb)',
31
+ 'app-primary-foreground': 'var(--app-primary-foreground, #ffffff)',
32
+
33
+ // Background colors
34
+ 'app-background': 'var(--app-background, #ffffff)',
35
+ 'app-background-secondary': 'var(--app-background-secondary, #f3f4f6)',
36
+ 'app-background-tertiary': 'var(--app-background-tertiary, #e5e7eb)',
37
+
38
+ // Foreground/text colors
39
+ 'app-foreground': 'var(--app-foreground, #111827)',
40
+ 'app-foreground-secondary': 'var(--app-foreground-secondary, #6b7280)',
41
+ 'app-foreground-muted': 'var(--app-foreground-muted, #9ca3af)',
42
+
43
+ // Border colors
44
+ 'app-border': 'var(--app-border, #e5e7eb)',
45
+ 'app-border-focus': 'var(--app-border-focus, #3b82f6)',
46
+
47
+ // Status colors
48
+ 'app-success': 'var(--app-success, #10b981)',
49
+ 'app-warning': 'var(--app-warning, #f59e0b)',
50
+ 'app-error': 'var(--app-error, #ef4444)',
51
+ 'app-info': 'var(--app-info, #3b82f6)',
52
+ },
53
+ fontFamily: {
54
+ sans: ['var(--app-font-sans, system-ui, sans-serif)'],
55
+ mono: ['var(--app-font-mono, ui-monospace, monospace)'],
56
+ },
57
+ borderRadius: {
58
+ 'app-sm': 'var(--app-radius-sm, 0.25rem)',
59
+ 'app-md': 'var(--app-radius-md, 0.375rem)',
60
+ 'app-lg': 'var(--app-radius-lg, 0.5rem)',
61
+ },
62
+ spacing: {
63
+ 'app-xs': 'var(--app-spacing-xs, 0.25rem)',
64
+ 'app-sm': 'var(--app-spacing-sm, 0.5rem)',
65
+ 'app-md': 'var(--app-spacing-md, 1rem)',
66
+ 'app-lg': 'var(--app-spacing-lg, 1.5rem)',
67
+ 'app-xl': 'var(--app-spacing-xl, 2rem)',
68
+ },
69
+ keyframes: {
70
+ 'completion-menu-enter': {
71
+ '0%': { opacity: '0', transform: 'translateY(4px)' },
72
+ '100%': { opacity: '1', transform: 'translateY(0)' },
73
+ },
74
+ 'pulse-slow': {
75
+ '0%, 100%': { opacity: '1' },
76
+ '50%': { opacity: '0.5' },
77
+ },
78
+ 'slide-up': {
79
+ '0%': { transform: 'translateY(100%)', opacity: '0' },
80
+ '100%': { transform: 'translateY(0)', opacity: '1' },
81
+ },
82
+ },
83
+ animation: {
84
+ 'completion-menu-enter': 'completion-menu-enter 150ms ease-out both',
85
+ 'pulse-slow': 'pulse-slow 1.5s ease-in-out infinite',
86
+ 'slide-up': 'slide-up 200ms ease-out both',
87
+ },
88
+ },
89
+ },
90
+ };