handsontable 16.1.1-next-895fbb8-20250923 → 16.2.0-next-216dbd0-20251112

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 (301) hide show
  1. package/3rdparty/walkontable/src/overlays.js +1 -1
  2. package/3rdparty/walkontable/src/overlays.mjs +1 -1
  3. package/3rdparty/walkontable/src/selection/border/border.js +19 -3
  4. package/3rdparty/walkontable/src/selection/border/border.mjs +19 -3
  5. package/CHANGELOG.md +40 -0
  6. package/base.js +2 -2
  7. package/base.mjs +2 -2
  8. package/core/coordsMapper/index.js +11 -0
  9. package/core/coordsMapper/index.mjs +1 -0
  10. package/core/hooks/bucket.js +7 -1
  11. package/core/hooks/bucket.mjs +7 -1
  12. package/core/hooks/constants.js +54 -0
  13. package/core/hooks/constants.mjs +54 -0
  14. package/core/hooks/index.d.ts +6 -0
  15. package/core/index.js +10 -4
  16. package/core/index.mjs +2 -1
  17. package/core.d.ts +3 -2
  18. package/core.js +67 -26
  19. package/core.mjs +56 -15
  20. package/dataMap/metaManager/metaSchema.js +197 -20
  21. package/dataMap/metaManager/metaSchema.mjs +197 -20
  22. package/dist/handsontable.css +175 -3
  23. package/dist/handsontable.full.css +175 -3
  24. package/dist/handsontable.full.js +10940 -8445
  25. package/dist/handsontable.full.min.css +5 -4
  26. package/dist/handsontable.full.min.js +193 -192
  27. package/dist/handsontable.js +6472 -4116
  28. package/dist/handsontable.min.css +4 -4
  29. package/dist/handsontable.min.js +43 -42
  30. package/dist/languages/all.js +168 -21
  31. package/dist/languages/all.min.js +1 -1
  32. package/dist/languages/ar-AR.js +8 -1
  33. package/dist/languages/ar-AR.min.js +1 -1
  34. package/dist/languages/cs-CZ.js +8 -1
  35. package/dist/languages/cs-CZ.min.js +1 -1
  36. package/dist/languages/de-CH.js +8 -1
  37. package/dist/languages/de-CH.min.js +1 -1
  38. package/dist/languages/de-DE.js +8 -1
  39. package/dist/languages/de-DE.min.js +1 -1
  40. package/dist/languages/en-US.js +8 -1
  41. package/dist/languages/en-US.min.js +1 -1
  42. package/dist/languages/es-MX.js +8 -1
  43. package/dist/languages/es-MX.min.js +1 -1
  44. package/dist/languages/fa-IR.js +8 -1
  45. package/dist/languages/fa-IR.min.js +1 -1
  46. package/dist/languages/fr-FR.js +8 -1
  47. package/dist/languages/fr-FR.min.js +1 -1
  48. package/dist/languages/hr-HR.js +8 -1
  49. package/dist/languages/hr-HR.min.js +1 -1
  50. package/dist/languages/it-IT.js +8 -1
  51. package/dist/languages/it-IT.min.js +1 -1
  52. package/dist/languages/ja-JP.js +8 -1
  53. package/dist/languages/ja-JP.min.js +1 -1
  54. package/dist/languages/ko-KR.js +8 -1
  55. package/dist/languages/ko-KR.min.js +1 -1
  56. package/dist/languages/lv-LV.js +8 -1
  57. package/dist/languages/lv-LV.min.js +1 -1
  58. package/dist/languages/nb-NO.js +8 -1
  59. package/dist/languages/nb-NO.min.js +1 -1
  60. package/dist/languages/nl-NL.js +8 -1
  61. package/dist/languages/nl-NL.min.js +1 -1
  62. package/dist/languages/pl-PL.js +8 -1
  63. package/dist/languages/pl-PL.min.js +1 -1
  64. package/dist/languages/pt-BR.js +8 -1
  65. package/dist/languages/pt-BR.min.js +1 -1
  66. package/dist/languages/ru-RU.js +8 -1
  67. package/dist/languages/ru-RU.min.js +1 -1
  68. package/dist/languages/sr-SP.js +8 -1
  69. package/dist/languages/sr-SP.min.js +1 -1
  70. package/dist/languages/zh-CN.js +8 -1
  71. package/dist/languages/zh-CN.min.js +1 -1
  72. package/dist/languages/zh-TW.js +8 -1
  73. package/dist/languages/zh-TW.min.js +1 -1
  74. package/editors/autocompleteEditor/autocompleteEditor.js +21 -1
  75. package/editors/autocompleteEditor/autocompleteEditor.mjs +22 -2
  76. package/focusManager/constants.js +25 -0
  77. package/focusManager/constants.mjs +22 -0
  78. package/focusManager/eventListener.js +107 -0
  79. package/focusManager/eventListener.mjs +103 -0
  80. package/{focusManager.d.ts → focusManager/grid.d.ts} +1 -1
  81. package/{focusManager.js → focusManager/grid.js} +48 -17
  82. package/{focusManager.mjs → focusManager/grid.mjs} +47 -16
  83. package/focusManager/index.d.ts +2 -0
  84. package/focusManager/index.js +20 -0
  85. package/focusManager/index.mjs +20 -0
  86. package/focusManager/scope.js +133 -0
  87. package/focusManager/scope.mjs +129 -0
  88. package/focusManager/scopeManager.d.ts +19 -0
  89. package/focusManager/scopeManager.js +268 -0
  90. package/focusManager/scopeManager.mjs +263 -0
  91. package/focusManager/scopes/grid.js +120 -0
  92. package/focusManager/scopes/grid.mjs +116 -0
  93. package/focusManager/scopes/index.js +13 -0
  94. package/focusManager/scopes/index.mjs +9 -0
  95. package/{utils → focusManager/utils}/focusDetector.js +21 -31
  96. package/{utils → focusManager/utils}/focusDetector.mjs +21 -31
  97. package/focusManager/utils/utils.js +95 -0
  98. package/focusManager/utils/utils.mjs +89 -0
  99. package/helpers/dom/element.js +1 -1
  100. package/helpers/dom/element.mjs +2 -2
  101. package/helpers/dom/event.js +1 -1
  102. package/helpers/dom/event.mjs +1 -1
  103. package/helpers/mixed.js +2 -65
  104. package/helpers/mixed.mjs +2 -63
  105. package/i18n/constants.js +10 -1
  106. package/i18n/constants.mjs +10 -1
  107. package/i18n/languages/ar-AR.js +8 -1
  108. package/i18n/languages/ar-AR.mjs +8 -1
  109. package/i18n/languages/cs-CZ.js +8 -1
  110. package/i18n/languages/cs-CZ.mjs +8 -1
  111. package/i18n/languages/de-CH.js +8 -1
  112. package/i18n/languages/de-CH.mjs +8 -1
  113. package/i18n/languages/de-DE.js +8 -1
  114. package/i18n/languages/de-DE.mjs +8 -1
  115. package/i18n/languages/en-US.js +8 -1
  116. package/i18n/languages/en-US.mjs +8 -1
  117. package/i18n/languages/es-MX.js +8 -1
  118. package/i18n/languages/es-MX.mjs +8 -1
  119. package/i18n/languages/fa-IR.js +8 -1
  120. package/i18n/languages/fa-IR.mjs +8 -1
  121. package/i18n/languages/fr-FR.js +8 -1
  122. package/i18n/languages/fr-FR.mjs +8 -1
  123. package/i18n/languages/hr-HR.js +8 -1
  124. package/i18n/languages/hr-HR.mjs +8 -1
  125. package/i18n/languages/it-IT.js +8 -1
  126. package/i18n/languages/it-IT.mjs +8 -1
  127. package/i18n/languages/ja-JP.js +8 -1
  128. package/i18n/languages/ja-JP.mjs +8 -1
  129. package/i18n/languages/ko-KR.js +8 -1
  130. package/i18n/languages/ko-KR.mjs +8 -1
  131. package/i18n/languages/lv-LV.js +8 -1
  132. package/i18n/languages/lv-LV.mjs +8 -1
  133. package/i18n/languages/nb-NO.js +8 -1
  134. package/i18n/languages/nb-NO.mjs +8 -1
  135. package/i18n/languages/nl-NL.js +8 -1
  136. package/i18n/languages/nl-NL.mjs +8 -1
  137. package/i18n/languages/pl-PL.js +8 -1
  138. package/i18n/languages/pl-PL.mjs +8 -1
  139. package/i18n/languages/pt-BR.js +8 -1
  140. package/i18n/languages/pt-BR.mjs +8 -1
  141. package/i18n/languages/ru-RU.js +8 -1
  142. package/i18n/languages/ru-RU.mjs +8 -1
  143. package/i18n/languages/sr-SP.js +8 -1
  144. package/i18n/languages/sr-SP.mjs +8 -1
  145. package/i18n/languages/zh-CN.js +8 -1
  146. package/i18n/languages/zh-CN.mjs +8 -1
  147. package/i18n/languages/zh-TW.js +8 -1
  148. package/i18n/languages/zh-TW.mjs +8 -1
  149. package/index.d.ts +9 -0
  150. package/languages/all.js +168 -21
  151. package/languages/ar-AR.js +8 -1
  152. package/languages/ar-AR.mjs +8 -1
  153. package/languages/cs-CZ.js +8 -1
  154. package/languages/cs-CZ.mjs +8 -1
  155. package/languages/de-CH.js +8 -1
  156. package/languages/de-CH.mjs +8 -1
  157. package/languages/de-DE.js +8 -1
  158. package/languages/de-DE.mjs +8 -1
  159. package/languages/en-US.js +8 -1
  160. package/languages/en-US.mjs +8 -1
  161. package/languages/es-MX.js +8 -1
  162. package/languages/es-MX.mjs +8 -1
  163. package/languages/fa-IR.js +8 -1
  164. package/languages/fa-IR.mjs +8 -1
  165. package/languages/fr-FR.js +8 -1
  166. package/languages/fr-FR.mjs +8 -1
  167. package/languages/hr-HR.js +8 -1
  168. package/languages/hr-HR.mjs +8 -1
  169. package/languages/index.js +168 -21
  170. package/languages/it-IT.js +8 -1
  171. package/languages/it-IT.mjs +8 -1
  172. package/languages/ja-JP.js +8 -1
  173. package/languages/ja-JP.mjs +8 -1
  174. package/languages/ko-KR.js +8 -1
  175. package/languages/ko-KR.mjs +8 -1
  176. package/languages/lv-LV.js +8 -1
  177. package/languages/lv-LV.mjs +8 -1
  178. package/languages/nb-NO.js +8 -1
  179. package/languages/nb-NO.mjs +8 -1
  180. package/languages/nl-NL.js +8 -1
  181. package/languages/nl-NL.mjs +8 -1
  182. package/languages/pl-PL.js +8 -1
  183. package/languages/pl-PL.mjs +8 -1
  184. package/languages/pt-BR.js +8 -1
  185. package/languages/pt-BR.mjs +8 -1
  186. package/languages/ru-RU.js +8 -1
  187. package/languages/ru-RU.mjs +8 -1
  188. package/languages/sr-SP.js +8 -1
  189. package/languages/sr-SP.mjs +8 -1
  190. package/languages/zh-CN.js +8 -1
  191. package/languages/zh-CN.mjs +8 -1
  192. package/languages/zh-TW.js +8 -1
  193. package/languages/zh-TW.mjs +8 -1
  194. package/package.json +25 -7
  195. package/plugins/autoRowSize/autoRowSize.js +8 -1
  196. package/plugins/autoRowSize/autoRowSize.mjs +8 -1
  197. package/plugins/base/base.js +36 -10
  198. package/plugins/base/base.mjs +36 -10
  199. package/plugins/columnSummary/columnSummary.d.ts +2 -2
  200. package/plugins/columnSummary/columnSummary.js +44 -10
  201. package/plugins/columnSummary/columnSummary.mjs +44 -10
  202. package/plugins/columnSummary/endpoints.js +15 -13
  203. package/plugins/columnSummary/endpoints.mjs +15 -13
  204. package/plugins/columnSummary/utils.js +31 -0
  205. package/plugins/columnSummary/utils.mjs +30 -0
  206. package/plugins/customBorders/customBorders.d.ts +1 -0
  207. package/plugins/customBorders/customBorders.js +32 -2
  208. package/plugins/customBorders/customBorders.mjs +32 -2
  209. package/plugins/dialog/constants.js +7 -0
  210. package/plugins/dialog/constants.mjs +4 -0
  211. package/plugins/dialog/dialog.d.ts +22 -2
  212. package/plugins/dialog/dialog.js +197 -81
  213. package/plugins/dialog/dialog.mjs +196 -81
  214. package/plugins/dialog/templates/base.js +60 -0
  215. package/plugins/dialog/templates/base.mjs +56 -0
  216. package/plugins/dialog/templates/confirm.js +106 -0
  217. package/plugins/dialog/templates/confirm.mjs +102 -0
  218. package/plugins/dialog/templates/index.js +6 -0
  219. package/plugins/dialog/templates/index.mjs +4 -0
  220. package/plugins/dialog/ui.js +125 -41
  221. package/plugins/dialog/ui.mjs +119 -35
  222. package/plugins/emptyDataState/emptyDataState.d.ts +24 -0
  223. package/plugins/emptyDataState/emptyDataState.js +526 -0
  224. package/plugins/emptyDataState/emptyDataState.mjs +521 -0
  225. package/plugins/emptyDataState/index.d.ts +1 -0
  226. package/plugins/emptyDataState/index.js +7 -0
  227. package/plugins/emptyDataState/index.mjs +1 -0
  228. package/plugins/emptyDataState/ui.js +282 -0
  229. package/plugins/emptyDataState/ui.mjs +278 -0
  230. package/plugins/filters/component/value.js +16 -1
  231. package/plugins/filters/component/value.mjs +16 -1
  232. package/plugins/filters/filters.d.ts +5 -1
  233. package/plugins/filters/filters.js +22 -1
  234. package/plugins/filters/filters.mjs +22 -1
  235. package/plugins/filters/ui/multipleSelect.js +90 -79
  236. package/plugins/filters/ui/multipleSelect.mjs +90 -79
  237. package/plugins/index.d.ts +3 -0
  238. package/plugins/index.js +3 -0
  239. package/plugins/index.mjs +3 -1
  240. package/plugins/mergeCells/utils.js +1 -5
  241. package/plugins/mergeCells/utils.mjs +1 -5
  242. package/plugins/pagination/pagination.js +37 -175
  243. package/plugins/pagination/pagination.mjs +37 -175
  244. package/plugins/pagination/strategies/autoPageSize.js +2 -2
  245. package/plugins/pagination/strategies/autoPageSize.mjs +2 -2
  246. package/plugins/pagination/ui.js +6 -10
  247. package/plugins/pagination/ui.mjs +7 -11
  248. package/plugins/stretchColumns/calculator.js +3 -1
  249. package/plugins/stretchColumns/calculator.mjs +3 -1
  250. package/plugins/undoRedo/undoRedo.js +16 -6
  251. package/plugins/undoRedo/undoRedo.mjs +16 -5
  252. package/renderers/checkboxRenderer/checkboxRenderer.js +12 -15
  253. package/renderers/checkboxRenderer/checkboxRenderer.mjs +12 -15
  254. package/selection/selection.js +1 -1
  255. package/selection/selection.mjs +1 -1
  256. package/settings.d.ts +3 -0
  257. package/shortcutContexts/commands/index.js +2 -1
  258. package/shortcutContexts/commands/index.mjs +2 -1
  259. package/shortcutContexts/commands/tabNavigation.js +51 -0
  260. package/shortcutContexts/commands/tabNavigation.mjs +48 -0
  261. package/shortcutContexts/constants.js +16 -1
  262. package/shortcutContexts/constants.mjs +16 -1
  263. package/shortcutContexts/editor.js +2 -2
  264. package/shortcutContexts/editor.mjs +3 -3
  265. package/shortcutContexts/grid.js +19 -3
  266. package/shortcutContexts/grid.mjs +20 -4
  267. package/shortcuts/manager.d.ts +1 -0
  268. package/shortcuts/manager.js +17 -2
  269. package/shortcuts/manager.mjs +17 -2
  270. package/styles/handsontable.css +192 -35
  271. package/styles/handsontable.min.css +3 -3
  272. package/styles/ht-icons-horizon.css +233 -0
  273. package/styles/ht-icons-horizon.min.css +30 -0
  274. package/styles/ht-icons-main.css +233 -0
  275. package/styles/ht-icons-main.min.css +30 -0
  276. package/styles/ht-theme-classic-no-icons.css +399 -0
  277. package/styles/ht-theme-classic-no-icons.min.css +30 -0
  278. package/styles/ht-theme-classic.css +308 -556
  279. package/styles/ht-theme-classic.min.css +3 -3
  280. package/styles/ht-theme-horizon-no-icons.css +405 -0
  281. package/styles/ht-theme-horizon-no-icons.min.css +30 -0
  282. package/styles/ht-theme-horizon.css +312 -556
  283. package/styles/ht-theme-horizon.min.css +3 -3
  284. package/styles/ht-theme-main-no-icons.css +396 -0
  285. package/styles/ht-theme-main-no-icons.min.css +30 -0
  286. package/styles/ht-theme-main.css +303 -556
  287. package/styles/ht-theme-main.min.css +3 -3
  288. package/tableView.js +23 -5
  289. package/tableView.mjs +23 -5
  290. package/utils/dataStructures/uniqueMap.js +10 -0
  291. package/utils/dataStructures/uniqueMap.mjs +10 -0
  292. package/utils/ghostTable.js +0 -3
  293. package/utils/ghostTable.mjs +0 -3
  294. package/utils/stylesHandler.js +19 -4
  295. package/utils/stylesHandler.mjs +19 -4
  296. package/core/focusCatcher/index.js +0 -131
  297. package/core/focusCatcher/index.mjs +0 -127
  298. package/core/focusCatcher/utils.js +0 -31
  299. package/core/focusCatcher/utils.mjs +0 -27
  300. package/plugins/pagination/focusController.js +0 -27
  301. package/plugins/pagination/focusController.mjs +0 -23
@@ -26,8 +26,8 @@
26
26
  * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
27
27
  * USE OR INABILITY TO USE THIS SOFTWARE.
28
28
  *
29
- * Version: 16.1.1-next-895fbb8-20250923
30
- * Release date: 23/09/2025 (built at 23/09/2025 08:54:42)
29
+ * Version: 16.2.0-next-216dbd0-20251112
30
+ * Release date: 19/11/2025 (built at 12/11/2025 14:05:34)
31
31
  */
32
32
  /**
33
33
  * Fix for bootstrap styles
@@ -91,6 +91,11 @@
91
91
  padding-right: 0;
92
92
  }
93
93
 
94
+ .handsontable.ht-wrapper {
95
+ height: 100%;
96
+ width: 100%;
97
+ }
98
+
94
99
  .handsontable .table-striped > tbody > tr:nth-of-type(even) {
95
100
  background-color: #FFF;
96
101
  }
@@ -325,6 +330,35 @@ innerBorderBottom - Property controlled by bottom overlay
325
330
  cursor: crosshair;
326
331
  }
327
332
 
333
+ /* dashed borders */
334
+ .htBorders .wtBorder.ht-border-style-dashed-vertical {
335
+ background-image: repeating-linear-gradient(
336
+ to bottom,
337
+ var(--ht-custom-border-color) 0 5px,
338
+ transparent 0 10px
339
+ );
340
+ }
341
+
342
+ .htBorders .wtBorder.ht-border-style-dashed-horizontal {
343
+ background-image: repeating-linear-gradient(
344
+ to right,
345
+ var(--ht-custom-border-color) 0 5px,
346
+ transparent 0 10px
347
+ );
348
+ }
349
+
350
+ .htBorders .wtBorder.ht-border-style-dotted-horizontal {
351
+ background-image: radial-gradient(circle, var(--ht-custom-border-color) calc(var(--ht-custom-border-size) / 2), transparent 0);
352
+ background-size: calc(var(--ht-custom-border-size) * 2) var(--ht-custom-border-size);
353
+ background-repeat: repeat-x;
354
+ }
355
+
356
+ .htBorders .wtBorder.ht-border-style-dotted-vertical {
357
+ background-image: radial-gradient(circle, var(--ht-custom-border-color) calc(var(--ht-custom-border-size) / 2), transparent 0);
358
+ background-size: var(--ht-custom-border-size) calc(var(--ht-custom-border-size) * 2);
359
+ background-repeat: repeat-y;
360
+ }
361
+
328
362
  .ht_clone_master {
329
363
  z-index: 100;
330
364
  }
@@ -435,7 +469,7 @@ innerBorderBottom - Property controlled by bottom overlay
435
469
  font-size: 10px;
436
470
  }
437
471
 
438
- .ht-root-wrapper .htFocusCatcher {
472
+ .htFocusCatcher {
439
473
  position: absolute;
440
474
  z-index: -1;
441
475
  opacity: 0;
@@ -2193,6 +2227,57 @@ thead th.hiddenHeaderText .colHeader {
2193
2227
  background-color: #f7f7f9;
2194
2228
  }
2195
2229
 
2230
+ .ht-dialog--confirm .ht-dialog__content-wrapper {
2231
+ text-align: center;
2232
+ }
2233
+
2234
+ .ht-dialog--confirm .ht-dialog__content-wrapper-inner {
2235
+ display: flex;
2236
+ flex-direction: column;
2237
+ align-items: center;
2238
+ justify-content: center;
2239
+ gap: 8px;
2240
+ max-width: 480px;
2241
+ }
2242
+
2243
+ .ht-dialog--confirm .ht-dialog__content-wrapper-inner--background {
2244
+ box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08);
2245
+ background-color: #f7f7f9;
2246
+ }
2247
+
2248
+ .ht-dialog--confirm .ht-dialog__content {
2249
+ display: flex;
2250
+ flex-direction: column;
2251
+ align-items: center;
2252
+ justify-content: center;
2253
+ }
2254
+
2255
+ .ht-dialog--confirm .ht-dialog__content:has(.ht-dialog__buttons) {
2256
+ gap: 4px;
2257
+ }
2258
+
2259
+ .ht-dialog--confirm .ht-dialog__title {
2260
+ margin: 0;
2261
+ font-size: 16px;
2262
+ font-weight: 400;
2263
+ line-height: 24px;
2264
+ }
2265
+
2266
+ .ht-dialog--confirm .ht-dialog__description {
2267
+ margin: 0;
2268
+ color: #222;
2269
+ font-size: 12px;
2270
+ font-weight: 400;
2271
+ line-height: 16px;
2272
+ }
2273
+
2274
+ .ht-dialog--confirm .ht-dialog__buttons {
2275
+ display: flex;
2276
+ flex-direction: row;
2277
+ flex-wrap: wrap;
2278
+ gap: 8px;
2279
+ }
2280
+
2196
2281
  .ht-root-wrapper .ht-pagination {
2197
2282
  color: #222;
2198
2283
  background: #f0f0f0;
@@ -2376,3 +2461,90 @@ thead th.hiddenHeaderText .colHeader {
2376
2461
  transform: rotate(360deg);
2377
2462
  }
2378
2463
  }
2464
+
2465
+ .ht-empty-data-state {
2466
+ display: none;
2467
+ position: absolute;
2468
+ width: 100%;
2469
+ left: 0;
2470
+ z-index: 999;
2471
+ overflow-y: auto;
2472
+ border: 1px solid #ccc;
2473
+ box-sizing: border-box;
2474
+ }
2475
+
2476
+ .ht-empty-data-state * {
2477
+ box-sizing: border-box !important;
2478
+ }
2479
+
2480
+ .ht-empty-data-state__content-wrapper {
2481
+ display: flex;
2482
+ align-items: center;
2483
+ justify-content: center;
2484
+ text-align: center;
2485
+ width: 100%;
2486
+ min-height: 100%;
2487
+ padding: 16px;
2488
+ }
2489
+
2490
+ .ht-empty-data-state__content-wrapper-inner {
2491
+ display: flex;
2492
+ flex-direction: column;
2493
+ align-items: center;
2494
+ justify-content: center;
2495
+ max-width: 480px;
2496
+ padding: 16px;
2497
+ }
2498
+
2499
+ .ht-empty-data-state__content-wrapper-inner:focus {
2500
+ outline: none;
2501
+ box-shadow: 0 0 0 1px #4b89ff;
2502
+ }
2503
+
2504
+ .ht-empty-data-state__content {
2505
+ display: flex;
2506
+ flex-direction: column;
2507
+ align-items: center;
2508
+ justify-content: center;
2509
+ gap: 4px;
2510
+ }
2511
+
2512
+ .ht-empty-data-state__title {
2513
+ margin: 0;
2514
+ font-size: 16px;
2515
+ font-weight: 400;
2516
+ line-height: 24px;
2517
+ }
2518
+
2519
+ .ht-empty-data-state__description {
2520
+ margin: 0;
2521
+ color: #222;
2522
+ font-size: 12px;
2523
+ line-height: 16px;
2524
+ font-weight: 400;
2525
+ }
2526
+
2527
+ .ht-empty-data-state__buttons {
2528
+ display: flex;
2529
+ justify-content: center;
2530
+ flex-direction: row;
2531
+ flex-wrap: wrap;
2532
+ gap: 8px;
2533
+ }
2534
+
2535
+ .ht-empty-data-state__buttons--has-buttons {
2536
+ margin-top: 8px;
2537
+ }
2538
+
2539
+ .ht-empty-data-state--disable-top-border {
2540
+ border-top-width: 0;
2541
+ }
2542
+
2543
+ .ht-empty-data-state--disable-inline-border {
2544
+ border-inline-start-width: 0;
2545
+ }
2546
+
2547
+ .ht-empty-data-state--disable-bottom-border, .ht-empty-data-state:has(~ .ht-pagination) {
2548
+ border-bottom-width: 0;
2549
+ }
2550
+
@@ -26,8 +26,8 @@
26
26
  * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
27
27
  * USE OR INABILITY TO USE THIS SOFTWARE.
28
28
  *
29
- * Version: 16.1.1-next-895fbb8-20250923
30
- * Release date: 23/09/2025 (built at 23/09/2025 08:54:42)
29
+ * Version: 16.2.0-next-216dbd0-20251112
30
+ * Release date: 19/11/2025 (built at 12/11/2025 14:05:34)
31
31
  */
32
32
  /**
33
33
  * Fix for bootstrap styles
@@ -91,6 +91,11 @@
91
91
  padding-right: 0;
92
92
  }
93
93
 
94
+ .handsontable.ht-wrapper {
95
+ height: 100%;
96
+ width: 100%;
97
+ }
98
+
94
99
  .handsontable .table-striped > tbody > tr:nth-of-type(even) {
95
100
  background-color: #FFF;
96
101
  }
@@ -325,6 +330,35 @@ innerBorderBottom - Property controlled by bottom overlay
325
330
  cursor: crosshair;
326
331
  }
327
332
 
333
+ /* dashed borders */
334
+ .htBorders .wtBorder.ht-border-style-dashed-vertical {
335
+ background-image: repeating-linear-gradient(
336
+ to bottom,
337
+ var(--ht-custom-border-color) 0 5px,
338
+ transparent 0 10px
339
+ );
340
+ }
341
+
342
+ .htBorders .wtBorder.ht-border-style-dashed-horizontal {
343
+ background-image: repeating-linear-gradient(
344
+ to right,
345
+ var(--ht-custom-border-color) 0 5px,
346
+ transparent 0 10px
347
+ );
348
+ }
349
+
350
+ .htBorders .wtBorder.ht-border-style-dotted-horizontal {
351
+ background-image: radial-gradient(circle, var(--ht-custom-border-color) calc(var(--ht-custom-border-size) / 2), transparent 0);
352
+ background-size: calc(var(--ht-custom-border-size) * 2) var(--ht-custom-border-size);
353
+ background-repeat: repeat-x;
354
+ }
355
+
356
+ .htBorders .wtBorder.ht-border-style-dotted-vertical {
357
+ background-image: radial-gradient(circle, var(--ht-custom-border-color) calc(var(--ht-custom-border-size) / 2), transparent 0);
358
+ background-size: var(--ht-custom-border-size) calc(var(--ht-custom-border-size) * 2);
359
+ background-repeat: repeat-y;
360
+ }
361
+
328
362
  .ht_clone_master {
329
363
  z-index: 100;
330
364
  }
@@ -435,7 +469,7 @@ innerBorderBottom - Property controlled by bottom overlay
435
469
  font-size: 10px;
436
470
  }
437
471
 
438
- .ht-root-wrapper .htFocusCatcher {
472
+ .htFocusCatcher {
439
473
  position: absolute;
440
474
  z-index: -1;
441
475
  opacity: 0;
@@ -2193,6 +2227,57 @@ thead th.hiddenHeaderText .colHeader {
2193
2227
  background-color: #f7f7f9;
2194
2228
  }
2195
2229
 
2230
+ .ht-dialog--confirm .ht-dialog__content-wrapper {
2231
+ text-align: center;
2232
+ }
2233
+
2234
+ .ht-dialog--confirm .ht-dialog__content-wrapper-inner {
2235
+ display: flex;
2236
+ flex-direction: column;
2237
+ align-items: center;
2238
+ justify-content: center;
2239
+ gap: 8px;
2240
+ max-width: 480px;
2241
+ }
2242
+
2243
+ .ht-dialog--confirm .ht-dialog__content-wrapper-inner--background {
2244
+ box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08);
2245
+ background-color: #f7f7f9;
2246
+ }
2247
+
2248
+ .ht-dialog--confirm .ht-dialog__content {
2249
+ display: flex;
2250
+ flex-direction: column;
2251
+ align-items: center;
2252
+ justify-content: center;
2253
+ }
2254
+
2255
+ .ht-dialog--confirm .ht-dialog__content:has(.ht-dialog__buttons) {
2256
+ gap: 4px;
2257
+ }
2258
+
2259
+ .ht-dialog--confirm .ht-dialog__title {
2260
+ margin: 0;
2261
+ font-size: 16px;
2262
+ font-weight: 400;
2263
+ line-height: 24px;
2264
+ }
2265
+
2266
+ .ht-dialog--confirm .ht-dialog__description {
2267
+ margin: 0;
2268
+ color: #222;
2269
+ font-size: 12px;
2270
+ font-weight: 400;
2271
+ line-height: 16px;
2272
+ }
2273
+
2274
+ .ht-dialog--confirm .ht-dialog__buttons {
2275
+ display: flex;
2276
+ flex-direction: row;
2277
+ flex-wrap: wrap;
2278
+ gap: 8px;
2279
+ }
2280
+
2196
2281
  .ht-root-wrapper .ht-pagination {
2197
2282
  color: #222;
2198
2283
  background: #f0f0f0;
@@ -2376,6 +2461,93 @@ thead th.hiddenHeaderText .colHeader {
2376
2461
  transform: rotate(360deg);
2377
2462
  }
2378
2463
  }
2464
+
2465
+ .ht-empty-data-state {
2466
+ display: none;
2467
+ position: absolute;
2468
+ width: 100%;
2469
+ left: 0;
2470
+ z-index: 999;
2471
+ overflow-y: auto;
2472
+ border: 1px solid #ccc;
2473
+ box-sizing: border-box;
2474
+ }
2475
+
2476
+ .ht-empty-data-state * {
2477
+ box-sizing: border-box !important;
2478
+ }
2479
+
2480
+ .ht-empty-data-state__content-wrapper {
2481
+ display: flex;
2482
+ align-items: center;
2483
+ justify-content: center;
2484
+ text-align: center;
2485
+ width: 100%;
2486
+ min-height: 100%;
2487
+ padding: 16px;
2488
+ }
2489
+
2490
+ .ht-empty-data-state__content-wrapper-inner {
2491
+ display: flex;
2492
+ flex-direction: column;
2493
+ align-items: center;
2494
+ justify-content: center;
2495
+ max-width: 480px;
2496
+ padding: 16px;
2497
+ }
2498
+
2499
+ .ht-empty-data-state__content-wrapper-inner:focus {
2500
+ outline: none;
2501
+ box-shadow: 0 0 0 1px #4b89ff;
2502
+ }
2503
+
2504
+ .ht-empty-data-state__content {
2505
+ display: flex;
2506
+ flex-direction: column;
2507
+ align-items: center;
2508
+ justify-content: center;
2509
+ gap: 4px;
2510
+ }
2511
+
2512
+ .ht-empty-data-state__title {
2513
+ margin: 0;
2514
+ font-size: 16px;
2515
+ font-weight: 400;
2516
+ line-height: 24px;
2517
+ }
2518
+
2519
+ .ht-empty-data-state__description {
2520
+ margin: 0;
2521
+ color: #222;
2522
+ font-size: 12px;
2523
+ line-height: 16px;
2524
+ font-weight: 400;
2525
+ }
2526
+
2527
+ .ht-empty-data-state__buttons {
2528
+ display: flex;
2529
+ justify-content: center;
2530
+ flex-direction: row;
2531
+ flex-wrap: wrap;
2532
+ gap: 8px;
2533
+ }
2534
+
2535
+ .ht-empty-data-state__buttons--has-buttons {
2536
+ margin-top: 8px;
2537
+ }
2538
+
2539
+ .ht-empty-data-state--disable-top-border {
2540
+ border-top-width: 0;
2541
+ }
2542
+
2543
+ .ht-empty-data-state--disable-inline-border {
2544
+ border-inline-start-width: 0;
2545
+ }
2546
+
2547
+ .ht-empty-data-state--disable-bottom-border, .ht-empty-data-state:has(~ .ht-pagination) {
2548
+ border-bottom-width: 0;
2549
+ }
2550
+
2379
2551
  /*!
2380
2552
  * Pikaday
2381
2553
  * Copyright © 2014 David Bushell | BSD & MIT license | https://dbushell.com/