@khanacademy/wonder-blocks-dropdown 10.3.12 → 10.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build$colon$css.log +1 -1
- package/CHANGELOG.md +6 -0
- package/dist/components/action-menu.d.ts +5 -3
- package/dist/components/dropdown-core.d.ts +2 -1
- package/dist/components/dropdown-popper.d.ts +2 -1
- package/dist/es/index.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +6 -6
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @khanacademy/wonder-blocks-dropdown@10.
|
|
2
|
+
> @khanacademy/wonder-blocks-dropdown@10.4.0 build:css /home/runner/work/wonder-blocks/wonder-blocks/packages/wonder-blocks-dropdown
|
|
3
3
|
> pnpm exec wonder-blocks-tokens .
|
|
4
4
|
|
|
5
5
|
CSS variables generated successfully in: /home/runner/work/wonder-blocks/wonder-blocks/packages/wonder-blocks-dropdown/dist/css
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { type AriaProps, type StyleType } from "@khanacademy/wonder-blocks-core";
|
|
3
|
+
import { Placement } from "@popperjs/core";
|
|
3
4
|
import DropdownOpener from "./dropdown-opener";
|
|
4
5
|
import type { Item, DropdownItem, OpenerProps } from "../util/types";
|
|
5
6
|
type Props = AriaProps & Readonly<{
|
|
@@ -31,10 +32,11 @@ type Props = AriaProps & Readonly<{
|
|
|
31
32
|
*/
|
|
32
33
|
selectedValues?: Array<string>;
|
|
33
34
|
/**
|
|
34
|
-
*
|
|
35
|
-
*
|
|
35
|
+
* The alignment of the menu component in relation to the opener
|
|
36
|
+
* component. Defaults to "left", which is below the opener and left
|
|
37
|
+
* aligned. Any valid Popper placement is also supported.
|
|
36
38
|
*/
|
|
37
|
-
alignment: "left" | "right";
|
|
39
|
+
alignment: "left" | "right" | Placement;
|
|
38
40
|
/**
|
|
39
41
|
* Whether this component is disabled. A disabled dropdown may not be opened
|
|
40
42
|
* and does not support interaction. Defaults to false.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import type { StyleType } from "@khanacademy/wonder-blocks-core";
|
|
3
|
+
import { Placement } from "@popperjs/core";
|
|
3
4
|
import type { DropdownItem } from "../util/types";
|
|
4
5
|
type LabelsValues = {
|
|
5
6
|
/**
|
|
@@ -89,7 +90,7 @@ type ExportProps = Readonly<{
|
|
|
89
90
|
* Whether this menu should be left-aligned or right-aligned with the
|
|
90
91
|
* opener component. Defaults to left-aligned.
|
|
91
92
|
*/
|
|
92
|
-
alignment?: "left" | "right";
|
|
93
|
+
alignment?: "left" | "right" | Placement;
|
|
93
94
|
/**
|
|
94
95
|
* Whether to auto focus an option. Defaults to true.
|
|
95
96
|
*/
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import type { StyleType } from "@khanacademy/wonder-blocks-core";
|
|
3
|
+
import { Placement } from "@popperjs/core";
|
|
3
4
|
type Props = {
|
|
4
5
|
/**
|
|
5
6
|
* The children that will be wrapped by PopperJS.
|
|
@@ -13,7 +14,7 @@ type Props = {
|
|
|
13
14
|
* Whether this menu should be left-aligned or right-aligned with the
|
|
14
15
|
* reference component. Defaults to left-aligned.
|
|
15
16
|
*/
|
|
16
|
-
alignment?: "left" | "right";
|
|
17
|
+
alignment?: "left" | "right" | Placement;
|
|
17
18
|
/**
|
|
18
19
|
* The popper's reference.
|
|
19
20
|
* @see https://popper.js.org/react-popper/v2/render-props/#innerref
|
package/dist/es/index.js
CHANGED
|
@@ -53,7 +53,7 @@ class DropdownCoreVirtualized extends React.Component{componentDidMount(){const{
|
|
|
53
53
|
|
|
54
54
|
function modifyMaxHeight({state,options}){const overflow=detectOverflow(state,options);const{y}=state.modifiersData.preventOverflow||{x:0,y:0};const{height}=state.rects.popper;const[basePlacement]=state.placement.split("-");const heightProp=basePlacement==="top"?"top":"bottom";const maxHeight=height-overflow[heightProp]-y;state.styles.popper={...state.styles.popper,maxHeight:`${maxHeight}px`,["--popper-max-height"]:`${maxHeight}px`};}const maxHeightModifier={name:"maxHeight",enabled:true,phase:"main",options:{padding:DROPDOWN_ITEM_HEIGHT},requiresIfExists:["offset","preventOverflow","flip"],fn:modifyMaxHeight};
|
|
55
55
|
|
|
56
|
-
const modifiers=[{name:"preventOverflow",options:{rootBoundary:"viewport",altAxis:true,tether:false}},maxHeightModifier];const DropdownPopper=function({children,alignment="left",onPopperElement,referenceElement}){const modalHost=maybeGetPortalMountedModalHostElement(referenceElement)||document.querySelector("body");if(!modalHost){return null}return ReactDOM.createPortal(jsx(Popper,{innerRef:node=>{if(node&&onPopperElement){onPopperElement(node);}},referenceElement:referenceElement,strategy:"fixed",placement:
|
|
56
|
+
const modifiers=[{name:"preventOverflow",options:{rootBoundary:"viewport",altAxis:true,tether:false}},maxHeightModifier];const DropdownPopper=function({children,alignment="left",onPopperElement,referenceElement}){const modalHost=maybeGetPortalMountedModalHostElement(referenceElement)||document.querySelector("body");if(!modalHost){return null}const placement=alignment==="left"?"bottom-start":alignment==="right"?"bottom-end":alignment;return ReactDOM.createPortal(jsx(Popper,{innerRef:node=>{if(node&&onPopperElement){onPopperElement(node);}},referenceElement:referenceElement,strategy:"fixed",placement:placement,modifiers:modifiers,children:({placement,ref,style,hasPopperEscaped,isReferenceHidden})=>{const shouldHidePopper=!!(hasPopperEscaped||isReferenceHidden);return jsx("div",{ref:ref,style:style,"data-testid":"dropdown-popper","data-placement":placement,children:children(shouldHidePopper)})}}),modalHost)};
|
|
57
57
|
|
|
58
58
|
function getStringForKey(key){if(key.length===1||!/^[A-Z]/i.test(key)){return key}return ""}function debounce(callback,wait){let timeout;return function executedFunction(...args){const later=()=>{clearTimeout(timeout);callback(...args);};clearTimeout(timeout);timeout=setTimeout(later,wait);}}function isString(x){return typeof x==="string"}function getLabel(props){if(isString(props.label)){return props.label}if(isString(props.labelAsText)){return props.labelAsText}return ""}function getSelectOpenerLabel(showOpenerLabelAsText,props){if(showOpenerLabelAsText){return getLabel(props)}return props.label}
|
|
59
59
|
|
package/dist/index.js
CHANGED
|
@@ -86,7 +86,7 @@ class DropdownCoreVirtualized extends React__namespace.Component{componentDidMou
|
|
|
86
86
|
|
|
87
87
|
function modifyMaxHeight({state,options}){const overflow=core.detectOverflow(state,options);const{y}=state.modifiersData.preventOverflow||{x:0,y:0};const{height}=state.rects.popper;const[basePlacement]=state.placement.split("-");const heightProp=basePlacement==="top"?"top":"bottom";const maxHeight=height-overflow[heightProp]-y;state.styles.popper={...state.styles.popper,maxHeight:`${maxHeight}px`,["--popper-max-height"]:`${maxHeight}px`};}const maxHeightModifier={name:"maxHeight",enabled:true,phase:"main",options:{padding:DROPDOWN_ITEM_HEIGHT},requiresIfExists:["offset","preventOverflow","flip"],fn:modifyMaxHeight};
|
|
88
88
|
|
|
89
|
-
const modifiers=[{name:"preventOverflow",options:{rootBoundary:"viewport",altAxis:true,tether:false}},maxHeightModifier];const DropdownPopper=function({children,alignment="left",onPopperElement,referenceElement}){const modalHost=wonderBlocksModal.maybeGetPortalMountedModalHostElement(referenceElement)||document.querySelector("body");if(!modalHost){return null}return ReactDOM__namespace.createPortal(jsxRuntime.jsx(reactPopper.Popper,{innerRef:node=>{if(node&&onPopperElement){onPopperElement(node);}},referenceElement:referenceElement,strategy:"fixed",placement:
|
|
89
|
+
const modifiers=[{name:"preventOverflow",options:{rootBoundary:"viewport",altAxis:true,tether:false}},maxHeightModifier];const DropdownPopper=function({children,alignment="left",onPopperElement,referenceElement}){const modalHost=wonderBlocksModal.maybeGetPortalMountedModalHostElement(referenceElement)||document.querySelector("body");if(!modalHost){return null}const placement=alignment==="left"?"bottom-start":alignment==="right"?"bottom-end":alignment;return ReactDOM__namespace.createPortal(jsxRuntime.jsx(reactPopper.Popper,{innerRef:node=>{if(node&&onPopperElement){onPopperElement(node);}},referenceElement:referenceElement,strategy:"fixed",placement:placement,modifiers:modifiers,children:({placement,ref,style,hasPopperEscaped,isReferenceHidden})=>{const shouldHidePopper=!!(hasPopperEscaped||isReferenceHidden);return jsxRuntime.jsx("div",{ref:ref,style:style,"data-testid":"dropdown-popper","data-placement":placement,children:children(shouldHidePopper)})}}),modalHost)};
|
|
90
90
|
|
|
91
91
|
function getStringForKey(key){if(key.length===1||!/^[A-Z]/i.test(key)){return key}return ""}function debounce(callback,wait){let timeout;return function executedFunction(...args){const later=()=>{clearTimeout(timeout);callback(...args);};clearTimeout(timeout);timeout=setTimeout(later,wait);}}function isString(x){return typeof x==="string"}function getLabel(props){if(isString(props.label)){return props.label}if(isString(props.labelAsText)){return props.labelAsText}return ""}function getSelectOpenerLabel(showOpenerLabelAsText,props){if(showOpenerLabelAsText){return getLabel(props)}return props.label}
|
|
92
92
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@khanacademy/wonder-blocks-dropdown",
|
|
3
|
-
"version": "10.
|
|
3
|
+
"version": "10.4.0",
|
|
4
4
|
"design": "v1",
|
|
5
5
|
"description": "Dropdown variants for Wonder Blocks.",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -21,19 +21,19 @@
|
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@khanacademy/wonder-blocks-announcer": "1.0.3",
|
|
24
|
+
"@khanacademy/wonder-blocks-form": "7.3.8",
|
|
25
|
+
"@khanacademy/wonder-blocks-icon": "5.2.20",
|
|
24
26
|
"@khanacademy/wonder-blocks-cell": "5.0.14",
|
|
25
|
-
"@khanacademy/wonder-blocks-clickable": "7.1.26",
|
|
26
27
|
"@khanacademy/wonder-blocks-core": "12.4.0",
|
|
27
|
-
"@khanacademy/wonder-blocks-icon": "5.2.20",
|
|
28
28
|
"@khanacademy/wonder-blocks-icon-button": "10.5.1",
|
|
29
29
|
"@khanacademy/wonder-blocks-modal": "8.4.3",
|
|
30
|
+
"@khanacademy/wonder-blocks-clickable": "7.1.26",
|
|
30
31
|
"@khanacademy/wonder-blocks-pill": "3.1.41",
|
|
31
32
|
"@khanacademy/wonder-blocks-search-field": "5.1.46",
|
|
32
33
|
"@khanacademy/wonder-blocks-styles": "0.2.32",
|
|
33
|
-
"@khanacademy/wonder-blocks-timing": "7.0.2",
|
|
34
34
|
"@khanacademy/wonder-blocks-tokens": "14.0.0",
|
|
35
|
-
"@khanacademy/wonder-blocks-
|
|
36
|
-
"@khanacademy/wonder-blocks-
|
|
35
|
+
"@khanacademy/wonder-blocks-timing": "7.0.2",
|
|
36
|
+
"@khanacademy/wonder-blocks-typography": "4.2.22"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
39
|
"@phosphor-icons/core": "^2.0.2",
|