@adea-ai/ui 0.10.8

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 (40) hide show
  1. package/README.md +5 -0
  2. package/components.json +19 -0
  3. package/package.json +56 -0
  4. package/src/components/account-drawer.tsx +133 -0
  5. package/src/components/on-screen-controls.tsx +156 -0
  6. package/src/components/prop-catalog.tsx +583 -0
  7. package/src/components/scene-settings.tsx +202 -0
  8. package/src/components/theme-provider.tsx +30 -0
  9. package/src/components/theme-toggle.tsx +73 -0
  10. package/src/components/ui/badge.tsx +49 -0
  11. package/src/components/ui/button.tsx +60 -0
  12. package/src/components/ui/card.tsx +18 -0
  13. package/src/components/ui/dialog.tsx +129 -0
  14. package/src/components/ui/drawer.tsx +209 -0
  15. package/src/components/ui/dropdown-menu.tsx +258 -0
  16. package/src/components/ui/empty.tsx +94 -0
  17. package/src/components/ui/field.tsx +224 -0
  18. package/src/components/ui/input.tsx +20 -0
  19. package/src/components/ui/label.tsx +20 -0
  20. package/src/components/ui/radio-group.tsx +38 -0
  21. package/src/components/ui/separator.tsx +21 -0
  22. package/src/components/ui/skeleton.tsx +13 -0
  23. package/src/components/ui/spinner.tsx +16 -0
  24. package/src/components/ui/switch.tsx +32 -0
  25. package/src/components/ui/tabs.tsx +75 -0
  26. package/src/components/ui/toggle-group.tsx +87 -0
  27. package/src/components/ui/toggle.tsx +45 -0
  28. package/src/components/ui/tooltip.tsx +56 -0
  29. package/src/components/version-dialog.tsx +366 -0
  30. package/src/components/workspace-brand.tsx +18 -0
  31. package/src/components/workspace-logo.tsx +17 -0
  32. package/src/index.tsx +55 -0
  33. package/src/lib/utils.ts +6 -0
  34. package/src/lib/version-notes.ts +30 -0
  35. package/src/styles/auth-shell.css +67 -0
  36. package/src/styles/conventional-workspace.css +2846 -0
  37. package/src/styles/globals.css +93 -0
  38. package/src/styles/theme.css +94 -0
  39. package/src/styles/workspace-shell.css +145 -0
  40. package/tsconfig.json +10 -0
@@ -0,0 +1,93 @@
1
+ @import "tailwindcss";
2
+ @import "shadcn/tailwind.css";
3
+
4
+ /* Include shared components when this stylesheet is consumed by an app. */
5
+ @source "../";
6
+
7
+ @custom-variant dark (&:is(.dark *));
8
+
9
+ @theme inline {
10
+ --color-background: var(--background);
11
+ --color-foreground: var(--foreground);
12
+ --color-card: var(--card);
13
+ --color-card-foreground: var(--card-foreground);
14
+ --color-popover: var(--popover);
15
+ --color-popover-foreground: var(--popover-foreground);
16
+ --color-primary: var(--primary);
17
+ --color-primary-foreground: var(--primary-foreground);
18
+ --color-secondary: var(--secondary);
19
+ --color-secondary-foreground: var(--secondary-foreground);
20
+ --color-muted: var(--muted);
21
+ --color-muted-foreground: var(--muted-foreground);
22
+ --color-accent: var(--accent);
23
+ --color-accent-foreground: var(--accent-foreground);
24
+ --color-destructive: var(--destructive);
25
+ --color-border: var(--border);
26
+ --color-input: var(--input);
27
+ --color-ring: var(--ring);
28
+ --radius-sm: calc(var(--radius) - 4px);
29
+ --radius-md: calc(var(--radius) - 2px);
30
+ --radius-lg: var(--radius);
31
+ --radius-xl: calc(var(--radius) + 4px);
32
+ }
33
+
34
+ :root {
35
+ --radius: 0.75rem;
36
+ --background: oklch(1 0 0);
37
+ --foreground: oklch(0.145 0 0);
38
+ --card: oklch(1 0 0);
39
+ --card-foreground: oklch(0.145 0 0);
40
+ --popover: oklch(1 0 0);
41
+ --popover-foreground: oklch(0.145 0 0);
42
+ --primary: oklch(0.205 0 0);
43
+ --primary-foreground: oklch(0.985 0 0);
44
+ --secondary: oklch(0.97 0 0);
45
+ --secondary-foreground: oklch(0.205 0 0);
46
+ --muted: oklch(0.97 0 0);
47
+ --muted-foreground: oklch(0.556 0 0);
48
+ --accent: oklch(0.97 0 0);
49
+ --accent-foreground: oklch(0.205 0 0);
50
+ --destructive: oklch(0.577 0.245 27.325);
51
+ --border: oklch(0.922 0 0);
52
+ --input: oklch(0.922 0 0);
53
+ --ring: oklch(0.708 0 0);
54
+ }
55
+
56
+ .dark {
57
+ --background: oklch(0.145 0 0);
58
+ --foreground: oklch(0.985 0 0);
59
+ --card: oklch(0.205 0 0);
60
+ --card-foreground: oklch(0.985 0 0);
61
+ --popover: oklch(0.205 0 0);
62
+ --popover-foreground: oklch(0.985 0 0);
63
+ --primary: oklch(0.922 0 0);
64
+ --primary-foreground: oklch(0.205 0 0);
65
+ --secondary: oklch(0.269 0 0);
66
+ --secondary-foreground: oklch(0.985 0 0);
67
+ --muted: oklch(0.269 0 0);
68
+ --muted-foreground: oklch(0.708 0 0);
69
+ --accent: oklch(0.269 0 0);
70
+ --accent-foreground: oklch(0.985 0 0);
71
+ --destructive: oklch(0.704 0.191 22.216);
72
+ --border: oklch(1 0 0 / 10%);
73
+ --input: oklch(1 0 0 / 15%);
74
+ --ring: oklch(0.556 0 0);
75
+ }
76
+
77
+ @layer base {
78
+ * {
79
+ border-color: var(--border);
80
+ }
81
+
82
+ html,
83
+ body {
84
+ min-height: 100%;
85
+ }
86
+
87
+ body {
88
+ position: relative;
89
+ margin: 0;
90
+ background: var(--background);
91
+ color: var(--foreground);
92
+ }
93
+ }
@@ -0,0 +1,94 @@
1
+ /* Shared tokens and component styling. Consumers provide the Tailwind and
2
+ shadcn imports from their own app stylesheet. */
3
+
4
+ @source "../";
5
+
6
+ @custom-variant dark (&:is(.dark *));
7
+
8
+ @theme inline {
9
+ --color-background: var(--background);
10
+ --color-foreground: var(--foreground);
11
+ --color-card: var(--card);
12
+ --color-card-foreground: var(--card-foreground);
13
+ --color-popover: var(--popover);
14
+ --color-popover-foreground: var(--popover-foreground);
15
+ --color-primary: var(--primary);
16
+ --color-primary-foreground: var(--primary-foreground);
17
+ --color-secondary: var(--secondary);
18
+ --color-secondary-foreground: var(--secondary-foreground);
19
+ --color-muted: var(--muted);
20
+ --color-muted-foreground: var(--muted-foreground);
21
+ --color-accent: var(--accent);
22
+ --color-accent-foreground: var(--accent-foreground);
23
+ --color-destructive: var(--destructive);
24
+ --color-border: var(--border);
25
+ --color-input: var(--input);
26
+ --color-ring: var(--ring);
27
+ --radius-sm: calc(var(--radius) - 4px);
28
+ --radius-md: calc(var(--radius) - 2px);
29
+ --radius-lg: var(--radius);
30
+ --radius-xl: calc(var(--radius) + 4px);
31
+ }
32
+
33
+ :root {
34
+ --radius: 0.75rem;
35
+ --background: oklch(1 0 0);
36
+ --foreground: oklch(0.145 0 0);
37
+ --card: oklch(1 0 0);
38
+ --card-foreground: oklch(0.145 0 0);
39
+ --popover: oklch(1 0 0);
40
+ --popover-foreground: oklch(0.145 0 0);
41
+ --primary: oklch(0.205 0 0);
42
+ --primary-foreground: oklch(0.985 0 0);
43
+ --secondary: oklch(0.97 0 0);
44
+ --secondary-foreground: oklch(0.205 0 0);
45
+ --muted: oklch(0.97 0 0);
46
+ --muted-foreground: oklch(0.556 0 0);
47
+ --accent: oklch(0.97 0 0);
48
+ --accent-foreground: oklch(0.205 0 0);
49
+ --destructive: oklch(0.577 0.245 27.325);
50
+ --border: oklch(0.922 0 0);
51
+ --input: oklch(0.922 0 0);
52
+ --ring: oklch(0.708 0 0);
53
+ }
54
+
55
+ .dark {
56
+ --background: oklch(0.145 0 0);
57
+ --foreground: oklch(0.985 0 0);
58
+ --card: oklch(0.205 0 0);
59
+ --card-foreground: oklch(0.985 0 0);
60
+ --popover: oklch(0.205 0 0);
61
+ --popover-foreground: oklch(0.985 0 0);
62
+ --primary: oklch(0.922 0 0);
63
+ --primary-foreground: oklch(0.205 0 0);
64
+ --secondary: oklch(0.269 0 0);
65
+ --secondary-foreground: oklch(0.985 0 0);
66
+ --muted: oklch(0.269 0 0);
67
+ --muted-foreground: oklch(0.708 0 0);
68
+ --accent: oklch(0.269 0 0);
69
+ --accent-foreground: oklch(0.985 0 0);
70
+ --destructive: oklch(0.704 0.191 22.216);
71
+ --border: oklch(1 0 0 / 10%);
72
+ --input: oklch(1 0 0 / 15%);
73
+ --ring: oklch(0.556 0 0);
74
+ }
75
+
76
+ @layer base {
77
+ *,
78
+ *::before,
79
+ *::after {
80
+ border-color: var(--border);
81
+ }
82
+
83
+ html,
84
+ body {
85
+ min-height: 100%;
86
+ }
87
+
88
+ body {
89
+ position: relative;
90
+ margin: 0;
91
+ background: var(--background);
92
+ color: var(--foreground);
93
+ }
94
+ }
@@ -0,0 +1,145 @@
1
+ :root {
2
+ --hq-shell-background: #fafafa;
3
+ --hq-shell-surface: #ffffff;
4
+ --hq-shell-surface-strong: #f5f5f5;
5
+ --hq-shell-surface-stronger: #e5e5e5;
6
+ --hq-shell-border: #e5e5e5;
7
+ --hq-shell-border-subtle: #f5f5f5;
8
+ --hq-shell-foreground: #171717;
9
+ --hq-shell-muted: #737373;
10
+ --hq-shell-accent: #171717;
11
+ --hq-shell-accent-strong: #262626;
12
+ --hq-shell-accent-foreground: #fafafa;
13
+ --hq-shell-focus: #a3a3a3;
14
+ --hq-shell-active: #525252;
15
+ }
16
+
17
+ .dark {
18
+ --hq-shell-background: #0a0a0a;
19
+ --hq-shell-surface: #171717;
20
+ --hq-shell-surface-strong: #262626;
21
+ --hq-shell-surface-stronger: #404040;
22
+ --hq-shell-border: #404040;
23
+ --hq-shell-border-subtle: #262626;
24
+ --hq-shell-foreground: #fafafa;
25
+ --hq-shell-muted: #a3a3a3;
26
+ --hq-shell-accent: #e5e5e5;
27
+ --hq-shell-accent-strong: #f5f5f5;
28
+ --hq-shell-accent-foreground: #171717;
29
+ --hq-shell-focus: #737373;
30
+ --hq-shell-active: #d4d4d4;
31
+ }
32
+
33
+ .workspace-shell {
34
+ --background: var(--hq-shell-background);
35
+ --foreground: var(--hq-shell-foreground);
36
+ --card: var(--hq-shell-surface);
37
+ --card-foreground: var(--hq-shell-foreground);
38
+ --popover: var(--hq-shell-surface);
39
+ --popover-foreground: var(--hq-shell-foreground);
40
+ --secondary: var(--hq-shell-surface-strong);
41
+ --secondary-foreground: var(--hq-shell-foreground);
42
+ --muted: var(--hq-shell-surface-stronger);
43
+ --muted-foreground: var(--hq-shell-muted);
44
+ --primary: var(--hq-shell-accent);
45
+ --primary-foreground: var(--hq-shell-accent-foreground);
46
+ --border: var(--hq-shell-border);
47
+ --input: var(--hq-shell-border);
48
+ --ring: var(--hq-shell-focus);
49
+ }
50
+
51
+ .workspace-brand__mark {
52
+ display: inline-flex;
53
+ flex: 0 0 auto;
54
+ align-items: center;
55
+ justify-content: center;
56
+ width: 2.1rem;
57
+ height: 2.1rem;
58
+ border-radius: 0.55rem;
59
+ color: var(--hq-shell-accent-foreground);
60
+ background: var(--hq-shell-accent);
61
+ font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
62
+ font-size: 0.75rem;
63
+ font-weight: 800;
64
+ letter-spacing: -0.08em;
65
+ }
66
+
67
+ .virtual-room-panel {
68
+ position: absolute;
69
+ top: calc(var(--workspace-topbar-offset) + 1rem);
70
+ left: 1rem;
71
+ z-index: 10;
72
+ width: min(20rem, calc(100vw - 2rem));
73
+ max-height: min(26rem, calc(100svh - var(--workspace-topbar-offset) - 6rem));
74
+ overflow: auto;
75
+ padding: 0.75rem;
76
+ border: 1px solid var(--border);
77
+ border-radius: var(--radius-lg);
78
+ background: color-mix(in srgb, var(--card) 90%, transparent);
79
+ color: var(--card-foreground);
80
+ box-shadow: 0 16px 40px rgb(0 0 0 / 0.2);
81
+ backdrop-filter: blur(18px);
82
+ pointer-events: auto;
83
+ }
84
+
85
+ .virtual-room-panel > header {
86
+ display: flex;
87
+ align-items: flex-start;
88
+ justify-content: space-between;
89
+ gap: 0.75rem;
90
+ margin-bottom: 0.65rem;
91
+ }
92
+
93
+ .virtual-room-panel h2,
94
+ .virtual-room-panel p {
95
+ margin: 0;
96
+ }
97
+
98
+ .virtual-room-panel header p {
99
+ margin-bottom: 0.15rem;
100
+ color: var(--muted-foreground);
101
+ font-size: 0.68rem;
102
+ font-weight: 700;
103
+ letter-spacing: 0.08em;
104
+ text-transform: uppercase;
105
+ }
106
+
107
+ .virtual-room-panel h2 {
108
+ font-size: 0.95rem;
109
+ }
110
+
111
+ .virtual-room-panel__rooms {
112
+ display: flex;
113
+ flex-wrap: wrap;
114
+ gap: 0.25rem;
115
+ }
116
+
117
+ .virtual-room-panel__rooms > p {
118
+ color: var(--muted-foreground);
119
+ font-size: 0.8rem;
120
+ line-height: 1.4;
121
+ }
122
+
123
+ /* Room Designer owns the viewport while it is open. Keep the global rail
124
+ * available for workspace, scene, and plugin navigation, but remove controls
125
+ * that would compete with the editor canvas. */
126
+ .workspace-scene-viewport:has([data-room-designer-active="true"])
127
+ .workspace-ui
128
+ :is(
129
+ .virtual-room-panel,
130
+ .workspace-scene-tools,
131
+ .workspace-view-switcher,
132
+ .workspace-scene-caption
133
+ ) {
134
+ display: none;
135
+ }
136
+
137
+ @media (max-width: 640px) {
138
+ .virtual-room-panel {
139
+ top: auto;
140
+ bottom: calc(var(--workspace-bottom-controls) + 4rem);
141
+ left: 0.75rem;
142
+ width: calc(100vw - 1.5rem);
143
+ max-height: 11rem;
144
+ }
145
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,10 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "rootDir": "src",
5
+ "outDir": "dist",
6
+ "declaration": true,
7
+ "jsx": "react-jsx"
8
+ },
9
+ "include": ["src"]
10
+ }