@geovi/the-datagrid 0.0.0-preview.0.0.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.
Files changed (41) hide show
  1. package/README.md +293 -0
  2. package/dist/ReactDataGrid.d.ts +9 -0
  3. package/dist/ReactDataGrid.d.ts.map +1 -0
  4. package/dist/components/ui/button.d.ts +12 -0
  5. package/dist/components/ui/button.d.ts.map +1 -0
  6. package/dist/components/ui/checkbox.d.ts +5 -0
  7. package/dist/components/ui/checkbox.d.ts.map +1 -0
  8. package/dist/components/ui/command.d.ts +81 -0
  9. package/dist/components/ui/command.d.ts.map +1 -0
  10. package/dist/components/ui/dialog.d.ts +20 -0
  11. package/dist/components/ui/dialog.d.ts.map +1 -0
  12. package/dist/components/ui/dropdown-menu.d.ts +28 -0
  13. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  14. package/dist/components/ui/input.d.ts +4 -0
  15. package/dist/components/ui/input.d.ts.map +1 -0
  16. package/dist/components/ui/label.d.ts +6 -0
  17. package/dist/components/ui/label.d.ts.map +1 -0
  18. package/dist/components/ui/popover.d.ts +8 -0
  19. package/dist/components/ui/popover.d.ts.map +1 -0
  20. package/dist/components/ui/select.d.ts +14 -0
  21. package/dist/components/ui/select.d.ts.map +1 -0
  22. package/dist/components/ui/table.d.ts +11 -0
  23. package/dist/components/ui/table.d.ts.map +1 -0
  24. package/dist/filters/utils.d.ts +12 -0
  25. package/dist/filters/utils.d.ts.map +1 -0
  26. package/dist/hooks/useControllableState.d.ts +6 -0
  27. package/dist/hooks/useControllableState.d.ts.map +1 -0
  28. package/dist/index.js +4064 -0
  29. package/dist/lib/utils.d.ts +3 -0
  30. package/dist/lib/utils.d.ts.map +1 -0
  31. package/dist/main.d.ts +3 -0
  32. package/dist/main.d.ts.map +1 -0
  33. package/dist/sorting/utils.d.ts +13 -0
  34. package/dist/sorting/utils.d.ts.map +1 -0
  35. package/dist/types.d.ts +169 -0
  36. package/dist/types.d.ts.map +1 -0
  37. package/dist/utils/column.d.ts +4 -0
  38. package/dist/utils/column.d.ts.map +1 -0
  39. package/dist/utils/helpers.d.ts +11 -0
  40. package/dist/utils/helpers.d.ts.map +1 -0
  41. package/package.json +90 -0
package/README.md ADDED
@@ -0,0 +1,293 @@
1
+ # the-datagrid
2
+
3
+ A modern, feature-rich React data grid built on **TanStack Table** and styled with **shadcn/ui + Tailwind CSS v4**.
4
+
5
+ ## Features
6
+
7
+ - Virtualized rendering for large datasets
8
+ - Sorting (single + multi-column)
9
+ - Filtering with a built-in filter row and operators
10
+ - Column management (reorder, resize, auto-size)
11
+ - Pagination (local + remote)
12
+ - Row selection (checkbox column)
13
+ - Modern shadcn/ui look-and-feel (Tailwind CSS v4)
14
+ - Fully typed TypeScript API
15
+ - Migration-friendly API inspired by Inovua ReactDataGrid
16
+
17
+ ## Installation
18
+
19
+ ```bash
20
+ npm install the-datagrid
21
+ # or
22
+ yarn add the-datagrid
23
+ # or
24
+ pnpm add the-datagrid
25
+ ```
26
+
27
+ ## Peer dependencies
28
+
29
+ This library expects **React** and **React DOM** to be provided by your app:
30
+
31
+ ```bash
32
+ npm install react react-dom
33
+ ```
34
+
35
+ ## Styling requirements (Tailwind v4 + shadcn/ui theme)
36
+
37
+ `the-datagrid` uses Tailwind utility classes and shadcn/ui theme tokens (CSS variables like `--background`, `--foreground`, etc.). If your project already uses shadcn/ui, you’re typically done—just ensure Tailwind is scanning this package for class usage.
38
+
39
+ ### Tailwind v4: make sure Tailwind scans this package
40
+
41
+ Add a `@source` directive to your main CSS entry so Tailwind includes classes used inside `the-datagrid`’s published output.
42
+
43
+ ```css
44
+ @import "tailwindcss";
45
+
46
+ /* Tailwind v4: scan the library output for class usage */
47
+ @source "../node_modules/the-datagrid/dist/**/*.{js,jsx,ts,tsx}";
48
+ ```
49
+
50
+ ### Ensure shadcn/ui theme variables exist
51
+
52
+ If you haven’t set up shadcn/ui theming yet, follow the shadcn/ui theming guidance and add the CSS variables to your global stylesheet.
53
+
54
+ Dark mode is supported via the `.dark` class on a parent/root element (typical shadcn setup).
55
+
56
+ ---
57
+
58
+ ## Tailwind v4 setup example (Vite)
59
+
60
+ If you’re using Vite, you can enable Tailwind v4 via the official Vite plugin:
61
+
62
+ ```ts
63
+ import { defineConfig } from "vite";
64
+ import react from "@vitejs/plugin-react";
65
+ import tailwindcss from "@tailwindcss/vite";
66
+
67
+ export default defineConfig({
68
+ plugins: [react(), tailwindcss()],
69
+ });
70
+ ```
71
+
72
+ Then in your main CSS (e.g. `src/index.css`):
73
+
74
+ ```css
75
+ @import "tailwindcss";
76
+ @source "../node_modules/the-datagrid/dist/**/*.{js,jsx,ts,tsx}";
77
+ ```
78
+
79
+ If you’re using another framework (e.g. Next.js), keep your existing Tailwind v4 setup and add the same `@source` directive to your global CSS.
80
+
81
+ ---
82
+
83
+ ## Basic usage
84
+
85
+ ```tsx
86
+ import { ReactDataGrid } from "the-datagrid";
87
+ import type { TypeColumns } from "the-datagrid";
88
+
89
+ export default function App() {
90
+ const columns: TypeColumns = [
91
+ { name: "id", header: "ID", sortable: true, filterable: true },
92
+ { name: "name", header: "Name", sortable: true, filterable: true },
93
+ { name: "email", header: "Email", sortable: true, filterable: true },
94
+ ];
95
+
96
+ const rows = [
97
+ { id: 1, name: "John Doe", email: "john@example.com" },
98
+ { id: 2, name: "Jane Smith", email: "jane@example.com" },
99
+ ];
100
+
101
+ return (
102
+ <ReactDataGrid
103
+ idProperty="id"
104
+ columns={columns}
105
+ dataSource={rows}
106
+ virtualized
107
+ enableFiltering
108
+ />
109
+ );
110
+ }
111
+ ```
112
+
113
+ ## Advanced usage
114
+
115
+ ```tsx
116
+ import { useMemo, useState } from "react";
117
+ import { ReactDataGrid } from "the-datagrid";
118
+ import type {
119
+ TypeColumns,
120
+ TypeFilterValue,
121
+ TypeI18n,
122
+ TypeOnSelectionChangeArg,
123
+ TypeRowSelection,
124
+ } from "the-datagrid";
125
+
126
+ export default function App() {
127
+ const [selected, setSelected] = useState<TypeRowSelection>({});
128
+ const [columnOrder, setColumnOrder] = useState<string[]>([]);
129
+ const [filterValue, setFilterValue] = useState<TypeFilterValue | null>(null);
130
+
131
+ const columns: TypeColumns = useMemo(
132
+ () => [
133
+ { name: "id", header: "ID", sortable: true, filterable: true },
134
+ { name: "name", header: "Name", sortable: true, filterable: true },
135
+ { name: "email", header: "Email", sortable: true, filterable: true },
136
+ ],
137
+ []
138
+ );
139
+
140
+ const rows = useMemo(
141
+ () => [
142
+ { id: 1, name: "John Doe", email: "john@example.com" },
143
+ { id: 2, name: "Jane Smith", email: "jane@example.com" },
144
+ ],
145
+ []
146
+ );
147
+
148
+ const i18n: TypeI18n = useMemo(
149
+ () => ({
150
+ noRecords: "No records",
151
+ clear: "Clear",
152
+ contains: "Contains",
153
+ sortAsc: "Sort A→Z",
154
+ sortDesc: "Sort Z→A",
155
+ }),
156
+ []
157
+ );
158
+
159
+ const onSelectionChange = (config: TypeOnSelectionChangeArg) => {
160
+ setSelected(config.selected);
161
+ };
162
+
163
+ return (
164
+ <ReactDataGrid
165
+ theme="default"
166
+ idProperty="id"
167
+ columns={columns}
168
+ columnOrder={columnOrder}
169
+ dataSource={rows}
170
+ enableFiltering
171
+ defaultFilterValue={filterValue ?? undefined}
172
+ onFilterValueChange={(v) => setFilterValue(v)}
173
+ filteredRowsCount={(count) => console.log("Filtered rows:", count)}
174
+ enableColumnFilterContextMenu
175
+ enableColumnAutosize
176
+ skipHeaderOnAutoSize={false}
177
+ onColumnOrderChange={setColumnOrder}
178
+ virtualized
179
+ columnUserSelect
180
+ i18n={i18n}
181
+ showColumnMenuTool={false}
182
+ checkboxColumn
183
+ onSelectionChange={onSelectionChange}
184
+ selected={selected}
185
+ />
186
+ );
187
+ }
188
+ ```
189
+
190
+ ## Props (high-level)
191
+
192
+ Note: this is a curated overview. For the complete contract, refer to the exported TypeScript types.
193
+
194
+ ### Core
195
+
196
+ | Prop | Type | Default | Description |
197
+ | ------------ | ---------------- | ------------ | ------------------------------------------- |
198
+ | `idProperty` | `string` | **required** | Property name used as unique row identifier |
199
+ | `columns` | `TypeColumns` | **required** | Column definitions |
200
+ | `dataSource` | `TypeDataSource` | **required** | Data source (array, function, or promise) |
201
+
202
+ ### Display
203
+
204
+ | Prop | Type | Default | Description |
205
+ | ------------------ | ----------------------------- | ----------- | ------------------------------ |
206
+ | `theme` | `string` | `"default"` | Theme name |
207
+ | `rowHeight` | `number` | `44` | Row height in pixels |
208
+ | `headerHeight` | `number` | `40` | Header height in pixels |
209
+ | `filterRowHeight` | `number` | `44` | Filter row height in pixels |
210
+ | `virtualized` | `boolean` | `true` | Enable virtual scrolling |
211
+ | `columnUserSelect` | `boolean \| "text" \| "none"` | `true` | Column text selection behavior |
212
+
213
+ ### Columns
214
+
215
+ | Prop | Type | Default | Description |
216
+ | ---------------------- | --------------------------- | ------- | --------------------------------- |
217
+ | `columnOrder` | `string[]` | - | Ordered array of column ids/names |
218
+ | `onColumnOrderChange` | `(order: string[]) => void` | - | Fired when column order changes |
219
+ | `enableColumnAutosize` | `boolean` | `true` | Auto-calc column widths |
220
+ | `skipHeaderOnAutoSize` | `boolean` | `false` | Skip header when auto-sizing |
221
+ | `showColumnMenuTool` | `boolean` | `false` | Show column menu tool in header |
222
+
223
+ ### Filtering
224
+
225
+ | Prop | Type | Default | Description |
226
+ | ------------------------------- | ---------------------------------- | ------- | --------------------------------- |
227
+ | `enableFiltering` | `boolean` | `true` | Enable filter row |
228
+ | `filterValue` | `TypeFilterValue` | - | Controlled filter value |
229
+ | `defaultFilterValue` | `TypeFilterValue` | - | Uncontrolled initial filter value |
230
+ | `onFilterValueChange` | `(value: TypeFilterValue) => void` | - | Fired on filter change |
231
+ | `enableColumnFilterContextMenu` | `boolean` | `false` | Context menu for filter operators |
232
+ | `filteredRowsCount` | `(count: number) => void` | - | Reports filtered row count |
233
+
234
+ ### Sorting
235
+
236
+ | Prop | Type | Default | Description |
237
+ | ------------------------- | ------------------------------ | ------- | ----------------------------- |
238
+ | `sortInfo` | `TypeSortInfo` | - | Controlled sort state |
239
+ | `defaultSortInfo` | `TypeSortInfo` | - | Uncontrolled initial sort |
240
+ | `onSortInfoChange` | `(info: TypeSortInfo) => void` | - | Fired on sort change |
241
+ | `allowUnsort` | `boolean` | `true` | Allow returning to “unsorted” |
242
+ | `defaultSortingDirection` | `"asc" \| "desc"` | `"asc"` | Default sort direction |
243
+
244
+ ### Selection
245
+
246
+ | Prop | Type | Default | Description |
247
+ | ------------------- | -------------------------------------------- | ------- | ------------------------------ |
248
+ | `checkboxColumn` | `boolean \| IColumn` | `false` | Enable checkbox column |
249
+ | `selected` | `TypeRowSelection` | - | Controlled selection |
250
+ | `defaultSelected` | `TypeRowSelection` | - | Uncontrolled initial selection |
251
+ | `onSelectionChange` | `(config: TypeOnSelectionChangeArg) => void` | - | Fired on selection changes |
252
+
253
+ ### Pagination
254
+
255
+ | Prop | Type | Default | Description |
256
+ | --------------- | -------------------------------------- | ---------------------- | ---------------------------- |
257
+ | `pagination` | `true \| false \| "remote" \| "local"` | `true` | Pagination mode |
258
+ | `skip` | `number` | - | Controlled offset |
259
+ | `defaultSkip` | `number` | `0` | Initial offset |
260
+ | `limit` | `number` | - | Controlled page size |
261
+ | `defaultLimit` | `number` | `10` | Initial page size |
262
+ | `onSkipChange` | `(skip: number) => void` | - | Fired when offset changes |
263
+ | `onLimitChange` | `(limit: number) => void` | - | Fired when page size changes |
264
+ | `pageSizes` | `number[]` | `[10, 20, 30, 40, 50]` | Allowed page sizes |
265
+
266
+ ### Misc
267
+
268
+ | Prop | Type | Default | Description |
269
+ | ----------- | -------------------------- | ------- | ---------------------------------------- |
270
+ | `i18n` | `TypeI18n` | - | Text overrides (labels, operators, etc.) |
271
+ | `loading` | `boolean` | - | Loading state |
272
+ | `onReady` | `(ref: RefObject) => void` | - | Called when grid ref is ready |
273
+ | `handle` | `(ref: RefObject) => void` | - | Alias for `onReady` |
274
+ | `className` | `string` | - | Extra CSS classes |
275
+ | `style` | `CSSProperties` | - | Inline styles |
276
+
277
+ ## TypeScript
278
+
279
+ The package ships full type definitions.
280
+
281
+ ```tsx
282
+ import { ReactDataGrid } from "the-datagrid";
283
+ import type {
284
+ TypeColumns,
285
+ TypeColumn,
286
+ TypeDataGridProps,
287
+ TypeRowSelection,
288
+ TypeOnSelectionChangeArg,
289
+ TypeFilterValue,
290
+ TypeSortInfo,
291
+ TypeI18n,
292
+ } from "the-datagrid";
293
+ ```
@@ -0,0 +1,9 @@
1
+ import { TypeDataGridProps } from './types';
2
+ /**
3
+ * Optional compat export: Inovua exports `plugins`. We export an empty list.
4
+ */
5
+ export declare const plugins: readonly unknown[];
6
+ declare function ReactDataGrid(props: TypeDataGridProps): import("react/jsx-runtime").JSX.Element;
7
+ export { ReactDataGrid };
8
+ export default ReactDataGrid;
9
+ //# sourceMappingURL=ReactDataGrid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactDataGrid.d.ts","sourceRoot":"","sources":["../src/ReactDataGrid.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGV,iBAAiB,EAIlB,MAAM,SAAS,CAAC;AAkDjB;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,SAAS,OAAO,EAAgB,CAAC;AASvD,iBAAS,aAAa,CAAC,KAAK,EAAE,iBAAiB,2CA84B9C;AAED,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,eAAe,aAAa,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import * as React from "react";
3
+ declare const buttonVariants: (props?: ({
4
+ variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
5
+ size?: "default" | "sm" | "lg" | "icon" | null | undefined;
6
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
+ export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
8
+ asChild?: boolean;
9
+ }
10
+ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
11
+ export { Button, buttonVariants };
12
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/components/ui/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,QAAA,MAAM,cAAc;;;8EA4BnB,CAAA;AAED,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EACnD,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,QAAA,MAAM,MAAM,uFAWX,CAAA;AAGD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA"}
@@ -0,0 +1,5 @@
1
+ import * as React from "react";
2
+ import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
3
+ declare const Checkbox: React.ForwardRefExoticComponent<Omit<CheckboxPrimitive.CheckboxProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
4
+ export { Checkbox };
5
+ //# sourceMappingURL=checkbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../../src/components/ui/checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAA;AAK7D,QAAA,MAAM,QAAQ,iKAkBZ,CAAA;AAGF,OAAO,EAAE,QAAQ,EAAE,CAAA"}
@@ -0,0 +1,81 @@
1
+ import { DialogProps } from '@radix-ui/react-dialog';
2
+ import * as React from "react";
3
+ declare const Command: React.ForwardRefExoticComponent<Omit<{
4
+ children?: React.ReactNode;
5
+ } & Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
6
+ ref?: React.Ref<HTMLDivElement>;
7
+ } & {
8
+ asChild?: boolean;
9
+ }, "asChild" | "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
10
+ label?: string;
11
+ shouldFilter?: boolean;
12
+ filter?: (value: string, search: string, keywords?: string[]) => number;
13
+ defaultValue?: string;
14
+ value?: string;
15
+ onValueChange?: (value: string) => void;
16
+ loop?: boolean;
17
+ disablePointerSelection?: boolean;
18
+ vimBindings?: boolean;
19
+ } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
20
+ declare const CommandDialog: ({ children, ...props }: DialogProps) => import("react/jsx-runtime").JSX.Element;
21
+ declare const CommandInput: React.ForwardRefExoticComponent<Omit<Omit<Pick<Pick<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "key" | keyof React.InputHTMLAttributes<HTMLInputElement>> & {
22
+ ref?: React.Ref<HTMLInputElement>;
23
+ } & {
24
+ asChild?: boolean;
25
+ }, "asChild" | "key" | keyof React.InputHTMLAttributes<HTMLInputElement>>, "type" | "value" | "onChange"> & {
26
+ value?: string;
27
+ onValueChange?: (search: string) => void;
28
+ } & React.RefAttributes<HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
29
+ declare const CommandList: React.ForwardRefExoticComponent<Omit<{
30
+ children?: React.ReactNode;
31
+ } & Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
32
+ ref?: React.Ref<HTMLDivElement>;
33
+ } & {
34
+ asChild?: boolean;
35
+ }, "asChild" | "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
36
+ label?: string;
37
+ } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
38
+ declare const CommandEmpty: React.ForwardRefExoticComponent<Omit<{
39
+ children?: React.ReactNode;
40
+ } & Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
41
+ ref?: React.Ref<HTMLDivElement>;
42
+ } & {
43
+ asChild?: boolean;
44
+ }, "asChild" | "key" | keyof React.HTMLAttributes<HTMLDivElement>> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
45
+ declare const CommandGroup: React.ForwardRefExoticComponent<Omit<{
46
+ children?: React.ReactNode;
47
+ } & Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
48
+ ref?: React.Ref<HTMLDivElement>;
49
+ } & {
50
+ asChild?: boolean;
51
+ }, "asChild" | "key" | keyof React.HTMLAttributes<HTMLDivElement>>, "value" | "heading"> & {
52
+ heading?: React.ReactNode;
53
+ value?: string;
54
+ forceMount?: boolean;
55
+ } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
56
+ declare const CommandSeparator: React.ForwardRefExoticComponent<Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
57
+ ref?: React.Ref<HTMLDivElement>;
58
+ } & {
59
+ asChild?: boolean;
60
+ }, "asChild" | "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
61
+ alwaysRender?: boolean;
62
+ } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
63
+ declare const CommandItem: React.ForwardRefExoticComponent<Omit<{
64
+ children?: React.ReactNode;
65
+ } & Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
66
+ ref?: React.Ref<HTMLDivElement>;
67
+ } & {
68
+ asChild?: boolean;
69
+ }, "asChild" | "key" | keyof React.HTMLAttributes<HTMLDivElement>>, "disabled" | "value" | "onSelect"> & {
70
+ disabled?: boolean;
71
+ onSelect?: (value: string) => void;
72
+ value?: string;
73
+ keywords?: string[];
74
+ forceMount?: boolean;
75
+ } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
76
+ declare const CommandShortcut: {
77
+ ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): import("react/jsx-runtime").JSX.Element;
78
+ displayName: string;
79
+ };
80
+ export { Command, CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandShortcut, CommandSeparator, };
81
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/components/ui/command.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAOzD,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;sFAYX,CAAA;AAGF,QAAA,MAAM,aAAa,GAAI,wBAAwB,WAAW,4CAUzD,CAAA;AAED,QAAA,MAAM,YAAY;;;;;;;0FAehB,CAAA;AAIF,QAAA,MAAM,WAAW;;;;;;;;sFASf,CAAA;AAIF,QAAA,MAAM,YAAY;;;;;;uJAShB,CAAA;AAIF,QAAA,MAAM,YAAY;;;;;;;;;;sFAYhB,CAAA;AAIF,QAAA,MAAM,gBAAgB;;;;;;sFASpB,CAAA;AAGF,QAAA,MAAM,WAAW;;;;;;;;;;;;sFAYf,CAAA;AAIF,QAAA,MAAM,eAAe;8BAGlB,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;;CAUvC,CAAA;AAGD,OAAO,EACL,OAAO,EACP,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,eAAe,EACf,gBAAgB,GACjB,CAAA"}
@@ -0,0 +1,20 @@
1
+ import * as React from "react";
2
+ import * as DialogPrimitive from "@radix-ui/react-dialog";
3
+ declare const Dialog: React.FC<DialogPrimitive.DialogProps>;
4
+ declare const DialogTrigger: React.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
5
+ declare const DialogPortal: React.FC<DialogPrimitive.DialogPortalProps>;
6
+ declare const DialogClose: React.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
7
+ declare const DialogOverlay: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
8
+ declare const DialogContent: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
9
+ declare const DialogHeader: {
10
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
11
+ displayName: string;
12
+ };
13
+ declare const DialogFooter: {
14
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
15
+ displayName: string;
16
+ };
17
+ declare const DialogTitle: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
18
+ declare const DialogDescription: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
19
+ export { Dialog, DialogPortal, DialogOverlay, DialogTrigger, DialogClose, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, };
20
+ //# sourceMappingURL=dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../src/components/ui/dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAA;AAKzD,QAAA,MAAM,MAAM,uCAAuB,CAAA;AAEnC,QAAA,MAAM,aAAa,8GAA0B,CAAA;AAE7C,QAAA,MAAM,YAAY,6CAAyB,CAAA;AAE3C,QAAA,MAAM,WAAW,4GAAwB,CAAA;AAEzC,QAAA,MAAM,aAAa,8JAYjB,CAAA;AAGF,QAAA,MAAM,aAAa,8JAqBjB,CAAA;AAGF,QAAA,MAAM,YAAY;8BAGf,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;;CAQtC,CAAA;AAGD,QAAA,MAAM,YAAY;8BAGf,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;;CAQtC,CAAA;AAGD,QAAA,MAAM,WAAW,oKAYf,CAAA;AAGF,QAAA,MAAM,iBAAiB,8KASrB,CAAA;AAGF,OAAO,EACL,MAAM,EACN,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAW,EACX,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,GAClB,CAAA"}
@@ -0,0 +1,28 @@
1
+ import * as React from "react";
2
+ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
3
+ declare const DropdownMenu: React.FC<DropdownMenuPrimitive.DropdownMenuProps>;
4
+ declare const DropdownMenuTrigger: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & React.RefAttributes<HTMLButtonElement>>;
5
+ declare const DropdownMenuGroup: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuGroupProps & React.RefAttributes<HTMLDivElement>>;
6
+ declare const DropdownMenuPortal: React.FC<DropdownMenuPrimitive.DropdownMenuPortalProps>;
7
+ declare const DropdownMenuSub: React.FC<DropdownMenuPrimitive.DropdownMenuSubProps>;
8
+ declare const DropdownMenuRadioGroup: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuRadioGroupProps & React.RefAttributes<HTMLDivElement>>;
9
+ declare const DropdownMenuSubTrigger: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubTriggerProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
10
+ inset?: boolean;
11
+ } & React.RefAttributes<HTMLDivElement>>;
12
+ declare const DropdownMenuSubContent: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
13
+ declare const DropdownMenuContent: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
14
+ declare const DropdownMenuItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
15
+ inset?: boolean;
16
+ } & React.RefAttributes<HTMLDivElement>>;
17
+ declare const DropdownMenuCheckboxItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuCheckboxItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
18
+ declare const DropdownMenuRadioItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuRadioItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
19
+ declare const DropdownMenuLabel: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
20
+ inset?: boolean;
21
+ } & React.RefAttributes<HTMLDivElement>>;
22
+ declare const DropdownMenuSeparator: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
23
+ declare const DropdownMenuShortcut: {
24
+ ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): import("react/jsx-runtime").JSX.Element;
25
+ displayName: string;
26
+ };
27
+ export { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuGroup, DropdownMenuPortal, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuRadioGroup, };
28
+ //# sourceMappingURL=dropdown-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-menu.d.ts","sourceRoot":"","sources":["../../../src/components/ui/dropdown-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,qBAAqB,MAAM,+BAA+B,CAAA;AAKtE,QAAA,MAAM,YAAY,mDAA6B,CAAA;AAE/C,QAAA,MAAM,mBAAmB,0HAAgC,CAAA;AAEzD,QAAA,MAAM,iBAAiB,qHAA8B,CAAA;AAErD,QAAA,MAAM,kBAAkB,yDAA+B,CAAA;AAEvD,QAAA,MAAM,eAAe,sDAA4B,CAAA;AAEjD,QAAA,MAAM,sBAAsB,0HAAmC,CAAA;AAE/D,QAAA,MAAM,sBAAsB;YAGhB,OAAO;wCAejB,CAAA;AAIF,QAAA,MAAM,sBAAsB,6KAY1B,CAAA;AAIF,QAAA,MAAM,mBAAmB,0KAgBvB,CAAA;AAGF,QAAA,MAAM,gBAAgB;YAGV,OAAO;wCAYjB,CAAA;AAGF,QAAA,MAAM,wBAAwB,+KAoB5B,CAAA;AAIF,QAAA,MAAM,qBAAqB,4KAmBzB,CAAA;AAGF,QAAA,MAAM,iBAAiB;YAGX,OAAO;wCAYjB,CAAA;AAGF,QAAA,MAAM,qBAAqB,4KASzB,CAAA;AAGF,QAAA,MAAM,oBAAoB;8BAGvB,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;;CAOvC,CAAA;AAGD,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,GACvB,CAAA"}
@@ -0,0 +1,4 @@
1
+ import * as React from "react";
2
+ declare const Input: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
3
+ export { Input };
4
+ //# sourceMappingURL=input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/components/ui/input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,QAAA,MAAM,KAAK,8KAcV,CAAA;AAGD,OAAO,EAAE,KAAK,EAAE,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import * as React from "react";
3
+ import * as LabelPrimitive from "@radix-ui/react-label";
4
+ declare const Label: React.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React.RefAttributes<HTMLLabelElement>, "ref"> & VariantProps<(props?: import('class-variance-authority/types').ClassProp | undefined) => string> & React.RefAttributes<HTMLLabelElement>>;
5
+ export { Label };
6
+ //# sourceMappingURL=label.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../../../src/components/ui/label.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAQjE,QAAA,MAAM,KAAK,4PAUT,CAAA;AAGF,OAAO,EAAE,KAAK,EAAE,CAAA"}
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ import * as PopoverPrimitive from "@radix-ui/react-popover";
3
+ declare const Popover: React.FC<PopoverPrimitive.PopoverProps>;
4
+ declare const PopoverTrigger: React.ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & React.RefAttributes<HTMLButtonElement>>;
5
+ declare const PopoverAnchor: React.ForwardRefExoticComponent<PopoverPrimitive.PopoverAnchorProps & React.RefAttributes<HTMLDivElement>>;
6
+ declare const PopoverContent: React.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
7
+ export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor };
8
+ //# sourceMappingURL=popover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../../src/components/ui/popover.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAA;AAI3D,QAAA,MAAM,OAAO,yCAAwB,CAAA;AAErC,QAAA,MAAM,cAAc,gHAA2B,CAAA;AAE/C,QAAA,MAAM,aAAa,4GAA0B,CAAA;AAE7C,QAAA,MAAM,cAAc,gKAgBlB,CAAA;AAGF,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,CAAA"}
@@ -0,0 +1,14 @@
1
+ import * as React from "react";
2
+ import * as SelectPrimitive from "@radix-ui/react-select";
3
+ declare const Select: React.FC<SelectPrimitive.SelectProps>;
4
+ declare const SelectGroup: React.ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & React.RefAttributes<HTMLDivElement>>;
5
+ declare const SelectValue: React.ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & React.RefAttributes<HTMLSpanElement>>;
6
+ declare const SelectTrigger: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
7
+ declare const SelectScrollUpButton: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollUpButtonProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
8
+ declare const SelectScrollDownButton: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollDownButtonProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
9
+ declare const SelectContent: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
10
+ declare const SelectLabel: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
+ declare const SelectItem: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
12
+ declare const SelectSeparator: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
13
+ export { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectLabel, SelectItem, SelectSeparator, SelectScrollUpButton, SelectScrollDownButton, };
14
+ //# sourceMappingURL=select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../src/components/ui/select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAA;AAKzD,QAAA,MAAM,MAAM,uCAAuB,CAAA;AAEnC,QAAA,MAAM,WAAW,yGAAwB,CAAA;AAEzC,QAAA,MAAM,WAAW,0GAAwB,CAAA;AAEzC,QAAA,MAAM,aAAa,oKAiBjB,CAAA;AAGF,QAAA,MAAM,oBAAoB,qKAcxB,CAAA;AAGF,QAAA,MAAM,sBAAsB,uKAc1B,CAAA;AAIF,QAAA,MAAM,aAAa,8JA6BjB,CAAA;AAGF,QAAA,MAAM,WAAW,4JASf,CAAA;AAGF,QAAA,MAAM,UAAU,2JAmBd,CAAA;AAGF,QAAA,MAAM,eAAe,gKASnB,CAAA;AAGF,OAAO,EACL,MAAM,EACN,WAAW,EACX,WAAW,EACX,aAAa,EACb,aAAa,EACb,WAAW,EACX,UAAU,EACV,eAAe,EACf,oBAAoB,EACpB,sBAAsB,GACvB,CAAA"}
@@ -0,0 +1,11 @@
1
+ import * as React from "react";
2
+ declare const Table: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableElement> & React.RefAttributes<HTMLTableElement>>;
3
+ declare const TableHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
4
+ declare const TableBody: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
5
+ declare const TableFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
6
+ declare const TableRow: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableRowElement> & React.RefAttributes<HTMLTableRowElement>>;
7
+ declare const TableHead: React.ForwardRefExoticComponent<React.ThHTMLAttributes<HTMLTableCellElement> & React.RefAttributes<HTMLTableCellElement>>;
8
+ declare const TableCell: React.ForwardRefExoticComponent<React.TdHTMLAttributes<HTMLTableCellElement> & React.RefAttributes<HTMLTableCellElement>>;
9
+ declare const TableCaption: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableCaptionElement> & React.RefAttributes<HTMLTableCaptionElement>>;
10
+ export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption, };
11
+ //# sourceMappingURL=table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/components/ui/table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,QAAA,MAAM,KAAK,iHAWT,CAAA;AAGF,QAAA,MAAM,WAAW,+HAKf,CAAA;AAGF,QAAA,MAAM,SAAS,+HASb,CAAA;AAGF,QAAA,MAAM,WAAW,+HAYf,CAAA;AAGF,QAAA,MAAM,QAAQ,uHAYZ,CAAA;AAGF,QAAA,MAAM,SAAS,2HAYb,CAAA;AAGF,QAAA,MAAM,SAAS,2HAYb,CAAA;AAGF,QAAA,MAAM,YAAY,+HAShB,CAAA;AAGF,OAAO,EACL,KAAK,EACL,WAAW,EACX,SAAS,EACT,WAAW,EACX,SAAS,EACT,QAAQ,EACR,SAAS,EACT,YAAY,GACb,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { TypeFilterValue, TypeSingleFilterValue } from '../types';
2
+ export declare function normalizeFilterValue(v: TypeFilterValue | undefined): TypeFilterValue;
3
+ export declare function getFilterEntry(filterValue: TypeFilterValue, name: string): TypeSingleFilterValue | undefined;
4
+ export declare function upsertFilterEntry(filterValue: TypeFilterValue, entry: TypeSingleFilterValue | null): TypeFilterValue;
5
+ export declare function setFilterOperator(filterValue: TypeFilterValue, name: string, operator: string): TypeFilterValue;
6
+ export declare function clearFilter(filterValue: TypeFilterValue, name: string): TypeFilterValue;
7
+ export declare function applyLocalFilter(data: any[], filterValue: TypeFilterValue): any[];
8
+ export declare const STRING_OPERATORS: {
9
+ label: string;
10
+ value: string;
11
+ }[];
12
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/filters/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAEtE,wBAAgB,oBAAoB,CAClC,CAAC,EAAE,eAAe,GAAG,SAAS,GAC7B,eAAe,CAGjB;AAED,wBAAgB,cAAc,CAC5B,WAAW,EAAE,eAAe,EAC5B,IAAI,EAAE,MAAM,GACX,qBAAqB,GAAG,SAAS,CAGnC;AAED,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,eAAe,EAC5B,KAAK,EAAE,qBAAqB,GAAG,IAAI,GAClC,eAAe,CAcjB;AAED,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,eAAe,EAC5B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,eAAe,CAIjB;AAED,wBAAgB,WAAW,CACzB,WAAW,EAAE,eAAe,EAC5B,IAAI,EAAE,MAAM,GACX,eAAe,CAIjB;AAGD,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,GAAG,EAAE,EACX,WAAW,EAAE,eAAe,GAC3B,GAAG,EAAE,CAmCP;AAED,eAAO,MAAM,gBAAgB,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAQ9D,CAAA"}
@@ -0,0 +1,6 @@
1
+ export declare function useControllableState<T>(args: {
2
+ value: T | undefined;
3
+ defaultValue: T;
4
+ onChange?: (next: T) => void;
5
+ }): [T, (next: T) => void, boolean];
6
+ //# sourceMappingURL=useControllableState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useControllableState.d.ts","sourceRoot":"","sources":["../../src/hooks/useControllableState.ts"],"names":[],"mappings":"AAEA,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,IAAI,EAAE;IAC5C,KAAK,EAAE,CAAC,GAAG,SAAS,CAAA;IACpB,YAAY,EAAE,CAAC,CAAA;IACf,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAA;CAC7B,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,OAAO,CAAC,CAgBlC"}