laif-ds 0.2.63 → 0.2.65

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.
@@ -1,23 +1,23 @@
1
1
  "use client";
2
- import { getListMultiSelectFilterOptions as v, getListSingleSelectFilterOptions as D, getDateTimeFilterOptions as A, getDateFilterOptions as F, getBooleanFilterOptions as b, getNumberFilterOptions as T, getStringFilterOptions as q } from "./data-table-constants.js";
3
- import { defaultDataTableI18n as p } from "./data-table-i18n.js";
4
- function O(e, a = "string") {
5
- const t = (s) => {
6
- switch (s) {
2
+ import { getListMultiSelectFilterOptions as v, getListSingleSelectFilterOptions as D, getDateTimeFilterOptions as A, getDateFilterOptions as F, getBooleanFilterOptions as b, getNumberFilterOptions as T, getStringFilterOptions as k } from "./data-table-constants.js";
3
+ import { defaultDataTableI18n as m } from "./data-table-i18n.js";
4
+ function L(e, s = "string") {
5
+ const r = (o) => {
6
+ switch (o) {
7
7
  case "string":
8
- return q(p)?.[0]?.value ?? "like";
8
+ return k(m)?.[0]?.value ?? "like";
9
9
  case "number":
10
- return T(p)?.[0]?.value ?? "eq";
10
+ return T(m)?.[0]?.value ?? "eq";
11
11
  case "boolean":
12
- return b(p)?.[0]?.value ?? "eq";
12
+ return b(m)?.[0]?.value ?? "eq";
13
13
  case "date":
14
- return F(p)?.[0]?.value ?? "eq";
14
+ return F(m)?.[0]?.value ?? "eq";
15
15
  case "datetime":
16
- return A(p)?.[0]?.value ?? "date_time_before";
16
+ return A(m)?.[0]?.value ?? "date_time_before";
17
17
  case "list_single_select":
18
- return D(p)?.[0]?.value ?? "array_overlap";
18
+ return D(m)?.[0]?.value ?? "array_overlap";
19
19
  case "list_multi_select":
20
- return v(p)?.[0]?.value ?? "array_overlap";
20
+ return v(m)?.[0]?.value ?? "array_overlap";
21
21
  default:
22
22
  return "eq";
23
23
  }
@@ -27,14 +27,14 @@ function O(e, a = "string") {
27
27
  columnId: e?.id || "",
28
28
  columnLabel: e?.column.columnDef.meta?.headerLabel || (typeof e?.column.columnDef.header == "string" ? e.column.columnDef.header : "") || e?.id || "",
29
29
  columnAccessorKey: (e?.column.columnDef && "accessorKey" in e.column.columnDef && typeof e.column.columnDef.accessorKey == "string" ? e.column.columnDef.accessorKey : e?.id) || "",
30
- columnType: e?.column.columnDef.meta?.type || a,
31
- operator: t(
30
+ columnType: e?.column.columnDef.meta?.type || s,
31
+ operator: r(
32
32
  e?.column.columnDef.meta?.type
33
33
  ),
34
34
  listOptions: e?.column.columnDef.meta?.listOptions
35
35
  };
36
36
  }
37
- function I() {
37
+ function O() {
38
38
  const e = () => crypto.randomUUID();
39
39
  return {
40
40
  id: e(),
@@ -56,61 +56,61 @@ function I() {
56
56
  }
57
57
  };
58
58
  }
59
- function k(e, a) {
60
- const t = e.filter((n) => n.operator === "eq_null" || n.operator === "n_eq_null" ? !0 : n.value === void 0 || n.value === "" ? !1 : n.columnType === "list_multi_select" ? (Array.isArray(n.value) ? n.value.filter((i) => i !== void 0) : [n.value].filter((i) => i !== void 0)).length > 0 : !0), u = a ? ((n) => {
61
- const m = (i) => {
62
- const y = i.conditions.filter((o) => !o.columnId || !o.operator ? !1 : o.operator === "eq_null" || o.operator === "n_eq_null" ? !0 : o.value === void 0 ? !1 : o.columnType === "list_multi_select" ? (Array.isArray(o.value) ? o.value.filter((_) => _ !== void 0) : [o.value].filter((_) => _ !== void 0)).length > 0 : !0).map((o) => ({
63
- [o.columnAccessorKey]: {
64
- operator: o.operator,
65
- value: o.operator === "eq_null" || o.operator === "n_eq_null" ? "" : o.columnType === "list_single_select" ? Array.isArray(o.value) ? o.value.filter((f) => f !== void 0) : [o.value].filter((f) => f !== void 0) : o.value
59
+ function I(e, s) {
60
+ const r = e.filter((n) => n.operator === "eq_null" || n.operator === "n_eq_null" || n.operator === "checked" || n.operator === "unchecked" ? !0 : n.value === void 0 || n.value === "" ? !1 : n.columnType === "list_multi_select" ? (Array.isArray(n.value) ? n.value.filter((i) => i !== void 0) : [n.value].filter((i) => i !== void 0)).length > 0 : !0), u = s ? ((n) => {
61
+ const p = (i) => {
62
+ const y = i.conditions.filter((a) => !a.columnId || !a.operator ? !1 : a.operator === "eq_null" || a.operator === "n_eq_null" || a.operator === "checked" || a.operator === "unchecked" ? !0 : a.value === void 0 ? !1 : a.columnType === "list_multi_select" ? (Array.isArray(a.value) ? a.value.filter((_) => _ !== void 0) : [a.value].filter((_) => _ !== void 0)).length > 0 : !0).map((a) => ({
63
+ [a.columnAccessorKey]: {
64
+ operator: a.operator,
65
+ value: a.operator === "eq_null" || a.operator === "n_eq_null" || a.operator === "checked" || a.operator === "unchecked" ? !0 : a.columnType === "list_single_select" ? Array.isArray(a.value) ? a.value.filter((f) => f !== void 0) : [a.value].filter((f) => f !== void 0) : a.value
66
66
  }
67
- })), g = i.groups?.map(m).filter(Boolean) || [], d = [
67
+ })), g = i.groups?.map(p).filter(Boolean) || [], d = [
68
68
  ...y,
69
69
  ...g
70
70
  ];
71
71
  return d.length === 0 ? null : d.length === 1 ? d[0] : i.logicalOperator === "AND" ? { _and: d } : { _or: d };
72
72
  };
73
- return m(n.rootGroup);
74
- })(a) : null, c = t.map(
73
+ return p(n.rootGroup);
74
+ })(s) : null, c = r.map(
75
75
  (n) => ({
76
76
  [n.columnAccessorKey]: {
77
77
  operator: n.operator,
78
- value: n.operator === "eq_null" || n.operator === "n_eq_null" ? "" : n.columnType === "list_single_select" ? Array.isArray(n.value) ? n.value.filter((m) => m !== void 0) : [n.value].filter((m) => m !== void 0) : n.value ?? ""
78
+ value: n.operator === "eq_null" || n.operator === "n_eq_null" || n.operator === "checked" || n.operator === "unchecked" ? !0 : n.columnType === "list_single_select" ? Array.isArray(n.value) ? n.value.filter((p) => p !== void 0) : [n.value].filter((p) => p !== void 0) : n.value ?? ""
79
79
  }
80
80
  })
81
- ), r = [
81
+ ), t = [
82
82
  ...u ? [u] : [],
83
83
  ...c
84
84
  ];
85
- return r.length > 0 ? r.length === 1 ? r[0] : { _and: r } : {};
85
+ return t.length > 0 ? t.length === 1 ? t[0] : { _and: t } : {};
86
86
  }
87
- function H(e, a) {
87
+ function H(e, s) {
88
88
  const {
89
- rowHeight: t = 1,
90
- headerHeight: s = 1,
89
+ rowHeight: r = 1,
90
+ headerHeight: o = 1,
91
91
  containerHeight: u = 1,
92
92
  onPageChange: c,
93
- setPagination: r
94
- } = a, l = e?.offsetHeight || u, n = Math.floor(
95
- (l - s) / t
96
- ), m = n > 1 ? n : 1;
97
- r((i) => {
98
- if (i.pageSize !== m) {
93
+ setPagination: t
94
+ } = s, l = e?.offsetHeight || u, n = Math.floor(
95
+ (l - o) / r
96
+ ), p = n > 1 ? n : 1;
97
+ t((i) => {
98
+ if (i.pageSize !== p) {
99
99
  if (c) {
100
100
  const y = Math.max(
101
101
  0,
102
- Math.ceil(i.pageSize * (i.pageIndex + 1) / m) - 1
102
+ Math.ceil(i.pageSize * (i.pageIndex + 1) / p) - 1
103
103
  ), g = Math.min(i.pageIndex, y);
104
- c(g, m);
104
+ c(g, p);
105
105
  }
106
- return { ...i, pageSize: m };
106
+ return { ...i, pageSize: p };
107
107
  }
108
108
  return i;
109
109
  });
110
110
  }
111
- function C(e, a, t) {
111
+ function q(e, s, r) {
112
112
  if (e == null)
113
- switch (a) {
113
+ switch (s) {
114
114
  case "eq_null":
115
115
  return !0;
116
116
  case "n_eq_null":
@@ -118,20 +118,20 @@ function C(e, a, t) {
118
118
  default:
119
119
  return !1;
120
120
  }
121
- const s = (r) => r == null || typeof r == "string" ? r : String(r), u = s(e), c = s(t);
122
- switch (a) {
121
+ const o = (t) => t == null || typeof t == "string" ? t : String(t), u = o(e), c = o(r);
122
+ switch (s) {
123
123
  case "eq":
124
124
  return u === c;
125
125
  case "ne":
126
126
  return u !== c;
127
127
  case "lt":
128
- return typeof e == "number" && typeof t == "number" ? e < t : u < c;
128
+ return typeof e == "number" && typeof r == "number" ? e < r : u < c;
129
129
  case "le":
130
- return typeof e == "number" && typeof t == "number" ? e <= t : u <= c;
130
+ return typeof e == "number" && typeof r == "number" ? e <= r : u <= c;
131
131
  case "gt":
132
- return typeof e == "number" && typeof t == "number" ? e > t : u > c;
132
+ return typeof e == "number" && typeof r == "number" ? e > r : u > c;
133
133
  case "ge":
134
- return typeof e == "number" && typeof t == "number" ? e >= t : u >= c;
134
+ return typeof e == "number" && typeof r == "number" ? e >= r : u >= c;
135
135
  case "like":
136
136
  return u?.toLowerCase().includes(c?.toLowerCase());
137
137
  case "n_like":
@@ -145,15 +145,15 @@ function C(e, a, t) {
145
145
  case "n_eq_null":
146
146
  return e != null && e !== "";
147
147
  case "array_overlap":
148
- return Array.isArray(e) && Array.isArray(t) ? t.length === 0 ? !0 : e.length === 0 ? !1 : t.some(
149
- (r) => e.some(
150
- (l) => s(l) === s(r)
148
+ return Array.isArray(e) && Array.isArray(r) ? r.length === 0 ? !0 : e.length === 0 ? !1 : r.some(
149
+ (t) => e.some(
150
+ (l) => o(l) === o(t)
151
151
  )
152
152
  ) : !1;
153
153
  case "n_array_overlap":
154
- return Array.isArray(e) && Array.isArray(t) ? t.length === 0 || e.length === 0 ? !0 : !t.some(
155
- (r) => e.some(
156
- (l) => s(l) === s(r)
154
+ return Array.isArray(e) && Array.isArray(r) ? r.length === 0 || e.length === 0 ? !0 : !r.some(
155
+ (t) => e.some(
156
+ (l) => o(l) === o(t)
157
157
  )
158
158
  ) : !0;
159
159
  case "checked":
@@ -162,64 +162,64 @@ function C(e, a, t) {
162
162
  return e === !1;
163
163
  case "date_before":
164
164
  try {
165
- const r = new Date(e), l = new Date(t);
166
- return r.setHours(0, 0, 0, 0), l.setHours(0, 0, 0, 0), r < l;
165
+ const t = new Date(e), l = new Date(r);
166
+ return t.setHours(0, 0, 0, 0), l.setHours(0, 0, 0, 0), t < l;
167
167
  } catch {
168
168
  return !1;
169
169
  }
170
170
  case "date_after":
171
171
  try {
172
- const r = new Date(e), l = new Date(t);
173
- return r.setHours(0, 0, 0, 0), l.setHours(0, 0, 0, 0), r > l;
172
+ const t = new Date(e), l = new Date(r);
173
+ return t.setHours(0, 0, 0, 0), l.setHours(0, 0, 0, 0), t > l;
174
174
  } catch {
175
175
  return !1;
176
176
  }
177
177
  case "date_time_before":
178
178
  try {
179
- const r = new Date(e), l = new Date(t);
180
- return r < l;
179
+ const t = new Date(e), l = new Date(r);
180
+ return t < l;
181
181
  } catch {
182
182
  return !1;
183
183
  }
184
184
  case "date_time_after":
185
185
  try {
186
- const r = new Date(e), l = new Date(t);
187
- return r > l;
186
+ const t = new Date(e), l = new Date(r);
187
+ return t > l;
188
188
  } catch {
189
189
  return !1;
190
190
  }
191
191
  default:
192
- return console.warn(`Unknown filter operator: ${a}`), !0;
192
+ return console.warn(`Unknown filter operator: ${s}`), !0;
193
193
  }
194
194
  }
195
- function h(e, a) {
196
- if (!a || Object.keys(a).length === 0)
195
+ function h(e, s) {
196
+ if (!s || Object.keys(s).length === 0)
197
197
  return !0;
198
- if ("_and" in a && Array.isArray(a._and))
199
- return a._and.every(
200
- (t) => h(e, t)
198
+ if ("_and" in s && Array.isArray(s._and))
199
+ return s._and.every(
200
+ (r) => h(e, r)
201
201
  );
202
- if ("_or" in a && Array.isArray(a._or))
203
- return a._or.some(
204
- (t) => h(e, t)
202
+ if ("_or" in s && Array.isArray(s._or))
203
+ return s._or.some(
204
+ (r) => h(e, r)
205
205
  );
206
- for (const [t, s] of Object.entries(a))
207
- if (!t.startsWith("_") && typeof s == "object" && s !== null && "operator" in s) {
208
- const u = e.getValue(t);
209
- if (!C(
206
+ for (const [r, o] of Object.entries(s))
207
+ if (!r.startsWith("_") && typeof o == "object" && o !== null && "operator" in o) {
208
+ const u = e.getValue(r);
209
+ if (!q(
210
210
  u,
211
- s.operator,
212
- s.value
211
+ o.operator,
212
+ o.value
213
213
  )) return !1;
214
214
  }
215
215
  return !0;
216
216
  }
217
- function K(e, a) {
218
- let t;
219
- return function(...s) {
220
- clearTimeout(t), t = setTimeout(() => {
221
- e(...s);
222
- }, a);
217
+ function K(e, s) {
218
+ let r;
219
+ return function(...o) {
220
+ clearTimeout(r), r = setTimeout(() => {
221
+ e(...o);
222
+ }, s);
223
223
  };
224
224
  }
225
225
  function M(e) {
@@ -245,11 +245,11 @@ function M(e) {
245
245
  }
246
246
  }
247
247
  export {
248
- C as applyClientSideFilter,
248
+ q as applyClientSideFilter,
249
249
  h as applySearchFilterToRow,
250
- k as buildSearchFilter,
251
- O as createBadgeFilterFromHeader,
252
- I as createDefaultAdvancedFilter,
250
+ I as buildSearchFilter,
251
+ L as createBadgeFilterFromHeader,
252
+ O as createDefaultAdvancedFilter,
253
253
  K as debounce,
254
254
  M as getIconFromColumnType,
255
255
  H as updatePageSizeFromContainer
package/dist/index.d.ts CHANGED
@@ -269,7 +269,7 @@ export declare interface AppMultipleSelectOption {
269
269
  disabled?: boolean;
270
270
  }
271
271
 
272
- export declare function AppRadioGroup({ options, value, defaultValue, onValueChange, label, description, disabled, required, name, orientation, loop, className, wrpClassName, optionClassName, layout, error, }: AppRadioGroupProps): JSX.Element;
272
+ export declare function AppRadioGroup({ options, value, defaultValue, onValueChange, label, description, disabled, required, name, orientation, loop, className, wrpClassName, optionClassName, layout, error, id, "data-testid": dataTestId, }: AppRadioGroupProps): JSX.Element;
273
273
 
274
274
  export declare interface AppRadioGroupOption {
275
275
  value: string;
@@ -296,6 +296,8 @@ export declare interface AppRadioGroupProps {
296
296
  optionClassName?: string;
297
297
  layout?: "default" | "card";
298
298
  error?: string;
299
+ id?: string;
300
+ "data-testid"?: string;
299
301
  }
300
302
 
301
303
  export declare function AppSelect(props: AppSelectProps): JSX.Element;
@@ -331,9 +333,10 @@ export declare interface AppStep {
331
333
  completed?: boolean;
332
334
  disabled?: boolean;
333
335
  loading?: boolean;
336
+ "data-testid"?: string;
334
337
  }
335
338
 
336
- export declare function AppStepper({ steps, align, size, showSeparators, defaultStep, allowStepNavigation, allowClickOnlyCompleted, onStepClick, indicators, ...stepperProps }: AppStepperProps): JSX.Element;
339
+ export declare function AppStepper({ steps, align, size, showSeparators, defaultStep, allowStepNavigation, allowClickOnlyCompleted, onStepClick, indicators, id, "data-testid": dataTestId, ...stepperProps }: AppStepperProps): JSX.Element;
337
340
 
338
341
  export declare interface AppStepperProps extends Omit<StepperProps, "children"> {
339
342
  steps: AppStep[];
@@ -345,6 +348,8 @@ export declare interface AppStepperProps extends Omit<StepperProps, "children">
345
348
  allowClickOnlyCompleted?: boolean;
346
349
  onStepClick?: (step: AppStep, index: number) => void;
347
350
  indicators?: StepIndicators;
351
+ id?: string;
352
+ "data-testid"?: string;
348
353
  }
349
354
 
350
355
  export declare function AppTooltip({ content, children, label, labelClassName, header, variant, triggerVariant, size, className, wrpClassName, contentClassName, side, align, sideOffset, matchTriggerWidth, delayDuration, disabled, asChild, }: AppTooltipProps): JSX.Element;
@@ -398,7 +403,7 @@ export declare function AspectRatio({ ...props }: AspectRatioProps): JSX.Element
398
403
 
399
404
  declare type AspectRatioProps = React.ComponentProps<typeof AspectRatioPrimitive.Root>;
400
405
 
401
- export declare function AsyncSelect<T = Option_2>({ fetcher, initialOptions, debounce, renderOptionItem, resolveOptionValue, renderSelectedValue, notFound, label, placeholder, value, onChange, disabled, className, wrpClassName, noResultsMessage, clearable, multiple, size, }: AsyncSelectProps<T>): JSX.Element;
406
+ export declare function AsyncSelect<T = Option_2>({ fetcher, initialOptions, debounce, renderOptionItem, resolveOptionValue, renderSelectedValue, notFound, label, placeholder, value, onChange, disabled, className, wrpClassName, noResultsMessage, clearable, multiple, size, id, "data-testid": dataTestId, }: AsyncSelectProps<T>): JSX.Element;
402
407
 
403
408
  declare interface AsyncSelectMultipleProps<T> extends VariantProps<typeof selectTriggerVariants> {
404
409
  multiple: boolean;
@@ -418,6 +423,8 @@ declare interface AsyncSelectMultipleProps<T> extends VariantProps<typeof select
418
423
  wrpClassName?: string;
419
424
  noResultsMessage?: string;
420
425
  clearable?: boolean;
426
+ id?: string;
427
+ "data-testid"?: string;
421
428
  }
422
429
 
423
430
  declare type AsyncSelectProps<T> = AsyncSelectSingleProps<T> | AsyncSelectMultipleProps<T>;
@@ -440,6 +447,8 @@ declare interface AsyncSelectSingleProps<T> extends VariantProps<typeof selectTr
440
447
  wrpClassName?: string;
441
448
  noResultsMessage?: string;
442
449
  clearable?: boolean;
450
+ id?: string;
451
+ "data-testid"?: string;
443
452
  }
444
453
 
445
454
  declare interface Attachment {
@@ -514,6 +523,8 @@ declare type BaseProps = {
514
523
  showChipsInsteadOfCount?: boolean;
515
524
  size?: SelectSizeType_2;
516
525
  onClear?: () => void;
526
+ id?: string;
527
+ "data-testid"?: string;
517
528
  };
518
529
 
519
530
  export declare function Breadcrumb({ ...props }: React_2.ComponentProps<"nav">): JSX.Element;
@@ -1291,12 +1302,13 @@ export declare enum DataRepeatTypes {
1291
1302
  MONTH = "MONTH"
1292
1303
  }
1293
1304
 
1294
- export declare function DataTable<TData, TValue>({ columns, data, loading, emptyComponent, className, rowSelection, onRowSelectionChange, checkable, onCheckedRowsChange, actions, customComponentsLeft, customComponentsRight, hidePagination, hideActionsRow, i18n, maxSortedColumns, initialState, serverMode, serverConfig, disableAutoPageSize, }: DataTableProps<TData, TValue>): JSX.Element;
1305
+ export declare function DataTable<TData, TValue>({ columns, data, loading, emptyComponent, className, rowSelection, onRowSelectionChange, checkable, onCheckedRowsChange, actions, customComponentsLeft, customComponentsRight, hidePagination, hideActionsRow, i18n, maxSortedColumns, initialState, serverMode, serverConfig, disableAutoPageSize, id, "data-testid": dataTestId, }: DataTableProps<TData, TValue>): JSX.Element;
1295
1306
 
1296
1307
  export declare interface DataTableActions {
1297
1308
  label: string;
1298
1309
  icon: IconName;
1299
1310
  onClick: () => void;
1311
+ "data-testid"?: string;
1300
1312
  }
1301
1313
 
1302
1314
  export declare interface DataTableAdvancedFilter {
@@ -1479,6 +1491,8 @@ export declare interface DataTableProps<TData, TValue> {
1479
1491
  serverMode?: boolean;
1480
1492
  serverConfig?: DataTableServerConfig;
1481
1493
  disableAutoPageSize?: boolean;
1494
+ id?: string;
1495
+ "data-testid"?: string;
1482
1496
  }
1483
1497
 
1484
1498
  export declare interface DataTableServerConfig {
@@ -1501,7 +1515,7 @@ export declare interface DataTableState<TData = Record<string, unknown>> {
1501
1515
  columnVisibility?: Partial<Record<keyof TData, boolean>>;
1502
1516
  }
1503
1517
 
1504
- export declare function DatePicker({ value, onChange, placeholder, dateFormat, className, disabled, size, firstDate, lastDate, availableDates, locale, initialCalendarMonth, customCalendarProps, label, wrpClassName, }: DatePickerProps): JSX.Element;
1518
+ export declare function DatePicker({ value, onChange, placeholder, dateFormat, className, disabled, size, firstDate, lastDate, availableDates, locale, initialCalendarMonth, customCalendarProps, label, wrpClassName, id, "data-testid": dataTestId, }: DatePickerProps): JSX.Element;
1505
1519
 
1506
1520
  export declare interface DatePickerProps {
1507
1521
  value?: Date;
@@ -1520,6 +1534,8 @@ export declare interface DatePickerProps {
1520
1534
  customCalendarProps?: React_2.ComponentProps<typeof Calendar>;
1521
1535
  label?: string | React_2.ReactNode;
1522
1536
  wrpClassName?: string;
1537
+ id?: string;
1538
+ "data-testid"?: string;
1523
1539
  }
1524
1540
 
1525
1541
  /**
@@ -1625,6 +1641,8 @@ declare interface FileUploaderProps {
1625
1641
  removeAllLabel?: string;
1626
1642
  maxTotalSize?: number;
1627
1643
  maxFiles?: number;
1644
+ id?: string;
1645
+ "data-testid"?: string;
1628
1646
  }
1629
1647
 
1630
1648
  declare interface FilterBadgeConfig {
@@ -1855,7 +1873,7 @@ export declare interface InputProps extends Omit<React_2.ComponentProps<"input">
1855
1873
  showValidityMessage?: boolean;
1856
1874
  }
1857
1875
 
1858
- export declare function InputSelector({ value, onChange, min, max, className, buttonClassName, counterClassName, }: InputSelectorProps): JSX.Element;
1876
+ export declare function InputSelector({ value, onChange, min, max, className, buttonClassName, counterClassName, id, "data-testid": dataTestId, }: InputSelectorProps): JSX.Element;
1859
1877
 
1860
1878
  export declare interface InputSelectorProps {
1861
1879
  value: number;
@@ -1865,6 +1883,8 @@ export declare interface InputSelectorProps {
1865
1883
  className?: string;
1866
1884
  buttonClassName?: string;
1867
1885
  counterClassName?: string;
1886
+ id?: string;
1887
+ "data-testid"?: string;
1868
1888
  }
1869
1889
 
1870
1890
  export declare interface InputValidityI18n {
@@ -1975,7 +1995,7 @@ export declare interface Message {
1975
1995
  parts?: MessagePart[];
1976
1996
  }
1977
1997
 
1978
- export declare function MessageInput({ placeholder, className, onKeyDown: onKeyDownProp, submitOnEnter, stop, isGenerating, enableInterrupt, transcribeAudio, ...props }: MessageInputProps): JSX.Element;
1998
+ export declare function MessageInput({ placeholder, className, onKeyDown: onKeyDownProp, submitOnEnter, stop, isGenerating, enableInterrupt, transcribeAudio, "data-testid": dataTestId, ...props }: MessageInputProps): JSX.Element;
1979
1999
 
1980
2000
  export declare namespace MessageInput {
1981
2001
  var displayName: string;
@@ -1988,6 +2008,7 @@ declare interface MessageInputBaseProps extends default_2.TextareaHTMLAttributes
1988
2008
  isGenerating: boolean;
1989
2009
  enableInterrupt?: boolean;
1990
2010
  transcribeAudio?: (blob: Blob) => Promise<string>;
2011
+ "data-testid"?: string;
1991
2012
  }
1992
2013
 
1993
2014
  declare type MessageInputProps = MessageInputWithoutAttachmentProps | MessageInputWithAttachmentsProps;
@@ -3,7 +3,7 @@ import { stringify as w } from "../../comma-separated-tokens/index.js";
3
3
  import { ok as u } from "../../devlop/lib/default.js";
4
4
  import { svg as m, html as C } from "../../property-information/index.js";
5
5
  import { stringify as N } from "../../space-separated-tokens/index.js";
6
- import S from "../../../_virtual/index5.js";
6
+ import S from "../../../_virtual/index4.js";
7
7
  import { whitespace as j } from "../../hast-util-whitespace/lib/index.js";
8
8
  import { name as x } from "../../estree-util-is-identifier-name/lib/index.js";
9
9
  import { VFileMessage as h } from "../../vfile-message/lib/index.js";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { bail as P } from "../../bail/index.js";
3
- import y from "../../../_virtual/index4.js";
3
+ import y from "../../../_virtual/index5.js";
4
4
  import z from "../../is-plain-obj/index.js";
5
5
  import { CallableInstance as C } from "./callable-instance.js";
6
6
  import { trough as A } from "../../trough/lib/index.js";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "laif-ds",
3
3
  "private": false,
4
- "version": "0.2.63",
4
+ "version": "0.2.65",
5
5
  "type": "module",
6
6
  "main": "dist/index.es.js",
7
7
  "module": "dist/index.es.js",