@igne-agency/react-web-ui 0.3.1 → 0.5.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 +32 -1
- package/dist/base.css +3 -0
- package/dist/components/accordion/accordion.css +24 -19
- package/dist/components/accordion/accordion.d.ts +19 -3
- package/dist/components/accordion/accordion.js +86 -32
- package/dist/components/accordion/accordion.module.js +8 -8
- package/dist/components/active-filters/active-filter-describers.d.ts +1 -1
- package/dist/components/active-filters/active-filter-describers.js +1 -1
- package/dist/components/active-filters/active-filters.d.ts +35 -2
- package/dist/components/active-filters/active-filters.js +57 -52
- package/dist/components/active-filters/index.js +2 -2
- package/dist/components/attachment-tile/attachment-preview.d.ts +11 -9
- package/dist/components/attachment-tile/attachment-preview.js +102 -68
- package/dist/components/attachment-tile/attachment-tile.css +22 -13
- package/dist/components/attachment-tile/attachment-tile.d.ts +51 -6
- package/dist/components/attachment-tile/attachment-tile.js +209 -85
- package/dist/components/attachment-tile/attachment-tile.module.js +10 -10
- package/dist/components/attachment-tile/index.d.ts +1 -1
- package/dist/components/attachment-tile/index.js +2 -2
- package/dist/components/avatar/avatar.d.ts +5 -5
- package/dist/components/avatar/avatar.js +64 -37
- package/dist/components/avatar-group/avatar-group.js +2 -2
- package/dist/components/badge/badge.js +1 -1
- package/dist/components/breadcrumbs/breadcrumbs.d.ts +22 -7
- package/dist/components/breadcrumbs/breadcrumbs.js +189 -170
- package/dist/components/button/button.d.ts +2 -3
- package/dist/components/button/button.js +58 -77
- package/dist/components/button/close-button.d.ts +4 -2
- package/dist/components/button/close-button.js +9 -9
- package/dist/components/checkbox-field/checkbox-field.d.ts +17 -3
- package/dist/components/checkbox-field/checkbox-field.js +108 -131
- package/dist/components/checkbox-field/checkbox.css +26 -34
- package/dist/components/checkbox-field/checkbox.d.ts +51 -8
- package/dist/components/checkbox-field/checkbox.js +221 -57
- package/dist/components/checkbox-field/checkbox.module.js +6 -8
- package/dist/components/checkbox-field/index.d.ts +0 -1
- package/dist/components/checkbox-field/index.js +1 -2
- package/dist/components/checkbox-field/tsf-checkbox-field.d.ts +2 -2
- package/dist/components/checkbox-group-field/checkbox-group-field.d.ts +4 -1
- package/dist/components/checkbox-group-field/checkbox-group-field.js +54 -50
- package/dist/components/checkbox-group-field/checkbox-group.d.ts +7 -2
- package/dist/components/checkbox-group-field/checkbox-group.js +8 -3
- package/dist/components/collapsible/collapsible.css +23 -18
- package/dist/components/collapsible/collapsible.d.ts +18 -3
- package/dist/components/collapsible/collapsible.js +85 -32
- package/dist/components/collapsible/collapsible.module.js +7 -7
- package/dist/components/combobox-field/combobox-field.d.ts +9 -1
- package/dist/components/combobox-field/combobox-field.js +195 -175
- package/dist/components/combobox-field/combobox-items.d.ts +2 -2
- package/dist/components/combobox-field/combobox-items.js +4 -4
- package/dist/components/combobox-field/combobox.css +99 -96
- package/dist/components/combobox-field/combobox.d.ts +94 -15
- package/dist/components/combobox-field/combobox.js +484 -159
- package/dist/components/combobox-field/combobox.module.js +21 -21
- package/dist/components/combobox-field/index.d.ts +0 -1
- package/dist/components/combobox-field/selection.d.ts +4 -1
- package/dist/components/combobox-field/value-state-view.css +7 -3
- package/dist/components/combobox-field/value-state-view.d.ts +4 -2
- package/dist/components/combobox-field/value-state-view.js +15 -15
- package/dist/components/combobox-field/value-state-view.module.js +6 -4
- package/dist/components/composer/composer-attachments.d.ts +11 -3
- package/dist/components/composer/composer-attachments.js +61 -47
- package/dist/components/composer/composer-editor.d.ts +2 -1
- package/dist/components/composer/composer-editor.js +79 -71
- package/dist/components/composer/composer-mentions.js +2 -2
- package/dist/components/composer/composer.d.ts +42 -21
- package/dist/components/composer/composer.js +201 -58
- package/dist/components/composer/mention-text.js +3 -3
- package/dist/components/confirm-dialog/confirm-dialog.d.ts +8 -7
- package/dist/components/confirm-dialog/confirm-dialog.js +10 -9
- package/dist/components/conversation/conversation.context.d.ts +0 -5
- package/dist/components/conversation/conversation.d.ts +63 -29
- package/dist/components/conversation/conversation.js +193 -82
- package/dist/components/conversation/index.d.ts +1 -1
- package/dist/components/date-field/date-field.d.ts +10 -4
- package/dist/components/date-field/date-field.js +57 -43
- package/dist/components/date-field/date-input.d.ts +20 -3
- package/dist/components/date-field/date-input.js +28 -13
- package/dist/components/date-field/index.d.ts +1 -1
- package/dist/components/date-field/tsf-date-field.d.ts +1 -1
- package/dist/components/date-field/tsf-date-field.js +1 -1
- package/dist/components/date-range-field/date-range-field.d.ts +8 -4
- package/dist/components/date-range-field/date-range-field.js +57 -45
- package/dist/components/date-range-field/date-range-input.d.ts +20 -3
- package/dist/components/date-range-field/date-range-input.js +27 -12
- package/dist/components/date-range-field/tsf-date-range-field.d.ts +1 -1
- package/dist/components/date-range-field/tsf-date-range-field.js +1 -1
- package/dist/components/detail-list/detail-list.d.ts +28 -27
- package/dist/components/detail-list/detail-list.js +177 -121
- package/dist/components/dialog/dialog.d.ts +47 -27
- package/dist/components/dialog/dialog.js +101 -38
- package/dist/components/divider/divider.js +1 -1
- package/dist/components/drawer/drawer.d.ts +48 -30
- package/dist/components/drawer/drawer.js +113 -41
- package/dist/components/email-field/email-field.d.ts +5 -3
- package/dist/components/email-field/email-field.js +1 -3
- package/dist/components/email-field/tsf-email-field.d.ts +3 -2
- package/dist/components/empty-message/empty-message.d.ts +3 -3
- package/dist/components/empty-message/empty-message.js +3 -3
- package/dist/components/error-boundary/error-boundary.d.ts +5 -2
- package/dist/components/error-boundary/error-boundary.js +2 -3
- package/dist/components/error-message/error-message.d.ts +1 -1
- package/dist/components/error-message/error-message.js +1 -1
- package/dist/components/error-text/error-text.js +3 -3
- package/dist/components/field/field.d.ts +5 -5
- package/dist/components/field/field.js +9 -9
- package/dist/components/field/index.js +2 -2
- package/dist/components/field/input-parts.js +1 -1
- package/dist/components/field-placeholder/field-placeholder.d.ts +4 -1
- package/dist/components/field-placeholder/field-placeholder.js +41 -26
- package/dist/components/fieldset/field-group.js +1 -1
- package/dist/components/fieldset/fieldset-root.js +1 -1
- package/dist/components/fieldset/fieldset.js +1 -1
- package/dist/components/file-field/file-field.css +19 -15
- package/dist/components/file-field/file-field.d.ts +10 -1
- package/dist/components/file-field/file-field.js +130 -109
- package/dist/components/file-field/file-field.module.js +6 -4
- package/dist/components/file-field/file-input.d.ts +32 -9
- package/dist/components/file-field/file-input.js +94 -74
- package/dist/components/filter-bar/filter-bar.d.ts +79 -51
- package/dist/components/filter-bar/filter-bar.js +552 -216
- package/dist/components/form/form.d.ts +4 -6
- package/dist/components/form/form.js +6 -8
- package/dist/components/icon/icon.d.ts +5 -10
- package/dist/components/icon/icon.js +4 -6
- package/dist/components/link/link.js +1 -1
- package/dist/components/link-button/link-button.d.ts +1 -2
- package/dist/components/link-button/link-button.js +12 -22
- package/dist/components/loading-message/loading-message.d.ts +2 -2
- package/dist/components/loading-message/loading-message.js +1 -1
- package/dist/components/locale-provider/locale-provider.js +1 -1
- package/dist/components/menu/menu.d.ts +40 -22
- package/dist/components/menu/menu.js +100 -40
- package/dist/components/nav/nav-context.d.ts +0 -1
- package/dist/components/nav/nav-context.js +1 -2
- package/dist/components/nav/nav-item-view.d.ts +7 -7
- package/dist/components/nav/nav-item-view.js +27 -51
- package/dist/components/nav/nav.css +72 -60
- package/dist/components/nav/nav.d.ts +15 -8
- package/dist/components/nav/nav.js +105 -52
- package/dist/components/nav/nav.module.js +14 -14
- package/dist/components/number-field/number-field.d.ts +7 -1
- package/dist/components/number-field/number-field.js +98 -82
- package/dist/components/number-field/number-input.d.ts +53 -4
- package/dist/components/number-field/number-input.js +68 -21
- package/dist/components/number-field/tsf-number-field.d.ts +1 -1
- package/dist/components/number-field/tsf-number-field.js +1 -1
- package/dist/components/otp-field/otp-input.d.ts +25 -0
- package/dist/components/otp-field/otp-input.js +26 -1
- package/dist/components/pagination/pagination.d.ts +82 -23
- package/dist/components/pagination/pagination.js +656 -229
- package/dist/components/password-field/password-field.d.ts +7 -1
- package/dist/components/password-field/password-field.js +117 -126
- package/dist/components/password-field/password-strength.js +1 -1
- package/dist/components/password-field/tsf-password-field.d.ts +1 -1
- package/dist/components/password-field/tsf-password-field.js +1 -1
- package/dist/components/photo-field/photo-field.d.ts +17 -3
- package/dist/components/photo-field/photo-field.js +168 -89
- package/dist/components/photo-field/photo-input-context.d.ts +25 -0
- package/dist/components/photo-field/photo-input-context.js +14 -0
- package/dist/components/photo-field/photo-input.d.ts +58 -23
- package/dist/components/photo-field/photo-input.js +459 -261
- package/dist/components/popover/popover.d.ts +55 -23
- package/dist/components/popover/popover.js +205 -61
- package/dist/components/radio-group-field/radio-group.js +1 -1
- package/dist/components/search-field/search-field.d.ts +7 -5
- package/dist/components/search-field/search-field.js +4 -6
- package/dist/components/search-field/tsf-search-field.d.ts +1 -1
- package/dist/components/search-field/tsf-search-field.js +1 -1
- package/dist/components/segmented-control-field/segmented-control.js +1 -1
- package/dist/components/select-field/select-field.d.ts +7 -1
- package/dist/components/select-field/select-field.js +151 -139
- package/dist/components/select-field/select.d.ts +28 -6
- package/dist/components/select-field/select.js +234 -149
- package/dist/components/skeleton/skeleton.js +1 -1
- package/dist/components/spinner/spinner.css +47 -1
- package/dist/components/spinner/spinner.js +28 -11
- package/dist/components/spinner/spinner.module.js +18 -3
- package/dist/components/stale/stale.d.ts +17 -21
- package/dist/components/stale/stale.js +307 -129
- package/dist/components/status-message/status-message.css +22 -21
- package/dist/components/status-message/status-message.d.ts +10 -5
- package/dist/components/status-message/status-message.js +20 -24
- package/dist/components/status-message/status-message.module.js +6 -6
- package/dist/components/status-message/status-preset.d.ts +4 -5
- package/dist/components/status-message/status-preset.js +3 -3
- package/dist/components/switch-field/switch.js +1 -1
- package/dist/components/tabs/tabs.d.ts +51 -28
- package/dist/components/tabs/tabs.js +219 -144
- package/dist/components/tag/tag.css +23 -21
- package/dist/components/tag/tag.d.ts +17 -15
- package/dist/components/tag/tag.js +140 -65
- package/dist/components/tag/tag.module.js +3 -3
- package/dist/components/tag-group/tag-group.css +30 -27
- package/dist/components/tag-group/tag-group.d.ts +10 -4
- package/dist/components/tag-group/tag-group.js +47 -35
- package/dist/components/tag-group/tag-group.module.js +4 -4
- package/dist/components/text-field/text-field.d.ts +14 -3
- package/dist/components/text-field/text-field.js +154 -133
- package/dist/components/text-field/text-input.d.ts +89 -3
- package/dist/components/text-field/text-input.js +184 -70
- package/dist/components/textarea-field/textarea.js +1 -1
- package/dist/components/time-field/time-input.d.ts +6 -0
- package/dist/components/time-field/time-input.js +6 -0
- package/dist/components/time-zone-provider/time-zone-provider.js +1 -1
- package/dist/components/toast/index.js +2 -2
- package/dist/components/toast/toast-provider.css +38 -34
- package/dist/components/toast/toast-provider.d.ts +65 -3
- package/dist/components/toast/toast-provider.js +313 -148
- package/dist/components/toast/toast-provider.module.js +11 -17
- package/dist/components/toast/toast.d.ts +5 -1
- package/dist/components/toast/toast.js +2 -1
- package/dist/components/toggle-group-field/toggle-group.js +1 -1
- package/dist/components/tooltip/tooltip.d.ts +6 -6
- package/dist/components/tooltip/tooltip.js +7 -7
- package/dist/data-table/data-table-content.d.ts +18 -10
- package/dist/data-table/data-table-content.js +145 -290
- package/dist/data-table/data-table-context.d.ts +4 -2
- package/dist/data-table/data-table-context.js +1 -1
- package/dist/data-table/data-table-parts.d.ts +99 -0
- package/dist/data-table/data-table-parts.js +1182 -0
- package/dist/data-table/data-table-selection.d.ts +7 -3
- package/dist/data-table/data-table-selection.js +62 -37
- package/dist/data-table/data-table.css +100 -95
- package/dist/data-table/data-table.d.ts +49 -25
- package/dist/data-table/data-table.js +95 -83
- package/dist/data-table/data-table.module.js +34 -34
- package/dist/data-table/index.d.ts +2 -1
- package/dist/data-table/index.js +2 -1
- package/dist/data-view/use-data-view.d.ts +2 -2
- package/dist/data-view/use-data-view.js +2 -2
- package/dist/index.js +7 -8
- package/dist/lib/calendar/calendar-navigation.d.ts +9 -2
- package/dist/lib/calendar/calendar-navigation.js +72 -73
- package/dist/lib/calendar/calendar-year.d.ts +4 -3
- package/dist/lib/calendar/calendar-year.js +137 -156
- package/dist/lib/calendar/temporal.d.ts +18 -12
- package/dist/lib/calendar/temporal.js +191 -147
- package/dist/lib/table-storage.d.ts +2 -2
- package/dist/lib/table-storage.js +2 -2
- package/dist/lib/unsaved-changes/leave-guard.js +1 -1
- package/dist/terrazzo/index.d.ts +20 -3
- package/dist/terrazzo/index.js +110 -7
- package/dist/tokens.css +94 -71
- package/package.json +4 -3
- package/tokens/ref.tokens.json +0 -30
- package/tokens/sys.tokens.json +0 -7
- package/dist/assets/spinner.js +0 -28
- package/dist/components/checkbox-field/checkbox-glyph.d.ts +0 -12
- package/dist/components/checkbox-field/checkbox-glyph.js +0 -38
- package/dist/components/combobox-field/combobox-popup-body.d.ts +0 -34
- package/dist/components/combobox-field/combobox-popup-body.js +0 -142
- package/dist/components/conversation/conversation.context.js +0 -4
- package/dist/vendor/@material-design-icons/svg/outlined/add.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/arrow_downward.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/arrow_forward.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/arrow_upward.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/attach_file.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/block.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/calendar_today.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/check.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/check_circle.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/chevron_left.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/chevron_right.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/close.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/content_copy.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/date_range.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/description.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/download.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/error.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/error_outline.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/expand_less.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/expand_more.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/filter_alt.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/filter_alt_off.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/first_page.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/info.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/keyboard_arrow_down.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/last_page.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/mail.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/more_horiz.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/photo_camera.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/remove.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/restart_alt.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/restore.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/search.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/unfold_more.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/upload_file.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/visibility.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/visibility_off.js +0 -12
- package/dist/vendor/@material-design-icons/svg/outlined/warning_amber.js +0 -12
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { Combobox as BaseCombobox } from "@base-ui/react/combobox";
|
|
2
2
|
import { type ComponentProps, type ReactNode, type Ref } from "react";
|
|
3
|
-
import { Field, type FieldState } from "../field/index.ts";
|
|
3
|
+
import { Field, type FieldState, type OptionsLoad, type OptionsLoadLabels } from "../field/index.ts";
|
|
4
|
+
import { type PagedQuery } from "./combobox-items.ts";
|
|
4
5
|
export type ComboboxRootProps<TItem, TMultiple extends boolean | undefined = false> = Omit<BaseCombobox.Root.Props<TItem, TMultiple>, "autoHighlight"> & Readonly<{
|
|
5
6
|
/** `"always"` highlights the first item whenever the list changes. @default "always" */
|
|
6
7
|
autoHighlight?: boolean | "always";
|
|
7
8
|
}>;
|
|
9
|
+
/** The combobox's state, holding its items and its value. */
|
|
8
10
|
declare const ComboboxRoot: <TItem, TMultiple extends boolean | undefined = false>({ autoHighlight, ...props }: ComboboxRootProps<TItem, TMultiple>) => ReactNode;
|
|
9
11
|
export type ComboboxControlProps = BaseCombobox.InputGroup.Props & Readonly<{
|
|
10
12
|
/** The control element, which the positioner takes as its `anchor`. */
|
|
@@ -16,8 +18,13 @@ export type ComboboxControlProps = BaseCombobox.InputGroup.Props & Readonly<{
|
|
|
16
18
|
* trigger's own value is read but not shown.
|
|
17
19
|
*/
|
|
18
20
|
tags?: ReactNode;
|
|
21
|
+
/** The chevron at the end of the control, such as an expand icon. */
|
|
22
|
+
icon?: ReactNode;
|
|
19
23
|
}>;
|
|
20
|
-
|
|
24
|
+
/** The chevron at the end of the control. Its children are the icon; without them it renders nothing. */
|
|
25
|
+
declare const ComboboxIcon: ({ className, children, ...props }: BaseCombobox.Icon.Props) => ReactNode;
|
|
26
|
+
/** The control that opens the popup: the value or the tags, the pending mark and `icon`. */
|
|
27
|
+
declare const ComboboxControl: ({ className, children, tags, icon, state, ...props }: ComboboxControlProps) => ReactNode;
|
|
21
28
|
export type ComboboxTagsProps<TItem> = Readonly<{
|
|
22
29
|
/** Names the group of tags, such as "Selected statuses". */
|
|
23
30
|
label: string;
|
|
@@ -30,6 +37,8 @@ export type ComboboxTagsProps<TItem> = Readonly<{
|
|
|
30
37
|
removeLabel: string;
|
|
31
38
|
/** The remove control's tooltip for an item, such as "Remove Jan Jansen". */
|
|
32
39
|
removeHint: (item: TItem) => string;
|
|
40
|
+
/** The remove control's icon, such as a cross. */
|
|
41
|
+
removeIcon: ReactNode;
|
|
33
42
|
/** Renders one tag's content. */
|
|
34
43
|
children: (item: TItem) => ReactNode;
|
|
35
44
|
/** Called with the items left after a removal. */
|
|
@@ -37,8 +46,11 @@ export type ComboboxTagsProps<TItem> = Readonly<{
|
|
|
37
46
|
disabled?: boolean;
|
|
38
47
|
readOnly?: boolean;
|
|
39
48
|
}>;
|
|
40
|
-
|
|
49
|
+
/** The chosen values of a multiple combobox as removable tags, for `Control`'s `tags`. */
|
|
50
|
+
declare const ComboboxTags: <TItem>({ label, items, itemKey, itemLabel, removeLabel, removeHint, removeIcon, children, onRemove, disabled, readOnly, }: ComboboxTagsProps<TItem>) => ReactNode;
|
|
51
|
+
/** Places the popup against the control, given as its `anchor`. */
|
|
41
52
|
declare const ComboboxPositioner: ({ className, sideOffset, ...props }: BaseCombobox.Positioner.Props) => ReactNode;
|
|
53
|
+
/** The shared popup surface. */
|
|
42
54
|
declare const ComboboxPopup: ({ className, ...props }: BaseCombobox.Popup.Props) => ReactNode;
|
|
43
55
|
export type ComboboxSearchProps = Omit<BaseCombobox.Input.Props, "aria-label" | "aria-labelledby"> & Readonly<{
|
|
44
56
|
/** The search box's accessible name. */
|
|
@@ -50,43 +62,105 @@ export type ComboboxSearchProps = Omit<BaseCombobox.Input.Props, "aria-label" |
|
|
|
50
62
|
* field's own control.
|
|
51
63
|
*/
|
|
52
64
|
declare const ComboboxSearch: ({ className, ...props }: ComboboxSearchProps) => ReactNode;
|
|
53
|
-
export type ComboboxListProps = BaseCombobox.List.Props & Readonly<{
|
|
54
|
-
/**
|
|
55
|
-
|
|
65
|
+
export type ComboboxListProps = Omit<BaseCombobox.List.Props, "ref"> & Readonly<{
|
|
66
|
+
/** A paged query, whose next page loads as the list nears its end. */
|
|
67
|
+
query?: Pick<PagedQuery<unknown>, "hasNextPage" | "isFetchingNextPage" | "fetchNextPage">;
|
|
56
68
|
}>;
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
69
|
+
/** The scrolling list of options, which loads a paged `query`'s next page as it nears its end. */
|
|
70
|
+
declare const ComboboxList: ({ className, query, ...props }: ComboboxListProps) => ReactNode;
|
|
71
|
+
export type ComboboxOptionProps = BaseCombobox.Item.Props;
|
|
72
|
+
/** One option's row, holding its `OptionIndicator` and `OptionText`. */
|
|
73
|
+
declare const ComboboxOption: ({ className, ...props }: ComboboxOptionProps) => ReactNode;
|
|
74
|
+
export type ComboboxOptionIndicatorProps = BaseCombobox.ItemIndicator.Props & Readonly<{
|
|
75
|
+
/** Draws the mark inside a checkbox, for a multi-value list. */
|
|
60
76
|
multiple?: boolean;
|
|
61
77
|
}>;
|
|
62
|
-
|
|
78
|
+
/** The mark beside a chosen option. Its children are the mark, such as a tick. */
|
|
79
|
+
declare const ComboboxOptionIndicator: ({ className, multiple, ...props }: ComboboxOptionIndicatorProps) => ReactNode;
|
|
80
|
+
/** An option's content, beside its indicator. */
|
|
81
|
+
declare const ComboboxOptionText: ({ className, ...props }: ComponentProps<"span">) => ReactNode;
|
|
82
|
+
/** What the popup says when no option is listed. */
|
|
63
83
|
declare const ComboboxEmpty: ({ className, ...props }: BaseCombobox.Empty.Props) => ReactNode;
|
|
84
|
+
/** The popup's polite status line. */
|
|
64
85
|
declare const ComboboxStatus: ({ className, ...props }: BaseCombobox.Status.Props) => ReactNode;
|
|
86
|
+
/** The row that holds the status and a retry button. */
|
|
65
87
|
declare const ComboboxStatusArea: ({ className, ...props }: ComponentProps<"div">) => ReactNode;
|
|
88
|
+
/** The copy a combobox's popup shows about its options. */
|
|
89
|
+
export type ComboboxPopupLabels = OptionsLoadLabels & Readonly<{
|
|
90
|
+
/** Shown when the search matches nothing. */
|
|
91
|
+
noResultsLabel: string;
|
|
92
|
+
/** The search box's accessible name, such as "Search". */
|
|
93
|
+
searchLabel: string;
|
|
94
|
+
/** Read while a paged query fetches its next page. */
|
|
95
|
+
loadingMoreLabel: string;
|
|
96
|
+
/** The match count of a paged query, such as "40 results". */
|
|
97
|
+
resultsLabel: (count: number) => string;
|
|
98
|
+
}>;
|
|
99
|
+
/** The copy `LoadStatus` shows. */
|
|
100
|
+
export type ComboboxLoadStatusLabels = Pick<ComboboxPopupLabels, "loadingLabel" | "loadFailedLabel" | "loadBrokenLabel" | "retryLabel" | "loadingMoreLabel" | "resultsLabel">;
|
|
101
|
+
export type ComboboxLoadStatusProps = ComboboxLoadStatusLabels & Readonly<{
|
|
102
|
+
/** How far the items have loaded. */
|
|
103
|
+
load: OptionsLoad;
|
|
104
|
+
/** A paged query, whose match count and next page it reports. */
|
|
105
|
+
query?: Pick<PagedQuery<unknown>, "data" | "isFetchingNextPage">;
|
|
106
|
+
/** Runs a retry, such as to move focus back afterwards. @default retry() */
|
|
107
|
+
onRetry?: (retry: () => void) => void;
|
|
108
|
+
className?: string;
|
|
109
|
+
}>;
|
|
110
|
+
/** The load status of the items, with a retry button where trying again can help. */
|
|
111
|
+
declare const ComboboxLoadStatus: ({ load, query, onRetry, className, ...labels }: ComboboxLoadStatusProps) => ReactNode;
|
|
112
|
+
export type ComboboxBodyProps<TItem> = ComboboxPopupLabels & Readonly<{
|
|
113
|
+
/** How far the items have loaded. */
|
|
114
|
+
load: OptionsLoad;
|
|
115
|
+
/** A paged query, searched on the server and loaded page by page. */
|
|
116
|
+
query?: PagedQuery<TItem>;
|
|
117
|
+
/** There are no items at all, rather than none matching the search. */
|
|
118
|
+
noOptions: boolean;
|
|
119
|
+
/** Draws each option's mark inside a checkbox. */
|
|
120
|
+
multiple?: boolean;
|
|
121
|
+
/** A stable identity per item. */
|
|
122
|
+
itemKey: (item: TItem) => string;
|
|
123
|
+
/** The mark beside a chosen option, such as a tick. */
|
|
124
|
+
checkIcon: ReactNode;
|
|
125
|
+
/** Renders one item's row. */
|
|
126
|
+
children: (item: TItem) => ReactNode;
|
|
127
|
+
}>;
|
|
128
|
+
/**
|
|
129
|
+
* What a combobox's popup holds: the search box, the load status with a retry
|
|
130
|
+
* where one can help, the empty state and the list, which loads the next page
|
|
131
|
+
* of a paged query as it nears its end.
|
|
132
|
+
*/
|
|
133
|
+
declare const ComboboxBody: <TItem>({ load, query, noOptions, multiple, itemKey, checkIcon, children, ...labels }: ComboboxBodyProps<TItem>) => ReactNode;
|
|
66
134
|
/** The parts of a combobox. */
|
|
67
|
-
export type ComboboxParts = Omit<typeof BaseCombobox, "Root" | "Positioner" | "Popup" | "Input" | "List" | "Empty" | "Status"> & Readonly<{
|
|
135
|
+
export type ComboboxParts = Omit<typeof BaseCombobox, "Root" | "Icon" | "Positioner" | "Popup" | "Input" | "List" | "Empty" | "Status"> & Readonly<{
|
|
68
136
|
Root: typeof ComboboxRoot;
|
|
69
137
|
Control: typeof ComboboxControl;
|
|
138
|
+
Icon: typeof ComboboxIcon;
|
|
70
139
|
Tags: typeof ComboboxTags;
|
|
71
140
|
Positioner: typeof ComboboxPositioner;
|
|
72
141
|
Popup: typeof ComboboxPopup;
|
|
73
142
|
Search: typeof ComboboxSearch;
|
|
74
143
|
List: typeof ComboboxList;
|
|
75
144
|
Option: typeof ComboboxOption;
|
|
145
|
+
OptionIndicator: typeof ComboboxOptionIndicator;
|
|
146
|
+
OptionText: typeof ComboboxOptionText;
|
|
76
147
|
Empty: typeof ComboboxEmpty;
|
|
77
148
|
Status: typeof ComboboxStatus;
|
|
78
149
|
StatusArea: typeof ComboboxStatusArea;
|
|
150
|
+
LoadStatus: typeof ComboboxLoadStatus;
|
|
151
|
+
Body: typeof ComboboxBody;
|
|
79
152
|
Pending: typeof Field.Pending;
|
|
80
153
|
}>;
|
|
81
154
|
/**
|
|
82
155
|
* The styled parts of a base-ui Combobox: a filterable select whose control
|
|
83
156
|
* matches `Select`'s trigger and whose popup is the shared popup surface. Every
|
|
84
|
-
* unstyled base-ui part stays reachable.
|
|
85
|
-
* `ComboboxField`. The positioner takes the
|
|
157
|
+
* unstyled base-ui part stays reachable. `Body` holds what the popup usually
|
|
158
|
+
* does. For the ordinary case, use `ComboboxField`. The positioner takes the
|
|
159
|
+
* control as its `anchor`.
|
|
86
160
|
*
|
|
87
161
|
* @example
|
|
88
162
|
* <Combobox.Root items={statuses}>
|
|
89
|
-
* <Combobox.Control ref={anchorRef}>
|
|
163
|
+
* <Combobox.Control ref={anchorRef} icon={<ExpandMoreIcon />}>
|
|
90
164
|
* <Combobox.Value>{(status: string | null) => status}</Combobox.Value>
|
|
91
165
|
* </Combobox.Control>
|
|
92
166
|
* <Combobox.Portal>
|
|
@@ -94,7 +168,12 @@ export type ComboboxParts = Omit<typeof BaseCombobox, "Root" | "Positioner" | "P
|
|
|
94
168
|
* <Combobox.Popup>
|
|
95
169
|
* <Combobox.Search aria-label="Search" />
|
|
96
170
|
* <Combobox.List>
|
|
97
|
-
* {(status: string) =>
|
|
171
|
+
* {(status: string) => (
|
|
172
|
+
* <Combobox.Option key={status} value={status}>
|
|
173
|
+
* <Combobox.OptionIndicator><CheckIcon /></Combobox.OptionIndicator>
|
|
174
|
+
* <Combobox.OptionText>{status}</Combobox.OptionText>
|
|
175
|
+
* </Combobox.Option>
|
|
176
|
+
* )}
|
|
98
177
|
* </Combobox.List>
|
|
99
178
|
* </Combobox.Popup>
|
|
100
179
|
* </Combobox.Positioner>
|