@nqlib/nqui 0.1.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 (219) hide show
  1. package/INSTALLATION.md +221 -0
  2. package/README.md +276 -0
  3. package/dist/App.d.ts +3 -0
  4. package/dist/App.d.ts.map +1 -0
  5. package/dist/components/AppLayout.d.ts +2 -0
  6. package/dist/components/AppLayout.d.ts.map +1 -0
  7. package/dist/components/app-sidebar.d.ts +4 -0
  8. package/dist/components/app-sidebar.d.ts.map +1 -0
  9. package/dist/components/component-example.d.ts +2 -0
  10. package/dist/components/component-example.d.ts.map +1 -0
  11. package/dist/components/custom/color-picker.d.ts +9 -0
  12. package/dist/components/custom/color-picker.d.ts.map +1 -0
  13. package/dist/components/custom/color-slider.d.ts +22 -0
  14. package/dist/components/custom/color-slider.d.ts.map +1 -0
  15. package/dist/components/custom/enhanced-button.d.ts +34 -0
  16. package/dist/components/custom/enhanced-button.d.ts.map +1 -0
  17. package/dist/components/custom/enhanced-checkbox.d.ts +28 -0
  18. package/dist/components/custom/enhanced-checkbox.d.ts.map +1 -0
  19. package/dist/components/custom/enhanced-radio-group.d.ts +36 -0
  20. package/dist/components/custom/enhanced-radio-group.d.ts.map +1 -0
  21. package/dist/components/custom/enhanced-scroll-area.d.ts +34 -0
  22. package/dist/components/custom/enhanced-scroll-area.d.ts.map +1 -0
  23. package/dist/components/custom/enhanced-separator.d.ts +36 -0
  24. package/dist/components/custom/enhanced-separator.d.ts.map +1 -0
  25. package/dist/components/custom/nqui-logo.d.ts +9 -0
  26. package/dist/components/custom/nqui-logo.d.ts.map +1 -0
  27. package/dist/components/custom/rating.d.ts +60 -0
  28. package/dist/components/custom/rating.d.ts.map +1 -0
  29. package/dist/components/custom/table-of-contents.d.ts +77 -0
  30. package/dist/components/custom/table-of-contents.d.ts.map +1 -0
  31. package/dist/components/debug/crosshair.d.ts +5 -0
  32. package/dist/components/debug/crosshair.d.ts.map +1 -0
  33. package/dist/components/debug/debug-panel.d.ts +5 -0
  34. package/dist/components/debug/debug-panel.d.ts.map +1 -0
  35. package/dist/components/debug/dependencies.d.ts +23 -0
  36. package/dist/components/debug/dependencies.d.ts.map +1 -0
  37. package/dist/components/debug/index.d.ts +17 -0
  38. package/dist/components/debug/index.d.ts.map +1 -0
  39. package/dist/components/debug/magnifier.d.ts +9 -0
  40. package/dist/components/debug/magnifier.d.ts.map +1 -0
  41. package/dist/components/debug/ui-tester.d.ts +13 -0
  42. package/dist/components/debug/ui-tester.d.ts.map +1 -0
  43. package/dist/components/debug/utils/css-variable-parser.d.ts +28 -0
  44. package/dist/components/debug/utils/css-variable-parser.d.ts.map +1 -0
  45. package/dist/components/debug/utils/element-selector.d.ts +24 -0
  46. package/dist/components/debug/utils/element-selector.d.ts.map +1 -0
  47. package/dist/components/debug/utils/style-injector.d.ts +40 -0
  48. package/dist/components/debug/utils/style-injector.d.ts.map +1 -0
  49. package/dist/components/debug/utils/style-parser.d.ts +53 -0
  50. package/dist/components/debug/utils/style-parser.d.ts.map +1 -0
  51. package/dist/components/example.d.ts +7 -0
  52. package/dist/components/example.d.ts.map +1 -0
  53. package/dist/components/login-form.d.ts +2 -0
  54. package/dist/components/login-form.d.ts.map +1 -0
  55. package/dist/components/nav-user.d.ts +8 -0
  56. package/dist/components/nav-user.d.ts.map +1 -0
  57. package/dist/components/showcase/app-builder/app-builder-context.d.ts +16 -0
  58. package/dist/components/showcase/app-builder/app-builder-context.d.ts.map +1 -0
  59. package/dist/components/showcase/app-builder/app-canvas.d.ts +11 -0
  60. package/dist/components/showcase/app-builder/app-canvas.d.ts.map +1 -0
  61. package/dist/components/showcase/app-builder/widget-configurator.d.ts +10 -0
  62. package/dist/components/showcase/app-builder/widget-configurator.d.ts.map +1 -0
  63. package/dist/components/showcase/app-builder/widget-palette.d.ts +6 -0
  64. package/dist/components/showcase/app-builder/widget-palette.d.ts.map +1 -0
  65. package/dist/components/showcase/app-builder/widget-registry.d.ts +29 -0
  66. package/dist/components/showcase/app-builder/widget-registry.d.ts.map +1 -0
  67. package/dist/components/showcase/app-builder/widget-renderer.d.ts +7 -0
  68. package/dist/components/showcase/app-builder/widget-renderer.d.ts.map +1 -0
  69. package/dist/components/theme-toggle.d.ts +2 -0
  70. package/dist/components/theme-toggle.d.ts.map +1 -0
  71. package/dist/components/ui/accordion.d.ts +8 -0
  72. package/dist/components/ui/accordion.d.ts.map +1 -0
  73. package/dist/components/ui/alert-dialog.d.ts +19 -0
  74. package/dist/components/ui/alert-dialog.d.ts.map +1 -0
  75. package/dist/components/ui/alert.d.ts +11 -0
  76. package/dist/components/ui/alert.d.ts.map +1 -0
  77. package/dist/components/ui/aspect-ratio.d.ts +4 -0
  78. package/dist/components/ui/aspect-ratio.d.ts.map +1 -0
  79. package/dist/components/ui/avatar.d.ts +7 -0
  80. package/dist/components/ui/avatar.d.ts.map +1 -0
  81. package/dist/components/ui/badge.d.ts +10 -0
  82. package/dist/components/ui/badge.d.ts.map +1 -0
  83. package/dist/components/ui/breadcrumb.d.ts +20 -0
  84. package/dist/components/ui/breadcrumb.d.ts.map +1 -0
  85. package/dist/components/ui/button-group.d.ts +12 -0
  86. package/dist/components/ui/button-group.d.ts.map +1 -0
  87. package/dist/components/ui/button.d.ts +12 -0
  88. package/dist/components/ui/button.d.ts.map +1 -0
  89. package/dist/components/ui/calendar.d.ts +9 -0
  90. package/dist/components/ui/calendar.d.ts.map +1 -0
  91. package/dist/components/ui/card.d.ts +9 -0
  92. package/dist/components/ui/card.d.ts.map +1 -0
  93. package/dist/components/ui/carousel.d.ts +29 -0
  94. package/dist/components/ui/carousel.d.ts.map +1 -0
  95. package/dist/components/ui/chart.d.ts +41 -0
  96. package/dist/components/ui/chart.d.ts.map +1 -0
  97. package/dist/components/ui/checkbox.d.ts +5 -0
  98. package/dist/components/ui/checkbox.d.ts.map +1 -0
  99. package/dist/components/ui/collapsible.d.ts +6 -0
  100. package/dist/components/ui/collapsible.d.ts.map +1 -0
  101. package/dist/components/ui/combobox.d.ts +25 -0
  102. package/dist/components/ui/combobox.d.ts.map +1 -0
  103. package/dist/components/ui/command.d.ts +19 -0
  104. package/dist/components/ui/command.d.ts.map +1 -0
  105. package/dist/components/ui/context-menu.d.ts +28 -0
  106. package/dist/components/ui/context-menu.d.ts.map +1 -0
  107. package/dist/components/ui/dialog.d.ts +18 -0
  108. package/dist/components/ui/dialog.d.ts.map +1 -0
  109. package/dist/components/ui/drawer.d.ts +14 -0
  110. package/dist/components/ui/drawer.d.ts.map +1 -0
  111. package/dist/components/ui/dropdown-menu.d.ts +28 -0
  112. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  113. package/dist/components/ui/empty.d.ts +12 -0
  114. package/dist/components/ui/empty.d.ts.map +1 -0
  115. package/dist/components/ui/field.d.ts +25 -0
  116. package/dist/components/ui/field.d.ts.map +1 -0
  117. package/dist/components/ui/hover-card.d.ts +7 -0
  118. package/dist/components/ui/hover-card.d.ts.map +1 -0
  119. package/dist/components/ui/input-group.d.ts +17 -0
  120. package/dist/components/ui/input-group.d.ts.map +1 -0
  121. package/dist/components/ui/input-otp.d.ts +12 -0
  122. package/dist/components/ui/input-otp.d.ts.map +1 -0
  123. package/dist/components/ui/input.d.ts +4 -0
  124. package/dist/components/ui/input.d.ts.map +1 -0
  125. package/dist/components/ui/item.d.ts +24 -0
  126. package/dist/components/ui/item.d.ts.map +1 -0
  127. package/dist/components/ui/kbd.d.ts +4 -0
  128. package/dist/components/ui/kbd.d.ts.map +1 -0
  129. package/dist/components/ui/label.d.ts +6 -0
  130. package/dist/components/ui/label.d.ts.map +1 -0
  131. package/dist/components/ui/menubar.d.ts +27 -0
  132. package/dist/components/ui/menubar.d.ts.map +1 -0
  133. package/dist/components/ui/native-select.d.ts +9 -0
  134. package/dist/components/ui/native-select.d.ts.map +1 -0
  135. package/dist/components/ui/navigation-menu.d.ts +15 -0
  136. package/dist/components/ui/navigation-menu.d.ts.map +1 -0
  137. package/dist/components/ui/pagination.d.ts +14 -0
  138. package/dist/components/ui/pagination.d.ts.map +1 -0
  139. package/dist/components/ui/popover.d.ts +11 -0
  140. package/dist/components/ui/popover.d.ts.map +1 -0
  141. package/dist/components/ui/progress.d.ts +5 -0
  142. package/dist/components/ui/progress.d.ts.map +1 -0
  143. package/dist/components/ui/radio-group.d.ts +6 -0
  144. package/dist/components/ui/radio-group.d.ts.map +1 -0
  145. package/dist/components/ui/resizable.d.ts +8 -0
  146. package/dist/components/ui/resizable.d.ts.map +1 -0
  147. package/dist/components/ui/scroll-area.d.ts +6 -0
  148. package/dist/components/ui/scroll-area.d.ts.map +1 -0
  149. package/dist/components/ui/select.d.ts +16 -0
  150. package/dist/components/ui/select.d.ts.map +1 -0
  151. package/dist/components/ui/separator.d.ts +5 -0
  152. package/dist/components/ui/separator.d.ts.map +1 -0
  153. package/dist/components/ui/sheet.d.ts +26 -0
  154. package/dist/components/ui/sheet.d.ts.map +1 -0
  155. package/dist/components/ui/sidebar.d.ts +66 -0
  156. package/dist/components/ui/sidebar.d.ts.map +1 -0
  157. package/dist/components/ui/skeleton.d.ts +3 -0
  158. package/dist/components/ui/skeleton.d.ts.map +1 -0
  159. package/dist/components/ui/slider.d.ts +5 -0
  160. package/dist/components/ui/slider.d.ts.map +1 -0
  161. package/dist/components/ui/sonner.d.ts +4 -0
  162. package/dist/components/ui/sonner.d.ts.map +1 -0
  163. package/dist/components/ui/spinner.d.ts +3 -0
  164. package/dist/components/ui/spinner.d.ts.map +1 -0
  165. package/dist/components/ui/switch.d.ts +5 -0
  166. package/dist/components/ui/switch.d.ts.map +1 -0
  167. package/dist/components/ui/table.d.ts +11 -0
  168. package/dist/components/ui/table.d.ts.map +1 -0
  169. package/dist/components/ui/tabs.d.ts +12 -0
  170. package/dist/components/ui/tabs.d.ts.map +1 -0
  171. package/dist/components/ui/textarea.d.ts +4 -0
  172. package/dist/components/ui/textarea.d.ts.map +1 -0
  173. package/dist/components/ui/toggle-group.d.ts +11 -0
  174. package/dist/components/ui/toggle-group.d.ts.map +1 -0
  175. package/dist/components/ui/toggle.d.ts +10 -0
  176. package/dist/components/ui/toggle.d.ts.map +1 -0
  177. package/dist/components/ui/tooltip.d.ts +8 -0
  178. package/dist/components/ui/tooltip.d.ts.map +1 -0
  179. package/dist/hooks/use-mobile.d.ts +2 -0
  180. package/dist/hooks/use-mobile.d.ts.map +1 -0
  181. package/dist/hooks/use-scroll-spy.d.ts +50 -0
  182. package/dist/hooks/use-scroll-spy.d.ts.map +1 -0
  183. package/dist/index.d.ts +80 -0
  184. package/dist/index.d.ts.map +1 -0
  185. package/dist/lib/utils.d.ts +3 -0
  186. package/dist/lib/utils.d.ts.map +1 -0
  187. package/dist/main.d.ts +3 -0
  188. package/dist/main.d.ts.map +1 -0
  189. package/dist/mockdata/toc.d.ts +11 -0
  190. package/dist/mockdata/toc.d.ts.map +1 -0
  191. package/dist/nqui.cjs.js +521 -0
  192. package/dist/nqui.css +148 -0
  193. package/dist/nqui.es.js +35453 -0
  194. package/dist/pages/AppBuilder.d.ts +2 -0
  195. package/dist/pages/AppBuilder.d.ts.map +1 -0
  196. package/dist/pages/Dashboard.d.ts +2 -0
  197. package/dist/pages/Dashboard.d.ts.map +1 -0
  198. package/dist/pages/Drafts.d.ts +2 -0
  199. package/dist/pages/Drafts.d.ts.map +1 -0
  200. package/dist/pages/Inbox.d.ts +2 -0
  201. package/dist/pages/Inbox.d.ts.map +1 -0
  202. package/dist/pages/Junk.d.ts +2 -0
  203. package/dist/pages/Junk.d.ts.map +1 -0
  204. package/dist/pages/Sent.d.ts +2 -0
  205. package/dist/pages/Sent.d.ts.map +1 -0
  206. package/dist/pages/Settings.d.ts +2 -0
  207. package/dist/pages/Settings.d.ts.map +1 -0
  208. package/dist/pages/Trash.d.ts +2 -0
  209. package/dist/pages/Trash.d.ts.map +1 -0
  210. package/dist/styles.css +544 -0
  211. package/dist/vite.svg +1 -0
  212. package/package.json +128 -0
  213. package/scripts/build-styles.js +205 -0
  214. package/scripts/examples/nextjs-layout.tsx +30 -0
  215. package/scripts/examples/nextjs-page.tsx +66 -0
  216. package/scripts/init-css.js +568 -0
  217. package/scripts/init-debug-css.js +123 -0
  218. package/scripts/publish-npmjs.js +87 -0
  219. package/scripts/validate-exports.mjs +117 -0
@@ -0,0 +1,87 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Publish to npmjs.com registry
5
+ * Temporarily overrides publishConfig and .npmrc to use npmjs.com instead of GitHub Packages
6
+ */
7
+
8
+ import { readFileSync, writeFileSync, existsSync } from 'fs';
9
+ import { execSync } from 'child_process';
10
+ import { fileURLToPath } from 'url';
11
+ import { dirname, join } from 'path';
12
+
13
+ const __filename = fileURLToPath(import.meta.url);
14
+ const __dirname = dirname(__filename);
15
+ const rootDir = join(__dirname, '..');
16
+ const packageJsonPath = join(rootDir, 'package.json');
17
+ const npmrcPath = join(rootDir, '.npmrc');
18
+
19
+ // Read package.json
20
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
21
+
22
+ // Save original publishConfig
23
+ const originalPublishConfig = packageJson.publishConfig;
24
+
25
+ // Override publishConfig for npmjs.com
26
+ packageJson.publishConfig = {
27
+ registry: 'https://registry.npmjs.com',
28
+ access: 'public'
29
+ };
30
+
31
+ // Write modified package.json
32
+ writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2) + '\n');
33
+
34
+ // Handle .npmrc file if it exists
35
+ let originalNpmrc = null;
36
+ let npmrcExists = false;
37
+
38
+ if (existsSync(npmrcPath)) {
39
+ npmrcExists = true;
40
+ originalNpmrc = readFileSync(npmrcPath, 'utf-8');
41
+
42
+ // Remove or comment out scoped registry line that points to GitHub Packages
43
+ const lines = originalNpmrc.split('\n');
44
+ const modifiedLines = lines.map(line => {
45
+ // Comment out scoped registry lines for @nqlib
46
+ if (line.trim().startsWith('@nqlib:registry=')) {
47
+ return `# ${line} # Temporarily disabled for npmjs.com publish`;
48
+ }
49
+ return line;
50
+ });
51
+
52
+ writeFileSync(npmrcPath, modifiedLines.join('\n'));
53
+ console.log('📝 Temporarily modified .npmrc');
54
+ }
55
+
56
+ try {
57
+ console.log('📦 Publishing to npmjs.com...');
58
+ execSync('npm publish --registry=https://registry.npmjs.com --access=public', {
59
+ stdio: 'inherit',
60
+ cwd: rootDir,
61
+ env: {
62
+ ...process.env,
63
+ // Force npm to use npmjs.com registry
64
+ npm_config_registry: 'https://registry.npmjs.com'
65
+ }
66
+ });
67
+ console.log('✅ Published to npmjs.com successfully!');
68
+ } catch (error) {
69
+ console.error('❌ Failed to publish to npmjs.com');
70
+ throw error;
71
+ } finally {
72
+ // Restore original publishConfig
73
+ if (originalPublishConfig) {
74
+ packageJson.publishConfig = originalPublishConfig;
75
+ } else {
76
+ delete packageJson.publishConfig;
77
+ }
78
+ writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2) + '\n');
79
+ console.log('🔄 Restored publishConfig');
80
+
81
+ // Restore .npmrc if it existed
82
+ if (npmrcExists && originalNpmrc !== null) {
83
+ writeFileSync(npmrcPath, originalNpmrc);
84
+ console.log('🔄 Restored .npmrc');
85
+ }
86
+ }
87
+
@@ -0,0 +1,117 @@
1
+ import { readFileSync, readdirSync } from 'fs';
2
+ import { join, dirname } from 'path';
3
+ import { fileURLToPath } from 'url';
4
+
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const __dirname = dirname(__filename);
7
+ const rootDir = join(__dirname, '..');
8
+ const uiDir = join(rootDir, 'src/components/ui');
9
+ const indexFile = join(rootDir, 'src/index.ts');
10
+
11
+ // Read index.ts to find all export statements
12
+ const indexContent = readFileSync(indexFile, 'utf-8');
13
+
14
+ // Extract export statements
15
+ const exportRegex = /export\s+{([^}]+)}\s+from\s+["']\.\/components\/ui\/([^"']+)["']/g;
16
+ const exports = [];
17
+ let match;
18
+
19
+ while ((match = exportRegex.exec(indexContent)) !== null) {
20
+ const exportsList = match[1].split(',').map(e => e.trim());
21
+ const filePath = match[2];
22
+ exports.push({ file: filePath, exports: exportsList });
23
+ }
24
+
25
+ console.log('🔍 Validating exports...\n');
26
+
27
+ const errors = [];
28
+
29
+ for (const { file, exports: expectedExports } of exports) {
30
+ // Try .tsx first, then .ts
31
+ let filePath = join(uiDir, `${file}.tsx`);
32
+ if (!filePath.includes('.')) {
33
+ filePath = join(uiDir, `${file}.tsx`);
34
+ }
35
+
36
+ try {
37
+ // Check if file exists, try .ts if .tsx doesn't exist
38
+ let fileContent;
39
+ try {
40
+ fileContent = readFileSync(filePath, 'utf-8');
41
+ } catch (e) {
42
+ if (e.code === 'ENOENT') {
43
+ filePath = join(uiDir, `${file}.ts`);
44
+ fileContent = readFileSync(filePath, 'utf-8');
45
+ } else {
46
+ throw e;
47
+ }
48
+ }
49
+
50
+ // Extract actual exports from the file
51
+ const actualExportRegex = /export\s+{([^}]+)}\s+from|export\s+(?:const|function|class|type|interface)\s+(\w+)/g;
52
+ const actualExports = new Set();
53
+
54
+ // Check for named exports in export { ... } statements
55
+ const namedExportRegex = /export\s+{([^}]+)}/g;
56
+ let namedMatch;
57
+ while ((namedMatch = namedExportRegex.exec(fileContent)) !== null) {
58
+ const exports = namedMatch[1].split(',').map(e => e.trim().split(/\s+as\s+/)[0].trim());
59
+ exports.forEach(exp => actualExports.add(exp));
60
+ }
61
+
62
+ // Check for direct exports: export function/const/class
63
+ const directExportRegex = /export\s+(?:const|function|class|type|interface)\s+(\w+)/g;
64
+ let directMatch;
65
+ while ((directMatch = directExportRegex.exec(fileContent)) !== null) {
66
+ actualExports.add(directMatch[1]);
67
+ }
68
+
69
+ // Check for default exports that might be re-exported
70
+ const defaultExportRegex = /export\s+default\s+(\w+)/;
71
+ const defaultMatch = defaultExportRegex.exec(fileContent);
72
+ if (defaultMatch) {
73
+ actualExports.add(defaultMatch[1]);
74
+ }
75
+
76
+ // Validate each expected export
77
+ for (const expected of expectedExports) {
78
+ // Handle type exports and aliases, skip empty strings
79
+ const exportName = expected.split(/\s+as\s+/)[0].trim();
80
+
81
+ if (!exportName || exportName === '') continue;
82
+
83
+ if (!actualExports.has(exportName)) {
84
+ errors.push({
85
+ file,
86
+ missing: exportName,
87
+ available: Array.from(actualExports).sort()
88
+ });
89
+ }
90
+ }
91
+ } catch (err) {
92
+ if (err.code === 'ENOENT') {
93
+ errors.push({ file, error: 'File not found' });
94
+ } else {
95
+ errors.push({ file, error: err.message });
96
+ }
97
+ }
98
+ }
99
+
100
+ if (errors.length > 0) {
101
+ console.log('❌ Found export errors:\n');
102
+ errors.forEach(({ file, missing, available, error }) => {
103
+ if (error) {
104
+ console.log(` ${file}: ${error}`);
105
+ } else {
106
+ console.log(` ${file}: Missing export "${missing}"`);
107
+ if (available && available.length > 0) {
108
+ console.log(` Available exports: ${available.join(', ')}`);
109
+ }
110
+ }
111
+ });
112
+ process.exit(1);
113
+ } else {
114
+ console.log('✅ All exports are valid!');
115
+ process.exit(0);
116
+ }
117
+