apex-grid 3.3.0 → 3.5.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 (132) hide show
  1. package/CHANGELOG.md +143 -0
  2. package/README.md +74 -6
  3. package/components/cell.d.ts +2 -2
  4. package/components/cell.js +30 -2
  5. package/components/cell.js.map +1 -1
  6. package/components/filter-row.js +65 -6
  7. package/components/filter-row.js.map +1 -1
  8. package/components/grid.d.ts +132 -0
  9. package/components/grid.js +59 -2
  10. package/components/grid.js.map +1 -1
  11. package/components/header-row.js +8 -0
  12. package/components/header-row.js.map +1 -1
  13. package/components/header.js +85 -12
  14. package/components/header.js.map +1 -1
  15. package/components/row.js +32 -4
  16. package/components/row.js.map +1 -1
  17. package/components/virtualizer.d.ts +5 -1
  18. package/components/virtualizer.js +72 -2
  19. package/components/virtualizer.js.map +1 -1
  20. package/controllers/expansion.js +4 -4
  21. package/controllers/expansion.js.map +1 -1
  22. package/controllers/filter.js +11 -0
  23. package/controllers/filter.js.map +1 -1
  24. package/controllers/history.js +11 -4
  25. package/controllers/history.js.map +1 -1
  26. package/controllers/navigation.d.ts +35 -2
  27. package/controllers/navigation.js +102 -8
  28. package/controllers/navigation.js.map +1 -1
  29. package/controllers/pagination.js +1 -1
  30. package/controllers/pagination.js.map +1 -1
  31. package/controllers/reorder.js +4 -2
  32. package/controllers/reorder.js.map +1 -1
  33. package/controllers/row-pin.js +2 -2
  34. package/controllers/row-pin.js.map +1 -1
  35. package/controllers/row-reorder.js +6 -6
  36. package/controllers/row-reorder.js.map +1 -1
  37. package/controllers/selection.js +3 -3
  38. package/controllers/selection.js.map +1 -1
  39. package/controllers/sort.js +4 -2
  40. package/controllers/sort.js.map +1 -1
  41. package/controllers/state.d.ts +9 -3
  42. package/controllers/state.js +11 -1
  43. package/controllers/state.js.map +1 -1
  44. package/custom-elements.json +664 -190
  45. package/docs/assets/hierarchy.js +1 -1
  46. package/docs/assets/navigation.js +1 -1
  47. package/docs/assets/search.js +1 -1
  48. package/docs/classes/ApexGrid.html +586 -0
  49. package/docs/classes/ApexGridPaginator.html +36 -0
  50. package/docs/classes/ApexGridToolbar.html +67 -0
  51. package/docs/functions/localize.html +2 -2
  52. package/docs/functions/setup.html +1 -2
  53. package/docs/hierarchy.html +1 -1
  54. package/docs/index.html +94 -6
  55. package/docs/interfaces/ApexCellValidationFailedEvent.html +1 -1
  56. package/docs/interfaces/ApexCellValueChangedEvent.html +1 -1
  57. package/docs/interfaces/ApexCellValueChangingEvent.html +2 -2
  58. package/docs/interfaces/ApexColumnMovedEvent.html +2 -2
  59. package/docs/interfaces/ApexColumnMovingEvent.html +1 -1
  60. package/docs/interfaces/ApexDetailContext.html +2 -2
  61. package/docs/interfaces/ApexGridEventMap.html +5 -5
  62. package/docs/interfaces/ApexRowMovingEvent.html +1 -1
  63. package/docs/interfaces/ApexRowPinningEvent.html +1 -1
  64. package/docs/interfaces/BaseApexCellContext.html +1 -1
  65. package/docs/interfaces/BaseApexEditorContext.html +1 -1
  66. package/docs/interfaces/BaseColumnConfiguration.html +3 -3
  67. package/docs/interfaces/CSVExportOptions.html +2 -2
  68. package/docs/interfaces/DataPipelineConfiguration.html +2 -2
  69. package/docs/interfaces/EditingHistoryConfiguration.html +1 -1
  70. package/docs/interfaces/ExportFormat.html +2 -2
  71. package/docs/interfaces/ExportOptions.html +1 -1
  72. package/docs/interfaces/GridRowPinningConfiguration.html +1 -1
  73. package/docs/interfaces/GridRowReorderingConfiguration.html +2 -2
  74. package/docs/interfaces/PaginationConfiguration.html +1 -1
  75. package/docs/interfaces/PaginationState.html +1 -1
  76. package/docs/media/_tokens.scss +29 -8
  77. package/docs/media/package.json +4 -5
  78. package/docs/media/state-persistence.html +0 -10
  79. package/docs/modules.html +1 -1
  80. package/docs/types/DataPipelineParams.html +2 -2
  81. package/docs/types/EditMode.html +2 -2
  82. package/docs/types/GridLocaleText.html +1 -1
  83. package/docs/types/PaginationMode.html +1 -1
  84. package/docs/variables/EN_LOCALE.html +3 -3
  85. package/docs/variables/esLocale.html +1 -1
  86. package/i18n/en.d.ts +109 -1
  87. package/i18n/en.js +109 -1
  88. package/i18n/en.js.map +1 -1
  89. package/i18n/es.js +109 -1
  90. package/i18n/es.js.map +1 -1
  91. package/index.d.ts +2 -0
  92. package/index.js +2 -0
  93. package/index.js.map +1 -1
  94. package/internal/column-types.js +1 -1
  95. package/internal/column-types.js.map +1 -1
  96. package/internal/feature-module.d.ts +22 -0
  97. package/internal/feature-module.js +5 -0
  98. package/internal/feature-module.js.map +1 -1
  99. package/internal/index.d.ts +2 -2
  100. package/internal/index.js +1 -1
  101. package/internal/index.js.map +1 -1
  102. package/internal/utils.d.ts +14 -0
  103. package/internal/utils.js +5 -0
  104. package/internal/utils.js.map +1 -1
  105. package/package.json +1 -2
  106. package/setup.d.ts +12 -11
  107. package/setup.js +12 -4
  108. package/setup.js.map +1 -1
  109. package/styles/_common.css.js +1 -1
  110. package/styles/_common.css.js.map +1 -1
  111. package/styles/_tokens.css.js +1 -1
  112. package/styles/_tokens.css.js.map +1 -1
  113. package/styles/body-cell/body-cell.css.js +1 -1
  114. package/styles/body-cell/body-cell.css.js.map +1 -1
  115. package/styles/body-row/body-row.css.js +1 -1
  116. package/styles/body-row/body-row.css.js.map +1 -1
  117. package/styles/filter-row/filter-row.css.js +1 -1
  118. package/styles/filter-row/filter-row.css.js.map +1 -1
  119. package/styles/grid/_grid.base.css.js +1 -1
  120. package/styles/grid/_grid.base.css.js.map +1 -1
  121. package/styles/grid/grid.css.js +1 -1
  122. package/styles/grid/grid.css.js.map +1 -1
  123. package/styles/group-header-row/group-header-row.css.js +1 -1
  124. package/styles/group-header-row/group-header-row.css.js.map +1 -1
  125. package/styles/header-cell/header-cell.css.js +1 -1
  126. package/styles/header-cell/header-cell.css.js.map +1 -1
  127. package/styles/header-row/header-row.base.css.js +1 -1
  128. package/styles/header-row/header-row.base.css.js.map +1 -1
  129. package/styles/paginator/paginator.css.js +1 -1
  130. package/styles/paginator/paginator.css.js.map +1 -1
  131. package/styles/toolbar/toolbar.css.js +1 -1
  132. package/styles/toolbar/toolbar.css.js.map +1 -1
@@ -246,6 +246,22 @@
246
246
  "module": "./components/grid.js"
247
247
  }
248
248
  },
249
+ {
250
+ "kind": "js",
251
+ "name": "ApexGridPaginator",
252
+ "declaration": {
253
+ "name": "default",
254
+ "module": "./components/paginator.js"
255
+ }
256
+ },
257
+ {
258
+ "kind": "js",
259
+ "name": "ApexGridToolbar",
260
+ "declaration": {
261
+ "name": "default",
262
+ "module": "./components/toolbar.js"
263
+ }
264
+ },
249
265
  {
250
266
  "kind": "js",
251
267
  "name": "RowPinPosition",
@@ -974,24 +990,6 @@
974
990
  }
975
991
  ],
976
992
  "members": [
977
- {
978
- "kind": "field",
979
- "name": "tagName",
980
- "privacy": "public",
981
- "static": true,
982
- "readonly": true
983
- },
984
- {
985
- "kind": "method",
986
- "name": "register",
987
- "privacy": "public",
988
- "static": true,
989
- "return": {
990
- "type": {
991
- "text": "void"
992
- }
993
- }
994
- },
995
993
  {
996
994
  "kind": "field",
997
995
  "name": "value",
@@ -1132,18 +1130,6 @@
1132
1130
  "default": "[]",
1133
1131
  "description": "Decoration attribute keys applied on the previous update, for cleanup."
1134
1132
  },
1135
- {
1136
- "kind": "field",
1137
- "name": "#ERROR_ID",
1138
- "privacy": "private",
1139
- "type": {
1140
- "text": "string"
1141
- },
1142
- "static": true,
1143
- "readonly": true,
1144
- "default": "'apex-cell-error'",
1145
- "description": "DOM id of the inline error node, referenced by `aria-errormessage`."
1146
- },
1147
1133
  {
1148
1134
  "kind": "field",
1149
1135
  "name": "#errors",
@@ -1205,6 +1191,16 @@
1205
1191
  "text": "unknown"
1206
1192
  }
1207
1193
  },
1194
+ {
1195
+ "kind": "field",
1196
+ "name": "#refocusAfterEdit",
1197
+ "privacy": "private",
1198
+ "type": {
1199
+ "text": "boolean"
1200
+ },
1201
+ "default": "false",
1202
+ "description": "Set by keyboard-driven commit/cancel so `updated` refocuses the cell host."
1203
+ },
1208
1204
  {
1209
1205
  "kind": "field",
1210
1206
  "name": "#commitWith",
@@ -1327,19 +1323,6 @@
1327
1323
  "description": "",
1328
1324
  "name": "ApexFilterRow",
1329
1325
  "members": [
1330
- {
1331
- "kind": "field",
1332
- "name": "tagName",
1333
- "privacy": "public",
1334
- "static": true,
1335
- "readonly": true
1336
- },
1337
- {
1338
- "kind": "method",
1339
- "name": "register",
1340
- "privacy": "public",
1341
- "static": true
1342
- },
1343
1326
  {
1344
1327
  "kind": "field",
1345
1328
  "name": "state",
@@ -1466,11 +1449,52 @@
1466
1449
  }
1467
1450
  ]
1468
1451
  },
1452
+ {
1453
+ "kind": "method",
1454
+ "name": "#selectOption",
1455
+ "privacy": "private",
1456
+ "parameters": [
1457
+ {
1458
+ "name": "target",
1459
+ "type": {
1460
+ "text": "HTMLElement | null"
1461
+ }
1462
+ }
1463
+ ]
1464
+ },
1469
1465
  {
1470
1466
  "kind": "field",
1471
1467
  "name": "#handleDropdownItemClick",
1472
1468
  "privacy": "private"
1473
1469
  },
1470
+ {
1471
+ "kind": "method",
1472
+ "name": "#dropdownOptions",
1473
+ "privacy": "private",
1474
+ "return": {
1475
+ "type": {
1476
+ "text": "HTMLElement[]"
1477
+ }
1478
+ }
1479
+ },
1480
+ {
1481
+ "kind": "method",
1482
+ "name": "#focusDropdownOption",
1483
+ "privacy": "private",
1484
+ "description": "Moves focus into the dropdown, landing on the selected (or first) option."
1485
+ },
1486
+ {
1487
+ "kind": "field",
1488
+ "name": "#handleTriggerKeydown",
1489
+ "privacy": "private",
1490
+ "description": "ArrowDown on the condition trigger opens the listbox and focuses into it."
1491
+ },
1492
+ {
1493
+ "kind": "field",
1494
+ "name": "#handleDropdownKeydown",
1495
+ "privacy": "private",
1496
+ "description": "Listbox keyboard pattern: arrows/Home/End rove, Enter/Space pick."
1497
+ },
1474
1498
  {
1475
1499
  "kind": "field",
1476
1500
  "name": "#handleOutsidePointer",
@@ -1643,26 +1667,89 @@
1643
1667
  "declarations": [
1644
1668
  {
1645
1669
  "kind": "class",
1646
- "description": "",
1670
+ "description": "Apex grid is a web component for displaying data in a tabular format quick and easy.\n\nOut of the box it provides row virtualization, sort and filter operations (client and server side),\nthe ability to template cells and headers and column hiding.",
1647
1671
  "name": "ApexGrid",
1648
- "members": [
1672
+ "cssProperties": [
1649
1673
  {
1650
- "kind": "field",
1651
- "name": "tagName",
1652
- "type": {
1653
- "text": "string"
1654
- },
1655
- "privacy": "public",
1656
- "static": true,
1657
- "readonly": true
1674
+ "description": "Brand color for selection, focus rings, and accents. Auto-tints from `--ig-primary-500` where an Ignite UI palette is present.",
1675
+ "name": "--ag-brand"
1658
1676
  },
1659
1677
  {
1660
- "kind": "method",
1661
- "name": "register",
1662
- "privacy": "public",
1663
- "static": true,
1664
- "description": "Registers `<apex-grid>` and its internal dependencies with the custom-element\nregistry. Idempotent — safe to call more than once."
1678
+ "description": "Brand color for hover / pressed states.",
1679
+ "name": "--ag-brand-strong"
1680
+ },
1681
+ {
1682
+ "description": "Grid edge/shadow override. Default is a flat 1px hairline edge; set to `var(--ag-shadow-card)` for the elevated card look, or `none` to remove it.",
1683
+ "name": "--ag-grid-shadow"
1684
+ },
1685
+ {
1686
+ "description": "Host card background. Defaults to a subtle light gradient; override with a flat color (or use `theme=\"dark\"`) for dark themes.",
1687
+ "name": "--ag-grid-bg"
1688
+ },
1689
+ {
1690
+ "description": "Grid card background (must be opaque).",
1691
+ "name": "--ag-surface"
1692
+ },
1693
+ {
1694
+ "description": "Alternating row tint.",
1695
+ "name": "--ag-surface-alt"
1696
+ },
1697
+ {
1698
+ "description": "Header background.",
1699
+ "name": "--ag-surface-elevated"
1700
+ },
1701
+ {
1702
+ "description": "Header / structural gridline color.",
1703
+ "name": "--ag-hairline"
1704
+ },
1705
+ {
1706
+ "description": "Row separator color.",
1707
+ "name": "--ag-border"
1708
+ },
1709
+ {
1710
+ "description": "Primary text color.",
1711
+ "name": "--ag-text"
1712
+ },
1713
+ {
1714
+ "description": "Row text color.",
1715
+ "name": "--ag-text-body"
1716
+ },
1717
+ {
1718
+ "description": "Muted text (roles, labels).",
1719
+ "name": "--ag-text-muted"
1720
+ },
1721
+ {
1722
+ "description": "Row hover wash.",
1723
+ "name": "--ag-row-hover"
1724
+ },
1725
+ {
1726
+ "description": "Row height.",
1727
+ "name": "--ag-row-h"
1728
+ },
1729
+ {
1730
+ "description": "Header height.",
1731
+ "name": "--ag-header-h"
1665
1732
  },
1733
+ {
1734
+ "description": "Outer card corner radius.",
1735
+ "name": "--ag-radius"
1736
+ },
1737
+ {
1738
+ "description": "Grid font family.",
1739
+ "name": "--ag-font"
1740
+ },
1741
+ {
1742
+ "description": "Cell font size.",
1743
+ "name": "--ag-fs-cell"
1744
+ }
1745
+ ],
1746
+ "cssParts": [
1747
+ {
1748
+ "description": "Visually-hidden ARIA live region used for screen-reader announcements.",
1749
+ "name": "live-region"
1750
+ }
1751
+ ],
1752
+ "members": [
1666
1753
  {
1667
1754
  "kind": "field",
1668
1755
  "name": "stateController",
@@ -2467,6 +2554,16 @@
2467
2554
  "name": "quickFilterChanged",
2468
2555
  "privacy": "protected"
2469
2556
  },
2557
+ {
2558
+ "kind": "field",
2559
+ "name": "#autoAriaLabel",
2560
+ "privacy": "private",
2561
+ "type": {
2562
+ "text": "string | null"
2563
+ },
2564
+ "default": "null",
2565
+ "description": "The `aria-label` value this grid last auto-applied (never an author's)."
2566
+ },
2470
2567
  {
2471
2568
  "kind": "field",
2472
2569
  "name": "#stateChangedListeners",
@@ -2987,6 +3084,26 @@
2987
3084
  },
2988
3085
  "description": "Commits the current edit."
2989
3086
  },
3087
+ {
3088
+ "kind": "method",
3089
+ "name": "applyEdits",
3090
+ "privacy": "public",
3091
+ "return": {
3092
+ "type": {
3093
+ "text": ""
3094
+ }
3095
+ },
3096
+ "parameters": [
3097
+ {
3098
+ "name": "edits",
3099
+ "type": {
3100
+ "text": "ReadonlyArray<{ rowIndex: number; column: Keys<T>; value: unknown }>"
3101
+ },
3102
+ "description": "Cells to write. Order is preserved, so later edits to the same\ncell win."
3103
+ }
3104
+ ],
3105
+ "description": "Applies many cell edits as a **single** operation.\n\nEvery write goes through the same choke point interactive editing uses, so\neach one emits the cancellable `cellValueChanging` and then\n`cellValueChanged`, and runs the column's validators. What differs from\ncalling editCell + commitEdit in a loop is that the whole\nset lands as one undo step and triggers one pipeline run, which is the\npoint: a thousand `editCell` round-trips would be a thousand entries in the\nundo stack and a thousand re-renders.\n\n`rowIndex` is view-relative and matches ApexGrid.pageItems, the same\nas editCell. Edits naming an unknown column, a row index out of\nrange, or a column the user could not edit either (editing off, not\n`editable`, or hidden — the same gate interactive editing uses) are skipped\nrather than throwing, so a partially-stale batch still applies what it can."
3106
+ },
2990
3107
  {
2991
3108
  "kind": "method",
2992
3109
  "name": "cancelEdit",
@@ -3265,6 +3382,20 @@
3265
3382
  }
3266
3383
  ]
3267
3384
  },
3385
+ {
3386
+ "kind": "method",
3387
+ "name": "bodyFocusHandler",
3388
+ "privacy": "protected",
3389
+ "parameters": [
3390
+ {
3391
+ "name": "event",
3392
+ "type": {
3393
+ "text": "FocusEvent"
3394
+ }
3395
+ }
3396
+ ],
3397
+ "description": "Tabbing into the grid body lands on the scroll container; forward focus to\nthe active cell (when one exists) so the roving tab stop is honored."
3398
+ },
3268
3399
  {
3269
3400
  "kind": "method",
3270
3401
  "name": "bodyPointerHandler",
@@ -3390,6 +3521,124 @@
3390
3521
  }
3391
3522
  }
3392
3523
  ],
3524
+ "events": [
3525
+ {
3526
+ "description": "Emitted when sorting is initiated through the UI.",
3527
+ "name": "sorting"
3528
+ },
3529
+ {
3530
+ "description": "Emitted when a sort operation initiated through the UI has completed.",
3531
+ "name": "sorted"
3532
+ },
3533
+ {
3534
+ "description": "Emitted when filtering is initiated through the UI.",
3535
+ "name": "filtering"
3536
+ },
3537
+ {
3538
+ "description": "Emitted when a filter operation initiated through the UI has completed.",
3539
+ "name": "filtered"
3540
+ },
3541
+ {
3542
+ "description": "Cancellable. Emitted before page/page-size changes are applied.",
3543
+ "name": "pageChanging"
3544
+ },
3545
+ {
3546
+ "description": "Emitted after a page/page-size change has been applied.",
3547
+ "name": "pageChanged"
3548
+ },
3549
+ {
3550
+ "description": "Cancellable. Emitted before a quick-filter value is applied.",
3551
+ "name": "quickFilterChanging"
3552
+ },
3553
+ {
3554
+ "description": "Emitted after a quick-filter change has been applied.",
3555
+ "name": "quickFilterChanged"
3556
+ },
3557
+ {
3558
+ "description": "Cancellable. Emitted before a column's pin position changes.",
3559
+ "name": "columnPinning"
3560
+ },
3561
+ {
3562
+ "description": "Emitted after a column's pin position has changed.",
3563
+ "name": "columnPinned"
3564
+ },
3565
+ {
3566
+ "description": "Cancellable. Emitted before a column is moved.",
3567
+ "name": "columnMoving"
3568
+ },
3569
+ {
3570
+ "description": "Emitted after a column has been moved.",
3571
+ "name": "columnMoved"
3572
+ },
3573
+ {
3574
+ "description": "Cancellable. Emitted before a cell value is committed.",
3575
+ "name": "cellValueChanging"
3576
+ },
3577
+ {
3578
+ "description": "Emitted after a cell value has been committed.",
3579
+ "name": "cellValueChanged"
3580
+ },
3581
+ {
3582
+ "description": "Emitted when a row enters edit mode (row mode only).",
3583
+ "name": "rowEditStarted"
3584
+ },
3585
+ {
3586
+ "description": "Emitted when a row leaves edit mode (row mode only).",
3587
+ "name": "rowEditEnded"
3588
+ },
3589
+ {
3590
+ "description": "Cancellable. Emitted before a selection-set change is applied.",
3591
+ "name": "rowSelecting"
3592
+ },
3593
+ {
3594
+ "description": "Emitted after a selection-set change has been applied.",
3595
+ "name": "rowSelected"
3596
+ },
3597
+ {
3598
+ "description": "Cancellable. Emitted before the row-expansion set changes (master-detail).",
3599
+ "name": "rowExpanding"
3600
+ },
3601
+ {
3602
+ "description": "Emitted after a row-expansion change has been applied.",
3603
+ "name": "rowExpanded"
3604
+ },
3605
+ {
3606
+ "description": "Cancellable. Emitted before a tree-row expansion change (tree mode).",
3607
+ "name": "treeRowExpanding"
3608
+ },
3609
+ {
3610
+ "description": "Emitted after a tree-row expansion change has been applied.",
3611
+ "name": "treeRowExpanded"
3612
+ },
3613
+ {
3614
+ "description": "Emitted when a candidate cell value is rejected by a column validator; the value is not written.",
3615
+ "name": "cellValidationFailed"
3616
+ },
3617
+ {
3618
+ "description": "Emitted after the undo / redo stacks change; carries the current `canUndo` / `canRedo`.",
3619
+ "name": "historyChanged"
3620
+ },
3621
+ {
3622
+ "description": "Emitted (debounced) whenever the grid's restorable state changes; carries the new `getState` snapshot.",
3623
+ "name": "stateChanged"
3624
+ },
3625
+ {
3626
+ "description": "Cancellable. Emitted before a row is pinned, moved between bands, or unpinned.",
3627
+ "name": "rowPinning"
3628
+ },
3629
+ {
3630
+ "description": "Emitted after a row's pin state has changed.",
3631
+ "name": "rowPinned"
3632
+ },
3633
+ {
3634
+ "description": "Cancellable. Emitted before a row is moved via drag, keyboard, or `moveRow`.",
3635
+ "name": "rowMoving"
3636
+ },
3637
+ {
3638
+ "description": "Emitted after a row has been moved.",
3639
+ "name": "rowMoved"
3640
+ }
3641
+ ],
3393
3642
  "attributes": [
3394
3643
  {
3395
3644
  "name": "auto-generate",
@@ -3451,6 +3700,13 @@
3451
3700
  "fieldName": "columnSeparator",
3452
3701
  "attribute": "column-separator"
3453
3702
  },
3703
+ {
3704
+ "type": {
3705
+ "text": "string"
3706
+ },
3707
+ "description": "Space-separated theme flags. `dark` opts into the built-in dark palette; `tinted` mixes `--ag-brand` into the chrome surfaces. Combine as `theme=\"dark tinted\"`.",
3708
+ "name": "theme"
3709
+ },
3454
3710
  {
3455
3711
  "name": "coordinate-hints",
3456
3712
  "type": {
@@ -3465,17 +3721,8 @@
3465
3721
  "name": "EventEmitterBase",
3466
3722
  "module": "/src/internal/mixins/event-emitter.js"
3467
3723
  },
3468
- "events": [
3469
- {
3470
- "type": {
3471
- "text": "CustomEvent"
3472
- },
3473
- "inheritedFrom": {
3474
- "name": "EventEmitterBase",
3475
- "module": "src/internal/mixins/event-emitter.ts"
3476
- }
3477
- }
3478
- ]
3724
+ "tagName": "apex-grid",
3725
+ "customElement": true
3479
3726
  }
3480
3727
  ],
3481
3728
  "exports": [
@@ -3512,24 +3759,6 @@
3512
3759
  }
3513
3760
  ],
3514
3761
  "members": [
3515
- {
3516
- "kind": "field",
3517
- "name": "tagName",
3518
- "privacy": "public",
3519
- "static": true,
3520
- "readonly": true
3521
- },
3522
- {
3523
- "kind": "method",
3524
- "name": "register",
3525
- "privacy": "public",
3526
- "static": true,
3527
- "return": {
3528
- "type": {
3529
- "text": "void"
3530
- }
3531
- }
3532
- },
3533
3762
  {
3534
3763
  "kind": "field",
3535
3764
  "name": "state",
@@ -3657,24 +3886,6 @@
3657
3886
  "description": "",
3658
3887
  "name": "ApexGridHeaderRow",
3659
3888
  "members": [
3660
- {
3661
- "kind": "field",
3662
- "name": "tagName",
3663
- "privacy": "public",
3664
- "static": true,
3665
- "readonly": true
3666
- },
3667
- {
3668
- "kind": "method",
3669
- "name": "register",
3670
- "privacy": "public",
3671
- "static": true,
3672
- "return": {
3673
- "type": {
3674
- "text": "void"
3675
- }
3676
- }
3677
- },
3678
3889
  {
3679
3890
  "kind": "field",
3680
3891
  "name": "_headers",
@@ -3783,24 +3994,6 @@
3783
3994
  "description": "",
3784
3995
  "name": "ApexGridHeader",
3785
3996
  "members": [
3786
- {
3787
- "kind": "field",
3788
- "name": "tagName",
3789
- "privacy": "public",
3790
- "static": true,
3791
- "readonly": true
3792
- },
3793
- {
3794
- "kind": "method",
3795
- "name": "register",
3796
- "privacy": "public",
3797
- "static": true,
3798
- "return": {
3799
- "type": {
3800
- "text": "void"
3801
- }
3802
- }
3803
- },
3804
3997
  {
3805
3998
  "kind": "field",
3806
3999
  "name": "context",
@@ -4003,6 +4196,52 @@
4003
4196
  "name": "#handleMenuOutside",
4004
4197
  "privacy": "private"
4005
4198
  },
4199
+ {
4200
+ "kind": "field",
4201
+ "name": "#handleMenuTriggerKeydown",
4202
+ "privacy": "private",
4203
+ "description": "ArrowDown on the kebab opens the menu and moves focus to its first item."
4204
+ },
4205
+ {
4206
+ "kind": "method",
4207
+ "name": "#menuItems",
4208
+ "privacy": "private",
4209
+ "return": {
4210
+ "type": {
4211
+ "text": "HTMLElement[]"
4212
+ }
4213
+ }
4214
+ },
4215
+ {
4216
+ "kind": "method",
4217
+ "name": "#focusMenuItem",
4218
+ "privacy": "private",
4219
+ "parameters": [
4220
+ {
4221
+ "name": "index",
4222
+ "type": {
4223
+ "text": "number"
4224
+ }
4225
+ }
4226
+ ]
4227
+ },
4228
+ {
4229
+ "kind": "method",
4230
+ "name": "#closeMenu",
4231
+ "privacy": "private",
4232
+ "parameters": [
4233
+ {
4234
+ "name": "returnFocus",
4235
+ "default": "false"
4236
+ }
4237
+ ]
4238
+ },
4239
+ {
4240
+ "kind": "field",
4241
+ "name": "#handleColMenuKeydown",
4242
+ "privacy": "private",
4243
+ "description": "Menu keyboard pattern: arrows/Home/End rove, Escape closes and restores focus."
4244
+ },
4006
4245
  {
4007
4246
  "kind": "method",
4008
4247
  "name": "renderSortPart",
@@ -4083,20 +4322,6 @@
4083
4322
  }
4084
4323
  ],
4085
4324
  "members": [
4086
- {
4087
- "kind": "field",
4088
- "name": "tagName",
4089
- "privacy": "public",
4090
- "static": true,
4091
- "readonly": true
4092
- },
4093
- {
4094
- "kind": "method",
4095
- "name": "register",
4096
- "privacy": "public",
4097
- "static": true,
4098
- "description": "Registers the `<apex-grid-paginator>` element and its dependencies. Idempotent."
4099
- },
4100
4325
  {
4101
4326
  "kind": "field",
4102
4327
  "name": "state",
@@ -4214,24 +4439,6 @@
4214
4439
  "description": "Component representing the DOM row in the Apex grid.",
4215
4440
  "name": "ApexGridRow",
4216
4441
  "members": [
4217
- {
4218
- "kind": "field",
4219
- "name": "tagName",
4220
- "privacy": "public",
4221
- "static": true,
4222
- "readonly": true
4223
- },
4224
- {
4225
- "kind": "method",
4226
- "name": "register",
4227
- "privacy": "public",
4228
- "static": true,
4229
- "return": {
4230
- "type": {
4231
- "text": "void"
4232
- }
4233
- }
4234
- },
4235
4442
  {
4236
4443
  "kind": "field",
4237
4444
  "name": "_cells",
@@ -4611,25 +4818,11 @@
4611
4818
  "name": "export-menu"
4612
4819
  },
4613
4820
  {
4614
- "description": "A single menu item inside the export dropdown.",
4615
- "name": "export-menu-item"
4616
- }
4617
- ],
4618
- "members": [
4619
- {
4620
- "kind": "field",
4621
- "name": "tagName",
4622
- "privacy": "public",
4623
- "static": true,
4624
- "readonly": true
4625
- },
4626
- {
4627
- "kind": "method",
4628
- "name": "register",
4629
- "privacy": "public",
4630
- "static": true,
4631
- "description": "Registers the `<apex-grid-toolbar>` element. Idempotent."
4632
- },
4821
+ "description": "A single menu item inside the export dropdown.",
4822
+ "name": "export-menu-item"
4823
+ }
4824
+ ],
4825
+ "members": [
4633
4826
  {
4634
4827
  "kind": "field",
4635
4828
  "name": "state",
@@ -4895,6 +5088,44 @@
4895
5088
  "description": "",
4896
5089
  "name": "ApexVirtualizer",
4897
5090
  "members": [
5091
+ {
5092
+ "kind": "field",
5093
+ "name": "#viewportObserver",
5094
+ "privacy": "private",
5095
+ "type": {
5096
+ "text": "IntersectionObserver | null"
5097
+ },
5098
+ "default": "null",
5099
+ "description": "Watches the host's intersection with the window, which is the one input to\nthe upstream viewport measurement that has no invalidation signal of its\nown. See the note on `#observeViewport`."
5100
+ },
5101
+ {
5102
+ "kind": "field",
5103
+ "name": "#visibleHeight",
5104
+ "privacy": "private",
5105
+ "type": {
5106
+ "text": "number"
5107
+ },
5108
+ "default": "0",
5109
+ "description": "Height of the host's last observed intersection with the window: the\nviewport height the layout should be working from. Zero means an empty\nrange is the *correct* render and there is nothing to recover."
5110
+ },
5111
+ {
5112
+ "kind": "field",
5113
+ "name": "#pendingCheck",
5114
+ "privacy": "private",
5115
+ "type": {
5116
+ "text": "number"
5117
+ },
5118
+ "default": "0"
5119
+ },
5120
+ {
5121
+ "kind": "field",
5122
+ "name": "#recoveryAttempts",
5123
+ "privacy": "private",
5124
+ "type": {
5125
+ "text": "number"
5126
+ },
5127
+ "default": "0"
5128
+ },
4898
5129
  {
4899
5130
  "kind": "field",
4900
5131
  "name": "tagName",
@@ -4921,6 +5152,47 @@
4921
5152
  },
4922
5153
  "privacy": "public",
4923
5154
  "default": "false"
5155
+ },
5156
+ {
5157
+ "kind": "method",
5158
+ "name": "#observeViewport",
5159
+ "privacy": "private",
5160
+ "return": {
5161
+ "type": {
5162
+ "text": "void"
5163
+ }
5164
+ },
5165
+ "description": "The upstream virtualizer derives its viewport from the intersection of the\nhost, its clipping ancestors and the window, and clears the rendered range\noutright when that intersection is zero-height, while still sizing the\nscroll extent from the full item count. A grid that is laid out while it\nsits outside the window (an iframe not yet sized by its host page, a panel\nstill settling, content above it that has not finished loading) therefore\nends up reporting a correct row count and scroll extent with no rows in it.\n\nThat state is not self-correcting, because the only invalidation signals\nupstream listens for are `ResizeObserver` size changes and scroll events:\nan element that *moves* into view, or a window that resizes around a\nfixed-size host, fires neither. The grid then stays empty until something\nunrelated forces a re-render, which is why the failure reads as a race and\nheals on the first interaction.\n\n`IntersectionObserver` fires on exactly the missing signal, so it is what\narms the recovery check."
5166
+ },
5167
+ {
5168
+ "kind": "method",
5169
+ "name": "#scheduleViewportCheck",
5170
+ "privacy": "private",
5171
+ "return": {
5172
+ "type": {
5173
+ "text": "void"
5174
+ }
5175
+ }
5176
+ },
5177
+ {
5178
+ "kind": "method",
5179
+ "name": "#recoverIfStale",
5180
+ "privacy": "private",
5181
+ "return": {
5182
+ "type": {
5183
+ "text": "void"
5184
+ }
5185
+ }
5186
+ },
5187
+ {
5188
+ "kind": "method",
5189
+ "name": "#hasRenderedRows",
5190
+ "privacy": "private",
5191
+ "return": {
5192
+ "type": {
5193
+ "text": "boolean"
5194
+ }
5195
+ }
4924
5196
  }
4925
5197
  ],
4926
5198
  "superclass": {
@@ -6317,6 +6589,25 @@
6317
6589
  }
6318
6590
  ]
6319
6591
  },
6592
+ {
6593
+ "kind": "method",
6594
+ "name": "#announce",
6595
+ "privacy": "private",
6596
+ "parameters": [
6597
+ {
6598
+ "name": "key",
6599
+ "type": {
6600
+ "text": "Keys<T>"
6601
+ }
6602
+ },
6603
+ {
6604
+ "name": "kind",
6605
+ "type": {
6606
+ "text": "'applied' | 'cleared'"
6607
+ }
6608
+ }
6609
+ ]
6610
+ },
6320
6611
  {
6321
6612
  "kind": "method",
6322
6613
  "name": "filter",
@@ -6590,9 +6881,9 @@
6590
6881
  }
6591
6882
  },
6592
6883
  {
6593
- "name": "label",
6884
+ "name": "kind",
6594
6885
  "type": {
6595
- "text": "string"
6886
+ "text": "'undo' | 'redo'"
6596
6887
  }
6597
6888
  }
6598
6889
  ]
@@ -6642,7 +6933,7 @@
6642
6933
  "kind": "field",
6643
6934
  "name": "handlers",
6644
6935
  "privacy": "protected",
6645
- "default": "new Map( Object.entries({ ArrowDown: this.arrowDown, ArrowUp: this.arrowUp, ArrowLeft: this.arrowLeft, ArrowRight: this.arrowRight, Home: this.home, End: this.end, ' ': this.toggleSelection, }) )"
6936
+ "default": "new Map( Object.entries({ ArrowDown: this.arrowDown, ArrowUp: this.arrowUp, ArrowLeft: this.arrowLeft, ArrowRight: this.arrowRight, Home: this.home, End: this.end, PageUp: this.pageUp, PageDown: this.pageDown, ' ': this.toggleSelection, }) )"
6646
6937
  },
6647
6938
  {
6648
6939
  "kind": "field",
@@ -6741,6 +7032,22 @@
6741
7032
  }
6742
7033
  ]
6743
7034
  },
7035
+ {
7036
+ "kind": "method",
7037
+ "name": "findActiveCell",
7038
+ "privacy": "protected"
7039
+ },
7040
+ {
7041
+ "kind": "method",
7042
+ "name": "focusActiveCell",
7043
+ "privacy": "public",
7044
+ "return": {
7045
+ "type": {
7046
+ "text": "void"
7047
+ }
7048
+ },
7049
+ "description": "Moves real DOM focus to the active cell (the grid body's roving tab stop),\nso screen readers track keyboard navigation. Waits for the host render to\ncommit the cell's `active` state, then retries once on the next frame to\ncover virtualizer re-materialization after a long jump. No-op while no\ncell is active (the scroll container keeps focus as the entry point)."
7050
+ },
6744
7051
  {
6745
7052
  "kind": "field",
6746
7053
  "name": "active",
@@ -6749,11 +7056,46 @@
6749
7056
  {
6750
7057
  "kind": "method",
6751
7058
  "name": "home",
6752
- "privacy": "protected"
7059
+ "privacy": "protected",
7060
+ "description": "Home moves to the first cell in the row (ARIA grid pattern)."
6753
7061
  },
6754
7062
  {
6755
7063
  "kind": "method",
6756
7064
  "name": "end",
7065
+ "privacy": "protected",
7066
+ "description": "End moves to the last cell in the row (ARIA grid pattern)."
7067
+ },
7068
+ {
7069
+ "kind": "method",
7070
+ "name": "ctrlHome",
7071
+ "privacy": "protected",
7072
+ "description": "Ctrl/Cmd+Home moves to the first cell of the grid."
7073
+ },
7074
+ {
7075
+ "kind": "method",
7076
+ "name": "ctrlEnd",
7077
+ "privacy": "protected",
7078
+ "description": "Ctrl/Cmd+End moves to the last cell of the grid."
7079
+ },
7080
+ {
7081
+ "kind": "method",
7082
+ "name": "pageStep",
7083
+ "privacy": "protected",
7084
+ "return": {
7085
+ "type": {
7086
+ "text": "number"
7087
+ }
7088
+ },
7089
+ "description": "Rows per Page Up/Down step, derived from the host viewport and the height\nof a rendered row (fallback: 10 rows when nothing is measurable yet)."
7090
+ },
7091
+ {
7092
+ "kind": "method",
7093
+ "name": "pageUp",
7094
+ "privacy": "protected"
7095
+ },
7096
+ {
7097
+ "kind": "method",
7098
+ "name": "pageDown",
6757
7099
  "privacy": "protected"
6758
7100
  },
6759
7101
  {
@@ -6776,6 +7118,20 @@
6776
7118
  "name": "arrowRight",
6777
7119
  "privacy": "protected"
6778
7120
  },
7121
+ {
7122
+ "kind": "method",
7123
+ "name": "#moveInline",
7124
+ "privacy": "private",
7125
+ "parameters": [
7126
+ {
7127
+ "name": "direction",
7128
+ "type": {
7129
+ "text": "'left' | 'right'"
7130
+ }
7131
+ }
7132
+ ],
7133
+ "description": "Moves the active cell one column in a *physical* direction.\n\nArrowLeft and ArrowRight name screen directions, not column order, so under\n`dir=\"rtl\"` the column to the left is the *next* one and the mapping onto\nprevious/next inverts. Everything else about navigation is order-based and\nneeds no direction awareness."
7134
+ },
6779
7135
  {
6780
7136
  "kind": "method",
6781
7137
  "name": "toggleSelection",
@@ -6791,6 +7147,31 @@
6791
7147
  "name": "hostDisconnected",
6792
7148
  "privacy": "public"
6793
7149
  },
7150
+ {
7151
+ "kind": "field",
7152
+ "name": "editing",
7153
+ "privacy": "protected",
7154
+ "readonly": true
7155
+ },
7156
+ {
7157
+ "kind": "method",
7158
+ "name": "handleEditKey",
7159
+ "privacy": "protected",
7160
+ "return": {
7161
+ "type": {
7162
+ "text": "boolean"
7163
+ }
7164
+ },
7165
+ "parameters": [
7166
+ {
7167
+ "name": "event",
7168
+ "type": {
7169
+ "text": "KeyboardEvent"
7170
+ }
7171
+ }
7172
+ ],
7173
+ "description": "Enter / F2 on the active cell opens its editor (the keyboard path into\nedit mode). Returns `true` when the event was consumed."
7174
+ },
6794
7175
  {
6795
7176
  "kind": "field",
6796
7177
  "name": "rowReorder",
@@ -9098,6 +9479,31 @@
9098
9479
  ],
9099
9480
  "description": "Asks feature modules implementing RowPresenter whether they render\nthe given row as full-width custom content (e.g. a group header). Returns\nthe first non-null result, or `null` when no module owns the row."
9100
9481
  },
9482
+ {
9483
+ "kind": "method",
9484
+ "name": "describeRow",
9485
+ "privacy": "public",
9486
+ "return": {
9487
+ "type": {
9488
+ "text": "RowAria | null"
9489
+ }
9490
+ },
9491
+ "parameters": [
9492
+ {
9493
+ "name": "row",
9494
+ "type": {
9495
+ "text": "T"
9496
+ }
9497
+ },
9498
+ {
9499
+ "name": "ctx",
9500
+ "type": {
9501
+ "text": "RowPresenterContext<T>"
9502
+ }
9503
+ }
9504
+ ],
9505
+ "description": "Asks feature modules implementing RowAriaProvider for ARIA\ntree/expansion semantics on a normal (cell-rendered) row — e.g. pivoting's\nexpandable parent rows. Returns the first non-null result, or `null`."
9506
+ },
9101
9507
  {
9102
9508
  "kind": "field",
9103
9509
  "name": "#decorationVersion",
@@ -9743,9 +10149,9 @@
9743
10149
  "kind": "variable",
9744
10150
  "name": "EN_LOCALE",
9745
10151
  "type": {
9746
- "text": "{\n // Pagination\n 'pagination.label': 'Grid pagination',\n 'pagination.controls': 'Pagination controls',\n 'pagination.rowsPerPage': 'Rows per page',\n 'pagination.firstPage': 'Go to first page',\n 'pagination.previousPage': 'Go to previous page',\n 'pagination.nextPage': 'Go to next page',\n 'pagination.lastPage': 'Go to last page',\n 'pagination.summary': '{start}-{end} of {total}',\n 'pagination.summaryEmpty': '0 of 0',\n\n // Filtering: operators\n 'filter.operator.contains': 'Contains',\n 'filter.operator.doesNotContain': 'Does not contain',\n 'filter.operator.startsWith': 'Starts with',\n 'filter.operator.endsWith': 'Ends with',\n 'filter.operator.equals': 'Equals',\n 'filter.operator.doesNotEqual': 'Does not equal',\n 'filter.operator.greaterThan': 'Greater than',\n 'filter.operator.lessThan': 'Less than',\n 'filter.operator.greaterThanOrEqual': 'Greater than or equal',\n 'filter.operator.lessThanOrEqual': 'Less than or equal',\n 'filter.operator.empty': 'Empty',\n 'filter.operator.notEmpty': 'Not empty',\n 'filter.operator.all': 'All',\n 'filter.operator.true': 'True',\n 'filter.operator.false': 'False',\n\n // Filtering: UI\n 'filter.filter': 'Filter',\n 'filter.reset': 'Reset',\n 'filter.close': 'Close',\n 'filter.removeFilter': 'Remove filter',\n 'filter.conditionList': 'Filter condition',\n 'filter.changeCondition': 'Change filter condition',\n 'filter.inputPlaceholder': 'Add filter value',\n\n // Rows: selection / expansion\n 'row.select': 'Select row',\n 'row.expand': 'Expand row',\n 'row.collapse': 'Collapse row',\n 'row.detail': 'Row detail',\n 'header.selectAll': 'Select all rows',\n 'header.expandAll': 'Expand all rows',\n 'header.collapseAll': 'Collapse all rows',\n\n // Toolbar\n 'toolbar.label': 'Grid toolbar',\n 'toolbar.searchPlaceholder': 'Search…',\n 'toolbar.export': 'Export',\n 'toolbar.exportOptions': 'Export options',\n 'toolbar.createChart': 'Create chart',\n 'toolbar.exportXlsx': 'Export XLSX',\n 'toolbar.askAI': 'Ask AI',\n\n // Enterprise: set filter\n 'setFilter.searchPlaceholder': 'Search values…',\n 'setFilter.noValues': 'No values',\n 'setFilter.selectAll': '(Select all)',\n 'setFilter.clearFilter': 'Clear filter',\n 'setFilter.blanks': '(Blanks)',\n\n // Enterprise: status bar\n 'statusBar.selectRange': 'Select a range of cells',\n 'statusBar.count': 'Count',\n 'statusBar.sum': 'Sum',\n 'statusBar.average': 'Avg',\n 'statusBar.min': 'Min',\n 'statusBar.max': 'Max',\n\n // Enterprise: tool panel\n 'toolPanel.noGrid': 'No grid connected',\n 'toolPanel.columns': 'Columns',\n 'toolPanel.searchPlaceholder': 'Search columns…',\n 'toolPanel.pinColumn': 'Pin column',\n 'toolPanel.moveUp': 'Move up',\n 'toolPanel.moveDown': 'Move down',\n 'toolPanel.groupByColumn': 'Group by this column',\n 'toolPanel.pivotMode': 'Pivot mode',\n 'toolPanel.rowGroups': 'Row Groups',\n 'toolPanel.rowGroupsPivot': 'Row Groups (pivot rows)',\n 'toolPanel.values': 'Values',\n 'toolPanel.columnLabels': 'Column Labels',\n 'toolPanel.dragColumns': 'Drag columns here',\n 'toolPanel.removeChip': 'Remove',\n\n // Enterprise: context menu\n 'contextMenu.sortAsc': 'Sort ascending',\n 'contextMenu.sortDesc': 'Sort descending',\n 'contextMenu.clearSort': 'Clear sort',\n 'contextMenu.pinStart': 'Pin to start',\n 'contextMenu.pinEnd': 'Pin to end',\n 'contextMenu.unpin': 'Unpin',\n 'contextMenu.hideColumn': 'Hide column',\n 'contextMenu.copy': 'Copy',\n\n // Enterprise: charts\n 'chart.close': 'Close',\n 'chart.placeholder': 'Select cells, or group/pivot the grid, to chart it.',\n 'chart.chartRange': 'Chart range',\n 'chart.countSeries': 'Count',\n 'chart.type.column': 'Column',\n 'chart.type.bar': 'Bar',\n 'chart.type.line': 'Line',\n 'chart.type.area': 'Area',\n 'chart.type.pie': 'Pie',\n 'chart.type.donut': 'Donut',\n 'chart.type.scatter': 'Scatter',\n 'chart.type.radar': 'Radar',\n 'chart.type.combo': 'Combo',\n 'chart.type.auto': 'Auto',\n\n // Enterprise: row grouping\n 'grouping.blank': '(blank)',\n 'grouping.expandGroup': 'Expand group',\n 'grouping.collapseGroup': 'Collapse group',\n 'grouping.announceExpanded': 'Expanded group {label}',\n 'grouping.announceCollapsed': 'Collapsed group {label}',\n\n // Enterprise: pivot\n 'pivot.blank': '(blank)',\n\n // Enterprise: range selection\n 'rangeSelection.copied': 'Copied selection to the clipboard',\n 'rangeSelection.pasted': 'Pasted {rows} × {cols} cells',\n\n // Enterprise: AI Toolkit\n 'ai.title': 'Ask AI',\n 'ai.placeholder': 'Ask the grid to sort, filter, group, or answer a question…',\n 'ai.modeControl': 'Change the grid',\n 'ai.modeAsk': 'Ask a question',\n 'ai.send': 'Send',\n 'ai.cancel': 'Cancel',\n 'ai.thinking': 'Thinking…',\n 'ai.undo': 'Undo',\n 'ai.applied': 'Applied',\n 'ai.noChanges': 'No changes were applied.',\n 'ai.warnings': 'Notes',\n 'ai.answer': 'Answer',\n 'ai.error': 'Something went wrong.',\n 'ai.noAdapter': 'No AI adapter configured. Set grid.aiAdapter to enable.',\n 'ai.close': 'Close',\n\n // Formulas (enterprise)\n 'formula.editorLabel': 'Formula',\n 'formula.invalid': 'Invalid formula',\n 'formula.error.ref': 'Invalid cell reference',\n 'formula.error.name': 'Unknown function',\n 'formula.error.div0': 'Division by zero',\n 'formula.error.value': 'Invalid value',\n 'formula.error.cycle': 'Circular reference',\n}"
10152
+ "text": "{\n // Pagination\n 'pagination.label': 'Grid pagination',\n 'pagination.controls': 'Pagination controls',\n 'pagination.rowsPerPage': 'Rows per page',\n 'pagination.firstPage': 'Go to first page',\n 'pagination.previousPage': 'Go to previous page',\n 'pagination.nextPage': 'Go to next page',\n 'pagination.lastPage': 'Go to last page',\n 'pagination.summary': '{start}-{end} of {total}',\n 'pagination.summaryEmpty': '0 of 0',\n\n // Filtering: operators\n 'filter.operator.contains': 'Contains',\n 'filter.operator.doesNotContain': 'Does not contain',\n 'filter.operator.startsWith': 'Starts with',\n 'filter.operator.endsWith': 'Ends with',\n 'filter.operator.equals': 'Equals',\n 'filter.operator.doesNotEqual': 'Does not equal',\n 'filter.operator.greaterThan': 'Greater than',\n 'filter.operator.lessThan': 'Less than',\n 'filter.operator.greaterThanOrEqual': 'Greater than or equal',\n 'filter.operator.lessThanOrEqual': 'Less than or equal',\n 'filter.operator.empty': 'Empty',\n 'filter.operator.notEmpty': 'Not empty',\n 'filter.operator.all': 'All',\n 'filter.operator.true': 'True',\n 'filter.operator.false': 'False',\n\n // Filtering: UI\n 'filter.filter': 'Filter',\n 'filter.reset': 'Reset',\n 'filter.close': 'Close',\n 'filter.removeFilter': 'Remove filter',\n 'filter.conditionList': 'Filter condition',\n 'filter.changeCondition': 'Change filter condition',\n 'filter.inputPlaceholder': 'Add filter value',\n\n // Rows: selection / expansion\n 'row.select': 'Select row',\n 'row.expand': 'Expand row',\n 'row.collapse': 'Collapse row',\n 'row.detail': 'Row detail',\n 'header.selectAll': 'Select all rows',\n 'header.expandAll': 'Expand all rows',\n 'header.collapseAll': 'Collapse all rows',\n\n // Toolbar\n 'toolbar.label': 'Grid toolbar',\n 'toolbar.searchPlaceholder': 'Search…',\n 'toolbar.export': 'Export',\n 'toolbar.exportOptions': 'Export options',\n 'toolbar.createChart': 'Create chart',\n 'toolbar.exportXlsx': 'Export XLSX',\n 'toolbar.askAI': 'Ask AI',\n\n // Grid host\n 'grid.label': 'Data grid',\n\n // Header controls\n 'header.sortedAscending': 'Sorted ascending. Activate to sort descending.',\n 'header.sortedDescending': 'Sorted descending. Activate to clear sort.',\n 'header.notSorted': 'Not sorted. Activate to sort ascending.',\n 'header.filterColumn': 'Filter column',\n 'header.columnMenu': 'Column menu',\n 'header.autosizeColumn': 'Autosize column',\n\n // Editors\n 'editor.rating': 'Rating',\n\n // Live-region announcements\n 'announce.sortedAscending': 'Sorted by {label} ascending',\n 'announce.sortedDescending': 'Sorted by {label} descending',\n 'announce.sortCleared': 'Sort cleared on {label}',\n 'announce.filtered': 'Filter applied to {label}',\n 'announce.filterCleared': 'Filter cleared on {label}',\n 'announce.selectionCleared': 'Selection cleared',\n 'announce.rowSelected': '1 row selected',\n 'announce.rowsSelected': '{count} rows selected',\n 'announce.page': 'Page {page} of {total}',\n 'announce.undoOne': 'Undo 1 cell change',\n 'announce.undoMany': 'Undo {count} cell changes',\n 'announce.redoOne': 'Redo 1 cell change',\n 'announce.redoMany': 'Redo {count} cell changes',\n 'announce.rowExpanded': 'Row expanded',\n 'announce.rowCollapsed': 'Row collapsed',\n 'announce.rowsExpanded': '{count} rows expanded',\n 'announce.allRowsCollapsed': 'All rows collapsed',\n 'announce.rowPinnedTop': 'Row pinned to top',\n 'announce.rowPinnedBottom': 'Row pinned to bottom',\n 'announce.rowUnpinned': 'Row unpinned',\n 'announce.rowGrabbed': 'Row grabbed. Use arrow keys to move, Enter to drop, Escape to cancel.',\n 'announce.rowMovedTo': 'Row moved to position {position}',\n 'announce.rowDropped': 'Row dropped',\n 'announce.reorderCancelled': 'Reorder cancelled',\n 'announce.rowMoved': 'Row moved',\n 'announce.manualOrderCleared': 'Manual row order cleared',\n\n // Enterprise: set filter\n 'setFilter.searchPlaceholder': 'Search values…',\n 'setFilter.noValues': 'No values',\n 'setFilter.selectAll': '(Select all)',\n 'setFilter.clearFilter': 'Clear filter',\n 'setFilter.blanks': '(Blanks)',\n\n // Enterprise: advanced filter builder\n 'filterBuilder.and': 'AND',\n 'filterBuilder.or': 'OR',\n 'filterBuilder.column': 'Column',\n 'filterBuilder.operator': 'Operator',\n 'filterBuilder.value': 'Value',\n 'filterBuilder.addCondition': 'Condition',\n 'filterBuilder.addGroup': 'Group',\n 'filterBuilder.remove': 'Remove',\n 'filterBuilder.removeGroup': 'Remove group',\n 'filterBuilder.apply': 'Apply',\n 'filterBuilder.clear': 'Clear',\n\n // Enterprise: status bar\n 'statusBar.selectRange': 'Select a range of cells',\n 'statusBar.count': 'Count',\n 'statusBar.sum': 'Sum',\n 'statusBar.average': 'Avg',\n 'statusBar.min': 'Min',\n 'statusBar.max': 'Max',\n\n // Enterprise: tool panel\n 'toolPanel.noGrid': 'No grid connected',\n 'toolPanel.columns': 'Columns',\n 'toolPanel.searchPlaceholder': 'Search columns…',\n 'toolPanel.pinColumn': 'Pin column',\n 'toolPanel.moveUp': 'Move up',\n 'toolPanel.moveDown': 'Move down',\n 'toolPanel.groupByColumn': 'Group by this column',\n 'toolPanel.pivotMode': 'Pivot mode',\n 'toolPanel.rowGroups': 'Row Groups',\n 'toolPanel.rowGroupsPivot': 'Row Groups (pivot rows)',\n 'toolPanel.values': 'Values',\n 'toolPanel.columnLabels': 'Column Labels',\n 'toolPanel.dragColumns': 'Drag columns here',\n 'toolPanel.removeChip': 'Remove',\n\n // Enterprise: context menu\n 'contextMenu.sortAsc': 'Sort ascending',\n 'contextMenu.sortDesc': 'Sort descending',\n 'contextMenu.clearSort': 'Clear sort',\n 'contextMenu.pinStart': 'Pin to start',\n 'contextMenu.pinEnd': 'Pin to end',\n 'contextMenu.unpin': 'Unpin',\n 'contextMenu.hideColumn': 'Hide column',\n 'contextMenu.copy': 'Copy',\n\n // Enterprise: charts\n 'chart.close': 'Close',\n 'chart.placeholder': 'Select cells, or group/pivot the grid, to chart it.',\n 'chart.chartRange': 'Chart range',\n 'chart.chartView': 'Chart this view',\n 'chart.selectionHint': 'Chart the selection (Alt+F1)',\n 'chart.rangeHandle': 'Resize chart source range',\n 'chart.countSeries': 'Count',\n 'chart.export': 'Export',\n 'chart.exportPng': 'PNG image',\n 'chart.exportSvg': 'SVG vector',\n 'chart.copyImage': 'Copy image',\n 'chart.imageCopied': 'Chart image copied to clipboard',\n 'chart.suggested': 'Suggested',\n 'chart.suggestedHint': 'Let ApexGrid pick the best chart type for this data',\n 'chart.by': 'by',\n 'chart.renameHint': 'Double-click to rename',\n 'chart.emptyTitle': 'Nothing to chart yet',\n 'chart.emptyRange': 'Select a range of cells, or',\n 'chart.emptyView': 'group or pivot the grid',\n 'chart.swapAxes': 'Swap axes (horizontal)',\n 'chart.swapAxesHint': 'Swap the X and Y axes (horizontal bars)',\n 'chart.data': 'Data',\n 'chart.mapCategory': 'Category (X)',\n 'chart.mapSeries': 'Series (Y)',\n 'chart.mapAggregation': 'Aggregation',\n 'chart.secondaryAxis': 'Draw on the secondary (right) axis',\n 'chart.secondaryAxisShort': '2nd axis',\n 'chart.calcFields': 'Calculated fields',\n 'chart.calcName': 'Name (e.g. Bonus %)',\n 'chart.calcFormula': 'Formula (e.g. B1 / A1 * 100)',\n 'chart.calcAdd': 'Add field',\n 'chart.calcRemove': 'Remove calculated field',\n 'chart.agg.sum': 'Sum',\n 'chart.agg.avg': 'Average',\n 'chart.agg.count': 'Count',\n 'chart.agg.min': 'Minimum',\n 'chart.agg.max': 'Maximum',\n 'chart.agg.median': 'Median',\n 'chart.format': 'Format',\n 'chart.legend': 'Legend',\n 'chart.dataLabels': 'Data labels',\n 'chart.gridlines': 'Gridlines',\n 'chart.numberFormat': 'Number format',\n 'chart.seriesColors': 'Colors',\n 'chart.format.none': 'Plain',\n 'chart.format.currency': 'Currency',\n 'chart.format.percent': 'Percent',\n 'chart.format.thousands': 'Thousands',\n 'chart.trendline': 'Trend line',\n 'chart.referenceLine': 'Reference line',\n 'chart.referenceBand': 'Reference band',\n 'chart.bandFrom': 'From',\n 'chart.bandTo': 'To',\n 'chart.forecast': 'Forecast periods',\n 'chart.forecastBand': 'Forecast band',\n 'chart.axisTitleX': 'X-axis title',\n 'chart.axisTitleY': 'Y-axis title',\n 'chart.type.column': 'Column',\n 'chart.type.bar': 'Bar',\n 'chart.type.line': 'Line',\n 'chart.type.area': 'Area',\n 'chart.type.pie': 'Pie',\n 'chart.type.donut': 'Donut',\n 'chart.type.scatter': 'Scatter',\n 'chart.type.radar': 'Radar',\n 'chart.type.combo': 'Combo',\n 'chart.type.auto': 'Auto',\n\n // Enterprise: row grouping\n 'grouping.blank': '(blank)',\n 'grouping.expandGroup': 'Expand group',\n 'grouping.collapseGroup': 'Collapse group',\n 'grouping.announceExpanded': 'Expanded group {label}',\n 'grouping.announceCollapsed': 'Collapsed group {label}',\n\n // Enterprise: pivot\n 'pivot.blank': '(blank)',\n 'pivot.total': 'Total',\n 'pivot.grandTotal': 'Grand Total',\n\n // Enterprise: range selection\n 'rangeSelection.copied': 'Copied selection to the clipboard',\n 'rangeSelection.pasted': 'Pasted {rows} × {cols} cells',\n\n // Enterprise: AI Toolkit\n 'ai.title': 'Ask AI',\n 'ai.placeholder': 'Ask the grid to sort, filter, group, or answer a question…',\n 'ai.modeControl': 'Change the grid',\n 'ai.modeAsk': 'Ask a question',\n 'ai.send': 'Send',\n 'ai.cancel': 'Cancel',\n 'ai.thinking': 'Thinking…',\n 'ai.undo': 'Undo',\n 'ai.applied': 'Applied',\n 'ai.noChanges': 'No changes were applied.',\n 'ai.warnings': 'Notes',\n 'ai.answer': 'Answer',\n 'ai.error': 'Something went wrong.',\n 'ai.close': 'Close',\n 'ai.preview': 'Preview',\n 'ai.previewHeading': 'Would run (not applied):',\n 'ai.previewEmpty': 'Nothing to run.',\n 'ai.viaRule': 'Rule engine',\n 'ai.viaAI': 'AI',\n 'ai.history': 'History',\n 'ai.clearHistory': 'Clear',\n 'ai.abstained': 'I could not turn that into a grid action.',\n 'ai.abstainedHint': 'Try sorting, filtering, or grouping, or ask a question about the data.',\n\n // Formulas (enterprise)\n 'formula.editorLabel': 'Formula',\n 'formula.invalid': 'Invalid formula',\n 'formula.error.ref': 'Invalid cell reference',\n 'formula.error.name': 'Unknown function',\n 'formula.error.div0': 'Division by zero',\n 'formula.error.value': 'Invalid value',\n 'formula.error.cycle': 'Circular reference',\n}"
9747
10153
  },
9748
- "default": "{ // Pagination 'pagination.label': 'Grid pagination', 'pagination.controls': 'Pagination controls', 'pagination.rowsPerPage': 'Rows per page', 'pagination.firstPage': 'Go to first page', 'pagination.previousPage': 'Go to previous page', 'pagination.nextPage': 'Go to next page', 'pagination.lastPage': 'Go to last page', 'pagination.summary': '{start}-{end} of {total}', 'pagination.summaryEmpty': '0 of 0', // Filtering: operators 'filter.operator.contains': 'Contains', 'filter.operator.doesNotContain': 'Does not contain', 'filter.operator.startsWith': 'Starts with', 'filter.operator.endsWith': 'Ends with', 'filter.operator.equals': 'Equals', 'filter.operator.doesNotEqual': 'Does not equal', 'filter.operator.greaterThan': 'Greater than', 'filter.operator.lessThan': 'Less than', 'filter.operator.greaterThanOrEqual': 'Greater than or equal', 'filter.operator.lessThanOrEqual': 'Less than or equal', 'filter.operator.empty': 'Empty', 'filter.operator.notEmpty': 'Not empty', 'filter.operator.all': 'All', 'filter.operator.true': 'True', 'filter.operator.false': 'False', // Filtering: UI 'filter.filter': 'Filter', 'filter.reset': 'Reset', 'filter.close': 'Close', 'filter.removeFilter': 'Remove filter', 'filter.conditionList': 'Filter condition', 'filter.changeCondition': 'Change filter condition', 'filter.inputPlaceholder': 'Add filter value', // Rows: selection / expansion 'row.select': 'Select row', 'row.expand': 'Expand row', 'row.collapse': 'Collapse row', 'row.detail': 'Row detail', 'header.selectAll': 'Select all rows', 'header.expandAll': 'Expand all rows', 'header.collapseAll': 'Collapse all rows', // Toolbar 'toolbar.label': 'Grid toolbar', 'toolbar.searchPlaceholder': 'Search…', 'toolbar.export': 'Export', 'toolbar.exportOptions': 'Export options', 'toolbar.createChart': 'Create chart', 'toolbar.exportXlsx': 'Export XLSX', 'toolbar.askAI': 'Ask AI', // Enterprise: set filter 'setFilter.searchPlaceholder': 'Search values…', 'setFilter.noValues': 'No values', 'setFilter.selectAll': '(Select all)', 'setFilter.clearFilter': 'Clear filter', 'setFilter.blanks': '(Blanks)', // Enterprise: status bar 'statusBar.selectRange': 'Select a range of cells', 'statusBar.count': 'Count', 'statusBar.sum': 'Sum', 'statusBar.average': 'Avg', 'statusBar.min': 'Min', 'statusBar.max': 'Max', // Enterprise: tool panel 'toolPanel.noGrid': 'No grid connected', 'toolPanel.columns': 'Columns', 'toolPanel.searchPlaceholder': 'Search columns…', 'toolPanel.pinColumn': 'Pin column', 'toolPanel.moveUp': 'Move up', 'toolPanel.moveDown': 'Move down', 'toolPanel.groupByColumn': 'Group by this column', 'toolPanel.pivotMode': 'Pivot mode', 'toolPanel.rowGroups': 'Row Groups', 'toolPanel.rowGroupsPivot': 'Row Groups (pivot rows)', 'toolPanel.values': 'Values', 'toolPanel.columnLabels': 'Column Labels', 'toolPanel.dragColumns': 'Drag columns here', 'toolPanel.removeChip': 'Remove', // Enterprise: context menu 'contextMenu.sortAsc': 'Sort ascending', 'contextMenu.sortDesc': 'Sort descending', 'contextMenu.clearSort': 'Clear sort', 'contextMenu.pinStart': 'Pin to start', 'contextMenu.pinEnd': 'Pin to end', 'contextMenu.unpin': 'Unpin', 'contextMenu.hideColumn': 'Hide column', 'contextMenu.copy': 'Copy', // Enterprise: charts 'chart.close': 'Close', 'chart.placeholder': 'Select cells, or group/pivot the grid, to chart it.', 'chart.chartRange': 'Chart range', 'chart.countSeries': 'Count', 'chart.type.column': 'Column', 'chart.type.bar': 'Bar', 'chart.type.line': 'Line', 'chart.type.area': 'Area', 'chart.type.pie': 'Pie', 'chart.type.donut': 'Donut', 'chart.type.scatter': 'Scatter', 'chart.type.radar': 'Radar', 'chart.type.combo': 'Combo', 'chart.type.auto': 'Auto', // Enterprise: row grouping 'grouping.blank': '(blank)', 'grouping.expandGroup': 'Expand group', 'grouping.collapseGroup': 'Collapse group', 'grouping.announceExpanded': 'Expanded group {label}', 'grouping.announceCollapsed': 'Collapsed group {label}', // Enterprise: pivot 'pivot.blank': '(blank)', // Enterprise: range selection 'rangeSelection.copied': 'Copied selection to the clipboard', 'rangeSelection.pasted': 'Pasted {rows} × {cols} cells', // Enterprise: AI Toolkit 'ai.title': 'Ask AI', 'ai.placeholder': 'Ask the grid to sort, filter, group, or answer a question…', 'ai.modeControl': 'Change the grid', 'ai.modeAsk': 'Ask a question', 'ai.send': 'Send', 'ai.cancel': 'Cancel', 'ai.thinking': 'Thinking…', 'ai.undo': 'Undo', 'ai.applied': 'Applied', 'ai.noChanges': 'No changes were applied.', 'ai.warnings': 'Notes', 'ai.answer': 'Answer', 'ai.error': 'Something went wrong.', 'ai.noAdapter': 'No AI adapter configured. Set grid.aiAdapter to enable.', 'ai.close': 'Close', // Formulas (enterprise) 'formula.editorLabel': 'Formula', 'formula.invalid': 'Invalid formula', 'formula.error.ref': 'Invalid cell reference', 'formula.error.name': 'Unknown function', 'formula.error.div0': 'Division by zero', 'formula.error.value': 'Invalid value', 'formula.error.cycle': 'Circular reference', }",
10154
+ "default": "{ // Pagination 'pagination.label': 'Grid pagination', 'pagination.controls': 'Pagination controls', 'pagination.rowsPerPage': 'Rows per page', 'pagination.firstPage': 'Go to first page', 'pagination.previousPage': 'Go to previous page', 'pagination.nextPage': 'Go to next page', 'pagination.lastPage': 'Go to last page', 'pagination.summary': '{start}-{end} of {total}', 'pagination.summaryEmpty': '0 of 0', // Filtering: operators 'filter.operator.contains': 'Contains', 'filter.operator.doesNotContain': 'Does not contain', 'filter.operator.startsWith': 'Starts with', 'filter.operator.endsWith': 'Ends with', 'filter.operator.equals': 'Equals', 'filter.operator.doesNotEqual': 'Does not equal', 'filter.operator.greaterThan': 'Greater than', 'filter.operator.lessThan': 'Less than', 'filter.operator.greaterThanOrEqual': 'Greater than or equal', 'filter.operator.lessThanOrEqual': 'Less than or equal', 'filter.operator.empty': 'Empty', 'filter.operator.notEmpty': 'Not empty', 'filter.operator.all': 'All', 'filter.operator.true': 'True', 'filter.operator.false': 'False', // Filtering: UI 'filter.filter': 'Filter', 'filter.reset': 'Reset', 'filter.close': 'Close', 'filter.removeFilter': 'Remove filter', 'filter.conditionList': 'Filter condition', 'filter.changeCondition': 'Change filter condition', 'filter.inputPlaceholder': 'Add filter value', // Rows: selection / expansion 'row.select': 'Select row', 'row.expand': 'Expand row', 'row.collapse': 'Collapse row', 'row.detail': 'Row detail', 'header.selectAll': 'Select all rows', 'header.expandAll': 'Expand all rows', 'header.collapseAll': 'Collapse all rows', // Toolbar 'toolbar.label': 'Grid toolbar', 'toolbar.searchPlaceholder': 'Search…', 'toolbar.export': 'Export', 'toolbar.exportOptions': 'Export options', 'toolbar.createChart': 'Create chart', 'toolbar.exportXlsx': 'Export XLSX', 'toolbar.askAI': 'Ask AI', // Grid host 'grid.label': 'Data grid', // Header controls 'header.sortedAscending': 'Sorted ascending. Activate to sort descending.', 'header.sortedDescending': 'Sorted descending. Activate to clear sort.', 'header.notSorted': 'Not sorted. Activate to sort ascending.', 'header.filterColumn': 'Filter column', 'header.columnMenu': 'Column menu', 'header.autosizeColumn': 'Autosize column', // Editors 'editor.rating': 'Rating', // Live-region announcements 'announce.sortedAscending': 'Sorted by {label} ascending', 'announce.sortedDescending': 'Sorted by {label} descending', 'announce.sortCleared': 'Sort cleared on {label}', 'announce.filtered': 'Filter applied to {label}', 'announce.filterCleared': 'Filter cleared on {label}', 'announce.selectionCleared': 'Selection cleared', 'announce.rowSelected': '1 row selected', 'announce.rowsSelected': '{count} rows selected', 'announce.page': 'Page {page} of {total}', 'announce.undoOne': 'Undo 1 cell change', 'announce.undoMany': 'Undo {count} cell changes', 'announce.redoOne': 'Redo 1 cell change', 'announce.redoMany': 'Redo {count} cell changes', 'announce.rowExpanded': 'Row expanded', 'announce.rowCollapsed': 'Row collapsed', 'announce.rowsExpanded': '{count} rows expanded', 'announce.allRowsCollapsed': 'All rows collapsed', 'announce.rowPinnedTop': 'Row pinned to top', 'announce.rowPinnedBottom': 'Row pinned to bottom', 'announce.rowUnpinned': 'Row unpinned', 'announce.rowGrabbed': 'Row grabbed. Use arrow keys to move, Enter to drop, Escape to cancel.', 'announce.rowMovedTo': 'Row moved to position {position}', 'announce.rowDropped': 'Row dropped', 'announce.reorderCancelled': 'Reorder cancelled', 'announce.rowMoved': 'Row moved', 'announce.manualOrderCleared': 'Manual row order cleared', // Enterprise: set filter 'setFilter.searchPlaceholder': 'Search values…', 'setFilter.noValues': 'No values', 'setFilter.selectAll': '(Select all)', 'setFilter.clearFilter': 'Clear filter', 'setFilter.blanks': '(Blanks)', // Enterprise: advanced filter builder 'filterBuilder.and': 'AND', 'filterBuilder.or': 'OR', 'filterBuilder.column': 'Column', 'filterBuilder.operator': 'Operator', 'filterBuilder.value': 'Value', 'filterBuilder.addCondition': 'Condition', 'filterBuilder.addGroup': 'Group', 'filterBuilder.remove': 'Remove', 'filterBuilder.removeGroup': 'Remove group', 'filterBuilder.apply': 'Apply', 'filterBuilder.clear': 'Clear', // Enterprise: status bar 'statusBar.selectRange': 'Select a range of cells', 'statusBar.count': 'Count', 'statusBar.sum': 'Sum', 'statusBar.average': 'Avg', 'statusBar.min': 'Min', 'statusBar.max': 'Max', // Enterprise: tool panel 'toolPanel.noGrid': 'No grid connected', 'toolPanel.columns': 'Columns', 'toolPanel.searchPlaceholder': 'Search columns…', 'toolPanel.pinColumn': 'Pin column', 'toolPanel.moveUp': 'Move up', 'toolPanel.moveDown': 'Move down', 'toolPanel.groupByColumn': 'Group by this column', 'toolPanel.pivotMode': 'Pivot mode', 'toolPanel.rowGroups': 'Row Groups', 'toolPanel.rowGroupsPivot': 'Row Groups (pivot rows)', 'toolPanel.values': 'Values', 'toolPanel.columnLabels': 'Column Labels', 'toolPanel.dragColumns': 'Drag columns here', 'toolPanel.removeChip': 'Remove', // Enterprise: context menu 'contextMenu.sortAsc': 'Sort ascending', 'contextMenu.sortDesc': 'Sort descending', 'contextMenu.clearSort': 'Clear sort', 'contextMenu.pinStart': 'Pin to start', 'contextMenu.pinEnd': 'Pin to end', 'contextMenu.unpin': 'Unpin', 'contextMenu.hideColumn': 'Hide column', 'contextMenu.copy': 'Copy', // Enterprise: charts 'chart.close': 'Close', 'chart.placeholder': 'Select cells, or group/pivot the grid, to chart it.', 'chart.chartRange': 'Chart range', 'chart.chartView': 'Chart this view', 'chart.selectionHint': 'Chart the selection (Alt+F1)', 'chart.rangeHandle': 'Resize chart source range', 'chart.countSeries': 'Count', 'chart.export': 'Export', 'chart.exportPng': 'PNG image', 'chart.exportSvg': 'SVG vector', 'chart.copyImage': 'Copy image', 'chart.imageCopied': 'Chart image copied to clipboard', 'chart.suggested': 'Suggested', 'chart.suggestedHint': 'Let ApexGrid pick the best chart type for this data', 'chart.by': 'by', 'chart.renameHint': 'Double-click to rename', 'chart.emptyTitle': 'Nothing to chart yet', 'chart.emptyRange': 'Select a range of cells, or', 'chart.emptyView': 'group or pivot the grid', 'chart.swapAxes': 'Swap axes (horizontal)', 'chart.swapAxesHint': 'Swap the X and Y axes (horizontal bars)', 'chart.data': 'Data', 'chart.mapCategory': 'Category (X)', 'chart.mapSeries': 'Series (Y)', 'chart.mapAggregation': 'Aggregation', 'chart.secondaryAxis': 'Draw on the secondary (right) axis', 'chart.secondaryAxisShort': '2nd axis', 'chart.calcFields': 'Calculated fields', 'chart.calcName': 'Name (e.g. Bonus %)', 'chart.calcFormula': 'Formula (e.g. B1 / A1 * 100)', 'chart.calcAdd': 'Add field', 'chart.calcRemove': 'Remove calculated field', 'chart.agg.sum': 'Sum', 'chart.agg.avg': 'Average', 'chart.agg.count': 'Count', 'chart.agg.min': 'Minimum', 'chart.agg.max': 'Maximum', 'chart.agg.median': 'Median', 'chart.format': 'Format', 'chart.legend': 'Legend', 'chart.dataLabels': 'Data labels', 'chart.gridlines': 'Gridlines', 'chart.numberFormat': 'Number format', 'chart.seriesColors': 'Colors', 'chart.format.none': 'Plain', 'chart.format.currency': 'Currency', 'chart.format.percent': 'Percent', 'chart.format.thousands': 'Thousands', 'chart.trendline': 'Trend line', 'chart.referenceLine': 'Reference line', 'chart.referenceBand': 'Reference band', 'chart.bandFrom': 'From', 'chart.bandTo': 'To', 'chart.forecast': 'Forecast periods', 'chart.forecastBand': 'Forecast band', 'chart.axisTitleX': 'X-axis title', 'chart.axisTitleY': 'Y-axis title', 'chart.type.column': 'Column', 'chart.type.bar': 'Bar', 'chart.type.line': 'Line', 'chart.type.area': 'Area', 'chart.type.pie': 'Pie', 'chart.type.donut': 'Donut', 'chart.type.scatter': 'Scatter', 'chart.type.radar': 'Radar', 'chart.type.combo': 'Combo', 'chart.type.auto': 'Auto', // Enterprise: row grouping 'grouping.blank': '(blank)', 'grouping.expandGroup': 'Expand group', 'grouping.collapseGroup': 'Collapse group', 'grouping.announceExpanded': 'Expanded group {label}', 'grouping.announceCollapsed': 'Collapsed group {label}', // Enterprise: pivot 'pivot.blank': '(blank)', 'pivot.total': 'Total', 'pivot.grandTotal': 'Grand Total', // Enterprise: range selection 'rangeSelection.copied': 'Copied selection to the clipboard', 'rangeSelection.pasted': 'Pasted {rows} × {cols} cells', // Enterprise: AI Toolkit 'ai.title': 'Ask AI', 'ai.placeholder': 'Ask the grid to sort, filter, group, or answer a question…', 'ai.modeControl': 'Change the grid', 'ai.modeAsk': 'Ask a question', 'ai.send': 'Send', 'ai.cancel': 'Cancel', 'ai.thinking': 'Thinking…', 'ai.undo': 'Undo', 'ai.applied': 'Applied', 'ai.noChanges': 'No changes were applied.', 'ai.warnings': 'Notes', 'ai.answer': 'Answer', 'ai.error': 'Something went wrong.', 'ai.close': 'Close', 'ai.preview': 'Preview', 'ai.previewHeading': 'Would run (not applied):', 'ai.previewEmpty': 'Nothing to run.', 'ai.viaRule': 'Rule engine', 'ai.viaAI': 'AI', 'ai.history': 'History', 'ai.clearHistory': 'Clear', 'ai.abstained': 'I could not turn that into a grid action.', 'ai.abstainedHint': 'Try sorting, filtering, or grouping, or ask a question about the data.', // Formulas (enterprise) 'formula.editorLabel': 'Formula', 'formula.invalid': 'Invalid formula', 'formula.error.ref': 'Invalid cell reference', 'formula.error.name': 'Unknown function', 'formula.error.div0': 'Division by zero', 'formula.error.value': 'Invalid value', 'formula.error.cycle': 'Circular reference', }",
9749
10155
  "description": "Default English locale dictionary: the single source of truth for every\nbuilt-in, user-facing string the community grid renders."
9750
10156
  }
9751
10157
  ],
@@ -9770,7 +10176,7 @@
9770
10176
  "type": {
9771
10177
  "text": "GridLocaleText"
9772
10178
  },
9773
- "default": "{ // Paginación 'pagination.label': 'Paginación de la tabla', 'pagination.controls': 'Controles de paginación', 'pagination.rowsPerPage': 'Filas por página', 'pagination.firstPage': 'Ir a la primera página', 'pagination.previousPage': 'Ir a la página anterior', 'pagination.nextPage': 'Ir a la página siguiente', 'pagination.lastPage': 'Ir a la última página', 'pagination.summary': '{start}-{end} de {total}', 'pagination.summaryEmpty': '0 de 0', // Filtrado: operadores 'filter.operator.contains': 'Contiene', 'filter.operator.doesNotContain': 'No contiene', 'filter.operator.startsWith': 'Empieza por', 'filter.operator.endsWith': 'Termina en', 'filter.operator.equals': 'Igual a', 'filter.operator.doesNotEqual': 'Distinto de', 'filter.operator.greaterThan': 'Mayor que', 'filter.operator.lessThan': 'Menor que', 'filter.operator.greaterThanOrEqual': 'Mayor o igual que', 'filter.operator.lessThanOrEqual': 'Menor o igual que', 'filter.operator.empty': 'Vacío', 'filter.operator.notEmpty': 'No vacío', 'filter.operator.all': 'Todos', 'filter.operator.true': 'Verdadero', 'filter.operator.false': 'Falso', // Filtrado: interfaz 'filter.filter': 'Filtrar', 'filter.reset': 'Restablecer', 'filter.close': 'Cerrar', 'filter.removeFilter': 'Quitar filtro', 'filter.conditionList': 'Condición de filtro', 'filter.changeCondition': 'Cambiar condición de filtro', 'filter.inputPlaceholder': 'Añadir valor de filtro', // Filas: selección / expansión 'row.select': 'Seleccionar fila', 'row.expand': 'Expandir fila', 'row.collapse': 'Contraer fila', 'row.detail': 'Detalle de la fila', 'header.selectAll': 'Seleccionar todas las filas', 'header.expandAll': 'Expandir todas las filas', 'header.collapseAll': 'Contraer todas las filas', // Barra de herramientas 'toolbar.label': 'Barra de herramientas de la tabla', 'toolbar.searchPlaceholder': 'Buscar…', 'toolbar.export': 'Exportar', 'toolbar.exportOptions': 'Opciones de exportación', 'toolbar.createChart': 'Crear gráfico', 'toolbar.exportXlsx': 'Exportar XLSX', 'toolbar.askAI': 'Preguntar a la IA', // Enterprise: filtro de conjunto 'setFilter.searchPlaceholder': 'Buscar valores…', 'setFilter.noValues': 'Sin valores', 'setFilter.selectAll': '(Seleccionar todo)', 'setFilter.clearFilter': 'Borrar filtro', 'setFilter.blanks': '(Vacíos)', // Enterprise: barra de estado 'statusBar.selectRange': 'Seleccione un rango de celdas', 'statusBar.count': 'Recuento', 'statusBar.sum': 'Suma', 'statusBar.average': 'Prom.', 'statusBar.min': 'Mín.', 'statusBar.max': 'Máx.', // Enterprise: panel de herramientas 'toolPanel.noGrid': 'Ninguna tabla conectada', 'toolPanel.columns': 'Columnas', 'toolPanel.searchPlaceholder': 'Buscar columnas…', 'toolPanel.pinColumn': 'Fijar columna', 'toolPanel.moveUp': 'Subir', 'toolPanel.moveDown': 'Bajar', 'toolPanel.groupByColumn': 'Agrupar por esta columna', 'toolPanel.pivotMode': 'Modo dinámico', 'toolPanel.rowGroups': 'Grupos de filas', 'toolPanel.rowGroupsPivot': 'Grupos de filas (filas dinámicas)', 'toolPanel.values': 'Valores', 'toolPanel.columnLabels': 'Etiquetas de columna', 'toolPanel.dragColumns': 'Arrastre columnas aquí', 'toolPanel.removeChip': 'Quitar', // Enterprise: menú contextual 'contextMenu.sortAsc': 'Ordenar ascendente', 'contextMenu.sortDesc': 'Ordenar descendente', 'contextMenu.clearSort': 'Quitar orden', 'contextMenu.pinStart': 'Fijar al inicio', 'contextMenu.pinEnd': 'Fijar al final', 'contextMenu.unpin': 'Desfijar', 'contextMenu.hideColumn': 'Ocultar columna', 'contextMenu.copy': 'Copiar', // Enterprise: gráficos 'chart.close': 'Cerrar', 'chart.placeholder': 'Seleccione celdas, o agrupe/pivote la tabla, para graficarla.', 'chart.chartRange': 'Graficar rango', 'chart.countSeries': 'Recuento', 'chart.type.column': 'Columnas', 'chart.type.bar': 'Barras', 'chart.type.line': 'Líneas', 'chart.type.area': 'Área', 'chart.type.pie': 'Circular', 'chart.type.donut': 'Anillo', 'chart.type.scatter': 'Dispersión', 'chart.type.radar': 'Radar', 'chart.type.combo': 'Combinado', 'chart.type.auto': 'Automático', // Enterprise: agrupación de filas 'grouping.blank': '(vacío)', 'grouping.expandGroup': 'Expandir grupo', 'grouping.collapseGroup': 'Contraer grupo', 'grouping.announceExpanded': 'Grupo expandido {label}', 'grouping.announceCollapsed': 'Grupo contraído {label}', // Enterprise: tabla dinámica 'pivot.blank': '(vacío)', // Enterprise: selección de rango 'rangeSelection.copied': 'Selección copiada al portapapeles', 'rangeSelection.pasted': 'Pegadas {rows} × {cols} celdas', // Enterprise: kit de IA 'ai.title': 'Preguntar a la IA', 'ai.placeholder': 'Pide a la tabla ordenar, filtrar, agrupar o responder una pregunta…', 'ai.modeControl': 'Cambiar la tabla', 'ai.modeAsk': 'Hacer una pregunta', 'ai.send': 'Enviar', 'ai.cancel': 'Cancelar', 'ai.thinking': 'Pensando…', 'ai.undo': 'Deshacer', 'ai.applied': 'Aplicado', 'ai.noChanges': 'No se aplicaron cambios.', 'ai.warnings': 'Notas', 'ai.answer': 'Respuesta', 'ai.error': 'Algo salió mal.', 'ai.noAdapter': 'No hay adaptador de IA configurado. Asigne grid.aiAdapter para habilitarlo.', 'ai.close': 'Cerrar', // Fórmulas (enterprise) 'formula.editorLabel': 'Fórmula', 'formula.invalid': 'Fórmula no válida', 'formula.error.ref': 'Referencia de celda no válida', 'formula.error.name': 'Función desconocida', 'formula.error.div0': 'División por cero', 'formula.error.value': 'Valor no válido', 'formula.error.cycle': 'Referencia circular', }",
10179
+ "default": "{ // Paginación 'pagination.label': 'Paginación de la tabla', 'pagination.controls': 'Controles de paginación', 'pagination.rowsPerPage': 'Filas por página', 'pagination.firstPage': 'Ir a la primera página', 'pagination.previousPage': 'Ir a la página anterior', 'pagination.nextPage': 'Ir a la página siguiente', 'pagination.lastPage': 'Ir a la última página', 'pagination.summary': '{start}-{end} de {total}', 'pagination.summaryEmpty': '0 de 0', // Filtrado: operadores 'filter.operator.contains': 'Contiene', 'filter.operator.doesNotContain': 'No contiene', 'filter.operator.startsWith': 'Empieza por', 'filter.operator.endsWith': 'Termina en', 'filter.operator.equals': 'Igual a', 'filter.operator.doesNotEqual': 'Distinto de', 'filter.operator.greaterThan': 'Mayor que', 'filter.operator.lessThan': 'Menor que', 'filter.operator.greaterThanOrEqual': 'Mayor o igual que', 'filter.operator.lessThanOrEqual': 'Menor o igual que', 'filter.operator.empty': 'Vacío', 'filter.operator.notEmpty': 'No vacío', 'filter.operator.all': 'Todos', 'filter.operator.true': 'Verdadero', 'filter.operator.false': 'Falso', // Filtrado: interfaz 'filter.filter': 'Filtrar', 'filter.reset': 'Restablecer', 'filter.close': 'Cerrar', 'filter.removeFilter': 'Quitar filtro', 'filter.conditionList': 'Condición de filtro', 'filter.changeCondition': 'Cambiar condición de filtro', 'filter.inputPlaceholder': 'Añadir valor de filtro', // Filas: selección / expansión 'row.select': 'Seleccionar fila', 'row.expand': 'Expandir fila', 'row.collapse': 'Contraer fila', 'row.detail': 'Detalle de la fila', 'header.selectAll': 'Seleccionar todas las filas', 'header.expandAll': 'Expandir todas las filas', 'header.collapseAll': 'Contraer todas las filas', // Barra de herramientas 'toolbar.label': 'Barra de herramientas de la tabla', 'toolbar.searchPlaceholder': 'Buscar…', 'toolbar.export': 'Exportar', 'toolbar.exportOptions': 'Opciones de exportación', 'toolbar.createChart': 'Crear gráfico', 'toolbar.exportXlsx': 'Exportar XLSX', 'toolbar.askAI': 'Preguntar a la IA', // Anfitrión de la tabla 'grid.label': 'Tabla de datos', // Controles de cabecera 'header.sortedAscending': 'Orden ascendente. Activar para orden descendente.', 'header.sortedDescending': 'Orden descendente. Activar para quitar el orden.', 'header.notSorted': 'Sin ordenar. Activar para orden ascendente.', 'header.filterColumn': 'Filtrar columna', 'header.columnMenu': 'Menú de columna', 'header.autosizeColumn': 'Autoajustar columna', // Editores 'editor.rating': 'Calificación', // Anuncios de región activa 'announce.sortedAscending': 'Ordenado por {label} ascendente', 'announce.sortedDescending': 'Ordenado por {label} descendente', 'announce.sortCleared': 'Orden quitado en {label}', 'announce.filtered': 'Filtro aplicado a {label}', 'announce.filterCleared': 'Filtro quitado en {label}', 'announce.selectionCleared': 'Selección borrada', 'announce.rowSelected': '1 fila seleccionada', 'announce.rowsSelected': '{count} filas seleccionadas', 'announce.page': 'Página {page} de {total}', 'announce.undoOne': 'Deshacer 1 cambio de celda', 'announce.undoMany': 'Deshacer {count} cambios de celda', 'announce.redoOne': 'Rehacer 1 cambio de celda', 'announce.redoMany': 'Rehacer {count} cambios de celda', 'announce.rowExpanded': 'Fila expandida', 'announce.rowCollapsed': 'Fila contraída', 'announce.rowsExpanded': '{count} filas expandidas', 'announce.allRowsCollapsed': 'Todas las filas contraídas', 'announce.rowPinnedTop': 'Fila fijada arriba', 'announce.rowPinnedBottom': 'Fila fijada abajo', 'announce.rowUnpinned': 'Fila liberada', 'announce.rowGrabbed': 'Fila agarrada. Use las flechas para mover, Enter para soltar, Escape para cancelar.', 'announce.rowMovedTo': 'Fila movida a la posición {position}', 'announce.rowDropped': 'Fila soltada', 'announce.reorderCancelled': 'Reordenación cancelada', 'announce.rowMoved': 'Fila movida', 'announce.manualOrderCleared': 'Orden manual de filas borrado', // Enterprise: filtro de conjunto 'setFilter.searchPlaceholder': 'Buscar valores…', 'setFilter.noValues': 'Sin valores', 'setFilter.selectAll': '(Seleccionar todo)', 'setFilter.clearFilter': 'Borrar filtro', 'setFilter.blanks': '(Vacíos)', // Enterprise: constructor de filtros avanzado 'filterBuilder.and': 'Y', 'filterBuilder.or': 'O', 'filterBuilder.column': 'Columna', 'filterBuilder.operator': 'Operador', 'filterBuilder.value': 'Valor', 'filterBuilder.addCondition': 'Condición', 'filterBuilder.addGroup': 'Grupo', 'filterBuilder.remove': 'Eliminar', 'filterBuilder.removeGroup': 'Eliminar grupo', 'filterBuilder.apply': 'Aplicar', 'filterBuilder.clear': 'Borrar', // Enterprise: barra de estado 'statusBar.selectRange': 'Seleccione un rango de celdas', 'statusBar.count': 'Recuento', 'statusBar.sum': 'Suma', 'statusBar.average': 'Prom.', 'statusBar.min': 'Mín.', 'statusBar.max': 'Máx.', // Enterprise: panel de herramientas 'toolPanel.noGrid': 'Ninguna tabla conectada', 'toolPanel.columns': 'Columnas', 'toolPanel.searchPlaceholder': 'Buscar columnas…', 'toolPanel.pinColumn': 'Fijar columna', 'toolPanel.moveUp': 'Subir', 'toolPanel.moveDown': 'Bajar', 'toolPanel.groupByColumn': 'Agrupar por esta columna', 'toolPanel.pivotMode': 'Modo dinámico', 'toolPanel.rowGroups': 'Grupos de filas', 'toolPanel.rowGroupsPivot': 'Grupos de filas (filas dinámicas)', 'toolPanel.values': 'Valores', 'toolPanel.columnLabels': 'Etiquetas de columna', 'toolPanel.dragColumns': 'Arrastre columnas aquí', 'toolPanel.removeChip': 'Quitar', // Enterprise: menú contextual 'contextMenu.sortAsc': 'Ordenar ascendente', 'contextMenu.sortDesc': 'Ordenar descendente', 'contextMenu.clearSort': 'Quitar orden', 'contextMenu.pinStart': 'Fijar al inicio', 'contextMenu.pinEnd': 'Fijar al final', 'contextMenu.unpin': 'Desfijar', 'contextMenu.hideColumn': 'Ocultar columna', 'contextMenu.copy': 'Copiar', // Enterprise: gráficos 'chart.close': 'Cerrar', 'chart.placeholder': 'Seleccione celdas, o agrupe/pivote la tabla, para graficarla.', 'chart.chartRange': 'Graficar rango', 'chart.chartView': 'Graficar esta vista', 'chart.selectionHint': 'Graficar la selección (Alt+F1)', 'chart.rangeHandle': 'Redimensionar el rango de origen del gráfico', 'chart.export': 'Exportar', 'chart.exportPng': 'Imagen PNG', 'chart.exportSvg': 'Vector SVG', 'chart.copyImage': 'Copiar imagen', 'chart.imageCopied': 'Imagen del gráfico copiada al portapapeles', 'chart.suggested': 'Sugerido', 'chart.suggestedHint': 'Deja que ApexGrid elija el mejor tipo de gráfico para estos datos', 'chart.by': 'por', 'chart.renameHint': 'Haz doble clic para renombrar', 'chart.emptyTitle': 'Aún no hay nada que graficar', 'chart.emptyRange': 'Selecciona un rango de celdas, o', 'chart.emptyView': 'agrupa o dinamiza la cuadrícula', 'chart.swapAxes': 'Intercambiar ejes (horizontal)', 'chart.swapAxesHint': 'Intercambia los ejes X e Y (barras horizontales)', 'chart.data': 'Datos', 'chart.mapCategory': 'Categoría (X)', 'chart.mapSeries': 'Series (Y)', 'chart.mapAggregation': 'Agregación', 'chart.secondaryAxis': 'Dibujar en el eje secundario (derecho)', 'chart.secondaryAxisShort': '2.º eje', 'chart.calcFields': 'Campos calculados', 'chart.calcName': 'Nombre (p. ej. Bono %)', 'chart.calcFormula': 'Fórmula (p. ej. B1 / A1 * 100)', 'chart.calcAdd': 'Añadir campo', 'chart.calcRemove': 'Eliminar campo calculado', 'chart.agg.sum': 'Suma', 'chart.agg.avg': 'Promedio', 'chart.agg.count': 'Recuento', 'chart.agg.min': 'Mínimo', 'chart.agg.max': 'Máximo', 'chart.agg.median': 'Mediana', 'chart.format': 'Formato', 'chart.legend': 'Leyenda', 'chart.dataLabels': 'Etiquetas de datos', 'chart.gridlines': 'Líneas de cuadrícula', 'chart.numberFormat': 'Formato numérico', 'chart.seriesColors': 'Colores', 'chart.format.none': 'Simple', 'chart.format.currency': 'Moneda', 'chart.format.percent': 'Porcentaje', 'chart.format.thousands': 'Miles', 'chart.trendline': 'Línea de tendencia', 'chart.referenceLine': 'Línea de referencia', 'chart.referenceBand': 'Banda de referencia', 'chart.bandFrom': 'Desde', 'chart.bandTo': 'Hasta', 'chart.forecast': 'Períodos de pronóstico', 'chart.forecastBand': 'Banda de pronóstico', 'chart.axisTitleX': 'Título del eje X', 'chart.axisTitleY': 'Título del eje Y', 'chart.countSeries': 'Recuento', 'chart.type.column': 'Columnas', 'chart.type.bar': 'Barras', 'chart.type.line': 'Líneas', 'chart.type.area': 'Área', 'chart.type.pie': 'Circular', 'chart.type.donut': 'Anillo', 'chart.type.scatter': 'Dispersión', 'chart.type.radar': 'Radar', 'chart.type.combo': 'Combinado', 'chart.type.auto': 'Automático', // Enterprise: agrupación de filas 'grouping.blank': '(vacío)', 'grouping.expandGroup': 'Expandir grupo', 'grouping.collapseGroup': 'Contraer grupo', 'grouping.announceExpanded': 'Grupo expandido {label}', 'grouping.announceCollapsed': 'Grupo contraído {label}', // Enterprise: tabla dinámica 'pivot.blank': '(vacío)', 'pivot.total': 'Total', 'pivot.grandTotal': 'Total general', // Enterprise: selección de rango 'rangeSelection.copied': 'Selección copiada al portapapeles', 'rangeSelection.pasted': 'Pegadas {rows} × {cols} celdas', // Enterprise: kit de IA 'ai.title': 'Preguntar a la IA', 'ai.placeholder': 'Pide a la tabla ordenar, filtrar, agrupar o responder una pregunta…', 'ai.modeControl': 'Cambiar la tabla', 'ai.modeAsk': 'Hacer una pregunta', 'ai.send': 'Enviar', 'ai.cancel': 'Cancelar', 'ai.thinking': 'Pensando…', 'ai.undo': 'Deshacer', 'ai.applied': 'Aplicado', 'ai.noChanges': 'No se aplicaron cambios.', 'ai.warnings': 'Notas', 'ai.answer': 'Respuesta', 'ai.error': 'Algo salió mal.', 'ai.close': 'Cerrar', 'ai.preview': 'Vista previa', 'ai.previewHeading': 'Se ejecutaría (no aplicado):', 'ai.previewEmpty': 'Nada que ejecutar.', 'ai.viaRule': 'Motor de reglas', 'ai.viaAI': 'IA', 'ai.history': 'Historial', 'ai.clearHistory': 'Borrar', 'ai.abstained': 'No pude convertir eso en una acción de la tabla.', 'ai.abstainedHint': 'Prueba a ordenar, filtrar o agrupar, o haz una pregunta sobre los datos.', // Fórmulas (enterprise) 'formula.editorLabel': 'Fórmula', 'formula.invalid': 'Fórmula no válida', 'formula.error.ref': 'Referencia de celda no válida', 'formula.error.name': 'Función desconocida', 'formula.error.div0': 'División por cero', 'formula.error.value': 'Valor no válido', 'formula.error.cycle': 'Referencia circular', }",
9774
10180
  "description": "Spanish (Español) translation of the grid's built-in UI text."
9775
10181
  }
9776
10182
  ],
@@ -10449,6 +10855,24 @@
10449
10855
  ],
10450
10856
  "description": "Runtime type-guard for RowPresenter."
10451
10857
  },
10858
+ {
10859
+ "kind": "function",
10860
+ "name": "isRowAriaProvider",
10861
+ "return": {
10862
+ "type": {
10863
+ "text": "controller is RowAriaProvider<T>"
10864
+ }
10865
+ },
10866
+ "parameters": [
10867
+ {
10868
+ "name": "controller",
10869
+ "type": {
10870
+ "text": "unknown"
10871
+ }
10872
+ }
10873
+ ],
10874
+ "description": "Runtime type-guard for RowAriaProvider."
10875
+ },
10452
10876
  {
10453
10877
  "kind": "function",
10454
10878
  "name": "isCellDecorator",
@@ -10539,6 +10963,14 @@
10539
10963
  "module": "src/internal/feature-module.ts"
10540
10964
  }
10541
10965
  },
10966
+ {
10967
+ "kind": "js",
10968
+ "name": "isRowAriaProvider",
10969
+ "declaration": {
10970
+ "name": "isRowAriaProvider",
10971
+ "module": "src/internal/feature-module.ts"
10972
+ }
10973
+ },
10542
10974
  {
10543
10975
  "kind": "js",
10544
10976
  "name": "isCellDecorator",
@@ -10927,6 +11359,22 @@
10927
11359
  "module": "./feature-module.js"
10928
11360
  }
10929
11361
  },
11362
+ {
11363
+ "kind": "js",
11364
+ "name": "RowAria",
11365
+ "declaration": {
11366
+ "name": "RowAria",
11367
+ "module": "./feature-module.js"
11368
+ }
11369
+ },
11370
+ {
11371
+ "kind": "js",
11372
+ "name": "RowAriaProvider",
11373
+ "declaration": {
11374
+ "name": "RowAriaProvider",
11375
+ "module": "./feature-module.js"
11376
+ }
11377
+ },
10930
11378
  {
10931
11379
  "kind": "js",
10932
11380
  "name": "RowPresenter",
@@ -10983,6 +11431,14 @@
10983
11431
  "module": "./feature-module.js"
10984
11432
  }
10985
11433
  },
11434
+ {
11435
+ "kind": "js",
11436
+ "name": "isRowAriaProvider",
11437
+ "declaration": {
11438
+ "name": "isRowAriaProvider",
11439
+ "module": "./feature-module.js"
11440
+ }
11441
+ },
10986
11442
  {
10987
11443
  "kind": "js",
10988
11444
  "name": "isRowPresenter",
@@ -11949,6 +12405,24 @@
11949
12405
  }
11950
12406
  }
11951
12407
  ]
12408
+ },
12409
+ {
12410
+ "kind": "function",
12411
+ "name": "isRTL",
12412
+ "return": {
12413
+ "type": {
12414
+ "text": "boolean"
12415
+ }
12416
+ },
12417
+ "parameters": [
12418
+ {
12419
+ "name": "element",
12420
+ "type": {
12421
+ "text": "Element"
12422
+ }
12423
+ }
12424
+ ],
12425
+ "description": "Whether an element renders right-to-left.\n\nThe grid's stylesheets are written entirely in logical properties\n(`inline-size`, `inset-inline-start`, `border-inline-end`, …), so layout\nmirrors under `dir=\"rtl\"` with no extra CSS. What does *not* mirror by itself\nis code that reasons in physical pixels or physical key names: resizing from\na `clientX` delta, deciding a drop side from a midpoint, and mapping\nArrowLeft/ArrowRight onto previous/next column. Those read this.\n\nResolved from the computed style rather than the `dir` attribute so an\ninherited direction (the common case: `dir` on `<html>`) is honoured."
11952
12426
  }
11953
12427
  ],
11954
12428
  "exports": [
@@ -12039,6 +12513,14 @@
12039
12513
  "name": "getFilterOperandsFor",
12040
12514
  "module": "src/internal/utils.ts"
12041
12515
  }
12516
+ },
12517
+ {
12518
+ "kind": "js",
12519
+ "name": "isRTL",
12520
+ "declaration": {
12521
+ "name": "isRTL",
12522
+ "module": "src/internal/utils.ts"
12523
+ }
12042
12524
  }
12043
12525
  ]
12044
12526
  },
@@ -13022,18 +13504,10 @@
13022
13504
  ]
13023
13505
  }
13024
13506
  ],
13025
- "events": [
13026
- {
13027
- "type": {
13028
- "text": "CustomEvent"
13029
- }
13030
- }
13031
- ],
13032
13507
  "superclass": {
13033
13508
  "name": "LitElement",
13034
13509
  "package": "lit"
13035
- },
13036
- "customElement": true
13510
+ }
13037
13511
  }
13038
13512
  ],
13039
13513
  "exports": [