@viasat/beam-react 2.30.0 → 2.36.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/assets/ActionList.css +1 -1
- package/assets/Avatar.css +1 -1
- package/assets/Badge.css +1 -1
- package/assets/Button.css +1 -1
- package/assets/Checkbox.css +1 -1
- package/assets/Chip.css +1 -1
- package/assets/ChipGroup.css +1 -1
- package/assets/CloseButton.css +1 -1
- package/assets/DateField.css +1 -0
- package/assets/EmptyState.css +1 -1
- package/assets/{floatingui.css → FloatingUI.css} +1 -1
- package/assets/InputChoiceGroup.css +1 -1
- package/assets/Link.css +1 -1
- package/assets/NativeSelect.css +1 -1
- package/assets/Pagination.css +1 -1
- package/assets/ProgressBar.css +1 -1
- package/assets/RadioButton.css +1 -1
- package/assets/Search.css +1 -1
- package/assets/SpinnerWrap.css +1 -1
- package/assets/Switch.css +1 -1
- package/assets/TextArea.css +1 -1
- package/assets/TextField.css +1 -1
- package/assets/card.css +1 -1
- package/assets/combobox.css +1 -1
- package/assets/fileUpload.css +1 -1
- package/assets/header.css +1 -1
- package/assets/index.css +1 -1
- package/assets/panel.css +1 -1
- package/assets/segmentedControl.css +1 -1
- package/assets/slider.css +1 -1
- package/assets/stepper.css +1 -1
- package/chunks/DateField.Segment.7oCeBSNo.js +1 -0
- package/chunks/DateField.Segment.DbjGMAPP.js +99 -0
- package/chunks/FloatingUI.arrow.DFhYQv_F.js +1 -0
- package/chunks/FloatingUI.arrow.tN5_IctZ.js +27 -0
- package/chunks/panel.module.BVmRxZHo.js +1 -0
- package/chunks/{panel.module.BblnuBjO.js → panel.module.CnHWv4EZ.js} +1 -3
- package/index.cjs.js +1 -1
- package/index.es.js +35 -33
- package/lib/ActionList/ActionList.Group.d.ts +1 -1
- package/lib/Autocomplete/Autocomplete.cjs.js +1 -1
- package/lib/Autocomplete/Autocomplete.d.ts +5 -5
- package/lib/Autocomplete/Autocomplete.es.js +296 -268
- package/lib/Autocomplete/AutocompleteDropdown.cjs.js +1 -1
- package/lib/Autocomplete/AutocompleteDropdown.es.js +15 -12
- package/lib/FloatingUI/FloatingUI.arrow.cjs.js +1 -1
- package/lib/FloatingUI/FloatingUI.arrow.es.js +6 -17
- package/lib/FloatingUI/FloatingUI.content.cjs.js +1 -1
- package/lib/FloatingUI/FloatingUI.content.es.js +17 -18
- package/lib/Search/SearchDropdown.cjs.js +1 -1
- package/lib/Search/SearchDropdown.es.js +1 -1
- package/lib/Select/Select.cjs.js +1 -1
- package/lib/Select/Select.d.ts +3 -2
- package/lib/Select/Select.es.js +208 -195
- package/lib/Select/SelectDropdown.cjs.js +1 -1
- package/lib/Select/SelectDropdown.es.js +15 -12
- package/lib/_Options/Option.cjs.js +1 -1
- package/lib/_Options/Option.context.cjs.js +1 -1
- package/lib/_Options/Option.context.d.ts +31 -13
- package/lib/_Options/Option.context.es.js +133 -88
- package/lib/_Options/Option.es.js +23 -21
- package/lib/_Options/Option.types.d.ts +23 -0
- package/lib/_Options/OptionGroup.cjs.js +1 -0
- package/lib/_Options/OptionGroup.context.cjs.js +1 -0
- package/lib/_Options/OptionGroup.context.d.ts +6 -0
- package/lib/_Options/OptionGroup.context.es.js +6 -0
- package/lib/_Options/OptionGroup.d.ts +3 -0
- package/lib/_Options/OptionGroup.es.js +22 -0
- package/lib/_Options/getLastVisibleStructureIndex.cjs.js +1 -0
- package/lib/_Options/getLastVisibleStructureIndex.d.ts +15 -0
- package/lib/_Options/getLastVisibleStructureIndex.es.js +14 -0
- package/lib/_Options/index.cjs.js +1 -1
- package/lib/_Options/index.d.ts +4 -0
- package/lib/_Options/index.es.js +13 -4
- package/lib/_Options/useRenderOption.cjs.js +1 -0
- package/lib/_Options/useRenderOption.d.ts +30 -0
- package/lib/_Options/useRenderOption.es.js +43 -0
- package/lib/index.cjs.js +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.es.js +27 -25
- package/lib/wip/DateField/DateField.Segment.cjs.js +1 -0
- package/lib/wip/DateField/DateField.Segment.d.ts +2 -0
- package/lib/wip/DateField/DateField.Segment.es.js +8 -0
- package/lib/wip/DateField/DateField.Segments.cjs.js +1 -0
- package/lib/wip/DateField/DateField.Segments.d.ts +17 -0
- package/lib/wip/DateField/DateField.Segments.es.js +61 -0
- package/lib/wip/DateField/DateField.cjs.js +1 -0
- package/lib/wip/DateField/DateField.d.ts +3 -0
- package/lib/wip/DateField/DateField.es.js +191 -0
- package/lib/wip/DateField/DateField.types.cjs.js +1 -0
- package/lib/wip/DateField/DateField.types.d.ts +118 -0
- package/lib/wip/DateField/DateField.types.es.js +1 -0
- package/lib/wip/DateField/DateField.utils.cjs.js +1 -0
- package/lib/wip/DateField/DateField.utils.d.ts +26 -0
- package/lib/wip/DateField/DateField.utils.es.js +45 -0
- package/lib/wip/DateField/DateField.validation.cjs.js +1 -0
- package/lib/wip/DateField/DateField.validation.d.ts +26 -0
- package/lib/wip/DateField/DateField.validation.es.js +24 -0
- package/lib/wip/DateField/index.cjs.js +1 -0
- package/lib/wip/DateField/index.d.ts +2 -0
- package/lib/wip/DateField/index.es.js +4 -0
- package/lib/wip/DateField/useDateFieldFocus.cjs.js +1 -0
- package/lib/wip/DateField/useDateFieldFocus.d.ts +23 -0
- package/lib/wip/DateField/useDateFieldFocus.es.js +65 -0
- package/lib/wip/DateField/useDateFieldForm.cjs.js +1 -0
- package/lib/wip/DateField/useDateFieldForm.d.ts +32 -0
- package/lib/wip/DateField/useDateFieldForm.es.js +51 -0
- package/lib/wip/DateField/useDateFieldSegments.cjs.js +1 -0
- package/lib/wip/DateField/useDateFieldSegments.d.ts +7 -0
- package/lib/wip/DateField/useDateFieldSegments.es.js +13 -0
- package/lib/wip/DateField/useDateFieldValidity.cjs.js +1 -0
- package/lib/wip/DateField/useDateFieldValidity.d.ts +23 -0
- package/lib/wip/DateField/useDateFieldValidity.es.js +19 -0
- package/lib/wip/DateField/useDateFieldValue.cjs.js +1 -0
- package/lib/wip/DateField/useDateFieldValue.d.ts +19 -0
- package/lib/wip/DateField/useDateFieldValue.es.js +62 -0
- package/lib/wip/DateField/useInvalidState.cjs.js +1 -0
- package/lib/wip/DateField/useInvalidState.d.ts +13 -0
- package/lib/wip/DateField/useInvalidState.es.js +8 -0
- package/lib/wip/Panel/Footer/Panel.Footer.Actions.cjs.js +1 -1
- package/lib/wip/Panel/Footer/Panel.Footer.Actions.es.js +1 -1
- package/lib/wip/Panel/Footer/Panel.Footer.cjs.js +1 -1
- package/lib/wip/Panel/Footer/Panel.Footer.es.js +1 -1
- package/lib/wip/Panel/Header/Panel.Header.ContentAfter.cjs.js +1 -1
- package/lib/wip/Panel/Header/Panel.Header.ContentAfter.es.js +1 -1
- package/lib/wip/Panel/Header/Panel.Header.ContentBefore.cjs.js +1 -1
- package/lib/wip/Panel/Header/Panel.Header.ContentBefore.es.js +1 -1
- package/lib/wip/Panel/Header/Panel.Header.Description.cjs.js +1 -1
- package/lib/wip/Panel/Header/Panel.Header.Description.es.js +1 -1
- package/lib/wip/Panel/Header/Panel.Header.Heading.cjs.js +1 -1
- package/lib/wip/Panel/Header/Panel.Header.Heading.es.js +1 -1
- package/lib/wip/Panel/Header/Panel.Header.Row.cjs.js +1 -1
- package/lib/wip/Panel/Header/Panel.Header.Row.es.js +1 -1
- package/lib/wip/Panel/Header/Panel.Header.Subheader.cjs.js +1 -1
- package/lib/wip/Panel/Header/Panel.Header.Subheader.es.js +1 -1
- package/lib/wip/Panel/Header/Panel.Header.cjs.js +1 -1
- package/lib/wip/Panel/Header/Panel.Header.es.js +1 -1
- package/lib/wip/Panel/Panel.Body.cjs.js +1 -1
- package/lib/wip/Panel/Panel.Body.es.js +1 -1
- package/lib/wip/Panel/Panel.Inline.cjs.js +1 -1
- package/lib/wip/Panel/Panel.Inline.d.ts +3 -1
- package/lib/wip/Panel/Panel.Inline.es.js +44 -40
- package/lib/wip/Panel/Panel.Overlay.cjs.js +1 -1
- package/lib/wip/Panel/Panel.Overlay.d.ts +18 -2
- package/lib/wip/Panel/Panel.Overlay.es.js +110 -84
- package/lib/wip/Panel/Panel.ResizeHandle.cjs.js +1 -1
- package/lib/wip/Panel/Panel.ResizeHandle.es.js +1 -1
- package/lib/wip/Panel/Panel.cjs.js +1 -1
- package/lib/wip/Panel/Panel.d.ts +1 -1
- package/lib/wip/Panel/Panel.es.js +125 -94
- package/lib/wip/Panel/Panel.helpers.cjs.js +1 -1
- package/lib/wip/Panel/Panel.helpers.d.ts +2 -1
- package/lib/wip/Panel/Panel.helpers.es.js +37 -35
- package/lib/wip/Panel/Panel.types.d.ts +64 -10
- package/lib/wip/Panel/Panel.useResize.cjs.js +1 -1
- package/lib/wip/Panel/Panel.useResize.d.ts +3 -1
- package/lib/wip/Panel/Panel.useResize.es.js +34 -30
- package/package.json +6 -6
- package/utils/hooks/index.cjs.js +1 -1
- package/utils/hooks/index.d.ts +1 -0
- package/utils/hooks/index.es.js +12 -10
- package/utils/hooks/useElementResize.cjs.js +1 -1
- package/utils/hooks/useElementResize.d.ts +1 -1
- package/utils/hooks/useElementResize.es.js +33 -33
- package/utils/hooks/usePrevious.cjs.js +1 -0
- package/utils/hooks/usePrevious.d.ts +5 -0
- package/utils/hooks/usePrevious.es.js +10 -0
- package/chunks/floatingui.module.BcBFebz0.js +0 -10
- package/chunks/floatingui.module.D3Aw_aYe.js +0 -1
- package/chunks/panel.module.CVyUzyCZ.js +0 -1
package/index.es.js
CHANGED
|
@@ -5,19 +5,19 @@ import { Alert as a } from "./lib/Alert/Alert.es.js";
|
|
|
5
5
|
import { Autocomplete as i } from "./lib/Autocomplete/Autocomplete.es.js";
|
|
6
6
|
import { Avatar as n } from "./lib/Avatar/index.es.js";
|
|
7
7
|
import { CloseButton as u } from "./lib/CloseButton/CloseButton.es.js";
|
|
8
|
-
import { Button as
|
|
8
|
+
import { Button as l, ButtonIconWrap as T } from "./lib/Button/Button.es.js";
|
|
9
9
|
import { Dialog as c } from "./lib/Dialog/Dialog.es.js";
|
|
10
10
|
import { Breadcrumb as L } from "./lib/Breadcrumbs/Breadcrumbs.es.js";
|
|
11
11
|
import { B as C } from "./chunks/BreadcrumbsItem.6c7NEqgi.js";
|
|
12
12
|
import { EmptyState as N } from "./lib/EmptyState/EmptyState.es.js";
|
|
13
13
|
import { Badge as _ } from "./lib/Badge/Badge.es.js";
|
|
14
|
-
import { BadgeDot as
|
|
15
|
-
import { Box as
|
|
14
|
+
import { BadgeDot as D } from "./lib/BadgeDot/BadgeDot.es.js";
|
|
15
|
+
import { Box as O } from "./lib/Box/Box.es.js";
|
|
16
16
|
import { Checkbox as E } from "./lib/Checkbox/Checkbox.es.js";
|
|
17
17
|
import { Chip as G } from "./lib/Chips/Chip.es.js";
|
|
18
18
|
import { ChipGroup as M } from "./lib/Chips/ChipGroup.es.js";
|
|
19
19
|
import { Divider as y } from "./lib/Divider/Divider.es.js";
|
|
20
|
-
import { default as
|
|
20
|
+
import { default as k } from "./lib/FileUpload/FileUpload.es.js";
|
|
21
21
|
import { Flag as W } from "./lib/Flag/Flag.es.js";
|
|
22
22
|
import { Form as K } from "./lib/Form/Form.es.js";
|
|
23
23
|
import { H as Q } from "./chunks/form.context.D7b4066_.js";
|
|
@@ -31,13 +31,13 @@ import { List as xo } from "./lib/List/List.es.js";
|
|
|
31
31
|
import { ActionList as fo } from "./lib/ActionList/ActionList.es.js";
|
|
32
32
|
import { Logo as no } from "./lib/Logo/Logo.es.js";
|
|
33
33
|
import { Menu as uo } from "./lib/Menu/Menu.es.js";
|
|
34
|
-
import { useMenuContext as
|
|
34
|
+
import { useMenuContext as lo } from "./lib/Menu/Menu.context.es.js";
|
|
35
35
|
import { NativeSelect as So } from "./lib/NativeSelect/NativeSelect.es.js";
|
|
36
36
|
import { Pagination as Bo } from "./lib/Pagination/Pagination.es.js";
|
|
37
37
|
import { ProgressBar as vo } from "./lib/ProgressBar/ProgressBar.es.js";
|
|
38
38
|
import { RadioButton as Po } from "./lib/RadioButton/RadioButton.es.js";
|
|
39
|
-
import { DRAWER_LAYOUT as go, HIDDEN_LAYOUT as _o, LOCAL_STORAGE_SIDE_NAV_WIDTH_VAR_NAME as Ro, NO_LAYOUT as
|
|
40
|
-
import { SideNavProvider as yo, useSideNavContext as
|
|
39
|
+
import { DRAWER_LAYOUT as go, HIDDEN_LAYOUT as _o, LOCAL_STORAGE_SIDE_NAV_WIDTH_VAR_NAME as Ro, NO_LAYOUT as Do, OPAQUE_BACKDROP as Ho, RAIL_LAYOUT as Oo, Root as ho, SideNav as Eo, SideNavBackdrops as Io, SideNavClosedLayouts as Go, SideNavOpenLayouts as bo, TRANSPARENT_BACKDROP as Mo } from "./lib/SideNav/SideNav.es.js";
|
|
40
|
+
import { SideNavProvider as yo, useSideNavContext as Fo } from "./lib/SideNav/SideNavContext.es.js";
|
|
41
41
|
import { SegmentedControl as Yo } from "./lib/SegmentedControl/SegmentedControl.es.js";
|
|
42
42
|
import { Select as wo } from "./lib/Select/Select.es.js";
|
|
43
43
|
import { Spinner as Vo } from "./lib/Spinner/Spinner.es.js";
|
|
@@ -51,25 +51,26 @@ import { TextArea as xr } from "./lib/TextArea/TextArea.es.js";
|
|
|
51
51
|
import { TextField as fr } from "./lib/TextField/TextField.es.js";
|
|
52
52
|
import { Toast as dr } from "./lib/Toasts/Toast.es.js";
|
|
53
53
|
import { T as sr, u as ur } from "./chunks/ToastContext.CYGy7l7R.js";
|
|
54
|
-
import { ToastContainer as
|
|
54
|
+
import { ToastContainer as lr } from "./lib/Toasts/ToastContainer.es.js";
|
|
55
55
|
import { Tooltip as Sr, TooltipIconTrigger as cr } from "./lib/Tooltip/Tooltip.es.js";
|
|
56
56
|
import { Header as Lr, InternalHeader as vr } from "./lib/Header/Header.es.js";
|
|
57
57
|
import { HeaderMasthead as Pr } from "./lib/Header/HeaderMasthead.es.js";
|
|
58
58
|
import { HeaderActionGroup as gr } from "./lib/Header/HeaderActionGroup.es.js";
|
|
59
59
|
import { HeaderNavigation as Rr } from "./lib/Header/HeaderNavigation.es.js";
|
|
60
|
-
import { PortalContext as
|
|
60
|
+
import { PortalContext as Hr, usePortal as Or } from "./lib/PortalProvider/PortalContext.es.js";
|
|
61
61
|
import { PortalProvider as Er } from "./lib/PortalProvider/PortalProvider.es.js";
|
|
62
62
|
import { Popover as Gr } from "./lib/Popover/Popover.es.js";
|
|
63
63
|
import { PageHeader as Mr } from "./lib/PageHeader/PageHeader.es.js";
|
|
64
64
|
import { PageLayout as yr } from "./lib/PageLayout/PageLayout.es.js";
|
|
65
|
-
import { Slider as
|
|
65
|
+
import { Slider as kr } from "./lib/Slider/Slider.es.js";
|
|
66
66
|
import { Card as Wr } from "./lib/Card/Card.es.js";
|
|
67
67
|
import { CardGroup as Kr } from "./lib/Card/CardGroup.es.js";
|
|
68
68
|
import { Search as Qr } from "./lib/Search/Search.es.js";
|
|
69
|
-
import {
|
|
70
|
-
import {
|
|
69
|
+
import { DateField as qr } from "./lib/wip/DateField/DateField.es.js";
|
|
70
|
+
import { ALL_THEMES as Jr, BeamThemeProvider as Xr, fromAttr as Zr, toAttr as $r, useBeamTheme as oe } from "./utils/theming/useBeamTheme.es.js";
|
|
71
|
+
import { v as ee } from "./chunks/useFormValidator.hook.CSmddwEt.js";
|
|
71
72
|
export {
|
|
72
|
-
|
|
73
|
+
Jr as ALL_THEMES,
|
|
73
74
|
t as Accordion,
|
|
74
75
|
m as AccordionGroup,
|
|
75
76
|
fo as ActionList,
|
|
@@ -77,13 +78,13 @@ export {
|
|
|
77
78
|
i as Autocomplete,
|
|
78
79
|
n as Avatar,
|
|
79
80
|
_ as Badge,
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
81
|
+
D as BadgeDot,
|
|
82
|
+
Xr as BeamThemeProvider,
|
|
83
|
+
O as Box,
|
|
83
84
|
L as Breadcrumb,
|
|
84
85
|
C as BreadcrumbItem,
|
|
85
|
-
|
|
86
|
-
|
|
86
|
+
l as Button,
|
|
87
|
+
T as ButtonIconWrap,
|
|
87
88
|
Wr as Card,
|
|
88
89
|
Kr as CardGroup,
|
|
89
90
|
E as Checkbox,
|
|
@@ -92,10 +93,11 @@ export {
|
|
|
92
93
|
M as ChipGroup,
|
|
93
94
|
u as CloseButton,
|
|
94
95
|
go as DRAWER_LAYOUT,
|
|
96
|
+
qr as DateField,
|
|
95
97
|
c as Dialog,
|
|
96
98
|
y as Divider,
|
|
97
99
|
N as EmptyState,
|
|
98
|
-
|
|
100
|
+
k as FileUpload,
|
|
99
101
|
W as Flag,
|
|
100
102
|
K as Form,
|
|
101
103
|
_o as HIDDEN_LAYOUT,
|
|
@@ -112,20 +114,20 @@ export {
|
|
|
112
114
|
xo as List,
|
|
113
115
|
no as Logo,
|
|
114
116
|
uo as Menu,
|
|
115
|
-
|
|
117
|
+
Do as NO_LAYOUT,
|
|
116
118
|
So as NativeSelect,
|
|
117
|
-
|
|
119
|
+
Ho as OPAQUE_BACKDROP,
|
|
118
120
|
Mr as PageHeader,
|
|
119
121
|
yr as PageLayout,
|
|
120
122
|
Bo as Pagination,
|
|
121
123
|
Gr as Popover,
|
|
122
|
-
|
|
124
|
+
Hr as PortalContext,
|
|
123
125
|
Er as PortalProvider,
|
|
124
126
|
vo as ProgressBar,
|
|
125
|
-
|
|
127
|
+
Oo as RAIL_LAYOUT,
|
|
126
128
|
Po as RadioButton,
|
|
127
129
|
oo as RadioButtonGroup,
|
|
128
|
-
|
|
130
|
+
ho as Root,
|
|
129
131
|
Qr as Search,
|
|
130
132
|
Yo as SegmentedControl,
|
|
131
133
|
wo as Select,
|
|
@@ -134,7 +136,7 @@ export {
|
|
|
134
136
|
Go as SideNavClosedLayouts,
|
|
135
137
|
bo as SideNavOpenLayouts,
|
|
136
138
|
yo as SideNavProvider,
|
|
137
|
-
|
|
139
|
+
kr as Slider,
|
|
138
140
|
Vo as Spinner,
|
|
139
141
|
jo as StateLayer,
|
|
140
142
|
zo as Stepper,
|
|
@@ -146,18 +148,18 @@ export {
|
|
|
146
148
|
xr as TextArea,
|
|
147
149
|
fr as TextField,
|
|
148
150
|
dr as Toast,
|
|
149
|
-
|
|
151
|
+
lr as ToastContainer,
|
|
150
152
|
sr as ToastProvider,
|
|
151
153
|
Sr as Tooltip,
|
|
152
154
|
cr as TooltipIconTrigger,
|
|
153
|
-
|
|
155
|
+
Zr as fromAttr,
|
|
154
156
|
Xo as processMetadata,
|
|
155
|
-
|
|
157
|
+
$r as toAttr,
|
|
156
158
|
Zo as useBeamStepper,
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
159
|
+
oe as useBeamTheme,
|
|
160
|
+
lo as useMenuContext,
|
|
161
|
+
Or as usePortal,
|
|
162
|
+
Fo as useSideNavContext,
|
|
161
163
|
ur as useToast,
|
|
162
|
-
|
|
164
|
+
ee as validators
|
|
163
165
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("react/jsx-runtime"),
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("react/jsx-runtime"),lt=require("../../chunks/classNames.DAeKwerT.js"),rt=require("../../chunks/constants.hwjHOsvT.js"),i=require("../../chunks/combobox.module.BRWGQi7s.js"),nt=require("clsx"),c=require("react"),J=require("../../chunks/form.context.hesWPMlU.js"),ct=require("../Form/contexts/label.context.cjs.js"),at=require("../Form/contexts/helperText.context.cjs.js"),Q=require("../ActionList/ActionList.cjs.js"),U=require("../_Options/Option.context.cjs.js"),ut=require("../_Options/Option.cjs.js"),dt=require("../_Options/OptionGroup.cjs.js");require("../_Options/OptionGroup.context.cjs.js");const pt=require("../_Options/getLastVisibleStructureIndex.cjs.js"),bt=require("../_Options/useRenderOption.cjs.js"),mt=require("../_Options/useSelectValue.cjs.js"),_t=require("./useAutocompleteDropdown.cjs.js"),xt=require("./AutocompleteDropdown.cjs.js"),ht=require("./useAutocompleteChips.cjs.js"),ft=require("./useAutocompleteKeyboardManager.cjs.js"),yt=require("./utils/filterOptions.cjs.js"),Ot=require("./useClearSelection.cjs.js"),gt=require("./AutocompleteField.cjs.js"),At=require("./useAutocompleteA11y.cjs.js"),qt=require("./useAutocompleteInteractions.cjs.js"),vt=require("../_Options/strategies/SelectionStrategy.cjs.js"),Ct=require("../_Options/OptionChips.cjs.js"),{baseClassNamePrefix:It,subElementClassPrefix:D,classModifierPrefix:a}=lt.getBEMClassNames("combobox"),Pt=c.forwardRef(({theme:q,width:X,error:d,children:Y,label:Z=null,contentBefore:ee,contentAfter:te,fluid:se=!1,helperText:F=null,validationRules:oe=[],className:ie,hideRequiredMarker:le=!1,disabled:re=!1,readOnly:ne=!1,required:ce=!1,placeholder:ae="",onChange:f,noResultsText:ue="No results found",optionFilter:v,hideChevron:de=!1,...y},pe)=>{const{id:L,name:be,"aria-describedby":me,multiple:t=!1,clearable:_e=t,...xe}=y,{showErrors:he,isInvalid:fe,errorShown:ye,disabled:s,readOnly:r,required:C}=J.useFormField({name:be,validationRules:oe,disabledProp:re,readOnlyProp:ne,requiredProp:ce}),{aria:O,ids:Oe}=At.default({helperText:F,externalDescribedBy:me,error:d,errorShown:ye,invalid:!!d||fe}),{helperTextId:ge,errorId:Ae,validationErrorsId:qe,labelId:I}=Oe,ve=!!(d!=null&&d.length),Ce=c.useCallback(e=>{f==null||f(e)},[f]),{value:b,setValue:G,selectProps:Ie,handleBlur:Pe,singleValue:P}=mt.useSelectValue({onChange:Ce,...y},pe),[m,S]=c.useState(null),j=!m&&(!b||Array.isArray(b)&&!b.length),{optionsContext:Se,optionIds:u,optionsProps:_,selectedOptionsProps:V,deselectOptionValue:T,getOptionByIndex:je,structureIds:M,groupsProps:w,optionGroupOf:E,optionIdsByGroup:B}=U.useCreateOptionsContext(b,G,t),Ve=c.useMemo(()=>{if(!P)return;const e=u.map(l=>_.get(l)).findIndex(l=>(l==null?void 0:l.value)===P);return e!==-1?e:void 0},[u,_,P]),N=c.useRef(null),{getFieldProps:Me,getInputProps:we,dropdownProps:Be,refs:Ne,open:H,setOpen:g,status:Re,setDisplayActiveIndex:$e}=_t.useAutocompleteDropdown({disabled:s,readOnly:r,lastSelectedOptionIndex:Ve,fieldRef:N}),A=Ne.domReference,De=nt(i.styles[It],q&&rt.themeClassName(q),se&&i.styles[`${a}fluid`],O.invalid&&i.styles[`${a}error`],s&&i.styles[`${a}disabled`],r&&i.styles[`${a}read-only`],j&&i.styles[`${a}empty`],t&&i.styles[`${a}multiple`],i.styles[`${a}autocomplete`],i.styles[`${a}dropdown-${Re}`],ie),{canClear:Fe,handleClear:Le}=Ot.default({multiple:t,clearable:_e,isEmpty:j,disabled:s,readOnly:r,setValue:G,setSearchText:S,inputRef:A,setOpen:g}),{chipGroupProps:Ge,handleBlur:Te,selectedChip:Ee,setSelectedChip:He,enabled:ke,selectPreviousChip:Ke,selectNextChip:We,options:ze,deselectOptionValue:Je}=ht.useAutocompleteChips({multiple:t,disabled:s,readOnly:r,open:H,setOpen:g,options:V,deselectOptionValue:T,fieldRef:N,inputRef:A}),{getKeyboardProps:k}=ft.useAutocompleteKeyboardManager({multiple:t,disabled:s,readOnly:r,open:H,setOpen:g,inputRef:A,fieldRef:N,chips:{enabled:ke,selectedChip:Ee,setSelectedChip:He,selectPreviousChip:Ke,selectNextChip:We,options:ze,deselectOptionValue:Je}}),K=c.useMemo(()=>vt.createSelectionStrategy(t),[t]),{handleBlur:Qe,handleFocus:Ue,handleItemClick:Xe}=qt.useAutocompleteInteractions({selectionStrategy:K,selectedOptions:V,inputRef:A,blurSelect:Pe,blurChips:Te,setSearchText:S,setOpen:g,searchText:m,getOptionByIndex:je,setDisplayActiveIndex:$e}),p=c.useMemo(()=>u.reduce((e,l)=>{const n=_.get(l);if(!n)return e;const x=E.get(l),z=x?w.get(x):void 0,R=v?v(n,m,z):yt.default(n,m);return e[l]=R,e},{}),[u,_,m,v,E,w]),Ye=c.useMemo(()=>u.length===0?!1:u.every(e=>p[e]),[u,p]),Ze=c.useMemo(()=>pt.getLastVisibleStructureIndex(M,B,p),[M,B,p]),W=bt.useRenderOption({optionsProps:_,selectionStrategy:K,value:b,multiple:t,optionClassName:i.styles[`${D}option`],filteredOptionsById:p}),{ref:et,...tt}=k(Me()),st=k(we());return o.jsxs(U.OptionsProvider,{value:Se,children:[o.jsxs("div",{className:De,style:{maxWidth:X},children:[o.jsx(ct.LabelProvider,{ctxHtmlFor:L,ctxDisabled:s,ctxRequired:C&&!le,ctxId:I,children:Z}),o.jsx(gt.AutocompleteField,{id:L,disabled:s,readOnly:r,required:C,contentBefore:ee,contentAfter:te,chips:o.jsx(Ct.OptionChips,{multiple:t,disabled:s,readOnly:r,selectedOptions:V,deselectOptionValue:T,chipGroupProps:Ge,input:o.jsx("input",{className:i.styles[`${D}field__input`],"aria-readonly":r,"aria-disabled":s,"aria-required":C,"aria-invalid":O.invalid,"aria-errormessage":O.errorMessage||void 0,"aria-labelledby":!y.ariaLabel&&I?I:void 0,"aria-label":y.ariaLabel,"aria-describedby":O.describedBy,placeholder:t&&!j?"":ae,onChange:e=>S(e.target.value),disabled:s,readOnly:r,autoComplete:"off",tabIndex:s?-1:0,autoFocus:!1,...st})}),hasClearButton:Fe,hideChevron:de,onClear:Le,onBlur:Qe,onFocusCapture:Ue,...tt,ref:et}),o.jsxs(at.HelperTextProvider,{ctxId:ge,ctxDisabled:s,children:[F,ve&&o.jsx(J.HelperText,{id:Ae,appearance:"negative",children:d})]}),he(qe)]}),o.jsxs("select",{...xe,...Ie,hidden:!0,multiple:t,children:[o.jsx("option",{value:"",children:"empty"}),Y]}),o.jsx(xt.AutocompleteDropdown,{...Be,className:i.styles[`${D}dropdown`],disabled:s,readOnly:r,theme:q,multiple:t,onItemClick:Xe,children:o.jsx(Q.ActionList,{role:"listbox",noResults:Ye?ue:void 0,children:M.map((e,l)=>{if(e.kind==="option")return W(e.id);const n=w.get(e.id);if(!n)return null;const x=B.get(e.id)??[],R=!x.some($=>!p[$]),ot=l===Ze,it=!!n.divider&&!ot;return o.jsx(Q.ActionList.Group,{heading:n.heading,divider:it,disabled:n.disabled,hidden:R,children:x.map($=>W($,n.disabled))},e.id)})})})]})}),h=Pt;h.Option=ut.Option;h.OptionGroup=dt.OptionGroup;h.displayName="Autocomplete";exports.Autocomplete=h;exports.default=h;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FormValidator } from '@viasat/beam-shared/components/form';
|
|
2
2
|
import { ThemeTypes } from '@viasat/beam-shared/utils';
|
|
3
3
|
import { default as React, FC, PropsWithoutRef, ReactNode } from 'react';
|
|
4
|
-
import { Option, OptionProps } from '../_Options';
|
|
4
|
+
import { Option, OptionGroup, OptionGroupProps, OptionProps } from '../_Options';
|
|
5
5
|
export interface AutocompleteProps extends React.ComponentPropsWithRef<'select'> {
|
|
6
6
|
/**
|
|
7
7
|
* Specify HelperText for Autocomplete
|
|
@@ -78,7 +78,7 @@ export interface AutocompleteProps extends React.ComponentPropsWithRef<'select'>
|
|
|
78
78
|
*/
|
|
79
79
|
contentAfter?: ReactNode;
|
|
80
80
|
/**
|
|
81
|
-
* Add `Autocomplete.Option` components as children
|
|
81
|
+
* Add any combination of `Autocomplete.Option` and `Autocomplete.OptionGroup` components as children
|
|
82
82
|
*/
|
|
83
83
|
children: ReactNode;
|
|
84
84
|
/**
|
|
@@ -102,13 +102,13 @@ export interface AutocompleteProps extends React.ComponentPropsWithRef<'select'>
|
|
|
102
102
|
*/
|
|
103
103
|
hideChevron?: boolean;
|
|
104
104
|
/**
|
|
105
|
-
* Provide a custom option filtering function. Receives
|
|
106
|
-
* Should return a filtered array (can re-order). Defaults to internal case-insensitive label/value matching
|
|
105
|
+
* Provide a custom option filtering function. Receives the option props, the current search text, and (when the option is inside an `Autocomplete.OptionGroup`) the owning group's props. Return `true` to filter the option out, `false` to keep it visible. Defaults to internal case-insensitive label/value matching that ignores the group.
|
|
107
106
|
*/
|
|
108
|
-
optionFilter?: (option: OptionProps, searchText: string | null) => boolean;
|
|
107
|
+
optionFilter?: (option: OptionProps, searchText: string | null, group?: OptionGroupProps) => boolean;
|
|
109
108
|
}
|
|
110
109
|
declare const AutocompleteComponent: FC<PropsWithoutRef<AutocompleteProps>>;
|
|
111
110
|
export declare const Autocomplete: typeof AutocompleteComponent & {
|
|
112
111
|
Option: typeof Option;
|
|
112
|
+
OptionGroup: typeof OptionGroup;
|
|
113
113
|
};
|
|
114
114
|
export default Autocomplete;
|