twico-ui 1.22.3 → 1.24.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/dist/index.d.cts CHANGED
@@ -1597,6 +1597,10 @@ interface ComboboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>
1597
1597
  virtualized?: boolean;
1598
1598
  /** Extra option rows rendered above/below the viewport when `virtualized`, to smooth fast scrolling. @default 8 */
1599
1599
  overscan?: number;
1600
+ /** Let long option labels/descriptions wrap onto multiple lines instead of truncating to one line with an
1601
+ * ellipsis — useful when options share a long prefix and differ only in a truncated tail. Takes precedence
1602
+ * over `virtualized` (wrapped rows aren't a fixed height). @default false */
1603
+ wrapOptions?: boolean;
1600
1604
  /** Composed with the field's open-on-focus behavior — your handler runs first. */
1601
1605
  onFocus?: React.FocusEventHandler<HTMLInputElement>;
1602
1606
  /** Composed with the field's keyboard navigation (Arrows/Enter/Escape) — your handler runs first; call `event.preventDefault()` to suppress it. */
@@ -1819,6 +1823,11 @@ interface DatatableProps<T = any> extends Omit<React.HTMLAttributes<HTMLDivEleme
1819
1823
  * size persist via `stateKey` and are keyboard-accessible. Set `false` to disable the handles/grip
1820
1824
  * (fields still auto-fit). @default true */
1821
1825
  resizableFilters?: boolean;
1826
+ /** #304: extend the drag-resize grip to the other toolbar popovers too — Columns, Aggregation, Pivot,
1827
+ * and Batch-edit — each with a corner grip + keyboard resize (Arrows, Home/End, Enter/double-click to
1828
+ * reset). Implies `resizableFilters`. Each popover's size persists independently via `stateKey`
1829
+ * (`popoverSizes`). Great for a wide grid whose Columns list is otherwise capped. @default false */
1830
+ resizablePopovers?: boolean;
1822
1831
  /** Raise the drag cap for the filter panel's column/operator fields, in px (default col 360 / op 260) —
1823
1832
  * the #289-deferred "optional prop to raise the cap". Only affects `resizableFilters`. */
1824
1833
  filterFieldMaxWidth?: number;
@@ -2007,6 +2016,9 @@ interface DatatableQuery {
2007
2016
  * number columns emit =, !=, >, >=, <, <=. `value` is a `string[]` for `isAnyOf` and omitted for `isEmpty`/`isNotEmpty`.
2008
2017
  */
2009
2018
  filters: DatatableFilter[];
2019
+ /** #303: how the `filters` combine — `"and"` (all must match, default) or `"or"` (any match).
2020
+ * Omitted is treated as `"and"` for back-compat; group your server-side WHERE accordingly. */
2021
+ filterLogic?: "and" | "or";
2010
2022
  /** Quick-search text. */
2011
2023
  quickFilter: string;
2012
2024
  /** `field`s of the columns currently shown (in column order) — the built-in Columns menu
@@ -2030,6 +2042,8 @@ interface DatatableQuery {
2030
2042
  interface DatatableState {
2031
2043
  /** Active per-column filters (without the internal row id). */
2032
2044
  filters: DatatableFilter[];
2045
+ /** #303: filter connective for the whole set — `"and"` (default) or `"or"`. Absent = `"and"`. */
2046
+ filterLogic?: "and" | "or";
2033
2047
  /** Active sort, or null. */
2034
2048
  sort: { field: string; dir: "asc" | "desc" } | null;
2035
2049
  /** Quick-search text. */
@@ -2052,6 +2066,9 @@ interface DatatableState {
2052
2066
  filterPanelSize?: { w?: number; h?: number };
2053
2067
  /** #292: user-resized Filters field widths (px, panel-global — not per data column). Absent until dragged. */
2054
2068
  filterFieldWidths?: { col?: number; op?: number; val?: number };
2069
+ /** #304: user-resized sizes of the other toolbar popovers (Columns/Aggregation/Pivot/Batch-edit),
2070
+ * keyed by popover id → `{ w, h }` in px. Absent until a popover is dragged with `resizablePopovers`. */
2071
+ popoverSizes?: Record<string, { w?: number; h?: number }>;
2055
2072
  }
2056
2073
 
2057
2074
  interface DatatableColumn<T = any> {
package/dist/index.d.ts CHANGED
@@ -1597,6 +1597,10 @@ interface ComboboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>
1597
1597
  virtualized?: boolean;
1598
1598
  /** Extra option rows rendered above/below the viewport when `virtualized`, to smooth fast scrolling. @default 8 */
1599
1599
  overscan?: number;
1600
+ /** Let long option labels/descriptions wrap onto multiple lines instead of truncating to one line with an
1601
+ * ellipsis — useful when options share a long prefix and differ only in a truncated tail. Takes precedence
1602
+ * over `virtualized` (wrapped rows aren't a fixed height). @default false */
1603
+ wrapOptions?: boolean;
1600
1604
  /** Composed with the field's open-on-focus behavior — your handler runs first. */
1601
1605
  onFocus?: React.FocusEventHandler<HTMLInputElement>;
1602
1606
  /** Composed with the field's keyboard navigation (Arrows/Enter/Escape) — your handler runs first; call `event.preventDefault()` to suppress it. */
@@ -1819,6 +1823,11 @@ interface DatatableProps<T = any> extends Omit<React.HTMLAttributes<HTMLDivEleme
1819
1823
  * size persist via `stateKey` and are keyboard-accessible. Set `false` to disable the handles/grip
1820
1824
  * (fields still auto-fit). @default true */
1821
1825
  resizableFilters?: boolean;
1826
+ /** #304: extend the drag-resize grip to the other toolbar popovers too — Columns, Aggregation, Pivot,
1827
+ * and Batch-edit — each with a corner grip + keyboard resize (Arrows, Home/End, Enter/double-click to
1828
+ * reset). Implies `resizableFilters`. Each popover's size persists independently via `stateKey`
1829
+ * (`popoverSizes`). Great for a wide grid whose Columns list is otherwise capped. @default false */
1830
+ resizablePopovers?: boolean;
1822
1831
  /** Raise the drag cap for the filter panel's column/operator fields, in px (default col 360 / op 260) —
1823
1832
  * the #289-deferred "optional prop to raise the cap". Only affects `resizableFilters`. */
1824
1833
  filterFieldMaxWidth?: number;
@@ -2007,6 +2016,9 @@ interface DatatableQuery {
2007
2016
  * number columns emit =, !=, >, >=, <, <=. `value` is a `string[]` for `isAnyOf` and omitted for `isEmpty`/`isNotEmpty`.
2008
2017
  */
2009
2018
  filters: DatatableFilter[];
2019
+ /** #303: how the `filters` combine — `"and"` (all must match, default) or `"or"` (any match).
2020
+ * Omitted is treated as `"and"` for back-compat; group your server-side WHERE accordingly. */
2021
+ filterLogic?: "and" | "or";
2010
2022
  /** Quick-search text. */
2011
2023
  quickFilter: string;
2012
2024
  /** `field`s of the columns currently shown (in column order) — the built-in Columns menu
@@ -2030,6 +2042,8 @@ interface DatatableQuery {
2030
2042
  interface DatatableState {
2031
2043
  /** Active per-column filters (without the internal row id). */
2032
2044
  filters: DatatableFilter[];
2045
+ /** #303: filter connective for the whole set — `"and"` (default) or `"or"`. Absent = `"and"`. */
2046
+ filterLogic?: "and" | "or";
2033
2047
  /** Active sort, or null. */
2034
2048
  sort: { field: string; dir: "asc" | "desc" } | null;
2035
2049
  /** Quick-search text. */
@@ -2052,6 +2066,9 @@ interface DatatableState {
2052
2066
  filterPanelSize?: { w?: number; h?: number };
2053
2067
  /** #292: user-resized Filters field widths (px, panel-global — not per data column). Absent until dragged. */
2054
2068
  filterFieldWidths?: { col?: number; op?: number; val?: number };
2069
+ /** #304: user-resized sizes of the other toolbar popovers (Columns/Aggregation/Pivot/Batch-edit),
2070
+ * keyed by popover id → `{ w, h }` in px. Absent until a popover is dragged with `resizablePopovers`. */
2071
+ popoverSizes?: Record<string, { w?: number; h?: number }>;
2055
2072
  }
2056
2073
 
2057
2074
  interface DatatableColumn<T = any> {