loon-bulma-react 2026.0.32 → 2026.0.34

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.
@@ -11,7 +11,7 @@ type DataTableColumnProp<T extends unknown = unknown> = {
11
11
  /** sorteer-functie voor deze kolom. Als niet gedefinieerd kan je niet op deze kolom sorteren */
12
12
  sort?: (a: T, b: T) => -1 | 0 | 1 | number;
13
13
  /** de waarde van de kolom. Een fucnction of een property van object van type `T` (string) */
14
- value: keyof T | ((item: T, hovered?: boolean, prev?: T, next?: T) => React.ReactNode);
14
+ value: keyof T | ((item: T, hovered?: boolean) => React.ReactNode);
15
15
  /** manier om deze cel te identificeren */
16
16
  cellIdentifier?: keyof T | ((item: T) => string);
17
17
  /** header voor de kolom. Als niet gedefinieerd wordt de `value` gebruikt, Dus als `value` een `function` is, **moet** je deze setten */
@@ -41,6 +41,21 @@ type DatatablePaginationOptionsProp = {
41
41
  value: number;
42
42
  }) => void;
43
43
  };
44
+ /** Data Table API - voor programatische toegang tot de DataTable */
45
+ type DataTableApi<T extends unknown = unknown> = {
46
+ /** Geef de index terug binnen de complete gesorteerde lijst (incl. zoekfilter, excl. paginatie-slice). */
47
+ getIndexForRowID: (rowIdentifier: string | number) => number;
48
+ /** Geef een item terug op basis van index binnen de complete gesorteerde lijst (incl. zoekfilter). */
49
+ getItemForIndex: (index: number) => T | undefined;
50
+ /** Geef de complete gesorteerde lijst terug (incl. zoekfilter, excl. paginatie-slice). */
51
+ getSortedData: () => T[];
52
+ /** Navigeer de paginatie naar de pagina die het item bevat. */
53
+ navigateToItem: (item: T) => void;
54
+ /** Navigeer de paginatie naar de pagina die het item bevat op basis van de gesorteerde index. */
55
+ navigateToIndex: (sortedIndex: number) => void;
56
+ /** Navigeer de paginatie naar de pagina die het item bevat op basis van de rowIdentifier. */
57
+ navigateToRowId: (rowId: string | number) => void;
58
+ };
44
59
  type DataTableProps<T extends unknown = unknown> = {
45
60
  /** De kolommen voor de DataTable
46
61
  * @param sort een functie die twee items vergelijkt en -1, 0, 1 of een `number` teruggeeft. Als er geen sort-function is, kan de tabel **niet** op deze kolom gesorteerd worden.
@@ -132,6 +147,8 @@ type DataTableProps<T extends unknown = unknown> = {
132
147
  paginationOptions?: DatatablePaginationOptionsProp | undefined;
133
148
  /** Vul lege rijen op tot het aantal rijen per pagina op de laatste pagina (default = false). Alleen als er paginatie is */
134
149
  fillEmptyRows?: boolean;
150
+ /** Expose helper-functies naar de parent om op elk moment de huidige sorted-data volgorde te lezen. */
151
+ apiRef?: React.MutableRefObject<DataTableApi<T> | null>;
135
152
  };
136
153
  /**
137
154
  * Maak een tabel voor grote hoeveelheden data. De tabel is doorzoekbaar en heeft paginatie. Dat is allemaal uit te zetten.
@@ -183,7 +200,7 @@ type DataTableProps<T extends unknown = unknown> = {
183
200
  * @param searchPlaceholder placeholder voor zoek-input (default = 'Zoek ...')
184
201
  * @returns
185
202
  */
186
- declare function DataTable<T extends unknown = unknown>({ data, columns: cols, defaultSortColNum, compact, noStripes, narrow, bordered, hoverable, sticky, hideSearch, headerContent, footerContent, size, searchPlaceholder, rowIdentifier, rowClass, id: tableID, itemRef, paginationOptions: paginationOptionsProp, fillEmptyRows, onSearch, onRowSelected, onRowRightClick, renderWhenNoData, searchInfoMessage, onSortColumnChanged, }: DataTableProps<T>): import("react/jsx-runtime").JSX.Element;
203
+ declare function DataTable<T extends unknown = unknown>({ data, columns: cols, defaultSortColNum, compact, noStripes, narrow, bordered, hoverable, sticky, hideSearch, headerContent, footerContent, size, searchPlaceholder, rowIdentifier, rowClass, id: tableID, itemRef, paginationOptions: paginationOptionsProp, fillEmptyRows, apiRef, onSearch, onRowSelected, onRowRightClick, renderWhenNoData, searchInfoMessage, onSortColumnChanged, }: DataTableProps<T>): import("react/jsx-runtime").JSX.Element;
187
204
  declare namespace DataTable {
188
205
  var Dropdown: {
189
206
  ({ onHover, id, children: childrenProp, trigger: triggerProp, disabled, alignment, dropUp, startOpen, className: classNameProp, keepOpenAfterClick, }: import("./DataTableDropdown").DataTableDropdownProps): import("react/jsx-runtime").JSX.Element;
@@ -195,7 +212,7 @@ declare namespace DataTable {
195
212
  children: React.ReactNode;
196
213
  disabled?: boolean;
197
214
  onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;
198
- onItemClick? /** is de tabel is de tabel hoverbaar (en is dat ook zichtbaar?) hebben? (default = `false`) */: (isClickable: boolean) => void;
215
+ onItemClick?: (isClickable: boolean) => void;
199
216
  } & React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
200
217
  Link({ children, onItemClick, disabled, ...props }: {
201
218
  children: React.ReactNode;
@@ -207,4 +224,4 @@ declare namespace DataTable {
207
224
  }
208
225
  declare function DataTableContainer({ className: classNameProp, ...props }: {} & React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
209
226
  export { DataTable };
210
- export type { DataTableProps, DataTableColumnProp as DataTableColumn };
227
+ export type { DataTableProps, DataTableColumnProp as DataTableColumn, DataTableApi };
@@ -1,5 +1,5 @@
1
1
  import { IconProp } from '@fortawesome/fontawesome-svg-core';
2
- import { AlignmentProp, DirectionProp, AutoCompleteProp, KeyboardTypeProp, StrictOmit, SizeProp } from './../types';
2
+ import { AlignmentProp, DirectionProp, AutoCompleteProp, KeyboardTypeProp, StrictOmit, SizeProp, ColorProp } from './../types';
3
3
  import React from 'react';
4
4
  import { MonthInputString } from './Periodes/MonthInput';
5
5
  import { WeekInputString } from './Periodes/WeekInput';
@@ -28,7 +28,7 @@ export type InputErrorProps<T = InputValueType> = {
28
28
  * - 1e item `ReactNode` MOET van het component-type `<Icon icon={...} />` zijn!
29
29
  * - 2e item`onClick` is optioneel en is een callback voor een click op het icon.
30
30
  */
31
- export type InputIconRightFn<T extends InputValueType = InputValueType> = (v: T | undefined, hovered: boolean, disabled: boolean, loading: boolean, focused: boolean) => [IconComponent: React.ReactNode, onClick?: () => void];
31
+ export type InputIconRightFn<T extends InputValueType = InputValueType> = (v: T | undefined, hovered: boolean, disabled: boolean, loading: boolean, focused: boolean) => [IconComponent: React.ReactNode, onClick?: () => void, color?: ColorProp];
32
32
  type InputValueType = string | number | string[] | readonly string[] | undefined;
33
33
  type InputStylingPropsType = {
34
34
  /** grootte van de input (default = `m`, medium) */ size?: SizeProp | undefined;
@@ -1,10 +1,11 @@
1
1
  import { StrictOmit } from './../../types';
2
2
  import React from 'react';
3
3
  import { InputPropsType, InputStylingPropsType } from '../Input';
4
- type SelectInputProps<T extends number | string | string[]> = StrictOmit<InputPropsType<number | string | string[]>, 'type' | 'step' | 'inputRef' | 'value' | 'onValueChanged' | 'onBlur' | 'onFocus' | 'onChange' | 'onKeyDown' | 'onKeyUp' | 'min' | 'max' | 'readonly' | 'pattern' | 'placeholder'> & InputStylingPropsType & {
4
+ import { IconProp } from '@fortawesome/fontawesome-svg-core';
5
+ type SelectInputProps<T extends number | string | string[]> = StrictOmit<InputPropsType<number | string | string[]>, 'type' | 'step' | 'iconRight' | 'inputRef' | 'value' | 'onValueChanged' | 'onBlur' | 'onFocus' | 'onChange' | 'onKeyDown' | 'onKeyUp' | 'min' | 'max' | 'readonly' | 'pattern' | 'placeholder'> & InputStylingPropsType & {
5
6
  /** De waarde van de select
6
7
  * - bij `multiple` is dit een array van strings
7
- * - bij `gewoon` is dit een string (default)
8
+ * - bij `gewoon` is dit een string (defsault)
8
9
  * Om het type te setten:
9
10
  * @example <Select<string[]> value={x} onValueChanged={setX} />
10
11
  * @example <Select<string> value={x} onValueChanged={setX} /> // string
@@ -21,6 +22,8 @@ type SelectInputProps<T extends number | string | string[]> = StrictOmit<InputPr
21
22
  * Moeten de items gegroupeerd wewergegeven worden (voor als de `options`-prop een array van objecten is met een `group`-property)
22
23
  */
23
24
  grouped?: boolean;
25
+ iconOpen?: IconProp | undefined;
26
+ iconClosed?: IconProp | undefined;
24
27
  /** De opties van de select. Kan een array van strings zijn, of een array van objecten met een `value`-property en een `label`-property.
25
28
  * - `string`: is het label EN de value van de `<Select.Option>`
26
29
  * - `object`: Een object met de volgende properties
@@ -110,7 +113,7 @@ type SelectInputProps<T extends number | string | string[]> = StrictOmit<InputPr
110
113
  * ..</Select.OptGroup>
111
114
  * </Select>
112
115
  */
113
- declare function Select<T extends number | string | string[] = string>({ value, id, name, label, grouped, required, showRequiredOnLabel, errorMessage, infoMessage, multiple, alignment: alignmentProp, size: sizeProp, direction: directionProp, iconRight, options, children: nodes, helpTag, disabled, keyboardType, title, spellCheck, loading, autoComplete, autofocus, form, inputRef: ref, labelHidden, icon, infoData, onBlur, onFocus, onChange, onKeyDown, onKeyUp, onValueChanged, }: SelectInputProps<T>): import("react/jsx-runtime").JSX.Element;
116
+ declare function Select<T extends number | string | string[] = string>({ value, id, name, label, grouped, required, showRequiredOnLabel, errorMessage, infoMessage, multiple, alignment: alignmentProp, size: sizeProp, direction: directionProp, options, children: nodes, helpTag, disabled, keyboardType, title, spellCheck, loading, autoComplete, autofocus, form, inputRef: ref, labelHidden, icon, iconOpen, iconClosed, infoData, onBlur, onFocus, onChange, onKeyDown, onKeyUp, onValueChanged, }: SelectInputProps<T>): import("react/jsx-runtime").JSX.Element;
114
117
  declare namespace Select {
115
118
  var Option: ({ value, disabled, id, children }: {
116
119
  id?: string;
package/dist/index.d.ts CHANGED
@@ -21,7 +21,7 @@ export { ScrollArea } from './components/ScrollArea/ScrollArea';
21
21
  export { CodeBlock } from './components/CodeBlock/CodeBlock';
22
22
  export type { CodeBlockProps, CodeLanguage } from './components/CodeBlock/CodeBlock';
23
23
  export { DataTable } from './components/DataTable/DataTable';
24
- export type { DataTableColumn, DataTableProps } from './components/DataTable/DataTable';
24
+ export type { DataTableApi, DataTableColumn, DataTableProps } from './components/DataTable/DataTable';
25
25
  export { DragDropList } from './components/DragDrop/DragDropList';
26
26
  export { Dropdown } from './components/Dropdown/Dropdown';
27
27
  export { HelpTxt } from './components/Help/Help';