trix-ui 0.2.13 → 0.3.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 (241) hide show
  1. package/dist/commands/add/analysis.d.ts +4 -4
  2. package/dist/commands/add/analysis.js +56 -56
  3. package/dist/commands/add/command.d.ts +2 -2
  4. package/dist/commands/add/command.js +205 -202
  5. package/dist/commands/add/command.js.map +1 -1
  6. package/dist/commands/add/config.d.ts +2 -2
  7. package/dist/commands/add/config.js +11 -11
  8. package/dist/commands/add/install.d.ts +27 -27
  9. package/dist/commands/add/install.js +80 -80
  10. package/dist/commands/add/package-manager.d.ts +1 -1
  11. package/dist/commands/add/package-manager.js +4 -4
  12. package/dist/commands/add/project-files.d.ts +2 -2
  13. package/dist/commands/add/project-files.js +17 -17
  14. package/dist/commands/add/prompts.d.ts +3 -3
  15. package/dist/commands/add/prompts.js +28 -28
  16. package/dist/commands/add/registry.d.ts +4 -4
  17. package/dist/commands/add/registry.js +6 -6
  18. package/dist/commands/add/types.d.ts +33 -33
  19. package/dist/commands/add/types.js +1 -1
  20. package/dist/commands/add/ui.d.ts +4 -4
  21. package/dist/commands/add/ui.js +55 -55
  22. package/dist/commands/add/validation.d.ts +3 -3
  23. package/dist/commands/add/validation.js +30 -30
  24. package/dist/commands/add-collection.d.ts +1 -1
  25. package/dist/commands/add-collection.js +1 -1
  26. package/dist/commands/add-composite.d.ts +2 -2
  27. package/dist/commands/add-composite.js +205 -201
  28. package/dist/commands/add-composite.js.map +1 -1
  29. package/dist/commands/add-section.d.ts +2 -2
  30. package/dist/commands/add-section.js +205 -201
  31. package/dist/commands/add-section.js.map +1 -1
  32. package/dist/commands/add-wrapper.d.ts +2 -2
  33. package/dist/commands/add-wrapper.js +205 -201
  34. package/dist/commands/add-wrapper.js.map +1 -1
  35. package/dist/commands/add.d.ts +1 -1
  36. package/dist/commands/add.js +1 -1
  37. package/dist/commands/build.d.ts +2 -2
  38. package/dist/commands/build.js +104 -104
  39. package/dist/commands/build.js.map +1 -1
  40. package/dist/commands/doctor.d.ts +2 -2
  41. package/dist/commands/doctor.js +67 -67
  42. package/dist/commands/doctor.js.map +1 -1
  43. package/dist/commands/init/command.d.ts +8 -2
  44. package/dist/commands/init/command.js +186 -114
  45. package/dist/commands/init/command.js.map +1 -1
  46. package/dist/commands/init/config.d.ts +9 -2
  47. package/dist/commands/init/config.js +45 -25
  48. package/dist/commands/init/config.js.map +1 -1
  49. package/dist/commands/init/constants.d.ts +3 -3
  50. package/dist/commands/init/constants.js +105 -105
  51. package/dist/commands/init/dependencies.d.ts +22 -5
  52. package/dist/commands/init/dependencies.js +86 -52
  53. package/dist/commands/init/dependencies.js.map +1 -1
  54. package/dist/commands/init/filesystem.d.ts +7 -1
  55. package/dist/commands/init/filesystem.js +16 -10
  56. package/dist/commands/init/filesystem.js.map +1 -1
  57. package/dist/commands/init/lockfile.d.ts +1 -1
  58. package/dist/commands/init/lockfile.js +1 -1
  59. package/dist/commands/init/package-json.d.ts +17 -6
  60. package/dist/commands/init/package-json.js +28 -18
  61. package/dist/commands/init/package-json.js.map +1 -1
  62. package/dist/commands/init/project.d.ts +15 -3
  63. package/dist/commands/init/project.js +120 -97
  64. package/dist/commands/init/project.js.map +1 -1
  65. package/dist/commands/init/tailwind.d.ts +14 -3
  66. package/dist/commands/init/tailwind.js +141 -33
  67. package/dist/commands/init/tailwind.js.map +1 -1
  68. package/dist/commands/init/templates.d.ts +15 -3
  69. package/dist/commands/init/templates.js +27 -15
  70. package/dist/commands/init/templates.js.map +1 -1
  71. package/dist/commands/init/tsconfig.d.ts +14 -2
  72. package/dist/commands/init/tsconfig.js +561 -273
  73. package/dist/commands/init/tsconfig.js.map +1 -1
  74. package/dist/commands/init/types.d.ts +34 -33
  75. package/dist/commands/init/types.js +1 -1
  76. package/dist/commands/init/ui.d.ts +12 -3
  77. package/dist/commands/init/ui.js +45 -33
  78. package/dist/commands/init/ui.js.map +1 -1
  79. package/dist/commands/init/vite.d.ts +1 -1
  80. package/dist/commands/init/vite.js +17 -27
  81. package/dist/commands/init/vite.js.map +1 -1
  82. package/dist/commands/init.d.ts +1 -1
  83. package/dist/commands/init.js +1 -1
  84. package/dist/commands/list.d.ts +2 -2
  85. package/dist/commands/list.js +69 -62
  86. package/dist/commands/list.js.map +1 -1
  87. package/dist/commands/remove.d.ts +2 -2
  88. package/dist/commands/remove.js +95 -93
  89. package/dist/commands/remove.js.map +1 -1
  90. package/dist/commands/shared/add-collection.d.ts +50 -50
  91. package/dist/commands/shared/add-collection.js +206 -206
  92. package/dist/commands/shared/list-entries.d.ts +6 -6
  93. package/dist/commands/shared/list-entries.js +12 -12
  94. package/dist/commands/shared/name-utils.d.ts +1 -1
  95. package/dist/commands/shared/name-utils.js +13 -13
  96. package/dist/commands/shared/remove-entries.d.ts +16 -16
  97. package/dist/commands/shared/remove-entries.js +41 -41
  98. package/dist/icons/index.d.ts +1 -1
  99. package/dist/icons/index.js +1 -1
  100. package/dist/icons/libraries.d.ts +37 -37
  101. package/dist/icons/libraries.js +34 -34
  102. package/dist/index.d.ts +1 -2
  103. package/dist/index.js +29 -30
  104. package/dist/index.js.map +1 -1
  105. package/dist/lib/config.d.ts +45 -45
  106. package/dist/lib/config.js +97 -97
  107. package/dist/lib/fs.d.ts +82 -76
  108. package/dist/lib/fs.js +299 -302
  109. package/dist/lib/fs.js.map +1 -1
  110. package/dist/lib/highlighter.d.ts +6 -6
  111. package/dist/lib/highlighter.js +7 -7
  112. package/dist/lib/install.d.ts +19 -19
  113. package/dist/lib/install.js +101 -55
  114. package/dist/lib/install.js.map +1 -1
  115. package/dist/lib/lockfile.d.ts +63 -63
  116. package/dist/lib/lockfile.js +179 -173
  117. package/dist/lib/lockfile.js.map +1 -1
  118. package/dist/lib/logger.d.ts +8 -8
  119. package/dist/lib/logger.js +41 -41
  120. package/dist/lib/logger.js.map +1 -1
  121. package/dist/lib/paths.d.ts +14 -14
  122. package/dist/lib/paths.js +41 -31
  123. package/dist/lib/paths.js.map +1 -1
  124. package/dist/lib/registry.d.ts +35 -35
  125. package/dist/lib/registry.js +180 -180
  126. package/dist/schema/index.d.ts +1128 -1128
  127. package/dist/schema/index.js +237 -238
  128. package/dist/schema/index.js.map +1 -1
  129. package/dist/styles/create-style-map.d.ts +4 -4
  130. package/dist/styles/create-style-map.js +68 -68
  131. package/dist/styles/transform-style-map.d.ts +3 -3
  132. package/dist/styles/transform-style-map.js +428 -428
  133. package/dist/styles/transform.d.ts +10 -10
  134. package/dist/styles/transform.js +15 -15
  135. package/dist/utils/index.d.ts +6 -6
  136. package/dist/utils/index.js +5 -5
  137. package/dist/utils/transformers/transform-icons.d.ts +2 -2
  138. package/dist/utils/transformers/transform-icons.js +164 -164
  139. package/dist/utils/transformers/transform-menu.d.ts +2 -2
  140. package/dist/utils/transformers/transform-menu.js +39 -39
  141. package/dist/utils/transformers/transform-render.d.ts +2 -2
  142. package/dist/utils/transformers/transform-render.js +97 -97
  143. package/dist/utils/transformers/types.d.ts +14 -14
  144. package/dist/utils/transformers/types.js +1 -1
  145. package/package.json +3 -2
  146. package/dist/__tests__/contracts/registry.test.d.ts +0 -1
  147. package/dist/__tests__/contracts/registry.test.js +0 -42
  148. package/dist/__tests__/contracts/registry.test.js.map +0 -1
  149. package/dist/__tests__/e2e/cli.test.d.ts +0 -1
  150. package/dist/__tests__/e2e/cli.test.js +0 -67
  151. package/dist/__tests__/e2e/cli.test.js.map +0 -1
  152. package/dist/__tests__/helpers/fs.d.ts +0 -5
  153. package/dist/__tests__/helpers/fs.js +0 -26
  154. package/dist/__tests__/helpers/fs.js.map +0 -1
  155. package/dist/__tests__/integration/commands.integration.test.d.ts +0 -1
  156. package/dist/__tests__/integration/commands.integration.test.js +0 -184
  157. package/dist/__tests__/integration/commands.integration.test.js.map +0 -1
  158. package/dist/commands/__tests__/add-composite.test.d.ts +0 -2
  159. package/dist/commands/__tests__/add-composite.test.js +0 -171
  160. package/dist/commands/__tests__/add-composite.test.js.map +0 -1
  161. package/dist/commands/__tests__/add-entry.mocks.d.ts +0 -23
  162. package/dist/commands/__tests__/add-entry.mocks.js +0 -64
  163. package/dist/commands/__tests__/add-entry.mocks.js.map +0 -1
  164. package/dist/commands/__tests__/add-section.test.d.ts +0 -2
  165. package/dist/commands/__tests__/add-section.test.js +0 -191
  166. package/dist/commands/__tests__/add-section.test.js.map +0 -1
  167. package/dist/commands/__tests__/add-wrapper.test.d.ts +0 -2
  168. package/dist/commands/__tests__/add-wrapper.test.js +0 -171
  169. package/dist/commands/__tests__/add-wrapper.test.js.map +0 -1
  170. package/dist/commands/__tests__/cli-mocks.d.ts +0 -1
  171. package/dist/commands/__tests__/cli-mocks.js +0 -24
  172. package/dist/commands/__tests__/cli-mocks.js.map +0 -1
  173. package/dist/commands/__tests__/doctor.mocks.d.ts +0 -6
  174. package/dist/commands/__tests__/doctor.mocks.js +0 -20
  175. package/dist/commands/__tests__/doctor.mocks.js.map +0 -1
  176. package/dist/commands/__tests__/doctor.test.d.ts +0 -2
  177. package/dist/commands/__tests__/doctor.test.js +0 -80
  178. package/dist/commands/__tests__/doctor.test.js.map +0 -1
  179. package/dist/commands/__tests__/list.mocks.d.ts +0 -8
  180. package/dist/commands/__tests__/list.mocks.js +0 -20
  181. package/dist/commands/__tests__/list.mocks.js.map +0 -1
  182. package/dist/commands/__tests__/list.test.d.ts +0 -2
  183. package/dist/commands/__tests__/list.test.js +0 -60
  184. package/dist/commands/__tests__/list.test.js.map +0 -1
  185. package/dist/commands/__tests__/remove.mocks.d.ts +0 -9
  186. package/dist/commands/__tests__/remove.mocks.js +0 -26
  187. package/dist/commands/__tests__/remove.mocks.js.map +0 -1
  188. package/dist/commands/__tests__/remove.test.d.ts +0 -2
  189. package/dist/commands/__tests__/remove.test.js +0 -116
  190. package/dist/commands/__tests__/remove.test.js.map +0 -1
  191. package/dist/commands/add/__tests__/__mocks__/cli-mocks.d.ts +0 -1
  192. package/dist/commands/add/__tests__/__mocks__/cli-mocks.js +0 -21
  193. package/dist/commands/add/__tests__/__mocks__/cli-mocks.js.map +0 -1
  194. package/dist/commands/add/__tests__/add.mocks.d.ts +0 -19
  195. package/dist/commands/add/__tests__/add.mocks.js +0 -60
  196. package/dist/commands/add/__tests__/add.mocks.js.map +0 -1
  197. package/dist/commands/add/__tests__/add.test.d.ts +0 -2
  198. package/dist/commands/add/__tests__/add.test.js +0 -141
  199. package/dist/commands/add/__tests__/add.test.js.map +0 -1
  200. package/dist/commands/init/__tests__/init.mocks.d.ts +0 -24
  201. package/dist/commands/init/__tests__/init.mocks.js +0 -84
  202. package/dist/commands/init/__tests__/init.mocks.js.map +0 -1
  203. package/dist/commands/init/__tests__/init.test.d.ts +0 -2
  204. package/dist/commands/init/__tests__/init.test.js +0 -283
  205. package/dist/commands/init/__tests__/init.test.js.map +0 -1
  206. package/dist/commands/init/__tests__/tailwind.test.d.ts +0 -1
  207. package/dist/commands/init/__tests__/tailwind.test.js +0 -56
  208. package/dist/commands/init/__tests__/tailwind.test.js.map +0 -1
  209. package/dist/commands/init/__tests__/tsconfig.test.d.ts +0 -1
  210. package/dist/commands/init/__tests__/tsconfig.test.js +0 -108
  211. package/dist/commands/init/__tests__/tsconfig.test.js.map +0 -1
  212. package/dist/commands/init/__tests__/vite.test.d.ts +0 -1
  213. package/dist/commands/init/__tests__/vite.test.js +0 -66
  214. package/dist/commands/init/__tests__/vite.test.js.map +0 -1
  215. package/dist/commands/list-sections.d.ts +0 -2
  216. package/dist/commands/list-sections.js +0 -20
  217. package/dist/commands/list-sections.js.map +0 -1
  218. package/dist/commands/list-wrappers.d.ts +0 -2
  219. package/dist/commands/list-wrappers.js +0 -20
  220. package/dist/commands/list-wrappers.js.map +0 -1
  221. package/dist/commands/remove-section.d.ts +0 -2
  222. package/dist/commands/remove-section.js +0 -37
  223. package/dist/commands/remove-section.js.map +0 -1
  224. package/dist/commands/remove-wrapper.d.ts +0 -2
  225. package/dist/commands/remove-wrapper.js +0 -37
  226. package/dist/commands/remove-wrapper.js.map +0 -1
  227. package/dist/lib/__tests__/config.test.d.ts +0 -1
  228. package/dist/lib/__tests__/config.test.js +0 -49
  229. package/dist/lib/__tests__/config.test.js.map +0 -1
  230. package/dist/lib/__tests__/install.test.d.ts +0 -1
  231. package/dist/lib/__tests__/install.test.js +0 -149
  232. package/dist/lib/__tests__/install.test.js.map +0 -1
  233. package/dist/lib/__tests__/lockfile.test.d.ts +0 -1
  234. package/dist/lib/__tests__/lockfile.test.js +0 -89
  235. package/dist/lib/__tests__/lockfile.test.js.map +0 -1
  236. package/dist/lib/__tests__/paths.test.d.ts +0 -1
  237. package/dist/lib/__tests__/paths.test.js +0 -39
  238. package/dist/lib/__tests__/paths.test.js.map +0 -1
  239. package/dist/lib/__tests__/registry.test.d.ts +0 -1
  240. package/dist/lib/__tests__/registry.test.js +0 -76
  241. package/dist/lib/__tests__/registry.test.js.map +0 -1
@@ -1,106 +1,106 @@
1
- export const TAILWIND_CONTENT_PATHS = {
2
- next: [
3
- "./app/**/*.{js,ts,jsx,tsx,mdx}",
4
- "./pages/**/*.{js,ts,jsx,tsx,mdx}",
5
- "./components/**/*.{js,ts,jsx,tsx,mdx}",
6
- "./src/**/*.{js,ts,jsx,tsx,mdx}"
7
- ],
8
- react: ["./src/**/*.{js,ts,jsx,tsx}", "./index.html"],
9
- vite: ["./src/**/*.{js,ts,jsx,tsx}", "./index.html"],
10
- unknown: ["./src/**/*.{js,ts,jsx,tsx}", "./index.html"]
11
- };
12
- export const BASE_CSS_VARS = `@import "tailwindcss";
13
-
14
- @custom-variant dark (&:is(.dark *));
15
-
16
- @theme inline {
17
- --color-background: var(--background);
18
- --color-foreground: var(--foreground);
19
- --font-sans: var(--font-geist-sans);
20
- --font-mono: var(--font-geist-mono);
21
- --color-sidebar-ring: var(--sidebar-ring);
22
- --color-sidebar-border: var(--sidebar-border);
23
- --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
24
- --color-sidebar-accent: var(--sidebar-accent);
25
- --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
26
- --color-sidebar-primary: var(--sidebar-primary);
27
- --color-sidebar-foreground: var(--sidebar-foreground);
28
- --color-sidebar: var(--sidebar);
29
- --color-ring: var(--ring);
30
- --color-input: var(--input);
31
- --color-border: var(--border);
32
- --color-destructive: var(--destructive);
33
- --color-accent-foreground: var(--accent-foreground);
34
- --color-accent: var(--accent);
35
- --color-muted-foreground: var(--muted-foreground);
36
- --color-muted: var(--muted);
37
- --color-secondary-foreground: var(--secondary-foreground);
38
- --color-secondary: var(--secondary);
39
- --color-primary-foreground: var(--primary-foreground);
40
- --color-primary: var(--primary);
41
- --color-popover-foreground: var(--popover-foreground);
42
- --color-popover: var(--popover);
43
- --color-card-foreground: var(--card-foreground);
44
- --color-card: var(--card);
45
- --radius-sm: calc(var(--radius) - 4px);
46
- --radius-md: calc(var(--radius) - 2px);
47
- --radius-lg: var(--radius);
48
- --radius-xl: calc(var(--radius) + 4px);
49
- --radius-2xl: calc(var(--radius) + 8px);
50
- --radius-3xl: calc(var(--radius) + 12px);
51
- --radius-4xl: calc(var(--radius) + 16px);
52
- }
53
-
54
- :root {
55
- --radius: 0.625rem;
56
- --background: oklch(1 0 0);
57
- --foreground: oklch(0.145 0 0);
58
- --card: oklch(1 0 0);
59
- --card-foreground: oklch(0.145 0 0);
60
- --popover: oklch(1 0 0);
61
- --popover-foreground: oklch(0.145 0 0);
62
- --primary: oklch(54.61% 0.215 262.88);
63
- --primary-foreground: oklch(0.985 0 0);
64
- --secondary: oklch(0.97 0 0);
65
- --secondary-foreground: oklch(0.205 0 0);
66
- --muted: oklch(0.97 0 0);
67
- --muted-foreground: oklch(0.556 0 0);
68
- --accent: oklch(0.97 0 0);
69
- --accent-foreground: oklch(0.205 0 0);
70
- --destructive: oklch(0.577 0.245 27.325);
71
- --border: oklch(0.922 0 0);
72
- --input: oklch(0.922 0 0);
73
- --ring: oklch(0.708 0 0);
74
- }
75
-
76
- .dark {
77
- --background: oklch(0.145 0 0);
78
- --foreground: oklch(0.985 0 0);
79
- --card: oklch(0.205 0 0);
80
- --card-foreground: oklch(0.985 0 0);
81
- --popover: oklch(0.205 0 0);
82
- --popover-foreground: oklch(0.985 0 0);
83
- --primary: oklch(54.61% 0.215 262.88);
84
- --primary-foreground: oklch(0.205 0 0);
85
- --secondary: oklch(0.269 0 0);
86
- --secondary-foreground: oklch(0.985 0 0);
87
- --muted: oklch(0.269 0 0);
88
- --muted-foreground: oklch(0.708 0 0);
89
- --accent: oklch(0.269 0 0);
90
- --accent-foreground: oklch(0.985 0 0);
91
- --destructive: oklch(0.704 0.191 22.216);
92
- --border: oklch(1 0 0 / 10%);
93
- --input: oklch(1 0 0 / 15%);
94
- --ring: oklch(0.556 0 0);
95
- }
96
-
97
- @layer base {
98
- * {
99
- @apply border-border outline-ring/50;
100
- }
101
- body {
102
- @apply bg-background text-foreground;
103
- }
104
- }
105
- `;
1
+ export const TAILWIND_CONTENT_PATHS = {
2
+ next: [
3
+ "./app/**/*.{js,ts,jsx,tsx,mdx}",
4
+ "./pages/**/*.{js,ts,jsx,tsx,mdx}",
5
+ "./components/**/*.{js,ts,jsx,tsx,mdx}",
6
+ "./src/**/*.{js,ts,jsx,tsx,mdx}"
7
+ ],
8
+ react: ["./src/**/*.{js,ts,jsx,tsx}", "./index.html"],
9
+ vite: ["./src/**/*.{js,ts,jsx,tsx}", "./index.html"],
10
+ unknown: ["./src/**/*.{js,ts,jsx,tsx}", "./index.html"]
11
+ };
12
+ export const BASE_CSS_VARS = `@import "tailwindcss";
13
+
14
+ @custom-variant dark (&:is(.dark *));
15
+
16
+ @theme inline {
17
+ --color-background: var(--background);
18
+ --color-foreground: var(--foreground);
19
+ --font-sans: var(--font-geist-sans);
20
+ --font-mono: var(--font-geist-mono);
21
+ --color-sidebar-ring: var(--sidebar-ring);
22
+ --color-sidebar-border: var(--sidebar-border);
23
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
24
+ --color-sidebar-accent: var(--sidebar-accent);
25
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
26
+ --color-sidebar-primary: var(--sidebar-primary);
27
+ --color-sidebar-foreground: var(--sidebar-foreground);
28
+ --color-sidebar: var(--sidebar);
29
+ --color-ring: var(--ring);
30
+ --color-input: var(--input);
31
+ --color-border: var(--border);
32
+ --color-destructive: var(--destructive);
33
+ --color-accent-foreground: var(--accent-foreground);
34
+ --color-accent: var(--accent);
35
+ --color-muted-foreground: var(--muted-foreground);
36
+ --color-muted: var(--muted);
37
+ --color-secondary-foreground: var(--secondary-foreground);
38
+ --color-secondary: var(--secondary);
39
+ --color-primary-foreground: var(--primary-foreground);
40
+ --color-primary: var(--primary);
41
+ --color-popover-foreground: var(--popover-foreground);
42
+ --color-popover: var(--popover);
43
+ --color-card-foreground: var(--card-foreground);
44
+ --color-card: var(--card);
45
+ --radius-sm: calc(var(--radius) - 4px);
46
+ --radius-md: calc(var(--radius) - 2px);
47
+ --radius-lg: var(--radius);
48
+ --radius-xl: calc(var(--radius) + 4px);
49
+ --radius-2xl: calc(var(--radius) + 8px);
50
+ --radius-3xl: calc(var(--radius) + 12px);
51
+ --radius-4xl: calc(var(--radius) + 16px);
52
+ }
53
+
54
+ :root {
55
+ --radius: 0.625rem;
56
+ --background: oklch(1 0 0);
57
+ --foreground: oklch(0.145 0 0);
58
+ --card: oklch(1 0 0);
59
+ --card-foreground: oklch(0.145 0 0);
60
+ --popover: oklch(1 0 0);
61
+ --popover-foreground: oklch(0.145 0 0);
62
+ --primary: oklch(54.61% 0.215 262.88);
63
+ --primary-foreground: oklch(0.985 0 0);
64
+ --secondary: oklch(0.97 0 0);
65
+ --secondary-foreground: oklch(0.205 0 0);
66
+ --muted: oklch(0.97 0 0);
67
+ --muted-foreground: oklch(0.556 0 0);
68
+ --accent: oklch(0.97 0 0);
69
+ --accent-foreground: oklch(0.205 0 0);
70
+ --destructive: oklch(0.577 0.245 27.325);
71
+ --border: oklch(0.922 0 0);
72
+ --input: oklch(0.922 0 0);
73
+ --ring: oklch(0.708 0 0);
74
+ }
75
+
76
+ .dark {
77
+ --background: oklch(0.145 0 0);
78
+ --foreground: oklch(0.985 0 0);
79
+ --card: oklch(0.205 0 0);
80
+ --card-foreground: oklch(0.985 0 0);
81
+ --popover: oklch(0.205 0 0);
82
+ --popover-foreground: oklch(0.985 0 0);
83
+ --primary: oklch(54.61% 0.215 262.88);
84
+ --primary-foreground: oklch(0.205 0 0);
85
+ --secondary: oklch(0.269 0 0);
86
+ --secondary-foreground: oklch(0.985 0 0);
87
+ --muted: oklch(0.269 0 0);
88
+ --muted-foreground: oklch(0.708 0 0);
89
+ --accent: oklch(0.269 0 0);
90
+ --accent-foreground: oklch(0.985 0 0);
91
+ --destructive: oklch(0.704 0.191 22.216);
92
+ --border: oklch(1 0 0 / 10%);
93
+ --input: oklch(1 0 0 / 15%);
94
+ --ring: oklch(0.556 0 0);
95
+ }
96
+
97
+ @layer base {
98
+ * {
99
+ @apply border-border outline-ring/50;
100
+ }
101
+ body {
102
+ @apply bg-background text-foreground;
103
+ }
104
+ }
105
+ `;
106
106
  //# sourceMappingURL=constants.js.map
@@ -1,5 +1,22 @@
1
- import type { Ora } from "ora";
2
- import type { DependencyInstallation, ProjectInfo } from "./types.js";
3
- export declare function checkDependencies(cwd: string, projectInfo: ProjectInfo): Promise<DependencyInstallation>;
4
- export declare function confirmInstallation(dependencies: DependencyInstallation): Promise<boolean>;
5
- export declare function installDependencies(cwd: string, projectInfo: ProjectInfo, dependencies: DependencyInstallation, spinner: Ora | null): Promise<void>;
1
+ import type { Ora } from "ora";
2
+ import type { DependencyInstallation, ProjectInfo } from "./types.js";
3
+ /**
4
+ * Determine which packages init expects and which are missing from the project.
5
+ *
6
+ * The list is intentionally small and framework-aware (e.g. Vite gets
7
+ * `vite-tsconfig-paths`; projects without Tailwind get Tailwind + PostCSS).
8
+ */
9
+ export declare function checkDependencies(cwd: string, projectInfo: ProjectInfo): Promise<DependencyInstallation>;
10
+ /**
11
+ * Ask the user whether missing dependencies should be installed.
12
+ *
13
+ * `--yes` callers should skip this and install automatically.
14
+ */
15
+ export declare function confirmInstallation(dependencies: DependencyInstallation): Promise<boolean>;
16
+ /**
17
+ * Install missing runtime and dev dependencies with the project's package manager.
18
+ *
19
+ * Uses the shared spinner (when provided) for consistent CLI output. Throws if
20
+ * the install command fails so the caller can exit with a clear status code.
21
+ */
22
+ export declare function installDependencies(cwd: string, projectInfo: ProjectInfo, dependencies: DependencyInstallation, spinner: Ora | null): Promise<void>;
@@ -1,53 +1,87 @@
1
- import { execa } from "execa";
2
- import prompts from "prompts";
3
- import { collectDependencies, readPackageJson } from "./package-json.js";
4
- export async function checkDependencies(cwd, projectInfo) {
5
- const packageJson = await readPackageJson(cwd);
6
- const allDeps = collectDependencies(packageJson);
7
- const required = [];
8
- const devDependencies = projectInfo.tailwind
9
- ? []
10
- : ["tailwindcss", "@tailwindcss/postcss"];
11
- const missing = [
12
- ...required.filter((dep) => !allDeps[dep]),
13
- ...devDependencies.filter((dep) => !allDeps[dep])
14
- ];
15
- return {
16
- required,
17
- devDependencies,
18
- missing
19
- };
20
- }
21
- export async function confirmInstallation(dependencies) {
22
- const { shouldInstall } = await prompts({
23
- type: "confirm",
24
- name: "shouldInstall",
25
- message: `Install missing dependencies? (${dependencies.missing.join(", ")})`,
26
- initial: true
27
- });
28
- return shouldInstall;
29
- }
30
- export async function installDependencies(cwd, projectInfo, dependencies, spinner) {
31
- const requiredMissing = dependencies.missing.filter((dep) => dependencies.required.includes(dep));
32
- const devMissing = dependencies.missing.filter((dep) => dependencies.devDependencies.includes(dep));
33
- const pm = projectInfo.packageManager;
34
- const installCmd = pm === "npm" ? "install" : "add";
35
- try {
36
- if (requiredMissing.length > 0) {
37
- spinner?.start(`Installing dependencies with ${pm}...`);
38
- await execa(pm, [installCmd, ...requiredMissing], { cwd });
39
- spinner?.succeed("Dependencies installed");
40
- }
41
- if (devMissing.length > 0) {
42
- spinner?.start(`Installing dev dependencies with ${pm}...`);
43
- const devFlag = pm === "npm" ? "--save-dev" : "-D";
44
- await execa(pm, [installCmd, devFlag, ...devMissing], { cwd });
45
- spinner?.succeed("Dev dependencies installed");
46
- }
47
- }
48
- catch (error) {
49
- spinner?.fail("Failed to install dependencies");
50
- throw new Error(`Failed to install dependencies: ${error.message}`);
51
- }
52
- }
1
+ import { execa } from "execa";
2
+ import prompts from "prompts";
3
+ import { collectDependencies, readPackageJson } from "./package-json.js";
4
+ function parseMajorVersion(value) {
5
+ const match = value.match(/(\d+)/);
6
+ if (!match) {
7
+ return null;
8
+ }
9
+ const parsed = Number.parseInt(match[1], 10);
10
+ return Number.isFinite(parsed) ? parsed : null;
11
+ }
12
+ /**
13
+ * Determine which packages init expects and which are missing from the project.
14
+ *
15
+ * The list is intentionally small and framework-aware (e.g. Vite gets
16
+ * `vite-tsconfig-paths`; projects without Tailwind get Tailwind + PostCSS).
17
+ */
18
+ export async function checkDependencies(cwd, projectInfo) {
19
+ const packageJson = await readPackageJson(cwd);
20
+ const allDeps = collectDependencies(packageJson);
21
+ const required = ["clsx", "tailwind-merge"];
22
+ const devDependencies = projectInfo.tailwind
23
+ ? []
24
+ : ["tailwindcss", "@tailwindcss/postcss"];
25
+ if (projectInfo.framework === "vite") {
26
+ devDependencies.push("vite-tsconfig-paths");
27
+ }
28
+ const missing = [
29
+ ...required.filter((dep) => !allDeps[dep]),
30
+ ...devDependencies.filter((dep) => !allDeps[dep])
31
+ ];
32
+ const tailwindRange = packageJson.devDependencies?.tailwindcss ?? packageJson.dependencies?.tailwindcss;
33
+ const tailwindMajor = typeof tailwindRange === "string" ? parseMajorVersion(tailwindRange) : null;
34
+ const shouldUpgradeTailwind = !projectInfo.tailwind && tailwindMajor !== null && tailwindMajor < 4;
35
+ if (shouldUpgradeTailwind && !missing.includes("tailwindcss")) {
36
+ missing.push("tailwindcss");
37
+ }
38
+ return {
39
+ required,
40
+ devDependencies,
41
+ missing
42
+ };
43
+ }
44
+ /**
45
+ * Ask the user whether missing dependencies should be installed.
46
+ *
47
+ * `--yes` callers should skip this and install automatically.
48
+ */
49
+ export async function confirmInstallation(dependencies) {
50
+ const { shouldInstall } = await prompts({
51
+ type: "confirm",
52
+ name: "shouldInstall",
53
+ message: `Install missing dependencies? (${dependencies.missing.join(", ")})`,
54
+ initial: true
55
+ });
56
+ return shouldInstall;
57
+ }
58
+ /**
59
+ * Install missing runtime and dev dependencies with the project's package manager.
60
+ *
61
+ * Uses the shared spinner (when provided) for consistent CLI output. Throws if
62
+ * the install command fails so the caller can exit with a clear status code.
63
+ */
64
+ export async function installDependencies(cwd, projectInfo, dependencies, spinner) {
65
+ const requiredMissing = dependencies.missing.filter((dep) => dependencies.required.includes(dep));
66
+ const devMissing = dependencies.missing.filter((dep) => dependencies.devDependencies.includes(dep));
67
+ const pm = projectInfo.packageManager;
68
+ const installCmd = pm === "npm" ? "install" : "add";
69
+ try {
70
+ if (requiredMissing.length > 0) {
71
+ spinner?.start(`Installing dependencies with ${pm}...`);
72
+ await execa(pm, [installCmd, ...requiredMissing], { cwd });
73
+ spinner?.succeed("Dependencies installed");
74
+ }
75
+ if (devMissing.length > 0) {
76
+ spinner?.start(`Installing dev dependencies with ${pm}...`);
77
+ const devFlag = pm === "npm" ? "--save-dev" : "-D";
78
+ await execa(pm, [installCmd, devFlag, ...devMissing], { cwd });
79
+ spinner?.succeed("Dev dependencies installed");
80
+ }
81
+ }
82
+ catch (error) {
83
+ spinner?.fail("Failed to install dependencies");
84
+ throw new Error(`Failed to install dependencies: ${error.message}`);
85
+ }
86
+ }
53
87
  //# sourceMappingURL=dependencies.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../../src/commands/init/dependencies.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../../src/commands/init/dependencies.ts"],"names":[],"mappings":"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"}
@@ -1 +1,7 @@
1
- export declare function directoryExists(dir: string): Promise<boolean>;
1
+ /**
2
+ * Check whether a path exists and is a directory.
3
+ *
4
+ * This is used by the init CLI to fail fast on obvious path issues without
5
+ * surfacing low-level `fs.stat` errors to users.
6
+ */
7
+ export declare function directoryExists(dir: string): Promise<boolean>;
@@ -1,11 +1,17 @@
1
- import fs from "node:fs/promises";
2
- export async function directoryExists(dir) {
3
- try {
4
- const stat = await fs.stat(dir);
5
- return stat.isDirectory();
6
- }
7
- catch {
8
- return false;
9
- }
10
- }
1
+ import fs from "node:fs/promises";
2
+ /**
3
+ * Check whether a path exists and is a directory.
4
+ *
5
+ * This is used by the init CLI to fail fast on obvious path issues without
6
+ * surfacing low-level `fs.stat` errors to users.
7
+ */
8
+ export async function directoryExists(dir) {
9
+ try {
10
+ const stat = await fs.stat(dir);
11
+ return stat.isDirectory();
12
+ }
13
+ catch {
14
+ return false;
15
+ }
16
+ }
11
17
  //# sourceMappingURL=filesystem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../../src/commands/init/filesystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAEjC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAW;IAC/C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC/B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAA;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../../src/commands/init/filesystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAEjC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAW;IAC/C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC/B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAA;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- export {};
1
+ export {};
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=lockfile.js.map
@@ -1,6 +1,17 @@
1
- export type PackageJson = {
2
- dependencies?: Record<string, string>;
3
- devDependencies?: Record<string, string>;
4
- };
5
- export declare function readPackageJson(cwd: string): Promise<PackageJson>;
6
- export declare function collectDependencies(packageJson: PackageJson): Record<string, string>;
1
+ export type PackageJson = {
2
+ dependencies?: Record<string, string>;
3
+ devDependencies?: Record<string, string>;
4
+ type?: string;
5
+ };
6
+ /**
7
+ * Read and parse the project's `package.json` from the given working directory.
8
+ *
9
+ * Throws with a friendlier error message when JSON parsing fails.
10
+ */
11
+ export declare function readPackageJson(cwd: string): Promise<PackageJson>;
12
+ /**
13
+ * Flatten `dependencies` and `devDependencies` into a single lookup table.
14
+ *
15
+ * This is used for lightweight feature detection (framework, Tailwind, etc.).
16
+ */
17
+ export declare function collectDependencies(packageJson: PackageJson): Record<string, string>;
@@ -1,19 +1,29 @@
1
- import path from "node:path";
2
- import { readFile } from "../../lib/fs.js";
3
- export async function readPackageJson(cwd) {
4
- const packageJsonPath = path.join(cwd, "package.json");
5
- const raw = await readFile(packageJsonPath);
6
- try {
7
- return JSON.parse(raw);
8
- }
9
- catch (error) {
10
- throw new Error(`Failed to parse package.json: ${error.message}`);
11
- }
12
- }
13
- export function collectDependencies(packageJson) {
14
- return {
15
- ...packageJson.dependencies,
16
- ...packageJson.devDependencies
17
- };
18
- }
1
+ import path from "node:path";
2
+ import { readFile } from "../../lib/fs.js";
3
+ /**
4
+ * Read and parse the project's `package.json` from the given working directory.
5
+ *
6
+ * Throws with a friendlier error message when JSON parsing fails.
7
+ */
8
+ export async function readPackageJson(cwd) {
9
+ const packageJsonPath = path.join(cwd, "package.json");
10
+ const raw = await readFile(packageJsonPath);
11
+ try {
12
+ return JSON.parse(raw);
13
+ }
14
+ catch (error) {
15
+ throw new Error(`Failed to parse package.json: ${error.message}`);
16
+ }
17
+ }
18
+ /**
19
+ * Flatten `dependencies` and `devDependencies` into a single lookup table.
20
+ *
21
+ * This is used for lightweight feature detection (framework, Tailwind, etc.).
22
+ */
23
+ export function collectDependencies(packageJson) {
24
+ return {
25
+ ...packageJson.dependencies,
26
+ ...packageJson.devDependencies
27
+ };
28
+ }
19
29
  //# sourceMappingURL=package-json.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-json.js","sourceRoot":"","sources":["../../../src/commands/init/package-json.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAO1C,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAW;IAC/C,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;IACtD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,CAAA;IAE3C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,CAAA;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,iCAAkC,KAAe,CAAC,OAAO,EAAE,CAC5D,CAAA;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,WAAwB;IAExB,OAAO;QACL,GAAG,WAAW,CAAC,YAAY;QAC3B,GAAG,WAAW,CAAC,eAAe;KAC/B,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"package-json.js","sourceRoot":"","sources":["../../../src/commands/init/package-json.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAQ1C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAW;IAC/C,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;IACtD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,CAAA;IAE3C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,CAAA;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,iCAAkC,KAAe,CAAC,OAAO,EAAE,CAC5D,CAAA;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,WAAwB;IAExB,OAAO;QACL,GAAG,WAAW,CAAC,YAAY;QAC3B,GAAG,WAAW,CAAC,eAAe;KAC/B,CAAA;AACH,CAAC"}
@@ -1,3 +1,15 @@
1
- import type { ProjectInfo, ValidationResult } from "./types.js";
2
- export declare function detectProject(cwd: string): Promise<ProjectInfo>;
3
- export declare function validateProject(cwd: string, projectInfo: ProjectInfo): Promise<ValidationResult>;
1
+ import type { ProjectInfo, ValidationResult } from "./types.js";
2
+ /**
3
+ * Infer the project's shape (framework, TS, Tailwind, common directories) from `cwd`.
4
+ *
5
+ * The result drives init decisions like which config templates to write and where
6
+ * to place `globals.css`.
7
+ */
8
+ export declare function detectProject(cwd: string): Promise<ProjectInfo>;
9
+ /**
10
+ * Validate that the project is compatible with `trix-ui init`.
11
+ *
12
+ * Returns hard errors for missing requirements (React/ReactDOM) and softer
13
+ * warnings for common footguns (missing TS types, mixed Next.js routers).
14
+ */
15
+ export declare function validateProject(cwd: string, projectInfo: ProjectInfo): Promise<ValidationResult>;