craft-native 0.0.37 → 0.0.49

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 (89) hide show
  1. package/dist/android/src/index.js +268 -0
  2. package/dist/android/src/index.js.map +10 -0
  3. package/dist/android/templates/AndroidManifest.xml.template +69 -0
  4. package/dist/android/templates/CraftBridge.kt.template +3748 -0
  5. package/dist/android/templates/CraftBridgeExtensions.kt.template +383 -0
  6. package/dist/android/templates/CraftWidgetProvider.kt.template +246 -0
  7. package/dist/android/templates/MainActivity.kt.template +109 -0
  8. package/dist/android/templates/build.gradle.kts.app.template +80 -0
  9. package/dist/android/templates/build.gradle.kts.project.template +5 -0
  10. package/dist/android/templates/fastlane/Appfile +25 -0
  11. package/dist/android/templates/fastlane/Fastfile +192 -0
  12. package/dist/android/templates/fastlane/Gemfile +7 -0
  13. package/dist/android/templates/github-workflow-android.yml +248 -0
  14. package/dist/android/templates/github-workflow-test.yml +329 -0
  15. package/dist/android/templates/settings.gradle.kts.template +18 -0
  16. package/dist/android/templates/test-bridges.html +1463 -0
  17. package/dist/api/window.d.ts +18 -0
  18. package/dist/api/window.d.ts.map +1 -1
  19. package/dist/assets/index.d.ts.map +1 -1
  20. package/dist/bridge/core.d.ts +2 -0
  21. package/dist/bridge/core.d.ts.map +1 -1
  22. package/dist/cli.js +4168 -0
  23. package/dist/components/sidebar.d.ts +5 -1
  24. package/dist/components/sidebar.d.ts.map +1 -1
  25. package/dist/dev/devtools.d.ts +1 -1
  26. package/dist/dev/devtools.d.ts.map +1 -1
  27. package/dist/dev/hot-reload.d.ts +12 -3
  28. package/dist/dev/hot-reload.d.ts.map +1 -1
  29. package/dist/index.cjs +573 -208
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +585 -216
  32. package/dist/index.js.map +45 -0
  33. package/dist/ios/src/index.js +186 -0
  34. package/dist/ios/src/index.js.map +10 -0
  35. package/dist/ios/templates/CraftApp.swift +4241 -0
  36. package/dist/ios/templates/CraftAppExtensions.swift +361 -0
  37. package/dist/ios/templates/CraftWidget.swift +247 -0
  38. package/dist/ios/templates/Info.plist.template +65 -0
  39. package/dist/ios/templates/fastlane/Appfile +45 -0
  40. package/dist/ios/templates/fastlane/Fastfile +189 -0
  41. package/dist/ios/templates/fastlane/Gemfile +7 -0
  42. package/dist/ios/templates/fastlane/Matchfile +58 -0
  43. package/dist/ios/templates/github-workflow-ios.yml +192 -0
  44. package/dist/ios/templates/github-workflow-release.yml +175 -0
  45. package/dist/ios/templates/github-workflow-test.yml +272 -0
  46. package/dist/ios/templates/project.yml.template +25 -0
  47. package/dist/ios/templates/test-bridges.html +1463 -0
  48. package/dist/package.d.ts +106 -2
  49. package/dist/package.d.ts.map +1 -1
  50. package/dist/package.test.d.ts +2 -0
  51. package/dist/package.test.d.ts.map +1 -0
  52. package/dist/styles/sidebar-templates.d.ts.map +1 -1
  53. package/dist/styles/sidebars.d.ts +12 -8
  54. package/dist/styles/sidebars.d.ts.map +1 -1
  55. package/dist/templates/projects/blank/craft.config.ts +19 -0
  56. package/dist/templates/projects/blank/index.html +27 -0
  57. package/dist/templates/projects/blank/package.json +19 -0
  58. package/dist/templates/projects/blank/src/main.ts +26 -0
  59. package/dist/templates/projects/dashboard/craft.config.ts +42 -0
  60. package/dist/templates/projects/dashboard/index.html +13 -0
  61. package/dist/templates/projects/dashboard/package.json +20 -0
  62. package/dist/templates/projects/dashboard/src/main.ts +163 -0
  63. package/dist/templates/projects/dashboard/src/styles.css +280 -0
  64. package/dist/templates/projects/drawer/craft.config.ts +47 -0
  65. package/dist/templates/projects/drawer/index.html +13 -0
  66. package/dist/templates/projects/drawer/package.json +21 -0
  67. package/dist/templates/projects/drawer/src/main.ts +406 -0
  68. package/dist/templates/projects/drawer/src/styles.css +468 -0
  69. package/dist/templates/projects/ecommerce/craft.config.ts +32 -0
  70. package/dist/templates/projects/ecommerce/index.html +13 -0
  71. package/dist/templates/projects/ecommerce/package.json +19 -0
  72. package/dist/templates/projects/ecommerce/src/main.ts +194 -0
  73. package/dist/templates/projects/ecommerce/src/styles.css +169 -0
  74. package/dist/templates/projects/social/craft.config.ts +32 -0
  75. package/dist/templates/projects/social/index.html +13 -0
  76. package/dist/templates/projects/social/package.json +19 -0
  77. package/dist/templates/projects/social/src/main.ts +270 -0
  78. package/dist/templates/projects/social/src/styles.css +216 -0
  79. package/dist/templates/projects/tabs/craft.config.ts +47 -0
  80. package/dist/templates/projects/tabs/index.html +13 -0
  81. package/dist/templates/projects/tabs/package.json +21 -0
  82. package/dist/templates/projects/tabs/src/main.ts +177 -0
  83. package/dist/templates/projects/tabs/src/styles.css +163 -0
  84. package/dist/types.d.ts +29 -0
  85. package/dist/types.d.ts.map +1 -1
  86. package/dist/updater/index.d.ts +1 -0
  87. package/dist/updater/index.d.ts.map +1 -1
  88. package/package.json +5 -12
  89. package/bin/cli.ts +0 -937
@@ -0,0 +1,280 @@
1
+ :root {
2
+ --primary: #6366f1;
3
+ --primary-hover: #4f46e5;
4
+ --success: #10b981;
5
+ --warning: #f59e0b;
6
+ --danger: #ef4444;
7
+ --bg: #f8fafc;
8
+ --bg-card: #ffffff;
9
+ --text: #0f172a;
10
+ --text-secondary: #64748b;
11
+ --border: #e2e8f0;
12
+ --sidebar-width: 240px;
13
+ }
14
+
15
+ @media (prefers-color-scheme: dark) {
16
+ :root {
17
+ --bg: #0f172a;
18
+ --bg-card: #1e293b;
19
+ --text: #f8fafc;
20
+ --text-secondary: #94a3b8;
21
+ --border: #334155;
22
+ }
23
+ }
24
+
25
+ * {
26
+ margin: 0;
27
+ padding: 0;
28
+ box-sizing: border-box;
29
+ }
30
+
31
+ body {
32
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
33
+ background: var(--bg);
34
+ color: var(--text);
35
+ min-height: 100vh;
36
+ }
37
+
38
+ /* Layout */
39
+ .app-layout {
40
+ display: flex;
41
+ min-height: 100vh;
42
+ }
43
+
44
+ /* Sidebar */
45
+ .sidebar {
46
+ width: var(--sidebar-width);
47
+ background: var(--bg-card);
48
+ border-right: 1px solid var(--border);
49
+ padding: 20px 0;
50
+ position: fixed;
51
+ height: 100vh;
52
+ overflow-y: auto;
53
+ }
54
+
55
+ .sidebar-header {
56
+ padding: 0 20px 20px;
57
+ border-bottom: 1px solid var(--border);
58
+ margin-bottom: 20px;
59
+ }
60
+
61
+ .sidebar-header h1 {
62
+ font-size: 20px;
63
+ font-weight: 700;
64
+ }
65
+
66
+ .nav-item {
67
+ display: flex;
68
+ align-items: center;
69
+ gap: 12px;
70
+ padding: 12px 20px;
71
+ color: var(--text-secondary);
72
+ text-decoration: none;
73
+ cursor: pointer;
74
+ transition: all 0.2s;
75
+ border: none;
76
+ background: none;
77
+ width: 100%;
78
+ text-align: left;
79
+ font-size: 14px;
80
+ }
81
+
82
+ .nav-item:hover {
83
+ background: var(--bg);
84
+ color: var(--text);
85
+ }
86
+
87
+ .nav-item.active {
88
+ background: var(--primary);
89
+ color: white;
90
+ }
91
+
92
+ .nav-item svg {
93
+ width: 20px;
94
+ height: 20px;
95
+ }
96
+
97
+ /* Main Content */
98
+ .main-content {
99
+ flex: 1;
100
+ margin-left: var(--sidebar-width);
101
+ padding: 24px;
102
+ }
103
+
104
+ /* Header */
105
+ .page-header {
106
+ display: flex;
107
+ justify-content: space-between;
108
+ align-items: center;
109
+ margin-bottom: 24px;
110
+ }
111
+
112
+ .page-header h2 {
113
+ font-size: 24px;
114
+ font-weight: 600;
115
+ }
116
+
117
+ /* Stats Grid */
118
+ .stats-grid {
119
+ display: grid;
120
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
121
+ gap: 16px;
122
+ margin-bottom: 24px;
123
+ }
124
+
125
+ .stat-card {
126
+ background: var(--bg-card);
127
+ border-radius: 12px;
128
+ padding: 20px;
129
+ border: 1px solid var(--border);
130
+ }
131
+
132
+ .stat-card-header {
133
+ display: flex;
134
+ justify-content: space-between;
135
+ align-items: center;
136
+ margin-bottom: 12px;
137
+ }
138
+
139
+ .stat-card-title {
140
+ font-size: 14px;
141
+ color: var(--text-secondary);
142
+ }
143
+
144
+ .stat-card-icon {
145
+ width: 40px;
146
+ height: 40px;
147
+ border-radius: 8px;
148
+ display: flex;
149
+ align-items: center;
150
+ justify-content: center;
151
+ font-size: 20px;
152
+ }
153
+
154
+ .stat-card-value {
155
+ font-size: 28px;
156
+ font-weight: 700;
157
+ margin-bottom: 4px;
158
+ }
159
+
160
+ .stat-card-change {
161
+ font-size: 12px;
162
+ display: flex;
163
+ align-items: center;
164
+ gap: 4px;
165
+ }
166
+
167
+ .stat-card-change.positive {
168
+ color: var(--success);
169
+ }
170
+
171
+ .stat-card-change.negative {
172
+ color: var(--danger);
173
+ }
174
+
175
+ /* Card */
176
+ .card {
177
+ background: var(--bg-card);
178
+ border-radius: 12px;
179
+ border: 1px solid var(--border);
180
+ margin-bottom: 24px;
181
+ }
182
+
183
+ .card-header {
184
+ padding: 16px 20px;
185
+ border-bottom: 1px solid var(--border);
186
+ display: flex;
187
+ justify-content: space-between;
188
+ align-items: center;
189
+ }
190
+
191
+ .card-title {
192
+ font-size: 16px;
193
+ font-weight: 600;
194
+ }
195
+
196
+ .card-body {
197
+ padding: 20px;
198
+ }
199
+
200
+ /* Table */
201
+ .table {
202
+ width: 100%;
203
+ border-collapse: collapse;
204
+ }
205
+
206
+ .table th,
207
+ .table td {
208
+ padding: 12px 16px;
209
+ text-align: left;
210
+ border-bottom: 1px solid var(--border);
211
+ }
212
+
213
+ .table th {
214
+ font-size: 12px;
215
+ text-transform: uppercase;
216
+ color: var(--text-secondary);
217
+ font-weight: 500;
218
+ }
219
+
220
+ .table tr:last-child td {
221
+ border-bottom: none;
222
+ }
223
+
224
+ /* Button */
225
+ .btn {
226
+ display: inline-flex;
227
+ align-items: center;
228
+ gap: 8px;
229
+ padding: 8px 16px;
230
+ border-radius: 8px;
231
+ font-size: 14px;
232
+ font-weight: 500;
233
+ cursor: pointer;
234
+ border: none;
235
+ transition: all 0.2s;
236
+ }
237
+
238
+ .btn-primary {
239
+ background: var(--primary);
240
+ color: white;
241
+ }
242
+
243
+ .btn-primary:hover {
244
+ background: var(--primary-hover);
245
+ }
246
+
247
+ /* Badge */
248
+ .badge {
249
+ display: inline-block;
250
+ padding: 4px 8px;
251
+ border-radius: 4px;
252
+ font-size: 12px;
253
+ font-weight: 500;
254
+ }
255
+
256
+ .badge-success {
257
+ background: rgba(16, 185, 129, 0.1);
258
+ color: var(--success);
259
+ }
260
+
261
+ .badge-warning {
262
+ background: rgba(245, 158, 11, 0.1);
263
+ color: var(--warning);
264
+ }
265
+
266
+ .badge-danger {
267
+ background: rgba(239, 68, 68, 0.1);
268
+ color: var(--danger);
269
+ }
270
+
271
+ /* Responsive */
272
+ @media (max-width: 768px) {
273
+ .sidebar {
274
+ display: none;
275
+ }
276
+
277
+ .main-content {
278
+ margin-left: 0;
279
+ }
280
+ }
@@ -0,0 +1,47 @@
1
+ import type { CraftAppConfig } from 'craft-native'
2
+
3
+ const config: CraftAppConfig = {
4
+ name: '{{APP_NAME}}',
5
+ version: '1.0.0',
6
+ identifier: '{{BUNDLE_ID}}',
7
+
8
+ window: {
9
+ title: '{{APP_NAME}}',
10
+ width: 400,
11
+ height: 700,
12
+ minWidth: 320,
13
+ minHeight: 568,
14
+ resizable: true,
15
+ center: true
16
+ },
17
+
18
+ entry: './index.html',
19
+
20
+ ios: {
21
+ bundleId: '{{BUNDLE_ID}}',
22
+ appName: '{{APP_NAME}}',
23
+ version: '1.0.0',
24
+ buildNumber: '1',
25
+ deploymentTarget: '15.0',
26
+ deviceFamily: ['iphone', 'ipad'],
27
+ orientations: ['portrait', 'landscape'],
28
+ capabilities: [],
29
+ infoPlist: {}
30
+ },
31
+
32
+ android: {
33
+ packageName: '{{BUNDLE_ID}}',
34
+ versionCode: 1,
35
+ versionName: '1.0.0',
36
+ minSdk: 24,
37
+ targetSdk: 34,
38
+ compileSdk: 34,
39
+ permissions: [],
40
+ features: [],
41
+ applicationClass: '{{BUNDLE_ID}}.App',
42
+ mainActivity: '{{BUNDLE_ID}}.MainActivity',
43
+ theme: '@style/Theme.App'
44
+ }
45
+ }
46
+
47
+ export default config
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
6
+ <title>{{APP_NAME}}</title>
7
+ <link rel="stylesheet" href="./src/styles.css">
8
+ </head>
9
+ <body>
10
+ <div id="app"></div>
11
+ <script type="module" src="./src/main.ts"></script>
12
+ </body>
13
+ </html>
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "{{APP_NAME_SLUG}}",
3
+ "version": "1.0.0",
4
+ "private": true,
5
+ "type": "module",
6
+ "scripts": {
7
+ "dev": "craft dev",
8
+ "build": "craft build",
9
+ "build:release": "craft build --release",
10
+ "build:ios": "craft build --platform ios",
11
+ "build:android": "craft build --platform android",
12
+ "ios": "craft ios build && craft ios open",
13
+ "android": "craft android build && craft android open"
14
+ },
15
+ "dependencies": {
16
+ "craft-native": "workspace:*"
17
+ },
18
+ "devDependencies": {
19
+ "typescript": "^5.3.0"
20
+ }
21
+ }