twico-ui 1.24.0 → 1.25.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  All notable changes to Twico UI are documented here (newest first). This file is generated automatically on each release by [semantic-release](https://semantic-release.gitbook.io/) from [Conventional Commits](https://www.conventionalcommits.org/) — do not edit it by hand. The same notes appear on each [GitHub Release](https://github.com/EncryptionL/twico-ui/releases).
4
4
 
5
+ # [1.25.0](https://github.com/EncryptionL/twico-ui/compare/v1.24.0...v1.25.0) (2026-08-03)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **datatable:** commit the default cell editor value on click-away instead of discarding ([#313](https://github.com/EncryptionL/twico-ui/issues/313)) ([08c0050](https://github.com/EncryptionL/twico-ui/commit/08c00501fc20a4deb5e0bf35be0ab9aa46a7c477))
11
+
12
+
13
+ ### Features
14
+
15
+ * **datatable:** default resizablePopovers to true; decouple it from resizableFilters ([#314](https://github.com/EncryptionL/twico-ui/issues/314)) ([c509956](https://github.com/EncryptionL/twico-ui/commit/c509956b11648e6d138777843514ff9a5ec09e85)), closes [#304](https://github.com/EncryptionL/twico-ui/issues/304) [#292](https://github.com/EncryptionL/twico-ui/issues/292)
16
+
5
17
  # [1.24.0](https://github.com/EncryptionL/twico-ui/compare/v1.23.0...v1.24.0) (2026-07-31)
6
18
 
7
19
 
package/dist/index.cjs CHANGED
@@ -9180,7 +9180,8 @@ function Datatable({
9180
9180
  onQuickFilterChange,
9181
9181
  toolbarActions,
9182
9182
  resizableFilters = true,
9183
- resizablePopovers = false,
9183
+ resizablePopovers = true,
9184
+ // #314: default-on (matches resizableFilters) — set false to opt a grid out
9184
9185
  filterFieldMaxWidth,
9185
9186
  rowPinning = false,
9186
9187
  rowReorder = false,
@@ -10443,7 +10444,9 @@ function Datatable({
10443
10444
  if (!editing) return;
10444
10445
  const onDown = (e) => {
10445
10446
  if (e.target.closest(".twc-dt__editor-wrap") || e.target.closest(".twc-pop")) return;
10446
- setEditing(null);
10447
+ const col = colByField[editing.field];
10448
+ if (col && col.renderEditCell) setEditing(null);
10449
+ else commitEdit();
10447
10450
  };
10448
10451
  document.addEventListener("mousedown", onDown, true);
10449
10452
  return () => document.removeEventListener("mousedown", onDown, true);
@@ -10777,7 +10780,7 @@ function Datatable({
10777
10780
  }
10778
10781
  }
10779
10782
  ) : null;
10780
- const fieldHandle = (field, rowIdx) => (resizableFilters || resizablePopovers) && rowIdx === 0 ? /* @__PURE__ */ jsxRuntime.jsx(
10783
+ const fieldHandle = (field, rowIdx) => resizableFilters && rowIdx === 0 ? /* @__PURE__ */ jsxRuntime.jsx(
10781
10784
  "span",
10782
10785
  {
10783
10786
  className: "twc-dt__f-rz",
@@ -12191,7 +12194,7 @@ function Datatable({
12191
12194
  /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: "twc-dt__flogic-btn", "data-active": filterLogic === "and" || void 0, "aria-pressed": filterLogic === "and", onClick: () => setFilterLogic("and"), children: "AND" }),
12192
12195
  /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: "twc-dt__flogic-btn", "data-active": filterLogic === "or" || void 0, "aria-pressed": filterLogic === "or", onClick: () => setFilterLogic("or"), children: "OR" })
12193
12196
  ] }) : null,
12194
- (resizableFilters || resizablePopovers) && hasFilterSizeOverride ? /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: "twc-dt__link", onClick: resetFilterSizes, children: "Reset sizes" }) : null,
12197
+ resizableFilters && hasFilterSizeOverride ? /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: "twc-dt__link", onClick: resetFilterSizes, children: "Reset sizes" }) : null,
12195
12198
  filters.length ? /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: "twc-dt__link", onClick: () => setFilters([]), children: "Clear all" }) : null
12196
12199
  ] })
12197
12200
  ] }),
@@ -12271,7 +12274,7 @@ function Datatable({
12271
12274
  /* @__PURE__ */ jsxRuntime.jsx(Svg, { d: I.plus, style: { color: "var(--color-primary)" } }),
12272
12275
  " Add filter"
12273
12276
  ] }) }),
12274
- resizableFilters || resizablePopovers ? /* @__PURE__ */ jsxRuntime.jsx(
12277
+ resizableFilters ? /* @__PURE__ */ jsxRuntime.jsx(
12275
12278
  "span",
12276
12279
  {
12277
12280
  className: "twc-dt__pop-grip",