@omnitend/dashboard-for-laravel 0.9.2 → 0.11.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.
@@ -1,8 +1,8 @@
1
1
  {
2
- "generated": "2026-07-04T11:54:15.956Z",
2
+ "generated": "2026-07-04T13:10:37.448Z",
3
3
  "package": {
4
4
  "name": "@omnitend/dashboard-for-laravel",
5
- "version": "0.9.2"
5
+ "version": "0.11.0"
6
6
  },
7
7
  "components": {
8
8
  "base": [
@@ -10,7 +10,7 @@
10
10
  "name": "DAccordion",
11
11
  "category": "base",
12
12
  "filePath": "resources/js/components/base/DAccordion.vue",
13
- "description": "",
13
+ "description": "Type-safe wrapper around Bootstrap Vue Next BAccordion component. Easily toggle content visibility with collapsible accordions.",
14
14
  "props": [],
15
15
  "events": [],
16
16
  "slots": [
@@ -73,7 +73,7 @@
73
73
  "name": "DAspect",
74
74
  "category": "base",
75
75
  "filePath": "resources/js/components/base/DAspect.vue",
76
- "description": "",
76
+ "description": "Type-safe wrapper around Bootstrap Vue Next BAspect component. Keeps its default slot content at a fixed aspect ratio (e.g. `aspect=\"16:9\"` or a number like `1.7778`). Useful for responsive media/embeds.",
77
77
  "props": [],
78
78
  "events": [],
79
79
  "slots": [
@@ -94,7 +94,7 @@
94
94
  "name": "DAutocomplete",
95
95
  "category": "base",
96
96
  "filePath": "resources/js/components/base/DAutocomplete.vue",
97
- "description": "",
97
+ "description": "Type-safe wrapper around Bootstrap Vue Next BAutocomplete component. Text input with a filtered dropdown of suggestions (typeahead/combobox). Pass `options` and bind `v-model`; supports `multiple` and a custom `filterFunction`.",
98
98
  "props": [],
99
99
  "events": [],
100
100
  "slots": [
@@ -115,7 +115,7 @@
115
115
  "name": "DAvatar",
116
116
  "category": "base",
117
117
  "filePath": "resources/js/components/base/DAvatar.vue",
118
- "description": "",
118
+ "description": "Type-safe wrapper around Bootstrap Vue Next BAvatar component. Display user profiles as pictures, icons, or short text.",
119
119
  "props": [],
120
120
  "events": [],
121
121
  "slots": [
@@ -157,7 +157,7 @@
157
157
  "name": "DBreadcrumb",
158
158
  "category": "base",
159
159
  "filePath": "resources/js/components/base/DBreadcrumb.vue",
160
- "description": "",
160
+ "description": "Type-safe wrapper around Bootstrap Vue Next BBreadcrumb component. Indicate the current page's location within a navigational hierarchy.",
161
161
  "props": [],
162
162
  "events": [],
163
163
  "slots": [
@@ -213,7 +213,7 @@
213
213
  "name": "DButtonGroup",
214
214
  "category": "base",
215
215
  "filePath": "resources/js/components/base/DButtonGroup.vue",
216
- "description": "",
216
+ "description": "Type-safe wrapper around Bootstrap Vue Next BButtonGroup component. Group a series of buttons on a single line or stack them vertically.",
217
217
  "props": [],
218
218
  "events": [],
219
219
  "slots": [
@@ -234,7 +234,7 @@
234
234
  "name": "DButtonToolbar",
235
235
  "category": "base",
236
236
  "filePath": "resources/js/components/base/DButtonToolbar.vue",
237
- "description": "",
237
+ "description": "Type-safe wrapper around Bootstrap Vue Next BButtonToolbar component. Group button groups and input groups together on a single line.",
238
238
  "props": [],
239
239
  "events": [],
240
240
  "slots": [
@@ -391,7 +391,7 @@
391
391
  "name": "DForm",
392
392
  "category": "base",
393
393
  "filePath": "resources/js/components/base/DForm.vue",
394
- "description": "",
394
+ "description": "Type-safe wrapper around Bootstrap Vue Next BForm component. Form component with support for inline styles and validation states.",
395
395
  "props": [],
396
396
  "events": [],
397
397
  "slots": [
@@ -485,7 +485,7 @@
485
485
  "name": "DFormOtp",
486
486
  "category": "base",
487
487
  "filePath": "resources/js/components/base/DFormOtp.vue",
488
- "description": "",
488
+ "description": "Type-safe wrapper around Bootstrap Vue Next BFormOtp component. One-time-code / PIN input rendered as a row of single-character boxes. `v-model` is a `string[]` (one entry per box).",
489
489
  "props": [],
490
490
  "events": [],
491
491
  "slots": [
@@ -506,7 +506,7 @@
506
506
  "name": "DFormRadio",
507
507
  "category": "base",
508
508
  "filePath": "resources/js/components/base/DFormRadio.vue",
509
- "description": "",
509
+ "description": "Type-safe wrapper around Bootstrap Vue Next BFormRadio component. Custom radio button input with accessibility markup.",
510
510
  "props": [],
511
511
  "events": [],
512
512
  "slots": [
@@ -527,7 +527,7 @@
527
527
  "name": "DFormRadioGroup",
528
528
  "category": "base",
529
529
  "filePath": "resources/js/components/base/DFormRadioGroup.vue",
530
- "description": "",
530
+ "description": "Type-safe wrapper around Bootstrap Vue Next BFormRadioGroup component. Renders a group of radio inputs from an `options` array or slot content.",
531
531
  "props": [],
532
532
  "events": [],
533
533
  "slots": [
@@ -569,7 +569,7 @@
569
569
  "name": "DFormSpinbutton",
570
570
  "category": "base",
571
571
  "filePath": "resources/js/components/base/DFormSpinbutton.vue",
572
- "description": "",
572
+ "description": "Type-safe wrapper around Bootstrap Vue Next BFormSpinbutton component. Number input with increment/decrement buttons.",
573
573
  "props": [],
574
574
  "events": [],
575
575
  "slots": [
@@ -590,7 +590,7 @@
590
590
  "name": "DFormTags",
591
591
  "category": "base",
592
592
  "filePath": "resources/js/components/base/DFormTags.vue",
593
- "description": "",
593
+ "description": "Type-safe wrapper around Bootstrap Vue Next BFormTags component. Lightweight custom tagged input with duplicate detection and validation.",
594
594
  "props": [],
595
595
  "events": [],
596
596
  "slots": [
@@ -642,7 +642,7 @@
642
642
  "name": "DImage",
643
643
  "category": "base",
644
644
  "filePath": "resources/js/components/base/DImage.vue",
645
- "description": "",
645
+ "description": "Type-safe wrapper around Bootstrap Vue Next BImg component. Responsive image component with optional lazy loading and fluid sizing.",
646
646
  "props": [],
647
647
  "events": [],
648
648
  "slots": [
@@ -663,7 +663,7 @@
663
663
  "name": "DInputGroup",
664
664
  "category": "base",
665
665
  "filePath": "resources/js/components/base/DInputGroup.vue",
666
- "description": "",
666
+ "description": "Type-safe wrapper around Bootstrap Vue Next BInputGroup component. Easily extend form controls by adding text, buttons, or button groups.",
667
667
  "props": [],
668
668
  "events": [],
669
669
  "slots": [
@@ -684,7 +684,7 @@
684
684
  "name": "DLink",
685
685
  "category": "base",
686
686
  "filePath": "resources/js/components/base/DLink.vue",
687
- "description": "",
687
+ "description": "Type-safe wrapper around Bootstrap Vue Next BLink component. Enhanced link component with router support and accessibility features.",
688
688
  "props": [],
689
689
  "events": [],
690
690
  "slots": [
@@ -705,7 +705,7 @@
705
705
  "name": "DListGroup",
706
706
  "category": "base",
707
707
  "filePath": "resources/js/components/base/DListGroup.vue",
708
- "description": "",
708
+ "description": "Type-safe wrapper around Bootstrap Vue Next BListGroup component. Flexible component for displaying a series of content items.",
709
709
  "props": [],
710
710
  "events": [],
711
711
  "slots": [
@@ -789,7 +789,7 @@
789
789
  "name": "DNavbar",
790
790
  "category": "base",
791
791
  "filePath": "resources/js/components/base/DNavbar.vue",
792
- "description": "",
792
+ "description": "Type-safe wrapper around Bootstrap Vue Next BNavbar component. Responsive navigation header with support for branding, navigation, and more.",
793
793
  "props": [],
794
794
  "events": [],
795
795
  "slots": [
@@ -915,7 +915,7 @@
915
915
  "name": "DOverlay",
916
916
  "category": "base",
917
917
  "filePath": "resources/js/components/base/DOverlay.vue",
918
- "description": "",
918
+ "description": "Type-safe wrapper around Bootstrap Vue Next BOverlay component. Overlay component for indicating loading states or blocking content.",
919
919
  "props": [],
920
920
  "events": [],
921
921
  "slots": [
@@ -946,7 +946,7 @@
946
946
  "name": "DPlaceholder",
947
947
  "category": "base",
948
948
  "filePath": "resources/js/components/base/DPlaceholder.vue",
949
- "description": "",
949
+ "description": "Type-safe wrapper around Bootstrap Vue Next BPlaceholder component. Loading placeholder component to indicate content is still loading.",
950
950
  "props": [],
951
951
  "events": [],
952
952
  "slots": [
@@ -967,7 +967,7 @@
967
967
  "name": "DPopover",
968
968
  "category": "base",
969
969
  "filePath": "resources/js/components/base/DPopover.vue",
970
- "description": "",
970
+ "description": "Type-safe wrapper around Bootstrap Vue Next BPopover component. Overlay component for displaying rich content in a popup.",
971
971
  "props": [],
972
972
  "events": [],
973
973
  "slots": [
@@ -988,7 +988,7 @@
988
988
  "name": "DProgress",
989
989
  "category": "base",
990
990
  "filePath": "resources/js/components/base/DProgress.vue",
991
- "description": "",
991
+ "description": "Type-safe wrapper around Bootstrap Vue Next BProgress component. Progress bar for displaying simple or complex progress indicators.",
992
992
  "props": [],
993
993
  "events": [],
994
994
  "slots": [
@@ -1115,7 +1115,7 @@
1115
1115
  "name": "DTabs",
1116
1116
  "category": "base",
1117
1117
  "filePath": "resources/js/components/base/DTabs.vue",
1118
- "description": "",
1118
+ "description": "Type-safe wrapper around Bootstrap Vue Next BTabs component. Create tabbed panes of local content with customisable navigation.",
1119
1119
  "props": [],
1120
1120
  "events": [],
1121
1121
  "slots": [
@@ -1178,7 +1178,7 @@
1178
1178
  "name": "DTooltip",
1179
1179
  "category": "base",
1180
1180
  "filePath": "resources/js/components/base/DTooltip.vue",
1181
- "description": "",
1181
+ "description": "Type-safe wrapper around Bootstrap Vue Next BTooltip component. Display helpful tooltips when hovering over elements.",
1182
1182
  "props": [],
1183
1183
  "events": [],
1184
1184
  "slots": [
@@ -1201,13 +1201,13 @@
1201
1201
  "name": "DXBasicForm",
1202
1202
  "category": "extended",
1203
1203
  "filePath": "resources/js/components/extended/DXBasicForm.vue",
1204
- "description": "",
1204
+ "description": "Deprecated alias of DXForm that renders a flat form (DXForm without a `tabs` prop) and warns once on use. A flat form is just DXForm without a `tabs` prop. This wrapper forwards everything to DXForm and logs a one-time deprecation warning so existing callers keep working while they migrate. Remove in a future major.",
1205
1205
  "props": [],
1206
1206
  "events": [],
1207
1207
  "slots": [
1208
1208
  {
1209
1209
  "name": "name",
1210
- "description": "",
1210
+ "description": "Passes every DXForm slot (e.g. `value(<key>)`, `footer`) straight through to the wrapped DXForm, along with its slot props.",
1211
1211
  "bindings": [
1212
1212
  {
1213
1213
  "name": "name",
@@ -1222,7 +1222,7 @@
1222
1222
  "name": "DXDashboard",
1223
1223
  "category": "extended",
1224
1224
  "filePath": "resources/js/components/extended/DXDashboard.vue",
1225
- "description": "",
1225
+ "description": "DXDashboard is the full dashboard shell — a collapsible sidebar (`DXDashboardSidebar`) alongside a top navbar (`DXDashboardNavbar`) and the page content area. It owns sidebar visibility state (persisted to localStorage, SSR-safe) and forwards any `sidebar-*` slot to the sidebar and any `navbar-*` slot to the navbar, stripping the prefix.",
1226
1226
  "props": [
1227
1227
  {
1228
1228
  "name": "navigation",
@@ -1250,6 +1250,18 @@
1250
1250
  "default": "''",
1251
1251
  "description": "Page title shown in navbar"
1252
1252
  },
1253
+ {
1254
+ "name": "fluid",
1255
+ "type": "boolean",
1256
+ "required": false,
1257
+ "description": "Render the page content full-width and left-aligned instead of the default\ncentred, reading-width (`col-xl-10`) column. Use for data-heavy admin pages\n(wide tables)."
1258
+ },
1259
+ {
1260
+ "name": "contentClass",
1261
+ "type": "string",
1262
+ "required": false,
1263
+ "description": "Extra class(es) applied to the content container/column."
1264
+ },
1253
1265
  {
1254
1266
  "name": "user",
1255
1267
  "type": "union",
@@ -1297,7 +1309,7 @@
1297
1309
  "slots": [
1298
1310
  {
1299
1311
  "name": "originalName",
1300
- "description": "",
1312
+ "description": "Forwards any `sidebar-*` slot to DXDashboardSidebar with the `sidebar-` prefix stripped (e.g. `sidebar-brand` becomes the sidebar's `brand` slot).",
1301
1313
  "bindings": [
1302
1314
  {
1303
1315
  "name": "name",
@@ -1307,7 +1319,7 @@
1307
1319
  },
1308
1320
  {
1309
1321
  "name": "default",
1310
- "description": "",
1322
+ "description": "Default slot for the main page content. Full-width when `fluid`, otherwise a centred reading-width column.",
1311
1323
  "bindings": []
1312
1324
  }
1313
1325
  ],
@@ -1317,78 +1329,94 @@
1317
1329
  "name": "DXDashboardNavbar",
1318
1330
  "category": "extended",
1319
1331
  "filePath": "resources/js/components/extended/DXDashboardNavbar.vue",
1320
- "description": "",
1332
+ "description": "Top navigation bar for the dashboard shell: menu toggle, page title, centred search, page-level actions, and the user menu. Usually rendered by `DXDashboard`, which forwards these slots with a `navbar-` prefix.",
1321
1333
  "props": [
1322
1334
  {
1323
1335
  "name": "user",
1324
1336
  "type": "union",
1325
1337
  "required": false,
1326
1338
  "default": "null",
1327
- "description": ""
1339
+ "description": "The signed-in user shown in the avatar dropdown. `null` hides the menu."
1328
1340
  },
1329
1341
  {
1330
1342
  "name": "pageTitle",
1331
1343
  "type": "string",
1332
1344
  "required": false,
1333
1345
  "default": "\"\"",
1334
- "description": ""
1346
+ "description": "Page title shown at the left of the navbar (hidden below the `md` breakpoint)."
1335
1347
  }
1336
1348
  ],
1337
1349
  "events": [
1338
1350
  {
1339
1351
  "name": "toggleSidebar",
1340
- "description": "",
1352
+ "description": "Emitted when the hamburger menu button is clicked.",
1341
1353
  "properties": []
1342
1354
  }
1343
1355
  ],
1344
1356
  "slots": [
1345
1357
  {
1346
1358
  "name": "menu-icon",
1347
- "description": "",
1359
+ "description": "Custom hamburger/menu icon. Defaults to a three-line SVG.",
1348
1360
  "bindings": []
1349
1361
  },
1350
1362
  {
1351
1363
  "name": "search",
1352
- "description": "",
1364
+ "description": "Search input or component. Centred in the bar on wider screens; drops to its own full-width row below the `md` breakpoint.",
1353
1365
  "bindings": []
1354
1366
  },
1355
1367
  {
1356
1368
  "name": "actions",
1357
- "description": "",
1369
+ "description": "Page-level primary actions (e.g. a Create button), right-aligned next to the user menu.",
1358
1370
  "bindings": [
1359
1371
  {
1360
- "name": "page-title",
1361
- "title": "binding"
1372
+ "title": "binding",
1373
+ "type": {
1374
+ "name": "string"
1375
+ },
1376
+ "name": "pageTitle",
1377
+ "description": "The current page title, for context."
1362
1378
  }
1363
1379
  ]
1364
1380
  },
1365
1381
  {
1366
1382
  "name": "user-menu",
1367
- "description": "",
1383
+ "description": "Replaces the entire user menu (the default avatar dropdown).",
1368
1384
  "bindings": [
1369
1385
  {
1386
+ "title": "binding",
1387
+ "type": {
1388
+ "name": "object"
1389
+ },
1370
1390
  "name": "user",
1371
- "title": "binding"
1391
+ "description": "The signed-in user."
1372
1392
  }
1373
1393
  ]
1374
1394
  },
1375
1395
  {
1376
1396
  "name": "user-icon",
1377
- "description": "",
1397
+ "description": "Custom user avatar/icon in the dropdown trigger.",
1378
1398
  "bindings": [
1379
1399
  {
1400
+ "title": "binding",
1401
+ "type": {
1402
+ "name": "string"
1403
+ },
1380
1404
  "name": "initial",
1381
- "title": "binding"
1405
+ "description": "The first letter of the user's name."
1382
1406
  }
1383
1407
  ]
1384
1408
  },
1385
1409
  {
1386
1410
  "name": "user-menu-items",
1387
- "description": "",
1411
+ "description": "Items for the default user dropdown menu.",
1388
1412
  "bindings": [
1389
1413
  {
1414
+ "title": "binding",
1415
+ "type": {
1416
+ "name": "object"
1417
+ },
1390
1418
  "name": "user",
1391
- "title": "binding"
1419
+ "description": "The signed-in user."
1392
1420
  }
1393
1421
  ]
1394
1422
  }
@@ -1399,40 +1427,40 @@
1399
1427
  "name": "DXDashboardSidebar",
1400
1428
  "category": "extended",
1401
1429
  "filePath": "resources/js/components/extended/DXDashboardSidebar.vue",
1402
- "description": "",
1430
+ "description": "Collapsible dashboard sidebar: renders a brand header plus grouped navigation from a `navigation` array, highlighting the item matching the current route. Groups can be plain labelled sections or accordion toggles that expand/collapse their items, and the active-route group opens automatically. The rail itself can collapse to an icons-only strip or hide entirely. Provides `brand` and `link` slots for custom rendering.",
1403
1431
  "props": [
1404
1432
  {
1405
1433
  "name": "navigation",
1406
1434
  "type": "Navigation",
1407
1435
  "required": true,
1408
- "description": ""
1436
+ "description": "Grouped navigation to render: an array of groups, each with a label and items."
1409
1437
  },
1410
1438
  {
1411
1439
  "name": "currentUrl",
1412
1440
  "type": "string",
1413
1441
  "required": true,
1414
- "description": ""
1442
+ "description": "The current route URL, used to highlight the matching nav item and open its group."
1415
1443
  },
1416
1444
  {
1417
1445
  "name": "collapsed",
1418
1446
  "type": "boolean",
1419
1447
  "required": false,
1420
1448
  "default": "false",
1421
- "description": ""
1449
+ "description": "Collapse the rail to an icons-only strip, hiding labels and the brand title."
1422
1450
  },
1423
1451
  {
1424
1452
  "name": "hidden",
1425
1453
  "type": "boolean",
1426
1454
  "required": false,
1427
1455
  "default": "false",
1428
- "description": ""
1456
+ "description": "Hide the sidebar entirely (`display: none`)."
1429
1457
  },
1430
1458
  {
1431
1459
  "name": "title",
1432
1460
  "type": "string",
1433
1461
  "required": false,
1434
1462
  "default": "'Dashboard'",
1435
- "description": ""
1463
+ "description": "Sidebar title; its first letter is also used as the brand initial."
1436
1464
  },
1437
1465
  {
1438
1466
  "name": "collapsibleGroups",
@@ -1452,44 +1480,82 @@
1452
1480
  "events": [
1453
1481
  {
1454
1482
  "name": "toggle",
1455
- "description": "",
1483
+ "description": "Emitted to request toggling the sidebar's collapsed/expanded state.",
1456
1484
  "properties": []
1457
1485
  }
1458
1486
  ],
1459
1487
  "slots": [
1460
1488
  {
1461
1489
  "name": "brand",
1462
- "description": "",
1490
+ "description": "Brand/logo area in the sidebar header. Defaults to the title's initial plus the full title (hidden when collapsed).",
1463
1491
  "bindings": [
1464
1492
  {
1493
+ "title": "binding",
1494
+ "type": {
1495
+ "name": "boolean"
1496
+ },
1465
1497
  "name": "collapsed",
1466
- "title": "binding"
1498
+ "description": "Whether the sidebar rail is collapsed to icons only."
1467
1499
  },
1468
1500
  {
1501
+ "title": "binding",
1502
+ "type": {
1503
+ "name": "string"
1504
+ },
1469
1505
  "name": "title",
1470
- "title": "binding"
1506
+ "description": "The sidebar title text."
1471
1507
  }
1472
1508
  ]
1473
1509
  },
1474
1510
  {
1475
1511
  "name": "link",
1476
- "description": "",
1512
+ "description": "Renders a single navigation item link. Defaults to an anchor with optional icon, label, and badge.",
1477
1513
  "bindings": [
1478
1514
  {
1515
+ "title": "binding",
1516
+ "type": {
1517
+ "name": "object"
1518
+ },
1479
1519
  "name": "item",
1480
- "title": "binding"
1520
+ "description": "The navigation item (label, url, icon, badge, badgeColor)."
1481
1521
  },
1482
1522
  {
1483
- "name": "is-active",
1484
- "title": "binding"
1523
+ "title": "binding",
1524
+ "type": {
1525
+ "name": "boolean"
1526
+ },
1527
+ "name": "isActive",
1528
+ "description": "Whether this item matches the current route."
1485
1529
  },
1486
1530
  {
1531
+ "title": "binding",
1532
+ "type": {
1533
+ "name": "boolean"
1534
+ },
1487
1535
  "name": "collapsed",
1488
- "title": "binding"
1536
+ "description": "Whether the sidebar rail is collapsed to icons only."
1489
1537
  },
1490
1538
  {
1491
- "name": "is-expanded",
1492
- "title": "binding"
1539
+ "title": "binding",
1540
+ "type": {
1541
+ "name": "boolean"
1542
+ },
1543
+ "name": "isExpanded",
1544
+ "description": "Whether the item's group is currently expanded."
1545
+ }
1546
+ ]
1547
+ },
1548
+ {
1549
+ "name": "footer",
1550
+ "description": "Utility/secondary links pinned to the bottom of the sidebar (help, changelog, sign-out, …), below the nav groups.",
1551
+ "bindings": [
1552
+ {
1553
+ "title": "binding",
1554
+ "type": {
1555
+ "name": "boolean"
1556
+ },
1557
+ "name": "collapsed",
1558
+ "description": "Whether the sidebar rail is collapsed to icons only."
1493
1559
  }
1494
1560
  ]
1495
1561
  }
@@ -1500,7 +1566,7 @@
1500
1566
  "name": "DXField",
1501
1567
  "category": "extended",
1502
1568
  "filePath": "resources/js/components/extended/DXField.vue",
1503
- "description": "",
1569
+ "description": "Renders a single `FieldDefinition` of any type (text, select, checkbox, switch, repeater, currency, percentage, file/image, component, etc.) with its label, validation error, hint and help. Used by `DXForm` and `DXTable`'s edit modal; exposes `value`, `span`, `info`, `hint` and `repeater-row` slots for per-field customisation.",
1504
1570
  "props": [
1505
1571
  {
1506
1572
  "name": "field",
@@ -1537,79 +1603,127 @@
1537
1603
  "slots": [
1538
1604
  {
1539
1605
  "name": "span",
1540
- "description": "",
1606
+ "description": "Replaces the entire field with custom full-width content when `field.span` is set, bypassing the label and built-in control.",
1541
1607
  "bindings": [
1542
1608
  {
1609
+ "title": "binding",
1610
+ "type": {
1611
+ "name": "FieldDefinition"
1612
+ },
1543
1613
  "name": "field",
1544
- "title": "binding"
1614
+ "description": "The field definition being rendered."
1545
1615
  },
1546
1616
  {
1617
+ "title": "binding",
1618
+ "type": {
1619
+ "name": "any"
1620
+ },
1547
1621
  "name": "model",
1548
- "title": "binding"
1622
+ "description": "The model passed to field predicates (defaults to the live form data)."
1549
1623
  },
1550
1624
  {
1625
+ "title": "binding",
1626
+ "type": {
1627
+ "name": "any"
1628
+ },
1551
1629
  "name": "value",
1552
- "title": "binding"
1630
+ "description": "The current field value."
1553
1631
  },
1554
1632
  {
1633
+ "title": "binding",
1634
+ "type": {
1635
+ "name": "(value: any) => void"
1636
+ },
1555
1637
  "name": "update",
1556
- "title": "binding"
1638
+ "description": "Setter that writes the value back and clears the field's validation error."
1557
1639
  }
1558
1640
  ]
1559
1641
  },
1560
1642
  {
1561
1643
  "name": "value",
1562
- "description": "",
1644
+ "description": "Replaces the built-in control with a custom value editor.",
1563
1645
  "bindings": [
1564
1646
  {
1647
+ "title": "binding",
1648
+ "type": {
1649
+ "name": "FieldDefinition"
1650
+ },
1565
1651
  "name": "field",
1566
- "title": "binding"
1652
+ "description": "The field definition being rendered."
1567
1653
  },
1568
1654
  {
1655
+ "title": "binding",
1656
+ "type": {
1657
+ "name": "any"
1658
+ },
1569
1659
  "name": "model",
1570
- "title": "binding"
1660
+ "description": "The model passed to field predicates (defaults to the live form data)."
1571
1661
  },
1572
1662
  {
1663
+ "title": "binding",
1664
+ "type": {
1665
+ "name": "any"
1666
+ },
1573
1667
  "name": "value",
1574
- "title": "binding"
1668
+ "description": "The current field value."
1575
1669
  },
1576
1670
  {
1671
+ "title": "binding",
1672
+ "type": {
1673
+ "name": "(value: any) => void"
1674
+ },
1577
1675
  "name": "update",
1578
- "title": "binding"
1676
+ "description": "Setter that writes the value back and clears the field's validation error."
1579
1677
  }
1580
1678
  ]
1581
1679
  },
1582
1680
  {
1583
1681
  "name": "info",
1584
- "description": "",
1682
+ "description": "Rich info block rendered below the control.",
1585
1683
  "bindings": [
1586
1684
  {
1685
+ "title": "binding",
1686
+ "type": {
1687
+ "name": "FieldDefinition"
1688
+ },
1587
1689
  "name": "field",
1588
- "title": "binding"
1690
+ "description": "The field definition being rendered."
1589
1691
  },
1590
1692
  {
1693
+ "title": "binding",
1694
+ "type": {
1695
+ "name": "any"
1696
+ },
1591
1697
  "name": "model",
1592
- "title": "binding"
1698
+ "description": "The model passed to field predicates (defaults to the live form data)."
1593
1699
  }
1594
1700
  ]
1595
1701
  },
1596
1702
  {
1597
1703
  "name": "hint",
1598
- "description": "",
1704
+ "description": "Overrides the field's hint text shown below the control.",
1599
1705
  "bindings": [
1600
1706
  {
1707
+ "title": "binding",
1708
+ "type": {
1709
+ "name": "FieldDefinition"
1710
+ },
1601
1711
  "name": "field",
1602
- "title": "binding"
1712
+ "description": "The field definition being rendered."
1603
1713
  },
1604
1714
  {
1715
+ "title": "binding",
1716
+ "type": {
1717
+ "name": "any"
1718
+ },
1605
1719
  "name": "model",
1606
- "title": "binding"
1720
+ "description": "The model passed to field predicates (defaults to the live form data)."
1607
1721
  }
1608
1722
  ]
1609
1723
  },
1610
1724
  {
1611
1725
  "name": "repeater-row",
1612
- "description": "",
1726
+ "description": "Custom layout for a single repeater row, forwarded to `DXRepeater`'s `row` slot with its row props (row index, item, remove handler, etc.).",
1613
1727
  "bindings": []
1614
1728
  }
1615
1729
  ],
@@ -1619,7 +1733,7 @@
1619
1733
  "name": "DXFieldLabel",
1620
1734
  "category": "extended",
1621
1735
  "filePath": "resources/js/components/extended/DXFieldLabel.vue",
1622
- "description": "",
1736
+ "description": "A form field label with an optional info affordance that reveals help text in a hover/focus popover next to the label.",
1623
1737
  "props": [
1624
1738
  {
1625
1739
  "name": "label",
@@ -1642,7 +1756,7 @@
1642
1756
  "name": "DXForm",
1643
1757
  "category": "extended",
1644
1758
  "filePath": "resources/js/components/extended/DXForm.vue",
1645
- "description": "",
1759
+ "description": "DXForm — the canonical form renderer. Driven by field definitions, with optional tabs. Renders every field through DXField (the single field engine), so flat and tabbed forms share one code path. Supports conditional fields/tabs, per-field slot overrides, async options, nested repeaters, and auto-switching to the first tab containing a validation error. Accepts either a `useForm` return or a `defineForm` return; with the latter `fields` may be omitted. Works with the fetch-based `useForm` composable (no Inertia required).",
1646
1760
  "props": [
1647
1761
  {
1648
1762
  "name": "form",
@@ -1700,50 +1814,66 @@
1700
1814
  "events": [
1701
1815
  {
1702
1816
  "name": "submit",
1703
- "description": "",
1817
+ "description": "Emitted when the form is submitted, after the native submit is prevented.",
1704
1818
  "properties": []
1705
1819
  }
1706
1820
  ],
1707
1821
  "slots": [
1708
1822
  {
1709
1823
  "name": "`tab-content(${tab.key})`",
1710
- "description": "",
1824
+ "description": "Replaces the entire body of a tab, keyed by tab (slot name `tab-content(<tabKey>)`).",
1711
1825
  "bindings": [
1712
1826
  {
1713
1827
  "name": "name",
1714
1828
  "title": "binding"
1715
1829
  },
1716
1830
  {
1831
+ "title": "binding",
1832
+ "type": {
1833
+ "name": "FormTab"
1834
+ },
1717
1835
  "name": "tab",
1718
- "title": "binding"
1836
+ "description": "The tab definition being rendered."
1719
1837
  },
1720
1838
  {
1839
+ "title": "binding",
1840
+ "type": {
1841
+ "name": "object"
1842
+ },
1721
1843
  "name": "model",
1722
- "title": "binding"
1844
+ "description": "Live form data merged with `context`, for predicates."
1723
1845
  }
1724
1846
  ]
1725
1847
  },
1726
1848
  {
1727
1849
  "name": "`tab-before(${tab.key})`",
1728
- "description": "",
1850
+ "description": "Content inserted above a tab's fields, keyed by tab (slot name `tab-before(<tabKey>)`).",
1729
1851
  "bindings": [
1730
1852
  {
1731
1853
  "name": "name",
1732
1854
  "title": "binding"
1733
1855
  },
1734
1856
  {
1857
+ "title": "binding",
1858
+ "type": {
1859
+ "name": "FormTab"
1860
+ },
1735
1861
  "name": "tab",
1736
- "title": "binding"
1862
+ "description": "The tab definition being rendered."
1737
1863
  },
1738
1864
  {
1865
+ "title": "binding",
1866
+ "type": {
1867
+ "name": "object"
1868
+ },
1739
1869
  "name": "model",
1740
- "title": "binding"
1870
+ "description": "Live form data merged with `context`, for predicates."
1741
1871
  }
1742
1872
  ]
1743
1873
  },
1744
1874
  {
1745
1875
  "name": "slotName",
1746
- "description": "",
1876
+ "description": "Per-field overrides forwarded to DXField, keyed by field key: `value(<key>)`, `span(<key>)`, `info(<key>)`, `hint(<key>)`, `repeater-row(<key>)`.",
1747
1877
  "bindings": [
1748
1878
  {
1749
1879
  "name": "name",
@@ -1753,29 +1883,41 @@
1753
1883
  },
1754
1884
  {
1755
1885
  "name": "`tab-after(${tab.key})`",
1756
- "description": "",
1886
+ "description": "Content inserted below a tab's fields, keyed by tab (slot name `tab-after(<tabKey>)`).",
1757
1887
  "bindings": [
1758
1888
  {
1759
1889
  "name": "name",
1760
1890
  "title": "binding"
1761
1891
  },
1762
1892
  {
1893
+ "title": "binding",
1894
+ "type": {
1895
+ "name": "FormTab"
1896
+ },
1763
1897
  "name": "tab",
1764
- "title": "binding"
1898
+ "description": "The tab definition being rendered."
1765
1899
  },
1766
1900
  {
1901
+ "title": "binding",
1902
+ "type": {
1903
+ "name": "object"
1904
+ },
1767
1905
  "name": "model",
1768
- "title": "binding"
1906
+ "description": "Live form data merged with `context`, for predicates."
1769
1907
  }
1770
1908
  ]
1771
1909
  },
1772
1910
  {
1773
1911
  "name": "footer",
1774
- "description": "",
1912
+ "description": "Content rendered below the submit button (e.g. a cancel link or secondary actions).",
1775
1913
  "bindings": [
1776
1914
  {
1915
+ "title": "binding",
1916
+ "type": {
1917
+ "name": "UseFormReturn"
1918
+ },
1777
1919
  "name": "form",
1778
- "title": "binding"
1920
+ "description": "The resolved form instance (state, errors, submit helpers)."
1779
1921
  }
1780
1922
  ]
1781
1923
  }
@@ -1786,7 +1928,7 @@
1786
1928
  "name": "DXRepeater",
1787
1929
  "category": "extended",
1788
1930
  "filePath": "resources/js/components/extended/DXRepeater.vue",
1789
- "description": "",
1931
+ "description": "DXRepeater renders a nested, repeatable sub-form for a repeater field: a list of rows (each a group of sub-fields) with add/remove controls, honouring the field's `minItems`/`maxItems` limits.",
1790
1932
  "props": [
1791
1933
  {
1792
1934
  "name": "form",
@@ -1817,27 +1959,47 @@
1817
1959
  "slots": [
1818
1960
  {
1819
1961
  "name": "row",
1820
- "description": "",
1962
+ "description": "Custom layout for a single repeater row, replacing the default sub-field stack.",
1821
1963
  "bindings": [
1822
1964
  {
1965
+ "title": "binding",
1966
+ "type": {
1967
+ "name": "object"
1968
+ },
1823
1969
  "name": "row",
1824
- "title": "binding"
1970
+ "description": "The current row's data object."
1825
1971
  },
1826
1972
  {
1973
+ "title": "binding",
1974
+ "type": {
1975
+ "name": "number"
1976
+ },
1827
1977
  "name": "index",
1828
- "title": "binding"
1978
+ "description": "The row's zero-based index."
1829
1979
  },
1830
1980
  {
1981
+ "title": "binding",
1982
+ "type": {
1983
+ "name": "FieldDefinition[]"
1984
+ },
1831
1985
  "name": "fields",
1832
- "title": "binding"
1986
+ "description": "The sub-field definitions for the row."
1833
1987
  },
1834
1988
  {
1989
+ "title": "binding",
1990
+ "type": {
1991
+ "name": "function"
1992
+ },
1835
1993
  "name": "remove",
1836
- "title": "binding"
1994
+ "description": "Removes this row (respects `minItems`)."
1837
1995
  },
1838
1996
  {
1997
+ "title": "binding",
1998
+ "type": {
1999
+ "name": "string"
2000
+ },
1839
2001
  "name": "path",
1840
- "title": "binding"
2002
+ "description": "The dot path into `form.data` for this row (e.g. `lines.0`)."
1841
2003
  }
1842
2004
  ]
1843
2005
  }
@@ -1848,7 +2010,7 @@
1848
2010
  "name": "DXTable",
1849
2011
  "category": "extended",
1850
2012
  "filePath": "resources/js/components/extended/DXTable.vue",
1851
- "description": "",
2013
+ "description": "Full-featured dashboard data table. Wraps `DTable` and adds three data modes (Inertia items, client-side, and API/provider), inline per-column filters, single-column sorting, pagination with a per-page selector, and an optional edit/create/delete modal driven by `DXForm`.",
1852
2014
  "props": [
1853
2015
  {
1854
2016
  "name": "title",
@@ -2059,6 +2221,12 @@
2059
2221
  "required": false,
2060
2222
  "description": "API endpoint pattern for deletions (e.g., \"/api/products/:id\")"
2061
2223
  },
2224
+ {
2225
+ "name": "deleteGuard",
2226
+ "type": "TSFunctionType",
2227
+ "required": false,
2228
+ "description": "Guard run when Delete is clicked, before the confirm dialog and request.\nReturn a message for a non-deletable item to show it immediately (as a\ntoast) and skip both the confirm and the delete request; return\n`null`/`undefined` to proceed with the normal confirm + delete. Lets you\nshort-circuit a doomed delete (e.g. a record with dependents that the\nserver would reject) with an immediate, specific reason."
2229
+ },
2062
2230
  {
2063
2231
  "name": "createUrl",
2064
2232
  "type": "string",
@@ -2075,89 +2243,89 @@
2075
2243
  "events": [
2076
2244
  {
2077
2245
  "name": "pageChange",
2078
- "description": "",
2246
+ "description": "Emitted when the user navigates to a different page (all modes). Payload is the new 1-based page number.",
2079
2247
  "properties": []
2080
2248
  },
2081
2249
  {
2082
2250
  "name": "sortChange",
2083
- "description": "",
2251
+ "description": "Emitted (Inertia mode) when the sort column or direction changes, with the active field key and order.",
2084
2252
  "properties": []
2085
2253
  },
2086
2254
  {
2087
2255
  "name": "filterChange",
2088
- "description": "",
2256
+ "description": "Emitted when the inline column filter values change (debounced for server modes, immediate for client-side). Payload is the full filter map.",
2089
2257
  "properties": []
2090
2258
  },
2091
2259
  {
2092
2260
  "name": "perPageChange",
2093
- "description": "",
2261
+ "description": "Emitted when the per-page selector value changes. Payload is the new page size.",
2094
2262
  "properties": []
2095
2263
  },
2096
2264
  {
2097
2265
  "name": "rowClicked",
2098
- "description": "",
2266
+ "description": "Emitted when a table row is clicked, with the row item, its index, and the click event.",
2099
2267
  "properties": []
2100
2268
  },
2101
2269
  {
2102
2270
  "name": "rowCreated",
2103
- "description": "",
2271
+ "description": "Emitted after a new item is successfully created via `createUrl`, with the created item and the raw response.",
2104
2272
  "properties": []
2105
2273
  },
2106
2274
  {
2107
2275
  "name": "createError",
2108
- "description": "",
2276
+ "description": "Emitted when a create request fails, with the validation errors or error object.",
2109
2277
  "properties": []
2110
2278
  },
2111
2279
  {
2112
2280
  "name": "rowUpdated",
2113
- "description": "",
2281
+ "description": "Emitted after a row is successfully updated (or, with no `editUrl`, when the modal is saved), with the item and the response/form data.",
2114
2282
  "properties": []
2115
2283
  },
2116
2284
  {
2117
2285
  "name": "editError",
2118
- "description": "",
2286
+ "description": "Emitted when an update request fails, with the edited item and the error.",
2119
2287
  "properties": []
2120
2288
  },
2121
2289
  {
2122
2290
  "name": "rowDeleted",
2123
- "description": "",
2291
+ "description": "Emitted after a row is successfully deleted via `deleteUrl`, with the deleted item and the response.",
2124
2292
  "properties": []
2125
2293
  },
2126
2294
  {
2127
2295
  "name": "deleteError",
2128
- "description": "",
2296
+ "description": "Emitted when a delete request fails, with the item and the error.",
2129
2297
  "properties": []
2130
2298
  },
2131
2299
  {
2132
2300
  "name": "update:sortBy",
2133
- "description": "",
2301
+ "description": "`v-model:sortBy` update, emitted with the normalized single-column sort array when sorting changes.",
2134
2302
  "properties": []
2135
2303
  },
2136
2304
  {
2137
2305
  "name": "update:filters",
2138
- "description": "",
2306
+ "description": "`v-model:filters` update, emitted with the new filter map when a column filter changes.",
2139
2307
  "properties": []
2140
2308
  },
2141
2309
  {
2142
2310
  "name": "update:perPage",
2143
- "description": "",
2311
+ "description": "`v-model:perPage` update, emitted with the new page size when the per-page selector changes.",
2144
2312
  "properties": []
2145
2313
  },
2146
2314
  {
2147
2315
  "name": "update:busy",
2148
- "description": "",
2316
+ "description": "`v-model:busy` update, forwarded from the underlying table's provider loading state (provider mode).",
2149
2317
  "properties": []
2150
2318
  }
2151
2319
  ],
2152
2320
  "slots": [
2153
2321
  {
2154
2322
  "name": "header",
2155
- "description": "",
2323
+ "description": "Card header content; overrides the default title heading and the \"New {item}\" button.",
2156
2324
  "bindings": []
2157
2325
  },
2158
2326
  {
2159
2327
  "name": "name",
2160
- "description": "",
2328
+ "description": "Custom rendering for a column's cell. Name it `cell(<fieldKey>)` to target a field; receives the underlying table cell scope.",
2161
2329
  "bindings": [
2162
2330
  {
2163
2331
  "name": "name",
@@ -2167,107 +2335,163 @@
2167
2335
  },
2168
2336
  {
2169
2337
  "name": "`edit-value(${key})`",
2170
- "description": "",
2338
+ "description": "Custom input for field `<key>` in the edit/create modal, forwarded to DXForm. Name it `edit-value(<fieldKey>)`.",
2171
2339
  "bindings": [
2172
2340
  {
2173
2341
  "name": "name",
2174
2342
  "title": "binding"
2175
2343
  },
2176
2344
  {
2345
+ "title": "binding",
2346
+ "type": {
2347
+ "name": "object"
2348
+ },
2177
2349
  "name": "item",
2178
- "title": "binding"
2350
+ "description": "The row being edited (null in create mode)."
2179
2351
  },
2180
2352
  {
2353
+ "title": "binding",
2354
+ "type": {
2355
+ "name": "any"
2356
+ },
2181
2357
  "name": "value",
2182
- "title": "binding"
2358
+ "description": "The current field value."
2183
2359
  },
2184
2360
  {
2361
+ "title": "binding",
2362
+ "type": {
2363
+ "name": "Function"
2364
+ },
2185
2365
  "name": "update",
2186
- "title": "binding"
2366
+ "description": "Call with a new value to update the field."
2187
2367
  },
2188
2368
  {
2369
+ "title": "binding",
2370
+ "type": {
2371
+ "name": "object"
2372
+ },
2189
2373
  "name": "field",
2190
- "title": "binding"
2374
+ "description": "The field definition."
2191
2375
  }
2192
2376
  ]
2193
2377
  },
2194
2378
  {
2195
2379
  "name": "`edit-span(${key})`",
2196
- "description": "",
2380
+ "description": "Full-width custom content for field `<key>` in the edit/create modal, forwarded to DXForm's span slot. Name it `edit-span(<fieldKey>)`.",
2197
2381
  "bindings": [
2198
2382
  {
2199
2383
  "name": "name",
2200
2384
  "title": "binding"
2201
2385
  },
2202
2386
  {
2387
+ "title": "binding",
2388
+ "type": {
2389
+ "name": "object"
2390
+ },
2203
2391
  "name": "item",
2204
- "title": "binding"
2392
+ "description": "The row being edited (null in create mode)."
2205
2393
  },
2206
2394
  {
2395
+ "title": "binding",
2396
+ "type": {
2397
+ "name": "any"
2398
+ },
2207
2399
  "name": "value",
2208
- "title": "binding"
2400
+ "description": "The current field value."
2209
2401
  },
2210
2402
  {
2403
+ "title": "binding",
2404
+ "type": {
2405
+ "name": "Function"
2406
+ },
2211
2407
  "name": "update",
2212
- "title": "binding"
2408
+ "description": "Call with a new value to update the field."
2213
2409
  },
2214
2410
  {
2411
+ "title": "binding",
2412
+ "type": {
2413
+ "name": "Function"
2414
+ },
2215
2415
  "name": "close",
2216
- "title": "binding"
2416
+ "description": "Call to close the edit modal."
2217
2417
  }
2218
2418
  ]
2219
2419
  },
2220
2420
  {
2221
2421
  "name": "`tab-content(${key})`",
2222
- "description": "",
2422
+ "description": "Replaces the auto-rendered fields of edit-modal tab `<key>` with custom content. Name it `tab-content(<tabKey>)`.",
2223
2423
  "bindings": [
2224
2424
  {
2225
2425
  "name": "name",
2226
2426
  "title": "binding"
2227
2427
  },
2228
2428
  {
2429
+ "title": "binding",
2430
+ "type": {
2431
+ "name": "object"
2432
+ },
2229
2433
  "name": "item",
2230
- "title": "binding"
2434
+ "description": "The row being edited (null in create mode)."
2231
2435
  },
2232
2436
  {
2437
+ "title": "binding",
2438
+ "type": {
2439
+ "name": "object"
2440
+ },
2233
2441
  "name": "tab",
2234
- "title": "binding"
2442
+ "description": "The tab definition."
2235
2443
  }
2236
2444
  ]
2237
2445
  },
2238
2446
  {
2239
2447
  "name": "`tab-before(${key})`",
2240
- "description": "",
2448
+ "description": "Custom content rendered before the fields of edit-modal tab `<key>`. Name it `tab-before(<tabKey>)`.",
2241
2449
  "bindings": [
2242
2450
  {
2243
2451
  "name": "name",
2244
2452
  "title": "binding"
2245
2453
  },
2246
2454
  {
2455
+ "title": "binding",
2456
+ "type": {
2457
+ "name": "object"
2458
+ },
2247
2459
  "name": "item",
2248
- "title": "binding"
2460
+ "description": "The row being edited (null in create mode)."
2249
2461
  },
2250
2462
  {
2463
+ "title": "binding",
2464
+ "type": {
2465
+ "name": "object"
2466
+ },
2251
2467
  "name": "tab",
2252
- "title": "binding"
2468
+ "description": "The tab definition."
2253
2469
  }
2254
2470
  ]
2255
2471
  },
2256
2472
  {
2257
2473
  "name": "`tab-after(${key})`",
2258
- "description": "",
2474
+ "description": "Custom content rendered after the fields of edit-modal tab `<key>`. Name it `tab-after(<tabKey>)`.",
2259
2475
  "bindings": [
2260
2476
  {
2261
2477
  "name": "name",
2262
2478
  "title": "binding"
2263
2479
  },
2264
2480
  {
2481
+ "title": "binding",
2482
+ "type": {
2483
+ "name": "object"
2484
+ },
2265
2485
  "name": "item",
2266
- "title": "binding"
2486
+ "description": "The row being edited (null in create mode)."
2267
2487
  },
2268
2488
  {
2489
+ "title": "binding",
2490
+ "type": {
2491
+ "name": "object"
2492
+ },
2269
2493
  "name": "tab",
2270
- "title": "binding"
2494
+ "description": "The tab definition."
2271
2495
  }
2272
2496
  ]
2273
2497
  }