angular-grab 0.1.1 → 0.1.2

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 (132) hide show
  1. package/README.md +215 -0
  2. package/examples/angular-19-app/.editorconfig +17 -0
  3. package/examples/angular-19-app/.vscode/extensions.json +4 -0
  4. package/examples/angular-19-app/.vscode/launch.json +20 -0
  5. package/examples/angular-19-app/.vscode/mcp.json +9 -0
  6. package/examples/angular-19-app/.vscode/tasks.json +42 -0
  7. package/examples/angular-19-app/README.md +59 -0
  8. package/examples/angular-19-app/angular.json +74 -0
  9. package/examples/angular-19-app/package.json +44 -0
  10. package/examples/angular-19-app/public/favicon.ico +0 -0
  11. package/examples/angular-19-app/src/app/app.config.ts +13 -0
  12. package/examples/angular-19-app/src/app/app.css +37 -0
  13. package/examples/angular-19-app/src/app/app.html +25 -0
  14. package/examples/angular-19-app/src/app/app.routes.ts +3 -0
  15. package/examples/angular-19-app/src/app/app.spec.ts +23 -0
  16. package/examples/angular-19-app/src/app/app.ts +12 -0
  17. package/examples/angular-19-app/src/app/button/button.component.ts +25 -0
  18. package/examples/angular-19-app/src/app/card/card.component.ts +33 -0
  19. package/examples/angular-19-app/src/app/header/header.component.ts +31 -0
  20. package/examples/angular-19-app/src/app/popover/popover.component.ts +133 -0
  21. package/examples/angular-19-app/src/index.html +13 -0
  22. package/examples/angular-19-app/src/main.ts +6 -0
  23. package/examples/angular-19-app/src/styles.css +1 -0
  24. package/examples/angular-19-app/tsconfig.app.json +15 -0
  25. package/examples/angular-19-app/tsconfig.json +33 -0
  26. package/examples/angular-19-app/tsconfig.spec.json +15 -0
  27. package/package.json +14 -111
  28. package/packages/angular-grab/package.json +96 -0
  29. package/packages/angular-grab/src/angular/__tests__/context-builder.test.ts +216 -0
  30. package/packages/angular-grab/src/angular/angular-grab.service.ts +62 -0
  31. package/packages/angular-grab/src/angular/index.ts +13 -0
  32. package/packages/angular-grab/src/angular/provide-angular-grab.ts +22 -0
  33. package/packages/angular-grab/src/angular/resolvers/component-resolver.ts +71 -0
  34. package/packages/angular-grab/src/angular/resolvers/context-builder.ts +86 -0
  35. package/packages/angular-grab/src/angular/resolvers/ng-utils.ts +14 -0
  36. package/packages/angular-grab/src/angular/resolvers/source-resolver.ts +61 -0
  37. package/packages/angular-grab/src/builder/__tests__/builder.test.ts +72 -0
  38. package/packages/angular-grab/src/builder/builders/application/index.ts +13 -0
  39. package/packages/angular-grab/src/builder/builders/dev-server/index.ts +9 -0
  40. package/packages/angular-grab/src/builder/index.ts +3 -0
  41. package/packages/angular-grab/src/cli/__tests__/cli.test.ts +239 -0
  42. package/packages/angular-grab/src/cli/commands/init.ts +106 -0
  43. package/packages/angular-grab/src/cli/index.ts +15 -0
  44. package/packages/angular-grab/src/cli/utils/detect-project.ts +78 -0
  45. package/packages/angular-grab/src/cli/utils/modify-angular-json.ts +42 -0
  46. package/packages/angular-grab/src/cli/utils/modify-app-config.ts +42 -0
  47. package/packages/angular-grab/src/core/__tests__/generate-snippet.test.ts +149 -0
  48. package/packages/angular-grab/src/core/__tests__/plugin-registry.test.ts +286 -0
  49. package/packages/angular-grab/src/core/__tests__/store.test.ts +118 -0
  50. package/packages/angular-grab/src/core/__tests__/utils.test.ts +85 -0
  51. package/packages/angular-grab/src/core/clipboard/copy.ts +104 -0
  52. package/packages/angular-grab/src/core/clipboard/generate-snippet.ts +38 -0
  53. package/packages/angular-grab/src/core/constants.ts +10 -0
  54. package/packages/angular-grab/src/core/grab.ts +596 -0
  55. package/packages/angular-grab/src/core/index.global.ts +13 -0
  56. package/packages/angular-grab/src/core/index.ts +19 -0
  57. package/packages/angular-grab/src/core/keyboard/keyboard-handler.ts +163 -0
  58. package/packages/angular-grab/src/core/overlay/crosshair.ts +107 -0
  59. package/packages/angular-grab/src/core/overlay/freeze-overlay.ts +239 -0
  60. package/packages/angular-grab/src/core/overlay/overlay-renderer.ts +180 -0
  61. package/packages/angular-grab/src/core/overlay/select-feedback.ts +108 -0
  62. package/packages/angular-grab/src/core/overlay/toast.ts +175 -0
  63. package/packages/angular-grab/src/core/picker/element-picker.ts +114 -0
  64. package/packages/angular-grab/src/core/plugins/plugin-registry.ts +83 -0
  65. package/packages/angular-grab/src/core/store.ts +52 -0
  66. package/packages/angular-grab/src/core/toolbar/actions-menu.ts +178 -0
  67. package/packages/angular-grab/src/core/toolbar/comment-popover.ts +235 -0
  68. package/packages/angular-grab/src/core/toolbar/copy-actions.ts +98 -0
  69. package/packages/angular-grab/src/core/toolbar/history-popover.ts +245 -0
  70. package/packages/angular-grab/src/core/toolbar/theme-manager.ts +188 -0
  71. package/packages/angular-grab/src/core/toolbar/toolbar-icons.ts +29 -0
  72. package/packages/angular-grab/src/core/toolbar/toolbar-renderer.ts +239 -0
  73. package/packages/angular-grab/src/core/types.ts +139 -0
  74. package/packages/angular-grab/src/core/utils.ts +16 -0
  75. package/packages/angular-grab/src/esbuild-plugin/__tests__/transform.test.ts +174 -0
  76. package/packages/angular-grab/src/esbuild-plugin/index.ts +3 -0
  77. package/packages/angular-grab/src/esbuild-plugin/plugin.ts +29 -0
  78. package/packages/angular-grab/src/esbuild-plugin/scan.ts +105 -0
  79. package/packages/angular-grab/src/esbuild-plugin/transform.ts +152 -0
  80. package/packages/angular-grab/src/vite-plugin/__tests__/plugin.test.ts +84 -0
  81. package/packages/angular-grab/src/vite-plugin/index.ts +19 -0
  82. package/packages/angular-grab/src/webpack-plugin/__tests__/plugin.test.ts +72 -0
  83. package/packages/angular-grab/src/webpack-plugin/index.ts +2 -0
  84. package/packages/angular-grab/src/webpack-plugin/loader.ts +15 -0
  85. package/packages/angular-grab/src/webpack-plugin/plugin.ts +20 -0
  86. package/packages/angular-grab/tsconfig.json +15 -0
  87. package/packages/angular-grab/tsup.config.ts +119 -0
  88. package/pnpm-workspace.yaml +3 -0
  89. package/turbo.json +21 -0
  90. package/dist/angular/index.d.ts +0 -151
  91. package/dist/angular/index.js +0 -2811
  92. package/dist/angular/index.js.map +0 -1
  93. package/dist/builder/builders/application/index.js +0 -143
  94. package/dist/builder/builders/application/index.js.map +0 -1
  95. package/dist/builder/builders/dev-server/index.js +0 -139
  96. package/dist/builder/builders/dev-server/index.js.map +0 -1
  97. package/dist/builder/index.js +0 -2
  98. package/dist/builder/index.js.map +0 -1
  99. package/dist/builder/package.json +0 -1
  100. package/dist/cli/index.js +0 -223
  101. package/dist/cli/index.js.map +0 -1
  102. package/dist/core/index.cjs +0 -2589
  103. package/dist/core/index.cjs.map +0 -1
  104. package/dist/core/index.d.cts +0 -139
  105. package/dist/core/index.d.ts +0 -139
  106. package/dist/core/index.global.js +0 -542
  107. package/dist/core/index.js +0 -2560
  108. package/dist/core/index.js.map +0 -1
  109. package/dist/esbuild-plugin/index.cjs +0 -239
  110. package/dist/esbuild-plugin/index.cjs.map +0 -1
  111. package/dist/esbuild-plugin/index.d.cts +0 -26
  112. package/dist/esbuild-plugin/index.d.ts +0 -26
  113. package/dist/esbuild-plugin/index.js +0 -200
  114. package/dist/esbuild-plugin/index.js.map +0 -1
  115. package/dist/vite-plugin/index.d.ts +0 -7
  116. package/dist/vite-plugin/index.js +0 -128
  117. package/dist/vite-plugin/index.js.map +0 -1
  118. package/dist/webpack-plugin/index.cjs +0 -54
  119. package/dist/webpack-plugin/index.cjs.map +0 -1
  120. package/dist/webpack-plugin/index.d.cts +0 -5
  121. package/dist/webpack-plugin/index.d.ts +0 -5
  122. package/dist/webpack-plugin/index.js +0 -23
  123. package/dist/webpack-plugin/index.js.map +0 -1
  124. package/dist/webpack-plugin/loader.cjs +0 -155
  125. package/dist/webpack-plugin/loader.cjs.map +0 -1
  126. package/dist/webpack-plugin/loader.d.cts +0 -3
  127. package/dist/webpack-plugin/loader.d.ts +0 -3
  128. package/dist/webpack-plugin/loader.js +0 -122
  129. package/dist/webpack-plugin/loader.js.map +0 -1
  130. /package/{builders.json → packages/angular-grab/builders.json} +0 -0
  131. /package/{dist → packages/angular-grab/src}/builder/builders/application/schema.json +0 -0
  132. /package/{dist → packages/angular-grab/src}/builder/builders/dev-server/schema.json +0 -0
@@ -0,0 +1,31 @@
1
+ import { Component } from '@angular/core';
2
+
3
+ @Component({
4
+ selector: 'app-header',
5
+ standalone: true,
6
+ template: `
7
+ <header class="header">
8
+ <h1 class="header-title">angular-grab Demo</h1>
9
+ <nav class="header-nav">
10
+ <a href="#" class="nav-link">Home</a>
11
+ <a href="#" class="nav-link">About</a>
12
+ <a href="#" class="nav-link">Contact</a>
13
+ </nav>
14
+ </header>
15
+ `,
16
+ styles: [`
17
+ .header {
18
+ display: flex;
19
+ justify-content: space-between;
20
+ align-items: center;
21
+ padding: 16px 24px;
22
+ background: #1e293b;
23
+ color: white;
24
+ }
25
+ .header-title { font-size: 1.25rem; font-weight: 600; margin: 0; }
26
+ .header-nav { display: flex; gap: 16px; }
27
+ .nav-link { color: #94a3b8; text-decoration: none; }
28
+ .nav-link:hover { color: white; }
29
+ `],
30
+ })
31
+ export class HeaderComponent {}
@@ -0,0 +1,133 @@
1
+ import { Component } from '@angular/core';
2
+
3
+ @Component({
4
+ selector: 'app-popover',
5
+ standalone: true,
6
+ template: `
7
+ <div class="popover-demo">
8
+ <h3 class="popover-heading">Freeze Mode Test</h3>
9
+ <p class="popover-desc">These elements disappear on mouse-out. Use freeze mode (<kbd>F</kbd>) to grab them.</p>
10
+
11
+ <div class="popover-row">
12
+ <div class="popover-trigger">
13
+ Hover for tooltip
14
+ <div class="popover-tooltip tooltip-style">
15
+ <strong>Tooltip content</strong>
16
+ <p>This disappears when you move your mouse away. Freeze the page first!</p>
17
+ </div>
18
+ </div>
19
+
20
+ <div class="dropdown-trigger">
21
+ Hover for dropdown ▾
22
+ <ul class="dropdown-menu dropdown-style">
23
+ <li class="dropdown-item">Dashboard</li>
24
+ <li class="dropdown-item">Settings</li>
25
+ <li class="dropdown-item">Profile</li>
26
+ <li class="dropdown-item highlighted">Sign out</li>
27
+ </ul>
28
+ </div>
29
+ </div>
30
+ </div>
31
+ `,
32
+ styles: [`
33
+ .popover-demo {
34
+ margin-top: 40px;
35
+ padding: 24px;
36
+ border: 1px dashed #cbd5e1;
37
+ border-radius: 8px;
38
+ background: #f8fafc;
39
+ }
40
+ .popover-heading { font-size: 1.1rem; font-weight: 600; margin: 0 0 8px; }
41
+ .popover-desc { color: #64748b; margin: 0 0 20px; line-height: 1.5; }
42
+ .popover-desc kbd {
43
+ background: #f1f5f9;
44
+ border: 1px solid #e2e8f0;
45
+ border-radius: 4px;
46
+ padding: 2px 6px;
47
+ font-family: monospace;
48
+ font-size: 0.9rem;
49
+ }
50
+ .popover-row {
51
+ display: flex;
52
+ gap: 24px;
53
+ flex-wrap: wrap;
54
+ }
55
+
56
+ /* Tooltip */
57
+ .popover-trigger {
58
+ position: relative;
59
+ padding: 10px 16px;
60
+ background: #3b82f6;
61
+ color: white;
62
+ border-radius: 6px;
63
+ cursor: default;
64
+ font-size: 0.875rem;
65
+ font-weight: 500;
66
+ }
67
+ .popover-tooltip {
68
+ display: none;
69
+ position: absolute;
70
+ bottom: calc(100% + 8px);
71
+ left: 50%;
72
+ transform: translateX(-50%);
73
+ background: #1e293b;
74
+ color: #e2e8f0;
75
+ padding: 12px 16px;
76
+ border-radius: 8px;
77
+ width: 220px;
78
+ font-size: 0.8rem;
79
+ box-shadow: 0 4px 12px rgba(0,0,0,0.2);
80
+ z-index: 10;
81
+ }
82
+ .popover-tooltip strong { color: white; }
83
+ .popover-tooltip p { margin: 6px 0 0; line-height: 1.4; }
84
+ .popover-tooltip::after {
85
+ content: '';
86
+ position: absolute;
87
+ top: 100%;
88
+ left: 50%;
89
+ transform: translateX(-50%);
90
+ border: 6px solid transparent;
91
+ border-top-color: #1e293b;
92
+ }
93
+ .popover-trigger:hover .popover-tooltip { display: block; }
94
+
95
+ /* Dropdown */
96
+ .dropdown-trigger {
97
+ position: relative;
98
+ padding: 10px 16px;
99
+ background: white;
100
+ border: 1px solid #e2e8f0;
101
+ border-radius: 6px;
102
+ cursor: default;
103
+ font-size: 0.875rem;
104
+ font-weight: 500;
105
+ color: #334155;
106
+ }
107
+ .dropdown-menu {
108
+ display: none;
109
+ position: absolute;
110
+ top: calc(100% + 4px);
111
+ left: 0;
112
+ background: white;
113
+ border: 1px solid #e2e8f0;
114
+ border-radius: 8px;
115
+ list-style: none;
116
+ margin: 0;
117
+ padding: 4px 0;
118
+ min-width: 160px;
119
+ box-shadow: 0 4px 12px rgba(0,0,0,0.1);
120
+ z-index: 10;
121
+ }
122
+ .dropdown-item {
123
+ padding: 8px 14px;
124
+ font-size: 0.85rem;
125
+ color: #334155;
126
+ cursor: pointer;
127
+ }
128
+ .dropdown-item:hover { background: #f1f5f9; }
129
+ .dropdown-item.highlighted { color: #ef4444; }
130
+ .dropdown-trigger:hover .dropdown-menu { display: block; }
131
+ `],
132
+ })
133
+ export class PopoverComponent {}
@@ -0,0 +1,13 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>Angular19App</title>
6
+ <base href="/">
7
+ <meta name="viewport" content="width=device-width, initial-scale=1">
8
+ <link rel="icon" type="image/x-icon" href="favicon.ico">
9
+ </head>
10
+ <body>
11
+ <app-root></app-root>
12
+ </body>
13
+ </html>
@@ -0,0 +1,6 @@
1
+ import { bootstrapApplication } from '@angular/platform-browser';
2
+ import { appConfig } from './app/app.config';
3
+ import { App } from './app/app';
4
+
5
+ bootstrapApplication(App, appConfig)
6
+ .catch((err) => console.error(err));
@@ -0,0 +1 @@
1
+ /* You can add global styles to this file, and also import other style files */
@@ -0,0 +1,15 @@
1
+ /* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
2
+ /* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
3
+ {
4
+ "extends": "./tsconfig.json",
5
+ "compilerOptions": {
6
+ "outDir": "./out-tsc/app",
7
+ "types": []
8
+ },
9
+ "include": [
10
+ "src/**/*.ts"
11
+ ],
12
+ "exclude": [
13
+ "src/**/*.spec.ts"
14
+ ]
15
+ }
@@ -0,0 +1,33 @@
1
+ /* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
2
+ /* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
3
+ {
4
+ "compileOnSave": false,
5
+ "compilerOptions": {
6
+ "strict": true,
7
+ "noImplicitOverride": true,
8
+ "noPropertyAccessFromIndexSignature": true,
9
+ "noImplicitReturns": true,
10
+ "noFallthroughCasesInSwitch": true,
11
+ "skipLibCheck": true,
12
+ "isolatedModules": true,
13
+ "experimentalDecorators": true,
14
+ "importHelpers": true,
15
+ "target": "ES2022",
16
+ "module": "preserve"
17
+ },
18
+ "angularCompilerOptions": {
19
+ "enableI18nLegacyMessageIdFormat": false,
20
+ "strictInjectionParameters": true,
21
+ "strictInputAccessModifiers": true,
22
+ "strictTemplates": true
23
+ },
24
+ "files": [],
25
+ "references": [
26
+ {
27
+ "path": "./tsconfig.app.json"
28
+ },
29
+ {
30
+ "path": "./tsconfig.spec.json"
31
+ }
32
+ ]
33
+ }
@@ -0,0 +1,15 @@
1
+ /* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
2
+ /* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
3
+ {
4
+ "extends": "./tsconfig.json",
5
+ "compilerOptions": {
6
+ "outDir": "./out-tsc/spec",
7
+ "types": [
8
+ "vitest/globals"
9
+ ]
10
+ },
11
+ "include": [
12
+ "src/**/*.d.ts",
13
+ "src/**/*.spec.ts"
14
+ ]
15
+ }
package/package.json CHANGED
@@ -1,119 +1,22 @@
1
1
  {
2
2
  "name": "angular-grab",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Grab any element in your Angular app and give it to AI coding agents",
5
- "author": "Nate Richardson",
5
+ "author": "Nate Richardson <hello@naterichardson.com>",
6
6
  "license": "MIT",
7
- "type": "module",
8
- "publishConfig": {
9
- "access": "public"
7
+ "engines": {
8
+ "node": ">=18"
10
9
  },
11
- "main": "./dist/core/index.cjs",
12
- "module": "./dist/core/index.js",
13
- "types": "./dist/core/index.d.ts",
14
- "bin": {
15
- "angular-grab": "./dist/cli/index.js"
16
- },
17
- "builders": "./builders.json",
18
- "exports": {
19
- ".": {
20
- "types": "./dist/core/index.d.ts",
21
- "import": "./dist/core/index.js",
22
- "require": "./dist/core/index.cjs"
23
- },
24
- "./global": "./dist/core/index.global.js",
25
- "./angular": {
26
- "types": "./dist/angular/index.d.ts",
27
- "import": "./dist/angular/index.js"
28
- },
29
- "./esbuild": {
30
- "types": "./dist/esbuild-plugin/index.d.ts",
31
- "import": "./dist/esbuild-plugin/index.js",
32
- "require": "./dist/esbuild-plugin/index.cjs"
33
- },
34
- "./vite": {
35
- "types": "./dist/vite-plugin/index.d.ts",
36
- "import": "./dist/vite-plugin/index.js"
37
- },
38
- "./webpack": {
39
- "types": "./dist/webpack-plugin/index.d.ts",
40
- "import": "./dist/webpack-plugin/index.js",
41
- "require": "./dist/webpack-plugin/index.cjs"
42
- },
43
- "./webpack/loader": {
44
- "import": "./dist/webpack-plugin/loader.js",
45
- "require": "./dist/webpack-plugin/loader.cjs"
46
- },
47
- "./builder": {
48
- "require": "./dist/builder/index.js"
49
- },
50
- "./builders.json": "./builders.json",
51
- "./package.json": "./package.json"
52
- },
53
- "files": [
54
- "dist",
55
- "builders.json"
56
- ],
57
- "peerDependencies": {
58
- "@angular/core": ">=19.0.0",
59
- "@angular/build": ">=18.0.0",
60
- "@angular-devkit/architect": ">=0.1800.0",
61
- "esbuild": ">=0.17.0",
62
- "typescript": ">=5.0.0",
63
- "vite": ">=5.0.0",
64
- "webpack": ">=5.0.0"
65
- },
66
- "peerDependenciesMeta": {
67
- "@angular/core": {
68
- "optional": true
69
- },
70
- "@angular/build": {
71
- "optional": true
72
- },
73
- "@angular-devkit/architect": {
74
- "optional": true
75
- },
76
- "esbuild": {
77
- "optional": true
78
- },
79
- "vite": {
80
- "optional": true
81
- },
82
- "webpack": {
83
- "optional": true
84
- }
10
+ "packageManager": "pnpm@9.15.0",
11
+ "scripts": {
12
+ "build": "turbo run build",
13
+ "dev": "turbo run dev",
14
+ "test": "turbo run test",
15
+ "lint": "turbo run lint",
16
+ "clean": "turbo run clean"
85
17
  },
86
18
  "devDependencies": {
87
- "@angular/core": "^21.0.0",
88
- "@angular/build": "^21.1.1",
89
- "@angular-devkit/architect": "^0.2101.1",
90
- "esbuild": "^0.21.0",
91
- "tsup": "^8.0.0",
92
- "typescript": "^5.4.0",
93
- "vite": "^5.0.0",
94
- "vitest": "^2.0.0"
95
- },
96
- "repository": {
97
- "type": "git",
98
- "url": "https://github.com/naterchrdsn/angular-grab.git",
99
- "directory": "packages/angular-grab"
100
- },
101
- "homepage": "https://github.com/naterchrdsn/angular-grab",
102
- "bugs": "https://github.com/naterchrdsn/angular-grab/issues",
103
- "keywords": [
104
- "angular",
105
- "angular-grab",
106
- "element-picker",
107
- "developer-tools",
108
- "ai",
109
- "esbuild",
110
- "vite",
111
- "webpack"
112
- ],
113
- "scripts": {
114
- "build": "tsup",
115
- "dev": "tsup --watch",
116
- "test": "vitest run",
117
- "clean": "rm -rf dist"
19
+ "@types/node": "^25.3.4",
20
+ "turbo": "^2.8.13"
118
21
  }
119
- }
22
+ }
@@ -0,0 +1,96 @@
1
+ {
2
+ "name": "angular-grab",
3
+ "version": "0.1.2",
4
+ "description": "Grab any element in your Angular app and give it to AI coding agents",
5
+ "author": "Nate Richardson",
6
+ "license": "MIT",
7
+ "type": "module",
8
+ "publishConfig": {
9
+ "access": "public"
10
+ },
11
+ "main": "./dist/core/index.cjs",
12
+ "module": "./dist/core/index.js",
13
+ "types": "./dist/core/index.d.ts",
14
+ "bin": {
15
+ "angular-grab": "./dist/cli/index.js"
16
+ },
17
+ "builders": "./builders.json",
18
+ "exports": {
19
+ ".": {
20
+ "types": "./dist/core/index.d.ts",
21
+ "import": "./dist/core/index.js",
22
+ "require": "./dist/core/index.cjs"
23
+ },
24
+ "./global": "./dist/core/index.global.js",
25
+ "./angular": {
26
+ "types": "./dist/angular/index.d.ts",
27
+ "import": "./dist/angular/index.js"
28
+ },
29
+ "./esbuild": {
30
+ "types": "./dist/esbuild-plugin/index.d.ts",
31
+ "import": "./dist/esbuild-plugin/index.js",
32
+ "require": "./dist/esbuild-plugin/index.cjs"
33
+ },
34
+ "./vite": {
35
+ "types": "./dist/vite-plugin/index.d.ts",
36
+ "import": "./dist/vite-plugin/index.js"
37
+ },
38
+ "./webpack": {
39
+ "types": "./dist/webpack-plugin/index.d.ts",
40
+ "import": "./dist/webpack-plugin/index.js",
41
+ "require": "./dist/webpack-plugin/index.cjs"
42
+ },
43
+ "./webpack/loader": {
44
+ "import": "./dist/webpack-plugin/loader.js",
45
+ "require": "./dist/webpack-plugin/loader.cjs"
46
+ },
47
+ "./builder": {
48
+ "require": "./dist/builder/index.js"
49
+ },
50
+ "./builders.json": "./builders.json",
51
+ "./package.json": "./package.json"
52
+ },
53
+ "files": ["dist", "builders.json", "README.md"],
54
+ "scripts": {
55
+ "prebuild": "cp ../../README.md .",
56
+ "build": "tsup",
57
+ "dev": "tsup --watch",
58
+ "test": "vitest run",
59
+ "clean": "rm -rf dist README.md"
60
+ },
61
+ "peerDependencies": {
62
+ "@angular/core": ">=19.0.0",
63
+ "@angular/build": ">=18.0.0",
64
+ "@angular-devkit/architect": ">=0.1800.0",
65
+ "esbuild": ">=0.17.0",
66
+ "typescript": ">=5.0.0",
67
+ "vite": ">=5.0.0",
68
+ "webpack": ">=5.0.0"
69
+ },
70
+ "peerDependenciesMeta": {
71
+ "@angular/core": { "optional": true },
72
+ "@angular/build": { "optional": true },
73
+ "@angular-devkit/architect": { "optional": true },
74
+ "esbuild": { "optional": true },
75
+ "vite": { "optional": true },
76
+ "webpack": { "optional": true }
77
+ },
78
+ "devDependencies": {
79
+ "@angular/core": "^21.0.0",
80
+ "@angular/build": "^21.1.1",
81
+ "@angular-devkit/architect": "^0.2101.1",
82
+ "esbuild": "^0.21.0",
83
+ "tsup": "^8.0.0",
84
+ "typescript": "^5.4.0",
85
+ "vite": "^5.0.0",
86
+ "vitest": "^2.0.0"
87
+ },
88
+ "repository": {
89
+ "type": "git",
90
+ "url": "https://github.com/naterchrdsn/angular-grab.git",
91
+ "directory": "packages/angular-grab"
92
+ },
93
+ "homepage": "https://angular-grab.com",
94
+ "bugs": "https://github.com/naterchrdsn/angular-grab/issues",
95
+ "keywords": ["angular", "angular-grab", "element-picker", "developer-tools", "ai", "esbuild", "vite", "webpack"]
96
+ }