@almadar/orb 1.9.4 → 1.9.6

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@almadar/orb",
3
- "version": "1.9.4",
3
+ "version": "1.9.6",
4
4
  "description": "Orb CLI - Compile Orbital schemas to full-stack applications",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -49,10 +49,10 @@
49
49
  "node": ">=16.0.0"
50
50
  },
51
51
  "optionalDependencies": {
52
- "@almadar/orb-darwin-x64": "1.9.4",
53
- "@almadar/orb-darwin-arm64": "1.9.4",
54
- "@almadar/orb-linux-x64": "1.9.4",
55
- "@almadar/orb-linux-arm64": "1.9.4",
56
- "@almadar/orb-windows-x64": "1.9.4"
52
+ "@almadar/orb-darwin-x64": "1.9.6",
53
+ "@almadar/orb-darwin-arm64": "1.9.6",
54
+ "@almadar/orb-linux-x64": "1.9.6",
55
+ "@almadar/orb-linux-arm64": "1.9.6",
56
+ "@almadar/orb-windows-x64": "1.9.6"
57
57
  }
58
58
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@almadar/shell",
3
- "version": "2.1.3",
3
+ "version": "2.1.5",
4
4
  "private": true,
5
5
  "description": "Minimal full-stack shell template for Almadar applications",
6
6
  "packageManager": "pnpm@10.30.3",
@@ -12,8 +12,15 @@
12
12
  "prepare": "git config core.hooksPath .githooks"
13
13
  },
14
14
  "devDependencies": {
15
- "concurrently": "^8.2.0",
16
- "turbo": "^2.0.0"
15
+ "concurrently": "^9.2.1",
16
+ "turbo": "^2.8.17"
17
+ },
18
+ "pnpm": {
19
+ "overrides": {
20
+ "@tootallnate/once": "^3.0.1",
21
+ "esbuild": "^0.25.0",
22
+ "flatted": "^3.4.1"
23
+ }
17
24
  },
18
25
  "files": [
19
26
  "dist"
@@ -13,7 +13,7 @@
13
13
  "test:watch": "vitest"
14
14
  },
15
15
  "dependencies": {
16
- "@almadar/ui": "^2.6.0",
16
+ "@almadar/ui": ">=2.15.5",
17
17
  "@almadar/evaluator": "^2.0.0",
18
18
  "@almadar/patterns": "^2.0.0",
19
19
  "@almadar/core": "^2.1.0",
@@ -21,6 +21,7 @@ import {
21
21
  } from '@almadar/ui/providers';
22
22
  import { NavigationProvider } from '@almadar/ui/renderer';
23
23
  import { I18nProvider, createTranslate } from '@almadar/ui/hooks';
24
+ import defaultLocale from '@almadar/ui/locales/en.json';
24
25
 
25
26
  // {{GENERATED_I18N_IMPORT}}
26
27
  // {{GENERATED_IMPORTS}}
@@ -30,7 +31,8 @@ import { I18nProvider, createTranslate } from '@almadar/ui/hooks';
30
31
  const schema = { name: 'app', orbitals: [] }; // Placeholder - replaced by compiler
31
32
 
32
33
  // {{GENERATED_I18N_VALUE}}
33
- const i18nValue = { locale: 'en', direction: 'ltr' as const, t: createTranslate({}) };
34
+ const { $meta: defaultMeta, ...defaultMessages } = defaultLocale;
35
+ const i18nValue = { locale: defaultMeta?.locale ?? 'en', direction: (defaultMeta?.direction ?? 'ltr') as 'ltr' | 'rtl', t: createTranslate(defaultMessages) };
34
36
 
35
37
  const queryClient = new QueryClient({
36
38
  defaultOptions: {
@@ -0,0 +1,255 @@
1
+ /**
2
+ * @almadar/ui Tailwind Preset
3
+ *
4
+ * Provides the complete Almadar design token system as a Tailwind preset.
5
+ * Includes a safelist of all CSS-variable-based arbitrary classes used by
6
+ * @almadar/ui components so Tailwind generates them without scanning node_modules.
7
+ *
8
+ * Usage in tailwind.config.js:
9
+ * presets: [require('@almadar/ui/tailwind-preset')]
10
+ */
11
+
12
+ /** @type {import('tailwindcss').Config} */
13
+ module.exports = {
14
+ darkMode: 'class',
15
+ safelist: [
16
+ // Standard utilities used via dynamic className from .orb schemas
17
+ 'p-4', 'p-6', 'p-8',
18
+ 'px-4', 'px-6', 'py-4', 'py-6',
19
+ 'mx-auto',
20
+ 'w-full',
21
+ 'max-w-sm', 'max-w-md', 'max-w-lg', 'max-w-xl', 'max-w-2xl', 'max-w-3xl', 'max-w-4xl', 'max-w-5xl', 'max-w-6xl', 'max-w-7xl',
22
+ 'min-h-screen',
23
+ 'gap-1', 'gap-2', 'gap-3', 'gap-4', 'gap-6', 'gap-8',
24
+ 'grid-cols-1', 'grid-cols-2', 'grid-cols-3', 'grid-cols-4',
25
+ 'sm:grid-cols-2', 'md:grid-cols-2', 'md:grid-cols-3', 'lg:grid-cols-3', 'lg:grid-cols-4',
26
+ 'text-center', 'text-left', 'text-right',
27
+ // CSS variable-based classes from @almadar/ui components
28
+ 'accent-[var(--color-foreground)]',
29
+ 'accent-[var(--color-primary)]',
30
+ 'active:bg-[var(--color-muted)]',
31
+ 'active:bg-[var(--color-primary)]',
32
+ 'active:scale-[var(--active-scale)]',
33
+ 'active:shadow-[var(--shadow-active)]',
34
+ 'active:text-[var(--color-primary-foreground)]',
35
+ 'bg-[var(--color-accent)]',
36
+ 'bg-[var(--color-background)]',
37
+ 'bg-[var(--color-border)]',
38
+ 'bg-[var(--color-card)]',
39
+ 'bg-[var(--color-error)]',
40
+ 'bg-[var(--color-foreground)]',
41
+ 'bg-[var(--color-info)]',
42
+ 'bg-[var(--color-muted)]',
43
+ 'bg-[var(--color-muted-foreground)]',
44
+ ':bg-[var(--color-primary)]',
45
+ 'bg-[var(--color-primary)]',
46
+ 'bg-[var(--color-primary-foreground)]',
47
+ 'bg-[var(--color-secondary)]',
48
+ 'bg-[var(--color-success)]',
49
+ 'bg-[var(--color-surface)]',
50
+ 'bg-[var(--color-table-header)]',
51
+ 'bg-[var(--color-warning)]',
52
+ 'border-b-[length:var(--border-width)]',
53
+ 'border-b-[var(--color-foreground)]',
54
+ 'border-b-[var(--color-primary)]',
55
+ 'border-[length:var(--border-width)]',
56
+ 'border-[length:var(--border-width-thin)]',
57
+ 'border-l-[length:var(--border-width)]',
58
+ 'border-l-[var(--color-foreground)]',
59
+ 'border-l-[var(--color-primary)]',
60
+ 'border-r-[length:var(--border-width)]',
61
+ 'border-r-[var(--color-foreground)]',
62
+ 'border-r-[var(--color-primary)]',
63
+ 'border-t-[length:var(--border-width)]',
64
+ 'border-t-[var(--color-foreground)]',
65
+ 'border-t-[var(--color-primary)]',
66
+ 'border-[var(--color-accent)]',
67
+ ':border-[var(--color-border)]',
68
+ 'border-[var(--color-border)]',
69
+ 'border-[var(--color-card)]',
70
+ 'border-[var(--color-error)]',
71
+ 'border-[var(--color-foreground)]',
72
+ 'border-[var(--color-info)]',
73
+ ':border-[var(--color-primary)]',
74
+ 'border-[var(--color-primary)]',
75
+ 'border-[var(--color-success)]',
76
+ 'border-[var(--color-table-border)]',
77
+ 'border-[var(--color-warning)]',
78
+ 'border-x-[length:var(--border-width)]',
79
+ 'checked:bg-[var(--color-primary)]',
80
+ 'dark:bg-[var(--color-background)]',
81
+ 'dark:bg-[var(--color-card)]',
82
+ 'dark:bg-[var(--color-foreground)]',
83
+ 'dark:bg-[var(--color-muted)]',
84
+ 'dark:border-[var(--color-border)]',
85
+ 'dark:hover:bg-[var(--color-error)]',
86
+ 'dark:hover:bg-[var(--color-muted)]',
87
+ 'dark:text-[var(--color-error)]',
88
+ 'dark:text-[var(--color-foreground)]',
89
+ 'dark:text-[var(--color-muted-foreground)]',
90
+ 'disabled:bg-[var(--color-muted)]',
91
+ 'disabled:text-[var(--color-muted-foreground)]',
92
+ 'duration-[var(--transition-fast)]',
93
+ 'duration-[var(--transition-normal)]',
94
+ 'fill-[var(--color-warning)]',
95
+ 'focus:bg-[var(--color-card)]',
96
+ 'focus:bg-[var(--color-muted)]',
97
+ 'focus:border-[var(--color-error)]',
98
+ 'focus:border-[var(--color-primary)]',
99
+ 'focus:border-[var(--color-ring)]',
100
+ 'focus:ring-[length:var(--focus-ring-width)]',
101
+ 'focus:ring-offset-[length:var(--focus-ring-offset)]',
102
+ 'focus:ring-[var(--color-error)]',
103
+ 'focus:ring-[var(--color-ring)]',
104
+ 'font-[var(--font-weight-bold)]',
105
+ 'font-[var(--font-weight-medium)]',
106
+ 'from-[var(--color-muted)]',
107
+ 'group-hover:bg-[var(--color-foreground)]',
108
+ 'group-hover:text-[var(--color-foreground)]',
109
+ 'group-hover:text-[var(--color-muted-foreground)]',
110
+ 'hover:bg-[var(--color-error)]',
111
+ 'hover:bg-[var(--color-muted)]',
112
+ 'hover:bg-[var(--color-muted-foreground)]',
113
+ 'hover:bg-[var(--color-primary)]',
114
+ 'hover:bg-[var(--color-primary-hover)]',
115
+ 'hover:bg-[var(--color-secondary-hover)]',
116
+ 'hover:bg-[var(--color-success)]',
117
+ 'hover:bg-[var(--color-surface)]',
118
+ 'hover:bg-[var(--color-surface-hover)]',
119
+ 'hover:bg-[var(--color-table-row-hover)]',
120
+ 'hover:bg-[var(--color-warning)]',
121
+ 'hover:border-[var(--color-border)]',
122
+ 'hover:border-[var(--color-border-hover)]',
123
+ 'hover:border-[var(--color-muted-foreground)]',
124
+ 'hover:border-[var(--color-primary)]',
125
+ 'hover:ring-[var(--color-ring)]',
126
+ 'hover:shadow-[var(--shadow-hover)]',
127
+ 'hover:shadow-[var(--shadow-sm)]',
128
+ 'hover:text-[var(--color-error)]',
129
+ 'hover:text-[var(--color-error-foreground)]',
130
+ 'hover:text-[var(--color-foreground)]',
131
+ 'hover:text-[var(--color-primary)]',
132
+ 'hover:text-[var(--color-success-foreground)]',
133
+ 'hover:text-[var(--color-warning-foreground)]',
134
+ 'peer-focus:ring-[var(--color-error)]',
135
+ 'peer-focus:ring-[var(--color-ring)]',
136
+ 'placeholder:text-[var(--color-muted-foreground)]',
137
+ 'placeholder:text-[var(--color-placeholder)]',
138
+ 'ring-[var(--color-accent)]',
139
+ 'ring-[var(--color-error)]',
140
+ 'ring-[var(--color-info)]',
141
+ 'ring-[var(--color-muted-foreground)]',
142
+ 'ring-[var(--color-primary)]',
143
+ 'ring-[var(--color-success)]',
144
+ 'ring-[var(--color-warning)]',
145
+ 'rounded-l-[var(--radius-sm)]',
146
+ 'rounded-r-[var(--radius-sm)]',
147
+ 'rounded-t-[var(--radius-lg)]',
148
+ 'rounded-t-[var(--radius-sm)]',
149
+ 'rounded-[var(--radius-full)]',
150
+ 'rounded-[var(--radius-lg)]',
151
+ 'rounded-[var(--radius-md)]',
152
+ 'rounded-[var(--radius-sm)]',
153
+ 'rounded-[var(--radius-xl)]',
154
+ 'shadow-[var(--shadow-lg)]',
155
+ 'shadow-[var(--shadow-main)]',
156
+ 'shadow-[var(--shadow-sm)]',
157
+ 'text-[var(--color-accent)]',
158
+ 'text-[var(--color-accent-foreground)]',
159
+ 'text-[var(--color-background)]',
160
+ 'text-[var(--color-card-foreground)]',
161
+ 'text-[var(--color-error)]',
162
+ 'text-[var(--color-error-foreground)]',
163
+ 'text-[var(--color-foreground)]',
164
+ 'text-[var(--color-info)]',
165
+ 'text-[var(--color-info-foreground)]',
166
+ 'text-[var(--color-muted)]',
167
+ 'text-[var(--color-muted-foreground)]',
168
+ 'text-[var(--color-primary)]',
169
+ ':text-[var(--color-primary-foreground)]',
170
+ 'text-[var(--color-primary-foreground)]',
171
+ 'text-[var(--color-secondary-foreground)]',
172
+ 'text-[var(--color-success)]',
173
+ 'text-[var(--color-warning)]',
174
+ 'text-[var(--color-warning-foreground)]',
175
+ 'to-[var(--color-accent)]',
176
+ ],
177
+ theme: {
178
+ fontFamily: {
179
+ sans: ['var(--font-family)', 'ui-sans-serif', 'system-ui', 'sans-serif'],
180
+ mono: ['var(--font-family-mono, ui-monospace)', 'SFMono-Regular', 'Menlo', 'Monaco', 'Consolas', 'monospace'],
181
+ },
182
+ extend: {
183
+ colors: {
184
+ primary: {
185
+ DEFAULT: 'var(--color-primary)',
186
+ foreground: 'var(--color-primary-foreground)',
187
+ hover: 'var(--color-primary-hover)',
188
+ },
189
+ secondary: {
190
+ DEFAULT: 'var(--color-secondary)',
191
+ foreground: 'var(--color-secondary-foreground)',
192
+ hover: 'var(--color-secondary-hover)',
193
+ },
194
+ muted: {
195
+ DEFAULT: 'var(--color-muted)',
196
+ foreground: 'var(--color-muted-foreground)',
197
+ },
198
+ accent: {
199
+ DEFAULT: 'var(--color-accent)',
200
+ foreground: 'var(--color-accent-foreground)',
201
+ },
202
+ background: 'var(--color-background)',
203
+ foreground: 'var(--color-foreground)',
204
+ card: {
205
+ DEFAULT: 'var(--color-card)',
206
+ foreground: 'var(--color-card-foreground)',
207
+ },
208
+ surface: 'var(--color-surface)',
209
+ border: 'var(--color-border)',
210
+ input: 'var(--color-input)',
211
+ ring: 'var(--color-ring)',
212
+ error: {
213
+ DEFAULT: 'var(--color-error)',
214
+ foreground: 'var(--color-error-foreground)',
215
+ },
216
+ success: {
217
+ DEFAULT: 'var(--color-success)',
218
+ foreground: 'var(--color-success-foreground)',
219
+ },
220
+ warning: {
221
+ DEFAULT: 'var(--color-warning)',
222
+ foreground: 'var(--color-warning-foreground)',
223
+ },
224
+ info: {
225
+ DEFAULT: 'var(--color-info)',
226
+ foreground: 'var(--color-info-foreground)',
227
+ },
228
+ },
229
+ borderRadius: {
230
+ none: 'var(--radius-none, 0)',
231
+ sm: 'var(--radius-sm)',
232
+ md: 'var(--radius-md)',
233
+ lg: 'var(--radius-lg)',
234
+ xl: 'var(--radius-xl)',
235
+ full: 'var(--radius-full)',
236
+ },
237
+ boxShadow: {
238
+ sm: 'var(--shadow-sm)',
239
+ DEFAULT: 'var(--shadow-main)',
240
+ lg: 'var(--shadow-lg)',
241
+ inner: 'var(--shadow-inner)',
242
+ },
243
+ fontWeight: {
244
+ normal: 'var(--font-weight-normal, 400)',
245
+ medium: 'var(--font-weight-medium, 500)',
246
+ bold: 'var(--font-weight-bold, 600)',
247
+ },
248
+ transitionDuration: {
249
+ fast: 'var(--transition-fast, 150ms)',
250
+ normal: 'var(--transition-normal, 250ms)',
251
+ slow: 'var(--transition-slow, 400ms)',
252
+ },
253
+ },
254
+ },
255
+ };
@@ -1,9 +1,12 @@
1
+ import { createRequire } from 'module';
2
+ const require = createRequire(import.meta.url);
3
+
1
4
  /** @type {import('tailwindcss').Config} */
2
5
  export default {
6
+ presets: [require('./tailwind-preset.cjs')],
3
7
  content: [
4
8
  "./index.html",
5
9
  "./src/**/*.{js,ts,jsx,tsx}",
6
- "../../node_modules/@almadar/ui/**/*.{js,ts,jsx,tsx}",
7
10
  ],
8
11
  theme: {
9
12
  extend: {},