@wordpress/components 25.4.0 → 25.5.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.
Files changed (119) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/build/border-control/border-control-dropdown/component.js +8 -10
  3. package/build/border-control/border-control-dropdown/component.js.map +1 -1
  4. package/build/color-palette/index.js +2 -2
  5. package/build/color-palette/index.js.map +1 -1
  6. package/build/focal-point-picker/index.native.js +6 -4
  7. package/build/focal-point-picker/index.native.js.map +1 -1
  8. package/build/menu-items-choice/index.js +1 -0
  9. package/build/menu-items-choice/index.js.map +1 -1
  10. package/build/mobile/bottom-sheet/bottom-sheet-navigation/bottom-sheet-navigation-context.native.js +3 -1
  11. package/build/mobile/bottom-sheet/bottom-sheet-navigation/bottom-sheet-navigation-context.native.js.map +1 -1
  12. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-container.native.js +50 -44
  13. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-container.native.js.map +1 -1
  14. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +13 -20
  15. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js.map +1 -1
  16. package/build/mobile/bottom-sheet/index.native.js +3 -1
  17. package/build/mobile/bottom-sheet/index.native.js.map +1 -1
  18. package/build/mobile/link-picker/link-picker-results.native.js +2 -1
  19. package/build/mobile/link-picker/link-picker-results.native.js.map +1 -1
  20. package/build/mobile/segmented-control/index.native.js +7 -7
  21. package/build/mobile/segmented-control/index.native.js.map +1 -1
  22. package/build/modal/index.js +14 -1
  23. package/build/modal/index.js.map +1 -1
  24. package/build/private-apis.js +4 -1
  25. package/build/private-apis.js.map +1 -1
  26. package/build/progress-bar/index.js +54 -0
  27. package/build/progress-bar/index.js.map +1 -0
  28. package/build/progress-bar/styles.js +69 -0
  29. package/build/progress-bar/styles.js.map +1 -0
  30. package/build/progress-bar/types.js +6 -0
  31. package/build/progress-bar/types.js.map +1 -0
  32. package/build/tab-panel/index.js +91 -58
  33. package/build/tab-panel/index.js.map +1 -1
  34. package/build-module/border-control/border-control-dropdown/component.js +8 -10
  35. package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
  36. package/build-module/color-palette/index.js +2 -2
  37. package/build-module/color-palette/index.js.map +1 -1
  38. package/build-module/focal-point-picker/index.native.js +6 -5
  39. package/build-module/focal-point-picker/index.native.js.map +1 -1
  40. package/build-module/menu-items-choice/index.js +1 -0
  41. package/build-module/menu-items-choice/index.js.map +1 -1
  42. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/bottom-sheet-navigation-context.native.js +3 -1
  43. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/bottom-sheet-navigation-context.native.js.map +1 -1
  44. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-container.native.js +43 -41
  45. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-container.native.js.map +1 -1
  46. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +14 -20
  47. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js.map +1 -1
  48. package/build-module/mobile/bottom-sheet/index.native.js +3 -1
  49. package/build-module/mobile/bottom-sheet/index.native.js.map +1 -1
  50. package/build-module/mobile/link-picker/link-picker-results.native.js +2 -1
  51. package/build-module/mobile/link-picker/link-picker-results.native.js.map +1 -1
  52. package/build-module/mobile/segmented-control/index.native.js +7 -7
  53. package/build-module/mobile/segmented-control/index.native.js.map +1 -1
  54. package/build-module/modal/index.js +14 -1
  55. package/build-module/modal/index.js.map +1 -1
  56. package/build-module/private-apis.js +3 -1
  57. package/build-module/private-apis.js.map +1 -1
  58. package/build-module/progress-bar/index.js +41 -0
  59. package/build-module/progress-bar/index.js.map +1 -0
  60. package/build-module/progress-bar/styles.js +61 -0
  61. package/build-module/progress-bar/styles.js.map +1 -0
  62. package/build-module/progress-bar/types.js +2 -0
  63. package/build-module/progress-bar/types.js.map +1 -0
  64. package/build-module/tab-panel/index.js +88 -59
  65. package/build-module/tab-panel/index.js.map +1 -1
  66. package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -1
  67. package/build-types/menu-items-choice/index.d.ts.map +1 -1
  68. package/build-types/menu-items-choice/types.d.ts +5 -0
  69. package/build-types/menu-items-choice/types.d.ts.map +1 -1
  70. package/build-types/modal/index.d.ts.map +1 -1
  71. package/build-types/private-apis.d.ts.map +1 -1
  72. package/build-types/progress-bar/index.d.ts +5 -0
  73. package/build-types/progress-bar/index.d.ts.map +1 -0
  74. package/build-types/progress-bar/stories/index.d.ts +12 -0
  75. package/build-types/progress-bar/stories/index.d.ts.map +1 -0
  76. package/build-types/progress-bar/styles.d.ts +18 -0
  77. package/build-types/progress-bar/styles.d.ts.map +1 -0
  78. package/build-types/progress-bar/test/index.d.ts +2 -0
  79. package/build-types/progress-bar/test/index.d.ts.map +1 -0
  80. package/build-types/progress-bar/types.d.ts +11 -0
  81. package/build-types/progress-bar/types.d.ts.map +1 -0
  82. package/build-types/tab-panel/index.d.ts.map +1 -1
  83. package/build-types/tab-panel/stories/index.d.ts +1 -0
  84. package/build-types/tab-panel/stories/index.d.ts.map +1 -1
  85. package/build-types/tab-panel/types.d.ts +1 -9
  86. package/build-types/tab-panel/types.d.ts.map +1 -1
  87. package/package.json +20 -20
  88. package/src/border-control/border-control-dropdown/component.tsx +7 -11
  89. package/src/border-control/test/index.js +6 -6
  90. package/src/color-palette/index.tsx +2 -2
  91. package/src/color-palette/test/__snapshots__/index.tsx.snap +1 -1
  92. package/src/color-palette/test/index.tsx +1 -5
  93. package/src/draggable/test/index.native.js +4 -0
  94. package/src/focal-point-picker/index.native.js +6 -5
  95. package/src/menu-item/README.md +7 -0
  96. package/src/menu-items-choice/index.tsx +1 -0
  97. package/src/menu-items-choice/types.ts +5 -0
  98. package/src/mobile/bottom-sheet/bottom-sheet-navigation/bottom-sheet-navigation-context.native.js +1 -1
  99. package/src/mobile/bottom-sheet/bottom-sheet-navigation/navigation-container.native.js +72 -53
  100. package/src/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +15 -21
  101. package/src/mobile/bottom-sheet/bottom-sheet-navigation/test/navigation-container.native.js +165 -119
  102. package/src/mobile/bottom-sheet/index.native.js +2 -0
  103. package/src/mobile/link-picker/link-picker-results.native.js +1 -1
  104. package/src/mobile/link-settings/test/edit.native.js +37 -23
  105. package/src/mobile/segmented-control/index.native.js +11 -11
  106. package/src/modal/index.tsx +16 -0
  107. package/src/modal/test/index.tsx +33 -0
  108. package/src/private-apis.ts +2 -0
  109. package/src/progress-bar/README.md +30 -0
  110. package/src/progress-bar/index.tsx +45 -0
  111. package/src/progress-bar/stories/index.tsx +33 -0
  112. package/src/progress-bar/styles.ts +67 -0
  113. package/src/progress-bar/test/index.tsx +79 -0
  114. package/src/progress-bar/types.ts +11 -0
  115. package/src/tab-panel/index.tsx +121 -84
  116. package/src/tab-panel/stories/index.tsx +6 -0
  117. package/src/tab-panel/test/index.tsx +128 -109
  118. package/src/tab-panel/types.ts +1 -10
  119. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/modal/index.tsx"],"names":["openModalCount","UnforwardedModal","props","forwardedRef","bodyOpenClassName","role","title","focusOnMount","shouldCloseOnEsc","shouldCloseOnClickOutside","isDismissible","aria","labelledby","undefined","describedby","onRequestClose","icon","closeButtonLabel","children","style","overlayClassName","className","contentLabel","onKeyDown","isFullScreen","__experimentalHideHeader","ref","instanceId","Modal","headingId","focusOnMountRef","constrainedTabbingRef","focusReturnRef","focusOutsideProps","contentRef","childrenContainerRef","hasScrolledContent","setHasScrolledContent","hasScrollableContent","setHasScrollableContent","isContentScrollable","current","closestScrollContainer","ariaHelper","hideApp","document","body","classList","add","remove","showApp","window","ResizeObserver","resizeObserver","observe","disconnect","handleEscapeKeyDown","event","nativeEvent","isComposing","keyCode","code","defaultPrevented","preventDefault","onContentContainerScroll","e","scrollY","currentTarget","scrollTop","close"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport type { ForwardedRef, KeyboardEvent, UIEvent } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tcreatePortal,\n\tuseCallback,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n\tforwardRef,\n\tuseLayoutEffect,\n} from '@wordpress/element';\nimport {\n\tuseInstanceId,\n\tuseFocusReturn,\n\tuseFocusOnMount,\n\t__experimentalUseFocusOutside as useFocusOutside,\n\tuseConstrainedTabbing,\n\tuseMergeRefs,\n} from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { close } from '@wordpress/icons';\nimport { getScrollContainer } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport * as ariaHelper from './aria-helper';\nimport Button from '../button';\nimport StyleProvider from '../style-provider';\nimport type { ModalProps } from './types';\n\n// Used to count the number of open modals.\nlet openModalCount = 0;\n\nfunction UnforwardedModal(\n\tprops: ModalProps,\n\tforwardedRef: ForwardedRef< HTMLDivElement >\n) {\n\tconst {\n\t\tbodyOpenClassName = 'modal-open',\n\t\trole = 'dialog',\n\t\ttitle = null,\n\t\tfocusOnMount = true,\n\t\tshouldCloseOnEsc = true,\n\t\tshouldCloseOnClickOutside = true,\n\t\tisDismissible = true,\n\t\t/* Accessibility. */\n\t\taria = {\n\t\t\tlabelledby: undefined,\n\t\t\tdescribedby: undefined,\n\t\t},\n\t\tonRequestClose,\n\t\ticon,\n\t\tcloseButtonLabel,\n\t\tchildren,\n\t\tstyle,\n\t\toverlayClassName,\n\t\tclassName,\n\t\tcontentLabel,\n\t\tonKeyDown,\n\t\tisFullScreen = false,\n\t\t__experimentalHideHeader = false,\n\t} = props;\n\n\tconst ref = useRef< HTMLDivElement >();\n\tconst instanceId = useInstanceId( Modal );\n\tconst headingId = title\n\t\t? `components-modal-header-${ instanceId }`\n\t\t: aria.labelledby;\n\tconst focusOnMountRef = useFocusOnMount( focusOnMount );\n\tconst constrainedTabbingRef = useConstrainedTabbing();\n\tconst focusReturnRef = useFocusReturn();\n\tconst focusOutsideProps = useFocusOutside( onRequestClose );\n\tconst contentRef = useRef< HTMLDivElement >( null );\n\tconst childrenContainerRef = useRef< HTMLDivElement >( null );\n\n\tconst [ hasScrolledContent, setHasScrolledContent ] = useState( false );\n\tconst [ hasScrollableContent, setHasScrollableContent ] = useState( false );\n\n\t// Determines whether the Modal content is scrollable and updates the state.\n\tconst isContentScrollable = useCallback( () => {\n\t\tif ( ! contentRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst closestScrollContainer = getScrollContainer( contentRef.current );\n\n\t\tif ( contentRef.current === closestScrollContainer ) {\n\t\t\tsetHasScrollableContent( true );\n\t\t} else {\n\t\t\tsetHasScrollableContent( false );\n\t\t}\n\t}, [ contentRef ] );\n\n\tuseEffect( () => {\n\t\topenModalCount++;\n\n\t\tif ( openModalCount === 1 ) {\n\t\t\tariaHelper.hideApp( ref.current );\n\t\t\tdocument.body.classList.add( bodyOpenClassName );\n\t\t}\n\n\t\treturn () => {\n\t\t\topenModalCount--;\n\n\t\t\tif ( openModalCount === 0 ) {\n\t\t\t\tdocument.body.classList.remove( bodyOpenClassName );\n\t\t\t\tariaHelper.showApp();\n\t\t\t}\n\t\t};\n\t}, [ bodyOpenClassName ] );\n\n\t// Calls the isContentScrollable callback when the Modal children container resizes.\n\tuseLayoutEffect( () => {\n\t\tif ( ! window.ResizeObserver || ! childrenContainerRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst resizeObserver = new ResizeObserver( isContentScrollable );\n\t\tresizeObserver.observe( childrenContainerRef.current );\n\n\t\tisContentScrollable();\n\n\t\treturn () => {\n\t\t\tresizeObserver.disconnect();\n\t\t};\n\t}, [ isContentScrollable, childrenContainerRef ] );\n\n\tfunction handleEscapeKeyDown( event: KeyboardEvent< HTMLDivElement > ) {\n\t\tif (\n\t\t\t// Ignore keydowns from IMEs\n\t\t\tevent.nativeEvent.isComposing ||\n\t\t\t// Workaround for Mac Safari where the final Enter/Backspace of an IME composition\n\t\t\t// is `isComposing=false`, even though it's technically still part of the composition.\n\t\t\t// These can only be detected by keyCode.\n\t\t\tevent.keyCode === 229\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\tshouldCloseOnEsc &&\n\t\t\tevent.code === 'Escape' &&\n\t\t\t! event.defaultPrevented\n\t\t) {\n\t\t\tevent.preventDefault();\n\t\t\tif ( onRequestClose ) {\n\t\t\t\tonRequestClose( event );\n\t\t\t}\n\t\t}\n\t}\n\n\tconst onContentContainerScroll = useCallback(\n\t\t( e: UIEvent< HTMLDivElement > ) => {\n\t\t\tconst scrollY = e?.currentTarget?.scrollTop ?? -1;\n\n\t\t\tif ( ! hasScrolledContent && scrollY > 0 ) {\n\t\t\t\tsetHasScrolledContent( true );\n\t\t\t} else if ( hasScrolledContent && scrollY <= 0 ) {\n\t\t\t\tsetHasScrolledContent( false );\n\t\t\t}\n\t\t},\n\t\t[ hasScrolledContent ]\n\t);\n\n\treturn createPortal(\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\tref={ useMergeRefs( [ ref, forwardedRef ] ) }\n\t\t\tclassName={ classnames(\n\t\t\t\t'components-modal__screen-overlay',\n\t\t\t\toverlayClassName\n\t\t\t) }\n\t\t\tonKeyDown={ handleEscapeKeyDown }\n\t\t>\n\t\t\t<StyleProvider document={ document }>\n\t\t\t\t<div\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'components-modal__frame',\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-full-screen': isFullScreen,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ style }\n\t\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\t\tconstrainedTabbingRef,\n\t\t\t\t\t\tfocusReturnRef,\n\t\t\t\t\t\tfocusOnMountRef,\n\t\t\t\t\t] ) }\n\t\t\t\t\trole={ role }\n\t\t\t\t\taria-label={ contentLabel }\n\t\t\t\t\taria-labelledby={ contentLabel ? undefined : headingId }\n\t\t\t\t\taria-describedby={ aria.describedby }\n\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\t{ ...( shouldCloseOnClickOutside\n\t\t\t\t\t\t? focusOutsideProps\n\t\t\t\t\t\t: {} ) }\n\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ classnames( 'components-modal__content', {\n\t\t\t\t\t\t\t'hide-header': __experimentalHideHeader,\n\t\t\t\t\t\t\t'is-scrollable': hasScrollableContent,\n\t\t\t\t\t\t\t'has-scrolled-content': hasScrolledContent,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t\trole=\"document\"\n\t\t\t\t\t\tonScroll={ onContentContainerScroll }\n\t\t\t\t\t\tref={ contentRef }\n\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\thasScrollableContent\n\t\t\t\t\t\t\t\t? __( 'Scrollable section' )\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttabIndex={ hasScrollableContent ? 0 : undefined }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ! __experimentalHideHeader && (\n\t\t\t\t\t\t\t<div className=\"components-modal__header\">\n\t\t\t\t\t\t\t\t<div className=\"components-modal__header-heading-container\">\n\t\t\t\t\t\t\t\t\t{ icon && (\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-modal__icon-container\"\n\t\t\t\t\t\t\t\t\t\t\taria-hidden\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ icon }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ title && (\n\t\t\t\t\t\t\t\t\t\t<h1\n\t\t\t\t\t\t\t\t\t\t\tid={ headingId }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-modal__header-heading\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{ isDismissible && (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tonClick={ onRequestClose }\n\t\t\t\t\t\t\t\t\t\ticon={ close }\n\t\t\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t\t\tcloseButtonLabel || __( 'Close' )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<div ref={ childrenContainerRef }>{ children }</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</StyleProvider>\n\t\t</div>,\n\t\tdocument.body\n\t);\n}\n\n/**\n * Modals give users information and choices related to a task they’re trying to\n * accomplish. They can contain critical information, require decisions, or\n * involve multiple tasks.\n *\n * ```jsx\n * import { Button, Modal } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyModal = () => {\n * const [ isOpen, setOpen ] = useState( false );\n * const openModal = () => setOpen( true );\n * const closeModal = () => setOpen( false );\n *\n * return (\n * <>\n * <Button variant=\"secondary\" onClick={ openModal }>\n * Open Modal\n * </Button>\n * { isOpen && (\n * <Modal title=\"This is my modal\" onRequestClose={ closeModal }>\n * <Button variant=\"secondary\" onClick={ closeModal }>\n * My custom close button\n * </Button>\n * </Modal>\n * ) }\n * </>\n * );\n * };\n * ```\n */\nexport const Modal = forwardRef( UnforwardedModal );\n\nexport default Modal;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/modal/index.tsx"],"names":["openModalCount","UnforwardedModal","props","forwardedRef","bodyOpenClassName","role","title","focusOnMount","shouldCloseOnEsc","shouldCloseOnClickOutside","isDismissible","aria","labelledby","undefined","describedby","onRequestClose","icon","closeButtonLabel","children","style","overlayClassName","className","contentLabel","onKeyDown","isFullScreen","__experimentalHideHeader","ref","instanceId","Modal","headingId","focusOnMountRef","constrainedTabbingRef","focusReturnRef","focusOutsideProps","contentRef","childrenContainerRef","hasScrolledContent","setHasScrolledContent","hasScrollableContent","setHasScrollableContent","isContentScrollable","current","closestScrollContainer","ariaHelper","hideApp","document","body","classList","add","remove","showApp","window","ResizeObserver","resizeObserver","observe","disconnect","handleEscapeKeyDown","event","nativeEvent","isComposing","keyCode","code","defaultPrevented","preventDefault","onContentContainerScroll","e","scrollY","currentTarget","scrollTop","onOverlayPress","target","close"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport type { ForwardedRef, KeyboardEvent, UIEvent } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tcreatePortal,\n\tuseCallback,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n\tforwardRef,\n\tuseLayoutEffect,\n} from '@wordpress/element';\nimport {\n\tuseInstanceId,\n\tuseFocusReturn,\n\tuseFocusOnMount,\n\t__experimentalUseFocusOutside as useFocusOutside,\n\tuseConstrainedTabbing,\n\tuseMergeRefs,\n} from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { close } from '@wordpress/icons';\nimport { getScrollContainer } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport * as ariaHelper from './aria-helper';\nimport Button from '../button';\nimport StyleProvider from '../style-provider';\nimport type { ModalProps } from './types';\n\n// Used to count the number of open modals.\nlet openModalCount = 0;\n\nfunction UnforwardedModal(\n\tprops: ModalProps,\n\tforwardedRef: ForwardedRef< HTMLDivElement >\n) {\n\tconst {\n\t\tbodyOpenClassName = 'modal-open',\n\t\trole = 'dialog',\n\t\ttitle = null,\n\t\tfocusOnMount = true,\n\t\tshouldCloseOnEsc = true,\n\t\tshouldCloseOnClickOutside = true,\n\t\tisDismissible = true,\n\t\t/* Accessibility. */\n\t\taria = {\n\t\t\tlabelledby: undefined,\n\t\t\tdescribedby: undefined,\n\t\t},\n\t\tonRequestClose,\n\t\ticon,\n\t\tcloseButtonLabel,\n\t\tchildren,\n\t\tstyle,\n\t\toverlayClassName,\n\t\tclassName,\n\t\tcontentLabel,\n\t\tonKeyDown,\n\t\tisFullScreen = false,\n\t\t__experimentalHideHeader = false,\n\t} = props;\n\n\tconst ref = useRef< HTMLDivElement >();\n\tconst instanceId = useInstanceId( Modal );\n\tconst headingId = title\n\t\t? `components-modal-header-${ instanceId }`\n\t\t: aria.labelledby;\n\tconst focusOnMountRef = useFocusOnMount( focusOnMount );\n\tconst constrainedTabbingRef = useConstrainedTabbing();\n\tconst focusReturnRef = useFocusReturn();\n\tconst focusOutsideProps = useFocusOutside( onRequestClose );\n\tconst contentRef = useRef< HTMLDivElement >( null );\n\tconst childrenContainerRef = useRef< HTMLDivElement >( null );\n\n\tconst [ hasScrolledContent, setHasScrolledContent ] = useState( false );\n\tconst [ hasScrollableContent, setHasScrollableContent ] = useState( false );\n\n\t// Determines whether the Modal content is scrollable and updates the state.\n\tconst isContentScrollable = useCallback( () => {\n\t\tif ( ! contentRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst closestScrollContainer = getScrollContainer( contentRef.current );\n\n\t\tif ( contentRef.current === closestScrollContainer ) {\n\t\t\tsetHasScrollableContent( true );\n\t\t} else {\n\t\t\tsetHasScrollableContent( false );\n\t\t}\n\t}, [ contentRef ] );\n\n\tuseEffect( () => {\n\t\topenModalCount++;\n\n\t\tif ( openModalCount === 1 ) {\n\t\t\tariaHelper.hideApp( ref.current );\n\t\t\tdocument.body.classList.add( bodyOpenClassName );\n\t\t}\n\n\t\treturn () => {\n\t\t\topenModalCount--;\n\n\t\t\tif ( openModalCount === 0 ) {\n\t\t\t\tdocument.body.classList.remove( bodyOpenClassName );\n\t\t\t\tariaHelper.showApp();\n\t\t\t}\n\t\t};\n\t}, [ bodyOpenClassName ] );\n\n\t// Calls the isContentScrollable callback when the Modal children container resizes.\n\tuseLayoutEffect( () => {\n\t\tif ( ! window.ResizeObserver || ! childrenContainerRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst resizeObserver = new ResizeObserver( isContentScrollable );\n\t\tresizeObserver.observe( childrenContainerRef.current );\n\n\t\tisContentScrollable();\n\n\t\treturn () => {\n\t\t\tresizeObserver.disconnect();\n\t\t};\n\t}, [ isContentScrollable, childrenContainerRef ] );\n\n\tfunction handleEscapeKeyDown( event: KeyboardEvent< HTMLDivElement > ) {\n\t\tif (\n\t\t\t// Ignore keydowns from IMEs\n\t\t\tevent.nativeEvent.isComposing ||\n\t\t\t// Workaround for Mac Safari where the final Enter/Backspace of an IME composition\n\t\t\t// is `isComposing=false`, even though it's technically still part of the composition.\n\t\t\t// These can only be detected by keyCode.\n\t\t\tevent.keyCode === 229\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\tshouldCloseOnEsc &&\n\t\t\tevent.code === 'Escape' &&\n\t\t\t! event.defaultPrevented\n\t\t) {\n\t\t\tevent.preventDefault();\n\t\t\tif ( onRequestClose ) {\n\t\t\t\tonRequestClose( event );\n\t\t\t}\n\t\t}\n\t}\n\n\tconst onContentContainerScroll = useCallback(\n\t\t( e: UIEvent< HTMLDivElement > ) => {\n\t\t\tconst scrollY = e?.currentTarget?.scrollTop ?? -1;\n\n\t\t\tif ( ! hasScrolledContent && scrollY > 0 ) {\n\t\t\t\tsetHasScrolledContent( true );\n\t\t\t} else if ( hasScrolledContent && scrollY <= 0 ) {\n\t\t\t\tsetHasScrolledContent( false );\n\t\t\t}\n\t\t},\n\t\t[ hasScrolledContent ]\n\t);\n\n\tconst onOverlayPress: React.PointerEventHandler< HTMLDivElement > = (\n\t\tevent\n\t) => {\n\t\tif ( event.target === event.currentTarget ) {\n\t\t\tevent.preventDefault();\n\t\t\tonRequestClose( event );\n\t\t}\n\t};\n\n\treturn createPortal(\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\tref={ useMergeRefs( [ ref, forwardedRef ] ) }\n\t\t\tclassName={ classnames(\n\t\t\t\t'components-modal__screen-overlay',\n\t\t\t\toverlayClassName\n\t\t\t) }\n\t\t\tonKeyDown={ handleEscapeKeyDown }\n\t\t\t// Avoids loss of focus from clicking the overlay and also obviates\n\t\t\t// `useFocusOutside` aside from cases of focus programmatically\n\t\t\t// moving outside. TODO ideally both the hook and this handler\n\t\t\t// won't be needed and one can be removed.\n\t\t\tonPointerDown={\n\t\t\t\tshouldCloseOnClickOutside ? onOverlayPress : undefined\n\t\t\t}\n\t\t>\n\t\t\t<StyleProvider document={ document }>\n\t\t\t\t<div\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'components-modal__frame',\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-full-screen': isFullScreen,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ style }\n\t\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\t\tconstrainedTabbingRef,\n\t\t\t\t\t\tfocusReturnRef,\n\t\t\t\t\t\tfocusOnMountRef,\n\t\t\t\t\t] ) }\n\t\t\t\t\trole={ role }\n\t\t\t\t\taria-label={ contentLabel }\n\t\t\t\t\taria-labelledby={ contentLabel ? undefined : headingId }\n\t\t\t\t\taria-describedby={ aria.describedby }\n\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\t{ ...( shouldCloseOnClickOutside\n\t\t\t\t\t\t? focusOutsideProps\n\t\t\t\t\t\t: {} ) }\n\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ classnames( 'components-modal__content', {\n\t\t\t\t\t\t\t'hide-header': __experimentalHideHeader,\n\t\t\t\t\t\t\t'is-scrollable': hasScrollableContent,\n\t\t\t\t\t\t\t'has-scrolled-content': hasScrolledContent,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t\trole=\"document\"\n\t\t\t\t\t\tonScroll={ onContentContainerScroll }\n\t\t\t\t\t\tref={ contentRef }\n\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\thasScrollableContent\n\t\t\t\t\t\t\t\t? __( 'Scrollable section' )\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttabIndex={ hasScrollableContent ? 0 : undefined }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ! __experimentalHideHeader && (\n\t\t\t\t\t\t\t<div className=\"components-modal__header\">\n\t\t\t\t\t\t\t\t<div className=\"components-modal__header-heading-container\">\n\t\t\t\t\t\t\t\t\t{ icon && (\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-modal__icon-container\"\n\t\t\t\t\t\t\t\t\t\t\taria-hidden\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ icon }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ title && (\n\t\t\t\t\t\t\t\t\t\t<h1\n\t\t\t\t\t\t\t\t\t\t\tid={ headingId }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-modal__header-heading\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{ isDismissible && (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tonClick={ onRequestClose }\n\t\t\t\t\t\t\t\t\t\ticon={ close }\n\t\t\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t\t\tcloseButtonLabel || __( 'Close' )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<div ref={ childrenContainerRef }>{ children }</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</StyleProvider>\n\t\t</div>,\n\t\tdocument.body\n\t);\n}\n\n/**\n * Modals give users information and choices related to a task they’re trying to\n * accomplish. They can contain critical information, require decisions, or\n * involve multiple tasks.\n *\n * ```jsx\n * import { Button, Modal } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyModal = () => {\n * const [ isOpen, setOpen ] = useState( false );\n * const openModal = () => setOpen( true );\n * const closeModal = () => setOpen( false );\n *\n * return (\n * <>\n * <Button variant=\"secondary\" onClick={ openModal }>\n * Open Modal\n * </Button>\n * { isOpen && (\n * <Modal title=\"This is my modal\" onRequestClose={ closeModal }>\n * <Button variant=\"secondary\" onClick={ closeModal }>\n * My custom close button\n * </Button>\n * </Modal>\n * ) }\n * </>\n * );\n * };\n * ```\n */\nexport const Modal = forwardRef( UnforwardedModal );\n\nexport default Modal;\n"]}
@@ -13,6 +13,8 @@ var _customSelectControl = _interopRequireDefault(require("./custom-select-contr
13
13
 
14
14
  var _utils = require("./popover/utils");
15
15
 
16
+ var _progressBar = _interopRequireDefault(require("./progress-bar"));
17
+
16
18
  var _slotFill = require("./slot-fill");
17
19
 
18
20
  var _dropdownMenuV = require("./dropdown-menu-v2");
@@ -48,6 +50,7 @@ lock(privateApis, {
48
50
  DropdownMenuRadioItemV2: _dropdownMenuV.DropdownMenuRadioItem,
49
51
  DropdownMenuSeparatorV2: _dropdownMenuV.DropdownMenuSeparator,
50
52
  DropdownSubMenuV2: _dropdownMenuV.DropdownSubMenu,
51
- DropdownSubMenuTriggerV2: _dropdownMenuV.DropdownSubMenuTrigger
53
+ DropdownSubMenuTriggerV2: _dropdownMenuV.DropdownSubMenuTrigger,
54
+ ProgressBar: _progressBar.default
52
55
  });
53
56
  //# sourceMappingURL=private-apis.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/private-apis.ts"],"names":["lock","unlock","privateApis","CustomSelectControl","__experimentalPopoverLegacyPositionToPlacement","createPrivateSlotFill","ComponentsContext","DropdownMenuV2","DropdownMenuCheckboxItemV2","DropdownMenuGroupV2","DropdownMenuItemV2","DropdownMenuLabelV2","DropdownMenuRadioGroupV2","DropdownMenuRadioItemV2","DropdownMenuSeparatorV2","DropdownSubMenuV2","DropdownSubMenuTriggerV2"],"mappings":";;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AACA;;AAYA;;AAvBA;AACA;AACA;;AAGA;AACA;AACA;AAkBO,MAAM;AAAEA,EAAAA,IAAF;AAAQC,EAAAA;AAAR,IACZ,mEACC,8GADD,EAEC,uBAFD,CADM;;;AAMA,MAAMC,WAAW,GAAG,EAApB;;AACPF,IAAI,CAAEE,WAAF,EAAe;AAClBC,EAAAA,mBAAmB,EAAnBA,4BADkB;AAElBC,EAAAA,8CAA8C,EAA9CA,0BAFkB;AAGlBC,EAAAA,qBAAqB,EAArBA,+BAHkB;AAIlBC,EAAAA,iBAAiB,EAAjBA,wCAJkB;AAKlBC,EAAAA,cAAc,EAAdA,2BALkB;AAMlBC,EAAAA,0BAA0B,EAA1BA,uCANkB;AAOlBC,EAAAA,mBAAmB,EAAnBA,gCAPkB;AAQlBC,EAAAA,kBAAkB,EAAlBA,+BARkB;AASlBC,EAAAA,mBAAmB,EAAnBA,gCATkB;AAUlBC,EAAAA,wBAAwB,EAAxBA,qCAVkB;AAWlBC,EAAAA,uBAAuB,EAAvBA,oCAXkB;AAYlBC,EAAAA,uBAAuB,EAAvBA,oCAZkB;AAalBC,EAAAA,iBAAiB,EAAjBA,8BAbkB;AAclBC,EAAAA,wBAAwB,EAAxBA;AAdkB,CAAf,CAAJ","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/private-apis';\n\n/**\n * Internal dependencies\n */\nimport { default as CustomSelectControl } from './custom-select-control';\nimport { positionToPlacement as __experimentalPopoverLegacyPositionToPlacement } from './popover/utils';\nimport { createPrivateSlotFill } from './slot-fill';\nimport {\n\tDropdownMenu as DropdownMenuV2,\n\tDropdownMenuCheckboxItem as DropdownMenuCheckboxItemV2,\n\tDropdownMenuGroup as DropdownMenuGroupV2,\n\tDropdownMenuItem as DropdownMenuItemV2,\n\tDropdownMenuLabel as DropdownMenuLabelV2,\n\tDropdownMenuRadioGroup as DropdownMenuRadioGroupV2,\n\tDropdownMenuRadioItem as DropdownMenuRadioItemV2,\n\tDropdownMenuSeparator as DropdownMenuSeparatorV2,\n\tDropdownSubMenu as DropdownSubMenuV2,\n\tDropdownSubMenuTrigger as DropdownSubMenuTriggerV2,\n} from './dropdown-menu-v2';\nimport { ComponentsContext } from './ui/context/context-system-provider';\n\nexport const { lock, unlock } =\n\t__dangerousOptInToUnstableAPIsOnlyForCoreModules(\n\t\t'I know using unstable features means my plugin or theme will inevitably break on the next WordPress release.',\n\t\t'@wordpress/components'\n\t);\n\nexport const privateApis = {};\nlock( privateApis, {\n\tCustomSelectControl,\n\t__experimentalPopoverLegacyPositionToPlacement,\n\tcreatePrivateSlotFill,\n\tComponentsContext,\n\tDropdownMenuV2,\n\tDropdownMenuCheckboxItemV2,\n\tDropdownMenuGroupV2,\n\tDropdownMenuItemV2,\n\tDropdownMenuLabelV2,\n\tDropdownMenuRadioGroupV2,\n\tDropdownMenuRadioItemV2,\n\tDropdownMenuSeparatorV2,\n\tDropdownSubMenuV2,\n\tDropdownSubMenuTriggerV2,\n} );\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/private-apis.ts"],"names":["lock","unlock","privateApis","CustomSelectControl","__experimentalPopoverLegacyPositionToPlacement","createPrivateSlotFill","ComponentsContext","DropdownMenuV2","DropdownMenuCheckboxItemV2","DropdownMenuGroupV2","DropdownMenuItemV2","DropdownMenuLabelV2","DropdownMenuRadioGroupV2","DropdownMenuRadioItemV2","DropdownMenuSeparatorV2","DropdownSubMenuV2","DropdownSubMenuTriggerV2","ProgressBar"],"mappings":";;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AAYA;;AAxBA;AACA;AACA;;AAGA;AACA;AACA;AAmBO,MAAM;AAAEA,EAAAA,IAAF;AAAQC,EAAAA;AAAR,IACZ,mEACC,8GADD,EAEC,uBAFD,CADM;;;AAMA,MAAMC,WAAW,GAAG,EAApB;;AACPF,IAAI,CAAEE,WAAF,EAAe;AAClBC,EAAAA,mBAAmB,EAAnBA,4BADkB;AAElBC,EAAAA,8CAA8C,EAA9CA,0BAFkB;AAGlBC,EAAAA,qBAAqB,EAArBA,+BAHkB;AAIlBC,EAAAA,iBAAiB,EAAjBA,wCAJkB;AAKlBC,EAAAA,cAAc,EAAdA,2BALkB;AAMlBC,EAAAA,0BAA0B,EAA1BA,uCANkB;AAOlBC,EAAAA,mBAAmB,EAAnBA,gCAPkB;AAQlBC,EAAAA,kBAAkB,EAAlBA,+BARkB;AASlBC,EAAAA,mBAAmB,EAAnBA,gCATkB;AAUlBC,EAAAA,wBAAwB,EAAxBA,qCAVkB;AAWlBC,EAAAA,uBAAuB,EAAvBA,oCAXkB;AAYlBC,EAAAA,uBAAuB,EAAvBA,oCAZkB;AAalBC,EAAAA,iBAAiB,EAAjBA,8BAbkB;AAclBC,EAAAA,wBAAwB,EAAxBA,qCAdkB;AAelBC,EAAAA,WAAW,EAAXA;AAfkB,CAAf,CAAJ","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/private-apis';\n\n/**\n * Internal dependencies\n */\nimport { default as CustomSelectControl } from './custom-select-control';\nimport { positionToPlacement as __experimentalPopoverLegacyPositionToPlacement } from './popover/utils';\nimport { default as ProgressBar } from './progress-bar';\nimport { createPrivateSlotFill } from './slot-fill';\nimport {\n\tDropdownMenu as DropdownMenuV2,\n\tDropdownMenuCheckboxItem as DropdownMenuCheckboxItemV2,\n\tDropdownMenuGroup as DropdownMenuGroupV2,\n\tDropdownMenuItem as DropdownMenuItemV2,\n\tDropdownMenuLabel as DropdownMenuLabelV2,\n\tDropdownMenuRadioGroup as DropdownMenuRadioGroupV2,\n\tDropdownMenuRadioItem as DropdownMenuRadioItemV2,\n\tDropdownMenuSeparator as DropdownMenuSeparatorV2,\n\tDropdownSubMenu as DropdownSubMenuV2,\n\tDropdownSubMenuTrigger as DropdownSubMenuTriggerV2,\n} from './dropdown-menu-v2';\nimport { ComponentsContext } from './ui/context/context-system-provider';\n\nexport const { lock, unlock } =\n\t__dangerousOptInToUnstableAPIsOnlyForCoreModules(\n\t\t'I know using unstable features means my plugin or theme will inevitably break on the next WordPress release.',\n\t\t'@wordpress/components'\n\t);\n\nexport const privateApis = {};\nlock( privateApis, {\n\tCustomSelectControl,\n\t__experimentalPopoverLegacyPositionToPlacement,\n\tcreatePrivateSlotFill,\n\tComponentsContext,\n\tDropdownMenuV2,\n\tDropdownMenuCheckboxItemV2,\n\tDropdownMenuGroupV2,\n\tDropdownMenuItemV2,\n\tDropdownMenuLabelV2,\n\tDropdownMenuRadioGroupV2,\n\tDropdownMenuRadioItemV2,\n\tDropdownMenuSeparatorV2,\n\tDropdownSubMenuV2,\n\tDropdownSubMenuTriggerV2,\n\tProgressBar,\n} );\n"]}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.ProgressBar = void 0;
7
+
8
+ var _element = require("@wordpress/element");
9
+
10
+ var _i18n = require("@wordpress/i18n");
11
+
12
+ var ProgressBarStyled = _interopRequireWildcard(require("./styles"));
13
+
14
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
+
16
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
+
18
+ /**
19
+ * External dependencies
20
+ */
21
+
22
+ /**
23
+ * WordPress dependencies
24
+ */
25
+
26
+ /**
27
+ * Internal dependencies
28
+ */
29
+ function UnforwardedProgressBar(props, ref) {
30
+ const {
31
+ className,
32
+ value,
33
+ ...progressProps
34
+ } = props;
35
+ const isIndeterminate = !Number.isFinite(value);
36
+ return (0, _element.createElement)(ProgressBarStyled.Track, {
37
+ className: className
38
+ }, (0, _element.createElement)(ProgressBarStyled.Indicator, {
39
+ isIndeterminate: isIndeterminate,
40
+ value: value
41
+ }), (0, _element.createElement)(ProgressBarStyled.ProgressElement, {
42
+ max: 100,
43
+ value: value,
44
+ "aria-label": (0, _i18n.__)('Loading …'),
45
+ ref: ref,
46
+ ...progressProps
47
+ }));
48
+ }
49
+
50
+ const ProgressBar = (0, _element.forwardRef)(UnforwardedProgressBar);
51
+ exports.ProgressBar = ProgressBar;
52
+ var _default = ProgressBar;
53
+ exports.default = _default;
54
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/components/src/progress-bar/index.tsx"],"names":["UnforwardedProgressBar","props","ref","className","value","progressProps","isIndeterminate","Number","isFinite","ProgressBar"],"mappings":";;;;;;;AASA;;AADA;;AAMA;;;;;;AAdA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;AAKA,SAASA,sBAAT,CACCC,KADD,EAECC,GAFD,EAGE;AACD,QAAM;AAAEC,IAAAA,SAAF;AAAaC,IAAAA,KAAb;AAAoB,OAAGC;AAAvB,MAAyCJ,KAA/C;AACA,QAAMK,eAAe,GAAG,CAAEC,MAAM,CAACC,QAAP,CAAiBJ,KAAjB,CAA1B;AAEA,SACC,4BAAC,iBAAD,CAAmB,KAAnB;AAAyB,IAAA,SAAS,EAAGD;AAArC,KACC,4BAAC,iBAAD,CAAmB,SAAnB;AACC,IAAA,eAAe,EAAGG,eADnB;AAEC,IAAA,KAAK,EAAGF;AAFT,IADD,EAKC,4BAAC,iBAAD,CAAmB,eAAnB;AACC,IAAA,GAAG,EAAG,GADP;AAEC,IAAA,KAAK,EAAGA,KAFT;AAGC,kBAAa,cAAI,WAAJ,CAHd;AAIC,IAAA,GAAG,EAAGF,GAJP;AAAA,OAKMG;AALN,IALD,CADD;AAeA;;AAEM,MAAMI,WAAW,GAAG,yBAAYT,sBAAZ,CAApB;;eAEQS,W","sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport * as ProgressBarStyled from './styles';\nimport type { ProgressBarProps } from './types';\nimport type { WordPressComponentProps } from '../ui/context';\n\nfunction UnforwardedProgressBar(\n\tprops: WordPressComponentProps< ProgressBarProps, 'progress', false >,\n\tref: ForwardedRef< HTMLProgressElement >\n) {\n\tconst { className, value, ...progressProps } = props;\n\tconst isIndeterminate = ! Number.isFinite( value );\n\n\treturn (\n\t\t<ProgressBarStyled.Track className={ className }>\n\t\t\t<ProgressBarStyled.Indicator\n\t\t\t\tisIndeterminate={ isIndeterminate }\n\t\t\t\tvalue={ value }\n\t\t\t/>\n\t\t\t<ProgressBarStyled.ProgressElement\n\t\t\t\tmax={ 100 }\n\t\t\t\tvalue={ value }\n\t\t\t\taria-label={ __( 'Loading …' ) }\n\t\t\t\tref={ ref }\n\t\t\t\t{ ...progressProps }\n\t\t\t/>\n\t\t</ProgressBarStyled.Track>\n\t);\n}\n\nexport const ProgressBar = forwardRef( UnforwardedProgressBar );\n\nexport default ProgressBar;\n"]}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.Track = exports.ProgressElement = exports.Indicator = exports.INDETERMINATE_TRACK_WIDTH = void 0;
9
+
10
+ var _base = _interopRequireDefault(require("@emotion/styled/base"));
11
+
12
+ var _react = require("@emotion/react");
13
+
14
+ var _utils = require("../utils");
15
+
16
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
17
+
18
+ const animateProgressBar = (0, _react.keyframes)({
19
+ '0%': {
20
+ left: '-50%'
21
+ },
22
+ '100%': {
23
+ left: '100%'
24
+ }
25
+ }); // Width of the indicator for the indeterminate progress bar
26
+
27
+ const INDETERMINATE_TRACK_WIDTH = 50;
28
+ exports.INDETERMINATE_TRACK_WIDTH = INDETERMINATE_TRACK_WIDTH;
29
+ const Track = (0, _base.default)("div", process.env.NODE_ENV === "production" ? {
30
+ target: "e15u147w2"
31
+ } : {
32
+ target: "e15u147w2",
33
+ label: "Track"
34
+ })("position:relative;overflow:hidden;width:100%;max-width:160px;height:", _utils.CONFIG.borderWidthFocus, ";background-color:var(\n\t\t--wp-components-color-gray-100,\n\t\t", _utils.COLORS.gray[100], "\n\t);border-radius:", _utils.CONFIG.radiusBlockUi, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvcHJvZ3Jlc3MtYmFyL3N0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1QitCIiwiZmlsZSI6IkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvcHJvZ3Jlc3MtYmFyL3N0eWxlcy50cyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXh0ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGNzcywga2V5ZnJhbWVzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBDT0xPUlMsIENPTkZJRyB9IGZyb20gJy4uL3V0aWxzJztcblxuY29uc3QgYW5pbWF0ZVByb2dyZXNzQmFyID0ga2V5ZnJhbWVzKCB7XG5cdCcwJSc6IHtcblx0XHRsZWZ0OiAnLTUwJScsXG5cdH0sXG5cdCcxMDAlJzoge1xuXHRcdGxlZnQ6ICcxMDAlJyxcblx0fSxcbn0gKTtcblxuLy8gV2lkdGggb2YgdGhlIGluZGljYXRvciBmb3IgdGhlIGluZGV0ZXJtaW5hdGUgcHJvZ3Jlc3MgYmFyXG5leHBvcnQgY29uc3QgSU5ERVRFUk1JTkFURV9UUkFDS19XSURUSCA9IDUwO1xuXG5leHBvcnQgY29uc3QgVHJhY2sgPSBzdHlsZWQuZGl2YFxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXgtd2lkdGg6IDE2MHB4O1xuXHRoZWlnaHQ6ICR7IENPTkZJRy5ib3JkZXJXaWR0aEZvY3VzIH07XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcihcblx0XHQtLXdwLWNvbXBvbmVudHMtY29sb3ItZ3JheS0xMDAsXG5cdFx0JHsgQ09MT1JTLmdyYXlbIDEwMCBdIH1cblx0KTtcblx0Ym9yZGVyLXJhZGl1czogJHsgQ09ORklHLnJhZGl1c0Jsb2NrVWkgfTtcbmA7XG5cbmV4cG9ydCBjb25zdCBJbmRpY2F0b3IgPSBzdHlsZWQuZGl2PCB7XG5cdGlzSW5kZXRlcm1pbmF0ZTogYm9vbGVhbjtcblx0dmFsdWU/OiBudW1iZXI7XG59ID5gXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGhlaWdodDogMTAwJTtcblx0Ym9yZGVyLXJhZGl1czogJHsgQ09ORklHLnJhZGl1c0Jsb2NrVWkgfTtcblx0YmFja2dyb3VuZC1jb2xvcjogJHsgQ09MT1JTLnVpLnRoZW1lIH07XG5cblx0JHsgKCB7IGlzSW5kZXRlcm1pbmF0ZSwgdmFsdWUgfSApID0+XG5cdFx0aXNJbmRldGVybWluYXRlXG5cdFx0XHQ/IGNzcygge1xuXHRcdFx0XHRcdGFuaW1hdGlvbkR1cmF0aW9uOiAnMS41cycsXG5cdFx0XHRcdFx0YW5pbWF0aW9uVGltaW5nRnVuY3Rpb246ICdlYXNlLWluLW91dCcsXG5cdFx0XHRcdFx0YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ICdpbmZpbml0ZScsXG5cdFx0XHRcdFx0YW5pbWF0aW9uTmFtZTogYW5pbWF0ZVByb2dyZXNzQmFyLFxuXHRcdFx0XHRcdHdpZHRoOiBgJHsgSU5ERVRFUk1JTkFURV9UUkFDS19XSURUSCB9JWAsXG5cdFx0XHQgIH0gKVxuXHRcdFx0OiBjc3MoIHsgd2lkdGg6IGAkeyB2YWx1ZSB9JWAgfSApIH07XG5gO1xuXG5leHBvcnQgY29uc3QgUHJvZ3Jlc3NFbGVtZW50ID0gc3R5bGVkLnByb2dyZXNzYFxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0b3BhY2l0eTogMDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcbmA7XG4iXX0= */"));
35
+ exports.Track = Track;
36
+ const Indicator = (0, _base.default)("div", process.env.NODE_ENV === "production" ? {
37
+ target: "e15u147w1"
38
+ } : {
39
+ target: "e15u147w1",
40
+ label: "Indicator"
41
+ })("display:inline-block;position:absolute;top:0;height:100%;border-radius:", _utils.CONFIG.radiusBlockUi, ";background-color:", _utils.COLORS.ui.theme, ";", ({
42
+ isIndeterminate,
43
+ value
44
+ }) => isIndeterminate ? /*#__PURE__*/(0, _react.css)({
45
+ animationDuration: '1.5s',
46
+ animationTimingFunction: 'ease-in-out',
47
+ animationIterationCount: 'infinite',
48
+ animationName: animateProgressBar,
49
+ width: `${INDETERMINATE_TRACK_WIDTH}%`
50
+ }, process.env.NODE_ENV === "production" ? "" : ";label:Indicator;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvcHJvZ3Jlc3MtYmFyL3N0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpREsiLCJmaWxlIjoiQHdvcmRwcmVzcy9jb21wb25lbnRzL3NyYy9wcm9ncmVzcy1iYXIvc3R5bGVzLnRzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFeHRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgY3NzLCBrZXlmcmFtZXMgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbi8qKlxuICogSW50ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB7IENPTE9SUywgQ09ORklHIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5jb25zdCBhbmltYXRlUHJvZ3Jlc3NCYXIgPSBrZXlmcmFtZXMoIHtcblx0JzAlJzoge1xuXHRcdGxlZnQ6ICctNTAlJyxcblx0fSxcblx0JzEwMCUnOiB7XG5cdFx0bGVmdDogJzEwMCUnLFxuXHR9LFxufSApO1xuXG4vLyBXaWR0aCBvZiB0aGUgaW5kaWNhdG9yIGZvciB0aGUgaW5kZXRlcm1pbmF0ZSBwcm9ncmVzcyBiYXJcbmV4cG9ydCBjb25zdCBJTkRFVEVSTUlOQVRFX1RSQUNLX1dJRFRIID0gNTA7XG5cbmV4cG9ydCBjb25zdCBUcmFjayA9IHN0eWxlZC5kaXZgXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0d2lkdGg6IDEwMCU7XG5cdG1heC13aWR0aDogMTYwcHg7XG5cdGhlaWdodDogJHsgQ09ORklHLmJvcmRlcldpZHRoRm9jdXMgfTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKFxuXHRcdC0td3AtY29tcG9uZW50cy1jb2xvci1ncmF5LTEwMCxcblx0XHQkeyBDT0xPUlMuZ3JheVsgMTAwIF0gfVxuXHQpO1xuXHRib3JkZXItcmFkaXVzOiAkeyBDT05GSUcucmFkaXVzQmxvY2tVaSB9O1xuYDtcblxuZXhwb3J0IGNvbnN0IEluZGljYXRvciA9IHN0eWxlZC5kaXY8IHtcblx0aXNJbmRldGVybWluYXRlOiBib29sZWFuO1xuXHR2YWx1ZT86IG51bWJlcjtcbn0gPmBcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0aGVpZ2h0OiAxMDAlO1xuXHRib3JkZXItcmFkaXVzOiAkeyBDT05GSUcucmFkaXVzQmxvY2tVaSB9O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkeyBDT0xPUlMudWkudGhlbWUgfTtcblxuXHQkeyAoIHsgaXNJbmRldGVybWluYXRlLCB2YWx1ZSB9ICkgPT5cblx0XHRpc0luZGV0ZXJtaW5hdGVcblx0XHRcdD8gY3NzKCB7XG5cdFx0XHRcdFx0YW5pbWF0aW9uRHVyYXRpb246ICcxLjVzJyxcblx0XHRcdFx0XHRhbmltYXRpb25UaW1pbmdGdW5jdGlvbjogJ2Vhc2UtaW4tb3V0Jyxcblx0XHRcdFx0XHRhbmltYXRpb25JdGVyYXRpb25Db3VudDogJ2luZmluaXRlJyxcblx0XHRcdFx0XHRhbmltYXRpb25OYW1lOiBhbmltYXRlUHJvZ3Jlc3NCYXIsXG5cdFx0XHRcdFx0d2lkdGg6IGAkeyBJTkRFVEVSTUlOQVRFX1RSQUNLX1dJRFRIIH0lYCxcblx0XHRcdCAgfSApXG5cdFx0XHQ6IGNzcyggeyB3aWR0aDogYCR7IHZhbHVlIH0lYCB9ICkgfTtcbmA7XG5cbmV4cG9ydCBjb25zdCBQcm9ncmVzc0VsZW1lbnQgPSBzdHlsZWQucHJvZ3Jlc3NgXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHRvcGFjaXR5OiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuYDtcbiJdfQ== */") : /*#__PURE__*/(0, _react.css)({
51
+ width: `${value}%`
52
+ }, process.env.NODE_ENV === "production" ? "" : ";label:Indicator;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvcHJvZ3Jlc3MtYmFyL3N0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3REsiLCJmaWxlIjoiQHdvcmRwcmVzcy9jb21wb25lbnRzL3NyYy9wcm9ncmVzcy1iYXIvc3R5bGVzLnRzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFeHRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgY3NzLCBrZXlmcmFtZXMgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbi8qKlxuICogSW50ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB7IENPTE9SUywgQ09ORklHIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5jb25zdCBhbmltYXRlUHJvZ3Jlc3NCYXIgPSBrZXlmcmFtZXMoIHtcblx0JzAlJzoge1xuXHRcdGxlZnQ6ICctNTAlJyxcblx0fSxcblx0JzEwMCUnOiB7XG5cdFx0bGVmdDogJzEwMCUnLFxuXHR9LFxufSApO1xuXG4vLyBXaWR0aCBvZiB0aGUgaW5kaWNhdG9yIGZvciB0aGUgaW5kZXRlcm1pbmF0ZSBwcm9ncmVzcyBiYXJcbmV4cG9ydCBjb25zdCBJTkRFVEVSTUlOQVRFX1RSQUNLX1dJRFRIID0gNTA7XG5cbmV4cG9ydCBjb25zdCBUcmFjayA9IHN0eWxlZC5kaXZgXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0d2lkdGg6IDEwMCU7XG5cdG1heC13aWR0aDogMTYwcHg7XG5cdGhlaWdodDogJHsgQ09ORklHLmJvcmRlcldpZHRoRm9jdXMgfTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKFxuXHRcdC0td3AtY29tcG9uZW50cy1jb2xvci1ncmF5LTEwMCxcblx0XHQkeyBDT0xPUlMuZ3JheVsgMTAwIF0gfVxuXHQpO1xuXHRib3JkZXItcmFkaXVzOiAkeyBDT05GSUcucmFkaXVzQmxvY2tVaSB9O1xuYDtcblxuZXhwb3J0IGNvbnN0IEluZGljYXRvciA9IHN0eWxlZC5kaXY8IHtcblx0aXNJbmRldGVybWluYXRlOiBib29sZWFuO1xuXHR2YWx1ZT86IG51bWJlcjtcbn0gPmBcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0aGVpZ2h0OiAxMDAlO1xuXHRib3JkZXItcmFkaXVzOiAkeyBDT05GSUcucmFkaXVzQmxvY2tVaSB9O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkeyBDT0xPUlMudWkudGhlbWUgfTtcblxuXHQkeyAoIHsgaXNJbmRldGVybWluYXRlLCB2YWx1ZSB9ICkgPT5cblx0XHRpc0luZGV0ZXJtaW5hdGVcblx0XHRcdD8gY3NzKCB7XG5cdFx0XHRcdFx0YW5pbWF0aW9uRHVyYXRpb246ICcxLjVzJyxcblx0XHRcdFx0XHRhbmltYXRpb25UaW1pbmdGdW5jdGlvbjogJ2Vhc2UtaW4tb3V0Jyxcblx0XHRcdFx0XHRhbmltYXRpb25JdGVyYXRpb25Db3VudDogJ2luZmluaXRlJyxcblx0XHRcdFx0XHRhbmltYXRpb25OYW1lOiBhbmltYXRlUHJvZ3Jlc3NCYXIsXG5cdFx0XHRcdFx0d2lkdGg6IGAkeyBJTkRFVEVSTUlOQVRFX1RSQUNLX1dJRFRIIH0lYCxcblx0XHRcdCAgfSApXG5cdFx0XHQ6IGNzcyggeyB3aWR0aDogYCR7IHZhbHVlIH0lYCB9ICkgfTtcbmA7XG5cbmV4cG9ydCBjb25zdCBQcm9ncmVzc0VsZW1lbnQgPSBzdHlsZWQucHJvZ3Jlc3NgXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHRvcGFjaXR5OiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuYDtcbiJdfQ== */"), ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvcHJvZ3Jlc3MtYmFyL3N0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1Q0ciLCJmaWxlIjoiQHdvcmRwcmVzcy9jb21wb25lbnRzL3NyYy9wcm9ncmVzcy1iYXIvc3R5bGVzLnRzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFeHRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgY3NzLCBrZXlmcmFtZXMgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbi8qKlxuICogSW50ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB7IENPTE9SUywgQ09ORklHIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5jb25zdCBhbmltYXRlUHJvZ3Jlc3NCYXIgPSBrZXlmcmFtZXMoIHtcblx0JzAlJzoge1xuXHRcdGxlZnQ6ICctNTAlJyxcblx0fSxcblx0JzEwMCUnOiB7XG5cdFx0bGVmdDogJzEwMCUnLFxuXHR9LFxufSApO1xuXG4vLyBXaWR0aCBvZiB0aGUgaW5kaWNhdG9yIGZvciB0aGUgaW5kZXRlcm1pbmF0ZSBwcm9ncmVzcyBiYXJcbmV4cG9ydCBjb25zdCBJTkRFVEVSTUlOQVRFX1RSQUNLX1dJRFRIID0gNTA7XG5cbmV4cG9ydCBjb25zdCBUcmFjayA9IHN0eWxlZC5kaXZgXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0d2lkdGg6IDEwMCU7XG5cdG1heC13aWR0aDogMTYwcHg7XG5cdGhlaWdodDogJHsgQ09ORklHLmJvcmRlcldpZHRoRm9jdXMgfTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKFxuXHRcdC0td3AtY29tcG9uZW50cy1jb2xvci1ncmF5LTEwMCxcblx0XHQkeyBDT0xPUlMuZ3JheVsgMTAwIF0gfVxuXHQpO1xuXHRib3JkZXItcmFkaXVzOiAkeyBDT05GSUcucmFkaXVzQmxvY2tVaSB9O1xuYDtcblxuZXhwb3J0IGNvbnN0IEluZGljYXRvciA9IHN0eWxlZC5kaXY8IHtcblx0aXNJbmRldGVybWluYXRlOiBib29sZWFuO1xuXHR2YWx1ZT86IG51bWJlcjtcbn0gPmBcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0aGVpZ2h0OiAxMDAlO1xuXHRib3JkZXItcmFkaXVzOiAkeyBDT05GSUcucmFkaXVzQmxvY2tVaSB9O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkeyBDT0xPUlMudWkudGhlbWUgfTtcblxuXHQkeyAoIHsgaXNJbmRldGVybWluYXRlLCB2YWx1ZSB9ICkgPT5cblx0XHRpc0luZGV0ZXJtaW5hdGVcblx0XHRcdD8gY3NzKCB7XG5cdFx0XHRcdFx0YW5pbWF0aW9uRHVyYXRpb246ICcxLjVzJyxcblx0XHRcdFx0XHRhbmltYXRpb25UaW1pbmdGdW5jdGlvbjogJ2Vhc2UtaW4tb3V0Jyxcblx0XHRcdFx0XHRhbmltYXRpb25JdGVyYXRpb25Db3VudDogJ2luZmluaXRlJyxcblx0XHRcdFx0XHRhbmltYXRpb25OYW1lOiBhbmltYXRlUHJvZ3Jlc3NCYXIsXG5cdFx0XHRcdFx0d2lkdGg6IGAkeyBJTkRFVEVSTUlOQVRFX1RSQUNLX1dJRFRIIH0lYCxcblx0XHRcdCAgfSApXG5cdFx0XHQ6IGNzcyggeyB3aWR0aDogYCR7IHZhbHVlIH0lYCB9ICkgfTtcbmA7XG5cbmV4cG9ydCBjb25zdCBQcm9ncmVzc0VsZW1lbnQgPSBzdHlsZWQucHJvZ3Jlc3NgXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHRvcGFjaXR5OiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuYDtcbiJdfQ== */"));
53
+ exports.Indicator = Indicator;
54
+ const ProgressElement = (0, _base.default)("progress", process.env.NODE_ENV === "production" ? {
55
+ target: "e15u147w0"
56
+ } : {
57
+ target: "e15u147w0",
58
+ label: "ProgressElement"
59
+ })(process.env.NODE_ENV === "production" ? {
60
+ name: "11fb690",
61
+ styles: "position:absolute;top:0;left:0;opacity:0;width:100%;height:100%"
62
+ } : {
63
+ name: "11fb690",
64
+ styles: "position:absolute;top:0;left:0;opacity:0;width:100%;height:100%",
65
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvcHJvZ3Jlc3MtYmFyL3N0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEyRDhDIiwiZmlsZSI6IkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvcHJvZ3Jlc3MtYmFyL3N0eWxlcy50cyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXh0ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGNzcywga2V5ZnJhbWVzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBDT0xPUlMsIENPTkZJRyB9IGZyb20gJy4uL3V0aWxzJztcblxuY29uc3QgYW5pbWF0ZVByb2dyZXNzQmFyID0ga2V5ZnJhbWVzKCB7XG5cdCcwJSc6IHtcblx0XHRsZWZ0OiAnLTUwJScsXG5cdH0sXG5cdCcxMDAlJzoge1xuXHRcdGxlZnQ6ICcxMDAlJyxcblx0fSxcbn0gKTtcblxuLy8gV2lkdGggb2YgdGhlIGluZGljYXRvciBmb3IgdGhlIGluZGV0ZXJtaW5hdGUgcHJvZ3Jlc3MgYmFyXG5leHBvcnQgY29uc3QgSU5ERVRFUk1JTkFURV9UUkFDS19XSURUSCA9IDUwO1xuXG5leHBvcnQgY29uc3QgVHJhY2sgPSBzdHlsZWQuZGl2YFxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXgtd2lkdGg6IDE2MHB4O1xuXHRoZWlnaHQ6ICR7IENPTkZJRy5ib3JkZXJXaWR0aEZvY3VzIH07XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcihcblx0XHQtLXdwLWNvbXBvbmVudHMtY29sb3ItZ3JheS0xMDAsXG5cdFx0JHsgQ09MT1JTLmdyYXlbIDEwMCBdIH1cblx0KTtcblx0Ym9yZGVyLXJhZGl1czogJHsgQ09ORklHLnJhZGl1c0Jsb2NrVWkgfTtcbmA7XG5cbmV4cG9ydCBjb25zdCBJbmRpY2F0b3IgPSBzdHlsZWQuZGl2PCB7XG5cdGlzSW5kZXRlcm1pbmF0ZTogYm9vbGVhbjtcblx0dmFsdWU/OiBudW1iZXI7XG59ID5gXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGhlaWdodDogMTAwJTtcblx0Ym9yZGVyLXJhZGl1czogJHsgQ09ORklHLnJhZGl1c0Jsb2NrVWkgfTtcblx0YmFja2dyb3VuZC1jb2xvcjogJHsgQ09MT1JTLnVpLnRoZW1lIH07XG5cblx0JHsgKCB7IGlzSW5kZXRlcm1pbmF0ZSwgdmFsdWUgfSApID0+XG5cdFx0aXNJbmRldGVybWluYXRlXG5cdFx0XHQ/IGNzcygge1xuXHRcdFx0XHRcdGFuaW1hdGlvbkR1cmF0aW9uOiAnMS41cycsXG5cdFx0XHRcdFx0YW5pbWF0aW9uVGltaW5nRnVuY3Rpb246ICdlYXNlLWluLW91dCcsXG5cdFx0XHRcdFx0YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ICdpbmZpbml0ZScsXG5cdFx0XHRcdFx0YW5pbWF0aW9uTmFtZTogYW5pbWF0ZVByb2dyZXNzQmFyLFxuXHRcdFx0XHRcdHdpZHRoOiBgJHsgSU5ERVRFUk1JTkFURV9UUkFDS19XSURUSCB9JWAsXG5cdFx0XHQgIH0gKVxuXHRcdFx0OiBjc3MoIHsgd2lkdGg6IGAkeyB2YWx1ZSB9JWAgfSApIH07XG5gO1xuXG5leHBvcnQgY29uc3QgUHJvZ3Jlc3NFbGVtZW50ID0gc3R5bGVkLnByb2dyZXNzYFxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0b3BhY2l0eTogMDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcbmA7XG4iXX0= */",
66
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
67
+ });
68
+ exports.ProgressElement = ProgressElement;
69
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/components/src/progress-bar/styles.ts"],"names":["animateProgressBar","left","INDETERMINATE_TRACK_WIDTH","Track","CONFIG","borderWidthFocus","COLORS","gray","radiusBlockUi","Indicator","ui","theme","isIndeterminate","value","animationDuration","animationTimingFunction","animationIterationCount","animationName","width","ProgressElement"],"mappings":";;;;;;;;;;;AAIA;;AAKA;;;;AAEA,MAAMA,kBAAkB,GAAG,sBAAW;AACrC,QAAM;AACLC,IAAAA,IAAI,EAAE;AADD,GAD+B;AAIrC,UAAQ;AACPA,IAAAA,IAAI,EAAE;AADC;AAJ6B,CAAX,CAA3B,C,CASA;;AACO,MAAMC,yBAAyB,GAAG,EAAlC;;AAEA,MAAMC,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,2EAKNC,cAAOC,gBALD,uEAQbC,cAAOC,IAAP,CAAa,GAAb,CARa,0BAUCH,cAAOI,aAVR,i3EAAX;;AAaA,MAAMC,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,8EAQHL,cAAOI,aARJ,wBASAF,cAAOI,EAAP,CAAUC,KATV,OAWlB,CAAE;AAAEC,EAAAA,eAAF;AAAmBC,EAAAA;AAAnB,CAAF,KACFD,eAAe,gBACZ,gBAAK;AACLE,EAAAA,iBAAiB,EAAE,MADd;AAELC,EAAAA,uBAAuB,EAAE,aAFpB;AAGLC,EAAAA,uBAAuB,EAAE,UAHpB;AAILC,EAAAA,aAAa,EAAEjB,kBAJV;AAKLkB,EAAAA,KAAK,EAAG,GAAGhB,yBAA2B;AALjC,CAAL,26EADY,gBAQZ,gBAAK;AAAEgB,EAAAA,KAAK,EAAG,GAAGL,KAAO;AAApB,CAAL,26EApBiB,i3EAAf;;AAuBA,MAAMM,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAArB","sourcesContent":["/**\n * External dependencies\n */\nimport styled from '@emotion/styled';\nimport { css, keyframes } from '@emotion/react';\n\n/**\n * Internal dependencies\n */\nimport { COLORS, CONFIG } from '../utils';\n\nconst animateProgressBar = keyframes( {\n\t'0%': {\n\t\tleft: '-50%',\n\t},\n\t'100%': {\n\t\tleft: '100%',\n\t},\n} );\n\n// Width of the indicator for the indeterminate progress bar\nexport const INDETERMINATE_TRACK_WIDTH = 50;\n\nexport const Track = styled.div`\n\tposition: relative;\n\toverflow: hidden;\n\twidth: 100%;\n\tmax-width: 160px;\n\theight: ${ CONFIG.borderWidthFocus };\n\tbackground-color: var(\n\t\t--wp-components-color-gray-100,\n\t\t${ COLORS.gray[ 100 ] }\n\t);\n\tborder-radius: ${ CONFIG.radiusBlockUi };\n`;\n\nexport const Indicator = styled.div< {\n\tisIndeterminate: boolean;\n\tvalue?: number;\n} >`\n\tdisplay: inline-block;\n\tposition: absolute;\n\ttop: 0;\n\theight: 100%;\n\tborder-radius: ${ CONFIG.radiusBlockUi };\n\tbackground-color: ${ COLORS.ui.theme };\n\n\t${ ( { isIndeterminate, value } ) =>\n\t\tisIndeterminate\n\t\t\t? css( {\n\t\t\t\t\tanimationDuration: '1.5s',\n\t\t\t\t\tanimationTimingFunction: 'ease-in-out',\n\t\t\t\t\tanimationIterationCount: 'infinite',\n\t\t\t\t\tanimationName: animateProgressBar,\n\t\t\t\t\twidth: `${ INDETERMINATE_TRACK_WIDTH }%`,\n\t\t\t } )\n\t\t\t: css( { width: `${ value }%` } ) };\n`;\n\nexport const ProgressElement = styled.progress`\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\topacity: 0;\n\twidth: 100%;\n\theight: 100%;\n`;\n"]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
@@ -9,14 +9,18 @@ exports.default = exports.TabPanel = void 0;
9
9
 
10
10
  var _element = require("@wordpress/element");
11
11
 
12
+ var Ariakit = _interopRequireWildcard(require("@ariakit/react"));
13
+
12
14
  var _classnames = _interopRequireDefault(require("classnames"));
13
15
 
14
16
  var _compose = require("@wordpress/compose");
15
17
 
16
- var _navigableContainer = require("../navigable-container");
17
-
18
18
  var _button = _interopRequireDefault(require("../button"));
19
19
 
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
+
22
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
+
20
24
  /**
21
25
  * External dependencies
22
26
  */
@@ -28,19 +32,17 @@ var _button = _interopRequireDefault(require("../button"));
28
32
  /**
29
33
  * Internal dependencies
30
34
  */
31
- const TabButton = ({
32
- tabId,
33
- children,
34
- selected,
35
- ...rest
36
- }) => (0, _element.createElement)(_button.default, {
37
- role: "tab",
38
- tabIndex: selected ? undefined : -1,
39
- "aria-selected": selected,
40
- id: tabId,
41
- __experimentalIsFocusable: true,
42
- ...rest
43
- }, children);
35
+ // Separate the actual tab name from the instance ID. This is
36
+ // necessary because Ariakit internally uses the element ID when
37
+ // a new tab is selected, but our implementation looks specifically
38
+ // for the tab name to be passed to the `onSelect` callback.
39
+ const extractTabName = id => {
40
+ if (typeof id === 'undefined' || id === null) {
41
+ return;
42
+ }
43
+
44
+ return id.match(/^tab-panel-[0-9]*-(.*)/)?.[1];
45
+ };
44
46
  /**
45
47
  * TabPanel is an ARIA-compliant tabpanel.
46
48
  *
@@ -89,24 +91,52 @@ const UnforwardedTabPanel = ({
89
91
  activeClass = 'is-active',
90
92
  onSelect
91
93
  }, ref) => {
92
- var _selectedTab$name;
93
-
94
94
  const instanceId = (0, _compose.useInstanceId)(TabPanel, 'tab-panel');
95
- const [selected, setSelected] = (0, _element.useState)();
96
- const handleTabSelection = (0, _element.useCallback)(tabKey => {
97
- setSelected(tabKey);
98
- onSelect?.(tabKey);
99
- }, [onSelect]); // Simulate a click on the newly focused tab, which causes the component
100
- // to show the `tab-panel` associated with the clicked tab.
101
-
102
- const activateTabAutomatically = (_childIndex, child) => {
103
- child.click();
104
- };
95
+ const prependInstanceId = (0, _element.useCallback)(tabName => {
96
+ if (typeof tabName === 'undefined') {
97
+ return;
98
+ }
105
99
 
100
+ return `${instanceId}-${tabName}`;
101
+ }, [instanceId]);
102
+ const tabStore = Ariakit.useTabStore({
103
+ setSelectedId: newTabValue => {
104
+ if (typeof newTabValue === 'undefined' || newTabValue === null) {
105
+ return;
106
+ }
107
+
108
+ const newTab = tabs.find(t => prependInstanceId(t.name) === newTabValue);
109
+
110
+ if (newTab?.disabled || newTab === selectedTab) {
111
+ return;
112
+ }
113
+
114
+ const simplifiedTabName = extractTabName(newTabValue);
115
+
116
+ if (typeof simplifiedTabName === 'undefined') {
117
+ return;
118
+ }
119
+
120
+ onSelect?.(simplifiedTabName);
121
+ },
122
+ orientation,
123
+ selectOnMove,
124
+ defaultSelectedId: prependInstanceId(initialTabName)
125
+ });
126
+ const selectedTabName = extractTabName(tabStore.useState('selectedId'));
127
+ const setTabStoreSelectedId = (0, _element.useCallback)(tabName => {
128
+ tabStore.setState('selectedId', prependInstanceId(tabName));
129
+ }, [prependInstanceId, tabStore]);
106
130
  const selectedTab = tabs.find(({
107
131
  name
108
- }) => name === selected);
109
- const selectedId = `${instanceId}-${(_selectedTab$name = selectedTab?.name) !== null && _selectedTab$name !== void 0 ? _selectedTab$name : 'none'}`; // Handle selecting the initial tab.
132
+ }) => name === selectedTabName);
133
+ const previousSelectedTabName = (0, _compose.usePrevious)(selectedTabName); // Ensure `onSelect` is called when the initial tab is selected.
134
+
135
+ (0, _element.useEffect)(() => {
136
+ if (previousSelectedTabName !== selectedTabName && selectedTabName === initialTabName && !!selectedTabName) {
137
+ onSelect?.(selectedTabName);
138
+ }
139
+ }, [selectedTabName, initialTabName, onSelect, previousSelectedTabName]); // Handle selecting the initial tab.
110
140
 
111
141
  (0, _element.useLayoutEffect)(() => {
112
142
  // If there's a selected tab, don't override it.
@@ -124,13 +154,17 @@ const UnforwardedTabPanel = ({
124
154
 
125
155
  if (initialTab && !initialTab.disabled) {
126
156
  // Select the initial tab if it's not disabled.
127
- handleTabSelection(initialTab.name);
157
+ setTabStoreSelectedId(initialTab.name);
128
158
  } else {
129
- // Fallback to the first enabled tab when the initial is disabled.
159
+ // Fallback to the first enabled tab when the initial tab is
160
+ // disabled or it can't be found.
130
161
  const firstEnabledTab = tabs.find(tab => !tab.disabled);
131
- if (firstEnabledTab) handleTabSelection(firstEnabledTab.name);
162
+
163
+ if (firstEnabledTab) {
164
+ setTabStoreSelectedId(firstEnabledTab.name);
165
+ }
132
166
  }
133
- }, [tabs, selectedTab, initialTabName, handleTabSelection]); // Handle the currently selected tab becoming disabled.
167
+ }, [tabs, selectedTab, initialTabName, instanceId, setTabStoreSelectedId]); // Handle the currently selected tab becoming disabled.
134
168
 
135
169
  (0, _element.useEffect)(() => {
136
170
  // This effect only runs when the selected tab is defined and becomes disabled.
@@ -142,36 +176,35 @@ const UnforwardedTabPanel = ({
142
176
  // (if there is one).
143
177
 
144
178
  if (firstEnabledTab) {
145
- handleTabSelection(firstEnabledTab.name);
179
+ setTabStoreSelectedId(firstEnabledTab.name);
146
180
  }
147
- }, [tabs, selectedTab?.disabled, handleTabSelection]);
181
+ }, [tabs, selectedTab?.disabled, setTabStoreSelectedId, instanceId]);
148
182
  return (0, _element.createElement)("div", {
149
183
  className: className,
150
184
  ref: ref
151
- }, (0, _element.createElement)(_navigableContainer.NavigableMenu, {
152
- role: "tablist",
153
- orientation: orientation,
154
- onNavigate: selectOnMove ? activateTabAutomatically : undefined,
185
+ }, (0, _element.createElement)(Ariakit.TabList, {
186
+ store: tabStore,
155
187
  className: "components-tab-panel__tabs"
156
- }, tabs.map(tab => (0, _element.createElement)(TabButton, {
157
- className: (0, _classnames.default)('components-tab-panel__tabs-item', tab.className, {
158
- [activeClass]: tab.name === selected
159
- }),
160
- tabId: `${instanceId}-${tab.name}`,
161
- "aria-controls": `${instanceId}-${tab.name}-view`,
162
- selected: tab.name === selected,
163
- key: tab.name,
164
- onClick: () => handleTabSelection(tab.name),
165
- disabled: tab.disabled,
166
- label: tab.icon && tab.title,
167
- icon: tab.icon,
168
- showTooltip: !!tab.icon
169
- }, !tab.icon && tab.title))), selectedTab && (0, _element.createElement)("div", {
170
- key: selectedId,
171
- "aria-labelledby": selectedId,
172
- role: "tabpanel",
173
- id: `${selectedId}-view`,
174
- className: "components-tab-panel__tab-content"
188
+ }, tabs.map(tab => {
189
+ return (0, _element.createElement)(Ariakit.Tab, {
190
+ key: tab.name,
191
+ id: prependInstanceId(tab.name),
192
+ className: (0, _classnames.default)('components-tab-panel__tabs-item', tab.className, {
193
+ [activeClass]: tab.name === selectedTabName
194
+ }),
195
+ disabled: tab.disabled,
196
+ "aria-controls": `${prependInstanceId(tab.name)}-view`,
197
+ render: (0, _element.createElement)(_button.default, {
198
+ icon: tab.icon,
199
+ label: tab.icon && tab.title,
200
+ showTooltip: !!tab.icon
201
+ })
202
+ }, !tab.icon && tab.title);
203
+ })), selectedTab && (0, _element.createElement)(Ariakit.TabPanel, {
204
+ id: `${prependInstanceId(selectedTab.name)}-view`,
205
+ store: tabStore,
206
+ tabId: prependInstanceId(selectedTab.name),
207
+ className: 'components-tab-panel__tab-content'
175
208
  }, children(selectedTab)));
176
209
  };
177
210
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/tab-panel/index.tsx"],"names":["TabButton","tabId","children","selected","rest","undefined","UnforwardedTabPanel","className","tabs","selectOnMove","initialTabName","orientation","activeClass","onSelect","ref","instanceId","TabPanel","setSelected","handleTabSelection","tabKey","activateTabAutomatically","_childIndex","child","click","selectedTab","find","name","selectedId","initialTab","tab","disabled","firstEnabledTab","map","icon","title"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport type { ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tforwardRef,\n\tuseState,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseCallback,\n} from '@wordpress/element';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { NavigableMenu } from '../navigable-container';\nimport Button from '../button';\nimport type { TabButtonProps, TabPanelProps } from './types';\nimport type { WordPressComponentProps } from '../ui/context';\n\nconst TabButton = ( {\n\ttabId,\n\tchildren,\n\tselected,\n\t...rest\n}: TabButtonProps ) => (\n\t<Button\n\t\trole=\"tab\"\n\t\ttabIndex={ selected ? undefined : -1 }\n\t\taria-selected={ selected }\n\t\tid={ tabId }\n\t\t__experimentalIsFocusable\n\t\t{ ...rest }\n\t>\n\t\t{ children }\n\t</Button>\n);\n\n/**\n * TabPanel is an ARIA-compliant tabpanel.\n *\n * TabPanels organize content across different screens, data sets, and interactions.\n * It has two sections: a list of tabs, and the view to show when tabs are chosen.\n *\n * ```jsx\n * import { TabPanel } from '@wordpress/components';\n *\n * const onSelect = ( tabName ) => {\n * console.log( 'Selecting tab', tabName );\n * };\n *\n * const MyTabPanel = () => (\n * <TabPanel\n * className=\"my-tab-panel\"\n * activeClass=\"active-tab\"\n * onSelect={ onSelect }\n * tabs={ [\n * {\n * name: 'tab1',\n * title: 'Tab 1',\n * className: 'tab-one',\n * },\n * {\n * name: 'tab2',\n * title: 'Tab 2',\n * className: 'tab-two',\n * },\n * ] }\n * >\n * { ( tab ) => <p>{ tab.title }</p> }\n * </TabPanel>\n * );\n * ```\n */\nconst UnforwardedTabPanel = (\n\t{\n\t\tclassName,\n\t\tchildren,\n\t\ttabs,\n\t\tselectOnMove = true,\n\t\tinitialTabName,\n\t\torientation = 'horizontal',\n\t\tactiveClass = 'is-active',\n\t\tonSelect,\n\t}: WordPressComponentProps< TabPanelProps, 'div', false >,\n\tref: ForwardedRef< any >\n) => {\n\tconst instanceId = useInstanceId( TabPanel, 'tab-panel' );\n\tconst [ selected, setSelected ] = useState< string >();\n\n\tconst handleTabSelection = useCallback(\n\t\t( tabKey: string ) => {\n\t\t\tsetSelected( tabKey );\n\t\t\tonSelect?.( tabKey );\n\t\t},\n\t\t[ onSelect ]\n\t);\n\n\t// Simulate a click on the newly focused tab, which causes the component\n\t// to show the `tab-panel` associated with the clicked tab.\n\tconst activateTabAutomatically = (\n\t\t_childIndex: number,\n\t\tchild: HTMLElement\n\t) => {\n\t\tchild.click();\n\t};\n\tconst selectedTab = tabs.find( ( { name } ) => name === selected );\n\tconst selectedId = `${ instanceId }-${ selectedTab?.name ?? 'none' }`;\n\n\t// Handle selecting the initial tab.\n\tuseLayoutEffect( () => {\n\t\t// If there's a selected tab, don't override it.\n\t\tif ( selectedTab ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst initialTab = tabs.find( ( tab ) => tab.name === initialTabName );\n\n\t\t// Wait for the denoted initial tab to be declared before making a\n\t\t// selection. This ensures that if a tab is declared lazily it can\n\t\t// still receive initial selection.\n\t\tif ( initialTabName && ! initialTab ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( initialTab && ! initialTab.disabled ) {\n\t\t\t// Select the initial tab if it's not disabled.\n\t\t\thandleTabSelection( initialTab.name );\n\t\t} else {\n\t\t\t// Fallback to the first enabled tab when the initial is disabled.\n\t\t\tconst firstEnabledTab = tabs.find( ( tab ) => ! tab.disabled );\n\t\t\tif ( firstEnabledTab ) handleTabSelection( firstEnabledTab.name );\n\t\t}\n\t}, [ tabs, selectedTab, initialTabName, handleTabSelection ] );\n\n\t// Handle the currently selected tab becoming disabled.\n\tuseEffect( () => {\n\t\t// This effect only runs when the selected tab is defined and becomes disabled.\n\t\tif ( ! selectedTab?.disabled ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst firstEnabledTab = tabs.find( ( tab ) => ! tab.disabled );\n\n\t\t// If the currently selected tab becomes disabled, select the first enabled tab.\n\t\t// (if there is one).\n\t\tif ( firstEnabledTab ) {\n\t\t\thandleTabSelection( firstEnabledTab.name );\n\t\t}\n\t}, [ tabs, selectedTab?.disabled, handleTabSelection ] );\n\n\treturn (\n\t\t<div className={ className } ref={ ref }>\n\t\t\t<NavigableMenu\n\t\t\t\trole=\"tablist\"\n\t\t\t\torientation={ orientation }\n\t\t\t\tonNavigate={\n\t\t\t\t\tselectOnMove ? activateTabAutomatically : undefined\n\t\t\t\t}\n\t\t\t\tclassName=\"components-tab-panel__tabs\"\n\t\t\t>\n\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t<TabButton\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'components-tab-panel__tabs-item',\n\t\t\t\t\t\t\ttab.className,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t[ activeClass ]: tab.name === selected,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\ttabId={ `${ instanceId }-${ tab.name }` }\n\t\t\t\t\t\taria-controls={ `${ instanceId }-${ tab.name }-view` }\n\t\t\t\t\t\tselected={ tab.name === selected }\n\t\t\t\t\t\tkey={ tab.name }\n\t\t\t\t\t\tonClick={ () => handleTabSelection( tab.name ) }\n\t\t\t\t\t\tdisabled={ tab.disabled }\n\t\t\t\t\t\tlabel={ tab.icon && tab.title }\n\t\t\t\t\t\ticon={ tab.icon }\n\t\t\t\t\t\tshowTooltip={ !! tab.icon }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ! tab.icon && tab.title }\n\t\t\t\t\t</TabButton>\n\t\t\t\t) ) }\n\t\t\t</NavigableMenu>\n\t\t\t{ selectedTab && (\n\t\t\t\t<div\n\t\t\t\t\tkey={ selectedId }\n\t\t\t\t\taria-labelledby={ selectedId }\n\t\t\t\t\trole=\"tabpanel\"\n\t\t\t\t\tid={ `${ selectedId }-view` }\n\t\t\t\t\tclassName=\"components-tab-panel__tab-content\"\n\t\t\t\t>\n\t\t\t\t\t{ children( selectedTab ) }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</div>\n\t);\n};\n\nexport const TabPanel = forwardRef( UnforwardedTabPanel );\nexport default TabPanel;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/tab-panel/index.tsx"],"names":["extractTabName","id","match","UnforwardedTabPanel","className","children","tabs","selectOnMove","initialTabName","orientation","activeClass","onSelect","ref","instanceId","TabPanel","prependInstanceId","tabName","tabStore","Ariakit","useTabStore","setSelectedId","newTabValue","newTab","find","t","name","disabled","selectedTab","simplifiedTabName","defaultSelectedId","selectedTabName","useState","setTabStoreSelectedId","setState","previousSelectedTabName","initialTab","tab","firstEnabledTab","map","icon","title"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport * as Ariakit from '@ariakit/react';\nimport classnames from 'classnames';\nimport type { ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tforwardRef,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseCallback,\n} from '@wordpress/element';\nimport { useInstanceId, usePrevious } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\n\nimport Button from '../button';\nimport type { TabPanelProps } from './types';\nimport type { WordPressComponentProps } from '../ui/context';\n\n// Separate the actual tab name from the instance ID. This is\n// necessary because Ariakit internally uses the element ID when\n// a new tab is selected, but our implementation looks specifically\n// for the tab name to be passed to the `onSelect` callback.\nconst extractTabName = ( id: string | undefined | null ) => {\n\tif ( typeof id === 'undefined' || id === null ) {\n\t\treturn;\n\t}\n\treturn id.match( /^tab-panel-[0-9]*-(.*)/ )?.[ 1 ];\n};\n\n/**\n * TabPanel is an ARIA-compliant tabpanel.\n *\n * TabPanels organize content across different screens, data sets, and interactions.\n * It has two sections: a list of tabs, and the view to show when tabs are chosen.\n *\n * ```jsx\n * import { TabPanel } from '@wordpress/components';\n *\n * const onSelect = ( tabName ) => {\n * console.log( 'Selecting tab', tabName );\n * };\n *\n * const MyTabPanel = () => (\n * <TabPanel\n * className=\"my-tab-panel\"\n * activeClass=\"active-tab\"\n * onSelect={ onSelect }\n * tabs={ [\n * {\n * name: 'tab1',\n * title: 'Tab 1',\n * className: 'tab-one',\n * },\n * {\n * name: 'tab2',\n * title: 'Tab 2',\n * className: 'tab-two',\n * },\n * ] }\n * >\n * { ( tab ) => <p>{ tab.title }</p> }\n * </TabPanel>\n * );\n * ```\n */\nconst UnforwardedTabPanel = (\n\t{\n\t\tclassName,\n\t\tchildren,\n\t\ttabs,\n\t\tselectOnMove = true,\n\t\tinitialTabName,\n\t\torientation = 'horizontal',\n\t\tactiveClass = 'is-active',\n\t\tonSelect,\n\t}: WordPressComponentProps< TabPanelProps, 'div', false >,\n\tref: ForwardedRef< any >\n) => {\n\tconst instanceId = useInstanceId( TabPanel, 'tab-panel' );\n\n\tconst prependInstanceId = useCallback(\n\t\t( tabName: string | undefined ) => {\n\t\t\tif ( typeof tabName === 'undefined' ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treturn `${ instanceId }-${ tabName }`;\n\t\t},\n\t\t[ instanceId ]\n\t);\n\n\tconst tabStore = Ariakit.useTabStore( {\n\t\tsetSelectedId: ( newTabValue ) => {\n\t\t\tif ( typeof newTabValue === 'undefined' || newTabValue === null ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst newTab = tabs.find(\n\t\t\t\t( t ) => prependInstanceId( t.name ) === newTabValue\n\t\t\t);\n\t\t\tif ( newTab?.disabled || newTab === selectedTab ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst simplifiedTabName = extractTabName( newTabValue );\n\t\t\tif ( typeof simplifiedTabName === 'undefined' ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tonSelect?.( simplifiedTabName );\n\t\t},\n\t\torientation,\n\t\tselectOnMove,\n\t\tdefaultSelectedId: prependInstanceId( initialTabName ),\n\t} );\n\n\tconst selectedTabName = extractTabName( tabStore.useState( 'selectedId' ) );\n\n\tconst setTabStoreSelectedId = useCallback(\n\t\t( tabName: string ) => {\n\t\t\ttabStore.setState( 'selectedId', prependInstanceId( tabName ) );\n\t\t},\n\t\t[ prependInstanceId, tabStore ]\n\t);\n\n\tconst selectedTab = tabs.find( ( { name } ) => name === selectedTabName );\n\n\tconst previousSelectedTabName = usePrevious( selectedTabName );\n\n\t// Ensure `onSelect` is called when the initial tab is selected.\n\tuseEffect( () => {\n\t\tif (\n\t\t\tpreviousSelectedTabName !== selectedTabName &&\n\t\t\tselectedTabName === initialTabName &&\n\t\t\t!! selectedTabName\n\t\t) {\n\t\t\tonSelect?.( selectedTabName );\n\t\t}\n\t}, [ selectedTabName, initialTabName, onSelect, previousSelectedTabName ] );\n\n\t// Handle selecting the initial tab.\n\tuseLayoutEffect( () => {\n\t\t// If there's a selected tab, don't override it.\n\t\tif ( selectedTab ) {\n\t\t\treturn;\n\t\t}\n\t\tconst initialTab = tabs.find( ( tab ) => tab.name === initialTabName );\n\t\t// Wait for the denoted initial tab to be declared before making a\n\t\t// selection. This ensures that if a tab is declared lazily it can\n\t\t// still receive initial selection.\n\t\tif ( initialTabName && ! initialTab ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( initialTab && ! initialTab.disabled ) {\n\t\t\t// Select the initial tab if it's not disabled.\n\t\t\tsetTabStoreSelectedId( initialTab.name );\n\t\t} else {\n\t\t\t// Fallback to the first enabled tab when the initial tab is\n\t\t\t// disabled or it can't be found.\n\t\t\tconst firstEnabledTab = tabs.find( ( tab ) => ! tab.disabled );\n\t\t\tif ( firstEnabledTab ) {\n\t\t\t\tsetTabStoreSelectedId( firstEnabledTab.name );\n\t\t\t}\n\t\t}\n\t}, [\n\t\ttabs,\n\t\tselectedTab,\n\t\tinitialTabName,\n\t\tinstanceId,\n\t\tsetTabStoreSelectedId,\n\t] );\n\n\t// Handle the currently selected tab becoming disabled.\n\tuseEffect( () => {\n\t\t// This effect only runs when the selected tab is defined and becomes disabled.\n\t\tif ( ! selectedTab?.disabled ) {\n\t\t\treturn;\n\t\t}\n\t\tconst firstEnabledTab = tabs.find( ( tab ) => ! tab.disabled );\n\t\t// If the currently selected tab becomes disabled, select the first enabled tab.\n\t\t// (if there is one).\n\t\tif ( firstEnabledTab ) {\n\t\t\tsetTabStoreSelectedId( firstEnabledTab.name );\n\t\t}\n\t}, [ tabs, selectedTab?.disabled, setTabStoreSelectedId, instanceId ] );\n\treturn (\n\t\t<div className={ className } ref={ ref }>\n\t\t\t<Ariakit.TabList\n\t\t\t\tstore={ tabStore }\n\t\t\t\tclassName=\"components-tab-panel__tabs\"\n\t\t\t>\n\t\t\t\t{ tabs.map( ( tab ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Ariakit.Tab\n\t\t\t\t\t\t\tkey={ tab.name }\n\t\t\t\t\t\t\tid={ prependInstanceId( tab.name ) }\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t'components-tab-panel__tabs-item',\n\t\t\t\t\t\t\t\ttab.className,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t[ activeClass ]:\n\t\t\t\t\t\t\t\t\t\ttab.name === selectedTabName,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tdisabled={ tab.disabled }\n\t\t\t\t\t\t\taria-controls={ `${ prependInstanceId(\n\t\t\t\t\t\t\t\ttab.name\n\t\t\t\t\t\t\t) }-view` }\n\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ticon={ tab.icon }\n\t\t\t\t\t\t\t\t\tlabel={ tab.icon && tab.title }\n\t\t\t\t\t\t\t\t\tshowTooltip={ !! tab.icon }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ ! tab.icon && tab.title }\n\t\t\t\t\t\t</Ariakit.Tab>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</Ariakit.TabList>\n\t\t\t{ selectedTab && (\n\t\t\t\t<Ariakit.TabPanel\n\t\t\t\t\tid={ `${ prependInstanceId( selectedTab.name ) }-view` }\n\t\t\t\t\tstore={ tabStore }\n\t\t\t\t\ttabId={ prependInstanceId( selectedTab.name ) }\n\t\t\t\t\tclassName={ 'components-tab-panel__tab-content' }\n\t\t\t\t>\n\t\t\t\t\t{ children( selectedTab ) }\n\t\t\t\t</Ariakit.TabPanel>\n\t\t\t) }\n\t\t</div>\n\t);\n};\n\nexport const TabPanel = forwardRef( UnforwardedTabPanel );\nexport default TabPanel;\n"]}
@@ -27,10 +27,8 @@ import DropdownContentWrapper from '../../dropdown/dropdown-content-wrapper';
27
27
  import { isMultiplePaletteArray } from '../../color-palette/utils';
28
28
 
29
29
  const getAriaLabelColorValue = colorValue => {
30
- const isHex = colorValue.startsWith('#'); // Leave hex values as-is. Remove the `var()` wrapper from CSS vars.
31
-
32
- const displayValue = colorValue.replace(/^var\((.+)\)$/, '$1');
33
- return isHex ? displayValue.split('').join('-') : displayValue;
30
+ // Leave hex values as-is. Remove the `var()` wrapper from CSS vars.
31
+ return colorValue.replace(/^var\((.+)\)$/, '$1');
34
32
  };
35
33
 
36
34
  const getColorObject = (colorValue, colors) => {
@@ -60,15 +58,15 @@ const getToggleAriaLabel = (colorValue, colorObject, style, isStyleEnabled) => {
60
58
  if (isStyleEnabled) {
61
59
  if (colorObject) {
62
60
  const ariaLabelValue = getAriaLabelColorValue(colorObject.color);
63
- return style ? sprintf( // translators: %1$s: The name of the color e.g. "vivid red". %2$s: The color's hex code, with added hyphens e.g: "#-f-0-0". %3$s: The current border style selection e.g. "solid".
64
- 'Border color and style picker. The currently selected color is called "%1$s" and has a value of "%2$s". The currently selected style is "%3$s".', colorObject.name, ariaLabelValue, style) : sprintf( // translators: %1$s: The name of the color e.g. "vivid red". %2$s: The color's hex code, with added hyphens e.g: "#-f-0-0".
61
+ return style ? sprintf( // translators: %1$s: The name of the color e.g. "vivid red". %2$s: The color's hex code e.g.: "#f00:". %3$s: The current border style selection e.g. "solid".
62
+ 'Border color and style picker. The currently selected color is called "%1$s" and has a value of "%2$s". The currently selected style is "%3$s".', colorObject.name, ariaLabelValue, style) : sprintf( // translators: %1$s: The name of the color e.g. "vivid red". %2$s: The color's hex code e.g.: "#f00:".
65
63
  'Border color and style picker. The currently selected color is called "%1$s" and has a value of "%2$s".', colorObject.name, ariaLabelValue);
66
64
  }
67
65
 
68
66
  if (colorValue) {
69
67
  const ariaLabelValue = getAriaLabelColorValue(colorValue);
70
- return style ? sprintf( // translators: %1$s: The color's hex code, with added hyphens e.g: "#-f-0-0". %2$s: The current border style selection e.g. "solid".
71
- 'Border color and style picker. The currently selected color has a value of "%1$s". The currently selected style is "%2$s".', ariaLabelValue, style) : sprintf( // translators: %1$s: The color's hex code, with added hyphens e.g: "#-f-0-0".
68
+ return style ? sprintf( // translators: %1$s: The color's hex code e.g.: "#f00:". %2$s: The current border style selection e.g. "solid".
69
+ 'Border color and style picker. The currently selected color has a value of "%1$s". The currently selected style is "%2$s".', ariaLabelValue, style) : sprintf( // translators: %1$s: The color's hex code e.g: "#f00".
72
70
  'Border color and style picker. The currently selected color has a value of "%1$s".', ariaLabelValue);
73
71
  }
74
72
 
@@ -76,12 +74,12 @@ const getToggleAriaLabel = (colorValue, colorObject, style, isStyleEnabled) => {
76
74
  }
77
75
 
78
76
  if (colorObject) {
79
- return sprintf( // translators: %1$s: The name of the color e.g. "vivid red". %2$s: The color's hex code, with added hyphens e.g: "#-f-0-0".
77
+ return sprintf( // translators: %1$s: The name of the color e.g. "vivid red". %2$s: The color's hex code e.g: "#f00".
80
78
  'Border color picker. The currently selected color is called "%1$s" and has a value of "%2$s".', colorObject.name, getAriaLabelColorValue(colorObject.color));
81
79
  }
82
80
 
83
81
  if (colorValue) {
84
- return sprintf( // translators: %1$s: The color's hex code, with added hyphens e.g: "#-f-0-0".
82
+ return sprintf( // translators: %1$s: The color's hex code e.g: "#f00".
85
83
  'Border color picker. The currently selected color has a value of "%1$s".', getAriaLabelColorValue(colorValue));
86
84
  }
87
85