@bryntum/grid-thin-trial 7.3.3 → 7.3.5

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 (123) hide show
  1. package/AGENTS.md +130 -0
  2. package/CLAUDE.md +130 -0
  3. package/grid.css +3 -0
  4. package/grid.css.map +2 -2
  5. package/grid.d.ts +199 -58
  6. package/lib/column/CheckColumn.js +1 -1
  7. package/lib/column/Column.js +1 -1
  8. package/lib/feature/CellEdit.js +1 -1
  9. package/lib/feature/ColumnAutoWidth.js +1 -1
  10. package/lib/feature/ColumnReorder.js +1 -1
  11. package/lib/feature/ColumnResize.css +6 -0
  12. package/lib/feature/ColumnResize.js +1 -1
  13. package/lib/feature/FillHandle.js +1 -1
  14. package/lib/feature/Filter.js +1 -1
  15. package/lib/feature/FilterBar.js +1 -1
  16. package/lib/feature/Group.js +1 -1
  17. package/lib/feature/HeaderMenu.js +1 -1
  18. package/lib/feature/RowReorder.js +1 -1
  19. package/lib/feature/StickyCells.js +1 -1
  20. package/lib/feature/TreeGroup.js +1 -1
  21. package/lib/feature/base/GridEditBase.js +1 -1
  22. package/lib/feature/experimental/ExcelExporter.js +1 -1
  23. package/lib/feature/experimental/xlsproviders/WriteExcelFileProvider.js +1 -1
  24. package/lib/feature/experimental/xlsproviders/XlsProviderBase.js +1 -1
  25. package/lib/feature/export/PdfExport.js +4 -4
  26. package/lib/localization/Ar.js +262 -225
  27. package/lib/localization/Bg.js +262 -225
  28. package/lib/localization/Ca.js +262 -225
  29. package/lib/localization/Cs.js +262 -225
  30. package/lib/localization/Da.js +262 -225
  31. package/lib/localization/De.js +262 -225
  32. package/lib/localization/El.js +262 -225
  33. package/lib/localization/En.js +262 -225
  34. package/lib/localization/EnGb.js +262 -225
  35. package/lib/localization/Es.js +262 -225
  36. package/lib/localization/Et.js +262 -225
  37. package/lib/localization/Eu.js +262 -225
  38. package/lib/localization/Fi.js +262 -225
  39. package/lib/localization/FrFr.js +262 -225
  40. package/lib/localization/Gl.js +262 -225
  41. package/lib/localization/He.js +262 -225
  42. package/lib/localization/Hi.js +262 -225
  43. package/lib/localization/Hr.js +262 -225
  44. package/lib/localization/Hu.js +262 -225
  45. package/lib/localization/Id.js +262 -225
  46. package/lib/localization/It.js +262 -225
  47. package/lib/localization/Ja.js +262 -225
  48. package/lib/localization/Kk.js +262 -225
  49. package/lib/localization/Ko.js +262 -225
  50. package/lib/localization/Lt.js +262 -225
  51. package/lib/localization/Lv.js +262 -225
  52. package/lib/localization/Ms.js +262 -225
  53. package/lib/localization/Nl.js +262 -225
  54. package/lib/localization/No.js +262 -225
  55. package/lib/localization/Pl.js +262 -225
  56. package/lib/localization/Pt.js +262 -225
  57. package/lib/localization/PtBr.js +262 -225
  58. package/lib/localization/Ro.js +262 -225
  59. package/lib/localization/Ru.js +262 -225
  60. package/lib/localization/Sk.js +262 -225
  61. package/lib/localization/Sl.js +262 -225
  62. package/lib/localization/Sr.js +262 -225
  63. package/lib/localization/SrRs.js +262 -225
  64. package/lib/localization/SvSE.js +262 -225
  65. package/lib/localization/Th.js +262 -225
  66. package/lib/localization/Tr.js +262 -225
  67. package/lib/localization/Uk.js +262 -225
  68. package/lib/localization/Vi.js +262 -225
  69. package/lib/localization/ZhCn.js +262 -225
  70. package/lib/localization/ZhTw.js +262 -225
  71. package/lib/row/Row.js +1 -1
  72. package/lib/util/SubGridScroller.js +1 -1
  73. package/lib/view/GridBase.js +1 -1
  74. package/lib/view/SubGrid.js +1 -1
  75. package/lib/view/mixin/GridElementEvents.js +1 -1
  76. package/lib/view/mixin/GridNavigation.js +1 -1
  77. package/lib/widget/ChecklistFilterCombo.js +1 -1
  78. package/locales/grid.locale.Ar.js +1 -1
  79. package/locales/grid.locale.Bg.js +1 -1
  80. package/locales/grid.locale.Ca.js +1 -1
  81. package/locales/grid.locale.Cs.js +1 -1
  82. package/locales/grid.locale.Da.js +1 -1
  83. package/locales/grid.locale.De.js +1 -1
  84. package/locales/grid.locale.El.js +1 -1
  85. package/locales/grid.locale.En.js +1 -1
  86. package/locales/grid.locale.EnGb.js +1 -1
  87. package/locales/grid.locale.Es.js +1 -1
  88. package/locales/grid.locale.Et.js +1 -1
  89. package/locales/grid.locale.Eu.js +1 -1
  90. package/locales/grid.locale.Fi.js +1 -1
  91. package/locales/grid.locale.FrFr.js +1 -1
  92. package/locales/grid.locale.Gl.js +1 -1
  93. package/locales/grid.locale.He.js +1 -1
  94. package/locales/grid.locale.Hi.js +1 -1
  95. package/locales/grid.locale.Hr.js +1 -1
  96. package/locales/grid.locale.Hu.js +1 -1
  97. package/locales/grid.locale.Id.js +1 -1
  98. package/locales/grid.locale.It.js +1 -1
  99. package/locales/grid.locale.Ja.js +1 -1
  100. package/locales/grid.locale.Kk.js +1 -1
  101. package/locales/grid.locale.Ko.js +1 -1
  102. package/locales/grid.locale.Lt.js +1 -1
  103. package/locales/grid.locale.Lv.js +1 -1
  104. package/locales/grid.locale.Ms.js +1 -1
  105. package/locales/grid.locale.Nl.js +1 -1
  106. package/locales/grid.locale.No.js +1 -1
  107. package/locales/grid.locale.Pl.js +1 -1
  108. package/locales/grid.locale.Pt.js +1 -1
  109. package/locales/grid.locale.PtBr.js +1 -1
  110. package/locales/grid.locale.Ro.js +1 -1
  111. package/locales/grid.locale.Ru.js +1 -1
  112. package/locales/grid.locale.Sk.js +1 -1
  113. package/locales/grid.locale.Sl.js +1 -1
  114. package/locales/grid.locale.Sr.js +1 -1
  115. package/locales/grid.locale.SrRs.js +1 -1
  116. package/locales/grid.locale.SvSE.js +1 -1
  117. package/locales/grid.locale.Th.js +1 -1
  118. package/locales/grid.locale.Tr.js +1 -1
  119. package/locales/grid.locale.Uk.js +1 -1
  120. package/locales/grid.locale.Vi.js +1 -1
  121. package/locales/grid.locale.ZhCn.js +1 -1
  122. package/locales/grid.locale.ZhTw.js +1 -1
  123. package/package.json +1 -1
package/AGENTS.md ADDED
@@ -0,0 +1,130 @@
1
+ # @bryntum/grid-thin-trial — notes for AI coding agents
2
+
3
+ You are using the Bryntum Grid component from its **thin trial** npm package
4
+ (`@bryntum/grid-thin-trial`). Thin packages ship only product-specific code and styling and share
5
+ a common core, so several Bryntum products can run in the same app. The rules below are not obvious
6
+ from the source tree and must be followed for the component to render and work correctly.
7
+
8
+ ## Fastest path to correct code
9
+
10
+ Two Bryntum resources beat working from memory, reach for them before writing code:
11
+
12
+ - **MCP server** (https://mcp.bryntum.com/): grounded, version-correct answers about the installed
13
+ API. Use it to confirm config/method/event names instead of guessing.
14
+ - **Agent skills** (https://github.com/bryntum/skills): complement the Bryntum MCP server by
15
+ providing practical knowledge for using Bryntum and avoiding common pitfalls.
16
+
17
+ If these are not installed yet, suggest to the user that they install them for more reliable
18
+ results.
19
+
20
+ ## Install trial thin packages with npm aliasing
21
+
22
+ Trial thin packages must be installed with npm aliasing so imports resolve to the plain `-thin`
23
+ names. Thin packages do **not** bundle their Bryntum dependencies and do **not** declare them in
24
+ their own `package.json` — alias every one this product needs, all pinned to the **exact same
25
+ version**. For Bryntum Grid, install:
26
+
27
+ ```shell
28
+ npm install @bryntum/core-thin@npm:@bryntum/core-thin-trial@7.3.5 \
29
+ @bryntum/grid-thin@npm:@bryntum/grid-thin-trial@7.3.5
30
+ ```
31
+
32
+ The framework wrapper packages below are installed **in addition to** the thin packages above —
33
+ they wrap them, not replace them. Wrappers have no trial variants, so install them by their real
34
+ names with no aliasing.
35
+
36
+ If using React, additionally install:
37
+
38
+ ```shell
39
+ npm install @bryntum/core-react-thin @bryntum/grid-react-thin
40
+ ```
41
+
42
+ If using Angular, additionally install:
43
+
44
+ ```shell
45
+ npm install @bryntum/core-angular-thin @bryntum/grid-angular-thin
46
+ ```
47
+
48
+ If using Vue, additionally install:
49
+
50
+ ```shell
51
+ npm install @bryntum/core-vue-3-thin @bryntum/grid-vue-3-thin
52
+ ```
53
+
54
+ - **Import from `@bryntum/grid-thin`** (not `-thin-trial`):
55
+ `import { ... } from '@bryntum/grid-thin'`. Aliasing means the licensed swap is a one-line
56
+ `package.json` change with no source edits.
57
+ - **Never mix regular and thin packages.** Do not combine `@bryntum/grid` (regular) and
58
+ `@bryntum/grid-thin` in one project — the bundle loads twice and fails at runtime with "bundle
59
+ was loaded multiple times". To use several Bryntum products together, every one must be the
60
+ `-thin` variant; regular packages cannot be combined.
61
+ - TypeScript types ship as `*.d.ts` files inside the package. Do **not** redeclare interfaces or
62
+ component options; import the types you need.
63
+
64
+ ## CSS — theme, FontAwesome and core styling come from @bryntum/core-thin
65
+
66
+ Thin styling is split: the theme, FontAwesome and core structural CSS live in `@bryntum/core-thin`,
67
+ and each product ships only its own structural stylesheet. Structural CSS follows the same rule as
68
+ the packages: import it for **every** thin package aliased above (`@bryntum/engine-thin` has no
69
+ CSS) — importing only `grid.css` renders the component as broken, unstyled HTML. Thanks to the
70
+ aliasing, the import paths use the plain `-thin` names. For Bryntum Grid, import:
71
+
72
+ ```css
73
+ /* FontAwesome is used for icons */
74
+ @import '@bryntum/core-thin/fontawesome/css/fontawesome.css';
75
+ @import '@bryntum/core-thin/fontawesome/css/solid.css';
76
+ /* Structural CSS */
77
+ @import '@bryntum/core-thin/core.css';
78
+ @import '@bryntum/grid-thin/grid.css';
79
+ /* Theme */
80
+ @import '@bryntum/core-thin/svalbard-light.css';
81
+ ```
82
+
83
+ FontAwesome is required — icons, expanders and arrows are blank without it. Import **exactly one**
84
+ theme: `stockholm-light`, `svalbard-light`, `visby-light`, `material3-light` or `fluent2-light`.
85
+ Theme file names are exact and not guessable: `svalbard-light.css` exists, `svalbard.css` does not.
86
+ List them first: `ls node_modules/@bryntum/core-thin/*.css`.
87
+
88
+ When combining products, additionally import each product's `@bryntum/{product}-thin/{product}.css`,
89
+ but keep one core-thin theme.
90
+
91
+ ## Sizing the component — the parent needs a real height
92
+
93
+ By default the component fills 100% of its parent element, with a min-height of 10em. If no
94
+ ancestor has an explicit height, the component collapses to that minimum — the app builds and data
95
+ loads, but the component renders as a short strip instead of filling the page. To display the component at the appropriate size, you can, for example, set parent components to take up the full height of the screen:
96
+
97
+ ```css
98
+ #app {
99
+ margin : 0;
100
+ display : flex;
101
+ flex-direction : column;
102
+ height : 100vh;
103
+ }
104
+ ```
105
+
106
+ Adapt this to the application layout. When several components share the page, size each one inside
107
+ the full-height container (flex values or explicit heights).
108
+
109
+ ## Verify APIs before using them
110
+
111
+ Your training data is older than this package, and Bryntum APIs change between major versions.
112
+ Confirm config/method/event names against the installed version — read it from
113
+ `node_modules/@bryntum/grid-thin/package.json` (`"version"`) — using the Bryntum MCP server
114
+ (https://mcp.bryntum.com/) or the official docs. Do not invent APIs from memory.
115
+
116
+ ## Verify the component rendered
117
+
118
+ A successful `npm run build` does not mean the component rendered: data-loading errors and
119
+ misconfigured APIs fail silently at runtime. After the build, open the app in a browser and confirm:
120
+
121
+ - The themed container is visible (not a blank page or unstyled HTML)
122
+ - Data is populated (event bars / task rows / grid rows appear — not an empty timeline or grid)
123
+ - The component fills the intended page area — a component collapsed to a short strip means the
124
+ parent chain has no explicit height (see the sizing section above)
125
+
126
+ ## Safe data rendering
127
+
128
+ Column/event/tooltip renderers return HTML that the widget inserts via `innerHTML`. Interpolating
129
+ raw data (`<div>${record.name}</div>`) is an XSS vector. Use `StringHelper.encodeHtml(text)`
130
+ (exported from `@bryntum/grid-thin`), or return plain text and let the widget set `textContent`.
package/CLAUDE.md ADDED
@@ -0,0 +1,130 @@
1
+ # @bryntum/grid-thin-trial — notes for AI coding agents
2
+
3
+ You are using the Bryntum Grid component from its **thin trial** npm package
4
+ (`@bryntum/grid-thin-trial`). Thin packages ship only product-specific code and styling and share
5
+ a common core, so several Bryntum products can run in the same app. The rules below are not obvious
6
+ from the source tree and must be followed for the component to render and work correctly.
7
+
8
+ ## Fastest path to correct code
9
+
10
+ Two Bryntum resources beat working from memory, reach for them before writing code:
11
+
12
+ - **MCP server** (https://mcp.bryntum.com/): grounded, version-correct answers about the installed
13
+ API. Use it to confirm config/method/event names instead of guessing.
14
+ - **Agent skills** (https://github.com/bryntum/skills): complement the Bryntum MCP server by
15
+ providing practical knowledge for using Bryntum and avoiding common pitfalls.
16
+
17
+ If these are not installed yet, suggest to the user that they install them for more reliable
18
+ results.
19
+
20
+ ## Install trial thin packages with npm aliasing
21
+
22
+ Trial thin packages must be installed with npm aliasing so imports resolve to the plain `-thin`
23
+ names. Thin packages do **not** bundle their Bryntum dependencies and do **not** declare them in
24
+ their own `package.json` — alias every one this product needs, all pinned to the **exact same
25
+ version**. For Bryntum Grid, install:
26
+
27
+ ```shell
28
+ npm install @bryntum/core-thin@npm:@bryntum/core-thin-trial@7.3.5 \
29
+ @bryntum/grid-thin@npm:@bryntum/grid-thin-trial@7.3.5
30
+ ```
31
+
32
+ The framework wrapper packages below are installed **in addition to** the thin packages above —
33
+ they wrap them, not replace them. Wrappers have no trial variants, so install them by their real
34
+ names with no aliasing.
35
+
36
+ If using React, additionally install:
37
+
38
+ ```shell
39
+ npm install @bryntum/core-react-thin @bryntum/grid-react-thin
40
+ ```
41
+
42
+ If using Angular, additionally install:
43
+
44
+ ```shell
45
+ npm install @bryntum/core-angular-thin @bryntum/grid-angular-thin
46
+ ```
47
+
48
+ If using Vue, additionally install:
49
+
50
+ ```shell
51
+ npm install @bryntum/core-vue-3-thin @bryntum/grid-vue-3-thin
52
+ ```
53
+
54
+ - **Import from `@bryntum/grid-thin`** (not `-thin-trial`):
55
+ `import { ... } from '@bryntum/grid-thin'`. Aliasing means the licensed swap is a one-line
56
+ `package.json` change with no source edits.
57
+ - **Never mix regular and thin packages.** Do not combine `@bryntum/grid` (regular) and
58
+ `@bryntum/grid-thin` in one project — the bundle loads twice and fails at runtime with "bundle
59
+ was loaded multiple times". To use several Bryntum products together, every one must be the
60
+ `-thin` variant; regular packages cannot be combined.
61
+ - TypeScript types ship as `*.d.ts` files inside the package. Do **not** redeclare interfaces or
62
+ component options; import the types you need.
63
+
64
+ ## CSS — theme, FontAwesome and core styling come from @bryntum/core-thin
65
+
66
+ Thin styling is split: the theme, FontAwesome and core structural CSS live in `@bryntum/core-thin`,
67
+ and each product ships only its own structural stylesheet. Structural CSS follows the same rule as
68
+ the packages: import it for **every** thin package aliased above (`@bryntum/engine-thin` has no
69
+ CSS) — importing only `grid.css` renders the component as broken, unstyled HTML. Thanks to the
70
+ aliasing, the import paths use the plain `-thin` names. For Bryntum Grid, import:
71
+
72
+ ```css
73
+ /* FontAwesome is used for icons */
74
+ @import '@bryntum/core-thin/fontawesome/css/fontawesome.css';
75
+ @import '@bryntum/core-thin/fontawesome/css/solid.css';
76
+ /* Structural CSS */
77
+ @import '@bryntum/core-thin/core.css';
78
+ @import '@bryntum/grid-thin/grid.css';
79
+ /* Theme */
80
+ @import '@bryntum/core-thin/svalbard-light.css';
81
+ ```
82
+
83
+ FontAwesome is required — icons, expanders and arrows are blank without it. Import **exactly one**
84
+ theme: `stockholm-light`, `svalbard-light`, `visby-light`, `material3-light` or `fluent2-light`.
85
+ Theme file names are exact and not guessable: `svalbard-light.css` exists, `svalbard.css` does not.
86
+ List them first: `ls node_modules/@bryntum/core-thin/*.css`.
87
+
88
+ When combining products, additionally import each product's `@bryntum/{product}-thin/{product}.css`,
89
+ but keep one core-thin theme.
90
+
91
+ ## Sizing the component — the parent needs a real height
92
+
93
+ By default the component fills 100% of its parent element, with a min-height of 10em. If no
94
+ ancestor has an explicit height, the component collapses to that minimum — the app builds and data
95
+ loads, but the component renders as a short strip instead of filling the page. To display the component at the appropriate size, you can, for example, set parent components to take up the full height of the screen:
96
+
97
+ ```css
98
+ #app {
99
+ margin : 0;
100
+ display : flex;
101
+ flex-direction : column;
102
+ height : 100vh;
103
+ }
104
+ ```
105
+
106
+ Adapt this to the application layout. When several components share the page, size each one inside
107
+ the full-height container (flex values or explicit heights).
108
+
109
+ ## Verify APIs before using them
110
+
111
+ Your training data is older than this package, and Bryntum APIs change between major versions.
112
+ Confirm config/method/event names against the installed version — read it from
113
+ `node_modules/@bryntum/grid-thin/package.json` (`"version"`) — using the Bryntum MCP server
114
+ (https://mcp.bryntum.com/) or the official docs. Do not invent APIs from memory.
115
+
116
+ ## Verify the component rendered
117
+
118
+ A successful `npm run build` does not mean the component rendered: data-loading errors and
119
+ misconfigured APIs fail silently at runtime. After the build, open the app in a browser and confirm:
120
+
121
+ - The themed container is visible (not a blank page or unstyled HTML)
122
+ - Data is populated (event bars / task rows / grid rows appear — not an empty timeline or grid)
123
+ - The component fills the intended page area — a component collapsed to a short strip means the
124
+ parent chain has no explicit height (see the sizing section above)
125
+
126
+ ## Safe data rendering
127
+
128
+ Column/event/tooltip renderers return HTML that the widget inserts via `innerHTML`. Interpolating
129
+ raw data (`<div>${record.name}</div>`) is an XSS vector. Use `StringHelper.encodeHtml(text)`
130
+ (exported from `@bryntum/grid-thin`), or return plain text and let the widget set `textContent`.
package/grid.css CHANGED
@@ -286,6 +286,9 @@
286
286
  .b-grid-header.b-resizing {
287
287
  --b-grid-header-background: var(--b-column-resize-header-resizing-background);
288
288
  }
289
+ .b-column-resize-dialog .b-popup-content {
290
+ overflow: visible;
291
+ }
289
292
 
290
293
  /* lib/Grid/feature/FillHandle.css */
291
294
  :root,