@khanacademy/wonder-blocks-modal 8.9.2 → 8.10.1

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.
@@ -1,5 +1,5 @@
1
1
 
2
- > @khanacademy/wonder-blocks-modal@8.9.2 build:css /home/runner/work/wonder-blocks/wonder-blocks/packages/wonder-blocks-modal
2
+ > @khanacademy/wonder-blocks-modal@8.10.1 build:css /home/runner/work/wonder-blocks/wonder-blocks/packages/wonder-blocks-modal
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-modal/dist/css
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # @khanacademy/wonder-blocks-modal
2
2
 
3
+ ## 8.10.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [88c9897]
8
+ - @khanacademy/wonder-blocks-config@0.6.0
9
+ - @khanacademy/wonder-blocks-breadcrumbs@3.3.4
10
+
11
+ ## 8.10.0
12
+
13
+ ### Minor Changes
14
+
15
+ - 8e11e83: The close button in OnePaneDialog, FlexibleDialog and DrawerDialog now reads its `aria-label` ("Close modal") from `WonderBlocksConfigProvider`.
16
+
17
+ ### Patch Changes
18
+
19
+ - Updated dependencies [6bd5d0c]
20
+ - Updated dependencies [8e11e83]
21
+ - @khanacademy/wonder-blocks-config@0.5.0
22
+ - @khanacademy/wonder-blocks-breadcrumbs@3.3.3
23
+
3
24
  ## 8.9.2
4
25
 
5
26
  ### Patch Changes
package/dist/es/index.js CHANGED
@@ -10,6 +10,7 @@ import { withActionScheduler, SchedulePolicy, ClearPolicy } from '@khanacademy/w
10
10
  import { focusStyles } from '@khanacademy/wonder-blocks-styles';
11
11
  import xIcon from '@phosphor-icons/core/bold/x-bold.svg';
12
12
  import IconButton from '@khanacademy/wonder-blocks-icon-button';
13
+ import { useWonderBlocksI18n } from '@khanacademy/wonder-blocks-config';
13
14
 
14
15
  function useModalAnnouncer(forwardedRef){const internalRef=React.useRef(null);React.useEffect(()=>{const el=internalRef.current;if(!el){return}attachAnnouncerToModal(el);return ()=>{detachAnnouncerFromModal(el);}},[]);const ariaModalRef=React.useCallback(node=>{internalRef.current=node;if(typeof forwardedRef==="function"){forwardedRef(node);}else if(forwardedRef){forwardedRef.current=node;}},[]);return {ariaModalRef}}
15
16
 
@@ -39,7 +40,7 @@ const ModalLauncher=props=>{const{backdropDismissEnabled=true,children,closedFoc
39
40
 
40
41
  function ModalContent(props){const{scrollOverflow,style,children,applySmallHeightStyles=true}=props;return jsx(View,{style:[styles$3.wrapper,scrollOverflow&&styles$3.scrollOverflow,applySmallHeightStyles&&styles$3.wrapperSmallHeight],children:jsx(View,{style:[styles$3.content,applySmallHeightStyles&&styles$3.contentSmallHeight,style],children:children})})}ModalContent.__IS_MODAL_CONTENT__=true;ModalContent.isComponentOf=instance=>{return instance&&instance.type&&instance.type.__IS_MODAL_CONTENT__};const styles$3=StyleSheet.create({wrapper:{flex:1,display:"block"},wrapperSmallHeight:{[modalMediaQuery.smMinOrSmallerHeight]:{flex:"unset",minBlockSize:"unset",overflow:"unset"}},scrollOverflow:{overflow:"auto"},content:{flex:1,minBlockSize:"100%",padding:theme.panel.layout.gap.default,boxSizing:"border-box",[modalMediaQuery.midOrSmaller]:{paddingInline:theme.panel.layout.gap.small}},contentSmallHeight:{[modalMediaQuery.smMinOrSmallerHeight]:{flex:"unset",minBlockSize:"unset",overflow:"unset"}}});ModalContent.defaultProps={scrollOverflow:true,applySmallHeightStyles:true};
41
42
 
42
- const CloseButton=({onClick,style,testId})=>{return jsx(ModalContext.Consumer,{children:({closeModal})=>{if(closeModal&&onClick){throw new Error("You've specified 'onClose' on a modal when using ModalLauncher. Please specify 'onClose' on the ModalLauncher instead")}return jsx(IconButton,{icon:xIcon,"aria-label":"Close modal",onClick:onClick||closeModal,kind:"tertiary",actionType:"neutral",style:style,testId:testId})}})};
43
+ const CloseButton=({onClick,style,testId})=>{const{strings}=useWonderBlocksI18n();return jsx(ModalContext.Consumer,{children:({closeModal})=>{if(closeModal&&onClick){throw new Error("You've specified 'onClose' on a modal when using ModalLauncher. Please specify 'onClose' on the ModalLauncher instead")}return jsx(IconButton,{icon:xIcon,"aria-label":strings.iconAltCloseModal,onClick:onClick||closeModal,kind:"tertiary",actionType:"neutral",style:style,testId:testId})}})};
43
44
 
44
45
  function ModalPanel({closeButtonVisible=true,scrollOverflow=true,content,footer,header,onClose,style,testId}){const renderMainContent=React.useCallback(()=>{const mainContent=ModalContent.isComponentOf(content)?content:jsx(ModalContent,{children:content});if(!mainContent){return mainContent}return React.cloneElement(mainContent,{scrollOverflow,style:[!!footer&&styles$2.hasFooter,mainContent.props.style]})},[content,footer,scrollOverflow]);const mainContent=renderMainContent();return jsxs(View,{style:[styles$2.wrapper,style],testId:testId&&`${testId}-panel`,children:[closeButtonVisible&&jsx(CloseButton,{onClick:onClose,style:[styles$2.closeButton],testId:testId&&`${testId}-close`}),header,mainContent,!footer||ModalFooter.isComponentOf(footer)?footer:jsx(ModalFooter,{children:footer})]})}ModalPanel.defaultProps={closeButtonVisible:true,scrollOverflow:true};const styles$2=StyleSheet.create({wrapper:{flex:"1 1 auto",flexDirection:"column",background:semanticColor.core.background.base.default,boxSizing:"border-box",overflow:"hidden",height:"100%",width:"100%",[modalMediaQuery.smMinOrSmallerHeight]:{overflow:"auto"}},closeButton:{position:"absolute",insetInlineEnd:theme.closeButton.layout.gapRight,insetBlockStart:theme.closeButton.layout.gapTop,zIndex:1,":focus":focusStyles.focus[":focus-visible"]},hasFooter:{paddingBlockEnd:theme.panel.layout.gap.default}});
45
46
 
package/dist/index.js CHANGED
@@ -14,6 +14,7 @@ var wonderBlocksTiming = require('@khanacademy/wonder-blocks-timing');
14
14
  var wonderBlocksStyles = require('@khanacademy/wonder-blocks-styles');
15
15
  var xIcon = require('@phosphor-icons/core/bold/x-bold.svg');
16
16
  var IconButton = require('@khanacademy/wonder-blocks-icon-button');
17
+ var wonderBlocksConfig = require('@khanacademy/wonder-blocks-config');
17
18
 
18
19
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
19
20
 
@@ -68,7 +69,7 @@ const ModalLauncher=props=>{const{backdropDismissEnabled=true,children,closedFoc
68
69
 
69
70
  function ModalContent(props){const{scrollOverflow,style,children,applySmallHeightStyles=true}=props;return jsxRuntime.jsx(wonderBlocksCore.View,{style:[styles$3.wrapper,scrollOverflow&&styles$3.scrollOverflow,applySmallHeightStyles&&styles$3.wrapperSmallHeight],children:jsxRuntime.jsx(wonderBlocksCore.View,{style:[styles$3.content,applySmallHeightStyles&&styles$3.contentSmallHeight,style],children:children})})}ModalContent.__IS_MODAL_CONTENT__=true;ModalContent.isComponentOf=instance=>{return instance&&instance.type&&instance.type.__IS_MODAL_CONTENT__};const styles$3=aphrodite.StyleSheet.create({wrapper:{flex:1,display:"block"},wrapperSmallHeight:{[modalMediaQuery.smMinOrSmallerHeight]:{flex:"unset",minBlockSize:"unset",overflow:"unset"}},scrollOverflow:{overflow:"auto"},content:{flex:1,minBlockSize:"100%",padding:theme.panel.layout.gap.default,boxSizing:"border-box",[modalMediaQuery.midOrSmaller]:{paddingInline:theme.panel.layout.gap.small}},contentSmallHeight:{[modalMediaQuery.smMinOrSmallerHeight]:{flex:"unset",minBlockSize:"unset",overflow:"unset"}}});ModalContent.defaultProps={scrollOverflow:true,applySmallHeightStyles:true};
70
71
 
71
- const CloseButton=({onClick,style,testId})=>{return jsxRuntime.jsx(ModalContext.Consumer,{children:({closeModal})=>{if(closeModal&&onClick){throw new Error("You've specified 'onClose' on a modal when using ModalLauncher. Please specify 'onClose' on the ModalLauncher instead")}return jsxRuntime.jsx(IconButton__default["default"],{icon:xIcon__default["default"],"aria-label":"Close modal",onClick:onClick||closeModal,kind:"tertiary",actionType:"neutral",style:style,testId:testId})}})};
72
+ const CloseButton=({onClick,style,testId})=>{const{strings}=wonderBlocksConfig.useWonderBlocksI18n();return jsxRuntime.jsx(ModalContext.Consumer,{children:({closeModal})=>{if(closeModal&&onClick){throw new Error("You've specified 'onClose' on a modal when using ModalLauncher. Please specify 'onClose' on the ModalLauncher instead")}return jsxRuntime.jsx(IconButton__default["default"],{icon:xIcon__default["default"],"aria-label":strings.iconAltCloseModal,onClick:onClick||closeModal,kind:"tertiary",actionType:"neutral",style:style,testId:testId})}})};
72
73
 
73
74
  function ModalPanel({closeButtonVisible=true,scrollOverflow=true,content,footer,header,onClose,style,testId}){const renderMainContent=React__namespace.useCallback(()=>{const mainContent=ModalContent.isComponentOf(content)?content:jsxRuntime.jsx(ModalContent,{children:content});if(!mainContent){return mainContent}return React__namespace.cloneElement(mainContent,{scrollOverflow,style:[!!footer&&styles$2.hasFooter,mainContent.props.style]})},[content,footer,scrollOverflow]);const mainContent=renderMainContent();return jsxRuntime.jsxs(wonderBlocksCore.View,{style:[styles$2.wrapper,style],testId:testId&&`${testId}-panel`,children:[closeButtonVisible&&jsxRuntime.jsx(CloseButton,{onClick:onClose,style:[styles$2.closeButton],testId:testId&&`${testId}-close`}),header,mainContent,!footer||ModalFooter.isComponentOf(footer)?footer:jsxRuntime.jsx(ModalFooter,{children:footer})]})}ModalPanel.defaultProps={closeButtonVisible:true,scrollOverflow:true};const styles$2=aphrodite.StyleSheet.create({wrapper:{flex:"1 1 auto",flexDirection:"column",background:wonderBlocksTokens.semanticColor.core.background.base.default,boxSizing:"border-box",overflow:"hidden",height:"100%",width:"100%",[modalMediaQuery.smMinOrSmallerHeight]:{overflow:"auto"}},closeButton:{position:"absolute",insetInlineEnd:theme.closeButton.layout.gapRight,insetBlockStart:theme.closeButton.layout.gapTop,zIndex:1,":focus":wonderBlocksStyles.focusStyles.focus[":focus-visible"]},hasFooter:{paddingBlockEnd:theme.panel.layout.gap.default}});
74
75
 
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "",
4
4
  "author": "Khan Academy",
5
5
  "license": "MIT",
6
- "version": "8.9.2",
6
+ "version": "8.10.1",
7
7
  "publishConfig": {
8
8
  "access": "public"
9
9
  },
@@ -29,9 +29,10 @@
29
29
  },
30
30
  "dependencies": {
31
31
  "@khanacademy/wonder-blocks-announcer": "1.1.2",
32
- "@khanacademy/wonder-blocks-breadcrumbs": "3.3.2",
33
- "@khanacademy/wonder-blocks-core": "12.5.0",
32
+ "@khanacademy/wonder-blocks-config": "0.6.0",
33
+ "@khanacademy/wonder-blocks-breadcrumbs": "3.3.4",
34
34
  "@khanacademy/wonder-blocks-icon-button": "12.0.2",
35
+ "@khanacademy/wonder-blocks-core": "12.5.0",
35
36
  "@khanacademy/wonder-blocks-layout": "3.2.1",
36
37
  "@khanacademy/wonder-blocks-styles": "0.4.1",
37
38
  "@khanacademy/wonder-blocks-timing": "7.1.0",