astryx-dracula 0.5.0 → 0.6.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 (129) hide show
  1. package/BRAND.md +3 -3
  2. package/README.md +7 -4
  3. package/USAGE.md +49 -49
  4. package/astryx-dracula.d.ts +2 -2
  5. package/astryx-dracula.js +25 -9
  6. package/astryx-dracula.variants.d.ts +2 -2
  7. package/astryx.integration.mjs +1 -1
  8. package/icons.mjs +21 -17
  9. package/icons.tsx +69 -62
  10. package/package.json +125 -120
  11. package/shared/auth-chrome-config.ts +6 -6
  12. package/shared/auth-chrome.tsx +143 -144
  13. package/shared/auth-copy.ts +14 -14
  14. package/shared/chaptered-doc-config.ts +48 -51
  15. package/shared/chaptered-doc.tsx +267 -289
  16. package/shared/chart-hues.ts +25 -10
  17. package/shared/chart-labels.tsx +31 -30
  18. package/shared/chart-legend.tsx +55 -56
  19. package/shared/chart-panel-style.ts +3 -3
  20. package/shared/data-bar.tsx +97 -102
  21. package/shared/format-money.ts +1 -1
  22. package/shared/gallery-image.ts +6 -6
  23. package/shared/login-demo.ts +1 -1
  24. package/shared/metric-card.tsx +101 -105
  25. package/shared/metric-delta.tsx +28 -27
  26. package/shared/order-desk.tsx +205 -216
  27. package/shared/revenue-chart.tsx +145 -165
  28. package/shared/scene-castle.tsx +206 -291
  29. package/shared/scene-frame.tsx +33 -32
  30. package/shared/scene-hues.ts +17 -17
  31. package/shared/scene-tile.tsx +88 -92
  32. package/shared/settings-data.ts +119 -125
  33. package/shared/settings-rows.tsx +122 -159
  34. package/shared/sparkline.tsx +75 -88
  35. package/shared/sso-icons.tsx +10 -22
  36. package/shared/stars.tsx +16 -25
  37. package/templates/ai-chat-landing.template.mjs +5 -4
  38. package/templates/ai-chat-landing.tsx +473 -460
  39. package/templates/ai-chat.template.mjs +5 -4
  40. package/templates/ai-chat.tsx +543 -612
  41. package/templates/blank.template.mjs +5 -4
  42. package/templates/blank.tsx +18 -14
  43. package/templates/centered-hero.template.mjs +5 -4
  44. package/templates/centered-hero.tsx +55 -68
  45. package/templates/classic-gallery.template.mjs +5 -4
  46. package/templates/classic-gallery.tsx +97 -104
  47. package/templates/contact-form.template.mjs +5 -4
  48. package/templates/contact-form.tsx +247 -282
  49. package/templates/dashboard-portfolio.template.mjs +5 -4
  50. package/templates/dashboard-portfolio.tsx +717 -548
  51. package/templates/dashboard.template.mjs +5 -4
  52. package/templates/dashboard.tsx +596 -567
  53. package/templates/detail-page.template.mjs +5 -4
  54. package/templates/detail-page.tsx +546 -603
  55. package/templates/documentation-design.template.mjs +5 -4
  56. package/templates/documentation-design.tsx +231 -243
  57. package/templates/documentation-technical.template.mjs +5 -4
  58. package/templates/documentation-technical.tsx +236 -239
  59. package/templates/documentation.template.mjs +5 -4
  60. package/templates/documentation.tsx +267 -279
  61. package/templates/editor.template.mjs +5 -4
  62. package/templates/editor.tsx +844 -877
  63. package/templates/file-explorer.template.mjs +5 -4
  64. package/templates/file-explorer.tsx +566 -590
  65. package/templates/form-two-column.template.mjs +5 -4
  66. package/templates/form-two-column.tsx +195 -210
  67. package/templates/gallery-hero.template.mjs +5 -4
  68. package/templates/gallery-hero.tsx +93 -114
  69. package/templates/ide.template.mjs +5 -4
  70. package/templates/ide.tsx +407 -453
  71. package/templates/incident-console.template.mjs +5 -4
  72. package/templates/incident-console.tsx +593 -575
  73. package/templates/kanban-board.template.mjs +5 -4
  74. package/templates/kanban-board.tsx +665 -683
  75. package/templates/library.template.mjs +5 -4
  76. package/templates/library.tsx +409 -430
  77. package/templates/login-card.template.mjs +5 -4
  78. package/templates/login-card.tsx +63 -72
  79. package/templates/login-split.template.mjs +5 -4
  80. package/templates/login-split.tsx +192 -193
  81. package/templates/login-sso.template.mjs +5 -4
  82. package/templates/login-sso.tsx +257 -258
  83. package/templates/login.template.mjs +5 -4
  84. package/templates/login.tsx +53 -49
  85. package/templates/messaging-shell.template.mjs +5 -4
  86. package/templates/messaging-shell.tsx +556 -574
  87. package/templates/mixed-gallery.template.mjs +5 -4
  88. package/templates/mixed-gallery.tsx +60 -58
  89. package/templates/payment-form.template.mjs +5 -4
  90. package/templates/payment-form.tsx +882 -991
  91. package/templates/product-detail.template.mjs +5 -4
  92. package/templates/product-detail.tsx +261 -272
  93. package/templates/product-gallery.template.mjs +5 -4
  94. package/templates/product-gallery.tsx +126 -137
  95. package/templates/product-tour.template.mjs +5 -4
  96. package/templates/product-tour.tsx +741 -773
  97. package/templates/settings-dialog.template.mjs +5 -4
  98. package/templates/settings-dialog.tsx +688 -717
  99. package/templates/settings-sidebar.template.mjs +5 -4
  100. package/templates/settings-sidebar.tsx +762 -807
  101. package/templates/settings.template.mjs +5 -4
  102. package/templates/settings.tsx +289 -304
  103. package/templates/shell-nav.template.mjs +5 -4
  104. package/templates/shell-nav.tsx +212 -219
  105. package/templates/shell-side-nav.template.mjs +5 -4
  106. package/templates/shell-side-nav.tsx +135 -157
  107. package/templates/shell-top-nav.template.mjs +5 -4
  108. package/templates/shell-top-nav.tsx +182 -203
  109. package/templates/side-gallery.template.mjs +5 -4
  110. package/templates/side-gallery.tsx +85 -90
  111. package/templates/table-grouped.template.mjs +5 -4
  112. package/templates/table-grouped.tsx +1000 -1053
  113. package/templates/table-page-chart.template.mjs +5 -4
  114. package/templates/table-page-chart.tsx +400 -398
  115. package/templates/table-page-heatmap-status.template.mjs +5 -4
  116. package/templates/table-page-heatmap-status.tsx +483 -512
  117. package/templates/table-page-shoe-store-heatmap.template.mjs +5 -4
  118. package/templates/table-page-shoe-store-heatmap.tsx +748 -746
  119. package/templates/table-page.template.mjs +5 -4
  120. package/templates/table-page.tsx +396 -405
  121. package/templates/table.template.mjs +5 -4
  122. package/templates/table.tsx +92 -93
  123. package/templates/tech-report.template.mjs +5 -4
  124. package/templates/tech-report.tsx +1316 -1304
  125. package/templates/theme-showcase.template.mjs +5 -4
  126. package/templates/theme-showcase.tsx +871 -951
  127. package/theme.css +35 -77
  128. package/theme.css.d.ts +9 -0
  129. package/tokens.css +373 -380
@@ -1,421 +1,423 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
- // XLE (canonical structure, validated with `bunx astryx layout check`):
3
- // L > (LH[divider] > H[a=center g=2] > (SI[size=fill] > Hd"Matcha Bar"[level=1]) + IB"Filter"[variant=ghost] + IB"Export"[variant=ghost] + B.primary"New order") + (LC[p=3] > V[g=4] > C[p=4] + (T[hover] > (TR > THC"Order" + THC"Product" + THC"Amount" + THC"Customer" + THC"Email" + THC"Status" + THC"Date") + (TR > TC"ORD-1001" + TC"Ceremonial Matcha Latte" + TC"$6" + TC"Sarah Chen" + TC"sarah.chen@acme.co" + (TC > Tk.green"Completed") + TC"2025-01-15")*6))
2
+ // XLE (canonical structure of the tree below; the CLI had no XLE validator
3
+ // after `astryx layout` was removed in 0.7.0, so this is a reading aid and a
4
+ // human drift check — update it with the file, never alone):
5
+ // L[h=fill] > (LH[divider p=6] > H[a=center g=2] > (SI[size=fill] > Hd"Matcha Bar"[level=1 t=display-2]) + IB"Filter"[variant=ghost] + IB"Export"[variant=ghost] + B.primary"New order") + (LC[p=3] > V[g=4] > (V[g=3] > RC + Tx"Daily revenue · Jan 1–15"[t=supporting] + (H[g=2 a=center] > Ic + Tx"Revenue"[t=supporting])) + (T[hover density=balanced dv=rows] > (TR > THC"Order" + THC"Product" + THC"Amount" + THC"Customer" + THC"Email" + THC"Status" + THC"Date") + (TR > TC"ORD-1001" + TC"Ceremonial Matcha Latte" + TC"$6" + TC"Sarah Chen" + TC"sarah.chen@acme.co" + (TC > Tk.green"Completed") + TC"2025-01-15")*30))
4
6
 
5
7
  /**
6
8
  * Matcha Bar — order desk: a daily revenue line over the full order log. Frame: page header (title + icon actions) | content column (chart, t (Frame/responsive/container: see XLE header above.)
7
9
  */
8
10
 
9
11
  import {
10
- OrderDesk,
11
- type OrderDeskProduct,
12
- type OrderDeskRow,
13
- } from 'astryx-dracula/shared/order-desk';
12
+ OrderDesk,
13
+ type OrderDeskProduct,
14
+ type OrderDeskRow,
15
+ } from "astryx-dracula/shared/order-desk";
14
16
 
15
17
  // ============= DATA =============
16
18
 
17
19
  const PRODUCTS: OrderDeskProduct[] = [
18
- {
19
- name: 'Ceremonial Matcha Latte',
20
- category: 'Matcha',
21
- accent: 'var(--dracula-green)',
22
- price: 6,
23
- },
24
- {
25
- name: 'Oat Milk Cappuccino',
26
- category: 'Coffee',
27
- accent: 'var(--dracula-orange)',
28
- price: 5,
29
- },
30
- {
31
- name: 'Jasmine Green Tea',
32
- category: 'Tea',
33
- accent: 'var(--dracula-cyan)',
34
- price: 4,
35
- },
36
- {
37
- name: 'Mango Matcha Smoothie',
38
- category: 'Smoothie',
39
- accent: 'var(--dracula-pink)',
40
- price: 8,
41
- },
42
- {
43
- name: 'Hojicha Latte',
44
- category: 'Specialty',
45
- accent: 'var(--dracula-pink)',
46
- price: 7,
47
- },
48
- {
49
- name: 'Iced Yuzu Matcha',
50
- category: 'Matcha',
51
- accent: 'var(--dracula-yellow)',
52
- price: 7,
53
- },
20
+ {
21
+ name: "Ceremonial Matcha Latte",
22
+ category: "Matcha",
23
+ accent: "var(--dracula-green)",
24
+ price: 6,
25
+ },
26
+ {
27
+ name: "Oat Milk Cappuccino",
28
+ category: "Coffee",
29
+ accent: "var(--dracula-orange)",
30
+ price: 5,
31
+ },
32
+ {
33
+ name: "Jasmine Green Tea",
34
+ category: "Tea",
35
+ accent: "var(--dracula-cyan)",
36
+ price: 4,
37
+ },
38
+ {
39
+ name: "Mango Matcha Smoothie",
40
+ category: "Smoothie",
41
+ accent: "var(--dracula-pink)",
42
+ price: 8,
43
+ },
44
+ {
45
+ name: "Hojicha Latte",
46
+ category: "Specialty",
47
+ accent: "var(--dracula-pink)",
48
+ price: 7,
49
+ },
50
+ {
51
+ name: "Iced Yuzu Matcha",
52
+ category: "Matcha",
53
+ accent: "var(--dracula-yellow)",
54
+ price: 7,
55
+ },
54
56
  ];
55
57
 
56
58
  const orders: OrderDeskRow[] = [
57
- {
58
- id: 'ORD-1001',
59
- customer: 'Sarah Chen',
60
- email: 'sarah.chen@acme.co',
61
- product: PRODUCTS[0].name,
62
- category: PRODUCTS[0].category,
63
- imageIndex: 0,
64
- amount: 6,
65
- status: 'completed',
66
- date: '2025-01-15',
67
- },
68
- {
69
- id: 'ORD-1002',
70
- customer: 'Marcus Rivera',
71
- email: 'mrivera@globex.com',
72
- product: PRODUCTS[1].name,
73
- category: PRODUCTS[1].category,
74
- imageIndex: 1,
75
- amount: 5,
76
- status: 'completed',
77
- date: '2025-01-15',
78
- },
79
- {
80
- id: 'ORD-1003',
81
- customer: 'Aisha Patel',
82
- email: 'aisha.p@initech.io',
83
- product: PRODUCTS[2].name,
84
- category: PRODUCTS[2].category,
85
- imageIndex: 2,
86
- amount: 4,
87
- status: 'shipped',
88
- date: '2025-01-14',
89
- },
90
- {
91
- id: 'ORD-1004',
92
- customer: "James O'Brien",
93
- email: 'jobrien@umbrella.net',
94
- product: PRODUCTS[3].name,
95
- category: PRODUCTS[3].category,
96
- imageIndex: 3,
97
- amount: 8,
98
- status: 'processing',
99
- date: '2025-01-14',
100
- },
101
- {
102
- id: 'ORD-1005',
103
- customer: 'Yuki Tanaka',
104
- email: 'yuki@soylent.jp',
105
- product: PRODUCTS[4].name,
106
- category: PRODUCTS[4].category,
107
- imageIndex: 4,
108
- amount: 7,
109
- status: 'completed',
110
- date: '2025-01-13',
111
- },
112
- {
113
- id: 'ORD-1006',
114
- customer: 'Elena Volkov',
115
- email: 'elena.v@wayne.com',
116
- product: PRODUCTS[5].name,
117
- category: PRODUCTS[5].category,
118
- imageIndex: 5,
119
- amount: 7,
120
- status: 'refunded',
121
- date: '2025-01-13',
122
- },
123
- {
124
- id: 'ORD-1007',
125
- customer: 'David Kim',
126
- email: 'dkim@stark.io',
127
- product: PRODUCTS[0].name,
128
- category: PRODUCTS[0].category,
129
- imageIndex: 0,
130
- amount: 6,
131
- status: 'completed',
132
- date: '2025-01-12',
133
- },
134
- {
135
- id: 'ORD-1008',
136
- customer: 'Fatima Al-Rashid',
137
- email: 'fatima@oscorp.ae',
138
- product: PRODUCTS[1].name,
139
- category: PRODUCTS[1].category,
140
- imageIndex: 1,
141
- amount: 5,
142
- status: 'shipped',
143
- date: '2025-01-12',
144
- },
145
- {
146
- id: 'ORD-1009',
147
- customer: 'Lucas Andersson',
148
- email: 'lucas.a@cyberdyne.se',
149
- product: PRODUCTS[2].name,
150
- category: PRODUCTS[2].category,
151
- imageIndex: 2,
152
- amount: 4,
153
- status: 'completed',
154
- date: '2025-01-11',
155
- },
156
- {
157
- id: 'ORD-1010',
158
- customer: 'Priya Sharma',
159
- email: 'priya@aperture.in',
160
- product: PRODUCTS[3].name,
161
- category: PRODUCTS[3].category,
162
- imageIndex: 3,
163
- amount: 8,
164
- status: 'processing',
165
- date: '2025-01-11',
166
- },
167
- {
168
- id: 'ORD-1011',
169
- customer: 'Noah Williams',
170
- email: 'noah.w@massive.com',
171
- product: PRODUCTS[4].name,
172
- category: PRODUCTS[4].category,
173
- imageIndex: 4,
174
- amount: 7,
175
- status: 'completed',
176
- date: '2025-01-10',
177
- },
178
- {
179
- id: 'ORD-1012',
180
- customer: 'Sofia Garcia',
181
- email: 'sgarcia@tyrell.mx',
182
- product: PRODUCTS[5].name,
183
- category: PRODUCTS[5].category,
184
- imageIndex: 5,
185
- amount: 7,
186
- status: 'completed',
187
- date: '2025-01-10',
188
- },
189
- {
190
- id: 'ORD-1013',
191
- customer: 'Oliver Brown',
192
- email: 'oliver.b@weyland.uk',
193
- product: PRODUCTS[0].name,
194
- category: PRODUCTS[0].category,
195
- imageIndex: 0,
196
- amount: 6,
197
- status: 'shipped',
198
- date: '2025-01-09',
199
- },
200
- {
201
- id: 'ORD-1014',
202
- customer: 'Mei Lin',
203
- email: 'mei.lin@choam.cn',
204
- product: PRODUCTS[1].name,
205
- category: PRODUCTS[1].category,
206
- imageIndex: 1,
207
- amount: 5,
208
- status: 'completed',
209
- date: '2025-01-09',
210
- },
211
- {
212
- id: 'ORD-1015',
213
- customer: 'Hassan Ahmed',
214
- email: 'hahmed@abstergo.eg',
215
- product: PRODUCTS[2].name,
216
- category: PRODUCTS[2].category,
217
- imageIndex: 2,
218
- amount: 4,
219
- status: 'refunded',
220
- date: '2025-01-08',
221
- },
222
- {
223
- id: 'ORD-1016',
224
- customer: 'Isabella Rossi',
225
- email: 'irossi@genom.it',
226
- product: PRODUCTS[3].name,
227
- category: PRODUCTS[3].category,
228
- imageIndex: 3,
229
- amount: 8,
230
- status: 'completed',
231
- date: '2025-01-08',
232
- },
233
- {
234
- id: 'ORD-1017',
235
- customer: 'Liam Murphy',
236
- email: 'liam.m@mishima.ie',
237
- product: PRODUCTS[4].name,
238
- category: PRODUCTS[4].category,
239
- imageIndex: 4,
240
- amount: 7,
241
- status: 'processing',
242
- date: '2025-01-07',
243
- },
244
- {
245
- id: 'ORD-1018',
246
- customer: 'Chloe Dubois',
247
- email: 'cdubois@armacham.fr',
248
- product: PRODUCTS[5].name,
249
- category: PRODUCTS[5].category,
250
- imageIndex: 5,
251
- amount: 7,
252
- status: 'completed',
253
- date: '2025-01-07',
254
- },
255
- {
256
- id: 'ORD-1019',
257
- customer: 'Andre Santos',
258
- email: 'asantos@shinra.br',
259
- product: PRODUCTS[0].name,
260
- category: PRODUCTS[0].category,
261
- imageIndex: 0,
262
- amount: 6,
263
- status: 'shipped',
264
- date: '2025-01-06',
265
- },
266
- {
267
- id: 'ORD-1020',
268
- customer: 'Nina Johansson',
269
- email: 'nina.j@lexcorp.se',
270
- product: PRODUCTS[1].name,
271
- category: PRODUCTS[1].category,
272
- imageIndex: 1,
273
- amount: 5,
274
- status: 'completed',
275
- date: '2025-01-06',
276
- },
277
- {
278
- id: 'ORD-1021',
279
- customer: 'Raj Kapoor',
280
- email: 'raj.k@vaultec.in',
281
- product: PRODUCTS[2].name,
282
- category: PRODUCTS[2].category,
283
- imageIndex: 2,
284
- amount: 4,
285
- status: 'completed',
286
- date: '2025-01-05',
287
- },
288
- {
289
- id: 'ORD-1022',
290
- customer: 'Emma Thompson',
291
- email: 'ethompson@monarch.uk',
292
- product: PRODUCTS[3].name,
293
- category: PRODUCTS[3].category,
294
- imageIndex: 3,
295
- amount: 8,
296
- status: 'completed',
297
- date: '2025-01-05',
298
- },
299
- {
300
- id: 'ORD-1023',
301
- customer: 'Carlos Mendez',
302
- email: 'cmendez@sirius.ar',
303
- product: PRODUCTS[4].name,
304
- category: PRODUCTS[4].category,
305
- imageIndex: 4,
306
- amount: 7,
307
- status: 'shipped',
308
- date: '2025-01-04',
309
- },
310
- {
311
- id: 'ORD-1024',
312
- customer: 'Zoe Mitchell',
313
- email: 'zoe.m@hyperion.au',
314
- product: PRODUCTS[5].name,
315
- category: PRODUCTS[5].category,
316
- imageIndex: 5,
317
- amount: 7,
318
- status: 'processing',
319
- date: '2025-01-04',
320
- },
321
- {
322
- id: 'ORD-1025',
323
- customer: 'Henrik Larsson',
324
- email: 'hlarsson@volvo.se',
325
- product: PRODUCTS[0].name,
326
- category: PRODUCTS[0].category,
327
- imageIndex: 0,
328
- amount: 6,
329
- status: 'completed',
330
- date: '2025-01-03',
331
- },
332
- {
333
- id: 'ORD-1026',
334
- customer: 'Amara Okafor',
335
- email: 'aokafor@wakanda.ng',
336
- product: PRODUCTS[1].name,
337
- category: PRODUCTS[1].category,
338
- imageIndex: 1,
339
- amount: 5,
340
- status: 'completed',
341
- date: '2025-01-03',
342
- },
343
- {
344
- id: 'ORD-1027',
345
- customer: 'Leo Fischer',
346
- email: 'lfischer@kruger.de',
347
- product: PRODUCTS[2].name,
348
- category: PRODUCTS[2].category,
349
- imageIndex: 2,
350
- amount: 4,
351
- status: 'completed',
352
- date: '2025-01-02',
353
- },
354
- {
355
- id: 'ORD-1028',
356
- customer: 'Maya Petrov',
357
- email: 'mpetrov@kaiba.ru',
358
- product: PRODUCTS[3].name,
359
- category: PRODUCTS[3].category,
360
- imageIndex: 3,
361
- amount: 8,
362
- status: 'shipped',
363
- date: '2025-01-02',
364
- },
365
- {
366
- id: 'ORD-1029',
367
- customer: 'Tomás Herrera',
368
- email: 'therrera@nexus.co',
369
- product: PRODUCTS[4].name,
370
- category: PRODUCTS[4].category,
371
- imageIndex: 4,
372
- amount: 7,
373
- status: 'completed',
374
- date: '2025-01-01',
375
- },
376
- {
377
- id: 'ORD-1030',
378
- customer: 'Grace Nakamura',
379
- email: 'gnakamura@capsule.jp',
380
- product: PRODUCTS[5].name,
381
- category: PRODUCTS[5].category,
382
- imageIndex: 5,
383
- amount: 7,
384
- status: 'completed',
385
- date: '2025-01-01',
386
- },
59
+ {
60
+ id: "ORD-1001",
61
+ customer: "Sarah Chen",
62
+ email: "sarah.chen@acme.co",
63
+ product: PRODUCTS[0].name,
64
+ category: PRODUCTS[0].category,
65
+ imageIndex: 0,
66
+ amount: 6,
67
+ status: "completed",
68
+ date: "2025-01-15",
69
+ },
70
+ {
71
+ id: "ORD-1002",
72
+ customer: "Marcus Rivera",
73
+ email: "mrivera@globex.com",
74
+ product: PRODUCTS[1].name,
75
+ category: PRODUCTS[1].category,
76
+ imageIndex: 1,
77
+ amount: 5,
78
+ status: "completed",
79
+ date: "2025-01-15",
80
+ },
81
+ {
82
+ id: "ORD-1003",
83
+ customer: "Aisha Patel",
84
+ email: "aisha.p@initech.io",
85
+ product: PRODUCTS[2].name,
86
+ category: PRODUCTS[2].category,
87
+ imageIndex: 2,
88
+ amount: 4,
89
+ status: "shipped",
90
+ date: "2025-01-14",
91
+ },
92
+ {
93
+ id: "ORD-1004",
94
+ customer: "James O'Brien",
95
+ email: "jobrien@umbrella.net",
96
+ product: PRODUCTS[3].name,
97
+ category: PRODUCTS[3].category,
98
+ imageIndex: 3,
99
+ amount: 8,
100
+ status: "processing",
101
+ date: "2025-01-14",
102
+ },
103
+ {
104
+ id: "ORD-1005",
105
+ customer: "Yuki Tanaka",
106
+ email: "yuki@soylent.jp",
107
+ product: PRODUCTS[4].name,
108
+ category: PRODUCTS[4].category,
109
+ imageIndex: 4,
110
+ amount: 7,
111
+ status: "completed",
112
+ date: "2025-01-13",
113
+ },
114
+ {
115
+ id: "ORD-1006",
116
+ customer: "Elena Volkov",
117
+ email: "elena.v@wayne.com",
118
+ product: PRODUCTS[5].name,
119
+ category: PRODUCTS[5].category,
120
+ imageIndex: 5,
121
+ amount: 7,
122
+ status: "refunded",
123
+ date: "2025-01-13",
124
+ },
125
+ {
126
+ id: "ORD-1007",
127
+ customer: "David Kim",
128
+ email: "dkim@stark.io",
129
+ product: PRODUCTS[0].name,
130
+ category: PRODUCTS[0].category,
131
+ imageIndex: 0,
132
+ amount: 6,
133
+ status: "completed",
134
+ date: "2025-01-12",
135
+ },
136
+ {
137
+ id: "ORD-1008",
138
+ customer: "Fatima Al-Rashid",
139
+ email: "fatima@oscorp.ae",
140
+ product: PRODUCTS[1].name,
141
+ category: PRODUCTS[1].category,
142
+ imageIndex: 1,
143
+ amount: 5,
144
+ status: "shipped",
145
+ date: "2025-01-12",
146
+ },
147
+ {
148
+ id: "ORD-1009",
149
+ customer: "Lucas Andersson",
150
+ email: "lucas.a@cyberdyne.se",
151
+ product: PRODUCTS[2].name,
152
+ category: PRODUCTS[2].category,
153
+ imageIndex: 2,
154
+ amount: 4,
155
+ status: "completed",
156
+ date: "2025-01-11",
157
+ },
158
+ {
159
+ id: "ORD-1010",
160
+ customer: "Priya Sharma",
161
+ email: "priya@aperture.in",
162
+ product: PRODUCTS[3].name,
163
+ category: PRODUCTS[3].category,
164
+ imageIndex: 3,
165
+ amount: 8,
166
+ status: "processing",
167
+ date: "2025-01-11",
168
+ },
169
+ {
170
+ id: "ORD-1011",
171
+ customer: "Noah Williams",
172
+ email: "noah.w@massive.com",
173
+ product: PRODUCTS[4].name,
174
+ category: PRODUCTS[4].category,
175
+ imageIndex: 4,
176
+ amount: 7,
177
+ status: "completed",
178
+ date: "2025-01-10",
179
+ },
180
+ {
181
+ id: "ORD-1012",
182
+ customer: "Sofia Garcia",
183
+ email: "sgarcia@tyrell.mx",
184
+ product: PRODUCTS[5].name,
185
+ category: PRODUCTS[5].category,
186
+ imageIndex: 5,
187
+ amount: 7,
188
+ status: "completed",
189
+ date: "2025-01-10",
190
+ },
191
+ {
192
+ id: "ORD-1013",
193
+ customer: "Oliver Brown",
194
+ email: "oliver.b@weyland.uk",
195
+ product: PRODUCTS[0].name,
196
+ category: PRODUCTS[0].category,
197
+ imageIndex: 0,
198
+ amount: 6,
199
+ status: "shipped",
200
+ date: "2025-01-09",
201
+ },
202
+ {
203
+ id: "ORD-1014",
204
+ customer: "Mei Lin",
205
+ email: "mei.lin@choam.cn",
206
+ product: PRODUCTS[1].name,
207
+ category: PRODUCTS[1].category,
208
+ imageIndex: 1,
209
+ amount: 5,
210
+ status: "completed",
211
+ date: "2025-01-09",
212
+ },
213
+ {
214
+ id: "ORD-1015",
215
+ customer: "Hassan Ahmed",
216
+ email: "hahmed@abstergo.eg",
217
+ product: PRODUCTS[2].name,
218
+ category: PRODUCTS[2].category,
219
+ imageIndex: 2,
220
+ amount: 4,
221
+ status: "refunded",
222
+ date: "2025-01-08",
223
+ },
224
+ {
225
+ id: "ORD-1016",
226
+ customer: "Isabella Rossi",
227
+ email: "irossi@genom.it",
228
+ product: PRODUCTS[3].name,
229
+ category: PRODUCTS[3].category,
230
+ imageIndex: 3,
231
+ amount: 8,
232
+ status: "completed",
233
+ date: "2025-01-08",
234
+ },
235
+ {
236
+ id: "ORD-1017",
237
+ customer: "Liam Murphy",
238
+ email: "liam.m@mishima.ie",
239
+ product: PRODUCTS[4].name,
240
+ category: PRODUCTS[4].category,
241
+ imageIndex: 4,
242
+ amount: 7,
243
+ status: "processing",
244
+ date: "2025-01-07",
245
+ },
246
+ {
247
+ id: "ORD-1018",
248
+ customer: "Chloe Dubois",
249
+ email: "cdubois@armacham.fr",
250
+ product: PRODUCTS[5].name,
251
+ category: PRODUCTS[5].category,
252
+ imageIndex: 5,
253
+ amount: 7,
254
+ status: "completed",
255
+ date: "2025-01-07",
256
+ },
257
+ {
258
+ id: "ORD-1019",
259
+ customer: "Andre Santos",
260
+ email: "asantos@shinra.br",
261
+ product: PRODUCTS[0].name,
262
+ category: PRODUCTS[0].category,
263
+ imageIndex: 0,
264
+ amount: 6,
265
+ status: "shipped",
266
+ date: "2025-01-06",
267
+ },
268
+ {
269
+ id: "ORD-1020",
270
+ customer: "Nina Johansson",
271
+ email: "nina.j@lexcorp.se",
272
+ product: PRODUCTS[1].name,
273
+ category: PRODUCTS[1].category,
274
+ imageIndex: 1,
275
+ amount: 5,
276
+ status: "completed",
277
+ date: "2025-01-06",
278
+ },
279
+ {
280
+ id: "ORD-1021",
281
+ customer: "Raj Kapoor",
282
+ email: "raj.k@vaultec.in",
283
+ product: PRODUCTS[2].name,
284
+ category: PRODUCTS[2].category,
285
+ imageIndex: 2,
286
+ amount: 4,
287
+ status: "completed",
288
+ date: "2025-01-05",
289
+ },
290
+ {
291
+ id: "ORD-1022",
292
+ customer: "Emma Thompson",
293
+ email: "ethompson@monarch.uk",
294
+ product: PRODUCTS[3].name,
295
+ category: PRODUCTS[3].category,
296
+ imageIndex: 3,
297
+ amount: 8,
298
+ status: "completed",
299
+ date: "2025-01-05",
300
+ },
301
+ {
302
+ id: "ORD-1023",
303
+ customer: "Carlos Mendez",
304
+ email: "cmendez@sirius.ar",
305
+ product: PRODUCTS[4].name,
306
+ category: PRODUCTS[4].category,
307
+ imageIndex: 4,
308
+ amount: 7,
309
+ status: "shipped",
310
+ date: "2025-01-04",
311
+ },
312
+ {
313
+ id: "ORD-1024",
314
+ customer: "Zoe Mitchell",
315
+ email: "zoe.m@hyperion.au",
316
+ product: PRODUCTS[5].name,
317
+ category: PRODUCTS[5].category,
318
+ imageIndex: 5,
319
+ amount: 7,
320
+ status: "processing",
321
+ date: "2025-01-04",
322
+ },
323
+ {
324
+ id: "ORD-1025",
325
+ customer: "Henrik Larsson",
326
+ email: "hlarsson@volvo.se",
327
+ product: PRODUCTS[0].name,
328
+ category: PRODUCTS[0].category,
329
+ imageIndex: 0,
330
+ amount: 6,
331
+ status: "completed",
332
+ date: "2025-01-03",
333
+ },
334
+ {
335
+ id: "ORD-1026",
336
+ customer: "Amara Okafor",
337
+ email: "aokafor@wakanda.ng",
338
+ product: PRODUCTS[1].name,
339
+ category: PRODUCTS[1].category,
340
+ imageIndex: 1,
341
+ amount: 5,
342
+ status: "completed",
343
+ date: "2025-01-03",
344
+ },
345
+ {
346
+ id: "ORD-1027",
347
+ customer: "Leo Fischer",
348
+ email: "lfischer@kruger.de",
349
+ product: PRODUCTS[2].name,
350
+ category: PRODUCTS[2].category,
351
+ imageIndex: 2,
352
+ amount: 4,
353
+ status: "completed",
354
+ date: "2025-01-02",
355
+ },
356
+ {
357
+ id: "ORD-1028",
358
+ customer: "Maya Petrov",
359
+ email: "mpetrov@kaiba.ru",
360
+ product: PRODUCTS[3].name,
361
+ category: PRODUCTS[3].category,
362
+ imageIndex: 3,
363
+ amount: 8,
364
+ status: "shipped",
365
+ date: "2025-01-02",
366
+ },
367
+ {
368
+ id: "ORD-1029",
369
+ customer: "Tomás Herrera",
370
+ email: "therrera@nexus.co",
371
+ product: PRODUCTS[4].name,
372
+ category: PRODUCTS[4].category,
373
+ imageIndex: 4,
374
+ amount: 7,
375
+ status: "completed",
376
+ date: "2025-01-01",
377
+ },
378
+ {
379
+ id: "ORD-1030",
380
+ customer: "Grace Nakamura",
381
+ email: "gnakamura@capsule.jp",
382
+ product: PRODUCTS[5].name,
383
+ category: PRODUCTS[5].category,
384
+ imageIndex: 5,
385
+ amount: 7,
386
+ status: "completed",
387
+ date: "2025-01-01",
388
+ },
387
389
  ];
388
390
 
389
391
  const revenueData = [
390
- {date: 'Jan 1', revenue: 84},
391
- {date: 'Jan 2', revenue: 72},
392
- {date: 'Jan 3', revenue: 91},
393
- {date: 'Jan 4', revenue: 68},
394
- {date: 'Jan 5', revenue: 105},
395
- {date: 'Jan 6', revenue: 118},
396
- {date: 'Jan 7', revenue: 96},
397
- {date: 'Jan 8', revenue: 132},
398
- {date: 'Jan 9', revenue: 110},
399
- {date: 'Jan 10', revenue: 98},
400
- {date: 'Jan 11', revenue: 125},
401
- {date: 'Jan 12', revenue: 142},
402
- {date: 'Jan 13', revenue: 108},
403
- {date: 'Jan 14', revenue: 156},
404
- {date: 'Jan 15', revenue: 138},
392
+ { date: "Jan 1", revenue: 84 },
393
+ { date: "Jan 2", revenue: 72 },
394
+ { date: "Jan 3", revenue: 91 },
395
+ { date: "Jan 4", revenue: 68 },
396
+ { date: "Jan 5", revenue: 105 },
397
+ { date: "Jan 6", revenue: 118 },
398
+ { date: "Jan 7", revenue: 96 },
399
+ { date: "Jan 8", revenue: 132 },
400
+ { date: "Jan 9", revenue: 110 },
401
+ { date: "Jan 10", revenue: 98 },
402
+ { date: "Jan 11", revenue: 125 },
403
+ { date: "Jan 12", revenue: 142 },
404
+ { date: "Jan 13", revenue: 108 },
405
+ { date: "Jan 14", revenue: 156 },
406
+ { date: "Jan 15", revenue: 138 },
405
407
  ];
406
408
 
407
409
  // ============= PAGE (parametric OrderDesk; catalogue + rows + scale only) =============
408
410
 
409
411
  export default function ChartTable() {
410
- return (
411
- <OrderDesk
412
- title="Matcha Bar"
413
- selfHash="#/templates/table-page-chart"
414
- products={PRODUCTS}
415
- orders={orders}
416
- revenueData={revenueData}
417
- chartMax={160}
418
- gridTicks={[0, 50, 100, 150]}
419
- />
420
- );
412
+ return (
413
+ <OrderDesk
414
+ title="Matcha Bar"
415
+ selfHash="#/templates/table-page-chart"
416
+ products={PRODUCTS}
417
+ orders={orders}
418
+ revenueData={revenueData}
419
+ chartMax={160}
420
+ gridTicks={[0, 50, 100, 150]}
421
+ />
422
+ );
421
423
  }