@lowdefy/blocks-aggrid 5.5.1 → 6.0.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 (51) hide show
  1. package/README.md +58 -19
  2. package/dist/AgGrid.js +22 -14
  3. package/dist/AgGridInput.js +21 -14
  4. package/dist/ag-grid-antd.module.css +18 -49
  5. package/dist/blocks/AgGridAlpine/AgGridAlpine.js +4 -3
  6. package/dist/blocks/AgGridAlpine/e2e.js +1 -1
  7. package/dist/blocks/AgGridAlpine/gallery.yaml +1451 -0
  8. package/dist/blocks/AgGridAlpine/tests/AgGridAlpine.e2e.yaml +310 -0
  9. package/dist/blocks/AgGridBalham/AgGridBalham.js +4 -3
  10. package/dist/blocks/AgGridBalham/e2e.js +1 -1
  11. package/dist/blocks/AgGridBalham/gallery.yaml +645 -0
  12. package/dist/blocks/AgGridBalham/tests/AgGridBalham.e2e.yaml +594 -0
  13. package/dist/blocks/AgGridInputAlpine/AgGridInputAlpine.js +3 -2
  14. package/dist/blocks/AgGridInputAlpine/e2e.js +1 -1
  15. package/dist/blocks/AgGridInputAlpine/gallery.yaml +362 -0
  16. package/dist/blocks/AgGridInputAlpine/tests/AgGridInputAlpine.e2e.yaml +365 -0
  17. package/dist/blocks/AgGridInputBalham/AgGridInputBalham.js +3 -2
  18. package/dist/blocks/AgGridInputBalham/e2e.js +1 -1
  19. package/dist/blocks/AgGridInputBalham/gallery.yaml +362 -0
  20. package/dist/blocks/AgGridInputBalham/tests/AgGridInputBalham.e2e.yaml +365 -0
  21. package/dist/blocks/AgGridInputMaterial/AgGridInputMaterial.js +3 -2
  22. package/dist/blocks/AgGridInputMaterial/e2e.js +1 -1
  23. package/dist/blocks/AgGridInputMaterial/gallery.yaml +362 -0
  24. package/dist/blocks/AgGridInputMaterial/tests/AgGridInputMaterial.e2e.yaml +365 -0
  25. package/dist/blocks/AgGridLowdefy/AgGridLowdefy.js +45 -0
  26. package/dist/blocks/AgGridLowdefy/e2e.js +16 -0
  27. package/dist/blocks/AgGridLowdefy/gallery.yaml +1242 -0
  28. package/dist/blocks/AgGridLowdefy/meta.js +18 -0
  29. package/dist/blocks/AgGridLowdefy/tests/AgGridLowdefy.e2e.yaml +667 -0
  30. package/dist/blocks/AgGridLowdefyInput/AgGridLowdefyInput.js +48 -0
  31. package/dist/blocks/AgGridLowdefyInput/e2e.js +16 -0
  32. package/dist/blocks/AgGridLowdefyInput/gallery.yaml +489 -0
  33. package/dist/blocks/AgGridLowdefyInput/meta.js +18 -0
  34. package/dist/blocks/AgGridLowdefyInput/tests/AgGridLowdefyInput.e2e.yaml +686 -0
  35. package/dist/blocks/AgGridMaterial/AgGridMaterial.js +4 -3
  36. package/dist/blocks/AgGridMaterial/e2e.js +1 -1
  37. package/dist/blocks/AgGridMaterial/gallery.yaml +645 -0
  38. package/dist/blocks/AgGridMaterial/tests/AgGridMaterial.e2e.yaml +310 -0
  39. package/dist/blocks.js +2 -0
  40. package/dist/cellRenderers/MenuCell.js +110 -0
  41. package/dist/cellRenderers/index.js +2 -0
  42. package/dist/createAgGridDisplayHelper.js +1 -2
  43. package/dist/createAgGridInputHelper.js +1 -2
  44. package/dist/createDisplayMeta.js +115 -4
  45. package/dist/createInputMeta.js +20 -3
  46. package/dist/e2e.js +2 -0
  47. package/dist/metas.js +2 -0
  48. package/dist/processColDefs.js +75 -32
  49. package/dist/theme/themeLowdefy.js +165 -0
  50. package/dist/useColDefs.js +65 -0
  51. package/package.json +14 -17
@@ -0,0 +1,1451 @@
1
+ # Copyright 2020-2026 Lowdefy, Inc
2
+
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ - title: Custom Theme Colors
16
+ fullWidth: true
17
+ blocks:
18
+ - id: custom_theme
19
+ type: AgGridAlpine
20
+ style:
21
+ --ag-header-background-color: '#1a1a2e'
22
+ --ag-header-foreground-color: '#e0e0ff'
23
+ --ag-selected-row-background-color: 'rgba(108, 99, 255, 0.2)'
24
+ --ag-row-hover-color: 'rgba(108, 99, 255, 0.1)'
25
+ --ag-border-color: '#2a2a4a'
26
+ properties:
27
+ height: 300
28
+ columnDefs:
29
+ - field: name
30
+ headerName: Name
31
+ - field: role
32
+ headerName: Role
33
+ - field: department
34
+ headerName: Department
35
+ - field: status
36
+ headerName: Status
37
+ width: 120
38
+ rowData:
39
+ - name: Alice Johnson
40
+ role: Developer
41
+ department: Engineering
42
+ status: Active
43
+ - name: Bob Smith
44
+ role: Designer
45
+ department: Design
46
+ status: Active
47
+ - name: Charlie Lee
48
+ role: Manager
49
+ department: Sales
50
+ status: On Leave
51
+ - name: Diana Patel
52
+ role: Analyst
53
+ department: Finance
54
+ status: Active
55
+ - name: Erik Johansson
56
+ role: DevOps
57
+ department: Engineering
58
+ status: Active
59
+
60
+ - title: Basic Table
61
+ fullWidth: true
62
+ blocks:
63
+ - id: basic_table
64
+ type: AgGridAlpine
65
+ properties:
66
+ height: 300
67
+ columnDefs:
68
+ - field: name
69
+ headerName: Name
70
+ - field: age
71
+ headerName: Age
72
+ - field: email
73
+ headerName: Email
74
+ - field: country
75
+ headerName: Country
76
+ rowData:
77
+ - name: Alice Johnson
78
+ age: 28
79
+ email: alice@example.com
80
+ country: United States
81
+ - name: Bob Smith
82
+ age: 35
83
+ email: bob@example.com
84
+ country: United Kingdom
85
+ - name: Charlie Lee
86
+ age: 42
87
+ email: charlie@example.com
88
+ country: Japan
89
+ - name: Diana Patel
90
+ age: 31
91
+ email: diana@example.com
92
+ country: India
93
+ - name: Erik Johansson
94
+ age: 26
95
+ email: erik@example.com
96
+ country: Sweden
97
+ - name: Fatima Al-Rashid
98
+ age: 39
99
+ email: fatima@example.com
100
+ country: UAE
101
+
102
+ - title: Column Features
103
+ fullWidth: true
104
+ blocks:
105
+ - id: column_features
106
+ type: AgGridAlpine
107
+ properties:
108
+ height: 300
109
+ columnDefs:
110
+ - field: id
111
+ headerName: ID
112
+ width: 80
113
+ pinned: left
114
+ sortable: true
115
+ - field: product
116
+ headerName: Product Name
117
+ flex: 2
118
+ sortable: true
119
+ filter: true
120
+ - field: category
121
+ headerName: Category
122
+ flex: 1
123
+ sortable: true
124
+ filter: true
125
+ - field: price
126
+ headerName: Price ($)
127
+ width: 120
128
+ sortable: true
129
+ resizable: true
130
+ - field: stock
131
+ headerName: Stock
132
+ width: 100
133
+ sortable: true
134
+ - field: rating
135
+ headerName: Rating
136
+ width: 100
137
+ sortable: true
138
+ rowData:
139
+ - id: 1
140
+ product: Wireless Keyboard
141
+ category: Electronics
142
+ price: 49.99
143
+ stock: 230
144
+ rating: 4.5
145
+ - id: 2
146
+ product: Standing Desk
147
+ category: Furniture
148
+ price: 399.00
149
+ stock: 45
150
+ rating: 4.8
151
+ - id: 3
152
+ product: USB-C Hub
153
+ category: Electronics
154
+ price: 29.99
155
+ stock: 520
156
+ rating: 4.2
157
+ - id: 4
158
+ product: Ergonomic Chair
159
+ category: Furniture
160
+ price: 289.00
161
+ stock: 78
162
+ rating: 4.6
163
+ - id: 5
164
+ product: Webcam HD
165
+ category: Electronics
166
+ price: 79.99
167
+ stock: 310
168
+ rating: 4.0
169
+ - id: 6
170
+ product: Monitor Arm
171
+ category: Accessories
172
+ price: 39.99
173
+ stock: 190
174
+ rating: 4.3
175
+ - id: 7
176
+ product: Desk Lamp
177
+ category: Accessories
178
+ price: 24.99
179
+ stock: 415
180
+ rating: 4.1
181
+
182
+ - title: Default Column Definitions
183
+ fullWidth: true
184
+ blocks:
185
+ - id: default_col_def
186
+ type: AgGridAlpine
187
+ properties:
188
+ height: 300
189
+ defaultColDef:
190
+ sortable: true
191
+ filter: true
192
+ resizable: true
193
+ flex: 1
194
+ columnDefs:
195
+ - field: employee
196
+ headerName: Employee
197
+ - field: department
198
+ headerName: Department
199
+ - field: title
200
+ headerName: Job Title
201
+ - field: location
202
+ headerName: Office
203
+ - field: startDate
204
+ headerName: Start Date
205
+ rowData:
206
+ - employee: Sarah Chen
207
+ department: Engineering
208
+ title: Senior Developer
209
+ location: San Francisco
210
+ startDate: 2019-03-15
211
+ - employee: James Wilson
212
+ department: Marketing
213
+ title: Campaign Manager
214
+ location: New York
215
+ startDate: 2020-07-01
216
+ - employee: Maria Garcia
217
+ department: Engineering
218
+ title: Tech Lead
219
+ location: Austin
220
+ startDate: 2018-11-20
221
+ - employee: David Kim
222
+ department: Sales
223
+ title: Account Executive
224
+ location: Chicago
225
+ startDate: 2021-01-10
226
+ - employee: Emily Brown
227
+ department: Design
228
+ title: UX Designer
229
+ location: San Francisco
230
+ startDate: 2020-09-05
231
+ - employee: Ahmed Hassan
232
+ department: Engineering
233
+ title: DevOps Engineer
234
+ location: Remote
235
+ startDate: 2022-02-14
236
+
237
+ - title: Row Selection
238
+ fullWidth: true
239
+ blocks:
240
+ - id: row_selection
241
+ type: AgGridAlpine
242
+ properties:
243
+ height: 300
244
+ rowSelection:
245
+ mode: multiRow
246
+ checkboxes: false
247
+ headerCheckbox: false
248
+ enableClickSelection: true
249
+ defaultColDef:
250
+ sortable: true
251
+ flex: 1
252
+ columnDefs:
253
+ - field: task
254
+ headerName: Task
255
+ flex: 2
256
+ - field: assignee
257
+ headerName: Assignee
258
+ - field: priority
259
+ headerName: Priority
260
+ width: 120
261
+ - field: status
262
+ headerName: Status
263
+ width: 120
264
+ rowData:
265
+ - task: Design login page
266
+ assignee: Alice
267
+ priority: High
268
+ status: Done
269
+ - task: Implement API endpoints
270
+ assignee: Bob
271
+ priority: High
272
+ status: In Progress
273
+ - task: Write unit tests
274
+ assignee: Charlie
275
+ priority: Medium
276
+ status: To Do
277
+ - task: Update documentation
278
+ assignee: Diana
279
+ priority: Low
280
+ status: To Do
281
+ - task: Code review PR #42
282
+ assignee: Erik
283
+ priority: Medium
284
+ status: In Progress
285
+ - task: Deploy to staging
286
+ assignee: Fatima
287
+ priority: High
288
+ status: Done
289
+
290
+ - title: Pagination
291
+ fullWidth: true
292
+ blocks:
293
+ - id: pagination_table
294
+ type: AgGridAlpine
295
+ properties:
296
+ height: 350
297
+ pagination: true
298
+ paginationPageSize: 5
299
+ defaultColDef:
300
+ sortable: true
301
+ filter: true
302
+ flex: 1
303
+ columnDefs:
304
+ - field: orderId
305
+ headerName: Order ID
306
+ width: 120
307
+ - field: customer
308
+ headerName: Customer
309
+ - field: product
310
+ headerName: Product
311
+ - field: quantity
312
+ headerName: Qty
313
+ width: 80
314
+ - field: total
315
+ headerName: Total ($)
316
+ width: 110
317
+ - field: status
318
+ headerName: Status
319
+ width: 120
320
+ rowData:
321
+ - orderId: ORD-001
322
+ customer: Acme Corp
323
+ product: Widget Pro
324
+ quantity: 50
325
+ total: 2499.50
326
+ status: Shipped
327
+ - orderId: ORD-002
328
+ customer: Globex Inc
329
+ product: Gadget X
330
+ quantity: 25
331
+ total: 1249.75
332
+ status: Processing
333
+ - orderId: ORD-003
334
+ customer: Initech
335
+ product: Widget Pro
336
+ quantity: 100
337
+ total: 4999.00
338
+ status: Delivered
339
+ - orderId: ORD-004
340
+ customer: Umbrella Ltd
341
+ product: Connector A
342
+ quantity: 200
343
+ total: 1998.00
344
+ status: Shipped
345
+ - orderId: ORD-005
346
+ customer: Stark Ind
347
+ product: Gadget X
348
+ quantity: 10
349
+ total: 499.90
350
+ status: Processing
351
+ - orderId: ORD-006
352
+ customer: Wayne Ent
353
+ product: Widget Pro
354
+ quantity: 75
355
+ total: 3749.25
356
+ status: Delivered
357
+ - orderId: ORD-007
358
+ customer: Oscorp
359
+ product: Connector A
360
+ quantity: 150
361
+ total: 1498.50
362
+ status: Shipped
363
+ - orderId: ORD-008
364
+ customer: LexCorp
365
+ product: Gadget X
366
+ quantity: 30
367
+ total: 1499.70
368
+ status: Processing
369
+ - orderId: ORD-009
370
+ customer: Cyberdyne
371
+ product: Widget Pro
372
+ quantity: 60
373
+ total: 2999.40
374
+ status: Shipped
375
+ - orderId: ORD-010
376
+ customer: Tyrell Corp
377
+ product: Connector A
378
+ quantity: 500
379
+ total: 4990.00
380
+ status: Delivered
381
+ - orderId: ORD-011
382
+ customer: Weyland Co
383
+ product: Gadget X
384
+ quantity: 40
385
+ total: 1999.60
386
+ status: Processing
387
+ - orderId: ORD-012
388
+ customer: Soylent Inc
389
+ product: Widget Pro
390
+ quantity: 80
391
+ total: 3999.20
392
+ status: Shipped
393
+
394
+ - title: Events
395
+ fullWidth: true
396
+ blocks:
397
+ - id: events_row_click
398
+ type: AgGridAlpine
399
+ properties:
400
+ height: 300
401
+ defaultColDef:
402
+ sortable: true
403
+ flex: 1
404
+ columnDefs:
405
+ - field: name
406
+ headerName: Name
407
+ - field: role
408
+ headerName: Role
409
+ - field: department
410
+ headerName: Department
411
+ - field: status
412
+ headerName: Status
413
+ width: 120
414
+ rowData:
415
+ - name: Alice Johnson
416
+ role: Developer
417
+ department: Engineering
418
+ status: Active
419
+ - name: Bob Smith
420
+ role: Designer
421
+ department: Design
422
+ status: Active
423
+ - name: Charlie Lee
424
+ role: Manager
425
+ department: Sales
426
+ status: On Leave
427
+ - name: Diana Patel
428
+ role: Analyst
429
+ department: Finance
430
+ status: Active
431
+ - name: Erik Johansson
432
+ role: DevOps
433
+ department: Engineering
434
+ status: Active
435
+ events:
436
+ onRowClick:
437
+ - id: row_click_message
438
+ type: DisplayMessage
439
+ params:
440
+ content:
441
+ _nunjucks:
442
+ on:
443
+ _event: row
444
+ template: 'Clicked: {{ name }} ({{ role }}, {{ department }})'
445
+ duration: 3
446
+ onCellClick:
447
+ - id: cell_click_message
448
+ type: DisplayMessage
449
+ params:
450
+ status: info
451
+ content:
452
+ _nunjucks:
453
+ on:
454
+ name:
455
+ _event: cell.column
456
+ value:
457
+ _event: cell.value
458
+ template: 'Cell: {{ name }} = {{ value }}'
459
+ duration: 3
460
+ - id: events_row_selected
461
+ type: AgGridAlpine
462
+ properties:
463
+ height: 300
464
+ rowSelection:
465
+ mode: multiRow
466
+ checkboxes: false
467
+ headerCheckbox: false
468
+ enableClickSelection: true
469
+ defaultColDef:
470
+ sortable: true
471
+ flex: 1
472
+ columnDefs:
473
+ - field: task
474
+ headerName: Task
475
+ flex: 2
476
+ - field: assignee
477
+ headerName: Assignee
478
+ - field: priority
479
+ headerName: Priority
480
+ width: 120
481
+ rowData:
482
+ - task: Design login page
483
+ assignee: Alice
484
+ priority: High
485
+ - task: Implement API
486
+ assignee: Bob
487
+ priority: High
488
+ - task: Write tests
489
+ assignee: Charlie
490
+ priority: Medium
491
+ - task: Update docs
492
+ assignee: Diana
493
+ priority: Low
494
+ - task: Code review
495
+ assignee: Erik
496
+ priority: Medium
497
+ events:
498
+ onRowSelected:
499
+ - id: row_selected_message
500
+ type: DisplayMessage
501
+ params:
502
+ status: success
503
+ content:
504
+ _nunjucks:
505
+ on:
506
+ row:
507
+ _event: row.task
508
+ count:
509
+ _event: selected.length
510
+ template: 'Selected "{{ row }}" ({{ count }} total selected)'
511
+ duration: 3
512
+
513
+ - title: Column Styling
514
+ fullWidth: true
515
+ blocks:
516
+ - id: styled_columns
517
+ type: AgGridAlpine
518
+ properties:
519
+ height: 300
520
+ defaultColDef:
521
+ sortable: true
522
+ flex: 1
523
+ columnDefs:
524
+ - field: metric
525
+ headerName: Metric
526
+ flex: 2
527
+ cellStyle:
528
+ fontWeight: bold
529
+ - field: q1
530
+ headerName: Q1
531
+ cellStyle:
532
+ backgroundColor: var(--ant-blue-1)
533
+ textAlign: right
534
+ - field: q2
535
+ headerName: Q2
536
+ cellStyle:
537
+ backgroundColor: var(--ant-green-1)
538
+ textAlign: right
539
+ - field: q3
540
+ headerName: Q3
541
+ cellStyle:
542
+ backgroundColor: var(--ant-orange-1)
543
+ textAlign: right
544
+ - field: q4
545
+ headerName: Q4
546
+ cellStyle:
547
+ backgroundColor: var(--ant-red-1)
548
+ textAlign: right
549
+ rowData:
550
+ - metric: Revenue ($K)
551
+ q1: 1250
552
+ q2: 1380
553
+ q3: 1520
554
+ q4: 1690
555
+ - metric: New Customers
556
+ q1: 145
557
+ q2: 162
558
+ q3: 178
559
+ q4: 201
560
+ - metric: Churn Rate (%)
561
+ q1: 3.2
562
+ q2: 2.8
563
+ q3: 2.5
564
+ q4: 2.1
565
+ - metric: NPS Score
566
+ q1: 42
567
+ q2: 45
568
+ q3: 48
569
+ q4: 52
570
+ - metric: Support Tickets
571
+ q1: 892
572
+ q2: 756
573
+ q3: 623
574
+ q4: 541
575
+
576
+ - title: Large Dataset
577
+ fullWidth: true
578
+ blocks:
579
+ - id: large_dataset
580
+ type: AgGridAlpine
581
+ properties:
582
+ height: 400
583
+ pagination: true
584
+ paginationPageSize: 8
585
+ defaultColDef:
586
+ sortable: true
587
+ filter: true
588
+ resizable: true
589
+ columnDefs:
590
+ - field: id
591
+ headerName: '#'
592
+ width: 70
593
+ pinned: left
594
+ - field: firstName
595
+ headerName: First Name
596
+ flex: 1
597
+ - field: lastName
598
+ headerName: Last Name
599
+ flex: 1
600
+ - field: email
601
+ headerName: Email
602
+ flex: 2
603
+ - field: department
604
+ headerName: Department
605
+ flex: 1
606
+ - field: salary
607
+ headerName: Salary ($)
608
+ width: 120
609
+ - field: city
610
+ headerName: City
611
+ flex: 1
612
+ rowData:
613
+ - id: 1
614
+ firstName: Olivia
615
+ lastName: Martinez
616
+ email: olivia.martinez@corp.com
617
+ department: Engineering
618
+ salary: 95000
619
+ city: San Francisco
620
+ - id: 2
621
+ firstName: Liam
622
+ lastName: Thompson
623
+ email: liam.thompson@corp.com
624
+ department: Marketing
625
+ salary: 72000
626
+ city: New York
627
+ - id: 3
628
+ firstName: Emma
629
+ lastName: Davis
630
+ email: emma.davis@corp.com
631
+ department: Sales
632
+ salary: 68000
633
+ city: Chicago
634
+ - id: 4
635
+ firstName: Noah
636
+ lastName: Anderson
637
+ email: noah.anderson@corp.com
638
+ department: Engineering
639
+ salary: 105000
640
+ city: Seattle
641
+ - id: 5
642
+ firstName: Ava
643
+ lastName: Wilson
644
+ email: ava.wilson@corp.com
645
+ department: Design
646
+ salary: 82000
647
+ city: Austin
648
+ - id: 6
649
+ firstName: William
650
+ lastName: Taylor
651
+ email: william.taylor@corp.com
652
+ department: Finance
653
+ salary: 88000
654
+ city: Boston
655
+ - id: 7
656
+ firstName: Sophia
657
+ lastName: Moore
658
+ email: sophia.moore@corp.com
659
+ department: HR
660
+ salary: 71000
661
+ city: Denver
662
+ - id: 8
663
+ firstName: James
664
+ lastName: Jackson
665
+ email: james.jackson@corp.com
666
+ department: Engineering
667
+ salary: 112000
668
+ city: San Francisco
669
+ - id: 9
670
+ firstName: Isabella
671
+ lastName: White
672
+ email: isabella.white@corp.com
673
+ department: Marketing
674
+ salary: 76000
675
+ city: Los Angeles
676
+ - id: 10
677
+ firstName: Benjamin
678
+ lastName: Harris
679
+ email: benjamin.harris@corp.com
680
+ department: Sales
681
+ salary: 65000
682
+ city: Miami
683
+ - id: 11
684
+ firstName: Mia
685
+ lastName: Clark
686
+ email: mia.clark@corp.com
687
+ department: Engineering
688
+ salary: 99000
689
+ city: Portland
690
+ - id: 12
691
+ firstName: Lucas
692
+ lastName: Lewis
693
+ email: lucas.lewis@corp.com
694
+ department: Design
695
+ salary: 85000
696
+ city: Austin
697
+ - id: 13
698
+ firstName: Charlotte
699
+ lastName: Robinson
700
+ email: charlotte.robinson@corp.com
701
+ department: Finance
702
+ salary: 91000
703
+ city: New York
704
+ - id: 14
705
+ firstName: Henry
706
+ lastName: Walker
707
+ email: henry.walker@corp.com
708
+ department: HR
709
+ salary: 69000
710
+ city: Chicago
711
+ - id: 15
712
+ firstName: Amelia
713
+ lastName: Young
714
+ email: amelia.young@corp.com
715
+ department: Engineering
716
+ salary: 108000
717
+ city: Seattle
718
+
719
+ - title: Built-in cell types
720
+ fullWidth: true
721
+ blocks:
722
+ - id: cell_types_demo
723
+ type: AgGridAlpine
724
+ properties:
725
+ height: 360
726
+ defaultColDef:
727
+ resizable: true
728
+ flex: 1
729
+ columnDefs:
730
+ - headerName: Status
731
+ field: status
732
+ width: 130
733
+ cell:
734
+ type: tag
735
+ colorMap:
736
+ Active: green
737
+ Blocked: red
738
+ Pending: blue
739
+ 'On Leave': orange
740
+ - headerName: Assignee
741
+ field: name
742
+ minWidth: 220
743
+ cell:
744
+ type: avatar
745
+ nameField: name
746
+ srcField: picture
747
+ idField: id
748
+ - headerName: Created
749
+ field: created_at
750
+ width: 170
751
+ cell:
752
+ type: date
753
+ - headerName: Last seen
754
+ field: last_seen
755
+ width: 150
756
+ cell:
757
+ type: date
758
+ relative: true
759
+ - headerName: Verified
760
+ field: verified
761
+ width: 110
762
+ cell:
763
+ type: boolean
764
+ - headerName: Progress
765
+ field: completion
766
+ width: 130
767
+ cell:
768
+ type: progress
769
+ rowData:
770
+ - id: u1
771
+ name: Alice Johnson
772
+ picture: https://i.pravatar.cc/80?img=1
773
+ status: Active
774
+ created_at: '2025-11-14T09:30:00Z'
775
+ last_seen: '2026-04-17T11:45:00Z'
776
+ verified: true
777
+ completion: 92
778
+ - id: u2
779
+ name: Bob Smith
780
+ status: On Leave
781
+ created_at: '2025-09-02T14:10:00Z'
782
+ last_seen: '2026-04-10T08:15:00Z'
783
+ verified: true
784
+ completion: 68
785
+ - id: u3
786
+ name: Charlie Lee
787
+ picture: https://i.pravatar.cc/80?img=5
788
+ status: Blocked
789
+ created_at: '2026-01-20T18:00:00Z'
790
+ last_seen: '2026-04-17T07:22:00Z'
791
+ verified: false
792
+ completion: 22
793
+ - id: u4
794
+ name: Diana Patel
795
+ status: Pending
796
+ created_at: null
797
+ last_seen: null
798
+ verified: null
799
+ completion: null
800
+
801
+ - title: Tag cells with array values
802
+ fullWidth: true
803
+ blocks:
804
+ - id: tag_array_demo
805
+ type: AgGridAlpine
806
+ properties:
807
+ height: 240
808
+ defaultColDef:
809
+ resizable: true
810
+ flex: 1
811
+ columnDefs:
812
+ - headerName: User
813
+ field: name
814
+ minWidth: 180
815
+ - headerName: Roles
816
+ field: roles
817
+ minWidth: 260
818
+ cell:
819
+ type: tag
820
+ colorMap:
821
+ admin: red
822
+ editor: blue
823
+ viewer: green
824
+ billing: orange
825
+ default: default
826
+ rowData:
827
+ - name: Alice Johnson
828
+ roles:
829
+ - admin
830
+ - editor
831
+ - name: Bob Smith
832
+ roles:
833
+ - viewer
834
+ - name: Charlie Lee
835
+ roles:
836
+ - editor
837
+ - billing
838
+ - viewer
839
+ - name: Diana Patel
840
+ roles: []
841
+ - name: Chan Maarten
842
+ roles: null
843
+
844
+ - title: Auto-coloured tags
845
+ fullWidth: true
846
+ blocks:
847
+ - id: tag_seeded_demo
848
+ type: AgGridAlpine
849
+ properties:
850
+ height: 300
851
+ defaultColDef:
852
+ resizable: true
853
+ flex: 1
854
+ columnDefs:
855
+ - headerName: Project
856
+ field: project
857
+ minWidth: 160
858
+ - headerName: Tags
859
+ field: tags
860
+ minWidth: 320
861
+ cell:
862
+ type: tag
863
+ rowData:
864
+ - project: Storefront
865
+ tags:
866
+ - frontend
867
+ - react
868
+ - typescript
869
+ - project: API gateway
870
+ tags:
871
+ - backend
872
+ - node
873
+ - typescript
874
+ - project: ML pipeline
875
+ tags:
876
+ - python
877
+ - airflow
878
+ - backend
879
+ - project: Mobile app
880
+ tags:
881
+ - frontend
882
+ - react
883
+ - mobile
884
+ - project: Design system
885
+ tags:
886
+ - frontend
887
+ - design
888
+
889
+ - title: Linked cells (onCellLink)
890
+ fullWidth: true
891
+ blocks:
892
+ - id: linked_cells_demo
893
+ type: AgGridAlpine
894
+ properties:
895
+ height: 240
896
+ defaultColDef:
897
+ resizable: true
898
+ flex: 1
899
+ columnDefs:
900
+ - headerName: Task ID
901
+ field: _id
902
+ width: 140
903
+ cell:
904
+ type: link
905
+ pageId: tasks-view
906
+ urlQuery:
907
+ _id: _id
908
+ - headerName: Assignee
909
+ field: assignee
910
+ cell:
911
+ type: avatar
912
+ nameField: assignee
913
+ idField: _id
914
+ link:
915
+ pageId: user
916
+ urlQuery:
917
+ userId: _id
918
+ - headerName: Priority
919
+ field: priority
920
+ width: 120
921
+ cell:
922
+ type: tag
923
+ colorMap:
924
+ High: red
925
+ Medium: orange
926
+ Low: default
927
+ rowData:
928
+ - _id: TSK-001
929
+ assignee: Alice Johnson
930
+ priority: High
931
+ - _id: TSK-002
932
+ assignee: Bob Smith
933
+ priority: Medium
934
+ - _id: TSK-003
935
+ assignee: Charlie Lee
936
+ priority: Low
937
+ events:
938
+ onCellLink:
939
+ - id: navigate
940
+ type: Link
941
+ params:
942
+ _event: link
943
+
944
+ - title: Ellipsis column helper
945
+ fullWidth: true
946
+ blocks:
947
+ - id: ellipsis_demo
948
+ type: AgGridAlpine
949
+ properties:
950
+ height: 280
951
+ defaultColDef:
952
+ resizable: true
953
+ columnDefs:
954
+ - headerName: Code
955
+ field: code
956
+ width: 100
957
+ - headerName: Title
958
+ field: title
959
+ minWidth: 220
960
+ - headerName: Description
961
+ field: description
962
+ flex: 1
963
+ ellipsis: 2
964
+ rowData:
965
+ - code: A-01
966
+ title: Main switchboard
967
+ description: Drafted the main switchboard layout and circuit schedule across
968
+ three floors. Awaiting sign-off from the project engineer before
969
+ ordering long-lead parts.
970
+ - code: A-02
971
+ title: East wing HVAC
972
+ description: Balancing HVAC loads across the east wing. Waiting on updated
973
+ ductwork drawings from the architect and a revised thermal model
974
+ from the mechanical team.
975
+ - code: A-03
976
+ title: Utility connections
977
+ description: Blocked on the utility connection survey — main was not where the
978
+ drawings said it would be, which has cascaded to the trenching
979
+ schedule.
980
+
981
+ - title: Number formatting (currency, percent, compact, accounting)
982
+ fullWidth: true
983
+ blocks:
984
+ - id: number_demo
985
+ type: AgGridAlpine
986
+ properties:
987
+ height: 320
988
+ defaultColDef:
989
+ resizable: true
990
+ columnDefs:
991
+ - headerName: Account
992
+ field: account
993
+ width: 180
994
+ - headerName: Revenue (USD)
995
+ field: revenue
996
+ width: 150
997
+ cell:
998
+ type: number
999
+ format: currency
1000
+ currency: USD
1001
+ decimals: 0
1002
+ - headerName: EUR
1003
+ field: revenue_eur
1004
+ width: 150
1005
+ cell:
1006
+ type: number
1007
+ format: currency
1008
+ currency: EUR
1009
+ locale: de-DE
1010
+ decimals: 2
1011
+ - headerName: Δ vs budget
1012
+ field: delta
1013
+ width: 160
1014
+ cell:
1015
+ type: number
1016
+ format: currency
1017
+ currency: USD
1018
+ decimals: 2
1019
+ negative: parentheses
1020
+ signColor: true
1021
+ - headerName: Margin
1022
+ field: margin
1023
+ width: 110
1024
+ cell:
1025
+ type: number
1026
+ format: percent
1027
+ decimals: 1
1028
+ - headerName: Impressions
1029
+ field: impressions
1030
+ width: 130
1031
+ cell:
1032
+ type: number
1033
+ format: compact
1034
+ - headerName: Ratio
1035
+ field: ratio
1036
+ width: 110
1037
+ cell:
1038
+ type: number
1039
+ decimals: 3
1040
+ rowData:
1041
+ - account: Acme Corp
1042
+ revenue: 1245000
1043
+ revenue_eur: 1125750.5
1044
+ delta: 12500
1045
+ margin: 0.184
1046
+ impressions: 12340
1047
+ ratio: 1.234
1048
+ - account: Globex
1049
+ revenue: 825500
1050
+ revenue_eur: 745600.25
1051
+ delta: -44250.5
1052
+ margin: 0.072
1053
+ impressions: 1050000
1054
+ ratio: 0.876
1055
+ - account: Stark Ind.
1056
+ revenue: 4820000
1057
+ revenue_eur: 4350750
1058
+ delta: -125000
1059
+ margin: -0.033
1060
+ impressions: 85400000
1061
+ ratio: 2.12
1062
+ - account: Wayne Ent.
1063
+ revenue: 3150000
1064
+ revenue_eur: 2845300
1065
+ delta: 87500
1066
+ margin: 0.221
1067
+ impressions: 524000
1068
+ ratio: 0.948
1069
+
1070
+ - title: Loading overlay (block loading flag)
1071
+ fullWidth: true
1072
+ blocks:
1073
+ - id: loading_demo_switch
1074
+ type: Switch
1075
+ properties:
1076
+ title: Toggle loading overlay
1077
+ - id: loading_demo_grid
1078
+ type: AgGridAlpine
1079
+ loading:
1080
+ _state: loading_demo_switch
1081
+ properties:
1082
+ height: 260
1083
+ defaultColDef:
1084
+ flex: 1
1085
+ columnDefs:
1086
+ - field: name
1087
+ headerName: Name
1088
+ - field: role
1089
+ headerName: Role
1090
+ rowData:
1091
+ - name: Alice Johnson
1092
+ role: Developer
1093
+ - name: Bob Smith
1094
+ role: Designer
1095
+ - name: Charlie Lee
1096
+ role: Manager
1097
+
1098
+ - title: Buttons cell (per-button action chains)
1099
+ fullWidth: true
1100
+ blocks:
1101
+ - id: buttons_cell_demo
1102
+ type: AgGridAlpine
1103
+ properties:
1104
+ height: 260
1105
+ defaultColDef:
1106
+ resizable: true
1107
+ flex: 1
1108
+ columnDefs:
1109
+ - headerName: Task
1110
+ field: name
1111
+ - headerName: Status
1112
+ field: status
1113
+ width: 120
1114
+ cell:
1115
+ type: tag
1116
+ colorMap:
1117
+ Open: blue
1118
+ Locked: red
1119
+ Archived: default
1120
+ - headerName: Actions
1121
+ field: _id
1122
+ width: 220
1123
+ cell:
1124
+ type: buttons
1125
+ buttons:
1126
+ - eventName: onEditClick
1127
+ title: Edit
1128
+ icon: AiOutlineEdit
1129
+ type: primary
1130
+ - eventName: onDeleteClick
1131
+ title: Delete
1132
+ icon: AiOutlineDelete
1133
+ danger: true
1134
+ disabledField: locked
1135
+ hiddenField: archived
1136
+ rowData:
1137
+ - _id: TSK-001
1138
+ name: Wire main switchboard
1139
+ status: Open
1140
+ locked: false
1141
+ archived: false
1142
+ - _id: TSK-002
1143
+ name: HVAC balancing
1144
+ status: Locked
1145
+ locked: true
1146
+ archived: false
1147
+ - _id: TSK-003
1148
+ name: Utility connections
1149
+ status: Archived
1150
+ locked: false
1151
+ archived: true
1152
+ events:
1153
+ onEditClick:
1154
+ - id: edit_msg
1155
+ type: DisplayMessage
1156
+ params:
1157
+ content:
1158
+ _string.concat:
1159
+ - 'Edit '
1160
+ - _event: row._id
1161
+ onDeleteClick:
1162
+ - id: delete_msg
1163
+ type: DisplayMessage
1164
+ params:
1165
+ status: warning
1166
+ content:
1167
+ _string.concat:
1168
+ - 'Delete '
1169
+ - _event: row.name
1170
+
1171
+ - title: Menu cell (row actions behind one trigger)
1172
+ fullWidth: true
1173
+ blocks:
1174
+ - id: menu_cell_demo
1175
+ type: AgGridAlpine
1176
+ properties:
1177
+ height: 260
1178
+ defaultColDef:
1179
+ resizable: true
1180
+ flex: 1
1181
+ columnDefs:
1182
+ - headerName: Report
1183
+ field: name
1184
+ - headerName: Visibility
1185
+ field: visibility
1186
+ width: 130
1187
+ cell:
1188
+ type: tag
1189
+ colorMap:
1190
+ private: default
1191
+ shared: blue
1192
+ # Every item fires its own block-level event, the same as the buttons cell.
1193
+ # `hiddenField` drops an item for rows it does not apply to, so one column
1194
+ # definition serves owners and readers: TSK-003 is someone else's report, so
1195
+ # its menu is Duplicate alone.
1196
+ - headerName: ''
1197
+ colId: menu
1198
+ width: 60
1199
+ sortable: false
1200
+ filter: false
1201
+ resizable: false
1202
+ cell:
1203
+ type: menu
1204
+ items:
1205
+ - eventName: onMenuRename
1206
+ title: Rename
1207
+ icon: AiOutlineEdit
1208
+ hiddenField: readOnly
1209
+ - eventName: onMenuDuplicate
1210
+ title: Duplicate
1211
+ icon: AiOutlineCopy
1212
+ - eventName: onMenuDelete
1213
+ title: Delete
1214
+ icon: AiOutlineDelete
1215
+ danger: true
1216
+ hiddenField: readOnly
1217
+ rowData:
1218
+ - _id: REP-001
1219
+ name: Monthly spend by region
1220
+ visibility: private
1221
+ readOnly: false
1222
+ - _id: REP-002
1223
+ name: Open tickets by team
1224
+ visibility: shared
1225
+ readOnly: false
1226
+ - _id: REP-003
1227
+ name: Fleet utilisation (shared with you)
1228
+ visibility: shared
1229
+ readOnly: true
1230
+ events:
1231
+ onMenuRename:
1232
+ - id: menu_rename_msg
1233
+ type: DisplayMessage
1234
+ params:
1235
+ content:
1236
+ _string.concat:
1237
+ - 'Rename '
1238
+ - _event: row.name
1239
+ onMenuDuplicate:
1240
+ - id: menu_duplicate_msg
1241
+ type: DisplayMessage
1242
+ params:
1243
+ content:
1244
+ _string.concat:
1245
+ - 'Duplicate '
1246
+ - _event: row.name
1247
+ onMenuDelete:
1248
+ - id: menu_delete_msg
1249
+ type: DisplayMessage
1250
+ params:
1251
+ status: warning
1252
+ content:
1253
+ _string.concat:
1254
+ - 'Delete '
1255
+ - _event: row.name
1256
+
1257
+ # Selector cells fire an event on change (event-only, like buttons) — the cell does not write to
1258
+ # the grid's row data. The app persists the change by updating the data bound to `rowData`. Here
1259
+ # each row's value is bound to state (with a `default`) and the event writes the new value back
1260
+ # into that state, so the selection sticks.
1261
+ - title: Selector cells (single + multiple)
1262
+ fullWidth: true
1263
+ blocks:
1264
+ - id: selector_cell_demo
1265
+ type: AgGridAlpine
1266
+ properties:
1267
+ height: 280
1268
+ defaultColDef:
1269
+ resizable: true
1270
+ columnDefs:
1271
+ - headerName: Task
1272
+ field: name
1273
+ flex: 1
1274
+ - headerName: Priority
1275
+ field: priority
1276
+ width: 200
1277
+ cell:
1278
+ type: selector
1279
+ eventName: onPriorityChange
1280
+ options:
1281
+ - label: Low
1282
+ value: low
1283
+ color: green
1284
+ - label: Medium
1285
+ value: medium
1286
+ color: orange
1287
+ - label: High
1288
+ value: high
1289
+ color: red
1290
+ - headerName: Labels
1291
+ field: labels
1292
+ width: 340
1293
+ cell:
1294
+ type: multipleSelector
1295
+ eventName: onLabelsChange
1296
+ placeholder: Add labels
1297
+ options:
1298
+ - bug
1299
+ - feature
1300
+ - docs
1301
+ - urgent
1302
+ rowData:
1303
+ - id: r1
1304
+ name: Wire main switchboard
1305
+ priority:
1306
+ _state:
1307
+ key: sel_priority.r1
1308
+ default: high
1309
+ labels:
1310
+ _state:
1311
+ key: sel_labels.r1
1312
+ default:
1313
+ - urgent
1314
+ - id: r2
1315
+ name: HVAC balancing
1316
+ priority:
1317
+ _state:
1318
+ key: sel_priority.r2
1319
+ default: medium
1320
+ labels:
1321
+ _state:
1322
+ key: sel_labels.r2
1323
+ default: []
1324
+ - id: r3
1325
+ name: Utility connections
1326
+ priority:
1327
+ _state:
1328
+ key: sel_priority.r3
1329
+ default: low
1330
+ labels:
1331
+ _state:
1332
+ key: sel_labels.r3
1333
+ default:
1334
+ - docs
1335
+ - feature
1336
+ events:
1337
+ onPriorityChange:
1338
+ - id: persist_priority
1339
+ type: SetState
1340
+ params:
1341
+ sel_priority:
1342
+ _object.assign:
1343
+ - _state: sel_priority
1344
+ - _object.fromEntries:
1345
+ - - _event: row.id
1346
+ - _event: newValue
1347
+ onLabelsChange:
1348
+ - id: persist_labels
1349
+ type: SetState
1350
+ params:
1351
+ sel_labels:
1352
+ _object.assign:
1353
+ - _state: sel_labels
1354
+ - _object.fromEntries:
1355
+ - - _event: row.id
1356
+ - _event: newValue
1357
+
1358
+ # Input cells (switch / textInput / paragraphInput) work like the selector cells: event-only, the
1359
+ # app persists the new value into the data bound to `rowData`. Switch fires on toggle; textInput
1360
+ # commits on blur / Enter; paragraphInput commits when the inline edit is confirmed.
1361
+ - title: Input cells (switch, text, paragraph)
1362
+ fullWidth: true
1363
+ blocks:
1364
+ - id: input_cell_demo
1365
+ type: AgGridAlpine
1366
+ properties:
1367
+ height: 260
1368
+ defaultColDef:
1369
+ resizable: true
1370
+ rowData:
1371
+ - id: t1
1372
+ name:
1373
+ _state:
1374
+ key: inp_name.t1
1375
+ default: Wire main switchboard
1376
+ active:
1377
+ _state:
1378
+ key: inp_active.t1
1379
+ default: true
1380
+ notes:
1381
+ _state:
1382
+ key: inp_notes.t1
1383
+ default: Awaiting sign-off from the project engineer.
1384
+ - id: t2
1385
+ name:
1386
+ _state:
1387
+ key: inp_name.t2
1388
+ default: HVAC balancing
1389
+ active:
1390
+ _state:
1391
+ key: inp_active.t2
1392
+ default: false
1393
+ notes:
1394
+ _state:
1395
+ key: inp_notes.t2
1396
+ default: Waiting on updated ductwork drawings.
1397
+ columnDefs:
1398
+ - headerName: Task
1399
+ field: name
1400
+ width: 260
1401
+ cell:
1402
+ type: textInput
1403
+ eventName: onNameChange
1404
+ placeholder: Task name
1405
+ - headerName: Active
1406
+ field: active
1407
+ width: 110
1408
+ cell:
1409
+ type: switch
1410
+ eventName: onActiveChange
1411
+ checkedText: 'on'
1412
+ uncheckedText: 'off'
1413
+ - headerName: Notes
1414
+ field: notes
1415
+ flex: 1
1416
+ cell:
1417
+ type: paragraphInput
1418
+ eventName: onNotesChange
1419
+ ellipsis:
1420
+ rows: 2
1421
+ events:
1422
+ onNameChange:
1423
+ - id: persist_name
1424
+ type: SetState
1425
+ params:
1426
+ inp_name:
1427
+ _object.assign:
1428
+ - _state: inp_name
1429
+ - _object.fromEntries:
1430
+ - - _event: row.id
1431
+ - _event: newValue
1432
+ onActiveChange:
1433
+ - id: persist_active
1434
+ type: SetState
1435
+ params:
1436
+ inp_active:
1437
+ _object.assign:
1438
+ - _state: inp_active
1439
+ - _object.fromEntries:
1440
+ - - _event: row.id
1441
+ - _event: newValue
1442
+ onNotesChange:
1443
+ - id: persist_notes
1444
+ type: SetState
1445
+ params:
1446
+ inp_notes:
1447
+ _object.assign:
1448
+ - _state: inp_notes
1449
+ - _object.fromEntries:
1450
+ - - _event: row.id
1451
+ - _event: newValue