@petrarca/sonnet-ui 0.5.0 → 0.7.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/README.md +64 -65
- package/dist/index.d.ts +165 -2
- package/dist/index.js +1198 -510
- package/dist/index.js.map +1 -1
- package/dist/json-editor/index.d.ts +4 -2
- package/dist/json-editor/index.js +32 -17
- package/dist/json-editor/index.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -1,25 +1,29 @@
|
|
|
1
1
|
# @petrarca/sonnet-ui
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The component layer of the Petrarca Sonnet component library. It ships three
|
|
4
|
+
kinds of thing: a stylesheet of design tokens, a Tailwind preset that maps
|
|
5
|
+
those tokens onto utility classes, and React components.
|
|
4
6
|
|
|
5
|
-
## What
|
|
7
|
+
## What it provides
|
|
6
8
|
|
|
7
|
-
**
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
more.
|
|
9
|
+
**Primitives.** Buttons, badges, cards, dialogs, sheets, popovers, dropdowns,
|
|
10
|
+
tabs, selects, tooltips, steppers, scroll areas, resize handles and the rest of
|
|
11
|
+
the building blocks, most of them wrapping Radix.
|
|
11
12
|
|
|
12
|
-
**Data components
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
- **SearchInput** — Faceted search input with chip-based filters (simple, searchFields, faceted modes)
|
|
18
|
-
- **JsonEditor** — CodeMirror JSON editor with validation (subpath: `@petrarca/sonnet-ui/json-editor`)
|
|
13
|
+
**Data components.** `EntityTable` renders a collection from a schema with
|
|
14
|
+
pagination, row actions and pluggable cell renderers. `SearchInput` produces a
|
|
15
|
+
`FilterExpr` in simple, multi-field or faceted mode. `EntitySelect` is an async
|
|
16
|
+
typeahead over an injected fetcher, `EntityTree` and `TreeView` cover
|
|
17
|
+
hierarchies, and `PropertyList` covers read-only display.
|
|
19
18
|
|
|
20
|
-
**
|
|
19
|
+
**Date and time inputs.** Locale-aware date, time and datetime controls with a
|
|
20
|
+
calendar, built on the parsing and formatting layer in `sonnet-core`.
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
**A JSON editor.** CodeMirror with validation and JSON-Pointer-constrained
|
|
23
|
+
editable regions, on its own subpath so the dependency is opt-in.
|
|
24
|
+
|
|
25
|
+
**Design tokens.** `styles.css` and `tailwind-preset.js`, the two files every
|
|
26
|
+
other `@petrarca/sonnet-*` package renders through.
|
|
23
27
|
|
|
24
28
|
## Install
|
|
25
29
|
|
|
@@ -27,44 +31,30 @@ more.
|
|
|
27
31
|
pnpm add @petrarca/sonnet-ui @petrarca/sonnet-core
|
|
28
32
|
```
|
|
29
33
|
|
|
30
|
-
Peer
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
| Peer | Range | Needed for |
|
|
35
|
+
|---|---|---|
|
|
36
|
+
| `react`, `react-dom` | `>=19` | Everything |
|
|
37
|
+
| `tailwindcss` | `>=3` | The preset and every component class |
|
|
38
|
+
| `tailwindcss-animate` | `>=1` | Enter and exit animations on overlays |
|
|
39
|
+
| `@tailwindcss/typography` | `>=0.5` | Add the plugin to your Tailwind config |
|
|
40
|
+
| `@uiw/react-codemirror` | `>=4` | The `./json-editor` subpath only |
|
|
41
|
+
| `@codemirror/state`, `@codemirror/view`, `@codemirror/lang-json` | `>=6` | The `./json-editor` subpath only |
|
|
38
42
|
|
|
39
|
-
|
|
40
|
-
|
|
43
|
+
You do not declare any `@radix-ui/*` package yourself. Radix is a regular
|
|
44
|
+
dependency and arrives transitively
|
|
45
|
+
([ADR-0002](../../docs/adr/0002-radix-is-a-dependency-not-a-peer.md)).
|
|
41
46
|
|
|
42
|
-
|
|
43
|
-
/* index.css */
|
|
44
|
-
@import "@petrarca/sonnet-ui/styles.css";
|
|
45
|
-
|
|
46
|
-
/* Shell layout — add below the import (app-level, not provided by the library) */
|
|
47
|
-
html, body, #root { height: 100%; }
|
|
48
|
-
#root { display: flex; flex-direction: column; overflow: hidden; }
|
|
49
|
-
body { min-height: 100vh; overflow: hidden; }
|
|
50
|
-
```
|
|
47
|
+
## Usage
|
|
51
48
|
|
|
52
|
-
|
|
49
|
+
Import the stylesheet and the preset, then use the components.
|
|
53
50
|
|
|
54
51
|
```css
|
|
52
|
+
/* src/index.css */
|
|
55
53
|
@import "@petrarca/sonnet-ui/styles.css";
|
|
56
|
-
|
|
57
|
-
:root {
|
|
58
|
-
--primary: 210 80% 40%; /* custom brand color */
|
|
59
|
-
}
|
|
60
54
|
```
|
|
61
55
|
|
|
62
|
-
### Tailwind
|
|
63
|
-
|
|
64
|
-
Use the preset in `tailwind.config.js`. It maps all design tokens to Tailwind
|
|
65
|
-
utility classes (`bg-primary`, `text-muted-foreground`, `border-border`, etc.):
|
|
66
|
-
|
|
67
56
|
```js
|
|
57
|
+
// tailwind.config.js
|
|
68
58
|
module.exports = {
|
|
69
59
|
presets: [require("@petrarca/sonnet-ui/tailwind-preset")],
|
|
70
60
|
content: [
|
|
@@ -75,30 +65,39 @@ module.exports = {
|
|
|
75
65
|
};
|
|
76
66
|
```
|
|
77
67
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
68
|
+
```tsx
|
|
69
|
+
import { Badge, Button, Card, CardContent } from "@petrarca/sonnet-ui";
|
|
70
|
+
|
|
71
|
+
export function WidgetCard() {
|
|
72
|
+
return (
|
|
73
|
+
<Card>
|
|
74
|
+
<CardContent className="flex items-center gap-2">
|
|
75
|
+
<Badge badgeColor="green">active</Badge>
|
|
76
|
+
<Button size="sm">Create</Button>
|
|
77
|
+
</CardContent>
|
|
78
|
+
</Card>
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
```
|
|
83
82
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
| `--card` / `--card-foreground` | Card surface / text |
|
|
88
|
-
| `--primary` / `--primary-foreground` | Brand action color |
|
|
89
|
-
| `--destructive` | Error / danger |
|
|
90
|
-
| `--muted` / `--muted-foreground` | Quiet surface / secondary text |
|
|
91
|
-
| `--tertiary-foreground` | Tertiary text (timestamps, helpers) |
|
|
92
|
-
| `--faint-foreground` | Ghost text (annotations, disabled) |
|
|
93
|
-
| `--border` / `--border-subtle` / `--border-strong` | 3-tier border system |
|
|
94
|
-
| `--state-hover` / `--state-selected` | Interaction state backgrounds |
|
|
95
|
-
| `--ring` | Focus ring |
|
|
96
|
-
| `--radius` | Base border radius |
|
|
83
|
+
The second content glob and the app-level layout CSS are the two steps most
|
|
84
|
+
often missed. [Getting started](docs/usage/getting-started.md) covers both, and
|
|
85
|
+
the token reference is in [theming](docs/usage/theming.md).
|
|
97
86
|
|
|
98
|
-
|
|
87
|
+
## Documentation
|
|
99
88
|
|
|
100
|
-
|
|
89
|
+
- [Usage guides](docs/usage/index.md) -- setup, theming,
|
|
90
|
+
[primitives](docs/usage/primitives.md),
|
|
91
|
+
[EntityTable](docs/usage/entity-table.md),
|
|
92
|
+
[SearchInput](docs/usage/search-input.md),
|
|
93
|
+
[trees and selects](docs/usage/trees-and-selects.md),
|
|
94
|
+
[date and time inputs](docs/usage/date-and-time-inputs.md) and the
|
|
95
|
+
[JSON editor](docs/usage/json-editor.md).
|
|
96
|
+
- [Design docs](docs/design/index.md) -- the token architecture and the
|
|
97
|
+
reasoning behind the data components.
|
|
98
|
+
- [Workspace documentation](../../docs/README.md) -- the design language, the
|
|
99
|
+
design system and the architecture decision records.
|
|
101
100
|
|
|
102
101
|
## License
|
|
103
102
|
|
|
104
|
-
See [LICENSE.md](../../LICENSE.md).
|
|
103
|
+
Apache 2.0. See [LICENSE.md](../../LICENSE.md).
|
package/dist/index.d.ts
CHANGED
|
@@ -9,6 +9,8 @@ import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
|
|
|
9
9
|
import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
10
10
|
import { DialogProps } from '@radix-ui/react-dialog';
|
|
11
11
|
import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
|
|
12
|
+
import { DatePrecision, TimeGranularity, PageResult } from '@petrarca/sonnet-core';
|
|
13
|
+
import * as SelectPrimitive from '@radix-ui/react-select';
|
|
12
14
|
import * as LabelPrimitive from '@radix-ui/react-label';
|
|
13
15
|
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
14
16
|
import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
|
|
@@ -17,7 +19,6 @@ import * as TabsPrimitive from '@radix-ui/react-tabs';
|
|
|
17
19
|
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
18
20
|
import { RowData, PaginationState, OnChangeFn } from '@tanstack/react-table';
|
|
19
21
|
export { PaginationState } from '@tanstack/react-table';
|
|
20
|
-
import { PageResult } from '@petrarca/sonnet-core';
|
|
21
22
|
import { UISchema, JsonSchemaProperty, JsonSchema } from '@petrarca/sonnet-core/schema';
|
|
22
23
|
import { EntitySelectMode } from '@petrarca/sonnet-core/hooks';
|
|
23
24
|
import { EntityOptionFetcher, EntityOption } from '@petrarca/sonnet-core/entityOptions';
|
|
@@ -228,6 +229,144 @@ declare const DropdownMenuShortcut: {
|
|
|
228
229
|
|
|
229
230
|
declare const Input: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & React$1.RefAttributes<HTMLInputElement>>;
|
|
230
231
|
|
|
232
|
+
/** Renders a field-level error message below an input. */
|
|
233
|
+
declare function InputError({ error, }: {
|
|
234
|
+
error: string | undefined;
|
|
235
|
+
}): React$1.ReactElement | null;
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* DateInput -- text input with a calendar popover for a single date.
|
|
239
|
+
*
|
|
240
|
+
* The value is a partial ISO 8601 date string -- `"YYYY"`, `"YYYY-MM"`, or
|
|
241
|
+
* `"YYYY-MM-DD"` depending on `precision`. Typed entry is parsed leniently
|
|
242
|
+
* (see {@link parseDate}); `"t"`, `"today"`, or `"."` enter the current date;
|
|
243
|
+
* calendar selection drills down to the terminal precision. Empty value emits "".
|
|
244
|
+
*/
|
|
245
|
+
|
|
246
|
+
interface DateInputProps {
|
|
247
|
+
/** Partial ISO date string (`YYYY`, `YYYY-MM`, or `YYYY-MM-DD`), or "". */
|
|
248
|
+
value?: string;
|
|
249
|
+
/** Called with the new partial ISO date string, or "" when cleared. */
|
|
250
|
+
onChange: (value: string) => void;
|
|
251
|
+
/** Selection precision. Default `"day"`. */
|
|
252
|
+
precision?: DatePrecision;
|
|
253
|
+
/** BCP-47 locale override for display/parsing. Defaults to the app locale. */
|
|
254
|
+
locale?: string;
|
|
255
|
+
id?: string;
|
|
256
|
+
name?: string;
|
|
257
|
+
placeholder?: string;
|
|
258
|
+
required?: boolean;
|
|
259
|
+
disabled?: boolean;
|
|
260
|
+
error?: string;
|
|
261
|
+
className?: string;
|
|
262
|
+
onBlur?: () => void;
|
|
263
|
+
}
|
|
264
|
+
declare function DateInput({ value, onChange, precision, locale, id, name, placeholder, required, disabled, error, className, onBlur, }: DateInputProps): React$1.ReactElement;
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* Calendar -- month/year/decade grid for selecting a single day.
|
|
268
|
+
*
|
|
269
|
+
* A controlled, dependency-light calendar operating on native `Date`. Renders
|
|
270
|
+
* three drill-down views (days, months, years) with header navigation. Styling
|
|
271
|
+
* uses semantic design tokens only.
|
|
272
|
+
*/
|
|
273
|
+
|
|
274
|
+
interface CalendarProps {
|
|
275
|
+
/** Currently selected day, or null. */
|
|
276
|
+
value: Date | null;
|
|
277
|
+
/** Called when the user picks a date at the terminal precision. */
|
|
278
|
+
onSelect: (date: Date) => void;
|
|
279
|
+
/** Month shown when no value is selected. Defaults to today. */
|
|
280
|
+
defaultViewDate?: Date;
|
|
281
|
+
/**
|
|
282
|
+
* Precision at which selection completes: `"year"` stops on the years view,
|
|
283
|
+
* `"month"` on the months view, `"day"` on the days view (default).
|
|
284
|
+
*/
|
|
285
|
+
precision?: DatePrecision;
|
|
286
|
+
/** BCP-47 locale for month/weekday labels and week-start. */
|
|
287
|
+
locale?: string;
|
|
288
|
+
}
|
|
289
|
+
declare function Calendar({ value, onSelect, defaultViewDate, precision, locale, }: CalendarProps): React$1.ReactElement;
|
|
290
|
+
|
|
291
|
+
/**
|
|
292
|
+
* TimeInput -- text input for a zone-free time of day.
|
|
293
|
+
*
|
|
294
|
+
* The value is a normalized ISO time string -- `"HH:mm"` (minute granularity,
|
|
295
|
+
* default) or `"HH:mm:ss"` (second granularity). A time of day carries no date
|
|
296
|
+
* and no timezone (Temporal.PlainTime); consumers that need an instant combine
|
|
297
|
+
* it with a date and zone at persistence time. Typed entry is parsed leniently
|
|
298
|
+
* (see {@link parseTime}); `"n"`, `"now"`, or `"."` enter the current time.
|
|
299
|
+
* Empty value emits "".
|
|
300
|
+
*/
|
|
301
|
+
|
|
302
|
+
interface TimeInputProps {
|
|
303
|
+
/** Normalized ISO time string (`"HH:mm"` or `"HH:mm:ss"`), or "". */
|
|
304
|
+
value?: string;
|
|
305
|
+
/** Called with the new normalized ISO time string, or "" when cleared. */
|
|
306
|
+
onChange: (value: string) => void;
|
|
307
|
+
/** Time granularity. Default `"minute"`. */
|
|
308
|
+
granularity?: TimeGranularity;
|
|
309
|
+
id?: string;
|
|
310
|
+
name?: string;
|
|
311
|
+
placeholder?: string;
|
|
312
|
+
required?: boolean;
|
|
313
|
+
disabled?: boolean;
|
|
314
|
+
error?: string;
|
|
315
|
+
className?: string;
|
|
316
|
+
onBlur?: () => void;
|
|
317
|
+
}
|
|
318
|
+
declare function TimeInput({ value, onChange, granularity, id, name, placeholder, required, disabled, error, className, onBlur, }: TimeInputProps): React$1.ReactElement;
|
|
319
|
+
|
|
320
|
+
/**
|
|
321
|
+
* DateTimeInput -- combined date + time entry for a plain wall-clock datetime.
|
|
322
|
+
*
|
|
323
|
+
* The value is a plain wall-clock ISO string `"YYYY-MM-DDTHH:mm[:ss]"` with no
|
|
324
|
+
* timezone (Temporal.PlainDateTime). Timezone is intentionally not part of the
|
|
325
|
+
* input: a wall-clock datetime means "this local time", and resolving it to an
|
|
326
|
+
* absolute instant (UTC) is the consumer's responsibility at persistence time.
|
|
327
|
+
*
|
|
328
|
+
* The optional `timeZone` prop is a pass-through context value (e.g. a clinic's
|
|
329
|
+
* zone supplied programmatically) shown as a hint -- it is never applied to the
|
|
330
|
+
* value and is never entered by the user. Cross-zone apps that need an explicit
|
|
331
|
+
* zone picker should compose one separately.
|
|
332
|
+
*
|
|
333
|
+
* Composes {@link DateInput} (day precision) and {@link TimeInput}.
|
|
334
|
+
*/
|
|
335
|
+
|
|
336
|
+
interface DateTimeInputProps {
|
|
337
|
+
/** Plain wall-clock ISO datetime `"YYYY-MM-DDTHH:mm[:ss]"`, or "". */
|
|
338
|
+
value?: string;
|
|
339
|
+
/** Called with the new plain wall-clock ISO datetime, or "" when cleared. */
|
|
340
|
+
onChange: (value: string) => void;
|
|
341
|
+
/** Time granularity. Default `"minute"`. */
|
|
342
|
+
granularity?: TimeGranularity;
|
|
343
|
+
/**
|
|
344
|
+
* Optional timezone context (IANA id, e.g. `"Europe/Berlin"`). Shown as a
|
|
345
|
+
* hint only; never applied to the value and never user-entered.
|
|
346
|
+
*/
|
|
347
|
+
timeZone?: string;
|
|
348
|
+
/** BCP-47 locale override for the date part. Defaults to the app locale. */
|
|
349
|
+
locale?: string;
|
|
350
|
+
idPrefix?: string;
|
|
351
|
+
required?: boolean;
|
|
352
|
+
disabled?: boolean;
|
|
353
|
+
error?: string;
|
|
354
|
+
className?: string;
|
|
355
|
+
onBlur?: () => void;
|
|
356
|
+
}
|
|
357
|
+
declare function DateTimeInput({ value, onChange, granularity, timeZone, locale, idPrefix, required, disabled, error, className, onBlur, }: DateTimeInputProps): React$1.ReactElement;
|
|
358
|
+
|
|
359
|
+
declare const Select: React$1.FC<SelectPrimitive.SelectProps>;
|
|
360
|
+
declare const SelectGroup: React$1.ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
361
|
+
declare const SelectValue: React$1.ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
362
|
+
declare const SelectTrigger: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectTriggerProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
363
|
+
declare const SelectScrollUpButton: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollUpButtonProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
364
|
+
declare const SelectScrollDownButton: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollDownButtonProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
365
|
+
declare const SelectContent: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
366
|
+
declare const SelectLabel: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
367
|
+
declare const SelectItem: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
368
|
+
declare const SelectSeparator: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
369
|
+
|
|
231
370
|
declare function InputGroup({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
232
371
|
declare const inputGroupAddonVariants: (props?: ({
|
|
233
372
|
align?: "inline-start" | "inline-end" | "block-start" | "block-end" | null | undefined;
|
|
@@ -568,8 +707,19 @@ type TableUiSchema = Record<string, UISchema & {
|
|
|
568
707
|
label?: string;
|
|
569
708
|
};
|
|
570
709
|
}> & {
|
|
710
|
+
/**
|
|
711
|
+
* Table-level options. Reserved for sorting and a sticky header; **neither is
|
|
712
|
+
* implemented yet**, so setting these has no effect today. Kept declared
|
|
713
|
+
* because both are intended features -- see the design doc.
|
|
714
|
+
*
|
|
715
|
+
* Note this key is unrelated to the `x-ui-globalOptions` of a form UISchema,
|
|
716
|
+
* which carries `UISchemaOptions` and does work. The two share a name and
|
|
717
|
+
* nothing else.
|
|
718
|
+
*/
|
|
571
719
|
"x-ui-globalOptions"?: {
|
|
720
|
+
/** Planned. Sorting is not wired up in EntityTable yet; this has no effect. */
|
|
572
721
|
sortable?: boolean;
|
|
722
|
+
/** Planned. No sticky positioning is applied yet; this has no effect. */
|
|
573
723
|
stickyHeader?: boolean;
|
|
574
724
|
};
|
|
575
725
|
};
|
|
@@ -738,6 +888,16 @@ interface EntityTableProps<TRow extends RowData> {
|
|
|
738
888
|
showChevron?: boolean;
|
|
739
889
|
selectionMode?: boolean;
|
|
740
890
|
onSelectionChange?: (selectedRows: TRow[]) => void;
|
|
891
|
+
/**
|
|
892
|
+
* Stable identity for a row, used to key the selection.
|
|
893
|
+
*
|
|
894
|
+
* Without it the selection is keyed by row position, so it means "the rows
|
|
895
|
+
* currently in these slots" and cannot survive paging or refiltering -- the
|
|
896
|
+
* table clears it whenever `data` changes to keep that safe. Supply this and
|
|
897
|
+
* the selection is keyed by identity instead: it survives a page change, and
|
|
898
|
+
* a bulk action can span pages.
|
|
899
|
+
*/
|
|
900
|
+
getRowId?: (row: TRow) => string;
|
|
741
901
|
pagination?: PaginationState;
|
|
742
902
|
onPaginationChange?: OnChangeFn<PaginationState>;
|
|
743
903
|
rowActions?: RowAction<TRow>[];
|
|
@@ -1086,6 +1246,9 @@ type SearchWidget = React.ComponentType<SearchWidgetProps>;
|
|
|
1086
1246
|
/** Registry mapping widget names to their implementations. */
|
|
1087
1247
|
type SearchWidgetRegistry = Record<string, SearchWidget>;
|
|
1088
1248
|
|
|
1249
|
+
/** Default search widget registry. Consumers extend this via the widgets prop. */
|
|
1250
|
+
declare const DEFAULT_SEARCH_WIDGETS: SearchWidgetRegistry;
|
|
1251
|
+
|
|
1089
1252
|
/**
|
|
1090
1253
|
* SearchInput -- controlled search and filter input with chip display.
|
|
1091
1254
|
*
|
|
@@ -1190,4 +1353,4 @@ type Props = {
|
|
|
1190
1353
|
*/
|
|
1191
1354
|
declare function ClipboardMenu({ onAddItem }: Props): react_jsx_runtime.JSX.Element;
|
|
1192
1355
|
|
|
1193
|
-
export { Alert, AlertDescription, AlertTitle, Avatar, AvatarFallback, AvatarImage, Badge, type BadgeProps, Button, CELL_RENDERERS, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, type CellRenderer, type CellRendererProps, Checkbox, ClipboardButton, ClipboardItemComponent as ClipboardItem, ClipboardMenu, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EntitySelect, type EntitySelectProps, EntityTable, type EntityTableProps, EntityTree, type EntityTreeHandle, type EntityTreeProps, IconButton, type IconButtonProps, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, Label, Popover, PopoverContent, PopoverTrigger, PropertyList, type PropertyListLayout, type PropertyListProps, PropertyValue, type PropertyValueProps, ResizeHandle, type ResizeHandleProps, type ResolvedColumn, type RowAction, ScrollArea, ScrollBar, SearchInput, type SearchMode, Separator, Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetTitle, SheetTrigger, SimpleGroup, SimpleStack, SimpleTooltip, Skeleton, Spinner, Stepper, StepperContent, StepperDescription, StepperIndicator, StepperItem, StepperList, StepperNext, StepperPrev, type StepperProps, StepperSeparator, StepperTitle, StepperTrigger, type TableUiSchema, Tabs, TabsContent, TabsList, TabsSeparator, TabsTrigger, Textarea, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, type TreeNode, TreeView, type TreeViewHandle, type TreeViewProps, badgeVariants, buttonVariants, createRenderer, useStore as useStepper };
|
|
1356
|
+
export { Alert, AlertDescription, AlertTitle, Avatar, AvatarFallback, AvatarImage, Badge, type BadgeProps, Button, CELL_RENDERERS, Calendar, type CalendarProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, type CellRenderer, type CellRendererProps, Checkbox, ClipboardButton, ClipboardItemComponent as ClipboardItem, ClipboardMenu, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, DEFAULT_SEARCH_WIDGETS, DateInput, type DateInputProps, DateTimeInput, type DateTimeInputProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EntitySelect, type EntitySelectProps, EntityTable, type EntityTableProps, EntityTree, type EntityTreeHandle, type EntityTreeProps, IconButton, type IconButtonProps, Input, InputError, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, Label, Popover, PopoverContent, PopoverTrigger, PropertyList, type PropertyListLayout, type PropertyListProps, PropertyValue, type PropertyValueProps, ResizeHandle, type ResizeHandleProps, type ResolvedColumn, type RowAction, ScrollArea, ScrollBar, SearchInput, type SearchInputProps, type SearchMode, type SearchWidget, type SearchWidgetProps, type SearchWidgetRegistry, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetTitle, SheetTrigger, SimpleGroup, SimpleStack, SimpleTooltip, Skeleton, Spinner, Stepper, StepperContent, StepperDescription, StepperIndicator, StepperItem, StepperList, StepperNext, StepperPrev, type StepperProps, StepperSeparator, StepperTitle, StepperTrigger, type TableUiSchema, Tabs, TabsContent, TabsList, TabsSeparator, TabsTrigger, Textarea, TimeInput, type TimeInputProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, type TreeNode, TreeView, type TreeViewHandle, type TreeViewProps, badgeVariants, buttonVariants, createRenderer, useStore as useStepper };
|