@astryxdesign/core 0.7.2 → 0.7.3-canary.02f5fe4
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/dist/BottomSheet/BottomSheet.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheet.js +8 -4
- package/dist/BottomSheet/BottomSheetSwitcher.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheetSwitcher.js +7 -0
- package/dist/Calendar/Calendar.js +3 -2
- package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
- package/dist/CheckboxInput/CheckboxInput.js +19 -24
- package/dist/ClickableCard/ClickableCard.d.ts +2 -2
- package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
- package/dist/ClickableCard/ClickableCard.js +11 -9
- package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
- package/dist/CodeBlock/CodeBlock.js +11 -1
- package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -1
- package/dist/ComplexSelector/ComplexSelector.js +23 -5
- package/dist/DateInput/DateInput.d.ts +4 -4
- package/dist/DateInput/DateInput.d.ts.map +1 -1
- package/dist/DateInput/DateInput.js +27 -20
- package/dist/DateInput/NativeDateField.d.ts.map +1 -1
- package/dist/DateInput/NativeDateField.js +14 -8
- package/dist/DateInput/TouchDateField.d.ts.map +1 -1
- package/dist/DateInput/TouchDateField.js +14 -10
- package/dist/DateRangeInput/DateRangeInput.d.ts +5 -5
- package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/DateRangeInput/DateRangeInput.js +27 -18
- package/dist/DateTimeInput/DateTimeInput.d.ts +5 -5
- package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
- package/dist/DateTimeInput/DateTimeInput.js +25 -27
- package/dist/DateTimeInput/NativeDateSegment.d.ts +3 -2
- package/dist/DateTimeInput/NativeDateSegment.d.ts.map +1 -1
- package/dist/DateTimeInput/NativeDateSegment.js +5 -5
- package/dist/DateTimeInput/NativeTimeSegment.d.ts +3 -2
- package/dist/DateTimeInput/NativeTimeSegment.d.ts.map +1 -1
- package/dist/DateTimeInput/NativeTimeSegment.js +5 -5
- package/dist/DateTimeInput/TouchDateTimeField.d.ts.map +1 -1
- package/dist/DateTimeInput/TouchDateTimeField.js +12 -9
- package/dist/Dialog/Dialog.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +9 -4
- package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenu.js +52 -10
- package/dist/DropdownMenu/DropdownMenuContext.d.ts +34 -1
- package/dist/DropdownMenu/DropdownMenuContext.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuContext.js +15 -0
- package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts +21 -2
- package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuSubMenu.js +375 -42
- package/dist/DropdownMenu/menuRegionStops.d.ts +2 -2
- package/dist/DropdownMenu/menuRegionStops.js +2 -2
- package/dist/FileInput/FileInput.d.ts.map +1 -1
- package/dist/FileInput/FileInput.js +14 -12
- package/dist/Link/Link.d.ts +2 -3
- package/dist/Link/Link.d.ts.map +1 -1
- package/dist/Link/Link.js +11 -19
- package/dist/Markdown/Markdown.d.ts.map +1 -1
- package/dist/Markdown/Markdown.js +48 -15
- package/dist/MultiSelector/MultiSelector.d.ts +4 -4
- package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
- package/dist/MultiSelector/MultiSelector.disabledFocus.a11y.chromium.spec.d.ts +2 -0
- package/dist/MultiSelector/MultiSelector.disabledFocus.a11y.chromium.spec.d.ts.map +1 -0
- package/dist/MultiSelector/MultiSelector.disabledFocus.a11y.chromium.spec.js +48 -0
- package/dist/MultiSelector/MultiSelector.js +25 -18
- package/dist/Pagination/Pagination.d.ts.map +1 -1
- package/dist/Pagination/Pagination.js +5 -2
- package/dist/Popover/Popover.d.ts.map +1 -1
- package/dist/Popover/Popover.js +8 -4
- package/dist/Selector/Selector.d.ts +4 -4
- package/dist/Selector/Selector.d.ts.map +1 -1
- package/dist/Selector/Selector.js +23 -14
- package/dist/Selector/SelectorOption.d.ts.map +1 -1
- package/dist/Selector/SelectorOption.js +1 -0
- package/dist/Slider/Slider.d.ts.map +1 -1
- package/dist/Slider/Slider.js +7 -14
- package/dist/Switch/Switch.d.ts.map +1 -1
- package/dist/Switch/Switch.js +25 -17
- package/dist/Switch/switch.markers.stylex.d.ts +2 -0
- package/dist/Switch/switch.markers.stylex.d.ts.map +1 -1
- package/dist/Switch/switch.markers.stylex.js +6 -0
- package/dist/TimeInput/TimeInput.d.ts +7 -6
- package/dist/TimeInput/TimeInput.d.ts.map +1 -1
- package/dist/TimeInput/TimeInput.js +37 -20
- package/dist/TimeInput/TouchTimeField.d.ts.map +1 -1
- package/dist/TimeInput/TouchTimeField.js +17 -6
- package/dist/Timestamp/Timestamp.d.ts.map +1 -1
- package/dist/Timestamp/Timestamp.js +41 -8
- package/dist/Token/Token.d.ts.map +1 -1
- package/dist/Token/Token.js +8 -3
- package/dist/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/Tooltip/Tooltip.js +36 -14
- package/dist/Tooltip/useTooltip.d.ts.map +1 -1
- package/dist/Tooltip/useTooltip.js +11 -2
- package/dist/TopNav/TopNav.d.ts.map +1 -1
- package/dist/TopNav/TopNav.js +2 -2
- package/dist/TopNav/TopNavHeading.d.ts.map +1 -1
- package/dist/TopNav/TopNavHeading.js +1 -0
- package/dist/TreeList/TreeListItem.d.ts.map +1 -1
- package/dist/TreeList/TreeListItem.js +8 -3
- package/dist/Typeahead/Typeahead.d.ts.map +1 -1
- package/dist/Typeahead/Typeahead.js +14 -2
- package/dist/astryx.css +8 -2
- package/dist/hooks/useGridFocus.d.ts.map +1 -1
- package/dist/hooks/useGridFocus.js +10 -1
- package/dist/hooks/useMenuPress.d.ts +11 -1
- package/dist/hooks/useMenuPress.d.ts.map +1 -1
- package/dist/hooks/useMenuPress.js +43 -5
- package/dist/utils/disabledInteraction.d.ts +21 -0
- package/dist/utils/disabledInteraction.d.ts.map +1 -0
- package/dist/utils/disabledInteraction.js +33 -0
- package/dist/utils/timeParser.d.ts +4 -0
- package/dist/utils/timeParser.d.ts.map +1 -1
- package/dist/utils/timeParser.js +9 -2
- package/package.json +4 -4
- package/scripts/agent-doc-state.mjs +58 -9
- package/src/Banner/Banner.spec.md +37 -32
- package/src/BottomSheet/BottomSheet.spec.md +34 -54
- package/src/BottomSheet/BottomSheet.test.tsx +29 -0
- package/src/BottomSheet/BottomSheet.tsx +8 -4
- package/src/BottomSheet/BottomSheetSwitcher.spec.md +125 -58
- package/src/BottomSheet/BottomSheetSwitcher.test.tsx +26 -0
- package/src/BottomSheet/BottomSheetSwitcher.tsx +6 -0
- package/src/Calendar/Calendar.test.tsx +68 -24
- package/src/Calendar/Calendar.tsx +2 -1
- package/src/CheckboxInput/CheckboxInput.test.tsx +44 -5
- package/src/CheckboxInput/CheckboxInput.tsx +16 -26
- package/src/CheckboxInput/__tests__/Checkbox.a11y.states.ts +3 -3
- package/src/CheckboxList/CheckboxList.test.tsx +9 -6
- package/src/ClickableCard/ClickableCard.doc.mjs +2 -2
- package/src/ClickableCard/ClickableCard.test.tsx +5 -4
- package/src/ClickableCard/ClickableCard.tsx +9 -9
- package/src/CodeBlock/CodeBlock.highlightStyles.test.tsx +87 -0
- package/src/CodeBlock/CodeBlock.tsx +11 -1
- package/src/ComplexSelector/ComplexSelector.focusableDisabled.test.tsx +76 -0
- package/src/ComplexSelector/ComplexSelector.tsx +21 -4
- package/src/ContextMenu/ContextMenu.test.tsx +41 -0
- package/src/DateInput/DateInput.doc.mjs +9 -8
- package/src/DateInput/DateInput.test.tsx +88 -13
- package/src/DateInput/DateInput.tsx +49 -21
- package/src/DateInput/DateInputTouch.test.tsx +22 -1
- package/src/DateInput/NativeDateField.test.tsx +29 -3
- package/src/DateInput/NativeDateField.tsx +20 -7
- package/src/DateInput/TouchDateField.tsx +24 -9
- package/src/DateRangeInput/DateRangeInput.doc.mjs +6 -5
- package/src/DateRangeInput/DateRangeInput.spec.md +13 -13
- package/src/DateRangeInput/DateRangeInput.test.tsx +82 -16
- package/src/DateRangeInput/DateRangeInput.tsx +40 -20
- package/src/DateTimeInput/DateTimeInput.doc.mjs +9 -8
- package/src/DateTimeInput/DateTimeInput.test.tsx +126 -11
- package/src/DateTimeInput/DateTimeInput.tsx +42 -26
- package/src/DateTimeInput/DateTimeInputTouch.test.tsx +24 -0
- package/src/DateTimeInput/NativeDateSegment.tsx +9 -6
- package/src/DateTimeInput/NativePickerSegments.test.tsx +31 -0
- package/src/DateTimeInput/NativeTimeSegment.tsx +9 -6
- package/src/DateTimeInput/TouchDateTimeField.tsx +22 -7
- package/src/Dialog/Dialog.test.tsx +39 -0
- package/src/Dialog/Dialog.tsx +9 -4
- package/src/DropdownMenu/DropdownMenu.spec.md +33 -2
- package/src/DropdownMenu/DropdownMenu.tsx +79 -8
- package/src/DropdownMenu/DropdownMenuContext.public.test.ts +22 -0
- package/src/DropdownMenu/DropdownMenuContext.tsx +39 -1
- package/src/DropdownMenu/DropdownMenuItem.doc.mjs +66 -7
- package/src/DropdownMenu/DropdownMenuItem.spec.md +209 -0
- package/src/DropdownMenu/DropdownMenuSubMenu.doc.mjs +16 -1
- package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +623 -1
- package/src/DropdownMenu/DropdownMenuSubMenu.tsx +556 -99
- package/src/DropdownMenu/__tests__/DropdownMenuItemAudit.a11y.chromium.spec.ts +366 -0
- package/src/DropdownMenu/__tests__/SubMenuHeaderFooter.a11y.chromium.spec.ts +267 -0
- package/src/DropdownMenu/menuRegionStops.ts +2 -2
- package/src/DropdownMenu/modules/useMenuPress.spec.md +9 -0
- package/src/FieldStatus/FieldStatus.spec.md +3 -2
- package/src/FileInput/FileInput.test.tsx +30 -7
- package/src/FileInput/FileInput.tsx +21 -11
- package/src/Link/Link.test.tsx +21 -7
- package/src/Link/Link.tsx +16 -24
- package/src/Link/__tests__/Link.a11y.states.ts +1 -1
- package/src/Markdown/Markdown.rerender.test.tsx +143 -0
- package/src/Markdown/Markdown.tsx +89 -35
- package/src/MultiSelector/MultiSelector.disabledFocus.a11y.chromium.spec.ts +71 -0
- package/src/MultiSelector/MultiSelector.doc.mjs +5 -5
- package/src/MultiSelector/MultiSelector.focusableDisabled.test.tsx +121 -0
- package/src/MultiSelector/MultiSelector.test.tsx +49 -7
- package/src/MultiSelector/MultiSelector.tsx +53 -29
- package/src/Pagination/Pagination.test.tsx +5 -1
- package/src/Pagination/Pagination.tsx +3 -1
- package/src/Popover/Popover.test.tsx +15 -0
- package/src/Popover/Popover.tsx +19 -8
- package/src/PowerSearch/PowerSearchFilterEditor.test.tsx +3 -2
- package/src/PowerSearch/PowerSearchToken.test.tsx +7 -5
- package/src/Selector/Selector.doc.mjs +4 -4
- package/src/Selector/Selector.focusableDisabled.test.tsx +127 -0
- package/src/Selector/Selector.spec.md +11 -11
- package/src/Selector/Selector.test.tsx +64 -6
- package/src/Selector/Selector.tsx +51 -21
- package/src/Selector/SelectorOption.tsx +4 -0
- package/src/SideNav/SideNav.test.tsx +35 -0
- package/src/Slider/Slider.spec.md +11 -11
- package/src/Slider/Slider.test.tsx +3 -3
- package/src/Slider/Slider.tsx +8 -15
- package/src/Switch/Switch.test.tsx +85 -8
- package/src/Switch/Switch.tsx +26 -16
- package/src/Switch/__tests__/Switch.a11y.states.ts +2 -2
- package/src/Switch/switch.markers.stylex.ts +4 -0
- package/src/Table/Table.spec.md +2 -0
- package/src/Table/plugins/infiniteScroll/useTableInfiniteScroll.spec.md +244 -0
- package/src/Table/plugins/selection/useTableSelection.test.tsx +5 -3
- package/src/Table/plugins/virtualization/useTableVirtualization.spec.md +266 -0
- package/src/TimeInput/NativeTimeInput.test.tsx +25 -1
- package/src/TimeInput/Presentation.test.tsx +23 -0
- package/src/TimeInput/TimeInput.doc.mjs +13 -10
- package/src/TimeInput/TimeInput.test.tsx +139 -7
- package/src/TimeInput/TimeInput.tsx +53 -24
- package/src/TimeInput/TouchTimeField.tsx +27 -5
- package/src/Timestamp/Timestamp.doc.mjs +1 -1
- package/src/Timestamp/Timestamp.test.tsx +168 -0
- package/src/Timestamp/Timestamp.tsx +62 -11
- package/src/Token/Token.test.tsx +26 -4
- package/src/Token/Token.tsx +6 -2
- package/src/Tokenizer/Tokenizer.spec.md +28 -28
- package/src/Tooltip/Tooltip.test.tsx +51 -6
- package/src/Tooltip/Tooltip.tsx +41 -18
- package/src/Tooltip/__tests__/Tooltip.a11y.chromium.spec.ts +129 -0
- package/src/Tooltip/__tests__/Tooltip.a11y.renders.tsx +86 -0
- package/src/Tooltip/__tests__/Tooltip.a11y.states.ts +132 -0
- package/src/Tooltip/__tests__/Tooltip.a11y.test.tsx +126 -0
- package/src/Tooltip/__tests__/TooltipHoverBridge.a11y.chromium.spec.ts +74 -0
- package/src/Tooltip/useTooltip.test.tsx +23 -0
- package/src/Tooltip/useTooltip.tsx +22 -9
- package/src/TopNav/TopNav.tsx +11 -1
- package/src/TopNav/TopNavHeading.tsx +1 -0
- package/src/TopNav/__tests__/TopNavMobileLongHeading.a11y.chromium.spec.ts +74 -0
- package/src/TreeList/TreeList.test.tsx +28 -0
- package/src/TreeList/TreeListItem.tsx +6 -2
- package/src/Typeahead/Typeahead.test.tsx +89 -0
- package/src/Typeahead/Typeahead.tsx +15 -2
- package/src/__tests__/DisabledTriggerFocus.a11y.chromium.spec.ts +86 -0
- package/src/hooks/useGridFocus.ts +16 -1
- package/src/hooks/useMenuPress.ts +45 -7
- package/src/utils/disabledInteraction.ts +40 -0
- package/src/utils/timeParser.test.ts +11 -0
- package/src/utils/timeParser.ts +9 -2
|
@@ -122,6 +122,11 @@ const sizeStyles = {
|
|
|
122
122
|
}
|
|
123
123
|
};
|
|
124
124
|
const styles = {
|
|
125
|
+
disabledFocusRing: {
|
|
126
|
+
kVAM5u: "xvy26l8 x2uiyk",
|
|
127
|
+
kGVxlE: "x1gnnqk1 xxsos93",
|
|
128
|
+
$$css: true
|
|
129
|
+
},
|
|
125
130
|
wrapper: {
|
|
126
131
|
kOIVth: "x1txdalj",
|
|
127
132
|
$$css: true
|
|
@@ -276,11 +281,11 @@ export function TouchDateField({
|
|
|
276
281
|
const isBusy = isLoading || optimisticValue !== value;
|
|
277
282
|
const isEffectivelyDisabled = isDisabled || isBusy;
|
|
278
283
|
|
|
279
|
-
//
|
|
280
|
-
//
|
|
281
|
-
//
|
|
282
|
-
//
|
|
283
|
-
//
|
|
284
|
+
// Same contract as DateInput: a disabled or busy field never renders native
|
|
285
|
+
// `disabled` (spec:AST-085 FR1); the input stays focusable via
|
|
286
|
+
// aria-disabled. The disabled-reason tooltip's listeners attach to the
|
|
287
|
+
// wrapper. Only the persistent disabled state surfaces a reason, never the
|
|
288
|
+
// transient busy one.
|
|
284
289
|
const showsDisabledMessage = isDisabled && !!disabledMessage;
|
|
285
290
|
const disabledMessageTooltip = useTooltip({
|
|
286
291
|
placement: 'above',
|
|
@@ -791,14 +796,14 @@ export function TouchDateField({
|
|
|
791
796
|
size,
|
|
792
797
|
status: status?.type ?? null,
|
|
793
798
|
disabled: isDisabled ? 'disabled' : null
|
|
794
|
-
}), stylex.props(inputWrapperStyles.base, sizeStyles[size], styles.wrapper, isEffectivelyDisabled && inputWrapperStyles.disabled, status && inputStatusBorderStyles[status.type], status && !isEffectivelyDisabled && inputStatusHoverShadowStyles[status.type], status && inputStatusFocusWithinStyles[status.type], inputGroup && groupStyles.inGroup, controlXstyle), controlClassName, controlStyle),
|
|
799
|
+
}), stylex.props(inputWrapperStyles.base, sizeStyles[size], styles.wrapper, isEffectivelyDisabled && inputWrapperStyles.disabled, isEffectivelyDisabled && styles.disabledFocusRing, status && inputStatusBorderStyles[status.type], status && !isEffectivelyDisabled && inputStatusHoverShadowStyles[status.type], status && inputStatusFocusWithinStyles[status.type], inputGroup && groupStyles.inGroup, controlXstyle), controlClassName, controlStyle),
|
|
795
800
|
children: [inputGroup && /*#__PURE__*/_jsx(VisuallyHidden, {
|
|
796
801
|
id: inputLabelID,
|
|
797
802
|
children: label
|
|
798
803
|
}), /*#__PURE__*/_jsx("button", {
|
|
799
804
|
type: "button",
|
|
800
805
|
onClick: openSheet,
|
|
801
|
-
disabled: isEffectivelyDisabled,
|
|
806
|
+
"aria-disabled": isEffectivelyDisabled || undefined,
|
|
802
807
|
"aria-label": t('@astryx.dateInput.openCalendar'),
|
|
803
808
|
tabIndex: -1,
|
|
804
809
|
...stylex.props(focusOutlineStyles.focusVisible, styles.iconButton, isEffectivelyDisabled && styles.iconButtonDisabled),
|
|
@@ -825,11 +830,10 @@ export function TouchDateField({
|
|
|
825
830
|
readOnly: true,
|
|
826
831
|
inputMode: "none",
|
|
827
832
|
onChange: () => {},
|
|
828
|
-
onClick: chainEventHandlers(openSheet, onClickProp),
|
|
833
|
+
onClick: isEffectivelyDisabled ? undefined : chainEventHandlers(openSheet, onClickProp),
|
|
829
834
|
onKeyDown: chainEventHandlers(handleInputKeyDown, onKeyDownProp),
|
|
830
835
|
placeholder: placeholder,
|
|
831
|
-
disabled: isEffectivelyDisabled
|
|
832
|
-
"aria-disabled": showsDisabledMessage ? 'true' : undefined,
|
|
836
|
+
"aria-disabled": isEffectivelyDisabled ? 'true' : undefined,
|
|
833
837
|
"aria-labelledby": ariaLabelledByProp != null ? joinAriaIDs(ariaLabelledBy ?? fieldLabelID, ariaLabelledByProp) : ariaLabelledBy,
|
|
834
838
|
"aria-describedby": ariaDescribedBy,
|
|
835
839
|
"aria-required": isEffectivelyRequired ? 'true' : undefined,
|
|
@@ -43,12 +43,12 @@ export interface DateRangeInputProps extends Omit<FieldInputBaseProps<HTMLButton
|
|
|
43
43
|
/**
|
|
44
44
|
* Explains why the input is disabled. When set together with
|
|
45
45
|
* `isDisabled`, the input shows a tooltip with this text on hover and
|
|
46
|
-
* keyboard focus, and the trigger
|
|
47
|
-
*
|
|
48
|
-
*
|
|
46
|
+
* keyboard focus, and the trigger is described by it, so the reason is
|
|
47
|
+
* discoverable by keyboard and assistive technology. Activation stays
|
|
48
|
+
* blocked.
|
|
49
49
|
*
|
|
50
|
-
* Use this instead of wrapping a disabled input in `Tooltip
|
|
51
|
-
*
|
|
50
|
+
* Use this instead of wrapping a disabled input in `Tooltip`, so the
|
|
51
|
+
* reason is tied to the field.
|
|
52
52
|
*
|
|
53
53
|
* @example
|
|
54
54
|
* ```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateRangeInput.d.ts","sourceRoot":"","sources":["../../src/DateRangeInput/DateRangeInput.tsx"],"names":[],"mappings":"AA4CA,OAAO,EAGL,KAAK,WAAW,EAKhB,KAAK,kBAAkB,EACxB,MAAM,UAAU,CAAC;AAIlB,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AAOrB,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAU9C,YAAY,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,SAAS,CAAC;CAC3B;AAED,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEpD,YAAY,EACV,WAAW,IAAI,oBAAoB,EACnC,eAAe,IAAI,wBAAwB,GAC5C,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"DateRangeInput.d.ts","sourceRoot":"","sources":["../../src/DateRangeInput/DateRangeInput.tsx"],"names":[],"mappings":"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"}
|
|
@@ -41,6 +41,11 @@ import { focusOutlineStyles } from "../utils/focusOutline.stylex.js";
|
|
|
41
41
|
import { useLocale, useTranslator } from "../i18n/index.js";
|
|
42
42
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
43
43
|
const styles = {
|
|
44
|
+
disabledFocusRing: {
|
|
45
|
+
kVAM5u: "xvy26l8 x6q1khz",
|
|
46
|
+
kGVxlE: "x1gnnqk1 xuihb5h",
|
|
47
|
+
$$css: true
|
|
48
|
+
},
|
|
44
49
|
iconButton: {
|
|
45
50
|
k1xSpc: "x78zum5",
|
|
46
51
|
kGNEyG: "x6s0dn4",
|
|
@@ -234,12 +239,12 @@ export function DateRangeInput({
|
|
|
234
239
|
const isBusy = isLoading || optimisticValue !== value;
|
|
235
240
|
const isEffectivelyDisabled = isDisabled || isBusy;
|
|
236
241
|
|
|
237
|
-
//
|
|
238
|
-
//
|
|
239
|
-
//
|
|
240
|
-
// disabled
|
|
241
|
-
//
|
|
242
|
-
//
|
|
242
|
+
// A disabled or busy field never renders native `disabled` (spec:AST-085
|
|
243
|
+
// FR1): its buttons stay focusable via aria-disabled, and activation is
|
|
244
|
+
// blocked by the isEffectivelyDisabled guard in handleToggle. The
|
|
245
|
+
// disabled-reason tooltip's listeners attach to the trigger container. Only
|
|
246
|
+
// the persistent isDisabled state (not the transient busy state) surfaces a
|
|
247
|
+
// reason.
|
|
243
248
|
const showsDisabledMessage = isDisabled && !!disabledMessage;
|
|
244
249
|
const disabledMessageTooltip = useTooltip({
|
|
245
250
|
placement: 'above',
|
|
@@ -343,11 +348,11 @@ export function DateRangeInput({
|
|
|
343
348
|
size,
|
|
344
349
|
status: status?.type ?? null,
|
|
345
350
|
disabled: isDisabled ? 'disabled' : null
|
|
346
|
-
}), stylex.props(inputWrapperStyles.base, sizeStyles[size], isEffectivelyDisabled && inputWrapperStyles.disabled, status && inputStatusBorderStyles[status.type], status && !isEffectivelyDisabled && inputStatusHoverShadowStyles[status.type], status && inputStatusFocusWithinStyles[status.type], controlXstyle), controlClassName, controlStyle),
|
|
351
|
+
}), stylex.props(inputWrapperStyles.base, sizeStyles[size], isEffectivelyDisabled && inputWrapperStyles.disabled, isEffectivelyDisabled && styles.disabledFocusRing, status && inputStatusBorderStyles[status.type], status && !isEffectivelyDisabled && inputStatusHoverShadowStyles[status.type], status && inputStatusFocusWithinStyles[status.type], controlXstyle), controlClassName, controlStyle),
|
|
347
352
|
children: [/*#__PURE__*/_jsx("button", {
|
|
348
353
|
type: "button",
|
|
349
354
|
onClick: handleToggle,
|
|
350
|
-
disabled: isEffectivelyDisabled,
|
|
355
|
+
"aria-disabled": isEffectivelyDisabled || undefined,
|
|
351
356
|
"aria-label": popover.isOpen ? t('@astryx.dateInput.toggleCalendarClose') : t('@astryx.dateInput.openCalendar'),
|
|
352
357
|
tabIndex: -1,
|
|
353
358
|
...stylex.props(focusOutlineStyles.focusVisible, styles.iconButton, isEffectivelyDisabled && styles.iconButtonDisabled),
|
|
@@ -363,14 +368,12 @@ export function DateRangeInput({
|
|
|
363
368
|
...controlProps,
|
|
364
369
|
ref: triggerButtonRef,
|
|
365
370
|
id: id,
|
|
366
|
-
type: "button"
|
|
367
|
-
|
|
368
|
-
//
|
|
369
|
-
// aria-disabled so the reason is focus-discoverable; activation is
|
|
370
|
-
// still blocked by the isEffectivelyDisabled guard in handleToggle.
|
|
371
|
+
type: "button"
|
|
372
|
+
// The browser still dispatches a click on an aria-disabled button,
|
|
373
|
+
// so a caller's onClick is skipped too (spec:AST-085 FR2).
|
|
371
374
|
,
|
|
372
|
-
|
|
373
|
-
"aria-disabled":
|
|
375
|
+
onClick: isEffectivelyDisabled ? undefined : chainEventHandlers(handleToggle, onClickProp),
|
|
376
|
+
"aria-disabled": isEffectivelyDisabled ? 'true' : undefined
|
|
374
377
|
// A caller aria-label replaces the trigger's name; a caller
|
|
375
378
|
// aria-labelledby is read after it (label and selected range).
|
|
376
379
|
,
|
|
@@ -433,9 +436,15 @@ export function DateRangeInput({
|
|
|
433
436
|
// marked with aria-current (not aria-selected, a listbox
|
|
434
437
|
// concept that contradicted the Tab interaction) (forms-5).
|
|
435
438
|
,
|
|
436
|
-
"aria-current": isActive ? 'true' : undefined
|
|
437
|
-
disabled:
|
|
438
|
-
|
|
439
|
+
"aria-current": isActive ? 'true' : undefined
|
|
440
|
+
// Focusable while disabled (AR3, spec:AST-085 FR1).
|
|
441
|
+
,
|
|
442
|
+
"aria-disabled": isPresetDisabled || undefined,
|
|
443
|
+
onClick: () => {
|
|
444
|
+
if (!isPresetDisabled) {
|
|
445
|
+
handleRangeSelect(presetRange);
|
|
446
|
+
}
|
|
447
|
+
},
|
|
439
448
|
...mergeProps(themeProps('date-range-input-preset', {
|
|
440
449
|
selected: isActive ? 'selected' : null,
|
|
441
450
|
disabled: isPresetDisabled ? 'disabled' : null
|
|
@@ -54,12 +54,12 @@ export interface DateTimeInputProps extends Omit<FieldInputBaseProps<HTMLInputEl
|
|
|
54
54
|
/**
|
|
55
55
|
* Explains why the input is disabled. When set together with
|
|
56
56
|
* `isDisabled`, the input shows a tooltip with this text on hover and
|
|
57
|
-
* keyboard focus, and the date and time fields
|
|
58
|
-
*
|
|
59
|
-
*
|
|
57
|
+
* keyboard focus, and the date and time fields are described by it, so the
|
|
58
|
+
* reason is discoverable by keyboard and assistive technology. Typing and
|
|
59
|
+
* calendar activation stay blocked.
|
|
60
60
|
*
|
|
61
|
-
* Use this instead of wrapping a disabled input in `Tooltip
|
|
62
|
-
*
|
|
61
|
+
* Use this instead of wrapping a disabled input in `Tooltip`, so the
|
|
62
|
+
* reason is tied to the field.
|
|
63
63
|
*
|
|
64
64
|
* @example
|
|
65
65
|
* ```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTimeInput.d.ts","sourceRoot":"","sources":["../../src/DateTimeInput/DateTimeInput.tsx"],"names":[],"mappings":"AA4CA,OAAO,EAGL,KAAK,WAAW,EAKjB,MAAM,UAAU,CAAC;AAIlB,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AA6BrB,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAc9C,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG;IACvC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;CACvC,CAAC;AAEF,qFAAqF;AACrF,MAAM,MAAM,yBAAyB,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAErE,uGAAuG;AACvG,MAAM,MAAM,yBAAyB,GAAG,kBAAkB,CAAC;AAE3D,MAAM,MAAM,uBAAuB,GAAG,KAAK,GAAG,KAAK,CAAC;AAEpD,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEnD,4EAA4E;AAC5E,MAAM,MAAM,0BAA0B,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAE9D;;;GAGG;AACH,MAAM,MAAM,+BAA+B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAEpE,YAAY,EACV,WAAW,IAAI,mBAAmB,EAClC,eAAe,IAAI,uBAAuB,GAC3C,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"DateTimeInput.d.ts","sourceRoot":"","sources":["../../src/DateTimeInput/DateTimeInput.tsx"],"names":[],"mappings":"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"}
|
|
@@ -68,6 +68,11 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
68
68
|
// flex wrapping moves each growing segment onto its own full-width row.
|
|
69
69
|
const HORIZONTAL_SEGMENT_BASIS = 196;
|
|
70
70
|
const styles = {
|
|
71
|
+
disabledFocusRing: {
|
|
72
|
+
kVAM5u: "xvy26l8 x6q1khz",
|
|
73
|
+
kGVxlE: "x1gnnqk1 xuihb5h",
|
|
74
|
+
$$css: true
|
|
75
|
+
},
|
|
71
76
|
row: {
|
|
72
77
|
k1xSpc: "x78zum5",
|
|
73
78
|
kwnvtZ: "x1a02dak",
|
|
@@ -565,7 +570,7 @@ function PointerDateTimeField({
|
|
|
565
570
|
setNativeTimeDraft(newTime);
|
|
566
571
|
}, [fireChange, optimisticValue, valueParts.date]);
|
|
567
572
|
const handleDateInputChange = useCallback(e => {
|
|
568
|
-
//
|
|
573
|
+
// The input is never natively disabled (AST-085 FR1), so
|
|
569
574
|
// guard value mutation explicitly (readOnly also blocks typing).
|
|
570
575
|
if (isEffectivelyDisabled) {
|
|
571
576
|
return;
|
|
@@ -801,7 +806,7 @@ function PointerDateTimeField({
|
|
|
801
806
|
|
|
802
807
|
// --- Time handlers ---
|
|
803
808
|
const handleTimeInputChange = useCallback(e => {
|
|
804
|
-
//
|
|
809
|
+
// The input is never natively disabled (AST-085 FR1), so
|
|
805
810
|
// guard value mutation explicitly (readOnly also blocks typing).
|
|
806
811
|
if (isEffectivelyDisabled) {
|
|
807
812
|
return;
|
|
@@ -873,7 +878,8 @@ function PointerDateTimeField({
|
|
|
873
878
|
// window uses those same arrows to navigate candidates, so guard the
|
|
874
879
|
// composing keydown (fires before compositionend) to avoid stealing them
|
|
875
880
|
// mid-composition. See utils/ime.ts.
|
|
876
|
-
|
|
881
|
+
// A disabled or busy field steps nothing, so it announces nothing (FR2).
|
|
882
|
+
if (isImeKeyEvent(e.nativeEvent) || isEffectivelyDisabled) {
|
|
877
883
|
return;
|
|
878
884
|
}
|
|
879
885
|
|
|
@@ -1026,7 +1032,7 @@ function PointerDateTimeField({
|
|
|
1026
1032
|
...mergeProps(themeProps('date-time-input-date-segment', {
|
|
1027
1033
|
size,
|
|
1028
1034
|
status: status?.type ?? null
|
|
1029
|
-
}), stylex.props(inputWrapperStyles.base, sizeStyles[size], styles.dateWrapper, isEffectivelyDisabled && inputWrapperStyles.disabled, status && inputStatusBorderStyles[status.type], status && !isEffectivelyDisabled && inputStatusHoverShadowStyles[status.type], status && inputStatusFocusWithinStyles[status.type])),
|
|
1035
|
+
}), stylex.props(inputWrapperStyles.base, sizeStyles[size], styles.dateWrapper, isEffectivelyDisabled && inputWrapperStyles.disabled, isEffectivelyDisabled && styles.disabledFocusRing, status && inputStatusBorderStyles[status.type], status && !isEffectivelyDisabled && inputStatusHoverShadowStyles[status.type], status && inputStatusFocusWithinStyles[status.type])),
|
|
1030
1036
|
children: [usesNativePicker ? /*#__PURE__*/_jsx(NativeDateSegment, {
|
|
1031
1037
|
id: dateInputId,
|
|
1032
1038
|
inputRef: mergedDateInputRef,
|
|
@@ -1037,7 +1043,7 @@ function PointerDateTimeField({
|
|
|
1037
1043
|
max: calendarMax,
|
|
1038
1044
|
isDateDisabled: isDateDisabled,
|
|
1039
1045
|
isEffectivelyDisabled: isEffectivelyDisabled,
|
|
1040
|
-
|
|
1046
|
+
isFocusableDisabled: true,
|
|
1041
1047
|
isEffectivelyRequired: isEffectivelyRequired,
|
|
1042
1048
|
isBusy: isBusy,
|
|
1043
1049
|
statusType: status?.type,
|
|
@@ -1046,14 +1052,17 @@ function PointerDateTimeField({
|
|
|
1046
1052
|
...controlProps,
|
|
1047
1053
|
'aria-labelledby': controlLabelledBy,
|
|
1048
1054
|
onBlur: onBlurProp,
|
|
1049
|
-
onClick: onClickProp,
|
|
1055
|
+
onClick: isEffectivelyDisabled ? undefined : onClickProp,
|
|
1050
1056
|
onKeyDown: onKeyDownProp
|
|
1051
1057
|
}
|
|
1052
1058
|
}) : /*#__PURE__*/_jsxs(_Fragment, {
|
|
1053
1059
|
children: [/*#__PURE__*/_jsx("button", {
|
|
1054
1060
|
type: "button",
|
|
1055
1061
|
onClick: handleCalendarToggle,
|
|
1056
|
-
disabled: isEffectivelyDisabled
|
|
1062
|
+
"aria-disabled": isEffectivelyDisabled || undefined
|
|
1063
|
+
// A tab stop while disabled too, so it carries the reason (FR5).
|
|
1064
|
+
,
|
|
1065
|
+
"aria-describedby": showsDisabledMessage ? disabledMessageTooltip.describedBy : undefined,
|
|
1057
1066
|
"aria-label": popover.isOpen ? t('@astryx.dateInput.toggleCalendarClose') : t('@astryx.dateInput.openCalendar'),
|
|
1058
1067
|
...stylex.props(focusOutlineStyles.focusVisible, styles.iconButton, isEffectivelyDisabled && styles.iconButtonDisabled),
|
|
1059
1068
|
children: /*#__PURE__*/_jsx(Icon, {
|
|
@@ -1080,18 +1089,12 @@ function PointerDateTimeField({
|
|
|
1080
1089
|
value: dateDisplayValue,
|
|
1081
1090
|
onChange: handleDateInputChange,
|
|
1082
1091
|
onBlur: chainEventHandlers(handleDateBlur, onBlurProp),
|
|
1083
|
-
onClick: chainEventHandlers(handleDateInputClick, onClickProp),
|
|
1092
|
+
onClick: isEffectivelyDisabled ? undefined : chainEventHandlers(handleDateInputClick, onClickProp),
|
|
1084
1093
|
onKeyDown: chainEventHandlers(handleDateKeyDown, onKeyDownProp),
|
|
1085
1094
|
"aria-labelledby": controlLabelledBy,
|
|
1086
|
-
placeholder: placeholder
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
// blocked with readOnly and the mutation guards, and calendar
|
|
1090
|
-
// activation is blocked by the isEffectivelyDisabled guards.
|
|
1091
|
-
,
|
|
1092
|
-
disabled: isEffectivelyDisabled && !showsDisabledMessage,
|
|
1093
|
-
"aria-disabled": showsDisabledMessage ? 'true' : undefined,
|
|
1094
|
-
readOnly: showsDisabledMessage || undefined,
|
|
1095
|
+
placeholder: placeholder,
|
|
1096
|
+
"aria-disabled": isEffectivelyDisabled ? 'true' : undefined,
|
|
1097
|
+
readOnly: isEffectivelyDisabled || undefined,
|
|
1095
1098
|
"aria-describedby": ariaDescribedBy,
|
|
1096
1099
|
"aria-required": isEffectivelyRequired ? 'true' : undefined,
|
|
1097
1100
|
"aria-invalid": status?.type === 'error' || !isDateInputValid ? 'true' : undefined,
|
|
@@ -1141,7 +1144,7 @@ function PointerDateTimeField({
|
|
|
1141
1144
|
...mergeProps(themeProps('date-time-input-time-segment', {
|
|
1142
1145
|
size,
|
|
1143
1146
|
status: status?.type ?? null
|
|
1144
|
-
}), stylex.props(inputWrapperStyles.base, sizeStyles[size], styles.timeWrapper, isEffectivelyDisabled && inputWrapperStyles.disabled, status && inputStatusBorderStyles[status.type], status && !isEffectivelyDisabled && inputStatusHoverShadowStyles[status.type], status && inputStatusFocusWithinStyles[status.type])),
|
|
1147
|
+
}), stylex.props(inputWrapperStyles.base, sizeStyles[size], styles.timeWrapper, isEffectivelyDisabled && inputWrapperStyles.disabled, isEffectivelyDisabled && styles.disabledFocusRing, status && inputStatusBorderStyles[status.type], status && !isEffectivelyDisabled && inputStatusHoverShadowStyles[status.type], status && inputStatusFocusWithinStyles[status.type])),
|
|
1145
1148
|
children: usesNativeTimePicker ? /*#__PURE__*/_jsx(NativeTimeSegment, {
|
|
1146
1149
|
id: timeInputId,
|
|
1147
1150
|
inputRef: timeInputRef,
|
|
@@ -1157,7 +1160,7 @@ function PointerDateTimeField({
|
|
|
1157
1160
|
max: timeMax,
|
|
1158
1161
|
hourFormat: hourFormat,
|
|
1159
1162
|
isEffectivelyDisabled: isEffectivelyDisabled,
|
|
1160
|
-
|
|
1163
|
+
isFocusableDisabled: true,
|
|
1161
1164
|
isEffectivelyRequired: isEffectivelyRequired,
|
|
1162
1165
|
isBusy: isBusy,
|
|
1163
1166
|
statusType: status?.type,
|
|
@@ -1197,14 +1200,9 @@ function PointerDateTimeField({
|
|
|
1197
1200
|
"aria-expanded": hasTimeOptions ? timePopover.isOpen : undefined,
|
|
1198
1201
|
"aria-controls": hasTimeOptions && timePopover.isOpen ? timeListboxId : undefined,
|
|
1199
1202
|
"aria-autocomplete": hasTimeOptions ? 'list' : undefined,
|
|
1200
|
-
"aria-activedescendant": hasTimeOptions && timePopover.isOpen && activeTimeIndex >= 0 && activeTimeIndex < timeOptions.length ? timeOptionId(activeTimeIndex) : undefined
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
// blocked with readOnly and the mutation guards.
|
|
1204
|
-
,
|
|
1205
|
-
disabled: isEffectivelyDisabled && !showsDisabledMessage,
|
|
1206
|
-
"aria-disabled": showsDisabledMessage ? 'true' : undefined,
|
|
1207
|
-
readOnly: showsDisabledMessage || undefined,
|
|
1203
|
+
"aria-activedescendant": hasTimeOptions && timePopover.isOpen && activeTimeIndex >= 0 && activeTimeIndex < timeOptions.length ? timeOptionId(activeTimeIndex) : undefined,
|
|
1204
|
+
"aria-disabled": isEffectivelyDisabled ? 'true' : undefined,
|
|
1205
|
+
readOnly: isEffectivelyDisabled || undefined,
|
|
1208
1206
|
"aria-label": resolvedTimeLabel,
|
|
1209
1207
|
"aria-describedby": ariaDescribedBy,
|
|
1210
1208
|
"aria-required": isEffectivelyRequired ? 'true' : undefined,
|
|
@@ -11,7 +11,8 @@ export type NativeDateSegmentProps = {
|
|
|
11
11
|
max?: ISODateString;
|
|
12
12
|
isDateDisabled: (date: ReturnType<typeof plainDateFromISO>) => boolean;
|
|
13
13
|
isEffectivelyDisabled: boolean;
|
|
14
|
-
|
|
14
|
+
/** While disabled, stay focusable: aria-disabled and readOnly, not `disabled`. */
|
|
15
|
+
isFocusableDisabled: boolean;
|
|
15
16
|
isEffectivelyRequired: boolean;
|
|
16
17
|
isBusy: boolean;
|
|
17
18
|
statusType?: InputStatusType;
|
|
@@ -24,7 +25,7 @@ export type NativeDateSegmentProps = {
|
|
|
24
25
|
controlProps?: Omit<FieldInputBaseProps<HTMLInputElement>, keyof FieldPartStyleProps | 'onChange' | 'defaultValue'>;
|
|
25
26
|
};
|
|
26
27
|
/** The native date half rendered inside DateTimeInput's date wrapper. */
|
|
27
|
-
export declare function NativeDateSegment({ id, inputRef, value, onChange, placeholder, min, max, isDateDisabled, isEffectivelyDisabled,
|
|
28
|
+
export declare function NativeDateSegment({ id, inputRef, value, onChange, placeholder, min, max, isDateDisabled, isEffectivelyDisabled, isFocusableDisabled, isEffectivelyRequired, isBusy, statusType, ariaDescribedBy, controlProps, }: NativeDateSegmentProps): import("react").JSX.Element;
|
|
28
29
|
export declare namespace NativeDateSegment {
|
|
29
30
|
var displayName: string;
|
|
30
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeDateSegment.d.ts","sourceRoot":"","sources":["../../src/DateTimeInput/NativeDateSegment.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAIL,gBAAgB,EAGhB,KAAK,aAAa,EACnB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,UAAU,CAAC;AAK9C,MAAM,MAAM,sBAAsB,GAAG;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,KAAK,IAAI,CAAC;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,cAAc,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,KAAK,OAAO,CAAC;IACvE,qBAAqB,EAAE,OAAO,CAAC;IAC/B,
|
|
1
|
+
{"version":3,"file":"NativeDateSegment.d.ts","sourceRoot":"","sources":["../../src/DateTimeInput/NativeDateSegment.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAIL,gBAAgB,EAGhB,KAAK,aAAa,EACnB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,UAAU,CAAC;AAK9C,MAAM,MAAM,sBAAsB,GAAG;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,KAAK,IAAI,CAAC;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,cAAc,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,KAAK,OAAO,CAAC;IACvE,qBAAqB,EAAE,OAAO,CAAC;IAC/B,kFAAkF;IAClF,mBAAmB,EAAE,OAAO,CAAC;IAC7B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,YAAY,CAAC,EAAE,IAAI,CACjB,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,MAAM,mBAAmB,GAAG,UAAU,GAAG,cAAc,CACxD,CAAC;CACH,CAAC;AAEF,yEAAyE;AACzE,wBAAgB,iBAAiB,CAAC,EAChC,EAAE,EACF,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,WAAW,EACX,GAAG,EACH,GAAG,EACH,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,MAAM,EACN,UAAU,EACV,eAAe,EACf,YAAY,GACb,EAAE,sBAAsB,+BAyOxB;yBAzPe,iBAAiB"}
|
|
@@ -46,7 +46,7 @@ export function NativeDateSegment({
|
|
|
46
46
|
max,
|
|
47
47
|
isDateDisabled,
|
|
48
48
|
isEffectivelyDisabled,
|
|
49
|
-
|
|
49
|
+
isFocusableDisabled,
|
|
50
50
|
isEffectivelyRequired,
|
|
51
51
|
isBusy,
|
|
52
52
|
statusType,
|
|
@@ -192,7 +192,7 @@ export function NativeDateSegment({
|
|
|
192
192
|
children: [/*#__PURE__*/_jsx("button", {
|
|
193
193
|
type: "button",
|
|
194
194
|
onClick: openPicker,
|
|
195
|
-
disabled: isEffectivelyDisabled,
|
|
195
|
+
"aria-disabled": isEffectivelyDisabled || undefined,
|
|
196
196
|
"aria-label": t('@astryx.dateInput.openCalendar'),
|
|
197
197
|
tabIndex: -1,
|
|
198
198
|
...stylex.props(focusOutlineStyles.focusVisible, styles.iconButton, isEffectivelyDisabled && styles.iconButtonDisabled),
|
|
@@ -219,9 +219,9 @@ export function NativeDateSegment({
|
|
|
219
219
|
onBlur: chainEventHandlers(handleBlur, onBlurProp),
|
|
220
220
|
min: min,
|
|
221
221
|
max: max,
|
|
222
|
-
disabled: isEffectivelyDisabled && !
|
|
223
|
-
"aria-disabled":
|
|
224
|
-
readOnly:
|
|
222
|
+
disabled: isEffectivelyDisabled && !isFocusableDisabled,
|
|
223
|
+
"aria-disabled": isEffectivelyDisabled && isFocusableDisabled ? 'true' : undefined,
|
|
224
|
+
readOnly: isEffectivelyDisabled && isFocusableDisabled || undefined,
|
|
225
225
|
"aria-describedby": ariaDescribedBy,
|
|
226
226
|
"aria-required": isEffectivelyRequired ? 'true' : undefined,
|
|
227
227
|
"aria-invalid": statusType === 'error' || !isInputValid ? 'true' : undefined,
|
|
@@ -17,7 +17,8 @@ export type NativeTimeSegmentProps = {
|
|
|
17
17
|
max?: ISOTimeString;
|
|
18
18
|
hourFormat: '12h' | '24h';
|
|
19
19
|
isEffectivelyDisabled: boolean;
|
|
20
|
-
|
|
20
|
+
/** While disabled, stay focusable: aria-disabled and readOnly, not `disabled`. */
|
|
21
|
+
isFocusableDisabled: boolean;
|
|
21
22
|
isEffectivelyRequired: boolean;
|
|
22
23
|
isBusy: boolean;
|
|
23
24
|
statusType?: InputStatusType;
|
|
@@ -30,7 +31,7 @@ export type NativeTimeSegmentProps = {
|
|
|
30
31
|
controlProps?: Omit<FieldInputBaseProps<HTMLInputElement>, keyof FieldPartStyleProps | 'onChange' | 'defaultValue'>;
|
|
31
32
|
};
|
|
32
33
|
/** The shared native time control rendered inside Astryx field chrome. */
|
|
33
|
-
export declare function NativeTimeSegment({ id, inputRef, value, onChange, placeholder, inputLabel, openPickerLabel, ariaLabelledBy, iconThemeProps, hasAutoFocus, min, max, hourFormat, isEffectivelyDisabled,
|
|
34
|
+
export declare function NativeTimeSegment({ id, inputRef, value, onChange, placeholder, inputLabel, openPickerLabel, ariaLabelledBy, iconThemeProps, hasAutoFocus, min, max, hourFormat, isEffectivelyDisabled, isFocusableDisabled, isEffectivelyRequired, isBusy, statusType, ariaDescribedBy, controlProps, }: NativeTimeSegmentProps): import("react").JSX.Element;
|
|
34
35
|
export declare namespace NativeTimeSegment {
|
|
35
36
|
var displayName: string;
|
|
36
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeTimeSegment.d.ts","sourceRoot":"","sources":["../../src/DateTimeInput/NativeTimeSegment.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,UAAU,CAAC;AAK9C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAOL,KAAK,aAAa,EACnB,MAAM,UAAU,CAAC;AAoBlB,MAAM,MAAM,sBAAsB,GAAG;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,KAAK,IAAI,CAAC;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,KAAK,GAAG,KAAK,CAAC;IAC1B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,
|
|
1
|
+
{"version":3,"file":"NativeTimeSegment.d.ts","sourceRoot":"","sources":["../../src/DateTimeInput/NativeTimeSegment.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,UAAU,CAAC;AAK9C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAOL,KAAK,aAAa,EACnB,MAAM,UAAU,CAAC;AAoBlB,MAAM,MAAM,sBAAsB,GAAG;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,KAAK,IAAI,CAAC;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,KAAK,GAAG,KAAK,CAAC;IAC1B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,kFAAkF;IAClF,mBAAmB,EAAE,OAAO,CAAC;IAC7B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,YAAY,CAAC,EAAE,IAAI,CACjB,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,MAAM,mBAAmB,GAAG,UAAU,GAAG,cAAc,CACxD,CAAC;CACH,CAAC;AAEF,0EAA0E;AAC1E,wBAAgB,iBAAiB,CAAC,EAChC,EAAE,EACF,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,WAAW,EACX,UAAU,EACV,eAAe,EACf,cAAc,EACd,cAAc,EACd,YAAoB,EACpB,GAAG,EACH,GAAG,EACH,UAAU,EACV,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,MAAM,EACN,UAAU,EACV,eAAe,EACf,YAAY,GACb,EAAE,sBAAsB,+BA6OxB;yBAlQe,iBAAiB"}
|
|
@@ -59,7 +59,7 @@ export function NativeTimeSegment({
|
|
|
59
59
|
max,
|
|
60
60
|
hourFormat,
|
|
61
61
|
isEffectivelyDisabled,
|
|
62
|
-
|
|
62
|
+
isFocusableDisabled,
|
|
63
63
|
isEffectivelyRequired,
|
|
64
64
|
isBusy,
|
|
65
65
|
statusType,
|
|
@@ -202,7 +202,7 @@ export function NativeTimeSegment({
|
|
|
202
202
|
children: [/*#__PURE__*/_jsx("button", {
|
|
203
203
|
type: "button",
|
|
204
204
|
onClick: openPicker,
|
|
205
|
-
disabled: isEffectivelyDisabled,
|
|
205
|
+
"aria-disabled": isEffectivelyDisabled || undefined,
|
|
206
206
|
"aria-label": openPickerLabel,
|
|
207
207
|
tabIndex: -1,
|
|
208
208
|
...stylex.props(focusOutlineStyles.focusVisible, styles.iconButton, isEffectivelyDisabled && styles.iconButtonDisabled),
|
|
@@ -228,9 +228,9 @@ export function NativeTimeSegment({
|
|
|
228
228
|
min: min,
|
|
229
229
|
max: max,
|
|
230
230
|
step: 60,
|
|
231
|
-
disabled: isEffectivelyDisabled && !
|
|
232
|
-
"aria-disabled":
|
|
233
|
-
readOnly:
|
|
231
|
+
disabled: isEffectivelyDisabled && !isFocusableDisabled,
|
|
232
|
+
"aria-disabled": isEffectivelyDisabled && isFocusableDisabled ? 'true' : undefined,
|
|
233
|
+
readOnly: isEffectivelyDisabled && isFocusableDisabled || undefined
|
|
234
234
|
// The segment's own label applies only when nothing else names it;
|
|
235
235
|
// otherwise a caller aria-label from the spread above stays.
|
|
236
236
|
,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TouchDateTimeField.d.ts","sourceRoot":"","sources":["../../src/DateTimeInput/TouchDateTimeField.tsx"],"names":[],"mappings":"AA6GA,OAAO,KAAK,EAAC,kBAAkB,EAAoB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"TouchDateTimeField.d.ts","sourceRoot":"","sources":["../../src/DateTimeInput/TouchDateTimeField.tsx"],"names":[],"mappings":"AA6GA,OAAO,KAAK,EAAC,kBAAkB,EAAoB,MAAM,iBAAiB,CAAC;AAuV3E,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,aAAqB,EACrB,WAAW,EACX,UAAkB,EAClB,UAAkB,EAClB,UAAkB,EAClB,eAAe,EACf,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,SAAiB,EACjB,GAAG,EACH,GAAG,EACH,eAAe,EACf,UAAkB,EAClB,UAAkB,EAElB,aAAa,EAAE,cAAc,EAC7B,kBAAkB,EAAE,mBAAmB,EACvC,QAAgB,EAChB,WAAW,EAAE,oBAAoB,EACjC,eAAe,EAAE,wBAAwB,EACzC,SAAS,EACT,IAAI,EAAE,QAAQ,EACd,MAAM,EACN,YAAY,EAEZ,cAAc,EAAE,eAAe,EAC/B,YAAY,EAAE,gBAAoB,EAClC,KAAK,EACL,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,GAAG,EACH,GAAG,SAAS,EACb,EAAE,kBAAkB,+BAu/BpB;yBA9hCe,kBAAkB"}
|
|
@@ -103,6 +103,11 @@ const sizeStyles = {
|
|
|
103
103
|
};
|
|
104
104
|
const HORIZONTAL_SEGMENT_BASIS = 196;
|
|
105
105
|
const styles = {
|
|
106
|
+
disabledFocusRing: {
|
|
107
|
+
kVAM5u: "xvy26l8 x6q1khz",
|
|
108
|
+
kGVxlE: "x1gnnqk1 xuihb5h",
|
|
109
|
+
$$css: true
|
|
110
|
+
},
|
|
106
111
|
iconButton: {
|
|
107
112
|
k1xSpc: "x78zum5",
|
|
108
113
|
kGNEyG: "x6s0dn4",
|
|
@@ -932,11 +937,11 @@ export function TouchDateTimeField({
|
|
|
932
937
|
...mergeProps(themeProps('date-time-input-date-segment', {
|
|
933
938
|
size,
|
|
934
939
|
status: status?.type ?? null
|
|
935
|
-
}), stylex.props(inputWrapperStyles.base, sizeStyles[size], styles.touchDateWrapper, isEffectivelyDisabled && inputWrapperStyles.disabled, status && inputStatusBorderStyles[status.type], status && !isEffectivelyDisabled && inputStatusHoverShadowStyles[status.type], status && inputStatusFocusWithinStyles[status.type])),
|
|
940
|
+
}), stylex.props(inputWrapperStyles.base, sizeStyles[size], styles.touchDateWrapper, isEffectivelyDisabled && inputWrapperStyles.disabled, isEffectivelyDisabled && styles.disabledFocusRing, status && inputStatusBorderStyles[status.type], status && !isEffectivelyDisabled && inputStatusHoverShadowStyles[status.type], status && inputStatusFocusWithinStyles[status.type])),
|
|
936
941
|
children: [/*#__PURE__*/_jsx("button", {
|
|
937
942
|
type: "button",
|
|
938
943
|
onClick: () => openSheet('date'),
|
|
939
|
-
disabled: isEffectivelyDisabled,
|
|
944
|
+
"aria-disabled": isEffectivelyDisabled || undefined,
|
|
940
945
|
"aria-label": t('@astryx.dateInput.openCalendar'),
|
|
941
946
|
tabIndex: -1,
|
|
942
947
|
...stylex.props(focusOutlineStyles.focusVisible, styles.iconButton, isEffectivelyDisabled && styles.iconButtonDisabled),
|
|
@@ -958,12 +963,11 @@ export function TouchDateTimeField({
|
|
|
958
963
|
readOnly: true,
|
|
959
964
|
inputMode: "none",
|
|
960
965
|
onChange: () => {},
|
|
961
|
-
onClick: chainEventHandlers(() => openSheet('date'), onClickProp),
|
|
966
|
+
onClick: isEffectivelyDisabled ? undefined : chainEventHandlers(() => openSheet('date'), onClickProp),
|
|
962
967
|
onKeyDown: chainEventHandlers(event => handleInputKeyDown(event, 'date'), onKeyDownProp),
|
|
963
968
|
"aria-labelledby": controlLabelledBy,
|
|
964
969
|
placeholder: placeholder,
|
|
965
|
-
disabled: isEffectivelyDisabled
|
|
966
|
-
"aria-disabled": showsDisabledMessage ? 'true' : undefined,
|
|
970
|
+
"aria-disabled": isEffectivelyDisabled ? 'true' : undefined,
|
|
967
971
|
"aria-describedby": ariaDescribedBy,
|
|
968
972
|
"aria-required": isEffectivelyRequired ? 'true' : undefined,
|
|
969
973
|
"aria-invalid": status?.type === 'error' ? 'true' : undefined,
|
|
@@ -997,11 +1001,11 @@ export function TouchDateTimeField({
|
|
|
997
1001
|
...mergeProps(themeProps('date-time-input-time-segment', {
|
|
998
1002
|
size,
|
|
999
1003
|
status: status?.type ?? null
|
|
1000
|
-
}), stylex.props(inputWrapperStyles.base, sizeStyles[size], styles.touchTimeWrapper, isEffectivelyDisabled && inputWrapperStyles.disabled, status && inputStatusBorderStyles[status.type], status && !isEffectivelyDisabled && inputStatusHoverShadowStyles[status.type], status && inputStatusFocusWithinStyles[status.type])),
|
|
1004
|
+
}), stylex.props(inputWrapperStyles.base, sizeStyles[size], styles.touchTimeWrapper, isEffectivelyDisabled && inputWrapperStyles.disabled, isEffectivelyDisabled && styles.disabledFocusRing, status && inputStatusBorderStyles[status.type], status && !isEffectivelyDisabled && inputStatusHoverShadowStyles[status.type], status && inputStatusFocusWithinStyles[status.type])),
|
|
1001
1005
|
children: [/*#__PURE__*/_jsx("button", {
|
|
1002
1006
|
type: "button",
|
|
1003
1007
|
onClick: () => openSheet('time'),
|
|
1004
|
-
disabled: isEffectivelyDisabled,
|
|
1008
|
+
"aria-disabled": isEffectivelyDisabled || undefined,
|
|
1005
1009
|
"aria-label": t('@astryx.dateTimeInput.openTimePicker', {
|
|
1006
1010
|
label: resolvedTimeLabel
|
|
1007
1011
|
}),
|
|
@@ -1025,8 +1029,7 @@ export function TouchDateTimeField({
|
|
|
1025
1029
|
onClick: () => openSheet('time'),
|
|
1026
1030
|
onKeyDown: event => handleInputKeyDown(event, 'time'),
|
|
1027
1031
|
placeholder: timePlaceholder,
|
|
1028
|
-
disabled: isEffectivelyDisabled
|
|
1029
|
-
"aria-disabled": showsDisabledMessage ? 'true' : undefined,
|
|
1032
|
+
"aria-disabled": isEffectivelyDisabled ? 'true' : undefined,
|
|
1030
1033
|
"aria-label": resolvedTimeLabel,
|
|
1031
1034
|
"aria-describedby": ariaDescribedBy,
|
|
1032
1035
|
"aria-required": isEffectivelyRequired ? 'true' : undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../src/Dialog/Dialog.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA2B5C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAMhD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAyB9C;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzD,4EAA4E;AAC5E,UAAU,mBAAmB;IAC3B,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAe,SAAQ,mBAAmB;IACzD,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAuBD,2FAA2F;AAC3F,eAAO,MAAM,uCAAuC;;;;;;;;;;;CAW1C,CAAC;AAoJX;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,cAAc;;;;;EAUpE;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IAC/D,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnC;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;;OAOG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;IAE3C;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAExB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;IAEpC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;OAGG;IACH,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,MAAM,CAAC,EACrB,MAAM,EACN,QAAgB,EAChB,YAAY,EACZ,KAAW,EACX,SAAmB,EACnB,QAAQ,EACR,OAAoB,EACpB,OAAgB,EAChB,OAAO,EACP,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../src/Dialog/Dialog.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA2B5C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAMhD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAyB9C;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzD,4EAA4E;AAC5E,UAAU,mBAAmB;IAC3B,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAe,SAAQ,mBAAmB;IACzD,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAuBD,2FAA2F;AAC3F,eAAO,MAAM,uCAAuC;;;;;;;;;;;CAW1C,CAAC;AAoJX;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,cAAc;;;;;EAUpE;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IAC/D,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnC;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;;OAOG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;IAE3C;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAExB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;IAEpC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;OAGG;IACH,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,MAAM,CAAC,EACrB,MAAM,EACN,QAAgB,EAChB,YAAY,EACZ,KAAW,EACX,SAAmB,EACnB,QAAQ,EACR,OAAoB,EACpB,OAAgB,EAChB,OAAO,EACP,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,WAAW,sCA4Vb;yBA5We,MAAM"}
|
package/dist/Dialog/Dialog.js
CHANGED
|
@@ -472,11 +472,16 @@ export function Dialog({
|
|
|
472
472
|
// Escape presses the stack owns never arrive here — it preventDefault()s
|
|
473
473
|
// those, which suppresses the close watcher.
|
|
474
474
|
//
|
|
475
|
-
//
|
|
476
|
-
//
|
|
477
|
-
//
|
|
478
|
-
//
|
|
475
|
+
// A `cancel` that bubbles up from inside is not a close request for this
|
|
476
|
+
// dialog: a file input fires one when its picker is dismissed. It is left
|
|
477
|
+
// alone. Otherwise always preventDefault so the browser cannot close a
|
|
478
|
+
// controlled <dialog> behind React's back, then answer the request with the
|
|
479
|
+
// stack's own rules: only the top-most layer dismisses, a `required` dialog
|
|
480
|
+
// swallows it, and nothing dismisses while an IME composition is in progress.
|
|
479
481
|
const handleCancel = event => {
|
|
482
|
+
if (event.target !== event.currentTarget) {
|
|
483
|
+
return;
|
|
484
|
+
}
|
|
480
485
|
event.preventDefault();
|
|
481
486
|
if (!shouldDismissOnCloseRequest()) {
|
|
482
487
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../src/DropdownMenu/DropdownMenu.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,EAOZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,EAAS,KAAK,WAAW,EAAC,MAAM,WAAW,CAAC;AAKnD,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../src/DropdownMenu/DropdownMenu.tsx"],"names":[],"mappings":"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"}
|