@nar-bus/ui-kit 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/dist/{Button-BN_yX87x.js → Button-B_PvZOyI.js} +55 -35
- package/dist/atoms/Button.d.ts +6 -1
- package/dist/atoms/Button.d.ts.map +1 -1
- package/dist/hooks/useSelectListbox.d.ts.map +1 -1
- package/dist/i18n/en.json.d.ts +47 -2
- package/dist/i18n/resources.d.ts +90 -0
- package/dist/i18n/resources.d.ts.map +1 -1
- package/dist/i18n/resources.js +1 -1
- package/dist/i18n/tr.json.d.ts +47 -2
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3502 -3191
- package/dist/map.js +1 -1
- package/dist/molecules/Combobox.d.ts +12 -1
- package/dist/molecules/Combobox.d.ts.map +1 -1
- package/dist/molecules/DateRangePicker.d.ts.map +1 -1
- package/dist/organisms/DataTable/DataTableColumnHeader.d.ts +3 -1
- package/dist/organisms/DataTable/DataTableColumnHeader.d.ts.map +1 -1
- package/dist/organisms/DataTable/DataTableHeader.d.ts +7 -1
- package/dist/organisms/DataTable/DataTableHeader.d.ts.map +1 -1
- package/dist/organisms/DataTable/DataTableRow.d.ts +3 -1
- package/dist/organisms/DataTable/DataTableRow.d.ts.map +1 -1
- package/dist/organisms/DataTable.d.ts +30 -2
- package/dist/organisms/DataTable.d.ts.map +1 -1
- package/dist/organisms/FilterPanel.d.ts +63 -1
- package/dist/organisms/FilterPanel.d.ts.map +1 -1
- package/dist/organisms/Toast.d.ts +34 -1
- package/dist/organisms/Toast.d.ts.map +1 -1
- package/dist/organisms/filterOperators.d.ts +69 -0
- package/dist/organisms/filterOperators.d.ts.map +1 -0
- package/dist/organisms/index.d.ts +2 -1
- package/dist/organisms/index.d.ts.map +1 -1
- package/dist/resources-C0sR9l8q.js +78 -0
- package/dist/templates/ListPageLayout.d.ts +5 -0
- package/dist/templates/ListPageLayout.d.ts.map +1 -1
- package/dist/theme.css +1 -1
- package/dist/ui-kit.css +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/searchFold.d.ts +8 -0
- package/dist/utils/searchFold.d.ts.map +1 -0
- package/package.json +1 -1
- package/dist/resources-CoEb9GVG.js +0 -78
package/dist/map.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as t, jsxs as m } from "react/jsx-runtime";
|
|
2
2
|
import { useRef as f, useState as D, useEffect as U } from "react";
|
|
3
3
|
import { useTranslation as T } from "react-i18next";
|
|
4
|
-
import { a as h, B as V } from "./Button-
|
|
4
|
+
import { a as h, B as V } from "./Button-B_PvZOyI.js";
|
|
5
5
|
function X() {
|
|
6
6
|
if (typeof document > "u") return !1;
|
|
7
7
|
try {
|
|
@@ -23,6 +23,17 @@ interface ComboboxPropsBase {
|
|
|
23
23
|
* caller's `placeholder`. (NB-COMBO-CREATE-HINT-01)
|
|
24
24
|
*/
|
|
25
25
|
createHint?: ReactNode;
|
|
26
|
+
/**
|
|
27
|
+
* ARIA forwarding — injected by FormField via cloneElement; written onto the
|
|
28
|
+
* `role="combobox"` trigger. Same contract as Select / DateRangePicker: the
|
|
29
|
+
* FormField `<label htmlFor>` now names the field and its error/hint text is
|
|
30
|
+
* announced. `aria-invalid` falls back to `!!error` when not given; an
|
|
31
|
+
* explicit value wins. (NB-COMBOBOX-ID-01)
|
|
32
|
+
*/
|
|
33
|
+
"aria-invalid"?: boolean | "true" | "false";
|
|
34
|
+
"aria-describedby"?: string;
|
|
35
|
+
"aria-required"?: boolean | "true" | "false";
|
|
36
|
+
id?: string;
|
|
26
37
|
}
|
|
27
38
|
interface ComboboxPropsSingle extends ComboboxPropsBase {
|
|
28
39
|
multiple?: false;
|
|
@@ -35,6 +46,6 @@ interface ComboboxPropsMultiple extends ComboboxPropsBase {
|
|
|
35
46
|
onChange?: (value: string[]) => void;
|
|
36
47
|
}
|
|
37
48
|
export type ComboboxProps = ComboboxPropsSingle | ComboboxPropsMultiple;
|
|
38
|
-
export declare function Combobox({ options, value, onChange, placeholder, searchPlaceholder, multiple, disabled, error, loading, onSearch, className, creatable, createHint, }: ComboboxProps): import("react").JSX.Element;
|
|
49
|
+
export declare function Combobox({ options, value, onChange, placeholder, searchPlaceholder, multiple, disabled, error, loading, onSearch, className, creatable, createHint, id, "aria-invalid": ariaInvalid, "aria-describedby": ariaDescribedBy, "aria-required": ariaRequired, }: ComboboxProps): import("react").JSX.Element;
|
|
39
50
|
export {};
|
|
40
51
|
//# sourceMappingURL=Combobox.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Combobox.d.ts","sourceRoot":"","sources":["../../src/molecules/Combobox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4D,KAAK,SAAS,EAAsC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Combobox.d.ts","sourceRoot":"","sources":["../../src/molecules/Combobox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4D,KAAK,SAAS,EAAsC,MAAM,OAAO,CAAC;AAWrI,MAAM,WAAW,cAAc;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;CAAE;AAEjE,UAAU,iBAAiB;IACzB,OAAO,EAAE,cAAc,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IACtD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC5E;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IAC7C,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AACD,UAAU,mBAAoB,SAAQ,iBAAiB;IAAG,QAAQ,CAAC,EAAE,KAAK,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAAE;AACjI,UAAU,qBAAsB,SAAQ,iBAAiB;IAAG,QAAQ,EAAE,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAAE;AACrI,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;AAsTxE,wBAAgB,QAAQ,CAAC,EACvB,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAgB,EAAE,iBAAiB,EAAE,QAAgB,EAC/E,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAiB,EAAE,UAAU,EAC5E,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,GACpG,EAAE,aAAa,+BA2Kf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateRangePicker.d.ts","sourceRoot":"","sources":["../../src/molecules/DateRangePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AA6BzG,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,KAAK,EAAE,SAAS,CAAC;IACjB;;oEAEgE;IAChE,KAAK,EAAE,MAAM,SAAS,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACrC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,eAAe,EAAE,CAAC;IACtC;;;;OAIG;IACH,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,mFAAmF;IACnF,GAAG,CAAC,EAAE,IAAI,CAAC;IACX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAChC,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IAC7C,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,OAAc,EACd,GAAG,EACH,GAAG,EACH,QAAgB,EAChB,UAAqB,EACrB,UAAc,EACd,QAAQ,EACR,KAAK,EACL,SAAS,EACT,cAAc,EAAE,WAAW,EAC3B,kBAAkB,EAAE,eAAe,EACnC,eAAe,EAAE,YAAY,EAC7B,EAAE,GACH,EAAE,oBAAoB,+
|
|
1
|
+
{"version":3,"file":"DateRangePicker.d.ts","sourceRoot":"","sources":["../../src/molecules/DateRangePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AA6BzG,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,KAAK,EAAE,SAAS,CAAC;IACjB;;oEAEgE;IAChE,KAAK,EAAE,MAAM,SAAS,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACrC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,eAAe,EAAE,CAAC;IACtC;;;;OAIG;IACH,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,mFAAmF;IACnF,GAAG,CAAC,EAAE,IAAI,CAAC;IACX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAChC,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IAC7C,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,OAAc,EACd,GAAG,EACH,GAAG,EACH,QAAgB,EAChB,UAAqB,EACrB,UAAc,EACd,QAAQ,EACR,KAAK,EACL,SAAS,EACT,cAAc,EAAE,WAAW,EAC3B,kBAAkB,EAAE,eAAe,EACnC,eAAe,EAAE,YAAY,EAC7B,EAAE,GACH,EAAE,oBAAoB,+BA+1BtB"}
|
|
@@ -12,7 +12,9 @@ export interface DataTableColumnHeaderProps<TData, TValue> {
|
|
|
12
12
|
* Title label for a `DataTable` column's `header` render function.
|
|
13
13
|
*
|
|
14
14
|
* `DataTable`'s own `<th>` already renders the sort arrow and owns the click/
|
|
15
|
-
* keyboard handling for any column with `enableSorting` (default `true`)
|
|
15
|
+
* keyboard handling for any column with `enableSorting` (default `true`) once
|
|
16
|
+
* the table's sort is bound (`sorting`+`onSortingChange` or `sortBy`+
|
|
17
|
+
* `onSortChange`; NB-DATATABLE-SORT-01) —
|
|
16
18
|
* this component only renders the title text, so composing it inside
|
|
17
19
|
* `header: ({ column }) => <DataTableColumnHeader column={column} title="X" />`
|
|
18
20
|
* does not double up the arrow or the click zone.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTableColumnHeader.d.ts","sourceRoot":"","sources":["../../../src/organisms/DataTable/DataTableColumnHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,MAAM,WAAW,0BAA0B,CAAC,KAAK,EAAE,MAAM;IACvD,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd;;sEAEkE;IAClE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED
|
|
1
|
+
{"version":3,"file":"DataTableColumnHeader.d.ts","sourceRoot":"","sources":["../../../src/organisms/DataTable/DataTableColumnHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,MAAM,WAAW,0BAA0B,CAAC,KAAK,EAAE,MAAM;IACvD,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd;;sEAEkE;IAClE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,EACnD,KAAK,EACL,QAAe,EACf,SAAS,GACV,EAAE,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,+BAI3C"}
|
|
@@ -2,7 +2,13 @@ import { HeaderGroup } from '@tanstack/react-table';
|
|
|
2
2
|
interface DataTableHeaderProps<TData> {
|
|
3
3
|
headerGroups: HeaderGroup<TData>[];
|
|
4
4
|
stickyHeader?: boolean;
|
|
5
|
+
/** `false` when nobody listens to sort changes (NB-DATATABLE-SORT-01):
|
|
6
|
+
* headers drop the click/keyboard handling, the focus stop, the pointer and
|
|
7
|
+
* the neutral "sortable" arrow, and `aria-sort="none"` is not announced. A
|
|
8
|
+
* column the state already sorts keeps its direction arrow + `aria-sort`
|
|
9
|
+
* as a read-only indicator. */
|
|
10
|
+
sortingInteractive?: boolean;
|
|
5
11
|
}
|
|
6
|
-
export declare function DataTableHeader<TData>({ headerGroups, stickyHeader, }: DataTableHeaderProps<TData>): import("react").JSX.Element;
|
|
12
|
+
export declare function DataTableHeader<TData>({ headerGroups, stickyHeader, sortingInteractive, }: DataTableHeaderProps<TData>): import("react").JSX.Element;
|
|
7
13
|
export {};
|
|
8
14
|
//# sourceMappingURL=DataTableHeader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTableHeader.d.ts","sourceRoot":"","sources":["../../../src/organisms/DataTable/DataTableHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAc,MAAM,uBAAuB,CAAC;AAQrE,UAAU,oBAAoB,CAAC,KAAK;IAClC,YAAY,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;IACnC,YAAY,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DataTableHeader.d.ts","sourceRoot":"","sources":["../../../src/organisms/DataTable/DataTableHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAc,MAAM,uBAAuB,CAAC;AAQrE,UAAU,oBAAoB,CAAC,KAAK;IAClC,YAAY,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;IACnC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;oCAIgC;IAChC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,EACrC,YAAY,EACZ,YAAY,EACZ,kBAAyB,GAC1B,EAAE,oBAAoB,CAAC,KAAK,CAAC,+BAyE7B"}
|
|
@@ -3,8 +3,10 @@ interface DataTableRowProps<TData> {
|
|
|
3
3
|
row: Row<TData>;
|
|
4
4
|
rowHeight: number;
|
|
5
5
|
onRowClick?: (row: TData) => void;
|
|
6
|
+
/** NB-DATATABLE-ROWCLICK-01 — per-row gate for `onRowClick`. */
|
|
7
|
+
isRowClickable?: (row: TData) => boolean;
|
|
6
8
|
getRowAriaLabel?: (row: TData) => string;
|
|
7
9
|
}
|
|
8
|
-
export declare function DataTableRow<TData>({ row, rowHeight, onRowClick, getRowAriaLabel, }: DataTableRowProps<TData>): import("react").JSX.Element;
|
|
10
|
+
export declare function DataTableRow<TData>({ row, rowHeight, onRowClick, isRowClickable, getRowAriaLabel, }: DataTableRowProps<TData>): import("react").JSX.Element;
|
|
9
11
|
export {};
|
|
10
12
|
//# sourceMappingURL=DataTableRow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTableRow.d.ts","sourceRoot":"","sources":["../../../src/organisms/DataTable/DataTableRow.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAc,MAAM,uBAAuB,CAAC;AAO7D,UAAU,iBAAiB,CAAC,KAAK;IAC/B,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAClC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,MAAM,CAAC;CAC1C;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,EAClC,GAAG,EACH,SAAS,EACT,UAAU,EACV,eAAe,GAChB,EAAE,iBAAiB,CAAC,KAAK,CAAC,+
|
|
1
|
+
{"version":3,"file":"DataTableRow.d.ts","sourceRoot":"","sources":["../../../src/organisms/DataTable/DataTableRow.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAc,MAAM,uBAAuB,CAAC;AAO7D,UAAU,iBAAiB,CAAC,KAAK;IAC/B,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAClC,gEAAgE;IAChE,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,OAAO,CAAC;IACzC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,MAAM,CAAC;CAC1C;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,EAClC,GAAG,EACH,SAAS,EACT,UAAU,EACV,cAAc,EACd,eAAe,GAChB,EAAE,iBAAiB,CAAC,KAAK,CAAC,+BA2D1B"}
|
|
@@ -49,6 +49,13 @@ export interface DataTableProps<TData> {
|
|
|
49
49
|
label: string;
|
|
50
50
|
onClick: () => void;
|
|
51
51
|
};
|
|
52
|
+
/** Whether columns may be sorted (default `true`). **Not enough on its own:**
|
|
53
|
+
* DataTable keeps no sort state of its own (fully controlled), so a header
|
|
54
|
+
* only becomes clickable once a change is listened to — `sorting` +
|
|
55
|
+
* `onSortingChange` (e.g. from `useDataTable()`) or `sortBy` + `onSortChange`.
|
|
56
|
+
* Unbound, headers draw no click target, focus stop or "sortable" arrow;
|
|
57
|
+
* a `sorting`/`sortBy` given without a handler still orders the rows and
|
|
58
|
+
* marks the sorted column read-only (NB-DATATABLE-SORT-01). */
|
|
52
59
|
enableSorting?: boolean;
|
|
53
60
|
enableSelection?: boolean;
|
|
54
61
|
enableVirtualScroll?: boolean;
|
|
@@ -58,10 +65,21 @@ export interface DataTableProps<TData> {
|
|
|
58
65
|
onSortingChange?: OnChangeFn<SortingState>;
|
|
59
66
|
/** Single-column server-sort alternative to `sorting`/`onSortingChange` —
|
|
60
67
|
* when provided, takes precedence. Pair with `<DataTableColumnHeader>` in
|
|
61
|
-
* a column's `header` render function.
|
|
68
|
+
* a column's `header` render function. A header click always replaces the
|
|
69
|
+
* single sort and toggles ASC↔DESC (first direction: text → ASC, number →
|
|
70
|
+
* DESC, or the column's `sortDescFirst`); there is no "unsorted" step and
|
|
71
|
+
* no Shift+click multi-sort, since `onSortChange` can express neither. */
|
|
62
72
|
sortBy?: string;
|
|
63
73
|
sortDirection?: "ASC" | "DESC";
|
|
64
74
|
onSortChange?: (sortBy: string, sortDirection: "ASC" | "DESC") => void;
|
|
75
|
+
/** `data` arrives already sorted (server-side sort): rows render in `data`
|
|
76
|
+
* order and the client-side sorted row model is not installed, while the
|
|
77
|
+
* header arrow and `aria-sort` still follow the sort state. Defaults to
|
|
78
|
+
* `true` in `sortBy` mode (a server sort by contract) and to `false` with
|
|
79
|
+
* `sorting`/`onSortingChange`, which also drives client-sorted tables (e.g.
|
|
80
|
+
* `useDataTable()` over a fully loaded list) — pass it explicitly to
|
|
81
|
+
* override either default (NB-DATATABLE-MANUALSORT-01). */
|
|
82
|
+
manualSorting?: boolean;
|
|
65
83
|
rowSelection?: RowSelectionState;
|
|
66
84
|
onRowSelectionChange?: OnChangeFn<RowSelectionState>;
|
|
67
85
|
page?: number;
|
|
@@ -76,6 +94,16 @@ export interface DataTableProps<TData> {
|
|
|
76
94
|
/** Per-row accessible label, set as `aria-label` on each row's `<tr>` (e.g.
|
|
77
95
|
* screen-reader context on clickable rows). Omit for no label. */
|
|
78
96
|
getRowAriaLabel?: (row: TData) => string;
|
|
97
|
+
/** Per-row gate for `onRowClick` (NB-DATATABLE-ROWCLICK-01): a row it
|
|
98
|
+
* returns `false` for is not interactive — no pointer, hover lift, focus
|
|
99
|
+
* stop, Enter/Space handling or `onRowClick` call. Ignored without
|
|
100
|
+
* `onRowClick`; omitted, every row stays clickable as before. */
|
|
101
|
+
isRowClickable?: (row: TData) => boolean;
|
|
102
|
+
/** Per-row gate for selection (needs `enableSelection`): a row it returns
|
|
103
|
+
* `false` for gets a disabled checkbox and is skipped by the header's
|
|
104
|
+
* "select all" (TanStack `enableRowSelection(row)`). Omitted, every row is
|
|
105
|
+
* selectable as before. */
|
|
106
|
+
isRowSelectable?: (row: TData) => boolean;
|
|
79
107
|
className?: string;
|
|
80
108
|
/** Optional accessible caption exposed via `<caption>` for screen readers. */
|
|
81
109
|
caption?: string;
|
|
@@ -96,5 +124,5 @@ export interface DataTableProps<TData> {
|
|
|
96
124
|
* Receives the current selected ids. Mirrors the `toolbarStart`/`toolbarEnd` slot pattern. */
|
|
97
125
|
bulkActionsContent?: ReactNode | ((selectedIds: string[]) => ReactNode);
|
|
98
126
|
}
|
|
99
|
-
export declare function DataTable<TData>({ columns, data, loading, emptyTitle, emptyDescription, emptyAction, enableSorting, enableSelection, enableVirtualScroll, onRowClick, bulkActions, sorting, onSortingChange, sortBy, sortDirection, onSortChange, rowSelection, onRowSelectionChange, page, pageSize, total, pagination, onPageChange, onPageSizeChange, stickyHeader, getRowId, getRowAriaLabel, className, caption, density, rowActions, toolbarStart, toolbarEnd, toolbarVariant, bulkActionsLabel, bulkActionsContent, }: DataTableProps<TData>): import("react").JSX.Element;
|
|
127
|
+
export declare function DataTable<TData>({ columns, data, loading, emptyTitle, emptyDescription, emptyAction, enableSorting: enableSortingProp, enableSelection, enableVirtualScroll, onRowClick, bulkActions, sorting, onSortingChange, sortBy, sortDirection, onSortChange, manualSorting, rowSelection, onRowSelectionChange, page, pageSize, total, pagination, onPageChange, onPageSizeChange, stickyHeader, getRowId, getRowAriaLabel, isRowClickable, isRowSelectable, className, caption, density, rowActions, toolbarStart, toolbarEnd, toolbarVariant, bulkActionsLabel, bulkActionsContent, }: DataTableProps<TData>): import("react").JSX.Element;
|
|
100
128
|
//# sourceMappingURL=DataTable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../src/organisms/DataTable.tsx"],"names":[],"mappings":"AAEA,OAAO,mBAAmB,CAAC;AAE3B,OAAO,
|
|
1
|
+
{"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../src/organisms/DataTable.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SelectOption } from '../atoms/Select';
|
|
2
|
+
import { FilterOperatorCode } from './filterOperators';
|
|
2
3
|
export type FilterFieldType = "text" | "select" | "date" | "daterange" | "number" | "boolean" | "combobox";
|
|
3
4
|
export interface FilterField {
|
|
4
5
|
key: string;
|
|
@@ -93,6 +94,38 @@ export interface FilterField {
|
|
|
93
94
|
* full-width row under the grid — the compact choice for a narrow rail.
|
|
94
95
|
*/
|
|
95
96
|
timeLayout?: "beside" | "below";
|
|
97
|
+
/**
|
|
98
|
+
* The operators this field's picker offers, in display order — narrows (or
|
|
99
|
+
* re-orders) the type's default menu, and is how a single field opts into the
|
|
100
|
+
* value-less `"IS_EMPTY"` / `"IS_NOT_EMPTY"` ("Boş" / "Boş Değil") without
|
|
101
|
+
* {@link FilterPanelProps.emptyOperators}. Unknown codes are ignored; an
|
|
102
|
+
* omitted or empty list keeps the type default. (NB-FILTER-EMPTY-OP-01)
|
|
103
|
+
*
|
|
104
|
+
* - The field's default operator stays the type default (`CONTAINS` for text,
|
|
105
|
+
* `"="` otherwise) when the list contains it, else the first value-taking
|
|
106
|
+
* code. A list made of value-less codes only gets the type default prepended,
|
|
107
|
+
* so a fresh field is never silently "active".
|
|
108
|
+
* - A list of ONE operator hides the picker (one choice needs no control); the
|
|
109
|
+
* field still emits that operator.
|
|
110
|
+
* - `type: "daterange"` honours only the value-less codes: its range is the
|
|
111
|
+
* implicit first choice ("Arasında" / "Between", emitted as the usual `>=` /
|
|
112
|
+
* `<=` bound pair), a value-less choice is emitted on the field's own `key`.
|
|
113
|
+
*
|
|
114
|
+
* The panel does not check that a code suits the field's type (`">"` on a
|
|
115
|
+
* text field) — that, like the wire mapping, is the caller's contract.
|
|
116
|
+
*/
|
|
117
|
+
operators?: FilterOperatorCode[];
|
|
118
|
+
/**
|
|
119
|
+
* Show a per-field ✕ that clears ONLY this field from the draft — every type
|
|
120
|
+
* (text, number, select, combobox, date, daterange, boolean) and a value-less
|
|
121
|
+
* row alike. Like the chip ✕ it empties the value, drops a value-less
|
|
122
|
+
* operator back to the default (a value-taking one is kept) and resets the
|
|
123
|
+
* field's dependents; it does not Apply. The button is visible only while the
|
|
124
|
+
* field has something to clear, but its slot is always reserved so the input
|
|
125
|
+
* does not jump while typing. With `showChips={false}` it is the per-field
|
|
126
|
+
* alternative to "Clear Filters". Default `false`. (NB-FILTER-CLEARABLE-01)
|
|
127
|
+
*/
|
|
128
|
+
clearable?: boolean;
|
|
96
129
|
}
|
|
97
130
|
export interface FilterValue {
|
|
98
131
|
field: string;
|
|
@@ -101,6 +134,13 @@ export interface FilterValue {
|
|
|
101
134
|
}
|
|
102
135
|
export interface FilterPanelProps {
|
|
103
136
|
fields: FilterField[];
|
|
137
|
+
/**
|
|
138
|
+
* The APPLIED filters. Seeds the draft at mount and again whenever its
|
|
139
|
+
* content changes — an outside clear empties an open panel without a `key`
|
|
140
|
+
* remount (NB-FILTER-DRAFT-SYNC-01). Pass the applied state, not the live
|
|
141
|
+
* draft echoed back late (e.g. debounced): a stale echo would overwrite what
|
|
142
|
+
* the user typed since.
|
|
143
|
+
*/
|
|
104
144
|
values?: FilterValue[];
|
|
105
145
|
onApply: (filters: FilterValue[]) => void;
|
|
106
146
|
onClear: () => void;
|
|
@@ -123,6 +163,28 @@ export interface FilterPanelProps {
|
|
|
123
163
|
* an operator at Apply — the type default for freshly-edited fields, or a
|
|
124
164
|
* seeded operator (from `values`) which is preserved as-is. */
|
|
125
165
|
showOperators?: boolean;
|
|
166
|
+
/**
|
|
167
|
+
* Add the value-less operators `"IS_EMPTY"` / `"IS_NOT_EMPTY"` ("Boş" /
|
|
168
|
+
* "Boş Değil", symbols `∅` / `≠∅`) to EVERY field's default menu — boolean
|
|
169
|
+
* and daterange fields included, which then grow a picker. A field with its
|
|
170
|
+
* own {@link FilterField.operators} keeps exactly that list. Default `false`:
|
|
171
|
+
* an existing panel's menus are unchanged until the consumer's backend can
|
|
172
|
+
* answer the two operators. (NB-FILTER-EMPTY-OP-01)
|
|
173
|
+
*
|
|
174
|
+
* A value-less row hides its value control and is emitted at Apply with
|
|
175
|
+
* `value: ""` — as `{ field: key, operator: "IS_EMPTY", value: "" }`, on the
|
|
176
|
+
* field's own `key` for a daterange too. A consumer that skips empty values
|
|
177
|
+
* must keep these rows: test with {@link isValuelessFilterOperator}.
|
|
178
|
+
*/
|
|
179
|
+
emptyOperators?: boolean;
|
|
180
|
+
/**
|
|
181
|
+
* Render the active-filter chip row at the top of the panel. Default `true`
|
|
182
|
+
* (unchanged). Pass `false` when the product has dropped filter chips: the
|
|
183
|
+
* list-top chips (`ListPageLayout.activeFilters`) were always app-controlled,
|
|
184
|
+
* these were not. Only the row goes — staging, Apply and per-field clearing
|
|
185
|
+
* are unaffected. (NB-FILTER-CHIPS-01)
|
|
186
|
+
*/
|
|
187
|
+
showChips?: boolean;
|
|
126
188
|
}
|
|
127
|
-
export declare function FilterPanel({ fields, values: externalValues, onApply, onClear, onClose, onDraftChange, showOperators, }: FilterPanelProps): import("react").JSX.Element;
|
|
189
|
+
export declare function FilterPanel({ fields, values: externalValues, onApply, onClear, onClose, onDraftChange, showOperators, emptyOperators, showChips, }: FilterPanelProps): import("react").JSX.Element;
|
|
128
190
|
//# sourceMappingURL=FilterPanel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterPanel.d.ts","sourceRoot":"","sources":["../../src/organisms/FilterPanel.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAU,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"FilterPanel.d.ts","sourceRoot":"","sources":["../../src/organisms/FilterPanel.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAU,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAW5D,OAAO,EAOL,KAAK,kBAAkB,EAExB,MAAM,mBAAmB,CAAC;AAc3B,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,QAAQ,GACR,MAAM,GACN,WAAW,GACX,QAAQ,GACR,SAAS,GACT,UAAU,CAAC;AAEf,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,eAAe,CAAC;IACtB;;0FAEsF;IACtF,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB;+EAC2E;IAC3E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,8EAA8E;IAC9E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAChC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,SAAS,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACjC;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AA8QD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,OAAO,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IAC/C;;;oEAGgE;IAChE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,MAAM,EAAE,cAAc,EACtB,OAAO,EACP,OAAO,EACP,OAAO,EACP,aAAa,EACb,aAAoB,EACpB,cAAsB,EACtB,SAAgB,GACjB,EAAE,gBAAgB,+BAsZlB"}
|
|
@@ -1,4 +1,37 @@
|
|
|
1
|
-
|
|
1
|
+
/** Where the toast stack sits — the six anchors sonner supports. */
|
|
2
|
+
export type ToastPosition = "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right";
|
|
3
|
+
/**
|
|
4
|
+
* Distance of the stack from the viewport edges: one value for every edge
|
|
5
|
+
* (`24`, `"2rem"`) or per edge (`{ bottom: 96, right: 24 }`). Numbers are px.
|
|
6
|
+
*/
|
|
7
|
+
export type ToastOffset = string | number | {
|
|
8
|
+
top?: string | number;
|
|
9
|
+
right?: string | number;
|
|
10
|
+
bottom?: string | number;
|
|
11
|
+
left?: string | number;
|
|
12
|
+
};
|
|
13
|
+
export interface ToastProviderProps {
|
|
14
|
+
/**
|
|
15
|
+
* Stack anchor. The fixed `bottom-right` sits exactly on a right-docked
|
|
16
|
+
* Sheet's footer — an error toast covered its primary "Kaydet" button and,
|
|
17
|
+
* with the pointer resting on the button, never auto-dismissed
|
|
18
|
+
* (NB-TOAST-POSITION-01). Hosts that dock side panels can move the stack.
|
|
19
|
+
* @default "bottom-right"
|
|
20
|
+
*/
|
|
21
|
+
position?: ToastPosition;
|
|
22
|
+
/**
|
|
23
|
+
* Viewport-edge offset (desktop). Omitted → sonner's default (24px).
|
|
24
|
+
* Note: below 600px viewport width sonner uses `mobileOffset` instead.
|
|
25
|
+
*/
|
|
26
|
+
offset?: ToastOffset;
|
|
27
|
+
/** Viewport-edge offset below 600px width. Omitted → sonner's default (16px). */
|
|
28
|
+
mobileOffset?: ToastOffset;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Mount ONCE at the app host. All props are optional; with none the toaster
|
|
32
|
+
* is configured exactly as before (`bottom-right`, 5s, package styling).
|
|
33
|
+
*/
|
|
34
|
+
export declare function ToastProvider({ position, offset, mobileOffset }?: ToastProviderProps): import("react").JSX.Element;
|
|
2
35
|
export declare const toast: {
|
|
3
36
|
success: (message: string) => string | number;
|
|
4
37
|
error: (message: string) => string | number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../src/organisms/Toast.tsx"],"names":[],"mappings":"AAEA,wBAAgB,aAAa,
|
|
1
|
+
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../src/organisms/Toast.tsx"],"names":[],"mappings":"AAEA,oEAAoE;AACpE,MAAM,MAAM,aAAa,GACrB,UAAU,GACV,YAAY,GACZ,WAAW,GACX,aAAa,GACb,eAAe,GACf,cAAc,CAAC;AAEnB;;;GAGG;AACH,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,MAAM,GACN;IAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AAEzG,MAAM,WAAW,kBAAkB;IACjC;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,iFAAiF;IACjF,YAAY,CAAC,EAAE,WAAW,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,QAAyB,EAAE,MAAM,EAAE,YAAY,EAAE,GAAE,kBAAuB,+BA4BzG;AAED,eAAO,MAAM,KAAK;uBACG,MAAM;qBACR,MAAM;uBACJ,MAAM;oBACT,MAAM;uBACH,MAAM;mBACV,MAAM,GAAG,MAAM;CAC/B,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FilterPanel operator registry — the single source for every operator code the
|
|
3
|
+
* panel can emit on `FilterValue.operator`, its picker symbol and its label key.
|
|
4
|
+
* Shared with `ListPageLayout` so an active-filter chip renders a value-less
|
|
5
|
+
* operator the same way the panel does. (NB-FILTER-EMPTY-OP-01)
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Every operator code `FilterPanel` can emit on `FilterValue.operator` — the exact
|
|
9
|
+
* wire tokens, an UPPERCASE word or a math symbol. lena-v2's SDK
|
|
10
|
+
* `FilterOperator.fromWire` parses exactly these (words case-insensitively,
|
|
11
|
+
* symbols exactly).
|
|
12
|
+
*/
|
|
13
|
+
export type FilterOperatorCode = "CONTAINS" | "=" | "!=" | "STARTS_WITH" | "ENDS_WITH" | ">" | "<" | ">=" | "<=" | "IS_EMPTY" | "IS_NOT_EMPTY";
|
|
14
|
+
/**
|
|
15
|
+
* The value-less operators: the operator alone IS the filter ("field is empty" /
|
|
16
|
+
* "field is not empty"), emitted with `value: ""`. UPPERCASE words like the
|
|
17
|
+
* package's other word tokens (`CONTAINS`, `STARTS_WITH`) — the tokens lena-v2's
|
|
18
|
+
* SDK `FilterOperator.IS_EMPTY` / `IS_NOT_EMPTY` carry on the wire.
|
|
19
|
+
*/
|
|
20
|
+
export declare const FILTER_EMPTY_OPERATORS: readonly ["IS_EMPTY", "IS_NOT_EMPTY"];
|
|
21
|
+
export type FilterEmptyOperator = (typeof FILTER_EMPTY_OPERATORS)[number];
|
|
22
|
+
export interface OperatorDef {
|
|
23
|
+
value: string;
|
|
24
|
+
symbol: string;
|
|
25
|
+
labelKey: string;
|
|
26
|
+
}
|
|
27
|
+
export declare const OPERATOR_DEFS: Record<FilterOperatorCode, OperatorDef>;
|
|
28
|
+
/**
|
|
29
|
+
* Canonical form of a raw operator token: word tokens upper-cased after
|
|
30
|
+
* trimming (mirrors the SDK's case-insensitive word match), symbols trimmed.
|
|
31
|
+
* Returns `undefined` for a token the package does not know.
|
|
32
|
+
*/
|
|
33
|
+
export declare function toFilterOperatorCode(raw: string | undefined | null): FilterOperatorCode | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* The canonical value-less operator a raw wire token denotes — `"IS_EMPTY"` /
|
|
36
|
+
* `"IS_NOT_EMPTY"` for those words in any case, trimmed (`" is_empty "` →
|
|
37
|
+
* `"IS_EMPTY"`); `undefined` for anything else. Wire tokens only: a chip symbol
|
|
38
|
+
* (`∅`) is not a wire token — see {@link valuelessOperatorOf} for that side.
|
|
39
|
+
* Use this whenever the canonical code is needed (registry lookup, emitting).
|
|
40
|
+
*/
|
|
41
|
+
export declare function toValuelessFilterOperator(raw: string | undefined | null): FilterEmptyOperator | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* `true` for `IS_EMPTY` / `IS_NOT_EMPTY` (case-insensitive, trimmed) — an operator
|
|
44
|
+
* that carries no value. Use it on the consumer side to keep a value-less
|
|
45
|
+
* `FilterValue` (whose `value` is `""`) instead of dropping it as "empty".
|
|
46
|
+
*
|
|
47
|
+
* A plain `boolean`, deliberately NOT a type guard: it accepts `" is_empty "`,
|
|
48
|
+
* which is not the canonical `FilterEmptyOperator` — narrowing the raw string
|
|
49
|
+
* would let it index {@link OPERATOR_DEFS} as if it were (KAUDIT R1-F02). For the
|
|
50
|
+
* canonical code use {@link toValuelessFilterOperator}.
|
|
51
|
+
*/
|
|
52
|
+
export declare function isValuelessFilterOperator(raw: string | undefined | null): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* The picker symbol for an operator code (`"!="` → `"≠"`, `"IS_EMPTY"` → `"∅"`) —
|
|
55
|
+
* what `ActiveFilter.operator` expects. An unknown token is returned unchanged.
|
|
56
|
+
*/
|
|
57
|
+
export declare function getFilterOperatorSymbol(raw: string): string;
|
|
58
|
+
/**
|
|
59
|
+
* The value-less operator a chip operator denotes — accepts the wire code
|
|
60
|
+
* (`IS_EMPTY`) as well as its symbol (`∅`), since `ActiveFilter.operator` is
|
|
61
|
+
* documented as the symbol but a consumer may forward `FilterValue.operator`.
|
|
62
|
+
*/
|
|
63
|
+
export declare function valuelessOperatorOf(raw: string | undefined): FilterEmptyOperator | undefined;
|
|
64
|
+
/**
|
|
65
|
+
* Keeps only the operator codes the package knows, de-duplicated, in the given
|
|
66
|
+
* order (a `string[]` from untyped config may carry anything).
|
|
67
|
+
*/
|
|
68
|
+
export declare function knownOperatorCodes(codes: readonly string[]): FilterOperatorCode[];
|
|
69
|
+
//# sourceMappingURL=filterOperators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filterOperators.d.ts","sourceRoot":"","sources":["../../src/organisms/filterOperators.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAC1B,UAAU,GACV,GAAG,GACH,IAAI,GACJ,aAAa,GACb,WAAW,GACX,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,UAAU,GACV,cAAc,CAAC;AAEnB;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,uCAAwC,CAAC;AAE5E,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,kBAAkB,EAAE,WAAW,CAYjE,CAAC;AAMF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,kBAAkB,GAAG,SAAS,CAKnG;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,mBAAmB,GAAG,SAAS,CAGzG;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAEjF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG3D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,mBAAmB,GAAG,SAAS,CAM5F;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,kBAAkB,EAAE,CAOjF"}
|
|
@@ -2,7 +2,7 @@ export { Dialog, type DialogProps } from './Dialog';
|
|
|
2
2
|
export { Sheet, type SheetProps, type SheetCloseReason } from './Sheet';
|
|
3
3
|
export { Tabs, type TabsProps, type TabItem } from './Tabs';
|
|
4
4
|
export { UnifiedTabs, UnifiedTabPanel, type UnifiedTabsProps, type UnifiedTabItem, type UnifiedTabPanelProps } from './UnifiedTabs';
|
|
5
|
-
export { ToastProvider, toast } from './Toast';
|
|
5
|
+
export { ToastProvider, toast, type ToastProviderProps, type ToastPosition, type ToastOffset } from './Toast';
|
|
6
6
|
export { Popover, type PopoverProps } from './Popover';
|
|
7
7
|
export { GlobalSearch, type GlobalSearchProps, type GlobalSearchItem } from './GlobalSearch';
|
|
8
8
|
export { Breadcrumb, type BreadcrumbProps, type BreadcrumbItem } from './Breadcrumb';
|
|
@@ -10,6 +10,7 @@ export { Pagination, type PaginationProps } from './Pagination';
|
|
|
10
10
|
export { DataTable, DataTableColumnHeader, type DataTableProps, type DataTableColumnHeaderProps, type BulkAction, type PaginationInfo, type RowAction, type DataTableDensity, type ToolbarVariant } from './DataTable';
|
|
11
11
|
export { Table, TableHeader, TableBody, TableFooter, TableRow, TableHead, TableCell, TableCaption, type TableProps, type TableHeaderProps, type TableBodyProps, type TableFooterProps, type TableRowProps, type TableHeadProps, type TableCellProps, type TableCaptionProps, } from './Table';
|
|
12
12
|
export { FilterPanel, type FilterPanelProps, type FilterField, type FilterValue, type FilterFieldType } from './FilterPanel';
|
|
13
|
+
export { FILTER_EMPTY_OPERATORS, isValuelessFilterOperator, toValuelessFilterOperator, getFilterOperatorSymbol, type FilterOperatorCode, type FilterEmptyOperator } from './filterOperators';
|
|
13
14
|
export { JsonEditor, type JsonEditorProps } from './JsonEditor';
|
|
14
15
|
export { RichTextEditor, type RichTextEditorProps, type RichTextToolbarControl, } from './RichTextEditor';
|
|
15
16
|
export { JsonViewer, type JsonViewerProps } from './JsonViewer';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/organisms/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACpI,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/organisms/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACpI,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAC9G,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,KAAK,cAAc,EAAE,KAAK,0BAA0B,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACvN,OAAO,EACL,KAAK,EACL,WAAW,EACX,SAAS,EACT,WAAW,EACX,QAAQ,EACR,SAAS,EACT,SAAS,EACT,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,iBAAiB,GACvB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAC7H,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7L,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,GAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,wBAAwB,GAC9B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,OAAO,EACP,eAAe,EACf,cAAc,EACd,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,WAAW,CAAC"}
|