@escalated-dev/escalated 0.11.6 → 0.11.8

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.
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2026 Escalated Dev
3
+ Copyright (c) 2026 Escalated.dev
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -23,8 +23,10 @@
23
23
  <div align="center">
24
24
 
25
25
  [![Tests](https://github.com/escalated-dev/escalated/actions/workflows/run-tests.yml/badge.svg)](https://github.com/escalated-dev/escalated/actions/workflows/run-tests.yml)[![npm](https://img.shields.io/npm/v/@escalated-dev/escalated)](https://www.npmjs.com/package/@escalated-dev/escalated)
26
+ [![npm downloads](https://img.shields.io/npm/dm/@escalated-dev/escalated)](https://www.npmjs.com/package/@escalated-dev/escalated)
26
27
  [![Vue 3](https://img.shields.io/badge/vue-3.x-4FC08D?logo=vue.js&logoColor=white)](https://vuejs.org/)
27
28
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
29
+ [![Views](https://hits.sh/github.com/escalated-dev/escalated.svg?style=flat&label=views&color=007ec6)](https://hits.sh/github.com/escalated-dev/escalated/)
28
30
 
29
31
  </div>
30
32
 
@@ -385,4 +387,4 @@ This is the shared frontend for the Escalated support ticket system. Host framew
385
387
 
386
388
  ## License
387
389
 
388
- MIT
390
+ MIT - Copyright (c) Escalated.dev. See [LICENSE](LICENSE).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@escalated-dev/escalated",
3
- "version": "0.11.6",
3
+ "version": "0.11.8",
4
4
  "description": "Vue 3 + Inertia.js UI components for Escalated — the embeddable support ticket system",
5
5
  "author": "Escalated Dev <hello@escalated.dev>",
6
6
  "license": "MIT",
package/pages.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
- "$comment": "Generated by scripts/generate-page-manifest.js from src/pages. Every name here resolves to a component; a name a backend renders that is not here is a blank screen.",
3
- "version": "0.11.6",
2
+ "$comment": "Generated by scripts/generate-page-manifest.js from src/pages. Every name here resolves to a component; a name a backend renders that is not here is a blank screen. `props` is what each component reads -- a backend sending something else renders the screen with no content in it.",
3
+ "version": "0.11.8",
4
4
  "pages": [
5
5
  "Escalated/Admin/ApiTokens/Index",
6
6
  "Escalated/Admin/AuditLog/Index",
@@ -93,5 +93,768 @@
93
93
  "Escalated/Guest/Create",
94
94
  "Escalated/Guest/Show",
95
95
  "Escalated/Plugin/Page"
96
- ]
96
+ ],
97
+ "props": {
98
+ "Escalated/Admin/ApiTokens/Index": {
99
+ "props": [
100
+ "api_enabled",
101
+ "tokens",
102
+ "users"
103
+ ],
104
+ "required": []
105
+ },
106
+ "Escalated/Admin/AuditLog/Index": {
107
+ "props": [
108
+ "actions",
109
+ "filters",
110
+ "logs",
111
+ "resourceTypes",
112
+ "users"
113
+ ],
114
+ "required": []
115
+ },
116
+ "Escalated/Admin/Automations/Form": {
117
+ "props": [
118
+ "automation"
119
+ ],
120
+ "required": []
121
+ },
122
+ "Escalated/Admin/Automations/Index": {
123
+ "props": [
124
+ "automations"
125
+ ],
126
+ "required": []
127
+ },
128
+ "Escalated/Admin/BusinessHours/Form": {
129
+ "props": [
130
+ "schedule",
131
+ "timezones"
132
+ ],
133
+ "required": []
134
+ },
135
+ "Escalated/Admin/BusinessHours/Index": {
136
+ "props": [
137
+ "schedules"
138
+ ],
139
+ "required": []
140
+ },
141
+ "Escalated/Admin/CannedResponses/Index": {
142
+ "props": [
143
+ "responses"
144
+ ],
145
+ "required": []
146
+ },
147
+ "Escalated/Admin/Capacity/Index": {
148
+ "props": [
149
+ "capacities"
150
+ ],
151
+ "required": []
152
+ },
153
+ "Escalated/Admin/CustomFields/Form": {
154
+ "props": [
155
+ "contexts",
156
+ "field"
157
+ ],
158
+ "required": []
159
+ },
160
+ "Escalated/Admin/CustomFields/Index": {
161
+ "props": [
162
+ "fields"
163
+ ],
164
+ "required": []
165
+ },
166
+ "Escalated/Admin/CustomObjects/Form": {
167
+ "props": [
168
+ "object"
169
+ ],
170
+ "required": []
171
+ },
172
+ "Escalated/Admin/CustomObjects/Index": {
173
+ "props": [
174
+ "objects"
175
+ ],
176
+ "required": []
177
+ },
178
+ "Escalated/Admin/CustomObjects/Records": {
179
+ "props": [
180
+ "object",
181
+ "records"
182
+ ],
183
+ "required": []
184
+ },
185
+ "Escalated/Admin/Departments/Form": {
186
+ "props": [
187
+ "department"
188
+ ],
189
+ "required": []
190
+ },
191
+ "Escalated/Admin/Departments/Index": {
192
+ "props": [
193
+ "departments"
194
+ ],
195
+ "required": []
196
+ },
197
+ "Escalated/Admin/EscalationRules/Form": {
198
+ "props": [
199
+ "rule"
200
+ ],
201
+ "required": []
202
+ },
203
+ "Escalated/Admin/EscalationRules/Index": {
204
+ "props": [
205
+ "rules"
206
+ ],
207
+ "required": []
208
+ },
209
+ "Escalated/Admin/Import/Connect": {
210
+ "props": [
211
+ "credential_fields",
212
+ "display_name",
213
+ "platform"
214
+ ],
215
+ "required": []
216
+ },
217
+ "Escalated/Admin/Import/Index": {
218
+ "props": [
219
+ "adapters",
220
+ "jobs"
221
+ ],
222
+ "required": []
223
+ },
224
+ "Escalated/Admin/Import/Mapping": {
225
+ "props": [
226
+ "credentials",
227
+ "display_name",
228
+ "entity_types",
229
+ "mappings",
230
+ "platform"
231
+ ],
232
+ "required": []
233
+ },
234
+ "Escalated/Admin/Import/Progress": {
235
+ "props": [
236
+ "job"
237
+ ],
238
+ "required": [
239
+ "job"
240
+ ]
241
+ },
242
+ "Escalated/Admin/Import/Review": {
243
+ "props": [
244
+ "entity_types",
245
+ "field_mappings",
246
+ "platform"
247
+ ],
248
+ "required": []
249
+ },
250
+ "Escalated/Admin/KnowledgeBase/Articles/Form": {
251
+ "props": [
252
+ "article",
253
+ "categories"
254
+ ],
255
+ "required": []
256
+ },
257
+ "Escalated/Admin/KnowledgeBase/Articles/Index": {
258
+ "props": [
259
+ "articles",
260
+ "categories",
261
+ "filters"
262
+ ],
263
+ "required": []
264
+ },
265
+ "Escalated/Admin/KnowledgeBase/Categories/Index": {
266
+ "props": [
267
+ "categories"
268
+ ],
269
+ "required": []
270
+ },
271
+ "Escalated/Admin/Macros/Index": {
272
+ "props": [
273
+ "macros"
274
+ ],
275
+ "required": []
276
+ },
277
+ "Escalated/Admin/Newsletters/Compose": {
278
+ "props": [
279
+ "canSend",
280
+ "defaultFromEmail",
281
+ "defaultReplyTo",
282
+ "defaultTheme",
283
+ "lists",
284
+ "mailConfigured",
285
+ "newsletter",
286
+ "templates",
287
+ "themes"
288
+ ],
289
+ "required": [
290
+ "canSend",
291
+ "lists",
292
+ "mailConfigured",
293
+ "templates",
294
+ "themes"
295
+ ]
296
+ },
297
+ "Escalated/Admin/Newsletters/Edit": {
298
+ "props": [
299
+ "canSend",
300
+ "lists",
301
+ "mailConfigured",
302
+ "newsletter",
303
+ "templates",
304
+ "themes"
305
+ ],
306
+ "required": [
307
+ "canSend",
308
+ "lists",
309
+ "mailConfigured",
310
+ "newsletter",
311
+ "templates",
312
+ "themes"
313
+ ]
314
+ },
315
+ "Escalated/Admin/Newsletters/Index": {
316
+ "props": [
317
+ "newsletters",
318
+ "tab"
319
+ ],
320
+ "required": [
321
+ "newsletters"
322
+ ]
323
+ },
324
+ "Escalated/Admin/Newsletters/Lists/Create": {
325
+ "props": [],
326
+ "required": []
327
+ },
328
+ "Escalated/Admin/Newsletters/Lists/Index": {
329
+ "props": [
330
+ "lists"
331
+ ],
332
+ "required": [
333
+ "lists"
334
+ ]
335
+ },
336
+ "Escalated/Admin/Newsletters/Lists/Show": {
337
+ "props": [
338
+ "list",
339
+ "matchCount",
340
+ "members"
341
+ ],
342
+ "required": [
343
+ "list",
344
+ "members"
345
+ ]
346
+ },
347
+ "Escalated/Admin/Newsletters/Settings": {
348
+ "props": [
349
+ "settings",
350
+ "themes"
351
+ ],
352
+ "required": [
353
+ "settings",
354
+ "themes"
355
+ ]
356
+ },
357
+ "Escalated/Admin/Newsletters/Show": {
358
+ "props": [
359
+ "deliveries",
360
+ "newsletter",
361
+ "tab",
362
+ "topClicks"
363
+ ],
364
+ "required": [
365
+ "deliveries",
366
+ "newsletter"
367
+ ]
368
+ },
369
+ "Escalated/Admin/Newsletters/Templates/Create": {
370
+ "props": [
371
+ "themes"
372
+ ],
373
+ "required": [
374
+ "themes"
375
+ ]
376
+ },
377
+ "Escalated/Admin/Newsletters/Templates/Index": {
378
+ "props": [
379
+ "templates"
380
+ ],
381
+ "required": [
382
+ "templates"
383
+ ]
384
+ },
385
+ "Escalated/Admin/Newsletters/Templates/Show": {
386
+ "props": [
387
+ "isNew",
388
+ "template",
389
+ "themes"
390
+ ],
391
+ "required": [
392
+ "template",
393
+ "themes"
394
+ ]
395
+ },
396
+ "Escalated/Admin/Plugins/Index": {
397
+ "props": [
398
+ "can_upload",
399
+ "plugins"
400
+ ],
401
+ "required": []
402
+ },
403
+ "Escalated/Admin/Reports": {
404
+ "props": [
405
+ "avg_first_response_hours",
406
+ "by_priority",
407
+ "by_status",
408
+ "csat",
409
+ "period_days",
410
+ "resolved_tickets",
411
+ "sla_breach_count",
412
+ "total_tickets"
413
+ ],
414
+ "required": []
415
+ },
416
+ "Escalated/Admin/Reports/AgentDetail": {
417
+ "props": [
418
+ "agent",
419
+ "avg_frt",
420
+ "avg_resolution",
421
+ "csat_breakdown",
422
+ "csat_score",
423
+ "period_days",
424
+ "prev_avg_frt",
425
+ "prev_avg_resolution",
426
+ "prev_csat_score",
427
+ "prev_resolved_tickets",
428
+ "prev_total_tickets",
429
+ "productivity",
430
+ "resolved_tickets",
431
+ "response_percentiles",
432
+ "total_tickets",
433
+ "workload"
434
+ ],
435
+ "required": []
436
+ },
437
+ "Escalated/Admin/Reports/AgentMetrics": {
438
+ "props": [
439
+ "agents",
440
+ "period_days"
441
+ ],
442
+ "required": []
443
+ },
444
+ "Escalated/Admin/Reports/AgentRanking": {
445
+ "props": [
446
+ "agents",
447
+ "period_days"
448
+ ],
449
+ "required": []
450
+ },
451
+ "Escalated/Admin/Reports/Cohorts": {
452
+ "props": [
453
+ "by_channel",
454
+ "by_department",
455
+ "by_priority",
456
+ "by_tag",
457
+ "by_type",
458
+ "period_days"
459
+ ],
460
+ "required": []
461
+ },
462
+ "Escalated/Admin/Reports/Comparison": {
463
+ "props": [
464
+ "current",
465
+ "period_days",
466
+ "previous"
467
+ ],
468
+ "required": []
469
+ },
470
+ "Escalated/Admin/Reports/CsatReport": {
471
+ "props": [
472
+ "by_agent",
473
+ "csat_average",
474
+ "over_time",
475
+ "period_days",
476
+ "response_rate",
477
+ "total_ratings"
478
+ ],
479
+ "required": []
480
+ },
481
+ "Escalated/Admin/Reports/Dashboard": {
482
+ "props": [
483
+ "agent_performance",
484
+ "avg_resolution_hours",
485
+ "avg_response_hours",
486
+ "by_priority",
487
+ "by_status",
488
+ "csat_average",
489
+ "period_days",
490
+ "sla_compliance",
491
+ "volume"
492
+ ],
493
+ "required": []
494
+ },
495
+ "Escalated/Admin/Reports/ResolutionTimes": {
496
+ "props": [
497
+ "avg_resolution",
498
+ "by_agent",
499
+ "by_channel",
500
+ "by_department",
501
+ "distribution",
502
+ "median_resolution",
503
+ "p90_resolution",
504
+ "pct_under_target",
505
+ "period_days",
506
+ "target_hours",
507
+ "trend"
508
+ ],
509
+ "required": []
510
+ },
511
+ "Escalated/Admin/Reports/ResponseTimes": {
512
+ "props": [
513
+ "avg_frt",
514
+ "by_agent",
515
+ "by_department",
516
+ "by_priority",
517
+ "distribution",
518
+ "median_frt",
519
+ "p90_frt",
520
+ "pct_under_target",
521
+ "period_days",
522
+ "target_hours",
523
+ "trend"
524
+ ],
525
+ "required": []
526
+ },
527
+ "Escalated/Admin/Reports/SlaReport": {
528
+ "props": [
529
+ "breaches",
530
+ "compliance_by_policy",
531
+ "compliance_rate",
532
+ "period_days"
533
+ ],
534
+ "required": []
535
+ },
536
+ "Escalated/Admin/Reports/SlaTrends": {
537
+ "props": [
538
+ "at_risk_tickets",
539
+ "breach_by_department",
540
+ "breach_by_priority",
541
+ "breach_by_type_trend",
542
+ "breach_rate",
543
+ "breach_trend",
544
+ "first_response_breaches",
545
+ "period_days",
546
+ "resolution_breaches",
547
+ "total_breaches"
548
+ ],
549
+ "required": []
550
+ },
551
+ "Escalated/Admin/Roles/Form": {
552
+ "props": [
553
+ "permissions",
554
+ "role"
555
+ ],
556
+ "required": []
557
+ },
558
+ "Escalated/Admin/Roles/Index": {
559
+ "props": [
560
+ "roles"
561
+ ],
562
+ "required": []
563
+ },
564
+ "Escalated/Admin/Settings": {
565
+ "props": [
566
+ "departments",
567
+ "settings"
568
+ ],
569
+ "required": []
570
+ },
571
+ "Escalated/Admin/Settings/CsatSettings": {
572
+ "props": [
573
+ "settings"
574
+ ],
575
+ "required": []
576
+ },
577
+ "Escalated/Admin/Settings/DataRetention": {
578
+ "props": [
579
+ "purgePreview",
580
+ "settings"
581
+ ],
582
+ "required": []
583
+ },
584
+ "Escalated/Admin/Settings/DatabaseConnection": {
585
+ "props": [
586
+ "connections",
587
+ "current",
588
+ "hostDefault",
589
+ "pinnedByConfig",
590
+ "tablePrefix"
591
+ ],
592
+ "required": []
593
+ },
594
+ "Escalated/Admin/Settings/EmailSettings": {
595
+ "props": [
596
+ "addresses",
597
+ "defaultReplyAddress"
598
+ ],
599
+ "required": []
600
+ },
601
+ "Escalated/Admin/Settings/PublicTickets": {
602
+ "props": [
603
+ "settings"
604
+ ],
605
+ "required": []
606
+ },
607
+ "Escalated/Admin/Settings/Sandbox": {
608
+ "props": [],
609
+ "required": []
610
+ },
611
+ "Escalated/Admin/Settings/SsoSettings": {
612
+ "props": [
613
+ "settings"
614
+ ],
615
+ "required": []
616
+ },
617
+ "Escalated/Admin/Settings/TwoFactor": {
618
+ "props": [
619
+ "enabled",
620
+ "pending"
621
+ ],
622
+ "required": []
623
+ },
624
+ "Escalated/Admin/Skills/Form": {
625
+ "props": [
626
+ "availableAgents",
627
+ "availableDepartments",
628
+ "availableTags",
629
+ "skill"
630
+ ],
631
+ "required": []
632
+ },
633
+ "Escalated/Admin/Skills/Index": {
634
+ "props": [
635
+ "skills"
636
+ ],
637
+ "required": []
638
+ },
639
+ "Escalated/Admin/SlaPolicies/Form": {
640
+ "props": [
641
+ "policy",
642
+ "priorities"
643
+ ],
644
+ "required": []
645
+ },
646
+ "Escalated/Admin/SlaPolicies/Index": {
647
+ "props": [
648
+ "policies"
649
+ ],
650
+ "required": []
651
+ },
652
+ "Escalated/Admin/Statuses/Form": {
653
+ "props": [
654
+ "categories",
655
+ "status"
656
+ ],
657
+ "required": []
658
+ },
659
+ "Escalated/Admin/Statuses/Index": {
660
+ "props": [
661
+ "categories",
662
+ "statuses"
663
+ ],
664
+ "required": []
665
+ },
666
+ "Escalated/Admin/Tags/Index": {
667
+ "props": [
668
+ "tags"
669
+ ],
670
+ "required": []
671
+ },
672
+ "Escalated/Admin/Tickets/Index": {
673
+ "props": [
674
+ "agents",
675
+ "departments",
676
+ "filters",
677
+ "savedViews",
678
+ "tags",
679
+ "tickets"
680
+ ],
681
+ "required": []
682
+ },
683
+ "Escalated/Admin/Tickets/Show": {
684
+ "props": [
685
+ "agents",
686
+ "cannedResponses",
687
+ "departments",
688
+ "followers_count",
689
+ "is_following",
690
+ "is_snoozed",
691
+ "macros",
692
+ "tags",
693
+ "ticket"
694
+ ],
695
+ "required": []
696
+ },
697
+ "Escalated/Admin/Users/Index": {
698
+ "props": [
699
+ "currentUserId",
700
+ "filters",
701
+ "users"
702
+ ],
703
+ "required": []
704
+ },
705
+ "Escalated/Admin/Webhooks/DeliveryLog": {
706
+ "props": [
707
+ "deliveries",
708
+ "webhook"
709
+ ],
710
+ "required": []
711
+ },
712
+ "Escalated/Admin/Webhooks/Form": {
713
+ "props": [
714
+ "availableEvents",
715
+ "webhook"
716
+ ],
717
+ "required": []
718
+ },
719
+ "Escalated/Admin/Webhooks/Index": {
720
+ "props": [
721
+ "webhooks"
722
+ ],
723
+ "required": []
724
+ },
725
+ "Escalated/Admin/Workflows/Builder": {
726
+ "props": [
727
+ "actionTypes",
728
+ "operators",
729
+ "triggerEvents",
730
+ "workflow"
731
+ ],
732
+ "required": []
733
+ },
734
+ "Escalated/Admin/Workflows/Form": {
735
+ "props": [
736
+ "action_types",
737
+ "operators",
738
+ "trigger_events",
739
+ "workflow"
740
+ ],
741
+ "required": []
742
+ },
743
+ "Escalated/Admin/Workflows/Index": {
744
+ "props": [
745
+ "workflows"
746
+ ],
747
+ "required": []
748
+ },
749
+ "Escalated/Admin/Workflows/Logs": {
750
+ "props": [
751
+ "logs",
752
+ "workflows"
753
+ ],
754
+ "required": []
755
+ },
756
+ "Escalated/Agent/Dashboard": {
757
+ "props": [
758
+ "myPerformance",
759
+ "recentTickets",
760
+ "stats"
761
+ ],
762
+ "required": []
763
+ },
764
+ "Escalated/Agent/TicketIndex": {
765
+ "props": [
766
+ "departments",
767
+ "filters",
768
+ "tags",
769
+ "tickets"
770
+ ],
771
+ "required": []
772
+ },
773
+ "Escalated/Agent/TicketShow": {
774
+ "props": [
775
+ "cannedResponses",
776
+ "customActions",
777
+ "departments",
778
+ "followers_count",
779
+ "is_following",
780
+ "macros",
781
+ "tags",
782
+ "ticket"
783
+ ],
784
+ "required": []
785
+ },
786
+ "Escalated/Auth/TwoFactorChallenge": {
787
+ "props": [
788
+ "action",
789
+ "error"
790
+ ],
791
+ "required": []
792
+ },
793
+ "Escalated/Customer/Create": {
794
+ "props": [
795
+ "departments",
796
+ "priorities"
797
+ ],
798
+ "required": []
799
+ },
800
+ "Escalated/Customer/Index": {
801
+ "props": [
802
+ "filters",
803
+ "tickets"
804
+ ],
805
+ "required": []
806
+ },
807
+ "Escalated/Customer/KnowledgeBase/Article": {
808
+ "props": [
809
+ "article",
810
+ "feedbackEnabled",
811
+ "related"
812
+ ],
813
+ "required": []
814
+ },
815
+ "Escalated/Customer/KnowledgeBase/Index": {
816
+ "props": [
817
+ "articles",
818
+ "categories",
819
+ "filters"
820
+ ],
821
+ "required": []
822
+ },
823
+ "Escalated/Customer/Show": {
824
+ "props": [
825
+ "ticket"
826
+ ],
827
+ "required": []
828
+ },
829
+ "Escalated/Error": {
830
+ "props": [
831
+ "home",
832
+ "message",
833
+ "status"
834
+ ],
835
+ "required": []
836
+ },
837
+ "Escalated/Guest/Create": {
838
+ "props": [
839
+ "departments",
840
+ "priorities"
841
+ ],
842
+ "required": []
843
+ },
844
+ "Escalated/Guest/Show": {
845
+ "props": [
846
+ "ticket",
847
+ "token"
848
+ ],
849
+ "required": []
850
+ },
851
+ "Escalated/Plugin/Page": {
852
+ "props": [
853
+ "component",
854
+ "layout",
855
+ "plugin"
856
+ ],
857
+ "required": []
858
+ }
859
+ }
97
860
  }
@@ -12,20 +12,27 @@ const fields = computed(() => props.object.fields_schema || []);
12
12
  const editingId = ref(null);
13
13
  const showAddForm = ref(false);
14
14
 
15
+ // The record's field values travel as `data`, which is what every backend
16
+ // validates. They cannot live under that name on the form itself: `data()` is
17
+ // one of useForm's own methods, Inertia refuses the field (and logs an error),
18
+ // and assigning to it replaced the method the form submits with. They are kept
19
+ // as `values` and renamed on the way out.
20
+ const toRecordBody = (form) => ({ data: form.values });
21
+
15
22
  const newRecordForm = useForm({
16
- data: {},
17
- });
23
+ values: {},
24
+ }).transform(toRecordBody);
18
25
 
19
26
  const editForm = useForm({
20
- data: {},
21
- });
27
+ values: {},
28
+ }).transform(toRecordBody);
22
29
 
23
30
  function startAdd() {
24
31
  const data = {};
25
32
  fields.value.forEach((f) => {
26
33
  data[f.name] = '';
27
34
  });
28
- newRecordForm.data = data;
35
+ newRecordForm.values = data;
29
36
  showAddForm.value = true;
30
37
  }
31
38
 
@@ -41,7 +48,7 @@ function addRecord() {
41
48
 
42
49
  function startEdit(record) {
43
50
  editingId.value = record.id;
44
- editForm.data = { ...(record.data || {}) };
51
+ editForm.values = { ...(record.data || {}) };
45
52
  }
46
53
 
47
54
  function saveEdit(record) {
@@ -96,7 +103,7 @@ function deleteRecord(record) {
96
103
  </label>
97
104
  <select
98
105
  v-if="field.type === 'select'"
99
- v-model="newRecordForm.data[field.name]"
106
+ v-model="newRecordForm.values[field.name]"
100
107
  class="mt-1 w-full rounded-lg border border-[var(--esc-panel-border-input)] bg-[var(--esc-panel-surface-alt)] px-3 py-2 text-sm text-[var(--esc-panel-text-secondary)] focus:border-[var(--esc-panel-border-input)] focus:outline-none focus:ring-1 focus:ring-[var(--esc-panel-border-input)]"
101
108
  >
102
109
  <option value="">Select...</option>
@@ -104,19 +111,19 @@ function deleteRecord(record) {
104
111
  </select>
105
112
  <input
106
113
  v-else-if="field.type === 'date'"
107
- v-model="newRecordForm.data[field.name]"
114
+ v-model="newRecordForm.values[field.name]"
108
115
  type="date"
109
116
  class="mt-1 w-full rounded-lg border border-[var(--esc-panel-border-input)] bg-[var(--esc-panel-surface-alt)] px-3 py-2 text-sm text-[var(--esc-panel-text-secondary)] focus:border-[var(--esc-panel-border-input)] focus:outline-none focus:ring-1 focus:ring-[var(--esc-panel-border-input)]"
110
117
  />
111
118
  <input
112
119
  v-else-if="field.type === 'number'"
113
- v-model="newRecordForm.data[field.name]"
120
+ v-model="newRecordForm.values[field.name]"
114
121
  type="number"
115
122
  class="mt-1 w-full rounded-lg border border-[var(--esc-panel-border-input)] bg-[var(--esc-panel-surface-alt)] px-3 py-2 text-sm text-[var(--esc-panel-text-secondary)] focus:border-[var(--esc-panel-border-input)] focus:outline-none focus:ring-1 focus:ring-[var(--esc-panel-border-input)]"
116
123
  />
117
124
  <input
118
125
  v-else
119
- v-model="newRecordForm.data[field.name]"
126
+ v-model="newRecordForm.values[field.name]"
120
127
  type="text"
121
128
  class="mt-1 w-full rounded-lg border border-[var(--esc-panel-border-input)] bg-[var(--esc-panel-surface-alt)] px-3 py-2 text-sm text-[var(--esc-panel-text-secondary)] focus:border-[var(--esc-panel-border-input)] focus:outline-none focus:ring-1 focus:ring-[var(--esc-panel-border-input)]"
122
129
  />
@@ -171,7 +178,7 @@ function deleteRecord(record) {
171
178
  <!-- Edit mode -->
172
179
  <template v-if="editingId === record.id">
173
180
  <input
174
- v-model="editForm.data[field.name]"
181
+ v-model="editForm.values[field.name]"
175
182
  :type="field.type === 'number' ? 'number' : field.type === 'date' ? 'date' : 'text'"
176
183
  class="w-full rounded border border-[var(--esc-panel-border-input)] bg-[var(--esc-panel-surface)] px-2 py-1 text-sm text-[var(--esc-panel-text-secondary)] focus:border-[var(--esc-panel-border-input)] focus:outline-none"
177
184
  />