@astryxdesign/core 0.3.0-canary.4c528d0 → 0.3.0-canary.52a0e0e
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/Avatar/Avatar.d.ts.map +1 -1
- package/dist/Avatar/Avatar.js +2 -10
- package/dist/AvatarGroup/AvatarGroupOverflow.d.ts.map +1 -1
- package/dist/AvatarGroup/AvatarGroupOverflow.js +2 -3
- package/dist/Button/Button.d.ts.map +1 -1
- package/dist/Button/Button.js +11 -15
- package/dist/Calendar/Calendar.d.ts.map +1 -1
- package/dist/Calendar/Calendar.js +2 -1
- package/dist/Calendar/styles.d.ts +0 -2
- package/dist/Calendar/styles.d.ts.map +1 -1
- package/dist/Calendar/styles.js +0 -2
- package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
- package/dist/ClickableCard/ClickableCard.js +3 -11
- package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
- package/dist/CodeBlock/CodeBlock.js +19 -8
- package/dist/Collapsible/Collapsible.d.ts.map +1 -1
- package/dist/Collapsible/Collapsible.js +2 -3
- package/dist/Dialog/Dialog.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +4 -4
- package/dist/DropdownMenu/DropdownMenu.d.ts +5 -0
- package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
- package/dist/DropdownMenu/DropdownMenu.js +46 -7
- package/dist/Item/Item.d.ts.map +1 -1
- package/dist/Item/Item.js +2 -6
- package/dist/Link/Link.d.ts.map +1 -1
- package/dist/Link/Link.js +4 -5
- package/dist/Outline/Outline.d.ts.map +1 -1
- package/dist/Outline/Outline.js +2 -3
- package/dist/Pagination/Pagination.d.ts.map +1 -1
- package/dist/Pagination/Pagination.js +30 -26
- package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
- package/dist/Resizable/ResizeHandle.js +2 -3
- package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.js +2 -3
- package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
- package/dist/SelectableCard/SelectableCard.js +3 -11
- package/dist/TabList/Tab.d.ts.map +1 -1
- package/dist/TabList/Tab.js +2 -3
- package/dist/TabList/TabMenu.d.ts.map +1 -1
- package/dist/TabList/TabMenu.js +27 -11
- package/dist/Table/BaseTable.d.ts.map +1 -1
- package/dist/Table/BaseTable.js +8 -0
- package/dist/Table/index.d.ts +1 -1
- package/dist/Table/index.d.ts.map +1 -1
- package/dist/Table/index.js +1 -1
- package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts +1 -1
- package/dist/Table/plugins/groupedRows/useTableGroupedRows.js +1 -1
- package/dist/Table/plugins/rowExpansion/index.d.ts +1 -1
- package/dist/Table/plugins/rowExpansion/index.d.ts.map +1 -1
- package/dist/Table/plugins/rowExpansion/index.js +1 -1
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +41 -76
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
- package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +88 -333
- package/dist/Table/plugins/sortable/useTableSortable.d.ts.map +1 -1
- package/dist/Table/plugins/sortable/useTableSortable.js +23 -4
- package/dist/Table/types.d.ts +6 -0
- package/dist/Table/types.d.ts.map +1 -1
- package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
- package/dist/Thumbnail/Thumbnail.js +32 -26
- package/dist/Token/Token.d.ts.map +1 -1
- package/dist/Token/Token.js +20 -11
- package/dist/TopNav/TopNavItem.d.ts.map +1 -1
- package/dist/TopNav/TopNavItem.js +3 -9
- package/dist/TopNav/TopNavMegaMenu.d.ts.map +1 -1
- package/dist/TopNav/TopNavMegaMenu.js +27 -8
- package/dist/TopNav/TopNavMegaMenuItem.d.ts.map +1 -1
- package/dist/TopNav/TopNavMegaMenuItem.js +22 -3
- package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
- package/dist/TopNav/TopNavMenu.js +43 -11
- package/dist/TreeList/TreeListItem.d.ts.map +1 -1
- package/dist/TreeList/TreeListItem.js +12 -10
- package/dist/astryx.css +12 -10
- package/dist/astryx.umd.js +48 -48
- package/dist/astryx.umd.js.map +4 -4
- package/dist/utils/focusOutline.stylex.d.ts +74 -0
- package/dist/utils/focusOutline.stylex.d.ts.map +1 -0
- package/dist/utils/focusOutline.stylex.js +95 -0
- package/package.json +2 -2
- package/src/Avatar/Avatar.tsx +2 -28
- package/src/AvatarGroup/AvatarGroupOverflow.tsx +2 -9
- package/src/Button/Button.tsx +21 -41
- package/src/Calendar/Calendar.tsx +2 -1
- package/src/Calendar/styles.ts +0 -8
- package/src/ClickableCard/ClickableCard.tsx +6 -11
- package/src/CodeBlock/CodeBlock.tsx +2 -9
- package/src/Collapsible/Collapsible.tsx +2 -9
- package/src/Dialog/Dialog.tsx +2 -9
- package/src/DropdownMenu/DropdownMenu.test.tsx +193 -4
- package/src/DropdownMenu/DropdownMenu.tsx +74 -30
- package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +44 -14
- package/src/Item/Item.tsx +2 -12
- package/src/Link/Link.tsx +4 -11
- package/src/MoreMenu/MoreMenu.test.tsx +28 -1
- package/src/Outline/Outline.tsx +2 -5
- package/src/Pagination/Pagination.tsx +2 -9
- package/src/Resizable/ResizeHandle.tsx +2 -9
- package/src/SegmentedControl/SegmentedControlItem.tsx +2 -9
- package/src/SelectableCard/SelectableCard.tsx +4 -9
- package/src/TabList/Tab.tsx +2 -9
- package/src/TabList/TabMenu.tsx +3 -14
- package/src/Table/BaseTable.tsx +11 -0
- package/src/Table/index.ts +1 -4
- package/src/Table/plugins/groupedRows/useTableGroupedRows.tsx +1 -1
- package/src/Table/plugins/rowExpansion/index.ts +1 -4
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.test.tsx +125 -175
- package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +112 -474
- package/src/Table/plugins/sortable/useTableSortable.tsx +2 -6
- package/src/Table/types.ts +6 -0
- package/src/Table/useTableGroupedRows.doc.mjs +1 -1
- package/src/Table/useTableRowExpansion.doc.mjs +43 -66
- package/src/Thumbnail/Thumbnail.tsx +2 -9
- package/src/Token/Token.tsx +5 -28
- package/src/TopNav/TopNavItem.tsx +3 -21
- package/src/TopNav/TopNavMegaMenu.tsx +5 -9
- package/src/TopNav/TopNavMegaMenuItem.tsx +2 -9
- package/src/TopNav/TopNavMenu.tsx +6 -18
- package/src/TreeList/TreeList.test.tsx +7 -7
- package/src/TreeList/TreeListItem.tsx +18 -33
- package/src/utils/focusOutline.stylex.ts +128 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../src/Avatar/Avatar.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAoC,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AACxE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../src/Avatar/Avatar.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAoC,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AACxE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAe5C,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;AA4BrD;;;;;;GAMG;AACH,KAAK,eAAe,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEzD;;GAEG;AACH,KAAK,iBAAiB,GACpB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEzE;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,iBAAiB,CAAC;AAE7D;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAgBpD;AA4HD,MAAM,WAAW,WAAY,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC5D,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,EAAE,CAAC,EAAE,iBAAiB,CAAC;IACvB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;CAChD;AA6ED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,MAAM,CAAC,EACrB,GAAG,EACH,aAAa,EAAE,MAAM,EACrB,WAAW,EACX,IAAI,EACJ,IAAW,EACX,GAAG,EACH,MAAM,EACN,OAAc,EACd,IAAI,EACJ,EAAE,EACF,MAAM,EACN,GAAG,EACH,OAAO,EACP,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,WAAW,+BA0Pb;yBA7Qe,MAAM"}
|
package/dist/Avatar/Avatar.js
CHANGED
|
@@ -25,6 +25,7 @@ import { AvatarSizeContext } from "./AvatarSizeContext.js";
|
|
|
25
25
|
import { useAvatarGroup } from "../AvatarGroup/AvatarGroupContext.js";
|
|
26
26
|
import { mergeProps, mergeRefs } from "../utils/index.js";
|
|
27
27
|
import { themeProps } from "../utils/themeProps.js";
|
|
28
|
+
import { focusOutlineProps } from "../utils/focusOutline.stylex.js";
|
|
28
29
|
import { useTooltip } from "../Tooltip/useTooltip.js";
|
|
29
30
|
import { useLinkComponent } from "../Link/useLinkComponent.js";
|
|
30
31
|
import { useTranslator } from "../i18n/index.js";
|
|
@@ -130,11 +131,6 @@ const styles = {
|
|
|
130
131
|
kVAEAm: "x10l6tqk",
|
|
131
132
|
$$css: true
|
|
132
133
|
},
|
|
133
|
-
focusable: {
|
|
134
|
-
kI3sdo: "x17nn4n9",
|
|
135
|
-
kInvED: "x1wfwxd8 x7s97pk",
|
|
136
|
-
$$css: true
|
|
137
|
-
},
|
|
138
134
|
interactive: {
|
|
139
135
|
kysU6D: "xjyslct",
|
|
140
136
|
kmVPX3: "x1717udv",
|
|
@@ -147,10 +143,6 @@ const styles = {
|
|
|
147
143
|
kybGjl: "x1hl2dhg",
|
|
148
144
|
kkrTdU: "x1ypdohk",
|
|
149
145
|
kaIpWk: "xjspbzw",
|
|
150
|
-
kMeerF: "x1k57tk5 x784prv",
|
|
151
|
-
k3XXqK: "x1t137rt x9v5kkp",
|
|
152
|
-
kjBf7l: "xzunyri",
|
|
153
|
-
kInvED: "x1wfwxd8 x7s97pk",
|
|
154
146
|
$$css: true
|
|
155
147
|
}
|
|
156
148
|
};
|
|
@@ -445,7 +437,7 @@ export function Avatar({
|
|
|
445
437
|
// `<a>`/`<button>` and the static `<div>` carry the exact same box.
|
|
446
438
|
const rootStylexProps = mergeProps(themeProps('avatar', {
|
|
447
439
|
size: resolvedSize
|
|
448
|
-
}),
|
|
440
|
+
}), focusOutlineProps.focusVisible(styles.wrapper, isInteractive && styles.interactive, avatarGroup && groupStyles.ring, avatarGroup && groupStyles.overlap, avatarGroup && groupDynamicStyles.overlap(-avatarGroup.overlap), xstyle), className, style);
|
|
449
441
|
let rootElement;
|
|
450
442
|
|
|
451
443
|
// `props` is typed for the default `<div>` root (its event handlers are
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AvatarGroupOverflow.d.ts","sourceRoot":"","sources":["../../src/AvatarGroup/AvatarGroupOverflow.tsx"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,EAAC,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAW5C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"AvatarGroupOverflow.d.ts","sourceRoot":"","sources":["../../src/AvatarGroup/AvatarGroupOverflow.tsx"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,EAAC,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAW5C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAQ5C,MAAM,WAAW,wBAAyB,SAAQ,IAAI,CACpD,SAAS,CAAC,WAAW,CAAC,EACtB,SAAS,CACV;IACC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAoED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,GAAG,EACH,KAAK,EACL,OAAO,EACP,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACR,EAAE,wBAAwB,GAAG,SAAS,CA0DtC;yBAnEe,mBAAmB"}
|
|
@@ -19,6 +19,7 @@ import { colorVars, typographyVars, fontWeightVars, radiusVars, spacingVars } fr
|
|
|
19
19
|
import { mergeProps } from "../utils/index.js";
|
|
20
20
|
import { useAvatarGroup } from "./AvatarGroupContext.js";
|
|
21
21
|
import { themeProps } from "../utils/themeProps.js";
|
|
22
|
+
import { focusOutlineProps } from "../utils/focusOutline.stylex.js";
|
|
22
23
|
import { useTranslator } from "../i18n/index.js";
|
|
23
24
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
24
25
|
const BORDER_WIDTH = 2;
|
|
@@ -47,8 +48,6 @@ const styles = {
|
|
|
47
48
|
kkrTdU: "x1ypdohk",
|
|
48
49
|
k8WAf4: "xt970qd",
|
|
49
50
|
kKwaWg: "x14bno8m xbfmc0r x1nocapi",
|
|
50
|
-
kI3sdo: "x1a2a7pz x17nn4n9",
|
|
51
|
-
kInvED: "x7s97pk",
|
|
52
51
|
$$css: true
|
|
53
52
|
},
|
|
54
53
|
overlap: {
|
|
@@ -122,7 +121,7 @@ export function AvatarGroupOverflow({
|
|
|
122
121
|
...rest,
|
|
123
122
|
"aria-label": label,
|
|
124
123
|
"data-avatar-item": "",
|
|
125
|
-
...mergeProps(themeProps('avatar-group-overflow'),
|
|
124
|
+
...mergeProps(themeProps('avatar-group-overflow'), focusOutlineProps.focusVisible(styles.base, styles.button, styles.overlap, dynamicStyles.size(numericSize), dynamicStyles.fontSize(numericSize), dynamicStyles.overlap(-overlap), xstyle), className, style),
|
|
126
125
|
children: content
|
|
127
126
|
});
|
|
128
127
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/Button/Button.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAwB,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAC5D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,SAAS,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAsB3C,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/Button/Button.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAwB,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAC5D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,SAAS,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAsB3C,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAIrD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAuG9C,QAAA,MAAM,UAAU;;;;;;;;;;EAUd,CAAC;AAkFH;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,UAAU,CAAC;AAEjD,MAAM,WAAW,WAAY,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IAC/D,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnC,oDAAoD;IACpD,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACrC,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAChD,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACrD;;OAEG;IACH,WAAW,CAAC,EAAE,CACZ,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KACnC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,EAAE,CAAC,EAAE,iBAAiB,CAAC;IACvB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAqJD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,OAAqB,EACrB,IAAI,EAAE,QAAQ,EACd,IAAe,EACf,UAAkB,EAClB,SAAiB,EACjB,eAAuB,EACvB,WAAW,EACX,IAAI,EACJ,UAAkB,EAClB,KAAK,EACL,SAAkB,EAClB,QAAQ,EACR,UAAU,EACV,OAAO,EACP,IAAI,EACJ,EAAE,EACF,MAAM,EACN,GAAG,EACH,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,WAAW,GAAG,SAAS,CA6OzB;yBAtQe,MAAM"}
|
package/dist/Button/Button.js
CHANGED
|
@@ -30,6 +30,7 @@ import { useButtonGroup } from "../ButtonGroup/ButtonGroupContext.js";
|
|
|
30
30
|
import { mergeProps, mergeRefs } from "../utils/index.js";
|
|
31
31
|
import { useLinkComponent } from "../Link/useLinkComponent.js";
|
|
32
32
|
import { themeProps } from "../utils/themeProps.js";
|
|
33
|
+
import { focusOutlineProps } from "../utils/focusOutline.stylex.js";
|
|
33
34
|
import { useTranslator } from "../i18n/index.js";
|
|
34
35
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
35
36
|
/**
|
|
@@ -39,6 +40,8 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
39
40
|
*/
|
|
40
41
|
const styles = {
|
|
41
42
|
base: {
|
|
43
|
+
"--button-focus-offset": "xkzo27j",
|
|
44
|
+
kInvED: "x1wfwxd8 x13aywxo",
|
|
42
45
|
kVAEAm: "x1n2onr6",
|
|
43
46
|
k1xSpc: "x3nfvp2",
|
|
44
47
|
kGNEyG: "x6s0dn4",
|
|
@@ -178,43 +181,32 @@ const elevationStyles = {
|
|
|
178
181
|
* Variant styles using backgroundImage for layered colors
|
|
179
182
|
* Pseudo-classes are nested within properties per StyleX recommendation
|
|
180
183
|
* Overlay is stacked on top of base color using multiple linear-gradients
|
|
181
|
-
* Focus outline
|
|
184
|
+
* Focus outline is shared across variants for consistent keyboard affordance.
|
|
182
185
|
*/
|
|
183
186
|
const variants = {
|
|
184
187
|
primary: {
|
|
185
188
|
kWkggS: "x1ewilqj",
|
|
186
189
|
kMwMTN: "x17wrial",
|
|
187
190
|
kKwaWg: "x1ilzqfv xq8i9tn",
|
|
188
|
-
kI3sdo: "x17nn4n9",
|
|
189
|
-
"--button-focus-offset": "xkzo27j",
|
|
190
|
-
kInvED: "x1wfwxd8 x13aywxo",
|
|
191
191
|
$$css: true
|
|
192
192
|
},
|
|
193
193
|
secondary: {
|
|
194
194
|
kWkggS: "x17x4s8c",
|
|
195
195
|
kMwMTN: "x1tgivj0",
|
|
196
196
|
kKwaWg: "x1ilzqfv xq8i9tn",
|
|
197
|
-
kI3sdo: "x17nn4n9",
|
|
198
|
-
"--button-focus-offset": "xkzo27j",
|
|
199
|
-
kInvED: "x1wfwxd8 x13aywxo",
|
|
200
197
|
$$css: true
|
|
201
198
|
},
|
|
202
199
|
ghost: {
|
|
203
200
|
kWkggS: "xjbqb8w",
|
|
204
201
|
kMwMTN: "x1tgivj0",
|
|
205
202
|
kKwaWg: "x1ilzqfv xq8i9tn",
|
|
206
|
-
kI3sdo: "x17nn4n9",
|
|
207
|
-
"--button-focus-offset": "xkzo27j",
|
|
208
|
-
kInvED: "x1wfwxd8 x13aywxo",
|
|
209
203
|
$$css: true
|
|
210
204
|
},
|
|
211
205
|
destructive: {
|
|
212
206
|
kWkggS: "x1pjz0fi",
|
|
213
207
|
kMwMTN: "x1m024r3",
|
|
208
|
+
kjBf7l: "x1e0x2sz",
|
|
214
209
|
kKwaWg: "x1ilzqfv xq8i9tn",
|
|
215
|
-
kI3sdo: "x1p73he7",
|
|
216
|
-
"--button-focus-offset": "xkzo27j",
|
|
217
|
-
kInvED: "x1wfwxd8 x13aywxo",
|
|
218
210
|
$$css: true
|
|
219
211
|
}
|
|
220
212
|
};
|
|
@@ -442,10 +434,14 @@ export function Button({
|
|
|
442
434
|
} : null;
|
|
443
435
|
|
|
444
436
|
// Shared StyleX props for both button and link rendering
|
|
445
|
-
const sharedStylexProps =
|
|
437
|
+
const sharedStylexProps = focusOutlineProps.focusVisible(styles.base, sizeStyles[size], isIconOnly && styles.iconOnly, buttonDisabled && styles.disabled, useAriaDisabled && styles.ariaDisabled, renderAsLink && styles.link, !buttonGroup && styles.pressable, buttonGroup && (buttonGroup.orientation === 'horizontal' ? groupStyles.horizontal : groupStyles.vertical), buttonGroup && (variant === 'primary' || variant === 'destructive') && (buttonGroup.orientation === 'horizontal' ? groupStyles.onSolidHorizontal : groupStyles.onSolidVertical),
|
|
446
438
|
// Standalone floating buttons only — a grouped button's elevation is owned
|
|
447
439
|
// by the ButtonGroup so the shared surface lifts as one unit.
|
|
448
|
-
!buttonGroup && elevationStyles[elevation], width != null && dynamicStyles.width(width),
|
|
440
|
+
!buttonGroup && elevationStyles[elevation], width != null && dynamicStyles.width(width),
|
|
441
|
+
// AFTER the shared focus outline: the outline supplies width/style/offset
|
|
442
|
+
// for every variant, and `destructive` re-colors just the ring to match
|
|
443
|
+
// its own surface. Ordering is the mechanism — StyleX is last-wins.
|
|
444
|
+
variants[variant], xstyle);
|
|
449
445
|
const sharedMergedProps = mergeProps(themeProps('button', {
|
|
450
446
|
variant,
|
|
451
447
|
size
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../../src/Calendar/Calendar.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../../src/Calendar/Calendar.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA+C5C,YAAY,EACV,aAAa,EACb,SAAS,EACT,aAAa,EACb,SAAS,GACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,aAAa,EACb,SAAS,EACV,MAAM,oBAAoB,CAAC;AAK5B,+CAA+C;AAE/C,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,UAAU,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;CAC3C;AAID,UAAU,iBAAkB,SAAQ,IAAI,CACtC,SAAS,CAAC,cAAc,CAAC,EACzB,UAAU,GAAG,cAAc,CAC5B;IACC,kDAAkD;IAClD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,qDAAqD;IACrD,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACtC,+CAA+C;IAC/C,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAEvB,4CAA4C;IAC5C,GAAG,CAAC,EAAE,aAAa,CAAC;IAEpB,4CAA4C;IAC5C,GAAG,CAAC,EAAE,aAAa,CAAC;IAEpB;;;OAGG;IACH,eAAe,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC;IAEzD;;;OAGG;IACH,SAAS,CAAC,EAAE,aAAa,CAAC;IAE1B,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC;IAEvD;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;;OAIG;IACH,YAAY,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;CAC1C;AAID,UAAU,mBAAoB,SAAQ,iBAAiB;IACrD,qBAAqB;IACrB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEhB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,aAAa,CAAC;IAE7B,qCAAqC;IACrC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,IAAI,KAAK,IAAI,CAAC;CAC9D;AAED,UAAU,kBAAmB,SAAQ,iBAAiB;IACpD,qBAAqB;IACrB,IAAI,EAAE,OAAO,CAAC;IAEd,0BAA0B;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,SAAS,CAAC;IAEzB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CACvC;AAED,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG,kBAAkB,CAAC;AAMrE;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,EAAC,GAAG,EAAE,GAAG,KAAK,EAAC,EAAE,aAAa,+BA+VtD;yBA/Ve,QAAQ"}
|
|
@@ -25,6 +25,7 @@ import { useCalendarDays, useCalendarConstraints } from "./hooks/index.js";
|
|
|
25
25
|
import { calendarStyles, monthGridStyles, dayCellStyles, dayCellTheme } from "./styles.js";
|
|
26
26
|
import { plainDateFromISO, plainDateToISO, plainDateToDate, plainDateToday, plainDateSetFirstOfMonth, plainDateAddMonths, plainDateAddDays, plainDateIsBefore, plainDateIsEqual, plainDateGetWeekNumber, plainDateFormat, DATE_FORMAT_WITH_WEEKDAY, DATE_FORMAT_MONTH_YEAR } from "../utils/plainDate.js";
|
|
27
27
|
import { mergeProps, composeEventHandlers, rtlStyles } from "../utils/index.js";
|
|
28
|
+
import { focusOutlineProps } from "../utils/focusOutline.stylex.js";
|
|
28
29
|
import { computeDayCellState, computeRangeRounding, computePreviewRounding, computeDayNeighborContinuity, isEndpoint } from "./dayCellUtils.js";
|
|
29
30
|
|
|
30
31
|
// =============================================================================
|
|
@@ -768,7 +769,7 @@ function DayCell({
|
|
|
768
769
|
// `marker` mirrors the StyleX conditions below exactly, preserving
|
|
769
770
|
// the default rendering.
|
|
770
771
|
marker: markerState
|
|
771
|
-
}),
|
|
772
|
+
}), focusOutlineProps.focusVisible(dayCellStyles.day, dayCellTheme.day, isOutside && dayCellStyles.dayOutside, isOutside && dayCellTheme.dayOutside, showsTodayRing && dayCellStyles.dayToday, showsTodayRing && dayCellTheme.dayToday, showsTodayInRangeRing && dayCellStyles.dayTodayInRange, showsTodayInRangeRing && dayCellTheme.dayTodayInRange, endpoint && dayCellStyles.daySelected, endpoint && dayCellTheme.daySelected, state.effectivelyDisabled && dayCellStyles.dayDisabled, state.effectivelyDisabled && dayCellTheme.dayDisabled)),
|
|
772
773
|
children: dayNumber
|
|
773
774
|
})]
|
|
774
775
|
});
|
|
@@ -198,8 +198,6 @@ export declare const dayCellTheme: Readonly<{
|
|
|
198
198
|
readonly backgroundImage: stylex.StyleXClassNameFor<"backgroundImage", {
|
|
199
199
|
readonly '@media (hover: hover)': `linear-gradient(${stylex.StyleXVar<"light-dark(#0536590C, #FFFFFF0C)">}, ${stylex.StyleXVar<"light-dark(#0536590C, #FFFFFF0C)">})`;
|
|
200
200
|
} | null>;
|
|
201
|
-
readonly outline: stylex.StyleXClassNameFor<"outline", `2px solid ${stylex.StyleXVar<"light-dark(#0064E0, #2694FE)">}` | null>;
|
|
202
|
-
readonly outlineOffset: stylex.StyleXClassNameFor<"outlineOffset", "0" | "2px">;
|
|
203
201
|
}>;
|
|
204
202
|
readonly dayOutside: Readonly<{
|
|
205
203
|
readonly color: stylex.StyleXClassNameFor<"color", "light-dark(#4E606F, #AAAFB5)">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/Calendar/styles.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAgB3C,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2CzB,CAAC;AAMH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuC1B,CAAC;AAMH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4GxB,CAAC;AAMH,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/Calendar/styles.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAgB3C,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2CzB,CAAC;AAMH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuC1B,CAAC;AAMH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4GxB,CAAC;AAMH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4DvB,CAAC"}
|
package/dist/Calendar/styles.js
CHANGED
|
@@ -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;AA6F5C,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,+BAgFpB;yBAnGe,aAAa"}
|
|
@@ -37,6 +37,7 @@ import { Card } from "../Card/Card.js";
|
|
|
37
37
|
import { useClickableContainer } from "../hooks/useClickableContainer.js";
|
|
38
38
|
import { useLinkComponent } from "../Link/useLinkComponent.js";
|
|
39
39
|
import { themeProps } from "../utils/themeProps.js";
|
|
40
|
+
import { focusOutlineProps } from "../utils/focusOutline.stylex.js";
|
|
40
41
|
|
|
41
42
|
// =============================================================================
|
|
42
43
|
// Styles — only the interactive layer, Card handles everything else
|
|
@@ -48,12 +49,6 @@ const styles = {
|
|
|
48
49
|
kkrTdU: "x1ypdohk",
|
|
49
50
|
kybGjl: "x1hl2dhg",
|
|
50
51
|
kMwMTN: "x1heor9g",
|
|
51
|
-
kInvED: "x1hl8ikr",
|
|
52
|
-
$$css: true
|
|
53
|
-
},
|
|
54
|
-
focusWithin: {
|
|
55
|
-
kRYL1X: "x1irc7jg",
|
|
56
|
-
koJ47v: "xdjuwb3",
|
|
57
52
|
$$css: true
|
|
58
53
|
},
|
|
59
54
|
overlay: {
|
|
@@ -192,11 +187,8 @@ export function ClickableCard({
|
|
|
192
187
|
elevation: elevation,
|
|
193
188
|
...mergeProps(themeProps('clickable-card', {
|
|
194
189
|
variant
|
|
195
|
-
}),
|
|
196
|
-
|
|
197
|
-
style
|
|
198
|
-
}),
|
|
199
|
-
xstyle: [styles.interactive, styles.focusWithin, hasBorder ? styles.bordered : styles.borderless, !isDisabled && styles.overlay, !isDisabled && styles.hoverOnPointer, !isDisabled && hasBorder && styles.borderedHoverOnPointer, isDisabled && styles.disabled, xstyleProp],
|
|
190
|
+
}), focusOutlineProps.focusWithin(), classNameProp, style),
|
|
191
|
+
xstyle: [styles.interactive, hasBorder ? styles.bordered : styles.borderless, !isDisabled && styles.overlay, !isDisabled && styles.hoverOnPointer, !isDisabled && hasBorder && styles.borderedHoverOnPointer, isDisabled && styles.disabled, xstyleProp],
|
|
200
192
|
onClick: !isDisabled ? onClick : undefined,
|
|
201
193
|
onMouseUp: !isDisabled ? handleMouseUp : undefined,
|
|
202
194
|
...props,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeBlock.d.ts","sourceRoot":"","sources":["../../src/CodeBlock/CodeBlock.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"CodeBlock.d.ts","sourceRoot":"","sources":["../../src/CodeBlock/CodeBlock.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA4B5C,OAAO,EAAc,KAAK,qBAAqB,EAAC,MAAM,iBAAiB,CAAC;AAmXxE,MAAM,WAAW,cAAe,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC/D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,CACV,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,KACb;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;IAClD,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC5C;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,qBAAqB,CAAC;CACrC;AAqPD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,QAAsB,EACtB,KAAK,EACL,gBAAuB,EACvB,cAAsB,EACtB,cAAc,EACd,aAAoB,EACpB,MAAM,EACN,SAAiB,EACjB,SAAS,EACT,aAAqB,EACrB,oBAAyB,EACzB,IAAW,EACX,KAAK,EAAE,SAAyB,EAChC,SAAkB,EAClB,SAAS,EAAE,eAAe,EAC1B,aAAsB,EACtB,WAAW,EACX,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,cAAc,qBA2OhB;yBAnQe,SAAS"}
|
|
@@ -20,6 +20,7 @@ import { tokenize, tokenizeAsync, flatTokensToLines, SYNC_TOKENIZE_THRESHOLD } f
|
|
|
20
20
|
import { ensureHighlightStyles } from "./highlightStyles.js";
|
|
21
21
|
import { applyHighlightRangesChunked } from "./highlightRanges.js";
|
|
22
22
|
import { themeProps } from "../utils/themeProps.js";
|
|
23
|
+
import { focusOutlineProps } from "../utils/focusOutline.stylex.js";
|
|
23
24
|
import { useTranslator } from "../i18n/index.js";
|
|
24
25
|
import { SyntaxTheme } from "../theme/syntax/index.js";
|
|
25
26
|
|
|
@@ -80,6 +81,18 @@ const styles = {
|
|
|
80
81
|
kVQacm: "xb3r6kr",
|
|
81
82
|
$$css: true
|
|
82
83
|
},
|
|
84
|
+
header: {
|
|
85
|
+
k1xSpc: "x78zum5",
|
|
86
|
+
kGNEyG: "x6s0dn4",
|
|
87
|
+
kUk6DE: "x98rzlu",
|
|
88
|
+
k7Eaqz: "xeuugli",
|
|
89
|
+
kmVPX3: "x1717udv",
|
|
90
|
+
kWkggS: "xjbqb8w",
|
|
91
|
+
kMwMTN: "x1heor9g",
|
|
92
|
+
kVVagm: "xln7xf2",
|
|
93
|
+
k9WMMc: "x1yc453h",
|
|
94
|
+
$$css: true
|
|
95
|
+
},
|
|
83
96
|
collapseChevronIcon: {
|
|
84
97
|
k1ekBW: "x11xpdln",
|
|
85
98
|
kIyJzY: "xuedmi6",
|
|
@@ -90,6 +103,11 @@ const styles = {
|
|
|
90
103
|
k3aq6I: "x1iffjtl",
|
|
91
104
|
$$css: true
|
|
92
105
|
},
|
|
106
|
+
headerCollapsible: {
|
|
107
|
+
kkrTdU: "x1ypdohk",
|
|
108
|
+
kfSwDN: "x87ps6o",
|
|
109
|
+
$$css: true
|
|
110
|
+
},
|
|
93
111
|
code: {
|
|
94
112
|
k1xSpc: "x1lliihq",
|
|
95
113
|
kUk6DE: "x98rzlu",
|
|
@@ -522,14 +540,7 @@ export function CodeBlock({
|
|
|
522
540
|
setIsCollapsed(prev => !prev);
|
|
523
541
|
}
|
|
524
542
|
} : undefined,
|
|
525
|
-
...
|
|
526
|
-
0: {
|
|
527
|
-
className: "x78zum5 x6s0dn4 x98rzlu xeuugli x1717udv xjbqb8w x1heor9g xln7xf2 x1yc453h"
|
|
528
|
-
},
|
|
529
|
-
1: {
|
|
530
|
-
className: "x78zum5 x6s0dn4 x98rzlu xeuugli x1717udv xjbqb8w x1heor9g xln7xf2 x1yc453h x1ypdohk x87ps6o x17nn4n9 x1wfwxd8 x7s97pk"
|
|
531
|
-
}
|
|
532
|
-
}[!!canCollapse << 0],
|
|
543
|
+
...focusOutlineProps.focusVisible(styles.header, canCollapse && styles.headerCollapsible),
|
|
533
544
|
children: /*#__PURE__*/_jsxs("span", {
|
|
534
545
|
...{
|
|
535
546
|
className: "x78zum5 x6s0dn4 x141an7d x9m5x89 x1e4wzip x1mjzq1q x1ghz6dp x1ltkj2j"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Collapsible.d.ts","sourceRoot":"","sources":["../../src/Collapsible/Collapsible.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAa,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAiBjD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"Collapsible.d.ts","sourceRoot":"","sources":["../../src/Collapsible/Collapsible.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAa,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAiBjD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAuH5C,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IACjD,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;;OAGG;IACH,OAAO,EAAE,SAAS,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAEzC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,QAAQ,EACR,aAAa,EACb,MAAM,EAAE,gBAAgB,EACxB,UAAkB,EAClB,YAAY,EACZ,KAAK,EACL,GAAG,EACH,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,gBAAgB,+BAsGlB;yBAnHe,WAAW"}
|
|
@@ -35,6 +35,7 @@ import { CollapsibleGroupPresentationContext } from "./CollapsibleGroupContext.j
|
|
|
35
35
|
import { Icon } from "../Icon/index.js";
|
|
36
36
|
import { mergeProps } from "../utils/index.js";
|
|
37
37
|
import { themeProps } from "../utils/themeProps.js";
|
|
38
|
+
import { focusOutlineProps } from "../utils/focusOutline.stylex.js";
|
|
38
39
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
39
40
|
const styles = {
|
|
40
41
|
root: {
|
|
@@ -54,8 +55,6 @@ const styles = {
|
|
|
54
55
|
kMwMTN: "x1tgivj0",
|
|
55
56
|
k9WMMc: "x1yc453h",
|
|
56
57
|
k8WAf4: "xt970qd",
|
|
57
|
-
kI3sdo: "x17nn4n9",
|
|
58
|
-
kInvED: "x1wfwxd8 x7s97pk",
|
|
59
58
|
$$css: true
|
|
60
59
|
},
|
|
61
60
|
triggerDisabled: {
|
|
@@ -249,7 +248,7 @@ export function Collapsible({
|
|
|
249
248
|
tabIndex: isDisabled ? -1 : undefined,
|
|
250
249
|
...mergeProps(themeProps('collapsible-trigger', {
|
|
251
250
|
density: density ?? undefined
|
|
252
|
-
}),
|
|
251
|
+
}), focusOutlineProps.focusVisible(styles.trigger, density != null && triggerDensity[density], isDisabled && styles.triggerDisabled)),
|
|
253
252
|
children: [/*#__PURE__*/_jsx("span", {
|
|
254
253
|
...{
|
|
255
254
|
className: "x1b2iylo xwgcxoh"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../src/Dialog/Dialog.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAoB5C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAKhD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../src/Dialog/Dialog.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAoB5C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAKhD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAsB9C;;;;;;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;AAuHD;;;;;;;;;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,SAAkB,EAClB,QAAQ,EACR,OAAoB,EACpB,OAAgB,EAChB,OAAO,EACP,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,WAAW,sCA2Sb;yBA3Te,MAAM"}
|
package/dist/Dialog/Dialog.js
CHANGED
|
@@ -27,12 +27,14 @@ import { mergeProps, mergeRefs } from "../utils/index.js";
|
|
|
27
27
|
import { devWarn } from "../utils/devWarning.js";
|
|
28
28
|
import { DialogContext } from "./DialogContext.js";
|
|
29
29
|
import { themeProps } from "../utils/themeProps.js";
|
|
30
|
-
import {
|
|
30
|
+
import { focusOutlineProps } from "../utils/focusOutline.stylex.js";
|
|
31
|
+
|
|
31
32
|
/**
|
|
32
33
|
* Calculate a directional translate offset for dialog entry animation.
|
|
33
34
|
* Returns a normalized vector from the trigger element toward the viewport
|
|
34
35
|
* center, scaled to the given distance.
|
|
35
36
|
*/
|
|
37
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
36
38
|
function getDialogDirection(triggerEl, distance = 16) {
|
|
37
39
|
const rect = triggerEl.getBoundingClientRect();
|
|
38
40
|
const dx = rect.left + rect.width / 2 - window.innerWidth / 2;
|
|
@@ -91,8 +93,6 @@ const styles = {
|
|
|
91
93
|
k44tkh: "xqgcaz",
|
|
92
94
|
kyAemX: "x128ha8g",
|
|
93
95
|
kWV6AL: "xskzprw",
|
|
94
|
-
kI3sdo: "x17nn4n9",
|
|
95
|
-
kInvED: "x1wfwxd8 x7s97pk",
|
|
96
96
|
$$css: true
|
|
97
97
|
},
|
|
98
98
|
open: {
|
|
@@ -447,7 +447,7 @@ export function Dialog({
|
|
|
447
447
|
...safeProps,
|
|
448
448
|
...mergeProps(themeProps('dialog', {
|
|
449
449
|
variant
|
|
450
|
-
}),
|
|
450
|
+
}), focusOutlineProps.focusVisible(styles.dialog, isOpen && styles.open, styles.backdrop, !isFullscreen && dynamicStyles.sizing(width, maxHeight), hasPosition && (() => {
|
|
451
451
|
const o = resolveDialogPositionOffsets(position);
|
|
452
452
|
return dynamicStyles.position(o.top, o.insetInlineStart, o.insetInlineEnd, o.bottom);
|
|
453
453
|
})(), isFullscreen && styles.fullscreen, xstyle), className, style),
|
|
@@ -10,6 +10,11 @@
|
|
|
10
10
|
*
|
|
11
11
|
* Both modes use useListFocus for DOM-based keyboard navigation.
|
|
12
12
|
*
|
|
13
|
+
* Initial focus on open follows the input modality: a keyboard open
|
|
14
|
+
* (Enter / Space / ArrowDown on the trigger) focuses the first enabled item
|
|
15
|
+
* (APG menu-button); a pointer open focuses the menu container itself so no
|
|
16
|
+
* item reads as pre-selected, and the first ArrowDown then moves to item 1.
|
|
17
|
+
*
|
|
13
18
|
* SYNC: When modified, update these files to stay in sync:
|
|
14
19
|
* - /packages/core/src/DropdownMenu/DropdownMenu.doc.mjs
|
|
15
20
|
* - /packages/core/src/DropdownMenu/DropdownMenu.test.tsx
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../src/DropdownMenu/DropdownMenu.tsx"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../src/DropdownMenu/DropdownMenu.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,EAOZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,EAAS,KAAK,WAAW,EAAC,MAAM,WAAW,CAAC;AAInD,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,oBAAoB,CAAC;AAa9D,OAAO,KAAK,EAAC,cAAc,EAAE,cAAc,EAAC,MAAM,mBAAmB,CAAC;AAQtE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAyC5C;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAChD,qBAAqB,EACrB,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAC9C;IACC;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,oBAAoB,EAAE,CAAC;CAC/B;AAED,MAAM,MAAM,kBAAkB,GAC5B,oBAAoB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAMnE,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AAEnE,UAAU,qBAAsB,SAAQ,SAAS;IAC/C,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B;;;;OAIG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,qBAAsB,SAAQ,qBAAqB;IAC3D,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,UAAU,yBAA0B,SAAQ,qBAAqB;IAC/D,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,MAAM,iBAAiB,GAC3B,qBAAqB,GAAG,yBAAyB,CAAC;AA+BpD,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,gBAAgB,EAC5B,YAAY,EACZ,SAAS,EACT,OAAO,EACP,UAAiB,EACjB,SAAmB,EACnB,SAAmB,EACnB,SAAS,EACT,KAAK,EACL,MAAM,EACN,aAAa,EAAE,MAAM,EACrB,GAAG,KAAK,EACT,EAAE,iBAAiB,qBA+TnB;yBA7Ue,YAAY"}
|
|
@@ -14,6 +14,11 @@
|
|
|
14
14
|
*
|
|
15
15
|
* Both modes use useListFocus for DOM-based keyboard navigation.
|
|
16
16
|
*
|
|
17
|
+
* Initial focus on open follows the input modality: a keyboard open
|
|
18
|
+
* (Enter / Space / ArrowDown on the trigger) focuses the first enabled item
|
|
19
|
+
* (APG menu-button); a pointer open focuses the menu container itself so no
|
|
20
|
+
* item reads as pre-selected, and the first ArrowDown then moves to item 1.
|
|
21
|
+
*
|
|
17
22
|
* SYNC: When modified, update these files to stay in sync:
|
|
18
23
|
* - /packages/core/src/DropdownMenu/DropdownMenu.doc.mjs
|
|
19
24
|
* - /packages/core/src/DropdownMenu/DropdownMenu.test.tsx
|
|
@@ -179,6 +184,13 @@ export function DropdownMenu({
|
|
|
179
184
|
// Defer item focus until the layer has committed open, so focus restore
|
|
180
185
|
// captures the trigger instead of the first menu item.
|
|
181
186
|
const shouldFocusOnOpenRef = useRef(false);
|
|
187
|
+
|
|
188
|
+
// How the next open was initiated. Keyboard (and programmatic) opens focus
|
|
189
|
+
// the first enabled item per the APG menu-button pattern; pointer opens
|
|
190
|
+
// focus the menu container instead, so no item is visually highlighted as
|
|
191
|
+
// if pre-selected (#4477). Reset to 'keyboard' after every open so
|
|
192
|
+
// programmatic controlled opens keep the item-focus behavior.
|
|
193
|
+
const openModalityRef = useRef('keyboard');
|
|
182
194
|
const handleLayerShow = useCallback(() => {
|
|
183
195
|
onOpenChange?.(true);
|
|
184
196
|
if (!isControlled) {
|
|
@@ -238,14 +250,26 @@ export function DropdownMenu({
|
|
|
238
250
|
}
|
|
239
251
|
}, [controlledIsOpen, isControlled, popover]);
|
|
240
252
|
|
|
241
|
-
// Move focus into the menu only after the layer has committed open
|
|
253
|
+
// Move focus into the menu only after the layer has committed open,
|
|
254
|
+
// honoring the input modality: keyboard (and programmatic) opens land on
|
|
255
|
+
// the first enabled item per the APG menu-button pattern; pointer opens
|
|
256
|
+
// focus the menu container itself (tabIndex={-1}) so no item is
|
|
257
|
+
// highlighted as if pre-selected (#4477). Container focus keeps arrows,
|
|
258
|
+
// typeahead, Escape and Tab in the menu's onKeyDown, and is also the
|
|
259
|
+
// fallback when no item is focusable (e.g. all disabled), mirroring the
|
|
260
|
+
// submenu flyout fallback.
|
|
242
261
|
useEffect(() => {
|
|
243
262
|
if (!popover.isOpen || !shouldFocusOnOpenRef.current) {
|
|
244
263
|
return;
|
|
245
264
|
}
|
|
246
265
|
shouldFocusOnOpenRef.current = false;
|
|
247
|
-
requestAnimationFrame(() =>
|
|
248
|
-
|
|
266
|
+
requestAnimationFrame(() => {
|
|
267
|
+
if (openModalityRef.current === 'pointer' || !focusFirst()) {
|
|
268
|
+
listRef.current?.focus();
|
|
269
|
+
}
|
|
270
|
+
openModalityRef.current = 'keyboard';
|
|
271
|
+
});
|
|
272
|
+
}, [popover.isOpen, focusFirst, listRef]);
|
|
249
273
|
|
|
250
274
|
// Extend useListFocus with Enter/Space activation + typeahead
|
|
251
275
|
const listKeyDown = useCallback(e => {
|
|
@@ -278,25 +302,34 @@ export function DropdownMenu({
|
|
|
278
302
|
}
|
|
279
303
|
listNavKeyDown(e);
|
|
280
304
|
}, [listNavKeyDown, closeMenu, typeahead, ownsEvent]);
|
|
281
|
-
const openAndFocus = useCallback(() => {
|
|
305
|
+
const openAndFocus = useCallback((modality = 'keyboard') => {
|
|
306
|
+
openModalityRef.current = modality;
|
|
282
307
|
shouldFocusOnOpenRef.current = true;
|
|
283
308
|
popover.show();
|
|
284
309
|
}, [popover]);
|
|
285
|
-
const handleButtonClick = useCallback(
|
|
310
|
+
const handleButtonClick = useCallback(e => {
|
|
286
311
|
// If the menu was just closed by light dismiss (e.g. iOS Safari fires
|
|
287
312
|
// pointerdown → hide before the trigger's click), the click would
|
|
288
|
-
// otherwise immediately re-open it. Short-circuit within the guard
|
|
313
|
+
// otherwise immediately re-open it. Short-circuit within the guard
|
|
314
|
+
// window.
|
|
289
315
|
if (Date.now() - lastHideTimeRef.current < 50) {
|
|
290
316
|
return;
|
|
291
317
|
}
|
|
292
318
|
onClick?.();
|
|
319
|
+
// detail === 0 marks a synthesized click (screen reader / AT
|
|
320
|
+
// activation): treat it as keyboard so those users still land on the
|
|
321
|
+
// first item. Real pointer clicks report detail >= 1.
|
|
322
|
+
const modality = e.detail === 0 ? 'keyboard' : 'pointer';
|
|
293
323
|
if (isControlled) {
|
|
324
|
+
if (!controlledIsOpen) {
|
|
325
|
+
openModalityRef.current = modality;
|
|
326
|
+
}
|
|
294
327
|
onOpenChange?.(!controlledIsOpen);
|
|
295
328
|
} else {
|
|
296
329
|
if (popover.isOpen) {
|
|
297
330
|
popover.hide();
|
|
298
331
|
} else {
|
|
299
|
-
openAndFocus();
|
|
332
|
+
openAndFocus(modality);
|
|
300
333
|
}
|
|
301
334
|
}
|
|
302
335
|
}, [onClick, isControlled, onOpenChange, controlledIsOpen, popover, openAndFocus]);
|
|
@@ -356,6 +389,12 @@ export function DropdownMenu({
|
|
|
356
389
|
ref: listRef,
|
|
357
390
|
id: menuId,
|
|
358
391
|
role: "menu"
|
|
392
|
+
// Focus target for pointer opens (not in the Tab order): holding
|
|
393
|
+
// focus on the container keeps key events (arrows, typeahead,
|
|
394
|
+
// Escape, Tab) inside the menu without highlighting any item.
|
|
395
|
+
// Mirrors the DropdownMenuSubMenu flyout container.
|
|
396
|
+
,
|
|
397
|
+
tabIndex: -1
|
|
359
398
|
// Give the menu an accessible name from its trigger's label, so
|
|
360
399
|
// screen readers announce e.g. "Actions menu" rather than an unnamed
|
|
361
400
|
// menu (menus-13).
|
package/dist/Item/Item.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Item.d.ts","sourceRoot":"","sources":["../../src/Item/Item.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAS,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAU7C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"Item.d.ts","sourceRoot":"","sources":["../../src/Item/Item.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAS,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAU7C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAa5C,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAC3C,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAE9D,MAAM,WAAW,SAAU,SAAQ,SAAS,CAAC,WAAW,CAAC;IACvD,yCAAyC;IACzC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAE7B;;;OAGG;IACH,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC;IAE3B;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC;IAEzB;;;OAGG;IACH,KAAK,EAAE,SAAS,CAAC;IAEjB;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IAExB;;;OAGG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IAEvB;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAE5C;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAErD;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAE5B;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAmKD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,IAAI,CAAC,EACnB,EAAE,EAAE,SAAiB,EACrB,MAAM,EACN,YAAY,EACZ,KAAK,EACL,WAAW,EACX,UAAU,EACV,KAAgB,EAChB,OAAoB,EACpB,UAAU,EACV,gBAAgB,EAChB,OAAO,EACP,cAAc,EACd,IAAI,EACJ,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,YAAY,EACjB,aAAqB,EACrB,UAAkB,EAClB,UAAkB,EAClB,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,IAAI,EACJ,GAAG,SAAS,EACb,EAAE,SAAS,+BA2MX;yBApOe,IAAI"}
|
package/dist/Item/Item.js
CHANGED
|
@@ -25,6 +25,7 @@ import { useLinkComponent } from "../Link/useLinkComponent.js";
|
|
|
25
25
|
import { useClickableContainer } from "../hooks/useClickableContainer.js";
|
|
26
26
|
import { useDevWarning } from "../hooks/useDevWarning.js";
|
|
27
27
|
import { themeProps } from "../utils/themeProps.js";
|
|
28
|
+
import { focusOutlineProps } from "../utils/focusOutline.stylex.js";
|
|
28
29
|
|
|
29
30
|
// =============================================================================
|
|
30
31
|
// Types
|
|
@@ -68,11 +69,6 @@ const styles = {
|
|
|
68
69
|
kWkggS: "xjbqb8w xe9uy6x xyxi2l3",
|
|
69
70
|
$$css: true
|
|
70
71
|
},
|
|
71
|
-
focusVisibleOutline: {
|
|
72
|
-
kI3sdo: "x1a2a7pz x1irc7jg",
|
|
73
|
-
kInvED: "x1wfwxd8 xdjuwb3",
|
|
74
|
-
$$css: true
|
|
75
|
-
},
|
|
76
72
|
highlighted: {
|
|
77
73
|
kWkggS: "x1lmrjuc",
|
|
78
74
|
$$css: true
|
|
@@ -332,7 +328,7 @@ export function Item({
|
|
|
332
328
|
...mergeProps(themeProps('item', {
|
|
333
329
|
density,
|
|
334
330
|
align
|
|
335
|
-
}),
|
|
331
|
+
}), focusOutlineProps.focusWithin(styles.root, densityStyles[density], align === 'start' && styles.alignStart, isInteractive && styles.interactive, isHighlighted && styles.highlighted, isSelected && styles.selected, isDisabled && !hasParentRole && styles.disabled, xstyle), className, style),
|
|
336
332
|
role: role,
|
|
337
333
|
onClick: isDelegate ? delegatedOnClick : hasParentRole ? onClick : isInteractive ? handleContainerClick : undefined,
|
|
338
334
|
children: innerContent
|
package/dist/Link/Link.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../src/Link/Link.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAc5C,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../src/Link/Link.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAc5C,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,SAAS,CAAC;AAgG/C,MAAM,WAAW,SAAU,SAAQ,SAAS,CAC1C,iBAAiB,GAAG,iBAAiB,CACtC;IACC,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,CAAC;IACvD;;;;;OAKG;IACH,EAAE,CAAC,EAAE,iBAAiB,CAAC;IACvB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,2BAA2B,CAAC;IACnD;;;OAGG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,CAAC;IACzE;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;OAEG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;CACrB;AAWD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,IAAI,CAAC,EACnB,EAAE,EACF,KAAK,EACL,IAAI,EACJ,YAAoB,EACpB,UAAkB,EAClB,cAAsB,EACtB,WAAW,EAAE,oBAAoB,EACjC,MAAM,EAAE,eAAe,EACvB,OAAO,EACP,OAAO,EACP,YAAoB,EACpB,IAAa,EACb,IAAI,EACJ,MAAM,EACN,KAAgB,EAChB,OAAkB,EAClB,QAAY,EACZ,QAAQ,EACR,GAAG,EAAE,YAAY,EACjB,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,SAAS,+BAyIX;yBAlKe,IAAI"}
|