@astryxdesign/core 0.7.5-canary.d76a228 → 0.7.5-canary.e52ef25
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/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
- package/dist/Breadcrumbs/BreadcrumbItem.js +5 -0
- package/dist/Button/Button.d.ts.map +1 -1
- package/dist/Button/Button.js +8 -4
- package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
- package/dist/ClickableCard/ClickableCard.js +10 -6
- package/dist/CommandPalette/CommandPalette.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPalette.js +15 -1
- package/dist/CommandPalette/CommandPaletteInput.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPaletteInput.js +14 -2
- package/dist/CommandPalette/busyStartSettle.d.ts +4 -0
- package/dist/CommandPalette/busyStartSettle.d.ts.map +1 -0
- package/dist/CommandPalette/busyStartSettle.js +23 -0
- package/dist/ComplexSelector/ComplexSelector.d.ts +19 -1
- package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -1
- package/dist/ComplexSelector/ComplexSelector.js +19 -4
- package/dist/DateInput/Wheel.d.ts.map +1 -1
- package/dist/DateInput/Wheel.js +1 -1
- package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts +10 -5
- package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuRadioItem.js +13 -5
- package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts +6 -6
- package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenuSubMenu.js +0 -3
- package/dist/DropdownMenu/menuItemHover.d.ts +3 -0
- package/dist/DropdownMenu/menuItemHover.d.ts.map +1 -1
- package/dist/DropdownMenu/menuItemHover.js +14 -1
- package/dist/Field/PanelSearchInput.d.ts.map +1 -1
- package/dist/Field/PanelSearchInput.js +11 -14
- package/dist/Field/inputDisabledFocus.d.ts +14 -0
- package/dist/Field/inputDisabledFocus.d.ts.map +1 -0
- package/dist/Field/inputDisabledFocus.js +19 -0
- package/dist/Item/Item.d.ts.map +1 -1
- package/dist/Item/Item.js +1 -1
- package/dist/Item/useSwipeAction.d.ts.map +1 -1
- package/dist/Item/useSwipeAction.js +60 -5
- package/dist/Layer/useTouchTrigger.d.ts +14 -1
- package/dist/Layer/useTouchTrigger.d.ts.map +1 -1
- package/dist/Layer/useTouchTrigger.js +72 -17
- package/dist/Lightbox/Lightbox.d.ts +5 -2
- package/dist/Lightbox/Lightbox.d.ts.map +1 -1
- package/dist/Lightbox/Lightbox.js +19 -7
- package/dist/Lightbox/LightboxKeyboard.a11y.browser.spec.d.ts +2 -0
- package/dist/Lightbox/LightboxKeyboard.a11y.browser.spec.d.ts.map +1 -0
- package/dist/Lightbox/LightboxKeyboard.a11y.browser.spec.js +77 -0
- package/dist/NumberInput/NumberInput.d.ts +3 -3
- package/dist/NumberInput/NumberInput.d.ts.map +1 -1
- package/dist/NumberInput/NumberInput.js +46 -20
- package/dist/Popover/usePopover.d.ts.map +1 -1
- package/dist/Popover/usePopover.js +8 -4
- package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
- package/dist/SelectableCard/SelectableCard.js +10 -6
- package/dist/SideNav/SideNavHeading.d.ts.map +1 -1
- package/dist/SideNav/SideNavHeading.js +34 -0
- package/dist/Skeleton/Skeleton.d.ts.map +1 -1
- package/dist/Skeleton/Skeleton.js +12 -3
- package/dist/Slider/Slider.d.ts.map +1 -1
- package/dist/Slider/Slider.js +45 -12
- package/dist/TextArea/TextArea.d.ts +6 -4
- package/dist/TextArea/TextArea.d.ts.map +1 -1
- package/dist/TextArea/TextArea.js +14 -11
- package/dist/TextInput/TextInput.d.ts +6 -4
- package/dist/TextInput/TextInput.d.ts.map +1 -1
- package/dist/TextInput/TextInput.js +27 -17
- package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
- package/dist/Thumbnail/Thumbnail.js +10 -6
- package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
- package/dist/Typeahead/BaseTypeahead.js +16 -4
- package/dist/Typeahead/Typeahead.d.ts.map +1 -1
- package/dist/Typeahead/Typeahead.js +24 -11
- package/dist/astryx.css +9 -9
- package/dist/hooks/useAnnounce.d.ts +18 -1
- package/dist/hooks/useAnnounce.d.ts.map +1 -1
- package/dist/hooks/useAnnounce.js +84 -18
- package/dist/hooks/useBusyAnnouncement.d.ts +4 -2
- package/dist/hooks/useBusyAnnouncement.d.ts.map +1 -1
- package/dist/hooks/useBusyAnnouncement.js +30 -4
- package/dist/hooks/useMenuPress.d.ts +2 -1
- package/dist/hooks/useMenuPress.d.ts.map +1 -1
- package/dist/hooks/useMenuPress.js +12 -3
- package/package.json +3 -3
- package/src/Badge/Badge.spec.md +207 -0
- package/src/Banner/Banner.spec.md +41 -30
- package/src/Breadcrumbs/BreadcrumbItem.tsx +5 -0
- package/src/Breadcrumbs/Breadcrumbs.test.tsx +22 -0
- package/src/Button/Button.test.tsx +7 -0
- package/src/Button/Button.tsx +8 -4
- package/src/ClickableCard/ClickableCard.doc.mjs +1 -2
- package/src/ClickableCard/ClickableCard.test.tsx +14 -3
- package/src/ClickableCard/ClickableCard.tsx +44 -28
- package/src/CodeBlock/CodeBlock.spec.md +69 -49
- package/src/CommandPalette/CommandPalette.tsx +17 -1
- package/src/CommandPalette/CommandPaletteInput.tsx +21 -2
- package/src/CommandPalette/busyStartSettle.ts +26 -0
- package/src/ComplexSelector/ComplexSelector.doc.mjs +1 -1
- package/src/ComplexSelector/ComplexSelector.focusableDisabled.test.tsx +1 -1
- package/src/ComplexSelector/ComplexSelector.fr10.test.tsx +9 -9
- package/src/ComplexSelector/ComplexSelector.spec.md +161 -107
- package/src/ComplexSelector/ComplexSelector.test.tsx +77 -16
- package/src/ComplexSelector/ComplexSelector.tsx +44 -2
- package/src/ComplexSelector/__tests__/ComplexSelector.a11y.chromium.spec.ts +964 -0
- package/src/DateInput/DateInputTouch.test.tsx +9 -0
- package/src/DateInput/Wheel.tsx +4 -1
- package/src/DateInput/__tests__/WheelPinchZoom.a11y.chromium.spec.ts +158 -0
- package/src/DropdownMenu/DropdownMenu.test.tsx +27 -1
- package/src/DropdownMenu/DropdownMenuRadioItem.doc.mjs +5 -2
- package/src/DropdownMenu/DropdownMenuRadioItem.spec.md +226 -0
- package/src/DropdownMenu/DropdownMenuRadioItem.tsx +32 -16
- package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +158 -0
- package/src/DropdownMenu/DropdownMenuSubMenu.doc.mjs +9 -0
- package/src/DropdownMenu/DropdownMenuSubMenu.spec.md +225 -0
- package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +48 -0
- package/src/DropdownMenu/DropdownMenuSubMenu.tsx +6 -6
- package/src/DropdownMenu/__tests__/DropdownMenuRadioItemAudit.a11y.chromium.spec.ts +539 -0
- package/src/DropdownMenu/__tests__/DropdownMenuSubMenuAudit.a11y.chromium.spec.ts +670 -0
- package/src/DropdownMenu/__tests__/MenuHoverFocus.a11y.chromium.spec.ts +237 -0
- package/src/DropdownMenu/menuItemHover.ts +13 -1
- package/src/Field/PanelSearchInput.tsx +12 -13
- package/src/Field/inputDisabledFocus.ts +28 -0
- package/src/HoverCard/HoverCard.test.tsx +93 -3
- package/src/Item/Item.test.tsx +118 -0
- package/src/Item/Item.tsx +5 -3
- package/src/Item/__tests__/ItemSwipePinchZoom.a11y.chromium.spec.ts +185 -0
- package/src/Item/useSwipeAction.ts +71 -5
- package/src/Layer/__tests__/TouchTrigger.a11y.chromium.spec.ts +199 -0
- package/src/Layer/useTouchTrigger.ts +95 -41
- package/src/Lightbox/Lightbox.test.tsx +68 -0
- package/src/Lightbox/Lightbox.tsx +20 -7
- package/src/Lightbox/LightboxKeyboard.a11y.browser.spec.ts +77 -0
- package/src/List/ListItem.doc.mjs +3 -3
- package/src/Markdown/Markdown.spec.md +15 -8
- package/src/MultiSelector/MultiSelector.test.tsx +22 -8
- package/src/NumberInput/NumberInput.doc.mjs +6 -6
- package/src/NumberInput/NumberInput.test.tsx +144 -14
- package/src/NumberInput/NumberInput.tsx +68 -21
- package/src/Pagination/Pagination.test.tsx +2 -2
- package/src/Popover/Popover.test.tsx +48 -0
- package/src/Popover/usePopover.tsx +8 -4
- package/src/PowerSearch/PowerSearch.test.tsx +45 -0
- package/src/SelectableCard/SelectableCard.doc.mjs +1 -2
- package/src/SelectableCard/SelectableCard.test.tsx +11 -1
- package/src/SelectableCard/SelectableCard.tsx +44 -28
- package/src/Selector/Selector.test.tsx +64 -6
- package/src/SideNav/SideNav.test.tsx +71 -8
- package/src/SideNav/SideNavHeading.tsx +41 -0
- package/src/Skeleton/Skeleton.test.tsx +108 -1
- package/src/Skeleton/Skeleton.tsx +30 -2
- package/src/Slider/Slider.test.tsx +172 -0
- package/src/Slider/Slider.tsx +60 -12
- package/src/TabList/TabList.doc.mjs +3 -3
- package/src/TextArea/TextArea.doc.mjs +6 -6
- package/src/TextArea/TextArea.test.tsx +65 -6
- package/src/TextArea/TextArea.tsx +26 -14
- package/src/TextInput/TextInput.doc.mjs +8 -8
- package/src/TextInput/TextInput.test.tsx +83 -10
- package/src/TextInput/TextInput.tsx +38 -19
- package/src/Thumbnail/Thumbnail.doc.mjs +1 -2
- package/src/Thumbnail/Thumbnail.test.tsx +11 -1
- package/src/Thumbnail/Thumbnail.tsx +43 -27
- package/src/Tooltip/Tooltip.test.tsx +148 -3
- package/src/Tooltip/__tests__/Tooltip.a11y.states.ts +2 -2
- package/src/Typeahead/BaseTypeahead.tsx +14 -2
- package/src/Typeahead/Typeahead.test.tsx +114 -1
- package/src/Typeahead/Typeahead.tsx +27 -14
- package/src/__tests__/BusyOwnerAnnouncement.test.tsx +59 -0
- package/src/__tests__/CardPress.a11y.chromium.spec.ts +352 -0
- package/src/__tests__/DisabledTriggerFocus.a11y.chromium.spec.ts +1 -1
- package/src/__tests__/pressState.ts +43 -1
- package/src/hooks/useAnnounce.doc.mjs +2 -2
- package/src/hooks/useAnnounce.test.tsx +64 -4
- package/src/hooks/useAnnounce.ts +91 -19
- package/src/hooks/useBusyAnnouncement.adopters.test.tsx +69 -0
- package/src/hooks/useBusyAnnouncement.test.tsx +112 -0
- package/src/hooks/useBusyAnnouncement.ts +36 -5
- package/src/hooks/useMenuPress.doc.mjs +2 -2
- package/src/hooks/useMenuPress.test.tsx +5 -2
- package/src/hooks/useMenuPress.ts +12 -3
- package/src/theme/derivedVarRegistry.test.ts +4 -5
- package/src/theme/tokens.test.ts +60 -0
- package/src/utils/customPropertyArmLayering.test.ts +131 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BreadcrumbItem.d.ts","sourceRoot":"","sources":["../../src/Breadcrumbs/BreadcrumbItem.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,EAOZ,KAAK,SAAS,EACd,KAAK,UAAU,EAChB,MAAM,OAAO,CAAC;AAWf,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAErD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAS5C,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,qCAAqC,CAAC;AAM7C,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"BreadcrumbItem.d.ts","sourceRoot":"","sources":["../../src/Breadcrumbs/BreadcrumbItem.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,EAOZ,KAAK,SAAS,EACd,KAAK,UAAU,EAChB,MAAM,OAAO,CAAC;AAWf,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAErD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAS5C,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,qCAAqC,CAAC;AAM7C,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,8BAA8B,CAAC;AAQrE,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAC/C,SAAS,CAAC,aAAa,CAAC,EACxB,SAAS,CACV;IACC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC/B;;;;OAIG;IACH,EAAE,CAAC,EAAE,iBAAiB,CAAC;IACvB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAC/C;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAC;IACxC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAsID;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,EAC7B,GAAG,EACH,EAAE,EACF,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,SAAS,EAAE,aAAa,EACxB,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,EAAE,MAAM,EACrB,GAAG,IAAI,EACR,EAAE,mBAAmB,qBAgMrB;yBA/Me,cAAc"}
|
|
@@ -40,6 +40,7 @@ import { renderDropdownItems } from "../DropdownMenu/renderDropdownItems.js";
|
|
|
40
40
|
import { DropdownMenuContext, DropdownMenuRootOpenContext } from "../DropdownMenu/DropdownMenuContext.js";
|
|
41
41
|
import { MENU_ITEM_ROLES, MENU_ITEM_SELECTOR, MENU_BOUNDARY_SELECTOR } from "../DropdownMenu/menuItemRoles.js";
|
|
42
42
|
import { useMergedRefs } from "../hooks/useMergedRefs.js";
|
|
43
|
+
import { useInteractionModalityTracking } from "../utils/interactionModality.js";
|
|
43
44
|
// =============================================================================
|
|
44
45
|
// Props
|
|
45
46
|
// =============================================================================
|
|
@@ -334,6 +335,10 @@ function BreadcrumbMenuTrigger({
|
|
|
334
335
|
const triggerId = useId();
|
|
335
336
|
const buttonRef = useRef(null);
|
|
336
337
|
const isSupporting = variant === 'supporting';
|
|
338
|
+
// The menu's rows move focus with the last input
|
|
339
|
+
// (`architecture:interaction-modality` INV1); this menu has no press model
|
|
340
|
+
// to activate the tracking they read, so it activates it itself.
|
|
341
|
+
useInteractionModalityTracking();
|
|
337
342
|
const popover = usePopover({
|
|
338
343
|
hasLightDismiss: true,
|
|
339
344
|
hasCloseButton: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/Button/Button.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/Button/Button.tsx"],"names":[],"mappings":"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"}
|
package/dist/Button/Button.js
CHANGED
|
@@ -555,8 +555,10 @@ export function Button({
|
|
|
555
555
|
...ariaLabelProp,
|
|
556
556
|
...describedByProp,
|
|
557
557
|
...edgeCompAttr,
|
|
558
|
-
|
|
559
|
-
|
|
558
|
+
// A caller's own busy or disabled state is kept, so a component that
|
|
559
|
+
// hands these props to a Button (a caller-rendered trigger) is heard.
|
|
560
|
+
"aria-busy": isLoadingState || props['aria-busy'] || undefined,
|
|
561
|
+
"aria-disabled": useAriaDisabled || props['aria-disabled'] || undefined,
|
|
560
562
|
onClick: handleClick,
|
|
561
563
|
...(handleKeyDown ? {
|
|
562
564
|
onKeyDown: handleKeyDown
|
|
@@ -574,8 +576,10 @@ export function Button({
|
|
|
574
576
|
...ariaLabelProp,
|
|
575
577
|
...describedByProp,
|
|
576
578
|
...edgeCompAttr,
|
|
577
|
-
|
|
578
|
-
|
|
579
|
+
// A caller's own busy or disabled state is kept, so a component that
|
|
580
|
+
// hands these props to a Button (a caller-rendered trigger) is heard.
|
|
581
|
+
"aria-busy": isLoadingState || props['aria-busy'] || undefined,
|
|
582
|
+
"aria-disabled": useAriaDisabled || props['aria-disabled'] || undefined,
|
|
579
583
|
onClick: handleClick,
|
|
580
584
|
...(handleKeyDown ? {
|
|
581
585
|
onKeyDown: handleKeyDown
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClickableCard.d.ts","sourceRoot":"","sources":["../../src/ClickableCard/ClickableCard.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAC,KAAK,SAAS,EAAE,KAAK,UAAU,EAAU,KAAK,GAAG,EAAC,MAAM,OAAO,CAAC;AASxE,OAAO,KAAK,EAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAGtE,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"ClickableCard.d.ts","sourceRoot":"","sources":["../../src/ClickableCard/ClickableCard.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAC,KAAK,SAAS,EAAE,KAAK,UAAU,EAAU,KAAK,GAAG,EAAC,MAAM,OAAO,CAAC;AASxE,OAAO,KAAK,EAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAGtE,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAwJ5C,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,yCAAyC;IACzC,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAE1B;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAEnD;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,yBAAyB;IACzB,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,aAAa,EACxB,IAAI,EACJ,MAAM,EACN,UAAkB,EAClB,QAAQ,EACR,OAAO,EACP,OAAmB,EACnB,SAAkB,EAClB,KAAK,EACL,MAAM,EACN,QAAQ,EACR,GAAG,EACH,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,aAAa,EACxB,KAAK,EACL,GAAG,KAAK,EACT,EAAE,kBAAkB,+BAyFpB;yBA5Ge,aAAa"}
|
|
@@ -51,7 +51,11 @@ import { disabledInteractionProps } from "../utils/disabledInteraction.js";
|
|
|
51
51
|
// 1 while on and 1 → 0 over the release, and inherited resolved by the
|
|
52
52
|
// `::after` that paints it. See interactionOverlay.stylex.ts.
|
|
53
53
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
54
|
-
const
|
|
54
|
+
const pressedOverlayImage = 'var(--_press-paint-image)';
|
|
55
|
+
/** Written by the press controller while it paints a press. */
|
|
56
|
+
const PRESSED_ON = '[data-astryx-press="on"]';
|
|
57
|
+
/** Written by the press controller for the press's release. */
|
|
58
|
+
const PRESSED_FADING = '[data-astryx-press="fading"]';
|
|
55
59
|
const styles = {
|
|
56
60
|
interactive: {
|
|
57
61
|
kVAEAm: "x1n2onr6",
|
|
@@ -61,16 +65,16 @@ const styles = {
|
|
|
61
65
|
$$css: true
|
|
62
66
|
},
|
|
63
67
|
overlay: {
|
|
64
|
-
"--_press-overlay": "x1s9pv7w xb8awce x1a5qima
|
|
65
|
-
"--_press-overlay-transition": "x1wkyqe6 xbb2ue6 x1wphrdb",
|
|
68
|
+
"--_press-overlay": "x1s9pv7w xb8awce x1a5qima xmfmiv1 x1hn5ov8",
|
|
66
69
|
k5JduY: "x1s928wv",
|
|
67
70
|
kwXMNM: "x1j6awrg",
|
|
68
71
|
kv0HGH: "xarstr8",
|
|
69
72
|
kloYau: "x2q1x1w",
|
|
70
|
-
kRicXK: "x1ywzrc5",
|
|
71
|
-
kPNhGg: "
|
|
73
|
+
kRicXK: "x1ywzrc5 x1xg7wox x15tr235",
|
|
74
|
+
kPNhGg: "x97pup0",
|
|
72
75
|
kA8PQs: "x1dlmc9c",
|
|
73
|
-
ks3ayO: "x1l0fnur",
|
|
76
|
+
ks3ayO: "x1l0fnur x1l0866b x7bosnz",
|
|
77
|
+
kNctxI: "x1rd1oi2 xlif165",
|
|
74
78
|
$$css: true
|
|
75
79
|
},
|
|
76
80
|
borderless: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandPalette.d.ts","sourceRoot":"","sources":["../../src/CommandPalette/CommandPalette.tsx"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AAEH,OAAO,EASL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAC,YAAY,EAAE,cAAc,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"CommandPalette.d.ts","sourceRoot":"","sources":["../../src/CommandPalette/CommandPalette.tsx"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AAEH,OAAO,EASL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAC,YAAY,EAAE,cAAc,EAAC,MAAM,cAAc,CAAC;AAW/D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAK5C,MAAM,WAAW,mBAAmB,CAClC,CAAC,SAAS,cAAc,GAAG,cAAc,CACzC,SAAQ,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC;IACtD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnC,2CAA2C;IAC3C,MAAM,EAAE,OAAO,CAAC;IAEhB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,0DAA0D;IAC1D,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAExC;;;;OAIG;IACH,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAE9B;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,KAAK,SAAS,CAAC;IAEzD;;;OAGG;IACH,eAAe,CAAC,EAAE,SAAS,CAAC;IAE5B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAE/B,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,8CAA8C;IAC9C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAExC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAExB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAiID;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,EACxE,GAAG,EACH,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,KAAK,EACL,MAAM,EACN,UAAU,EACV,eAAe,EAAE,wBAAwB,EACzC,kBAAkB,EAAE,2BAA2B,EAC/C,KAAK,EAAE,eAAe,EACtB,aAAa,EACb,KAAK,EAAE,cAAc,EACrB,KAAW,EACX,SAAe,EACf,GAAG,IAAI,EACR,EAAE,mBAAmB,CAAC,CAAC,CAAC,+BAqZxB;yBAtae,cAAc"}
|
|
@@ -18,6 +18,7 @@ import { Dialog } from "../Dialog/index.js";
|
|
|
18
18
|
import { Layout, LayoutHeader, LayoutContent, LayoutFooter } from "../Layout/index.js";
|
|
19
19
|
import { useCombobox } from "../Selector/index.js";
|
|
20
20
|
import { CommandPaletteContext } from "./CommandPaletteContext.js";
|
|
21
|
+
import { BusyStartSettleContext } from "./busyStartSettle.js";
|
|
21
22
|
import { CommandPaletteList } from "./CommandPaletteList.js";
|
|
22
23
|
import { CommandPaletteItem } from "./CommandPaletteItem.js";
|
|
23
24
|
import { CommandPaletteGroup } from "./CommandPaletteGroup.js";
|
|
@@ -204,6 +205,10 @@ export function CommandPalette({
|
|
|
204
205
|
const isBusy = isPending;
|
|
205
206
|
const searchVersionRef = useRef(0);
|
|
206
207
|
const emptyStateRef = useRef(null);
|
|
208
|
+
const settleBusyAnnouncementRef = useRef(null);
|
|
209
|
+
const registerBusyAnnouncementSettle = useCallback(settle => {
|
|
210
|
+
settleBusyAnnouncementRef.current = settle;
|
|
211
|
+
}, []);
|
|
207
212
|
|
|
208
213
|
// Announce search results to screen readers through the shared polite live
|
|
209
214
|
// region (comboboxes-7 announce path, mirroring Selector / BaseTypeahead).
|
|
@@ -289,6 +294,12 @@ export function CommandPalette({
|
|
|
289
294
|
const result = isBootstrap ? searchSource.bootstrap() : searchSource.search(query);
|
|
290
295
|
const items = await Promise.resolve(result);
|
|
291
296
|
if (searchVersionRef.current === version) {
|
|
297
|
+
if (!isBootstrap) {
|
|
298
|
+
// This query's outcome is announced below (a count) or from the
|
|
299
|
+
// rendered empty state; a busy start not yet announced would
|
|
300
|
+
// follow it, so the input drops it (spec:AST-086 FR8).
|
|
301
|
+
settleBusyAnnouncementRef.current?.();
|
|
302
|
+
}
|
|
292
303
|
// Commit query and results together
|
|
293
304
|
setSearch(query);
|
|
294
305
|
setOptimisticResults(items);
|
|
@@ -479,7 +490,10 @@ export function CommandPalette({
|
|
|
479
490
|
header: /*#__PURE__*/_jsx(LayoutHeader, {
|
|
480
491
|
hasDivider: true,
|
|
481
492
|
padding: 0,
|
|
482
|
-
children:
|
|
493
|
+
children: /*#__PURE__*/_jsx(BusyStartSettleContext, {
|
|
494
|
+
value: registerBusyAnnouncementSettle,
|
|
495
|
+
children: input ?? /*#__PURE__*/_jsx(CommandPaletteInput, {})
|
|
496
|
+
})
|
|
483
497
|
}),
|
|
484
498
|
content: /*#__PURE__*/_jsx(LayoutContent, {
|
|
485
499
|
padding: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandPaletteInput.d.ts","sourceRoot":"","sources":["../../src/CommandPalette/CommandPaletteInput.tsx"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"CommandPaletteInput.d.ts","sourceRoot":"","sources":["../../src/CommandPalette/CommandPaletteInput.tsx"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AAEH,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAcf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAuE5C,MAAM,WAAW,wBAAyB,SAAQ,IAAI,CACpD,SAAS,CAAC,gBAAgB,CAAC,EAC3B,UAAU,CACX;IACC,iEAAiE;IACjE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAElC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAExC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;OAIG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IAEvB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;CACvD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EAAE,eAAe,EACtB,aAAa,EACb,WAAW,EAAE,oBAAoB,EACjC,KAAK,EACL,YAAmB,EACnB,UAAU,EACV,QAAQ,EACR,SAAS,EACT,OAAO,EACP,MAAM,EACN,GAAG,EACH,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,wBAAwB,+BAsL1B;yBAtMe,mBAAmB"}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* - /apps/storybook/stories/CommandPaletteInput.stories.tsx
|
|
14
14
|
* - /packages/cli/assets/templates/blocks/components/CommandPalette/ (showcase blocks)
|
|
15
15
|
*/
|
|
16
|
-
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
16
|
+
import { use, useCallback, useEffect, useRef, useState } from 'react';
|
|
17
17
|
import * as stylex from '@stylexjs/stylex';
|
|
18
18
|
import { Icon } from "../Icon/index.js";
|
|
19
19
|
import { Spinner } from "../Spinner/index.js";
|
|
@@ -21,6 +21,7 @@ import { isImeKeyEvent, isRenderable, mergeProps } from "../utils/index.js";
|
|
|
21
21
|
import "../theme/tokens.stylex.js";
|
|
22
22
|
import { colorVars, typeScaleVars, spacingVars, typographyVars } from "../theme/tokens.stylex.js";
|
|
23
23
|
import { useCommandPaletteContext } from "./CommandPaletteContext.js";
|
|
24
|
+
import { BusyStartSettleContext } from "./busyStartSettle.js";
|
|
24
25
|
import { useDialogContext } from "../Dialog/DialogContext.js";
|
|
25
26
|
import { themeProps } from "../utils/themeProps.js";
|
|
26
27
|
import { focusOutlineProps } from "../utils/focusOutline.stylex.js";
|
|
@@ -101,7 +102,18 @@ export function CommandPaletteInput({
|
|
|
101
102
|
// The search Spinner is decorative; the input announces each busy start,
|
|
102
103
|
// including the load on opening or clearing the query. Inside the palette's
|
|
103
104
|
// native modal it does so from a region in the dialog (spec:AST-086 FR8, FR3).
|
|
104
|
-
useBusyAnnouncement(ctx?.isBusy === true, t('@astryx.commandPalette.loading'), inputRef);
|
|
105
|
+
const settleBusyAnnouncement = useBusyAnnouncement(ctx?.isBusy === true, t('@astryx.commandPalette.loading'), inputRef);
|
|
106
|
+
// Keeps the palette holding this input's settle function, so the palette can
|
|
107
|
+
// drop a busy start not yet announced when a search's outcome is about to be
|
|
108
|
+
// announced (spec:AST-086 FR8).
|
|
109
|
+
const registerSettle = use(BusyStartSettleContext);
|
|
110
|
+
useEffect(() => {
|
|
111
|
+
if (registerSettle == null) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
registerSettle(settleBusyAnnouncement);
|
|
115
|
+
return () => registerSettle(null);
|
|
116
|
+
}, [registerSettle, settleBusyAnnouncement]);
|
|
105
117
|
const [isKeyboardFocus, setIsKeyboardFocus] = useState(false);
|
|
106
118
|
|
|
107
119
|
// Text-entry controls match :focus-visible after pointer focus in Chromium.
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Registers the input's settle function, or `null` when the input goes away. */
|
|
2
|
+
export type RegisterBusyStartSettle = (settle: (() => void) | null) => void;
|
|
3
|
+
export declare const BusyStartSettleContext: import("react").Context<RegisterBusyStartSettle | null>;
|
|
4
|
+
//# sourceMappingURL=busyStartSettle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"busyStartSettle.d.ts","sourceRoot":"","sources":["../../src/CommandPalette/busyStartSettle.ts"],"names":[],"mappings":"AAoBA,iFAAiF;AACjF,MAAM,MAAM,uBAAuB,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;AAE5E,eAAO,MAAM,sBAAsB,yDACkB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
'use client';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @file busyStartSettle.ts
|
|
7
|
+
* @input The palette's registration for its input's busy-start settle function
|
|
8
|
+
* @output Context the input uses to register that function
|
|
9
|
+
* @position Package-internal; not exported from the package entry point
|
|
10
|
+
*
|
|
11
|
+
* The input owns the search's busy start; the palette is the only thing that
|
|
12
|
+
* knows when a search's outcome is about to be announced, and so when a busy
|
|
13
|
+
* start not yet announced has to be dropped (`spec:AST-086` FR8). A context
|
|
14
|
+
* rather than a member of `CommandPaletteContextValue`, which is exported:
|
|
15
|
+
* this module is not exported from `index.ts`, so the seam stays closed by
|
|
16
|
+
* module boundary.
|
|
17
|
+
*/
|
|
18
|
+
import { createContext } from 'react';
|
|
19
|
+
|
|
20
|
+
/** Registers the input's settle function, or `null` when the input goes away. */
|
|
21
|
+
|
|
22
|
+
export const BusyStartSettleContext = /*#__PURE__*/createContext(null);
|
|
23
|
+
BusyStartSettleContext.displayName = 'BusyStartSettleContext';
|
|
@@ -26,7 +26,7 @@ export type ComplexSelectorSize = 'sm' | 'md' | 'lg';
|
|
|
26
26
|
* Spread them onto that control: it becomes the popup's anchor, the element
|
|
27
27
|
* focus returns to, and the control that announces the popup's state.
|
|
28
28
|
*/
|
|
29
|
-
export interface ComplexSelectorRenderTriggerProps extends Omit<FieldInputBaseProps, keyof FieldPartStyleProps | 'id' | 'onClick' | 'onKeyDown' | 'aria-haspopup' | 'aria-expanded' | 'aria-controls' | 'aria-busy'> {
|
|
29
|
+
export interface ComplexSelectorRenderTriggerProps extends Omit<FieldInputBaseProps, keyof FieldPartStyleProps | 'id' | 'onClick' | 'onKeyDown' | 'role' | 'aria-label' | 'aria-haspopup' | 'aria-expanded' | 'aria-controls' | 'aria-busy' | 'aria-required' | 'aria-disabled'> {
|
|
30
30
|
/**
|
|
31
31
|
* Attaches the control as the popup's anchor and focus-return target, and
|
|
32
32
|
* forwards it to the selector's own `ref`.
|
|
@@ -41,6 +41,24 @@ export interface ComplexSelectorRenderTriggerProps extends Omit<FieldInputBasePr
|
|
|
41
41
|
'aria-expanded': boolean;
|
|
42
42
|
'aria-controls': string;
|
|
43
43
|
'aria-busy': boolean | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* The control is the selector's field: a combobox whose popup is a dialog,
|
|
46
|
+
* as on the built-in trigger.
|
|
47
|
+
*/
|
|
48
|
+
role: 'combobox';
|
|
49
|
+
/**
|
|
50
|
+
* The field's `label`, unless the selector was given `aria-label` or
|
|
51
|
+
* `aria-labelledby`: a combobox takes no name from its content, so the
|
|
52
|
+
* label names the control as it names the built-in trigger.
|
|
53
|
+
*/
|
|
54
|
+
'aria-label': string | undefined;
|
|
55
|
+
/** `'true'` when the field is required. */
|
|
56
|
+
'aria-required': 'true' | undefined;
|
|
57
|
+
/**
|
|
58
|
+
* `'true'` when the selector is disabled. The control keeps its tab stop
|
|
59
|
+
* and the popup does not open (`spec:AST-085`).
|
|
60
|
+
*/
|
|
61
|
+
'aria-disabled': 'true' | undefined;
|
|
44
62
|
}
|
|
45
63
|
export interface ComplexSelectorRenderState {
|
|
46
64
|
/** Whether the selector surface is open. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComplexSelector.d.ts","sourceRoot":"","sources":["../../src/ComplexSelector/ComplexSelector.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,EAOZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAA4B,KAAK,kBAAkB,EAAC,MAAM,UAAU,CAAC;AAC5E,OAAO,EAAuB,KAAK,QAAQ,EAAC,MAAM,SAAS,CAAC;AAI5D,OAAO,KAAK,EAAC,cAAc,EAAE,cAAc,EAAC,MAAM,mBAAmB,CAAC;AAmBtE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAwK9C,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,WAAW,GAAG,OAAO,CAAC;AAErE,MAAM,MAAM,mBAAmB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAMrD;;;;;GAKG;AACH,MAAM,WAAW,iCAAkC,SAAQ,IAAI,CAC7D,mBAAmB,EACjB,MAAM,mBAAmB,GACzB,IAAI,GACJ,SAAS,GACT,WAAW,GACX,eAAe,GACf,eAAe,GACf,eAAe,GACf,WAAW,
|
|
1
|
+
{"version":3,"file":"ComplexSelector.d.ts","sourceRoot":"","sources":["../../src/ComplexSelector/ComplexSelector.tsx"],"names":[],"mappings":"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"}
|
|
@@ -413,12 +413,23 @@ export function ComplexSelector({
|
|
|
413
413
|
id: triggerId,
|
|
414
414
|
// This path never forwarded caller handlers before, so the newly
|
|
415
415
|
// forwarded ones compose component first and cannot cancel opening.
|
|
416
|
-
|
|
417
|
-
|
|
416
|
+
// A disabled control keeps its tab stop but invokes no callback
|
|
417
|
+
// (`spec:AST-085` FR2), as on the built-in trigger.
|
|
418
|
+
onClick: isDisabled ? swallowDisabledPress : composeEventHandlers(handleTriggerClick, onClickProp),
|
|
419
|
+
onKeyDown: isDisabled ? handleTriggerKeyDown : composeEventHandlers(handleTriggerKeyDown, onKeyDownProp),
|
|
420
|
+
// The caller's control is the field, so it carries the field's role
|
|
421
|
+
// and state as the built-in trigger does.
|
|
422
|
+
role: 'combobox',
|
|
423
|
+
// A combobox takes no name from its content, so the field's label
|
|
424
|
+
// names the control, as it names the built-in trigger and the popup.
|
|
425
|
+
// A name passed to the selector wins.
|
|
426
|
+
'aria-label': rest['aria-label'] ?? (rest['aria-labelledby'] != null ? undefined : label),
|
|
418
427
|
'aria-haspopup': 'dialog',
|
|
419
428
|
'aria-expanded': isOpen,
|
|
420
429
|
'aria-controls': contentId,
|
|
421
|
-
'aria-busy': isBusy || undefined
|
|
430
|
+
'aria-busy': isBusy || undefined,
|
|
431
|
+
'aria-required': isEffectivelyRequired ? 'true' : undefined,
|
|
432
|
+
'aria-disabled': isDisabled ? 'true' : undefined
|
|
422
433
|
};
|
|
423
434
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
424
435
|
children: [renderTrigger(triggerProps), popup]
|
|
@@ -443,7 +454,11 @@ export function ComplexSelector({
|
|
|
443
454
|
...rest,
|
|
444
455
|
ref: triggerButtonRef,
|
|
445
456
|
id: triggerId,
|
|
446
|
-
type: "button"
|
|
457
|
+
type: "button"
|
|
458
|
+
// The trigger is the field's control: a combobox whose popup is a
|
|
459
|
+
// dialog, so required and disabled state are valid on it.
|
|
460
|
+
,
|
|
461
|
+
role: "combobox",
|
|
447
462
|
"aria-haspopup": "dialog",
|
|
448
463
|
"aria-expanded": isOpen,
|
|
449
464
|
"aria-controls": contentId
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Wheel.d.ts","sourceRoot":"","sources":["../../src/DateInput/Wheel.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Wheel.d.ts","sourceRoot":"","sources":["../../src/DateInput/Wheel.tsx"],"names":[],"mappings":"AA8MA,MAAM,WAAW,WAAW;IAC1B,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IACpC,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,KAAK,CAAC,EACpB,KAAK,EACL,OAAO,EACP,KAAK,EACL,QAAQ,EACR,QAAe,GAChB,EAAE,UAAU,+BAgOZ;yBAtOe,KAAK"}
|
package/dist/DateInput/Wheel.js
CHANGED
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
* (role="menuitemradio"). The row owns the role and aria-checked; there is no
|
|
9
9
|
* nested native <input> (per the WAI-ARIA menuitemradio pattern). Selection
|
|
10
10
|
* state + onChange come from DropdownMenuRadioGroupContext. Keyboard nav +
|
|
11
|
-
* Enter/Space activation come from the parent DropdownMenu.
|
|
11
|
+
* Enter/Space activation come from the parent DropdownMenu. Caller onClick and
|
|
12
|
+
* onPointerMove run after the row's own selection and hover focus.
|
|
12
13
|
*
|
|
13
14
|
* The round radio visual is the shared radio indicator, decorative
|
|
14
15
|
* (aria-hidden) — the row owns the checked state, and menu radios pick up the
|
|
@@ -39,9 +40,9 @@ export interface DropdownMenuRadioItemProps extends Omit<BaseProps, 'role' | 'ar
|
|
|
39
40
|
*/
|
|
40
41
|
icon?: ReactNode | IconType;
|
|
41
42
|
/**
|
|
42
|
-
* Whether this individual radio item is disabled. Disabled items
|
|
43
|
-
*
|
|
44
|
-
*
|
|
43
|
+
* Whether this individual radio item is disabled. Disabled items expose
|
|
44
|
+
* `aria-disabled`, block selection, and are currently skipped by
|
|
45
|
+
* DropdownMenu arrow-key navigation.
|
|
45
46
|
* @default false
|
|
46
47
|
*/
|
|
47
48
|
isDisabled?: boolean;
|
|
@@ -56,6 +57,10 @@ export interface DropdownMenuRadioItemProps extends Omit<BaseProps, 'role' | 'ar
|
|
|
56
57
|
/**
|
|
57
58
|
* A single option in a DropdownMenuRadioGroup (role="menuitemradio").
|
|
58
59
|
*
|
|
60
|
+
* Consumer click and pointer-move handlers compose after the row's own
|
|
61
|
+
* selection and hover-focus behavior; disabled activation stops before the
|
|
62
|
+
* consumer click handler.
|
|
63
|
+
*
|
|
59
64
|
* @example
|
|
60
65
|
* ```
|
|
61
66
|
* <DropdownMenuRadioGroup value={sort} onChange={setSort} label="Sort by">
|
|
@@ -64,7 +69,7 @@ export interface DropdownMenuRadioItemProps extends Omit<BaseProps, 'role' | 'ar
|
|
|
64
69
|
* </DropdownMenuRadioGroup>
|
|
65
70
|
* ```
|
|
66
71
|
*/
|
|
67
|
-
export declare function DropdownMenuRadioItem({ value, label, description, icon, isDisabled, endContent, xstyle, className, style, ...rest }: DropdownMenuRadioItemProps): import("react").JSX.Element;
|
|
72
|
+
export declare function DropdownMenuRadioItem({ value, label, description, icon, isDisabled, endContent, xstyle, className, style, onClick, onPointerMove, ...rest }: DropdownMenuRadioItemProps): import("react").JSX.Element;
|
|
68
73
|
export declare namespace DropdownMenuRadioItem {
|
|
69
74
|
var displayName: string;
|
|
70
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownMenuRadioItem.d.ts","sourceRoot":"","sources":["../../src/DropdownMenu/DropdownMenuRadioItem.tsx"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"DropdownMenuRadioItem.d.ts","sourceRoot":"","sources":["../../src/DropdownMenu/DropdownMenuRadioItem.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,EAAiB,KAAK,QAAQ,EAAC,MAAM,SAAS,CAAC;AAOtD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA4C5C,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CACtD,SAAS,EACT,MAAM,GAAG,cAAc,GAAG,UAAU,CACrC;IACC;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,EAAE,SAAS,CAAC;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC5B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,mFAAmF;IACnF,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;CAC9B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,KAAK,EACL,WAAW,EACX,IAAI,EACJ,UAAkB,EAClB,UAAU,EACV,MAAM,EACN,SAAS,EACT,KAAK,EACL,OAAO,EACP,aAAa,EACb,GAAG,IAAI,EACR,EAAE,0BAA0B,+BAuE5B;yBApFe,qBAAqB"}
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
* (role="menuitemradio"). The row owns the role and aria-checked; there is no
|
|
13
13
|
* nested native <input> (per the WAI-ARIA menuitemradio pattern). Selection
|
|
14
14
|
* state + onChange come from DropdownMenuRadioGroupContext. Keyboard nav +
|
|
15
|
-
* Enter/Space activation come from the parent DropdownMenu.
|
|
15
|
+
* Enter/Space activation come from the parent DropdownMenu. Caller onClick and
|
|
16
|
+
* onPointerMove run after the row's own selection and hover focus.
|
|
16
17
|
*
|
|
17
18
|
* The round radio visual is the shared radio indicator, decorative
|
|
18
19
|
* (aria-hidden) — the row owns the checked state, and menu radios pick up the
|
|
@@ -29,7 +30,7 @@ import { useDropdownMenuContext } from "./DropdownMenuContext.js";
|
|
|
29
30
|
import { focusMenuItemOnHover } from "./menuItemHover.js";
|
|
30
31
|
import "../theme/tokens.stylex.js";
|
|
31
32
|
import { colorVars, spacingVars } from "../theme/tokens.stylex.js";
|
|
32
|
-
import { mergeProps, themeProps } from "../utils/index.js";
|
|
33
|
+
import { composeEventHandlers, mergeProps, themeProps } from "../utils/index.js";
|
|
33
34
|
import { useDropdownMenuRadioGroupContext } from "./DropdownMenuContext.js";
|
|
34
35
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
35
36
|
const styles = {
|
|
@@ -61,6 +62,10 @@ const styles = {
|
|
|
61
62
|
/**
|
|
62
63
|
* A single option in a DropdownMenuRadioGroup (role="menuitemradio").
|
|
63
64
|
*
|
|
65
|
+
* Consumer click and pointer-move handlers compose after the row's own
|
|
66
|
+
* selection and hover-focus behavior; disabled activation stops before the
|
|
67
|
+
* consumer click handler.
|
|
68
|
+
*
|
|
64
69
|
* @example
|
|
65
70
|
* ```
|
|
66
71
|
* <DropdownMenuRadioGroup value={sort} onChange={setSort} label="Sort by">
|
|
@@ -79,6 +84,8 @@ export function DropdownMenuRadioItem({
|
|
|
79
84
|
xstyle,
|
|
80
85
|
className,
|
|
81
86
|
style,
|
|
87
|
+
onClick,
|
|
88
|
+
onPointerMove,
|
|
82
89
|
...rest
|
|
83
90
|
}) {
|
|
84
91
|
const menuCtx = useDropdownMenuContext();
|
|
@@ -90,7 +97,7 @@ export function DropdownMenuRadioItem({
|
|
|
90
97
|
const controlSize = menuSize === 'sm' ? 'sm' : 'md';
|
|
91
98
|
const isChecked = groupCtx.value === value;
|
|
92
99
|
const RadioControl = useIndicator('radio');
|
|
93
|
-
const handleClick = useCallback(
|
|
100
|
+
const handleClick = useCallback(event => {
|
|
94
101
|
if (isDisabled) {
|
|
95
102
|
return;
|
|
96
103
|
}
|
|
@@ -98,14 +105,15 @@ export function DropdownMenuRadioItem({
|
|
|
98
105
|
if (groupCtx.hasCloseOnSelect) {
|
|
99
106
|
menuCtx?.closeMenu();
|
|
100
107
|
}
|
|
101
|
-
|
|
108
|
+
onClick?.(event);
|
|
109
|
+
}, [isDisabled, groupCtx, value, menuCtx, onClick]);
|
|
102
110
|
const handlePointerMove = useCallback(e => focusMenuItemOnHover(e, isDisabled), [isDisabled]);
|
|
103
111
|
return /*#__PURE__*/_jsx(Item, {
|
|
104
112
|
...rest,
|
|
105
113
|
role: "menuitemradio",
|
|
106
114
|
"aria-checked": isChecked,
|
|
107
115
|
tabIndex: isDisabled ? undefined : -1,
|
|
108
|
-
onPointerMove: handlePointerMove,
|
|
116
|
+
onPointerMove: composeEventHandlers(handlePointerMove, onPointerMove),
|
|
109
117
|
marker:
|
|
110
118
|
/*#__PURE__*/
|
|
111
119
|
// No wrapper — see DropdownMenuCheckboxItem: the target belongs on the
|
|
@@ -36,9 +36,6 @@
|
|
|
36
36
|
* the row. The list keeps this level's own roving focus, typeahead and press
|
|
37
37
|
* model, so nothing beside the row needs to know.
|
|
38
38
|
*
|
|
39
|
-
* Prior art: legacy internal XDS `XDSDropdownSubMenuItem` (APG menubar-
|
|
40
|
-
* navigation submenu). This re-expresses the same contract on Astryx primitives.
|
|
41
|
-
*
|
|
42
39
|
* SYNC: When modified, update these files to stay in sync:
|
|
43
40
|
* - /packages/core/src/DropdownMenu/DropdownMenuSubMenu.doc.mjs
|
|
44
41
|
* - /packages/core/src/DropdownMenu/DropdownMenuSubMenu.test.tsx
|
|
@@ -65,7 +62,7 @@ interface DropdownMenuSubMenuBaseProps extends Omit<BaseProps, 'role' | 'tabInde
|
|
|
65
62
|
isDisabled?: boolean;
|
|
66
63
|
/**
|
|
67
64
|
* Show a spinner in place of the caret, e.g. while a lazy submenu's children
|
|
68
|
-
* are loading.
|
|
65
|
+
* are loading.
|
|
69
66
|
* @default false
|
|
70
67
|
*/
|
|
71
68
|
hasSpinner?: boolean;
|
|
@@ -82,7 +79,7 @@ interface DropdownMenuSubMenuBaseProps extends Omit<BaseProps, 'role' | 'tabInde
|
|
|
82
79
|
* box; `adaptive` drills in when a finger opened the menu — a
|
|
83
80
|
* `(pointer: coarse)` device, decided when the menu opened — and flies out
|
|
84
81
|
* otherwise. Drill-in needs a `DropdownMenu` or `ContextMenu` root.
|
|
85
|
-
*
|
|
82
|
+
* @default 'adaptive'
|
|
86
83
|
*/
|
|
87
84
|
presentation?: DropdownMenuSubMenuPresentation;
|
|
88
85
|
/**
|
|
@@ -104,7 +101,10 @@ interface DropdownMenuSubMenuBaseProps extends Omit<BaseProps, 'role' | 'tabInde
|
|
|
104
101
|
footer?: ReactNode;
|
|
105
102
|
/** Test id for the trigger row. */
|
|
106
103
|
'data-testid'?: string;
|
|
107
|
-
/**
|
|
104
|
+
/**
|
|
105
|
+
* Test id for the sub-menu's own `role="menu"` element: the flyout, or the
|
|
106
|
+
* drilled-in list on a phone.
|
|
107
|
+
*/
|
|
108
108
|
menuDataTestId?: string;
|
|
109
109
|
/**
|
|
110
110
|
* Ref forwarded to the trigger row — the element carrying `role="menuitem"`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownMenuSubMenu.d.ts","sourceRoot":"","sources":["../../src/DropdownMenu/DropdownMenuSubMenu.tsx"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"DropdownMenuSubMenu.d.ts","sourceRoot":"","sources":["../../src/DropdownMenu/DropdownMenuSubMenu.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,OAAO,KAAK,EAAE,EASZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,EAAuB,KAAK,QAAQ,EAAC,MAAM,SAAS,CAAC;AAyC5D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA6N5C,MAAM,MAAM,+BAA+B,GACzC,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC;AAErC,UAAU,4BAA6B,SAAQ,IAAI,CACjD,SAAS,EACT,MAAM,GAAG,UAAU,CACpB;IACC,2DAA2D;IAC3D,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC5B,8CAA8C;IAC9C,KAAK,EAAE,SAAS,CAAC;IACjB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,8CAA8C;IAC9C,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,+BAA+B,CAAC;IAC/C;;;;;;;;;;OAUG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,wBAAyB,SAAQ,4BAA4B;IAC5E;;;;;;;;OAQG;IACH,QAAQ,EAAE,SAAS,CAAC;CACrB;AA6CD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,SAAS,CAg5BX;yBAl5Be,mBAAmB"}
|
|
@@ -40,9 +40,6 @@
|
|
|
40
40
|
* the row. The list keeps this level's own roving focus, typeahead and press
|
|
41
41
|
* model, so nothing beside the row needs to know.
|
|
42
42
|
*
|
|
43
|
-
* Prior art: legacy internal XDS `XDSDropdownSubMenuItem` (APG menubar-
|
|
44
|
-
* navigation submenu). This re-expresses the same contract on Astryx primitives.
|
|
45
|
-
*
|
|
46
43
|
* SYNC: When modified, update these files to stay in sync:
|
|
47
44
|
* - /packages/core/src/DropdownMenu/DropdownMenuSubMenu.doc.mjs
|
|
48
45
|
* - /packages/core/src/DropdownMenu/DropdownMenuSubMenu.test.tsx
|
|
@@ -7,6 +7,9 @@
|
|
|
7
7
|
* highlight source. Mouse hover moves focus onto the pointed-at item so the
|
|
8
8
|
* one focus highlight follows the pointer — instead of a separate `:hover`
|
|
9
9
|
* background leaving the keyboard-focused item highlighted at the same time.
|
|
10
|
+
* That focus follows the last input (`architecture:interaction-modality` INV1):
|
|
11
|
+
* after a pointer press it does not match `:focus-visible`, so a keyboard-only
|
|
12
|
+
* focus style does not paint on the row under the mouse.
|
|
10
13
|
*
|
|
11
14
|
* SYNC: When modified, update the item components that use it:
|
|
12
15
|
* - /packages/core/src/DropdownMenu/DropdownMenuItem.tsx
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menuItemHover.d.ts","sourceRoot":"","sources":["../../src/DropdownMenu/menuItemHover.ts"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"menuItemHover.d.ts","sourceRoot":"","sources":["../../src/DropdownMenu/menuItemHover.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,OAAO,CAAC;AAGxC;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,EAC5B,UAAU,CAAC,EAAE,OAAO,GACnB,IAAI,CAoBN"}
|
|
@@ -11,6 +11,9 @@
|
|
|
11
11
|
* highlight source. Mouse hover moves focus onto the pointed-at item so the
|
|
12
12
|
* one focus highlight follows the pointer — instead of a separate `:hover`
|
|
13
13
|
* background leaving the keyboard-focused item highlighted at the same time.
|
|
14
|
+
* That focus follows the last input (`architecture:interaction-modality` INV1):
|
|
15
|
+
* after a pointer press it does not match `:focus-visible`, so a keyboard-only
|
|
16
|
+
* focus style does not paint on the row under the mouse.
|
|
14
17
|
*
|
|
15
18
|
* SYNC: When modified, update the item components that use it:
|
|
16
19
|
* - /packages/core/src/DropdownMenu/DropdownMenuItem.tsx
|
|
@@ -18,6 +21,8 @@
|
|
|
18
21
|
* - /packages/core/src/DropdownMenu/DropdownMenuRadioItem.tsx
|
|
19
22
|
* - /packages/core/src/DropdownMenu/DropdownMenuSubMenu.tsx
|
|
20
23
|
*/
|
|
24
|
+
import { focusForLastInput } from "../utils/focusReturn.js";
|
|
25
|
+
|
|
21
26
|
/**
|
|
22
27
|
* Move focus to a menu item as the pointer moves over it, so hover and
|
|
23
28
|
* keyboard navigation share a single focus-driven highlight. Only reacts to a
|
|
@@ -33,7 +38,15 @@ export function focusMenuItemOnHover(e, isDisabled) {
|
|
|
33
38
|
// stationary pointer, whose next pointerenter focuses it again — a
|
|
34
39
|
// runaway auto-scroll loop. Keyboard navigation scrolls via its own
|
|
35
40
|
// highlight handling; hover must never scroll.
|
|
36
|
-
|
|
41
|
+
// A plain focus() inherits :focus-visible from the element focused before
|
|
42
|
+
// it (the menu after a pointer open), so after a pointer press it is moved
|
|
43
|
+
// with the browser's focusVisible option instead. After a key press the
|
|
44
|
+
// keyboard is the last input and the indicator stays. A browser without
|
|
45
|
+
// the option (Chrome and Edge before 145, Safari before 18.4) ignores it,
|
|
46
|
+
// and the row may then match :focus-visible as it did before.
|
|
47
|
+
// The menu activates the modality tracking this reads (its press model,
|
|
48
|
+
// or the Breadcrumbs menu trigger).
|
|
49
|
+
focusForLastInput(el, {
|
|
37
50
|
preventScroll: true
|
|
38
51
|
});
|
|
39
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PanelSearchInput.d.ts","sourceRoot":"","sources":["../../src/Field/PanelSearchInput.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAwB,KAAK,GAAG,EAAC,MAAM,OAAO,CAAC;AAkBtD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAgF5C,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CACjD,SAAS,CAAC,gBAAgB,CAAC,EAC3B,UAAU,CACX;IACC,iEAAiE;IACjE,GAAG,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAE5B;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IAEnB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IAEd,kEAAkE;IAClE,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvC,wCAAwC;IACxC,SAAS,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAEzD,0EAA0E;IAC1E,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAEpD,yEAAyE;IACzE,MAAM,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAEnD;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;CACjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,GAAG,EACH,KAAK,EACL,UAAU,EACV,WAAW,EACX,KAAK,EACL,aAAa,EACb,SAAS,EACT,OAAO,EACP,MAAM,EACN,kBAAkB,EAClB,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,qBAAqB,+
|
|
1
|
+
{"version":3,"file":"PanelSearchInput.d.ts","sourceRoot":"","sources":["../../src/Field/PanelSearchInput.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAwB,KAAK,GAAG,EAAC,MAAM,OAAO,CAAC;AAkBtD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAgF5C,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CACjD,SAAS,CAAC,gBAAgB,CAAC,EAC3B,UAAU,CACX;IACC,iEAAiE;IACjE,GAAG,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAE5B;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IAEnB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IAEd,kEAAkE;IAClE,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvC,wCAAwC;IACxC,SAAS,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAEzD,0EAA0E;IAC1E,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAEpD,yEAAyE;IACzE,MAAM,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAEnD;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;CACjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,GAAG,EACH,KAAK,EACL,UAAU,EACV,WAAW,EACX,KAAK,EACL,aAAa,EACb,SAAS,EACT,OAAO,EACP,MAAM,EACN,kBAAkB,EAClB,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,qBAAqB,+BA4EvB;yBA3Fe,gBAAgB"}
|