@omnitend/dashboard-for-laravel 0.36.0 → 0.37.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.
@@ -2,8 +2,13 @@ import type { ButtonVariant, Size } from "bootstrap-vue-next";
2
2
  type LinkVariant = "link-primary" | "link-secondary" | "link-success" | "link-danger" | "link-warning" | "link-info" | "link-light" | "link-dark";
3
3
  interface Props {
4
4
  /**
5
- * The visual style variant of the button
6
- * @default 'primary'
5
+ * The visual style variant of the button.
6
+ *
7
+ * Defaults to `'secondary'` (soft, non-emphatic). Under the soft-first
8
+ * house rule, `primary` is THE single emphatic action per page/modal, so a
9
+ * variant-less button must NOT be emphatic by default — declare
10
+ * `variant="primary"` explicitly where you mean the one loud action.
11
+ * @default 'secondary'
7
12
  */
8
13
  variant?: ButtonVariant | LinkVariant | null;
9
14
  /**
@@ -1,5 +1,5 @@
1
1
  import type { FieldDefinition, LabelCols } from "../../types";
2
- export type FilterType = 'text' | 'select' | 'number' | 'date' | false;
2
+ export type FilterType = 'text' | 'select' | 'select-native' | 'number' | 'date' | false;
3
3
  export interface FilterOption {
4
4
  value: string;
5
5
  text: string;
@@ -64,6 +64,12 @@ export interface TableField {
64
64
  filterAllText?: string;
65
65
  sortable?: boolean;
66
66
  hint?: string;
67
+ /**
68
+ * The inline filter control for this column, or `false`/omit for none. See
69
+ * `FilterType`. `'select'` (typeahead) and `'select-native'` (plain
70
+ * `<select>`) share the same options and value semantics — pick the native
71
+ * one when OS-native menu behaviour matters more than type-to-narrow.
72
+ */
67
73
  filter?: FilterType;
68
74
  filterOptions?: FilterOption[];
69
75
  filterPlaceholder?: string;
@@ -388,6 +394,18 @@ export interface Props<TItem = any> {
388
394
  * declared width share the remaining space equally.
389
395
  */
390
396
  fixedLayout?: boolean;
397
+ /**
398
+ * Field on each row whose value uniquely identifies it, forwarded to the
399
+ * inner bvn table's `primaryKey` (all three data modes). Without it bvn keys
400
+ * client-side rows by their INDEX, which mis-associates per-row STATEFUL cell
401
+ * components when a row is inserted/removed mid-interaction — a debounced
402
+ * edit in one row can end up saved against the wrong record after a
403
+ * concurrent delete of a row above. Set it (e.g. `primary-key="id"`) so bvn
404
+ * keys rows by that field's value and each row keeps its identity across
405
+ * data mutations. Non-breaking: omit it and rows key by index exactly as
406
+ * before.
407
+ */
408
+ primaryKey?: string;
391
409
  }
392
410
  declare const _default: <T = any>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
393
411
  props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{