@viasat/beam-react 2.68.0 → 2.69.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/CHANGELOG.md +10 -0
- package/chunks/DateField.Segment.BP4uMe6e.js +1 -0
- package/chunks/{DateField.Segment.-XomLz51.js → DateField.Segment.Dtgriddw.js} +1 -1
- package/index.cjs.js +1 -1
- package/index.es.js +28 -26
- package/lib/DateField/DateField.Segment.cjs.js +1 -0
- package/lib/DateField/DateField.Segment.es.js +9 -0
- package/lib/DateField/DateField.Segments.cjs.js +1 -0
- package/lib/{wip/DateField → DateField}/DateField.Segments.es.js +1 -1
- package/lib/DateField/DateField.cjs.js +1 -0
- package/lib/{wip/DateField → DateField}/DateField.es.js +10 -10
- package/lib/{wip/DateField → DateField}/DateField.types.d.ts +25 -46
- package/lib/DateField/DateField.utils.cjs.js +1 -0
- package/lib/{wip/DateField → DateField}/DateField.utils.d.ts +10 -22
- package/lib/{wip/DateField → DateField}/DateField.utils.es.js +3 -5
- package/lib/{wip/DateField → DateField}/DateField.validation.d.ts +2 -2
- package/lib/DateField/useDateFieldFocus.cjs.js +1 -0
- package/lib/DateField/useDateFieldForm.cjs.js +1 -0
- package/lib/{wip/DateField → DateField}/useDateFieldForm.d.ts +1 -1
- package/lib/{wip/DateField → DateField}/useDateFieldForm.es.js +5 -5
- package/lib/{wip/DateField → DateField}/useDateFieldKeyboard.d.ts +2 -5
- package/lib/{wip/DateField → DateField}/useDateFieldValue.cjs.js +1 -1
- package/lib/DateField/useDateFieldValue.d.ts +44 -0
- package/lib/{wip/DateField → DateField}/useInvalidState.d.ts +5 -4
- package/lib/index.cjs.js +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.es.js +20 -18
- package/lib/wip/index.cjs.js +1 -1
- package/lib/wip/index.d.ts +0 -2
- package/lib/wip/index.es.js +15 -19
- package/package.json +7 -7
- package/chunks/DateField.Segment.Dc_nlh4y.js +0 -1
- package/lib/wip/DateField/DateField.Segment.cjs.js +0 -1
- package/lib/wip/DateField/DateField.Segment.es.js +0 -9
- package/lib/wip/DateField/DateField.Segments.cjs.js +0 -1
- package/lib/wip/DateField/DateField.cjs.js +0 -1
- package/lib/wip/DateField/DateField.utils.cjs.js +0 -1
- package/lib/wip/DateField/useDateFieldFocus.cjs.js +0 -1
- package/lib/wip/DateField/useDateFieldForm.cjs.js +0 -1
- package/lib/wip/DateField/useDateFieldValue.d.ts +0 -80
- /package/lib/{wip/DateField → DateField}/DateField.Segment.d.ts +0 -0
- /package/lib/{wip/DateField → DateField}/DateField.Segments.d.ts +0 -0
- /package/lib/{wip/DateField → DateField}/DateField.d.ts +0 -0
- /package/lib/{wip/DateField → DateField}/DateField.devWarnings.cjs.js +0 -0
- /package/lib/{wip/DateField → DateField}/DateField.devWarnings.d.ts +0 -0
- /package/lib/{wip/DateField → DateField}/DateField.devWarnings.es.js +0 -0
- /package/lib/{wip/DateField → DateField}/DateField.types.cjs.js +0 -0
- /package/lib/{wip/DateField → DateField}/DateField.types.es.js +0 -0
- /package/lib/{wip/DateField → DateField}/DateField.validation.cjs.js +0 -0
- /package/lib/{wip/DateField → DateField}/DateField.validation.es.js +0 -0
- /package/lib/{wip/DateField → DateField}/index.cjs.js +0 -0
- /package/lib/{wip/DateField → DateField}/index.d.ts +0 -0
- /package/lib/{wip/DateField → DateField}/index.es.js +0 -0
- /package/lib/{wip/DateField → DateField}/useDateFieldFocus.d.ts +0 -0
- /package/lib/{wip/DateField → DateField}/useDateFieldFocus.es.js +0 -0
- /package/lib/{wip/DateField → DateField}/useDateFieldKeyboard.cjs.js +0 -0
- /package/lib/{wip/DateField → DateField}/useDateFieldKeyboard.es.js +0 -0
- /package/lib/{wip/DateField → DateField}/useDateFieldSegments.cjs.js +0 -0
- /package/lib/{wip/DateField → DateField}/useDateFieldSegments.d.ts +0 -0
- /package/lib/{wip/DateField → DateField}/useDateFieldSegments.es.js +0 -0
- /package/lib/{wip/DateField → DateField}/useDateFieldValidity.cjs.js +0 -0
- /package/lib/{wip/DateField → DateField}/useDateFieldValidity.d.ts +0 -0
- /package/lib/{wip/DateField → DateField}/useDateFieldValidity.es.js +0 -0
- /package/lib/{wip/DateField → DateField}/useDateFieldValue.es.js +0 -0
- /package/lib/{wip/DateField → DateField}/useInvalidState.cjs.js +0 -0
- /package/lib/{wip/DateField → DateField}/useInvalidState.es.js +0 -0
- /package/lib/{wip/ErrorBoundary → _ErrorBoundary}/ErrorBoundary.cjs.js +0 -0
- /package/lib/{wip/ErrorBoundary → _ErrorBoundary}/ErrorBoundary.d.ts +0 -0
- /package/lib/{wip/ErrorBoundary → _ErrorBoundary}/ErrorBoundary.es.js +0 -0
- /package/lib/{wip/ErrorBoundary → _ErrorBoundary}/index.cjs.js +0 -0
- /package/lib/{wip/ErrorBoundary → _ErrorBoundary}/index.d.ts +0 -0
- /package/lib/{wip/ErrorBoundary → _ErrorBoundary}/index.es.js +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var z=require("../assets/DateField.css");const R=require("react/jsx-runtime"),$=require("clsx"),u=require("react"),k=require("./use-isomorphic-layout-effect.browser.esm.CkGv31zs.js"),y=require("./classNames.BFQUGnCN.js"),S=require("../lib/DateField/DateField.utils.cjs.js"),w="date-field",{baseClassNamePrefix:B,classModifierPrefix:L,subElementClassPrefix:s}=y.getBEMClassNames(w),c={field:`${s}field`,segments:`${s}segments`,segment:`${s}segment`,separator:`${s}separator`,srStatus:`${s}sr-status`},_={"bm-light":"bm-light","bm-dark":"bm-dark","bm-inverse":"bm-inverse","bm-enterprise":"bm-enterprise","bm-consumer":"bm-consumer","bm-date-field":"bm-date-field","bm-date-field--disabled":"bm-date-field--disabled","bm-date-field--sm":"bm-date-field--sm","bm-date-field__field":"bm-date-field__field","bm-date-field--md":"bm-date-field--md","bm-date-field--lg":"bm-date-field--lg","bm-date-field--error":"bm-date-field--error","bm-date-field__segment":"bm-date-field__segment","bm-date-field__separator":"bm-date-field__separator","bm-date-field--read-only":"bm-date-field--read-only","bm-date-field--fluid":"bm-date-field--fluid","bm-date-field__segments":"bm-date-field__segments","bm-date-field__sr-status":"bm-date-field__sr-status"},j={day:"day",month:"month",year:"year"},T=({type:i,value:g,valueMin:p,valueMax:C,displayValue:d,isPlaceholder:x,valueText:v,invalid:E,role:n,isActive:t,disabled:l,readOnly:m,required:h,onFocus:D,onBlur:N,onInput:q,onKeyDown:F,segmentRef:o})=>{const a=!l&&!m,f=u.useRef(null),M=u.useCallback(e=>{f.current=e,o(e)},[o]),I=e=>{if(!a)return;const b=e.currentTarget,r=e.nativeEvent.data;r!=null&&r.length===1&&q(i,r),b.textContent!==d&&(b.textContent=d)};k.index(()=>{if(!t||!a)return;const e=f.current;e&&S.selectElementContents(e)},[d,t,a]);const P=n==="spinbutton"?{"aria-valuenow":g??void 0,"aria-valuemin":p,"aria-valuemax":C,"aria-valuetext":v}:{"aria-multiline":!1};return R.jsx("span",{ref:M,role:n,"aria-label":j[i],...P,"aria-disabled":l||void 0,"aria-readonly":m||void 0,"aria-required":h||void 0,"aria-invalid":E||void 0,contentEditable:a&&t,suppressContentEditableWarning:!0,tabIndex:t?0:-1,inputMode:a?"numeric":void 0,spellCheck:!1,autoCorrect:"off",autoCapitalize:"off","data-segment":i,"data-active":t,"data-placeholder":x,onFocus:D,onBlur:N,onInput:I,onKeyDown:e=>F(i,e),onMouseUp:e=>e.preventDefault(),className:$(_[c.segment]),children:d})};exports.DateFieldSegment=T;exports.baseClassNamePrefix=B;exports.classModifierPrefix=L;exports.staticDateFieldClassNames=c;exports.styles=_;
|
|
@@ -4,7 +4,7 @@ import I from "clsx";
|
|
|
4
4
|
import { useRef as B, useCallback as P } from "react";
|
|
5
5
|
import { i as R } from "./use-isomorphic-layout-effect.browser.esm.DERp5kr6.js";
|
|
6
6
|
import { g as S } from "./classNames.CA_0DokS.js";
|
|
7
|
-
import { selectElementContents as w } from "../lib/
|
|
7
|
+
import { selectElementContents as w } from "../lib/DateField/DateField.utils.es.js";
|
|
8
8
|
const y = "date-field", { baseClassNamePrefix: A, classModifierPrefix: H, subElementClassPrefix: d } = S(y), F = {
|
|
9
9
|
field: `${d}field`,
|
|
10
10
|
segments: `${d}segments`,
|
package/index.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var Ae=require("./assets/index.css");Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./lib/Accordion/Accordion.cjs.js"),s=require("./lib/Accordion/AccordionGroup.cjs.js"),c=require("./lib/Alert/Alert.cjs.js"),d=require("./lib/Autocomplete/Autocomplete.cjs.js"),b=require("./lib/Avatar/index.cjs.js"),p=require("./lib/CloseButton/CloseButton.cjs.js"),o=require("./lib/Button/Button.cjs.js"),S=require("./lib/Dialog/Dialog.cjs.js"),q=require("./lib/Breadcrumbs/Breadcrumbs.cjs.js"),A=require("./chunks/BreadcrumbsItem.BU74Md4d.js"),T=require("./lib/EmptyState/EmptyState.cjs.js"),B=require("./lib/Badge/Badge.cjs.js"),C=require("./lib/BadgeDot/BadgeDot.cjs.js"),P=require("./lib/Box/Box.cjs.js"),g=require("./lib/Checkbox/Checkbox.cjs.js"),L=require("./lib/Chips/Chip.cjs.js"),v=require("./lib/Chips/ChipGroup.cjs.js"),m=require("./lib/Divider/Divider.cjs.js"),h=require("./lib/FileUpload/FileUpload.cjs.js"),x=require("./lib/Flag/Flag.cjs.js"),N=require("./lib/Form/Form.cjs.js"),H=require("./chunks/form.context.CkC0TwMb.js"),D=require("./lib/Icon/Icon.cjs.js"),G=require("./lib/InputChoiceGroup/SwitchGroup/SwitchGroup.cjs.js"),R=require("./lib/InputChoiceGroup/CheckboxGroup/CheckboxGroup.cjs.js"),I=require("./lib/InputChoiceGroup/RadioButtonGroup/RadioButtonGroup.cjs.js"),O=require("./lib/Label/Label.cjs.js"),E=require("./lib/Link/Link.cjs.js"),F=require("./lib/List/List.cjs.js"),y=require("./lib/ActionList/ActionList.cjs.js"),M=require("./lib/Logo/Logo.cjs.js"),k=require("./lib/Menu/Menu.cjs.js"),U=require("./lib/Menu/Menu.context.cjs.js"),w=require("./lib/NativeSelect/NativeSelect.cjs.js"),Y=require("./lib/Pagination/Pagination.cjs.js"),W=require("./lib/ProgressBar/ProgressBar.cjs.js"),V=require("./lib/RadioButton/RadioButton.cjs.js"),e=require("./lib/SideNav/SideNav.cjs.js"),t=require("./lib/SideNav/SideNavContext.cjs.js"),f=require("./lib/SegmentedControl/SegmentedControl.cjs.js"),K=require("./lib/Select/Select.cjs.js"),Q=require("./lib/Spinner/Spinner.cjs.js"),j=require("./lib/StateLayer/StateLayer.cjs.js"),z=require("./lib/Stepper/Stepper.cjs.js"),i=require("./lib/Stepper/useBeamStepper.cjs.js"),J=require("./lib/Switch/Switch.cjs.js"),X=require("./lib/Tabs/Tabs.cjs.js"),Z=require("./lib/Text/Text.cjs.js"),$=require("./lib/TextArea/TextArea.cjs.js"),ee=require("./lib/TextField/TextField.cjs.js"),re=require("./lib/Toasts/Toast.cjs.js"),a=require("./chunks/ToastContext.DVb2CKcX.js"),oe=require("./lib/Toasts/ToastContainer.cjs.js"),n=require("./lib/Tooltip/Tooltip.cjs.js"),_=require("./lib/Header/Header.cjs.js"),te=require("./lib/Header/HeaderMasthead.cjs.js"),ie=require("./lib/Header/HeaderActionGroup.cjs.js"),ae=require("./lib/Header/HeaderNavigation.cjs.js"),u=require("./lib/PortalProvider/PortalContext.cjs.js"),ne=require("./lib/PortalProvider/PortalProvider.cjs.js"),_e=require("./lib/Popover/Popover.cjs.js"),ue=require("./lib/PageHeader/PageHeader.cjs.js"),le=require("./lib/PageLayout/PageLayout.cjs.js"),se=require("./lib/Panel/Panel.cjs.js"),ce=require("./lib/Slider/Slider.cjs.js"),de=require("./lib/Card/Card.cjs.js"),be=require("./lib/Card/CardGroup.cjs.js"),pe=require("./lib/Search/Search.cjs.js"),Se=require("./lib/DateField/DateField.cjs.js"),r=require("./utils/theming/useBeamTheme.cjs.js"),qe=require("./chunks/useFormValidator.hook.CbrwDKcG.js");exports.Accordion=l.Accordion;exports.AccordionGroup=s.AccordionGroup;exports.Alert=c.Alert;exports.Autocomplete=d.Autocomplete;exports.Avatar=b.Avatar;exports.CloseButton=p.CloseButton;exports.Button=o.Button;exports.ButtonIconWrap=o.ButtonIconWrap;exports.Dialog=S.Dialog;exports.Breadcrumb=q.Breadcrumb;exports.BreadcrumbItem=A.BreadcrumbItem;exports.EmptyState=T.EmptyState;exports.Badge=B.Badge;exports.BadgeDot=C.BadgeDot;exports.Box=P.Box;exports.Checkbox=g.Checkbox;exports.Chip=L.Chip;exports.ChipGroup=v.ChipGroup;exports.Divider=m.Divider;exports.FileUpload=h.default;exports.Flag=x.Flag;exports.Form=N.Form;exports.HelperText=H.HelperText;exports.Icon=D.Icon;exports.SwitchGroup=G.SwitchGroup;exports.CheckboxGroup=R.CheckboxGroup;exports.RadioButtonGroup=I.RadioButtonGroup;exports.Label=O.Label;exports.Link=E.Link;exports.List=F.List;exports.ActionList=y.ActionList;exports.Logo=M.Logo;exports.Menu=k.Menu;exports.useMenuContext=U.useMenuContext;exports.NativeSelect=w.NativeSelect;exports.Pagination=Y.Pagination;exports.ProgressBar=W.ProgressBar;exports.RadioButton=V.RadioButton;exports.DRAWER_LAYOUT=e.DRAWER_LAYOUT;exports.HIDDEN_LAYOUT=e.HIDDEN_LAYOUT;exports.LOCAL_STORAGE_SIDE_NAV_WIDTH_VAR_NAME=e.LOCAL_STORAGE_SIDE_NAV_WIDTH_VAR_NAME;exports.NO_LAYOUT=e.NO_LAYOUT;exports.OPAQUE_BACKDROP=e.OPAQUE_BACKDROP;exports.RAIL_LAYOUT=e.RAIL_LAYOUT;exports.Root=e.Root;exports.SideNav=e.SideNav;exports.SideNavBackdrops=e.SideNavBackdrops;exports.SideNavClosedLayouts=e.SideNavClosedLayouts;exports.SideNavOpenLayouts=e.SideNavOpenLayouts;exports.TRANSPARENT_BACKDROP=e.TRANSPARENT_BACKDROP;exports.SideNavProvider=t.SideNavProvider;exports.useSideNavContext=t.useSideNavContext;exports.SegmentedControl=f.SegmentedControl;exports.Select=K.Select;exports.Spinner=Q.Spinner;exports.StateLayer=j.StateLayer;exports.Stepper=z.Stepper;exports.processMetadata=i.processMetadata;exports.useBeamStepper=i.useBeamStepper;exports.Switch=J.Switch;exports.Tabs=X.Tabs;exports.Text=Z.Text;exports.TextArea=$.TextArea;exports.TextField=ee.TextField;exports.Toast=re.Toast;exports.ToastProvider=a.ToastProvider;exports.useToast=a.useToast;exports.ToastContainer=oe.ToastContainer;exports.Tooltip=n.Tooltip;exports.TooltipIconTrigger=n.TooltipIconTrigger;exports.Header=_.Header;exports.InternalHeader=_.InternalHeader;exports.HeaderMasthead=te.HeaderMasthead;exports.HeaderActionGroup=ie.HeaderActionGroup;exports.HeaderNavigation=ae.HeaderNavigation;exports.PortalContext=u.PortalContext;exports.usePortal=u.usePortal;exports.PortalProvider=ne.PortalProvider;exports.Popover=_e.Popover;exports.PageHeader=ue.PageHeader;exports.PageLayout=le.PageLayout;exports.Panel=se.Panel;exports.Slider=ce.Slider;exports.Card=de.Card;exports.CardGroup=be.CardGroup;exports.Search=pe.Search;exports.DateField=Se.DateField;exports.ALL_THEMES=r.ALL_THEMES;exports.BeamThemeProvider=r.BeamThemeProvider;exports.fromAttr=r.fromAttr;exports.toAttr=r.toAttr;exports.useBeamTheme=r.useBeamTheme;exports.validators=qe.validators;
|
package/index.es.js
CHANGED
|
@@ -11,13 +11,13 @@ import { Breadcrumb as L } from "./lib/Breadcrumbs/Breadcrumbs.es.js";
|
|
|
11
11
|
import { B as P } from "./chunks/BreadcrumbsItem.DC3CIyBO.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.BDYA2JQs.js";
|
|
@@ -36,8 +36,8 @@ 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 Co } 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";
|
|
@@ -57,20 +57,21 @@ import { Header as Lr, InternalHeader as vr } from "./lib/Header/Header.es.js";
|
|
|
57
57
|
import { HeaderMasthead as Cr } 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 { Panel as
|
|
65
|
+
import { Panel as kr } from "./lib/Panel/Panel.es.js";
|
|
66
66
|
import { Slider as Wr } from "./lib/Slider/Slider.es.js";
|
|
67
67
|
import { Card as Kr } from "./lib/Card/Card.es.js";
|
|
68
68
|
import { CardGroup as Qr } from "./lib/Card/CardGroup.es.js";
|
|
69
69
|
import { Search as qr } from "./lib/Search/Search.es.js";
|
|
70
|
-
import {
|
|
71
|
-
import {
|
|
70
|
+
import { DateField as Jr } from "./lib/DateField/DateField.es.js";
|
|
71
|
+
import { ALL_THEMES as Zr, BeamThemeProvider as $r, fromAttr as oe, toAttr as re, useBeamTheme as ee } from "./utils/theming/useBeamTheme.es.js";
|
|
72
|
+
import { v as pe } from "./chunks/useFormValidator.hook.BM-e4j8b.js";
|
|
72
73
|
export {
|
|
73
|
-
|
|
74
|
+
Zr as ALL_THEMES,
|
|
74
75
|
t as Accordion,
|
|
75
76
|
m as AccordionGroup,
|
|
76
77
|
fo as ActionList,
|
|
@@ -78,9 +79,9 @@ export {
|
|
|
78
79
|
i as Autocomplete,
|
|
79
80
|
n as Avatar,
|
|
80
81
|
_ as Badge,
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
D as BadgeDot,
|
|
83
|
+
$r as BeamThemeProvider,
|
|
84
|
+
O as Box,
|
|
84
85
|
L as Breadcrumb,
|
|
85
86
|
P as BreadcrumbItem,
|
|
86
87
|
l as Button,
|
|
@@ -93,10 +94,11 @@ export {
|
|
|
93
94
|
M as ChipGroup,
|
|
94
95
|
u as CloseButton,
|
|
95
96
|
go as DRAWER_LAYOUT,
|
|
97
|
+
Jr as DateField,
|
|
96
98
|
c as Dialog,
|
|
97
99
|
y as Divider,
|
|
98
100
|
N as EmptyState,
|
|
99
|
-
|
|
101
|
+
k as FileUpload,
|
|
100
102
|
W as Flag,
|
|
101
103
|
K as Form,
|
|
102
104
|
_o as HIDDEN_LAYOUT,
|
|
@@ -113,21 +115,21 @@ export {
|
|
|
113
115
|
xo as List,
|
|
114
116
|
no as Logo,
|
|
115
117
|
uo as Menu,
|
|
116
|
-
|
|
118
|
+
Do as NO_LAYOUT,
|
|
117
119
|
So as NativeSelect,
|
|
118
|
-
|
|
120
|
+
Ho as OPAQUE_BACKDROP,
|
|
119
121
|
Mr as PageHeader,
|
|
120
122
|
yr as PageLayout,
|
|
121
123
|
Bo as Pagination,
|
|
122
|
-
|
|
124
|
+
kr as Panel,
|
|
123
125
|
Gr as Popover,
|
|
124
|
-
|
|
126
|
+
Hr as PortalContext,
|
|
125
127
|
Er as PortalProvider,
|
|
126
128
|
vo as ProgressBar,
|
|
127
|
-
|
|
129
|
+
Oo as RAIL_LAYOUT,
|
|
128
130
|
Co as RadioButton,
|
|
129
131
|
oo as RadioButtonGroup,
|
|
130
|
-
|
|
132
|
+
ho as Root,
|
|
131
133
|
qr as Search,
|
|
132
134
|
Yo as SegmentedControl,
|
|
133
135
|
wo as Select,
|
|
@@ -152,14 +154,14 @@ export {
|
|
|
152
154
|
sr as ToastProvider,
|
|
153
155
|
Sr as Tooltip,
|
|
154
156
|
cr as TooltipIconTrigger,
|
|
155
|
-
|
|
157
|
+
oe as fromAttr,
|
|
156
158
|
Xo as processMetadata,
|
|
157
|
-
|
|
159
|
+
re as toAttr,
|
|
158
160
|
Zo as useBeamStepper,
|
|
159
|
-
|
|
161
|
+
ee as useBeamTheme,
|
|
160
162
|
lo as useMenuContext,
|
|
161
|
-
|
|
162
|
-
|
|
163
|
+
Or as usePortal,
|
|
164
|
+
Fo as useSideNavContext,
|
|
163
165
|
ur as useToast,
|
|
164
|
-
|
|
166
|
+
pe as validators
|
|
165
167
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("react/jsx-runtime");require("clsx");require("react");require("../../chunks/use-isomorphic-layout-effect.browser.esm.CkGv31zs.js");const e=require("../../chunks/DateField.Segment.BP4uMe6e.js");require("./DateField.utils.cjs.js");exports.DateFieldSegment=e.DateFieldSegment;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import "react/jsx-runtime";
|
|
2
|
+
import "clsx";
|
|
3
|
+
import "react";
|
|
4
|
+
import "../../chunks/use-isomorphic-layout-effect.browser.esm.DERp5kr6.js";
|
|
5
|
+
import { D as a } from "../../chunks/DateField.Segment.Dtgriddw.js";
|
|
6
|
+
import "./DateField.utils.es.js";
|
|
7
|
+
export {
|
|
8
|
+
a as DateFieldSegment
|
|
9
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),s=require("../../chunks/DateField.Segment.BP4uMe6e.js"),t=require("./DateField.utils.cjs.js"),b={month:"MM",day:"DD",year:"YYYY"},R=({parts:r,segmentText:i,segmentValues:a,focusedSegment:c,disabled:d,readOnly:m,required:u,invalid:y,role:h,onSegmentFocus:D,onSegmentBlur:M,onSegmentInput:p,onSegmentKeyDown:x,registerSegmentRef:F})=>{const g={day:{min:1,max:t.getDaysInMonth(a.year,a.month)},month:{min:1,max:t.MONTH_MAX},year:{min:t.YEAR_MIN,max:t.YEAR_MAX}},v=Object.values(i).every(n=>n==="");return l.jsx("span",{className:s.styles[s.staticDateFieldClassNames.segments],children:r.map((n,_)=>{if(n.type==="literal")return l.jsx("span",{"aria-hidden":"true","data-placeholder":v,className:s.styles[s.staticDateFieldClassNames.separator],children:n.value},`literal-${_}`);const e=n.type,S=b[e],{displayValue:o,isPlaceholder:N}=t.getSegmentDisplay(e,i[e],S),{min:j,max:A}=g[e],Y=e==="month"&&a.month!=null?t.getMonthName(a.month):o;return l.jsx(s.DateFieldSegment,{type:e,value:a[e],valueMin:j,valueMax:A,displayValue:o,isPlaceholder:N,valueText:Y,invalid:y,role:h,isActive:c===e,disabled:d,readOnly:m,required:u,onFocus:()=>D(e),onBlur:M,onInput:p,onKeyDown:x,segmentRef:F(e)},e)})})};exports.DateFieldSegments=R;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as n } from "react/jsx-runtime";
|
|
2
|
-
import { s as l, a as r, D as S } from "
|
|
2
|
+
import { s as l, a as r, D as S } from "../../chunks/DateField.Segment.Dtgriddw.js";
|
|
3
3
|
import { getDaysInMonth as I, getSegmentDisplay as O, YEAR_MAX as P, YEAR_MIN as _, MONTH_MAX as j, getMonthName as B } from "./DateField.utils.es.js";
|
|
4
4
|
const C = {
|
|
5
5
|
month: "MM",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),Te=require("clsx"),l=require("react"),e=require("../../chunks/DateField.Segment.BP4uMe6e.js"),Be=require("../../chunks/input.Dq5mx3KB.js"),Ve=require("../../chunks/constants.CgMu0_1M.js"),we=require("../../chunks/helpers.BIckGIbP.js"),Pe=require("../../chunks/form.context.CkC0TwMb.js"),Ae=require("../Form/contexts/label.context.cjs.js"),ke=require("../Form/contexts/helperText.context.cjs.js"),He=require("../../utils/hooks/useIsMounted.cjs.js"),Ke=require("../../utils/functions.cjs.js"),$e=require("../_ErrorBoundary/ErrorBoundary.cjs.js"),We=require("./DateField.Segments.cjs.js"),k=require("./DateField.devWarnings.cjs.js"),o=require("./DateField.utils.cjs.js"),Ye=require("./useDateFieldFocus.cjs.js"),Ue=require("./useDateFieldForm.cjs.js"),ze=require("./useDateFieldKeyboard.cjs.js"),Ge=require("./useDateFieldSegments.cjs.js"),Je=require("./useDateFieldValidity.cjs.js"),Qe=require("./useDateFieldValue.cjs.js"),Xe=require("./useInvalidState.cjs.js"),Ze="MM/DD/YYYY",es=()=>{process.env.NODE_ENV!=="production"&&console.warn("DateField: segments failed to render; showing a static fallback.")},ss=l.forwardRef(function({value:D,defaultValue:m,onChange:H,minDate:_,maxDate:g,getClampAnnouncement:K,locale:$,label:x=null,helperText:v=null,error:p,hideRequiredMarker:W=!1,validationRules:Y,width:U,theme:y,fluid:z=!1,size:G=Be.defaultInputSize,disabled:J=!1,readOnly:Q=!1,required:X=!1,name:S,id:Z,className:ee,style:se,"aria-label":te,"aria-describedby":le,"aria-labelledby":ae,...re},h){const{disabled:s,readOnly:i,required:q,invalid:ie,errorMessageProvided:I,defaultValue:ne,errorId:M,helperTextId:oe,validationErrorsId:de,labelId:R,ariaDescribedBy:ue,ariaLabelledBy:ce,showErrors:be}=Ue.useDateFieldForm({name:S,disabled:J,readOnly:Q,required:X,defaultValue:m,error:p,hasHelperText:!!v,hasLabel:!!x,validationRules:Y,ariaDescribedBy:le,ariaLabelledBy:ae});k.useDevMinMaxWarning(_,g),k.useDevInvalidValueWarning(D,m);const n=l.useRef(null),{segmentRefs:fe,registerSegmentRef:Fe}=Ge.useDateFieldSegments(),De=$??o.DEFAULT_LOCALE,C=He.useIsMounted(),c=o.getDateParts(C?De:o.DEFAULT_LOCALE),d=l.useMemo(()=>o.getSegmentOrder(c),[c]),{segmentText:me,segmentValues:E,currentValue:N,wasTouched:_e,appendDigit:j,adjustSegment:ge,clearSegment:xe,clearAll:L,beginSegmentEdit:ve,commitOnBlur:pe,clampAnnouncement:ye}=Qe.useDateFieldValue({value:D,defaultValue:ne,onChange:H,minDate:_,maxDate:g,getClampAnnouncement:K}),{focusedSegment:O,fieldTabIndex:Se,handleSegmentFocus:u,handleFieldFocus:he,handleFieldBlur:qe,handleFieldMouseDown:Ie,focusNext:b,focusPrevious:Me}=Ye.useDateFieldFocus({disabled:s,fieldRef:n,segmentRefs:fe,partsOrder:d,onSegmentFocusChange:ve,onFieldBlur:pe}),Re=ze.useDateFieldKeyboard({disabled:s,readOnly:i,fieldRef:n,focusNext:b,focusPrevious:Me,adjustSegment:ge,clearSegment:xe}),{isInvalid:Ce}=Je.useDateFieldValidity({segments:E,currentValue:N,wasTouched:_e,isFocused:O!==null}),Ee=l.useCallback((t,r)=>{const{advanced:F}=j(t,r);F&&b(t)},[j,b]),f=Xe.useInvalidState({formInvalid:ie,valueInvalid:Ce}),Ne=C&&we.isIOS()?"textbox":"spinbutton",T=l.useCallback(t=>{s||u(d[0],t)},[s,u,d]),B=l.useCallback(()=>{var r;if(s)return;const t=document.activeElement;t instanceof HTMLElement&&t!==n.current&&((r=n.current)!=null&&r.contains(t))&&t.blur()},[s]),V=l.useCallback(()=>{s||i||L()},[s,i,L]),w=l.useRef(T),P=l.useRef(B),A=l.useRef(V);w.current=T,P.current=B,A.current=V;const je=l.useCallback(t=>{const r=t?Object.assign(t,{focus:F=>w.current(F),blur:()=>P.current(),clear:()=>A.current()}):null;Ke.mergeRefs(n,h)(r)},[h]),Le=t=>{if(s)return;const r=t.target.closest("label");!r||r.id!==R||(t.preventDefault(),u(d[0]))},Oe=Te(e.styles[e.baseClassNamePrefix],y&&Ve.themeClassName(y),e.styles[`${e.classModifierPrefix}${G}`],z&&e.styles[`${e.classModifierPrefix}fluid`],f&&e.styles[`${e.classModifierPrefix}error`],s&&e.styles[`${e.classModifierPrefix}disabled`],i&&e.styles[`${e.classModifierPrefix}read-only`],ee);return a.jsxs("div",{className:Oe,style:{...se,maxWidth:U},onMouseDownCapture:Le,children:[a.jsx(Ae.LabelProvider,{ctxId:R,ctxDisabled:s,ctxRequired:q&&!W,children:x}),a.jsx("div",{...re,ref:je,id:Z,role:"group","aria-label":te,"aria-labelledby":ce,"aria-disabled":s||void 0,"aria-invalid":f||void 0,"aria-describedby":ue,"aria-errormessage":I?M:void 0,tabIndex:Se,className:e.styles[e.staticDateFieldClassNames.field],onMouseDown:Ie,onFocus:he,children:a.jsx($e.ErrorBoundary,{fallback:a.jsx("span",{className:e.styles[e.staticDateFieldClassNames.segments],children:Ze}),onError:es,children:a.jsx(We.DateFieldSegments,{parts:c,segmentText:me,segmentValues:E,focusedSegment:O,disabled:s,readOnly:i,required:q,invalid:f,role:Ne,onSegmentFocus:u,onSegmentBlur:qe,onSegmentInput:Ee,onSegmentKeyDown:Re,registerSegmentRef:Fe})})}),a.jsx("span",{role:"status","aria-live":"polite","aria-atomic":"true",className:e.styles[e.staticDateFieldClassNames.srStatus],children:ye}),a.jsx("input",{type:"hidden",name:S,value:o.toISODateString(N),disabled:s}),a.jsxs(ke.HelperTextProvider,{ctxId:oe,ctxDisabled:s,children:[v,I&&a.jsx(Pe.HelperText,{id:M,appearance:"negative",children:p})]}),be(de)]})});exports.DateField=ss;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { jsxs as W, jsx as s } from "react/jsx-runtime";
|
|
2
2
|
import $e from "clsx";
|
|
3
3
|
import { forwardRef as He, useRef as u, useMemo as Ke, useCallback as o } from "react";
|
|
4
|
-
import { s as t, b as je, c as i, a as g } from "
|
|
5
|
-
import { d as qe } from "
|
|
6
|
-
import { t as We } from "
|
|
7
|
-
import { i as Ye } from "
|
|
8
|
-
import { H as _e } from "
|
|
9
|
-
import { LabelProvider as ke } from "
|
|
10
|
-
import { HelperTextProvider as ze } from "
|
|
11
|
-
import { useIsMounted as Ue } from "
|
|
12
|
-
import { mergeRefs as Ge } from "
|
|
13
|
-
import { ErrorBoundary as Je } from "../
|
|
4
|
+
import { s as t, b as je, c as i, a as g } from "../../chunks/DateField.Segment.Dtgriddw.js";
|
|
5
|
+
import { d as qe } from "../../chunks/input.f81KzcGZ.js";
|
|
6
|
+
import { t as We } from "../../chunks/constants.Cruz2A1w.js";
|
|
7
|
+
import { i as Ye } from "../../chunks/helpers.CiQfGwdc.js";
|
|
8
|
+
import { H as _e } from "../../chunks/form.context.BDYA2JQs.js";
|
|
9
|
+
import { LabelProvider as ke } from "../Form/contexts/label.context.es.js";
|
|
10
|
+
import { HelperTextProvider as ze } from "../Form/contexts/helperText.context.es.js";
|
|
11
|
+
import { useIsMounted as Ue } from "../../utils/hooks/useIsMounted.es.js";
|
|
12
|
+
import { mergeRefs as Ge } from "../../utils/functions.es.js";
|
|
13
|
+
import { ErrorBoundary as Je } from "../_ErrorBoundary/ErrorBoundary.es.js";
|
|
14
14
|
import { DateFieldSegments as Qe } from "./DateField.Segments.es.js";
|
|
15
15
|
import { useDevMinMaxWarning as Xe, useDevInvalidValueWarning as Ze } from "./DateField.devWarnings.es.js";
|
|
16
16
|
import { getDateParts as er, getSegmentOrder as rr, toISODateString as ar, DEFAULT_LOCALE as Y } from "./DateField.utils.es.js";
|
|
@@ -33,18 +33,11 @@ export type DateFieldPart = {
|
|
|
33
33
|
value: string;
|
|
34
34
|
};
|
|
35
35
|
/**
|
|
36
|
-
* The DateField `ref
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* `focus()` and `blur()` are field-aware overrides of the native element methods:
|
|
43
|
-
* `focus()` moves to the first segment; `blur()` exits the field (running the
|
|
44
|
-
* same commit / normalize / clamp as a user blur). Both no-op when the field is
|
|
45
|
-
* disabled. `clear()` empties every segment and fires `onChange(null)` (only
|
|
46
|
-
* when a value was present), and no-ops when disabled or read-only.
|
|
47
|
-
* (`selectAll()` is reserved for DF-13.)
|
|
36
|
+
* The DateField `ref`: the field's root element augmented with `clear()`. It
|
|
37
|
+
* stays a real DOM node so it works anywhere one is expected — a `Popover`
|
|
38
|
+
* trigger, measuring, `scrollIntoView` — while `focus()` and `blur()` become
|
|
39
|
+
* field-aware overrides that move to the first segment and exit the field.
|
|
40
|
+
* All three no-op when disabled; `clear()` also no-ops when read-only.
|
|
48
41
|
*/
|
|
49
42
|
export type DateFieldHandle = HTMLDivElement & {
|
|
50
43
|
clear(): void;
|
|
@@ -105,35 +98,36 @@ export interface DateFieldProps extends DateFieldInputAttributes {
|
|
|
105
98
|
*/
|
|
106
99
|
validationRules?: Array<FormValidator>;
|
|
107
100
|
/**
|
|
108
|
-
*
|
|
101
|
+
* Specify the controlled date value of DateField; pass `null` to clear
|
|
109
102
|
*/
|
|
110
103
|
value?: Nullable<Date>;
|
|
111
104
|
/**
|
|
112
|
-
*
|
|
105
|
+
* Specify the initial date value of an uncontrolled DateField
|
|
113
106
|
*/
|
|
114
107
|
defaultValue?: Nullable<Date>;
|
|
115
108
|
/**
|
|
116
|
-
*
|
|
109
|
+
* Specify the handler called when the date value changes
|
|
117
110
|
*/
|
|
118
111
|
onChange?: (value: Nullable<Date>) => void;
|
|
119
112
|
/**
|
|
120
|
-
*
|
|
113
|
+
* Specify the earliest date; a touched value springs up to it on blur
|
|
114
|
+
* (add a `validationRules` entry to block submit)
|
|
121
115
|
*/
|
|
122
116
|
minDate?: Date;
|
|
123
117
|
/**
|
|
124
|
-
*
|
|
118
|
+
* Specify the latest date; a touched value springs down to it on blur
|
|
119
|
+
* (add a `validationRules` entry to block submit)
|
|
125
120
|
*/
|
|
126
121
|
maxDate?: Date;
|
|
127
122
|
/**
|
|
128
|
-
*
|
|
129
|
-
*
|
|
123
|
+
* Specify a localized message, announced politely to screen readers when a
|
|
124
|
+
* touched value springs to a bound; omit for no announcement
|
|
130
125
|
*/
|
|
131
126
|
getClampAnnouncement?: (clampedDate: Date) => string;
|
|
132
127
|
/**
|
|
133
|
-
* BCP-47 locale tag driving segment order
|
|
134
|
-
* DD/MM/YYYY, `de-DE` → DD.MM.YYYY)
|
|
135
|
-
* default
|
|
136
|
-
* @default en-US
|
|
128
|
+
* Specify the BCP-47 locale tag driving segment order and separators
|
|
129
|
+
* (e.g. `en-GB` → DD/MM/YYYY, `de-DE` → DD.MM.YYYY)
|
|
130
|
+
* @default 'en-US'
|
|
137
131
|
*/
|
|
138
132
|
locale?: string;
|
|
139
133
|
}
|
|
@@ -146,17 +140,11 @@ export interface DateFieldSegmentProps {
|
|
|
146
140
|
type: SegmentType;
|
|
147
141
|
/** Numeric segment value — used for `aria-valuenow`. `null` when the segment has no committed value. */
|
|
148
142
|
value: Nullable<number>;
|
|
149
|
-
/**
|
|
150
|
-
* The lower bound announced as `aria-valuemin` — an intrinsic calendar
|
|
151
|
-
* range, NOT the `minDate` prop (day/month: always 1; year: always 1).
|
|
152
|
-
* Computed by `DateField.Segments` so the segment itself stays a pure renderer.
|
|
153
|
-
*/
|
|
143
|
+
/** `aria-valuemin` — the intrinsic calendar floor, not the `minDate` prop. */
|
|
154
144
|
valueMin: number;
|
|
155
145
|
/**
|
|
156
|
-
*
|
|
157
|
-
*
|
|
158
|
-
* non-leap; month: 12; year: always 9999).
|
|
159
|
-
* Computed by `DateField.Segments` so the segment itself stays a pure renderer.
|
|
146
|
+
* `aria-valuemax` — the intrinsic calendar ceiling, not the `maxDate` prop:
|
|
147
|
+
* month-aware for day (28 for a non-leap February), 12 for month, 9999 for year.
|
|
160
148
|
*/
|
|
161
149
|
valueMax: number;
|
|
162
150
|
/** Pre-computed text to render inside the segment (buffer, formatted value, or placeholder). */
|
|
@@ -173,27 +161,18 @@ export interface DateFieldSegmentProps {
|
|
|
173
161
|
disabled: boolean;
|
|
174
162
|
readOnly: boolean;
|
|
175
163
|
/**
|
|
176
|
-
* Drives `aria-required
|
|
177
|
-
*
|
|
178
|
-
*
|
|
164
|
+
* Drives `aria-required`, which lives on the segments rather than the field
|
|
165
|
+
* root: it is role-specific, and `group` does not support it while
|
|
166
|
+
* `spinbutton` and `textbox` do.
|
|
179
167
|
*/
|
|
180
168
|
required: boolean;
|
|
181
169
|
/** Fires when the segment gains focus (Tab, click, or programmatic). */
|
|
182
170
|
onFocus: () => void;
|
|
183
171
|
/** Fires when focus leaves the segment; `relatedTarget` drives field-exit detection. */
|
|
184
172
|
onBlur: (event: FocusEvent<HTMLSpanElement>) => void;
|
|
185
|
-
/**
|
|
186
|
-
* Single-character input callback. DF-2 single-digit typing path. The
|
|
187
|
-
* orchestrator routes this into `appendDigit` and (on advance) `focusNext`.
|
|
188
|
-
* Multi-character input (paste, IME composition commit) is ignored here —
|
|
189
|
-
* DF-13 will add a paste-aware branch for whole-value parsing.
|
|
190
|
-
*/
|
|
173
|
+
/** Fires per typed character; multi-character input (paste, IME commit) is ignored. */
|
|
191
174
|
onInput: (type: SegmentType, char: string) => void;
|
|
192
|
-
/**
|
|
193
|
-
* Fires on segment keydown. The orchestrator routes it into
|
|
194
|
-
* `useDateFieldKeyboard` (DF-3: ArrowLeft/Right segment nav, RTL-aware;
|
|
195
|
-
* DF-4/DF-5 extend with increment/clear).
|
|
196
|
-
*/
|
|
175
|
+
/** Fires on segment keydown; the orchestrator routes it into `useDateFieldKeyboard`. */
|
|
197
176
|
onKeyDown: (type: SegmentType, event: KeyboardEvent<HTMLSpanElement>) => void;
|
|
198
177
|
segmentRef: (element: HTMLSpanElement | null) => void;
|
|
199
178
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../chunks/constants.CgMu0_1M.js");const A=require("../../chunks/helpers.BIckGIbP.js"),d=require("./DateField.validation.cjs.js"),l="en-US",N=new Intl.DateTimeFormat("en-US",{month:"long"}),w=e=>N.format(new Date(2e3,e-1,1)),u=31,i=12,m=1,f=9999,M=(e,t,n)=>Math.min(n,Math.max(t,e)),T=(e,t)=>((e-1)%t+t)%t+1,F=2024,P=(e,t)=>t==null?31:new Date(e??F,t,0).getDate(),R=()=>{const e=new Date;return{day:e.getDate(),month:e.getMonth()+1,year:e.getFullYear()}},o=e=>e instanceof Date&&!Number.isNaN(e.getTime()),I=(e,t,n,r)=>{if(n==="min")return e==="year"?null:1;if(n==="max")return e==="year"?null:e==="day"?r.daysInMonth:i;if(t==null){if(e==="year")return r.today.year;const E=e==="day"?u:i;return n>0?1:E}if(e==="year")return M(t+n,m,f);const a=e==="day"?u:i;return T(t+n,a)},L={day:"",month:"",year:""},h=e=>{const{day:t,month:n,year:r}=e;if(t==null||n==null||r==null)return null;const a=new Date(r,n-1,t);return a.setFullYear(r),Number.isNaN(a.getTime())||a.getFullYear()!==r||a.getMonth()!==n-1||a.getDate()!==t?null:a},Y=(e,t)=>e==null&&t==null?!0:e==null||t==null?!1:e.getTime()===t.getTime(),s=A.dateToDayKey,O=e=>o(e)?s(e):null,V=(e,t,n)=>{const r=s(e);return!(o(t)&&r<s(t)||o(n)&&r>s(n))},_=(e,t)=>o(e)&&o(t)&&s(e)>s(t),C=(e,t,n)=>{if(_(t,n))return e;const r=s(e);return o(t)&&r<s(t)?new Date(t.getFullYear(),t.getMonth(),t.getDate()):o(n)&&r>s(n)?new Date(n.getFullYear(),n.getMonth(),n.getDate()):e},X=e=>{if(!o(e))return"";const t=String(e.getFullYear()).padStart(4,"0"),n=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0");return`${t}-${n}-${r}`},p=e=>e.type==="literal",D=e=>e.filter(t=>!p(t)).map(t=>t.type),b=new Date(2020,0,2),G=new Set([8206,8207,8234,8235,8236,8237,8238,8294,8295,8296,8297]),H=e=>[...e].filter(t=>!G.has(t.codePointAt(0)??-1)).join(""),K=new Set(["day","month","year","literal"]),y=3,S=e=>{try{const t=new Intl.DateTimeFormat(e,{year:"numeric",month:"2-digit",day:"2-digit",calendar:"gregory"}).formatToParts(b).filter(r=>K.has(r.type)).map(r=>({type:r.type,value:r.type==="literal"?H(r.value):""})),n=D(t);return n.length===y&&new Set(n).size===y?t:null}catch{return null}},g=new Map,$=e=>{try{return new Intl.Locale(e).toString()}catch{return e.toLowerCase()}},k=e=>{try{return Intl.DateTimeFormat.supportedLocalesOf([e]).length>0}catch{return!1}},U=e=>{const t=$(e),n=g.get(t);if(n)return n;const r=k(e);!r&&process.env.NODE_ENV!=="production"&&console.warn(`DateField: locale "${e}" is not supported; falling back to ${l}.`);const a=(r?S(e):null)??S(l);if(!a)throw new Error(`DateField: Intl cannot resolve ${l} date parts`);return g.set(t,a),a},j=()=>g.clear(),q=e=>o(e)?{day:String(e.getDate()).padStart(2,"0"),month:String(e.getMonth()+1).padStart(2,"0"),year:String(e.getFullYear()).padStart(4,"0")}:L,c=(e,t)=>{if(t===""||e==="year"&&t.length<d.SEGMENT_MAX_LENGTH.year)return null;const n=parseInt(t,10);return Number.isNaN(n)||n===0?null:n},v=e=>h({day:c("day",e.day),month:c("month",e.month),year:c("year",e.year)}),z=(e,t)=>t===""?"":t.padStart(d.SEGMENT_MAX_LENGTH[e],"0"),B=(e,t,n)=>t===""?{displayValue:n,isPlaceholder:!0}:{displayValue:t.padStart(d.SEGMENT_MAX_LENGTH[e],"0"),isPlaceholder:!1},W=e=>{const t=window.getSelection();if(!t)return;const n=document.createRange();n.selectNodeContents(e),t.removeAllRanges(),t.addRange(n)},J=e=>{var n;if(!e)return;const t=(n=window.getSelection)==null?void 0:n.call(window);t&&t.rangeCount>0&&e.contains(t.anchorNode)&&t.removeAllRanges()};exports.DAY_SPIN_MAX=u;exports.DEFAULT_LOCALE=l;exports.MONTH_MAX=i;exports.YEAR_MAX=f;exports.YEAR_MIN=m;exports.__clearDatePartsCache=j;exports.adjustSegmentValue=I;exports.clamp=M;exports.clampDateToRange=C;exports.clearSelectionWithin=J;exports.dateKeyOrNull=O;exports.deriveValue=h;exports.deriveValueFromText=v;exports.getDateParts=U;exports.getDaysInMonth=P;exports.getMonthName=w;exports.getSegmentDisplay=B;exports.getSegmentOrder=D;exports.isDateInRange=V;exports.isLiteralPart=p;exports.isMinMaxMisconfigured=_;exports.isSameDateValue=Y;exports.isValidDate=o;exports.normalizeSegmentText=z;exports.segmentNumber=c;exports.segmentTextFromValue=q;exports.selectElementContents=W;exports.toISODateString=X;exports.todayParts=R;exports.wrapInRange=T;
|
|
@@ -18,9 +18,8 @@ export declare const DAY_SPIN_MAX = 31;
|
|
|
18
18
|
/** Absolute maximum for month (1-based). */
|
|
19
19
|
export declare const MONTH_MAX = 12;
|
|
20
20
|
/**
|
|
21
|
-
* Absolute floor/ceiling for the free-spinning year segment. `minDate
|
|
22
|
-
*
|
|
23
|
-
* to those bounds on blur instead — see `commitOnBlur`).
|
|
21
|
+
* Absolute floor/ceiling for the free-spinning year segment. `minDate`/`maxDate`
|
|
22
|
+
* don't bound the year directly — the whole date clamps to them on blur instead.
|
|
24
23
|
*/
|
|
25
24
|
export declare const YEAR_MIN = 1;
|
|
26
25
|
export declare const YEAR_MAX = 9999;
|
|
@@ -40,10 +39,7 @@ export declare const wrapInRange: (n: number, max: number) => number;
|
|
|
40
39
|
* so February correctly reports 29 days (leap-safe fallback).
|
|
41
40
|
*/
|
|
42
41
|
export declare const getDaysInMonth: (year: Nullable<number>, month: Nullable<number>) => number;
|
|
43
|
-
/**
|
|
44
|
-
* Returns today's date parts as a plain object.
|
|
45
|
-
* Extracted so callers in the value hook and DF-8 can share the same helper.
|
|
46
|
-
*/
|
|
42
|
+
/** Returns today's date parts as a plain object. */
|
|
47
43
|
export declare const todayParts: () => {
|
|
48
44
|
day: number;
|
|
49
45
|
month: number;
|
|
@@ -70,20 +66,12 @@ export interface AdjustSegmentContext {
|
|
|
70
66
|
* Computes the next numeric value for a date segment after an increment,
|
|
71
67
|
* decrement, or boundary jump.
|
|
72
68
|
*
|
|
73
|
-
* Day and month wrap modularly within their absolute ranges
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
* on the first numeric press: day/month to a direction-based first/last valid
|
|
80
|
-
* value (positive amount → `1`, negative → `DAY_SPIN_MAX`/`MONTH_MAX`;
|
|
81
|
-
* EPTOOLS-2766), year to `ctx.today.year`.
|
|
82
|
-
*
|
|
83
|
-
* @param type - Segment kind (`'day'`, `'month'`, or `'year'`).
|
|
84
|
-
* @param current - Current numeric value of the segment, or `null` when empty.
|
|
85
|
-
* @param amount - Numeric delta (e.g. ±1, ±5) or `'min'`/`'max'` for Home/End.
|
|
86
|
-
* @param ctx - Pure context: days-in-month and today's date parts.
|
|
69
|
+
* Day and month wrap modularly within their absolute ranges; an impossible
|
|
70
|
+
* combination such as Feb 31 is left for the validity layer rather than clamped
|
|
71
|
+
* here. The year clamps without wrapping and spins free of `minDate`/`maxDate`,
|
|
72
|
+
* which bound the whole date on blur instead, so year `'min'`/`'max'` returns
|
|
73
|
+
* `null`. An empty segment seeds on the first press: day and month follow the
|
|
74
|
+
* direction of travel, the year starts at today.
|
|
87
75
|
*/
|
|
88
76
|
export declare const adjustSegmentValue: (type: SegmentType, current: Nullable<number>, amount: SegmentAdjustment, ctx: AdjustSegmentContext) => Nullable<number>;
|
|
89
77
|
export declare const deriveValue: (segments: SegmentValues) => Nullable<Date>;
|
|
@@ -126,7 +114,7 @@ export declare const isLiteralPart: (part: DateFieldPart) => part is DateFieldPa
|
|
|
126
114
|
/** Ordered segment types from a parts array (literals stripped). */
|
|
127
115
|
export declare const getSegmentOrder: (parts: ReadonlyArray<DateFieldPart>) => ReadonlyArray<SegmentType>;
|
|
128
116
|
/**
|
|
129
|
-
* Locale-derived segment order
|
|
117
|
+
* Locale-derived segment order and separators, memoized per locale. Falls
|
|
130
118
|
* back to {@link DEFAULT_LOCALE} for any locale Intl can't resolve to the three
|
|
131
119
|
* date segments. Resolved lazily on first use, so a broken Intl (which can't
|
|
132
120
|
* render the field anyway — `getMonthName` needs it too) surfaces at render,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import "
|
|
2
|
-
import { a as S } from "
|
|
1
|
+
import "../../chunks/constants.Cruz2A1w.js";
|
|
2
|
+
import { a as S } from "../../chunks/helpers.CiQfGwdc.js";
|
|
3
3
|
import { SEGMENT_MAX_LENGTH as g } from "./DateField.validation.es.js";
|
|
4
4
|
const l = "en-US", h = new Intl.DateTimeFormat("en-US", { month: "long" }), $ = (t) => h.format(new Date(2e3, t - 1, 1)), d = 31, c = 12, p = 1, T = 9999, M = (t, e, n) => Math.min(n, Math.max(e, t)), A = (t, e) => ((t - 1) % e + e) % e + 1, E = 2024, k = (t, e) => e == null ? 31 : new Date(t ?? E, e, 0).getDate(), X = () => {
|
|
5
5
|
const t = /* @__PURE__ */ new Date();
|
|
@@ -82,9 +82,7 @@ const l = "en-US", h = new Intl.DateTimeFormat("en-US", { month: "long" }), $ =
|
|
|
82
82
|
);
|
|
83
83
|
const a = (r ? f(t) : null) ?? f(l);
|
|
84
84
|
if (!a)
|
|
85
|
-
throw new Error(
|
|
86
|
-
`DateField: Intl cannot resolve ${l} date parts`
|
|
87
|
-
);
|
|
85
|
+
throw new Error(`DateField: Intl cannot resolve ${l} date parts`);
|
|
88
86
|
return u.set(e, a), a;
|
|
89
87
|
}, W = () => u.clear(), q = (t) => s(t) ? {
|
|
90
88
|
day: String(t.getDate()).padStart(2, "0"),
|
|
@@ -17,8 +17,8 @@ export interface TryAppendDigitResult {
|
|
|
17
17
|
*
|
|
18
18
|
* - Day uses a fixed max of 31; month-dependent day max is intentionally
|
|
19
19
|
* deferred — invalid combinations surface as cross-segment errors.
|
|
20
|
-
* - Year accepts any 4-digit value 0000-9999;
|
|
21
|
-
*
|
|
20
|
+
* - Year accepts any 4-digit value 0000-9999; `minDate`/`maxDate` narrow the
|
|
21
|
+
* date as a whole on blur, not the digits accepted here.
|
|
22
22
|
*/
|
|
23
23
|
export declare const tryAppendDigit: (type: SegmentType, buffer: string, digit: string) => TryAppendDigitResult;
|
|
24
24
|
/** Re-export so `formatSegment` and `tryAppendDigit` share the same max-length
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),j=require("./DateField.utils.cjs.js");function w({disabled:l,fieldRef:a,segmentRefs:v,partsOrder:b,onSegmentFocusChange:D,onFieldBlur:x}){const[n,o]=e.useState(null),i=b[0],y=e.useRef(n);y.current=n;const r=e.useRef(D),d=e.useRef(x);e.useEffect(()=>{r.current=D,d.current=x},[D,x]);const T=e.useRef(void 0);e.useEffect(()=>{if(n===null||n==="all")return;const t=v.current.get(n);t&&(document.activeElement!==t&&t.focus(T.current),T.current=void 0)},[n,v]);const E=e.useCallback((t,c)=>{var u;l||(T.current=c,o(t),(u=r.current)==null||u.call(r,t))},[l]),_=e.useCallback(t=>{var c;l||t.target===a.current&&(o(i),(c=r.current)==null||c.call(r,i))},[l,a,i]),q=e.useCallback(t=>{var u,s,f,p;if((u=a.current)!=null&&u.contains(t.relatedTarget))return;const c=(f=(s=t.target)==null?void 0:s.getAttribute)==null?void 0:f.call(s,"data-segment");c&&c!==y.current||(o(null),(p=d.current)==null||p.call(d),j.clearSelectionWithin(a.current))},[a]),I=e.useCallback(t=>{var u;if(l){t.preventDefault();return}t.target.closest("[data-segment]")||(t.preventDefault(),o(i),(u=r.current)==null||u.call(r,i))},[l,i]),k=e.useCallback((t,c)=>{var f;const u=b.indexOf(t);if(u===-1)return;const s=b[u+c];s!=null&&(o(s),(f=r.current)==null||f.call(r,s))},[b]),M=e.useCallback(t=>{k(t,1)},[k]),P=e.useCallback(t=>{k(t,-1)},[k]);return{focusedSegment:n,fieldTabIndex:l?-1:n===null?0:-1,handleSegmentFocus:E,handleFieldFocus:_,handleFieldBlur:q,handleFieldMouseDown:I,focusNext:M,focusPrevious:P}}exports.useDateFieldFocus=w;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("clsx"),T=require("react"),u=require("../../chunks/form.context.CkC0TwMb.js");require("../Form/contexts/label.context.cjs.js");require("../Form/contexts/helperText.context.cjs.js");const s=require("../Form/hooks/useAccessibleId.hook.cjs.js");require("../../chunks/constants.CgMu0_1M.js");require("react/jsx-runtime");function L({name:i,disabled:b=!1,readOnly:q=!1,required:y=!1,defaultValue:I,error:e,hasHelperText:p,hasLabel:h,validationRules:F=[],ariaDescribedBy:f,ariaLabelledBy:m}){const{showErrors:v,isInvalid:x,errorShown:g,disabled:B,readOnly:_,required:A}=u.useFormField({name:i,validationRules:F,disabledProp:b,readOnlyProp:q,requiredProp:y}),{ctxInitialValues:D}=T.useContext(u.FormContext),{id:r}=s.useAccessibleId(),{id:d}=s.useAccessibleId(),{id:l}=s.useAccessibleId(),{id:o}=s.useAccessibleId(),t=!!(e!=null&&e.length),P=!!e||x,O=I??D[i],a=n(p&&d,t&&r,g&&l,f),c=n(h&&o,m);return{disabled:B,readOnly:_,required:A,invalid:P,errorMessageProvided:t,defaultValue:O,errorId:r,helperTextId:d,validationErrorsId:l,labelId:o,ariaDescribedBy:a.length>0?a:void 0,ariaLabelledBy:c.length>0?c:void 0,showErrors:v}}exports.useDateFieldForm=L;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FormValidator } from '@viasat/beam-shared/components/form';
|
|
2
2
|
import { Nullable } from '@viasat/beam-shared/utils/types';
|
|
3
|
-
import { useFormField } from '
|
|
3
|
+
import { useFormField } from '../Form/contexts';
|
|
4
4
|
export interface UseDateFieldFormArgs {
|
|
5
5
|
name?: string;
|
|
6
6
|
disabled?: boolean;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import c from "clsx";
|
|
2
2
|
import { useContext as V } from "react";
|
|
3
|
-
import { b as w, F as C } from "
|
|
4
|
-
import "
|
|
5
|
-
import "
|
|
6
|
-
import { useAccessibleId as o } from "
|
|
7
|
-
import "
|
|
3
|
+
import { b as w, F as C } from "../../chunks/form.context.BDYA2JQs.js";
|
|
4
|
+
import "../Form/contexts/label.context.es.js";
|
|
5
|
+
import "../Form/contexts/helperText.context.es.js";
|
|
6
|
+
import { useAccessibleId as o } from "../Form/hooks/useAccessibleId.hook.es.js";
|
|
7
|
+
import "../../chunks/constants.Cruz2A1w.js";
|
|
8
8
|
import "react/jsx-runtime";
|
|
9
9
|
function G({
|
|
10
10
|
name: d,
|
|
@@ -33,11 +33,8 @@ export interface UseDateFieldKeyboardArgs {
|
|
|
33
33
|
/** Move focus to the previous segment in the locale-derived `partsOrder`. */
|
|
34
34
|
focusPrevious: (segment: SegmentType) => void;
|
|
35
35
|
/**
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* clamps year; `'min'`/`'max'` map to Home/End respectively. Returns `false`
|
|
39
|
-
* on a no-op (year `'min'`/`'max'` until DF-10 adds year bounds) so the
|
|
40
|
-
* dispatcher leaves the key to native page scroll.
|
|
36
|
+
* Steps a segment, or jumps it to a boundary for Home/End. Returns `false` on
|
|
37
|
+
* a no-op so the dispatcher leaves the key to native page scroll.
|
|
41
38
|
*/
|
|
42
39
|
adjustSegment: (type: SegmentType, amount: SegmentAdjustment) => boolean;
|
|
43
40
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react"),t=require("./DateField.utils.cjs.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react"),t=require("./DateField.utils.cjs.js"),C=require("./DateField.validation.cjs.js");function K({value:a,defaultValue:p,onChange:R,minDate:V,maxDate:y,getClampAnnouncement:F}){const v=r.useRef(a!==void 0),h=v.current,[d,S]=r.useState(()=>t.segmentTextFromValue(h?a??null:p??null)),[D,E]=r.useState(!1),[w,M]=r.useState(""),s=r.useRef(d),f=r.useRef(new Set),g=r.useRef(!1),l=r.useRef(null),_={day:t.segmentNumber("day",d.day),month:t.segmentNumber("month",d.month),year:t.segmentNumber("year",d.year)},A=t.deriveValue(_),N=r.useRef(A),k=r.useRef(h?a??null:null),b=r.useRef(R),x=r.useRef(F);r.useEffect(()=>{b.current=R,x.current=F},[R,F]),r.useEffect(()=>()=>{l.current!=null&&cancelAnimationFrame(l.current)},[]),r.useEffect(()=>{if(!v.current||g.current||t.isSameDateValue(a??null,k.current))return;k.current=a??null;const e=t.segmentTextFromValue(a??null);s.current=e,S(e),N.current=t.deriveValueFromText(e)},[a]);const o=r.useCallback(e=>{var n;const c=t.deriveValueFromText(e);t.isSameDateValue(c,N.current)||(N.current=c,(n=b.current)==null||n.call(b,c))},[]),i=r.useCallback((e,c,{replace:n})=>{const u={...s.current,[e]:c};s.current=u,S(u),E(!0),o(u),n?f.current.add(e):f.current.delete(e)},[o]),q=r.useCallback((e,c)=>{const n=f.current.has(e)?"":s.current[e],u=C.tryAppendDigit(e,n,c);return u.rejected?{advanced:!1,rejected:!0}:(i(e,u.newBuffer,{replace:u.shouldAdvance}),{advanced:u.shouldAdvance,rejected:!1})},[i]),z=r.useCallback((e,c)=>{const n=s.current,u=t.segmentNumber(e,n[e]),T=t.getDaysInMonth(t.segmentNumber("year",n.year),t.segmentNumber("month",n.month)),m=t.adjustSegmentValue(e,u,c,{daysInMonth:T,today:t.todayParts()});return m==null?!1:(g.current=!0,i(e,String(m).padStart(C.SEGMENT_MAX_LENGTH[e],"0"),{replace:!0}),!0)},[i]),I=r.useCallback(e=>s.current[e]===""?{wasEmpty:!0}:(g.current=!0,i(e,"",{replace:!1}),{wasEmpty:!1}),[i]),O=r.useCallback(()=>{const e=t.segmentTextFromValue(null);s.current=e,S(e),E(!0),f.current.clear(),k.current=null,o(e)},[o]),B=r.useCallback(e=>{g.current=!0,f.current.add(e)},[]),G=r.useCallback(()=>{var T;g.current=!1;const e=s.current,c={day:t.normalizeSegmentText("day",e.day),month:t.normalizeSegmentText("month",e.month),year:t.normalizeSegmentText("year",e.year)},n=t.deriveValueFromText(c);let u=c;if(n!=null&&D&&!t.isDateInRange(n,V,y)){const m=t.clampDateToRange(n,V,y);if(u=t.segmentTextFromValue(m),!t.isSameDateValue(m,n)){const j=((T=x.current)==null?void 0:T.call(x,m))??"";j&&(l.current!=null&&cancelAnimationFrame(l.current),l.current=requestAnimationFrame(()=>{l.current=null,M(j)}))}}s.current=u,S(u),E(!0),o(u)},[o,D,t.dateKeyOrNull(V),t.dateKeyOrNull(y)]);return{segmentText:d,segmentValues:_,currentValue:A,isControlled:h,wasTouched:D,appendDigit:q,adjustSegment:z,clearSegment:I,clearAll:O,beginSegmentEdit:B,commitOnBlur:G,clampAnnouncement:w}}exports.useDateFieldValue=K;
|