@wordpress/components 23.0.0 → 23.1.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 (196) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/CONTRIBUTING.md +0 -21
  3. package/build/autocomplete/index.js +1 -3
  4. package/build/autocomplete/index.js.map +1 -1
  5. package/build/border-box-control/border-box-control/component.js +0 -3
  6. package/build/border-box-control/border-box-control/component.js.map +1 -1
  7. package/build/border-box-control/border-box-control/hook.js +0 -2
  8. package/build/border-box-control/border-box-control/hook.js.map +1 -1
  9. package/build/border-box-control/border-box-control-split-controls/component.js +0 -2
  10. package/build/border-box-control/border-box-control-split-controls/component.js.map +1 -1
  11. package/build/border-box-control/border-box-control-split-controls/hook.js +0 -2
  12. package/build/border-box-control/border-box-control-split-controls/hook.js.map +1 -1
  13. package/build/border-control/border-control/component.js +0 -2
  14. package/build/border-control/border-control/component.js.map +1 -1
  15. package/build/border-control/border-control/hook.js +0 -2
  16. package/build/border-control/border-control/hook.js.map +1 -1
  17. package/build/border-control/border-control-dropdown/component.js +6 -11
  18. package/build/border-control/border-control-dropdown/component.js.map +1 -1
  19. package/build/border-control/border-control-dropdown/hook.js +0 -2
  20. package/build/border-control/border-control-dropdown/hook.js.map +1 -1
  21. package/build/color-palette/index.js +5 -8
  22. package/build/color-palette/index.js.map +1 -1
  23. package/build/dimension-control/index.js.map +1 -1
  24. package/build/dropdown/index.js +45 -10
  25. package/build/dropdown/index.js.map +1 -1
  26. package/build/gradient-picker/index.js +1 -2
  27. package/build/gradient-picker/index.js.map +1 -1
  28. package/build/higher-order/navigate-regions/index.js +4 -3
  29. package/build/higher-order/navigate-regions/index.js.map +1 -1
  30. package/build/index.js +0 -8
  31. package/build/index.js.map +1 -1
  32. package/build/mobile/bottom-sheet/picker-cell.native.js +1 -9
  33. package/build/mobile/bottom-sheet/picker-cell.native.js.map +1 -1
  34. package/build/mobile/global-styles-context/utils.native.js +30 -12
  35. package/build/mobile/global-styles-context/utils.native.js.map +1 -1
  36. package/build/tab-panel/index.js +5 -4
  37. package/build/tab-panel/index.js.map +1 -1
  38. package/build-module/autocomplete/index.js +1 -2
  39. package/build-module/autocomplete/index.js.map +1 -1
  40. package/build-module/border-box-control/border-box-control/component.js +0 -3
  41. package/build-module/border-box-control/border-box-control/component.js.map +1 -1
  42. package/build-module/border-box-control/border-box-control/hook.js +0 -2
  43. package/build-module/border-box-control/border-box-control/hook.js.map +1 -1
  44. package/build-module/border-box-control/border-box-control-split-controls/component.js +0 -2
  45. package/build-module/border-box-control/border-box-control-split-controls/component.js.map +1 -1
  46. package/build-module/border-box-control/border-box-control-split-controls/hook.js +0 -2
  47. package/build-module/border-box-control/border-box-control-split-controls/hook.js.map +1 -1
  48. package/build-module/border-control/border-control/component.js +0 -2
  49. package/build-module/border-control/border-control/component.js.map +1 -1
  50. package/build-module/border-control/border-control/hook.js +0 -2
  51. package/build-module/border-control/border-control/hook.js.map +1 -1
  52. package/build-module/border-control/border-control-dropdown/component.js +6 -11
  53. package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
  54. package/build-module/border-control/border-control-dropdown/hook.js +0 -2
  55. package/build-module/border-control/border-control-dropdown/hook.js.map +1 -1
  56. package/build-module/color-palette/index.js +5 -8
  57. package/build-module/color-palette/index.js.map +1 -1
  58. package/build-module/dimension-control/index.js +1 -2
  59. package/build-module/dimension-control/index.js.map +1 -1
  60. package/build-module/dropdown/index.js +44 -10
  61. package/build-module/dropdown/index.js.map +1 -1
  62. package/build-module/gradient-picker/index.js +1 -2
  63. package/build-module/gradient-picker/index.js.map +1 -1
  64. package/build-module/higher-order/navigate-regions/index.js +4 -3
  65. package/build-module/higher-order/navigate-regions/index.js.map +1 -1
  66. package/build-module/index.js +0 -1
  67. package/build-module/index.js.map +1 -1
  68. package/build-module/mobile/bottom-sheet/picker-cell.native.js +1 -8
  69. package/build-module/mobile/bottom-sheet/picker-cell.native.js.map +1 -1
  70. package/build-module/mobile/global-styles-context/utils.native.js +31 -13
  71. package/build-module/mobile/global-styles-context/utils.native.js.map +1 -1
  72. package/build-module/tab-panel/index.js +5 -3
  73. package/build-module/tab-panel/index.js.map +1 -1
  74. package/build-style/style-rtl.css +18 -31
  75. package/build-style/style.css +18 -31
  76. package/build-types/border-box-control/border-box-control/component.d.ts +1 -1
  77. package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -1
  78. package/build-types/border-box-control/border-box-control/hook.d.ts +0 -1
  79. package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -1
  80. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts +1 -1
  81. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts.map +1 -1
  82. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +0 -1
  83. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts.map +1 -1
  84. package/build-types/border-box-control/stories/index.d.ts +1 -1
  85. package/build-types/border-control/border-control/component.d.ts +1 -1
  86. package/build-types/border-control/border-control/component.d.ts.map +1 -1
  87. package/build-types/border-control/border-control/hook.d.ts +0 -1
  88. package/build-types/border-control/border-control/hook.d.ts.map +1 -1
  89. package/build-types/border-control/border-control-dropdown/component.d.ts +1 -1
  90. package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -1
  91. package/build-types/border-control/border-control-dropdown/hook.d.ts +0 -1
  92. package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -1
  93. package/build-types/border-control/stories/index.d.ts +6 -6
  94. package/build-types/border-control/stories/index.d.ts.map +1 -1
  95. package/build-types/border-control/types.d.ts +1 -1
  96. package/build-types/border-control/types.d.ts.map +1 -1
  97. package/build-types/color-palette/index.d.ts +2 -3
  98. package/build-types/color-palette/index.d.ts.map +1 -1
  99. package/build-types/color-palette/stories/index.d.ts +2 -9
  100. package/build-types/color-palette/stories/index.d.ts.map +1 -1
  101. package/build-types/color-palette/types.d.ts +3 -16
  102. package/build-types/color-palette/types.d.ts.map +1 -1
  103. package/build-types/disabled/stories/index.d.ts.map +1 -1
  104. package/build-types/dropdown/index.d.ts +29 -1
  105. package/build-types/dropdown/index.d.ts.map +1 -1
  106. package/build-types/dropdown/stories/index.d.ts +23 -0
  107. package/build-types/dropdown/stories/index.d.ts.map +1 -0
  108. package/build-types/dropdown/test/index.d.ts +2 -0
  109. package/build-types/dropdown/test/index.d.ts.map +1 -0
  110. package/build-types/dropdown/types.d.ts +101 -0
  111. package/build-types/dropdown/types.d.ts.map +1 -1
  112. package/build-types/icon/stories/index.d.ts +22 -0
  113. package/build-types/icon/stories/index.d.ts.map +1 -0
  114. package/build-types/tab-panel/index.d.ts.map +1 -1
  115. package/package.json +17 -17
  116. package/src/autocomplete/index.js +1 -3
  117. package/src/autocomplete/test/index.js +2 -0
  118. package/src/base-control/test/index.tsx +1 -0
  119. package/src/border-box-control/border-box-control/component.tsx +0 -7
  120. package/src/border-box-control/border-box-control/hook.ts +0 -2
  121. package/src/border-box-control/border-box-control-split-controls/component.tsx +0 -2
  122. package/src/border-box-control/border-box-control-split-controls/hook.ts +0 -2
  123. package/src/border-box-control/test/index.js +2 -0
  124. package/src/border-control/border-control/component.tsx +0 -4
  125. package/src/border-control/border-control/hook.ts +0 -2
  126. package/src/border-control/border-control-dropdown/component.tsx +11 -17
  127. package/src/border-control/border-control-dropdown/hook.ts +0 -2
  128. package/src/border-control/stories/index.tsx +0 -1
  129. package/src/border-control/test/index.js +70 -67
  130. package/src/border-control/types.ts +1 -4
  131. package/src/box-control/test/index.js +2 -0
  132. package/src/checkbox-control/test/index.tsx +2 -0
  133. package/src/color-palette/index.tsx +12 -12
  134. package/src/color-palette/stories/index.tsx +0 -13
  135. package/src/color-palette/test/index.tsx +2 -0
  136. package/src/color-palette/types.ts +3 -17
  137. package/src/color-picker/test/index.js +2 -0
  138. package/src/combobox-control/test/index.js +2 -0
  139. package/src/confirm-dialog/test/index.js +2 -0
  140. package/src/date-time/date/test/index.tsx +2 -0
  141. package/src/date-time/time/test/index.tsx +2 -0
  142. package/src/dimension-control/index.js +2 -3
  143. package/src/dimension-control/test/index.test.js +2 -0
  144. package/src/disabled/stories/index.tsx +6 -2
  145. package/src/disabled/test/index.tsx +2 -0
  146. package/src/dropdown/README.md +41 -46
  147. package/src/dropdown/{index.js → index.tsx} +57 -13
  148. package/src/dropdown/stories/{index.js → index.tsx} +21 -8
  149. package/src/dropdown/test/{index.js → index.tsx} +9 -9
  150. package/src/dropdown/types.ts +107 -0
  151. package/src/dropdown-menu/README.md +2 -3
  152. package/src/dropdown-menu/test/index.js +2 -0
  153. package/src/external-link/test/index.tsx +2 -0
  154. package/src/focal-point-picker/test/index.js +2 -0
  155. package/src/font-size-picker/test/index.tsx +2 -0
  156. package/src/form-file-upload/test/index.tsx +2 -0
  157. package/src/form-toggle/test/index.tsx +2 -0
  158. package/src/form-token-field/test/index.tsx +3 -0
  159. package/src/gradient-picker/index.js +1 -2
  160. package/src/gradient-picker/stories/index.js +0 -1
  161. package/src/guide/test/index.js +2 -0
  162. package/src/higher-order/navigate-regions/index.js +5 -2
  163. package/src/higher-order/navigate-regions/style.scss +13 -39
  164. package/src/higher-order/with-filters/test/index.js +70 -74
  165. package/src/higher-order/with-focus-outside/test/index.js +2 -0
  166. package/src/higher-order/with-focus-return/test/index.js +2 -0
  167. package/src/higher-order/with-notices/test/index.js +1 -0
  168. package/src/icon/stories/index.tsx +103 -0
  169. package/src/index.js +0 -1
  170. package/src/input-control/test/index.js +3 -0
  171. package/src/isolated-event-container/test/index.js +2 -0
  172. package/src/mobile/bottom-sheet/picker-cell.native.js +1 -6
  173. package/src/mobile/global-styles-context/utils.native.js +17 -16
  174. package/src/modal/test/index.tsx +1 -3
  175. package/src/navigable-container/test/navigable-menu.js +2 -0
  176. package/src/navigable-container/test/tababble-container.js +2 -0
  177. package/src/navigation/test/index.js +2 -0
  178. package/src/navigator/test/index.tsx +2 -0
  179. package/src/notice/test/index.js +8 -3
  180. package/src/number-control/test/index.tsx +2 -0
  181. package/src/panel/test/__snapshots__/body.js.snap +9 -0
  182. package/src/panel/test/body.js +71 -62
  183. package/src/placeholder/test/index.tsx +3 -0
  184. package/src/select-control/test/select-control.tsx +2 -0
  185. package/src/tab-panel/index.tsx +1 -2
  186. package/src/tab-panel/test/index.tsx +2 -0
  187. package/src/text-highlight/test/index.tsx +1 -0
  188. package/src/toggle-group-control/test/index.tsx +2 -0
  189. package/src/toolbar/style.scss +1 -1
  190. package/src/toolbar-group/test/index.js +2 -0
  191. package/src/tooltip/stories/index.js +68 -78
  192. package/src/tooltip/test/index.js +2 -0
  193. package/src/unit-control/test/index.tsx +3 -0
  194. package/src/utils/hooks/test/use-latest-ref.js +2 -0
  195. package/tsconfig.tsbuildinfo +1 -1
  196. package/src/icon/stories/index.js +0 -128
package/build/index.js CHANGED
@@ -863,12 +863,6 @@ Object.defineProperty(exports, "__experimentalText", {
863
863
  return _text.Text;
864
864
  }
865
865
  });
866
- Object.defineProperty(exports, "__experimentalTheme", {
867
- enumerable: true,
868
- get: function () {
869
- return _theme.default;
870
- }
871
- });
872
866
  Object.defineProperty(exports, "__experimentalToggleGroupControl", {
873
867
  enumerable: true,
874
868
  get: function () {
@@ -1314,8 +1308,6 @@ var _textareaControl = _interopRequireDefault(require("./textarea-control"));
1314
1308
 
1315
1309
  var _textHighlight = _interopRequireDefault(require("./text-highlight"));
1316
1310
 
1317
- var _theme = _interopRequireDefault(require("./theme"));
1318
-
1319
1311
  var _tip = _interopRequireDefault(require("./tip"));
1320
1312
 
1321
1313
  var _toggleControl = _interopRequireDefault(require("./toggle-control"));
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AAaA;;AACA;;AAIA;;AACA;;AACA;;AAIA;;AACA;;AAMA;;AACA;;AAIA;;AACA;;AACA;;AAQA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAMA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAOA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AAMA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AAQA;;AACA;;AAGA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AAIA;;AACA","sourcesContent":["// Primitives.\nexport {\n\tSVG,\n\tPath,\n\tCircle,\n\tPolygon,\n\tRect,\n\tG,\n\tLine,\n\tHorizontalRule,\n\tBlockQuotation,\n} from '@wordpress/primitives';\n\n// Components.\nexport { default as __experimentalAlignmentMatrixControl } from './alignment-matrix-control';\nexport {\n\tdefault as Animate,\n\tgetAnimateClassName as __unstableGetAnimateClassName,\n} from './animate';\nexport { __unstableMotion, __unstableAnimatePresence } from './animation';\nexport { default as AnglePickerControl } from './angle-picker-control';\nexport {\n\tdefault as Autocomplete,\n\tuseAutocompleteProps as __unstableUseAutocompleteProps,\n} from './autocomplete';\nexport { default as BaseControl, useBaseControlProps } from './base-control';\nexport {\n\tBorderBoxControl as __experimentalBorderBoxControl,\n\thasSplitBorders as __experimentalHasSplitBorders,\n\tisDefinedBorder as __experimentalIsDefinedBorder,\n\tisEmptyBorder as __experimentalIsEmptyBorder,\n} from './border-box-control';\nexport { BorderControl as __experimentalBorderControl } from './border-control';\nexport {\n\tdefault as __experimentalBoxControl,\n\tapplyValueToSides as __experimentalApplyValueToSides,\n} from './box-control';\nexport { default as Button } from './button';\nexport { default as ButtonGroup } from './button-group';\nexport {\n\tCard,\n\tCardBody,\n\tCardDivider,\n\tCardFooter,\n\tCardHeader,\n\tCardMedia,\n} from './card';\nexport { default as CheckboxControl } from './checkbox-control';\nexport { default as ClipboardButton } from './clipboard-button';\nexport { default as __experimentalPaletteEdit } from './palette-edit';\nexport { default as ColorIndicator } from './color-indicator';\nexport { default as ColorPalette } from './color-palette';\nexport { ColorPicker } from './color-picker';\nexport { default as ComboboxControl } from './combobox-control';\nexport {\n\tComposite as __unstableComposite,\n\tCompositeGroup as __unstableCompositeGroup,\n\tCompositeItem as __unstableCompositeItem,\n\tuseCompositeState as __unstableUseCompositeState,\n} from './composite';\nexport { ConfirmDialog as __experimentalConfirmDialog } from './confirm-dialog';\nexport { default as CustomSelectControl } from './custom-select-control';\nexport { default as Dashicon } from './dashicon';\nexport { default as DateTimePicker, DatePicker, TimePicker } from './date-time';\nexport { default as __experimentalDimensionControl } from './dimension-control';\nexport { default as Disabled } from './disabled';\nexport { DisclosureContent as __unstableDisclosureContent } from './disclosure';\nexport { Divider as __experimentalDivider } from './divider';\nexport { default as Draggable } from './draggable';\nexport { default as DropZone } from './drop-zone';\nexport { default as DropZoneProvider } from './drop-zone/provider';\nexport { default as Dropdown } from './dropdown';\nexport { default as __experimentalDropdownContentWrapper } from './dropdown/dropdown-content-wrapper';\nexport { default as DropdownMenu } from './dropdown-menu';\nexport { DuotoneSwatch, DuotonePicker } from './duotone-picker';\nexport { Elevation as __experimentalElevation } from './elevation';\nexport { default as ExternalLink } from './external-link';\nexport { Flex, FlexBlock, FlexItem } from './flex';\nexport { default as FocalPointPicker } from './focal-point-picker';\nexport { default as FocusableIframe } from './focusable-iframe';\nexport { default as FontSizePicker } from './font-size-picker';\nexport { default as FormFileUpload } from './form-file-upload';\nexport { default as FormToggle } from './form-toggle';\nexport { default as FormTokenField } from './form-token-field';\nexport { default as GradientPicker } from './gradient-picker';\nexport { default as CustomGradientPicker } from './custom-gradient-picker';\nexport { Grid as __experimentalGrid } from './grid';\nexport { default as Guide } from './guide';\nexport { default as GuidePage } from './guide/page';\nexport { Heading as __experimentalHeading } from './heading';\nexport { HStack as __experimentalHStack } from './h-stack';\nexport { default as Icon } from './icon';\nexport { default as IconButton } from './button/deprecated';\nexport {\n\tItemGroup as __experimentalItemGroup,\n\tItem as __experimentalItem,\n} from './item-group';\nexport { default as __experimentalInputControl } from './input-control';\nexport { default as __experimentalInputControlPrefixWrapper } from './input-control/input-prefix-wrapper';\nexport { default as __experimentalInputControlSuffixWrapper } from './input-control/input-suffix-wrapper';\nexport { default as KeyboardShortcuts } from './keyboard-shortcuts';\nexport { default as MenuGroup } from './menu-group';\nexport { default as MenuItem } from './menu-item';\nexport { default as MenuItemsChoice } from './menu-items-choice';\nexport { default as Modal } from './modal';\nexport { default as ScrollLock } from './scroll-lock';\nexport { NavigableMenu, TabbableContainer } from './navigable-container';\nexport { default as __experimentalNavigation } from './navigation';\nexport { default as __experimentalNavigationBackButton } from './navigation/back-button';\nexport { default as __experimentalNavigationGroup } from './navigation/group';\nexport { default as __experimentalNavigationItem } from './navigation/item';\nexport { default as __experimentalNavigationMenu } from './navigation/menu';\nexport {\n\tNavigatorProvider as __experimentalNavigatorProvider,\n\tNavigatorScreen as __experimentalNavigatorScreen,\n\tNavigatorButton as __experimentalNavigatorButton,\n\tNavigatorBackButton as __experimentalNavigatorBackButton,\n\tuseNavigator as __experimentalUseNavigator,\n} from './navigator';\nexport { default as Notice } from './notice';\nexport { default as __experimentalNumberControl } from './number-control';\nexport { default as NoticeList } from './notice/list';\nexport { default as Panel } from './panel';\nexport { default as PanelBody } from './panel/body';\nexport { default as PanelHeader } from './panel/header';\nexport { default as PanelRow } from './panel/row';\nexport { default as Placeholder } from './placeholder';\nexport { default as Popover } from './popover';\nexport { positionToPlacement as __experimentalPopoverPositionToPlacement } from './popover/utils';\nexport { default as QueryControls } from './query-controls';\nexport { default as __experimentalRadio } from './radio-group/radio';\nexport { default as __experimentalRadioGroup } from './radio-group';\nexport { default as RadioControl } from './radio-control';\nexport { default as RangeControl } from './range-control';\nexport { default as ResizableBox } from './resizable-box';\nexport { default as ResponsiveWrapper } from './responsive-wrapper';\nexport { default as SandBox } from './sandbox';\nexport { default as SearchControl } from './search-control';\nexport { default as SelectControl } from './select-control';\nexport { default as Snackbar } from './snackbar';\nexport { default as SnackbarList } from './snackbar/list';\nexport { Spacer as __experimentalSpacer } from './spacer';\nexport { Scrollable as __experimentalScrollable } from './scrollable';\nexport { default as Spinner } from './spinner';\nexport { Surface as __experimentalSurface } from './surface';\nexport { default as TabPanel } from './tab-panel';\nexport { Text as __experimentalText } from './text';\nexport { default as TextControl } from './text-control';\nexport { default as TextareaControl } from './textarea-control';\nexport { default as TextHighlight } from './text-highlight';\nexport { default as __experimentalTheme } from './theme';\nexport { default as Tip } from './tip';\nexport { default as ToggleControl } from './toggle-control';\nexport {\n\tToggleGroupControl as __experimentalToggleGroupControl,\n\tToggleGroupControlOption as __experimentalToggleGroupControlOption,\n\tToggleGroupControlOptionIcon as __experimentalToggleGroupControlOptionIcon,\n} from './toggle-group-control';\nexport { default as Toolbar } from './toolbar';\nexport { default as ToolbarButton } from './toolbar-button';\nexport { default as ToolbarDropdownMenu } from './toolbar-dropdown-menu';\nexport { default as __experimentalToolbarContext } from './toolbar-context';\nexport { default as ToolbarGroup } from './toolbar-group';\nexport { default as ToolbarItem } from './toolbar-item';\nexport {\n\tToolsPanel as __experimentalToolsPanel,\n\tToolsPanelItem as __experimentalToolsPanelItem,\n\tToolsPanelContext as __experimentalToolsPanelContext,\n} from './tools-panel';\nexport { default as Tooltip } from './tooltip';\nexport {\n\tdefault as __experimentalTreeGrid,\n\tTreeGridRow as __experimentalTreeGridRow,\n\tTreeGridCell as __experimentalTreeGridCell,\n\tTreeGridItem as __experimentalTreeGridItem,\n} from './tree-grid';\nexport { default as TreeSelect } from './tree-select';\nexport { Truncate as __experimentalTruncate } from './truncate';\nexport {\n\tdefault as __experimentalUnitControl,\n\tuseCustomUnits as __experimentalUseCustomUnits,\n\tparseQuantityAndUnitFromRawValue as __experimentalParseQuantityAndUnitFromRawValue,\n} from './unit-control';\nexport { View as __experimentalView } from './view';\nexport { VisuallyHidden } from './visually-hidden';\nexport { VStack as __experimentalVStack } from './v-stack';\nexport { default as IsolatedEventContainer } from './isolated-event-container';\nexport {\n\tcreateSlotFill,\n\tSlot,\n\tFill,\n\tProvider as SlotFillProvider,\n\tuseSlot as __experimentalUseSlot,\n\tuseSlotFills as __experimentalUseSlotFills,\n} from './slot-fill';\nexport { default as __experimentalStyleProvider } from './style-provider';\nexport { ZStack as __experimentalZStack } from './z-stack';\n\n// Higher-Order Components.\nexport {\n\tdefault as navigateRegions,\n\tuseNavigateRegions as __unstableUseNavigateRegions,\n} from './higher-order/navigate-regions';\nexport { default as withConstrainedTabbing } from './higher-order/with-constrained-tabbing';\nexport { default as withFallbackStyles } from './higher-order/with-fallback-styles';\nexport { default as withFilters } from './higher-order/with-filters';\nexport { default as withFocusOutside } from './higher-order/with-focus-outside';\nexport {\n\tdefault as withFocusReturn,\n\tProvider as FocusReturnProvider,\n} from './higher-order/with-focus-return';\nexport { default as withNotices } from './higher-order/with-notices';\nexport { default as withSpokenMessages } from './higher-order/with-spoken-messages';\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AAaA;;AACA;;AAIA;;AACA;;AACA;;AAIA;;AACA;;AAMA;;AACA;;AAIA;;AACA;;AACA;;AAQA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAMA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAOA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AAMA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AAQA;;AACA;;AAGA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AAIA;;AACA","sourcesContent":["// Primitives.\nexport {\n\tSVG,\n\tPath,\n\tCircle,\n\tPolygon,\n\tRect,\n\tG,\n\tLine,\n\tHorizontalRule,\n\tBlockQuotation,\n} from '@wordpress/primitives';\n\n// Components.\nexport { default as __experimentalAlignmentMatrixControl } from './alignment-matrix-control';\nexport {\n\tdefault as Animate,\n\tgetAnimateClassName as __unstableGetAnimateClassName,\n} from './animate';\nexport { __unstableMotion, __unstableAnimatePresence } from './animation';\nexport { default as AnglePickerControl } from './angle-picker-control';\nexport {\n\tdefault as Autocomplete,\n\tuseAutocompleteProps as __unstableUseAutocompleteProps,\n} from './autocomplete';\nexport { default as BaseControl, useBaseControlProps } from './base-control';\nexport {\n\tBorderBoxControl as __experimentalBorderBoxControl,\n\thasSplitBorders as __experimentalHasSplitBorders,\n\tisDefinedBorder as __experimentalIsDefinedBorder,\n\tisEmptyBorder as __experimentalIsEmptyBorder,\n} from './border-box-control';\nexport { BorderControl as __experimentalBorderControl } from './border-control';\nexport {\n\tdefault as __experimentalBoxControl,\n\tapplyValueToSides as __experimentalApplyValueToSides,\n} from './box-control';\nexport { default as Button } from './button';\nexport { default as ButtonGroup } from './button-group';\nexport {\n\tCard,\n\tCardBody,\n\tCardDivider,\n\tCardFooter,\n\tCardHeader,\n\tCardMedia,\n} from './card';\nexport { default as CheckboxControl } from './checkbox-control';\nexport { default as ClipboardButton } from './clipboard-button';\nexport { default as __experimentalPaletteEdit } from './palette-edit';\nexport { default as ColorIndicator } from './color-indicator';\nexport { default as ColorPalette } from './color-palette';\nexport { ColorPicker } from './color-picker';\nexport { default as ComboboxControl } from './combobox-control';\nexport {\n\tComposite as __unstableComposite,\n\tCompositeGroup as __unstableCompositeGroup,\n\tCompositeItem as __unstableCompositeItem,\n\tuseCompositeState as __unstableUseCompositeState,\n} from './composite';\nexport { ConfirmDialog as __experimentalConfirmDialog } from './confirm-dialog';\nexport { default as CustomSelectControl } from './custom-select-control';\nexport { default as Dashicon } from './dashicon';\nexport { default as DateTimePicker, DatePicker, TimePicker } from './date-time';\nexport { default as __experimentalDimensionControl } from './dimension-control';\nexport { default as Disabled } from './disabled';\nexport { DisclosureContent as __unstableDisclosureContent } from './disclosure';\nexport { Divider as __experimentalDivider } from './divider';\nexport { default as Draggable } from './draggable';\nexport { default as DropZone } from './drop-zone';\nexport { default as DropZoneProvider } from './drop-zone/provider';\nexport { default as Dropdown } from './dropdown';\nexport { default as __experimentalDropdownContentWrapper } from './dropdown/dropdown-content-wrapper';\nexport { default as DropdownMenu } from './dropdown-menu';\nexport { DuotoneSwatch, DuotonePicker } from './duotone-picker';\nexport { Elevation as __experimentalElevation } from './elevation';\nexport { default as ExternalLink } from './external-link';\nexport { Flex, FlexBlock, FlexItem } from './flex';\nexport { default as FocalPointPicker } from './focal-point-picker';\nexport { default as FocusableIframe } from './focusable-iframe';\nexport { default as FontSizePicker } from './font-size-picker';\nexport { default as FormFileUpload } from './form-file-upload';\nexport { default as FormToggle } from './form-toggle';\nexport { default as FormTokenField } from './form-token-field';\nexport { default as GradientPicker } from './gradient-picker';\nexport { default as CustomGradientPicker } from './custom-gradient-picker';\nexport { Grid as __experimentalGrid } from './grid';\nexport { default as Guide } from './guide';\nexport { default as GuidePage } from './guide/page';\nexport { Heading as __experimentalHeading } from './heading';\nexport { HStack as __experimentalHStack } from './h-stack';\nexport { default as Icon } from './icon';\nexport { default as IconButton } from './button/deprecated';\nexport {\n\tItemGroup as __experimentalItemGroup,\n\tItem as __experimentalItem,\n} from './item-group';\nexport { default as __experimentalInputControl } from './input-control';\nexport { default as __experimentalInputControlPrefixWrapper } from './input-control/input-prefix-wrapper';\nexport { default as __experimentalInputControlSuffixWrapper } from './input-control/input-suffix-wrapper';\nexport { default as KeyboardShortcuts } from './keyboard-shortcuts';\nexport { default as MenuGroup } from './menu-group';\nexport { default as MenuItem } from './menu-item';\nexport { default as MenuItemsChoice } from './menu-items-choice';\nexport { default as Modal } from './modal';\nexport { default as ScrollLock } from './scroll-lock';\nexport { NavigableMenu, TabbableContainer } from './navigable-container';\nexport { default as __experimentalNavigation } from './navigation';\nexport { default as __experimentalNavigationBackButton } from './navigation/back-button';\nexport { default as __experimentalNavigationGroup } from './navigation/group';\nexport { default as __experimentalNavigationItem } from './navigation/item';\nexport { default as __experimentalNavigationMenu } from './navigation/menu';\nexport {\n\tNavigatorProvider as __experimentalNavigatorProvider,\n\tNavigatorScreen as __experimentalNavigatorScreen,\n\tNavigatorButton as __experimentalNavigatorButton,\n\tNavigatorBackButton as __experimentalNavigatorBackButton,\n\tuseNavigator as __experimentalUseNavigator,\n} from './navigator';\nexport { default as Notice } from './notice';\nexport { default as __experimentalNumberControl } from './number-control';\nexport { default as NoticeList } from './notice/list';\nexport { default as Panel } from './panel';\nexport { default as PanelBody } from './panel/body';\nexport { default as PanelHeader } from './panel/header';\nexport { default as PanelRow } from './panel/row';\nexport { default as Placeholder } from './placeholder';\nexport { default as Popover } from './popover';\nexport { positionToPlacement as __experimentalPopoverPositionToPlacement } from './popover/utils';\nexport { default as QueryControls } from './query-controls';\nexport { default as __experimentalRadio } from './radio-group/radio';\nexport { default as __experimentalRadioGroup } from './radio-group';\nexport { default as RadioControl } from './radio-control';\nexport { default as RangeControl } from './range-control';\nexport { default as ResizableBox } from './resizable-box';\nexport { default as ResponsiveWrapper } from './responsive-wrapper';\nexport { default as SandBox } from './sandbox';\nexport { default as SearchControl } from './search-control';\nexport { default as SelectControl } from './select-control';\nexport { default as Snackbar } from './snackbar';\nexport { default as SnackbarList } from './snackbar/list';\nexport { Spacer as __experimentalSpacer } from './spacer';\nexport { Scrollable as __experimentalScrollable } from './scrollable';\nexport { default as Spinner } from './spinner';\nexport { Surface as __experimentalSurface } from './surface';\nexport { default as TabPanel } from './tab-panel';\nexport { Text as __experimentalText } from './text';\nexport { default as TextControl } from './text-control';\nexport { default as TextareaControl } from './textarea-control';\nexport { default as TextHighlight } from './text-highlight';\nexport { default as Tip } from './tip';\nexport { default as ToggleControl } from './toggle-control';\nexport {\n\tToggleGroupControl as __experimentalToggleGroupControl,\n\tToggleGroupControlOption as __experimentalToggleGroupControlOption,\n\tToggleGroupControlOptionIcon as __experimentalToggleGroupControlOptionIcon,\n} from './toggle-group-control';\nexport { default as Toolbar } from './toolbar';\nexport { default as ToolbarButton } from './toolbar-button';\nexport { default as ToolbarDropdownMenu } from './toolbar-dropdown-menu';\nexport { default as __experimentalToolbarContext } from './toolbar-context';\nexport { default as ToolbarGroup } from './toolbar-group';\nexport { default as ToolbarItem } from './toolbar-item';\nexport {\n\tToolsPanel as __experimentalToolsPanel,\n\tToolsPanelItem as __experimentalToolsPanelItem,\n\tToolsPanelContext as __experimentalToolsPanelContext,\n} from './tools-panel';\nexport { default as Tooltip } from './tooltip';\nexport {\n\tdefault as __experimentalTreeGrid,\n\tTreeGridRow as __experimentalTreeGridRow,\n\tTreeGridCell as __experimentalTreeGridCell,\n\tTreeGridItem as __experimentalTreeGridItem,\n} from './tree-grid';\nexport { default as TreeSelect } from './tree-select';\nexport { Truncate as __experimentalTruncate } from './truncate';\nexport {\n\tdefault as __experimentalUnitControl,\n\tuseCustomUnits as __experimentalUseCustomUnits,\n\tparseQuantityAndUnitFromRawValue as __experimentalParseQuantityAndUnitFromRawValue,\n} from './unit-control';\nexport { View as __experimentalView } from './view';\nexport { VisuallyHidden } from './visually-hidden';\nexport { VStack as __experimentalVStack } from './v-stack';\nexport { default as IsolatedEventContainer } from './isolated-event-container';\nexport {\n\tcreateSlotFill,\n\tSlot,\n\tFill,\n\tProvider as SlotFillProvider,\n\tuseSlot as __experimentalUseSlot,\n\tuseSlotFills as __experimentalUseSlotFills,\n} from './slot-fill';\nexport { default as __experimentalStyleProvider } from './style-provider';\nexport { ZStack as __experimentalZStack } from './z-stack';\n\n// Higher-Order Components.\nexport {\n\tdefault as navigateRegions,\n\tuseNavigateRegions as __unstableUseNavigateRegions,\n} from './higher-order/navigate-regions';\nexport { default as withConstrainedTabbing } from './higher-order/with-constrained-tabbing';\nexport { default as withFallbackStyles } from './higher-order/with-fallback-styles';\nexport { default as withFilters } from './higher-order/with-filters';\nexport { default as withFocusOutside } from './higher-order/with-focus-outside';\nexport {\n\tdefault as withFocusReturn,\n\tProvider as FocusReturnProvider,\n} from './higher-order/with-focus-return';\nexport { default as withNotices } from './higher-order/with-notices';\nexport { default as withSpokenMessages } from './higher-order/with-spoken-messages';\n"]}
@@ -11,16 +11,10 @@ var _element = require("@wordpress/element");
11
11
 
12
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
13
 
14
- var _lodash = require("lodash");
15
-
16
14
  var _cell = _interopRequireDefault(require("./cell"));
17
15
 
18
16
  var _picker = _interopRequireDefault(require("../picker"));
19
17
 
20
- /**
21
- * External dependencies
22
- */
23
-
24
18
  /**
25
19
  * Internal dependencies
26
20
  */
@@ -42,9 +36,7 @@ function BottomSheetPickerCell(props) {
42
36
  onChangeValue(newValue);
43
37
  };
44
38
 
45
- const option = (0, _lodash.find)(options, {
46
- value
47
- });
39
+ const option = options.find(opt => opt.value === value);
48
40
  const label = option ? option.label : value;
49
41
  return (0, _element.createElement)(_cell.default, (0, _extends2.default)({
50
42
  onPress: onCellPress,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/mobile/bottom-sheet/picker-cell.native.js"],"names":["BottomSheetPickerCell","props","options","hideCancelButton","onChangeValue","value","cellProps","picker","onCellPress","presentPicker","onChange","newValue","option","label","instance"],"mappings":";;;;;;;;;;;;;AAGA;;AAKA;;AACA;;AATA;AACA;AACA;;AAGA;AACA;AACA;AAIe,SAASA,qBAAT,CAAgCC,KAAhC,EAAwC;AACtD,QAAM;AAAEC,IAAAA,OAAF;AAAWC,IAAAA,gBAAX;AAA6BC,IAAAA,aAA7B;AAA4CC,IAAAA,KAA5C;AAAmD,OAAGC;AAAtD,MACLL,KADD;AAGA,MAAIM,MAAJ;;AAEA,QAAMC,WAAW,GAAG,MAAM;AACzBD,IAAAA,MAAM,CAACE,aAAP;AACA,GAFD;;AAIA,QAAMC,QAAQ,GAAKC,QAAF,IAAgB;AAChCP,IAAAA,aAAa,CAAEO,QAAF,CAAb;AACA,GAFD;;AAIA,QAAMC,MAAM,GAAG,kBAAMV,OAAN,EAAe;AAAEG,IAAAA;AAAF,GAAf,CAAf;AACA,QAAMQ,KAAK,GAAGD,MAAM,GAAGA,MAAM,CAACC,KAAV,GAAkBR,KAAtC;AAEA,SACC,4BAAC,aAAD;AACC,IAAA,OAAO,EAAGG,WADX;AAEC,IAAA,QAAQ,EAAG,KAFZ;AAGC,IAAA,KAAK,EAAGK;AAHT,KAIMP,SAJN,GAMC,4BAAC,eAAD;AACC,IAAA,SAAS,MADV;AAEC,IAAA,gBAAgB,EAAGH,gBAFpB;AAGC,IAAA,GAAG,EAAKW,QAAF,IAAkBP,MAAM,GAAGO,QAHlC;AAIC,IAAA,OAAO,EAAGZ,OAJX;AAKC,IAAA,QAAQ,EAAGQ;AALZ,IAND,CADD;AAgBA","sourcesContent":["/**\n * External dependencies\n */\nimport { find } from 'lodash';\n\n/**\n * Internal dependencies\n */\nimport Cell from './cell';\nimport Picker from '../picker';\n\nexport default function BottomSheetPickerCell( props ) {\n\tconst { options, hideCancelButton, onChangeValue, value, ...cellProps } =\n\t\tprops;\n\n\tlet picker;\n\n\tconst onCellPress = () => {\n\t\tpicker.presentPicker();\n\t};\n\n\tconst onChange = ( newValue ) => {\n\t\tonChangeValue( newValue );\n\t};\n\n\tconst option = find( options, { value } );\n\tconst label = option ? option.label : value;\n\n\treturn (\n\t\t<Cell\n\t\t\tonPress={ onCellPress }\n\t\t\teditable={ false }\n\t\t\tvalue={ label }\n\t\t\t{ ...cellProps }\n\t\t>\n\t\t\t<Picker\n\t\t\t\tleftAlign\n\t\t\t\thideCancelButton={ hideCancelButton }\n\t\t\t\tref={ ( instance ) => ( picker = instance ) }\n\t\t\t\toptions={ options }\n\t\t\t\tonChange={ onChange }\n\t\t\t/>\n\t\t</Cell>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/mobile/bottom-sheet/picker-cell.native.js"],"names":["BottomSheetPickerCell","props","options","hideCancelButton","onChangeValue","value","cellProps","picker","onCellPress","presentPicker","onChange","newValue","option","find","opt","label","instance"],"mappings":";;;;;;;;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;AAIe,SAASA,qBAAT,CAAgCC,KAAhC,EAAwC;AACtD,QAAM;AAAEC,IAAAA,OAAF;AAAWC,IAAAA,gBAAX;AAA6BC,IAAAA,aAA7B;AAA4CC,IAAAA,KAA5C;AAAmD,OAAGC;AAAtD,MACLL,KADD;AAGA,MAAIM,MAAJ;;AAEA,QAAMC,WAAW,GAAG,MAAM;AACzBD,IAAAA,MAAM,CAACE,aAAP;AACA,GAFD;;AAIA,QAAMC,QAAQ,GAAKC,QAAF,IAAgB;AAChCP,IAAAA,aAAa,CAAEO,QAAF,CAAb;AACA,GAFD;;AAIA,QAAMC,MAAM,GAAGV,OAAO,CAACW,IAAR,CAAgBC,GAAF,IAAWA,GAAG,CAACT,KAAJ,KAAcA,KAAvC,CAAf;AACA,QAAMU,KAAK,GAAGH,MAAM,GAAGA,MAAM,CAACG,KAAV,GAAkBV,KAAtC;AAEA,SACC,4BAAC,aAAD;AACC,IAAA,OAAO,EAAGG,WADX;AAEC,IAAA,QAAQ,EAAG,KAFZ;AAGC,IAAA,KAAK,EAAGO;AAHT,KAIMT,SAJN,GAMC,4BAAC,eAAD;AACC,IAAA,SAAS,MADV;AAEC,IAAA,gBAAgB,EAAGH,gBAFpB;AAGC,IAAA,GAAG,EAAKa,QAAF,IAAkBT,MAAM,GAAGS,QAHlC;AAIC,IAAA,OAAO,EAAGd,OAJX;AAKC,IAAA,QAAQ,EAAGQ;AALZ,IAND,CADD;AAgBA","sourcesContent":["/**\n * Internal dependencies\n */\nimport Cell from './cell';\nimport Picker from '../picker';\n\nexport default function BottomSheetPickerCell( props ) {\n\tconst { options, hideCancelButton, onChangeValue, value, ...cellProps } =\n\t\tprops;\n\n\tlet picker;\n\n\tconst onCellPress = () => {\n\t\tpicker.presentPicker();\n\t};\n\n\tconst onChange = ( newValue ) => {\n\t\tonChangeValue( newValue );\n\t};\n\n\tconst option = options.find( ( opt ) => opt.value === value );\n\tconst label = option ? option.label : value;\n\n\treturn (\n\t\t<Cell\n\t\t\tonPress={ onCellPress }\n\t\t\teditable={ false }\n\t\t\tvalue={ label }\n\t\t\t{ ...cellProps }\n\t\t>\n\t\t\t<Picker\n\t\t\t\tleftAlign\n\t\t\t\thideCancelButton={ hideCancelButton }\n\t\t\t\tref={ ( instance ) => ( picker = instance ) }\n\t\t\t\toptions={ options }\n\t\t\t\tonChange={ onChange }\n\t\t\t/>\n\t\t</Cell>\n\t);\n}\n"]}
@@ -109,8 +109,11 @@ function getBlockColors(blockStyleAttributes, defaultColors, blockName, baseGlob
109
109
  }
110
110
 
111
111
  if (!isCustomColor) {
112
- const mappedColor = (0, _lodash.find)(defaultColors, {
113
- slug: value
112
+ const mappedColor = Object.values(defaultColors !== null && defaultColors !== void 0 ? defaultColors : {}).find(_ref3 => {
113
+ let {
114
+ slug
115
+ } = _ref3;
116
+ return slug === value;
114
117
  });
115
118
 
116
119
  if (mappedColor) {
@@ -133,7 +136,8 @@ function getBlockTypography(blockStyleAttributes, fontSizes, blockName, baseGlob
133
136
 
134
137
  const typographyStyles = {};
135
138
  const customBlockStyles = (blockStyleAttributes === null || blockStyleAttributes === void 0 ? void 0 : (_blockStyleAttributes2 = blockStyleAttributes.style) === null || _blockStyleAttributes2 === void 0 ? void 0 : _blockStyleAttributes2.typography) || {};
136
- const blockGlobalStyles = baseGlobalStyles === null || baseGlobalStyles === void 0 ? void 0 : (_baseGlobalStyles$blo2 = baseGlobalStyles.blocks) === null || _baseGlobalStyles$blo2 === void 0 ? void 0 : _baseGlobalStyles$blo2[blockName]; // Global styles.
139
+ const blockGlobalStyles = baseGlobalStyles === null || baseGlobalStyles === void 0 ? void 0 : (_baseGlobalStyles$blo2 = baseGlobalStyles.blocks) === null || _baseGlobalStyles$blo2 === void 0 ? void 0 : _baseGlobalStyles$blo2[blockName];
140
+ const parsedFontSizes = Object.values(fontSizes !== null && fontSizes !== void 0 ? fontSizes : {}); // Global styles.
137
141
 
138
142
  if (blockGlobalStyles !== null && blockGlobalStyles !== void 0 && blockGlobalStyles.typography) {
139
143
  var _blockGlobalStyles$ty, _blockGlobalStyles$ty2;
@@ -145,8 +149,11 @@ function getBlockTypography(blockStyleAttributes, fontSizes, blockName, baseGlob
145
149
  if (parseInt(fontSize, 10)) {
146
150
  typographyStyles.fontSize = fontSize;
147
151
  } else {
148
- const mappedFontSize = (0, _lodash.find)(fontSizes, {
149
- slug: fontSize
152
+ const mappedFontSize = parsedFontSizes.find(_ref4 => {
153
+ let {
154
+ slug
155
+ } = _ref4;
156
+ return slug === fontSize;
150
157
  });
151
158
 
152
159
  if (mappedFontSize) {
@@ -161,8 +168,11 @@ function getBlockTypography(blockStyleAttributes, fontSizes, blockName, baseGlob
161
168
  }
162
169
 
163
170
  if (blockStyleAttributes !== null && blockStyleAttributes !== void 0 && blockStyleAttributes.fontSize && baseGlobalStyles) {
164
- const mappedFontSize = (0, _lodash.find)(fontSizes, {
165
- slug: blockStyleAttributes === null || blockStyleAttributes === void 0 ? void 0 : blockStyleAttributes.fontSize
171
+ const mappedFontSize = parsedFontSizes.find(_ref5 => {
172
+ let {
173
+ slug
174
+ } = _ref5;
175
+ return slug === (blockStyleAttributes === null || blockStyleAttributes === void 0 ? void 0 : blockStyleAttributes.fontSize);
166
176
  });
167
177
 
168
178
  if (mappedFontSize) {
@@ -205,8 +215,13 @@ function parseStylesVariables(styles, mappedValues, customValues) {
205
215
  const mappedPresetValue = mappedValues[path[0]];
206
216
 
207
217
  if (mappedPresetValue && mappedPresetValue.slug) {
208
- const matchedValue = (0, _lodash.find)(mappedPresetValue.values, {
209
- slug: path[1]
218
+ var _mappedPresetValue$va;
219
+
220
+ const matchedValue = Object.values((_mappedPresetValue$va = mappedPresetValue.values) !== null && _mappedPresetValue$va !== void 0 ? _mappedPresetValue$va : {}).find(_ref6 => {
221
+ let {
222
+ slug
223
+ } = _ref6;
224
+ return slug === path[1];
210
225
  });
211
226
  return matchedValue === null || matchedValue === void 0 ? void 0 : matchedValue[mappedPresetValue.slug];
212
227
  }
@@ -232,10 +247,13 @@ function parseStylesVariables(styles, mappedValues, customValues) {
232
247
  if (variable === 'var') {
233
248
  stylesBase = stylesBase.replace(varRegex, (_$1, $2) => {
234
249
  if (mappedValues !== null && mappedValues !== void 0 && mappedValues.color) {
235
- var _mappedValues$color;
250
+ var _mappedValues$color, _mappedValues$color$v;
236
251
 
237
- const matchedValue = (0, _lodash.find)((_mappedValues$color = mappedValues.color) === null || _mappedValues$color === void 0 ? void 0 : _mappedValues$color.values, {
238
- slug: $2
252
+ const matchedValue = (_mappedValues$color = mappedValues.color) === null || _mappedValues$color === void 0 ? void 0 : (_mappedValues$color$v = _mappedValues$color.values) === null || _mappedValues$color$v === void 0 ? void 0 : _mappedValues$color$v.find(_ref7 => {
253
+ let {
254
+ slug
255
+ } = _ref7;
256
+ return slug === $2;
239
257
  });
240
258
  return `"${matchedValue === null || matchedValue === void 0 ? void 0 : matchedValue.color}"`;
241
259
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/mobile/global-styles-context/utils.native.js"],"names":["BLOCK_STYLE_ATTRIBUTES","BLOCK_STYLE_ATTRIBUTES_MAPPING","textColor","text","background","link","placeholder","PADDING","UNKNOWN_VALUE","DEFAULT_FONT_SIZE","getBlockPaddings","mergedStyle","wrapperPropsStyle","blockStyleAttributes","blockColors","blockPaddings","padding","backgroundColor","undefined","getBlockColors","defaultColors","blockName","baseGlobalStyles","blockStyles","customBlockStyles","style","color","blockGlobalStyles","blocks","Object","entries","forEach","key","value","styleKey","styles","elements","linkColor","isCustomColor","startsWith","mappedColor","slug","getBlockTypography","fontSizes","typographyStyles","typography","fontSize","lineHeight","parseInt","mappedFontSize","size","parseStylesVariables","mappedValues","customValues","stylesBase","variables","variable","regex","RegExp","varRegex","fontSizeRegex","replace","_$1","$2","path","split","mappedPresetValue","matchedValue","values","customValuesData","JSON","parse","reduce","prev","curr","slice","length","width","height","Dimensions","get","parsedFontSize","getMappedValues","features","palette","colors","theme","custom","default","normalizeFontSizes","normalizedFontSizes","dimensions","map","fontSizeObject","sizePx","useMobileGlobalStylesColors","type","colorGradientSettings","availableThemeColors","origin","concat","colorPalette","editorDefaultPalette","getColorsAndGradients","defaultEditorColors","defaultEditorGradients","rawFeatures","__experimentalGlobalStylesBaseStyles","__experimentalFeatures","gradients","defaultPalette","defaultGradients","getGlobalStyles","rawStyles","stringify","globalStyles","customLineHeight"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { camelCase } from 'change-case';\nimport { find, get } from 'lodash';\nimport { Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tgetPxFromCssUnit,\n\tuseSetting,\n\tuseMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\n\nexport const BLOCK_STYLE_ATTRIBUTES = [\n\t'textColor',\n\t'backgroundColor',\n\t'style',\n\t'color',\n\t'fontSize',\n];\n\n// Mapping style properties name to native.\nconst BLOCK_STYLE_ATTRIBUTES_MAPPING = {\n\ttextColor: 'color',\n\ttext: 'color',\n\tbackground: 'backgroundColor',\n\tlink: 'linkColor',\n\tplaceholder: 'placeholderColor',\n};\n\nconst PADDING = 12; // $solid-border-space\nconst UNKNOWN_VALUE = 'undefined';\nconst DEFAULT_FONT_SIZE = 16;\n\nexport function getBlockPaddings(\n\tmergedStyle,\n\twrapperPropsStyle,\n\tblockStyleAttributes,\n\tblockColors\n) {\n\tconst blockPaddings = {};\n\n\tif (\n\t\t! mergedStyle.padding &&\n\t\t( wrapperPropsStyle?.backgroundColor ||\n\t\t\tblockStyleAttributes?.backgroundColor ||\n\t\t\tblockColors?.backgroundColor )\n\t) {\n\t\tblockPaddings.padding = PADDING;\n\t\treturn blockPaddings;\n\t}\n\n\t// Prevent adding extra paddings to inner blocks without background colors.\n\tif (\n\t\tmergedStyle?.padding &&\n\t\t! wrapperPropsStyle?.backgroundColor &&\n\t\t! blockStyleAttributes?.backgroundColor &&\n\t\t! blockColors?.backgroundColor\n\t) {\n\t\tblockPaddings.padding = undefined;\n\t}\n\n\treturn blockPaddings;\n}\n\nexport function getBlockColors(\n\tblockStyleAttributes,\n\tdefaultColors,\n\tblockName,\n\tbaseGlobalStyles\n) {\n\tconst blockStyles = {};\n\tconst customBlockStyles = blockStyleAttributes?.style?.color || {};\n\tconst blockGlobalStyles = baseGlobalStyles?.blocks?.[ blockName ];\n\n\t// Global styles colors.\n\tif ( blockGlobalStyles?.color ) {\n\t\tObject.entries( blockGlobalStyles.color ).forEach(\n\t\t\t( [ key, value ] ) => {\n\t\t\t\tconst styleKey = BLOCK_STYLE_ATTRIBUTES_MAPPING[ key ];\n\n\t\t\t\tif ( styleKey && value !== UNKNOWN_VALUE ) {\n\t\t\t\t\tconst color = customBlockStyles[ key ] ?? value;\n\t\t\t\t\tblockStyles[ styleKey ] = color;\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t} else if ( baseGlobalStyles?.styles?.color?.text ) {\n\t\tblockStyles[ BLOCK_STYLE_ATTRIBUTES_MAPPING.text ] =\n\t\t\tbaseGlobalStyles?.styles?.color?.text;\n\t}\n\n\t// Global styles elements.\n\tif ( blockGlobalStyles?.elements ) {\n\t\tconst linkColor = blockGlobalStyles.elements?.link?.color?.text;\n\t\tconst styleKey = BLOCK_STYLE_ATTRIBUTES_MAPPING.link;\n\n\t\tif ( styleKey && linkColor && linkColor !== UNKNOWN_VALUE ) {\n\t\t\tblockStyles[ styleKey ] = linkColor;\n\t\t}\n\t}\n\n\t// Custom colors.\n\tObject.entries( blockStyleAttributes ).forEach( ( [ key, value ] ) => {\n\t\tconst isCustomColor = value?.startsWith?.( '#' );\n\t\tlet styleKey = key;\n\n\t\tif ( BLOCK_STYLE_ATTRIBUTES_MAPPING[ styleKey ] ) {\n\t\t\tstyleKey = BLOCK_STYLE_ATTRIBUTES_MAPPING[ styleKey ];\n\t\t}\n\n\t\tif ( ! isCustomColor ) {\n\t\t\tconst mappedColor = find( defaultColors, {\n\t\t\t\tslug: value,\n\t\t\t} );\n\n\t\t\tif ( mappedColor ) {\n\t\t\t\tblockStyles[ styleKey ] = mappedColor.color;\n\t\t\t}\n\t\t} else {\n\t\t\tblockStyles[ styleKey ] = value;\n\t\t}\n\t} );\n\n\t// Color placeholder.\n\tif ( blockStyles?.color ) {\n\t\tblockStyles[ BLOCK_STYLE_ATTRIBUTES_MAPPING.placeholder ] =\n\t\t\tblockStyles.color;\n\t}\n\n\treturn blockStyles;\n}\n\nexport function getBlockTypography(\n\tblockStyleAttributes,\n\tfontSizes,\n\tblockName,\n\tbaseGlobalStyles\n) {\n\tconst typographyStyles = {};\n\tconst customBlockStyles = blockStyleAttributes?.style?.typography || {};\n\tconst blockGlobalStyles = baseGlobalStyles?.blocks?.[ blockName ];\n\n\t// Global styles.\n\tif ( blockGlobalStyles?.typography ) {\n\t\tconst fontSize = blockGlobalStyles?.typography?.fontSize;\n\t\tconst lineHeight = blockGlobalStyles?.typography?.lineHeight;\n\n\t\tif ( fontSize ) {\n\t\t\tif ( parseInt( fontSize, 10 ) ) {\n\t\t\t\ttypographyStyles.fontSize = fontSize;\n\t\t\t} else {\n\t\t\t\tconst mappedFontSize = find( fontSizes, {\n\t\t\t\t\tslug: fontSize,\n\t\t\t\t} );\n\n\t\t\t\tif ( mappedFontSize ) {\n\t\t\t\t\ttypographyStyles.fontSize = mappedFontSize?.size;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( lineHeight ) {\n\t\t\ttypographyStyles.lineHeight = lineHeight;\n\t\t}\n\t}\n\n\tif ( blockStyleAttributes?.fontSize && baseGlobalStyles ) {\n\t\tconst mappedFontSize = find( fontSizes, {\n\t\t\tslug: blockStyleAttributes?.fontSize,\n\t\t} );\n\n\t\tif ( mappedFontSize ) {\n\t\t\ttypographyStyles.fontSize = mappedFontSize?.size;\n\t\t}\n\t}\n\n\t// Custom styles.\n\tif ( customBlockStyles?.fontSize ) {\n\t\ttypographyStyles.fontSize = customBlockStyles?.fontSize;\n\t}\n\n\tif ( customBlockStyles?.lineHeight ) {\n\t\ttypographyStyles.lineHeight = customBlockStyles?.lineHeight;\n\t}\n\n\treturn typographyStyles;\n}\n\nexport function parseStylesVariables( styles, mappedValues, customValues ) {\n\tlet stylesBase = styles;\n\tconst variables = [ 'preset', 'custom', 'var', 'fontSize' ];\n\n\tif ( ! stylesBase ) {\n\t\treturn styles;\n\t}\n\n\tvariables.forEach( ( variable ) => {\n\t\t// Examples\n\t\t// var(--wp--preset--color--gray)\n\t\t// var(--wp--custom--body--typography--font-family)\n\t\t// var:preset|color|custom-color-2\n\t\tconst regex = new RegExp( `var\\\\(--wp--${ variable }--(.*?)\\\\)`, 'g' );\n\t\tconst varRegex = /\\\"var:preset\\|color\\|(.*?)\\\"/gm;\n\t\tconst fontSizeRegex = /\"fontSize\":\"(.*?)\"/gm;\n\n\t\tif ( variable === 'preset' ) {\n\t\t\tstylesBase = stylesBase.replace( regex, ( _$1, $2 ) => {\n\t\t\t\tconst path = $2.split( '--' );\n\t\t\t\tconst mappedPresetValue = mappedValues[ path[ 0 ] ];\n\t\t\t\tif ( mappedPresetValue && mappedPresetValue.slug ) {\n\t\t\t\t\tconst matchedValue = find( mappedPresetValue.values, {\n\t\t\t\t\t\tslug: path[ 1 ],\n\t\t\t\t\t} );\n\t\t\t\t\treturn matchedValue?.[ mappedPresetValue.slug ];\n\t\t\t\t}\n\t\t\t\treturn UNKNOWN_VALUE;\n\t\t\t} );\n\t\t}\n\t\tif ( variable === 'custom' ) {\n\t\t\tconst customValuesData = customValues ?? JSON.parse( stylesBase );\n\t\t\tstylesBase = stylesBase.replace( regex, ( _$1, $2 ) => {\n\t\t\t\tconst path = $2.split( '--' );\n\t\t\t\tif (\n\t\t\t\t\tpath.reduce(\n\t\t\t\t\t\t( prev, curr ) => prev && prev[ curr ],\n\t\t\t\t\t\tcustomValuesData\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\treturn get( customValuesData, path );\n\t\t\t\t}\n\n\t\t\t\t// Check for camelcase properties.\n\t\t\t\treturn get( customValuesData, [\n\t\t\t\t\t...path.slice( 0, path.length - 1 ),\n\t\t\t\t\tcamelCase( path[ path.length - 1 ] ),\n\t\t\t\t] );\n\t\t\t} );\n\t\t}\n\n\t\tif ( variable === 'var' ) {\n\t\t\tstylesBase = stylesBase.replace( varRegex, ( _$1, $2 ) => {\n\t\t\t\tif ( mappedValues?.color ) {\n\t\t\t\t\tconst matchedValue = find( mappedValues.color?.values, {\n\t\t\t\t\t\tslug: $2,\n\t\t\t\t\t} );\n\t\t\t\t\treturn `\"${ matchedValue?.color }\"`;\n\t\t\t\t}\n\t\t\t\treturn UNKNOWN_VALUE;\n\t\t\t} );\n\t\t}\n\n\t\tif ( variable === 'fontSize' ) {\n\t\t\tconst { width, height } = Dimensions.get( 'window' );\n\n\t\t\tstylesBase = stylesBase.replace( fontSizeRegex, ( _$1, $2 ) => {\n\t\t\t\tconst parsedFontSize =\n\t\t\t\t\tgetPxFromCssUnit( $2, {\n\t\t\t\t\t\twidth,\n\t\t\t\t\t\theight,\n\t\t\t\t\t\tfontSize: DEFAULT_FONT_SIZE,\n\t\t\t\t\t} ) || `${ DEFAULT_FONT_SIZE }px`;\n\n\t\t\t\treturn `\"fontSize\":\"${ parsedFontSize }\"`;\n\t\t\t} );\n\t\t}\n\t} );\n\n\treturn JSON.parse( stylesBase );\n}\n\nexport function getMappedValues( features, palette ) {\n\tconst typography = features?.typography;\n\tconst colors = [\n\t\t...( palette?.theme || [] ),\n\t\t...( palette?.custom || [] ),\n\t\t...( palette?.default || [] ),\n\t];\n\n\tconst fontSizes = {\n\t\t...typography?.fontSizes?.theme,\n\t\t...typography?.fontSizes?.custom,\n\t};\n\tconst mappedValues = {\n\t\tcolor: {\n\t\t\tvalues: colors,\n\t\t\tslug: 'color',\n\t\t},\n\t\t'font-size': {\n\t\t\tvalues: fontSizes,\n\t\t\tslug: 'size',\n\t\t},\n\t};\n\treturn mappedValues;\n}\n\n/**\n * Returns the normalized fontSizes to include the sizePx value for each of the different sizes.\n *\n * @param {Object} fontSizes found in global styles.\n * @return {Object} normalized sizes.\n */\nfunction normalizeFontSizes( fontSizes ) {\n\t// Adds normalized PX values for each of the different keys.\n\tif ( ! fontSizes ) {\n\t\treturn fontSizes;\n\t}\n\tconst normalizedFontSizes = {};\n\tconst dimensions = Dimensions.get( 'window' );\n\n\t[ 'default', 'theme', 'custom' ].forEach( ( key ) => {\n\t\tif ( fontSizes[ key ] ) {\n\t\t\tnormalizedFontSizes[ key ] = fontSizes[ key ]?.map(\n\t\t\t\t( fontSizeObject ) => {\n\t\t\t\t\tfontSizeObject.sizePx = getPxFromCssUnit(\n\t\t\t\t\t\tfontSizeObject.size,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\twidth: dimensions.width,\n\t\t\t\t\t\t\theight: dimensions.height,\n\t\t\t\t\t\t\tfontSize: DEFAULT_FONT_SIZE,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t\treturn fontSizeObject;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t} );\n\n\treturn normalizedFontSizes;\n}\n\nexport function useMobileGlobalStylesColors( type = 'colors' ) {\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\tconst availableThemeColors = colorGradientSettings?.[ type ]?.reduce(\n\t\t( colors, origin ) => colors.concat( origin?.[ type ] ),\n\t\t[]\n\t);\n\t// Default editor colors/gradients if it's not a block-based theme.\n\tconst colorPalette =\n\t\ttype === 'colors' ? 'color.palette' : 'color.gradients';\n\tconst editorDefaultPalette = useSetting( colorPalette );\n\n\treturn availableThemeColors.length >= 1\n\t\t? availableThemeColors\n\t\t: editorDefaultPalette;\n}\n\nexport function getColorsAndGradients(\n\tdefaultEditorColors = [],\n\tdefaultEditorGradients = [],\n\trawFeatures\n) {\n\tconst features = rawFeatures ? JSON.parse( rawFeatures ) : {};\n\n\treturn {\n\t\t__experimentalGlobalStylesBaseStyles: null,\n\t\t__experimentalFeatures: {\n\t\t\tcolor: {\n\t\t\t\t...( ! features?.color\n\t\t\t\t\t? {\n\t\t\t\t\t\t\ttext: true,\n\t\t\t\t\t\t\tbackground: true,\n\t\t\t\t\t\t\tpalette: {\n\t\t\t\t\t\t\t\tdefault: defaultEditorColors,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tgradients: {\n\t\t\t\t\t\t\t\tdefault: defaultEditorGradients,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t }\n\t\t\t\t\t: features?.color ),\n\t\t\t\tdefaultPalette: defaultEditorColors?.length > 0,\n\t\t\t\tdefaultGradients: defaultEditorGradients?.length > 0,\n\t\t\t},\n\t\t},\n\t};\n}\n\nexport function getGlobalStyles( rawStyles, rawFeatures ) {\n\tconst features = rawFeatures ? JSON.parse( rawFeatures ) : {};\n\tconst mappedValues = getMappedValues( features, features?.color?.palette );\n\tconst colors = parseStylesVariables(\n\t\tJSON.stringify( features?.color ),\n\t\tmappedValues\n\t);\n\tconst gradients = parseStylesVariables(\n\t\tJSON.stringify( features?.color?.gradients ),\n\t\tmappedValues\n\t);\n\tconst customValues = parseStylesVariables(\n\t\tJSON.stringify( features?.custom ),\n\t\tmappedValues\n\t);\n\tconst globalStyles = parseStylesVariables(\n\t\trawStyles,\n\t\tmappedValues,\n\t\tcustomValues\n\t);\n\n\tconst fontSizes = normalizeFontSizes( features?.typography?.fontSizes );\n\n\treturn {\n\t\t__experimentalFeatures: {\n\t\t\tcolor: {\n\t\t\t\tpalette: colors?.palette,\n\t\t\t\tgradients,\n\t\t\t\ttext: features?.color?.text ?? true,\n\t\t\t\tbackground: features?.color?.background ?? true,\n\t\t\t\tdefaultPalette: features?.color?.defaultPalette ?? true,\n\t\t\t\tdefaultGradients: features?.color?.defaultGradients ?? true,\n\t\t\t},\n\t\t\ttypography: {\n\t\t\t\tfontSizes,\n\t\t\t\tcustomLineHeight: features?.custom?.[ 'line-height' ],\n\t\t\t},\n\t\t},\n\t\t__experimentalGlobalStylesBaseStyles: globalStyles,\n\t};\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/mobile/global-styles-context/utils.native.js"],"names":["BLOCK_STYLE_ATTRIBUTES","BLOCK_STYLE_ATTRIBUTES_MAPPING","textColor","text","background","link","placeholder","PADDING","UNKNOWN_VALUE","DEFAULT_FONT_SIZE","getBlockPaddings","mergedStyle","wrapperPropsStyle","blockStyleAttributes","blockColors","blockPaddings","padding","backgroundColor","undefined","getBlockColors","defaultColors","blockName","baseGlobalStyles","blockStyles","customBlockStyles","style","color","blockGlobalStyles","blocks","Object","entries","forEach","key","value","styleKey","styles","elements","linkColor","isCustomColor","startsWith","mappedColor","values","find","slug","getBlockTypography","fontSizes","typographyStyles","typography","parsedFontSizes","fontSize","lineHeight","parseInt","mappedFontSize","size","parseStylesVariables","mappedValues","customValues","stylesBase","variables","variable","regex","RegExp","varRegex","fontSizeRegex","replace","_$1","$2","path","split","mappedPresetValue","matchedValue","customValuesData","JSON","parse","reduce","prev","curr","slice","length","width","height","Dimensions","get","parsedFontSize","getMappedValues","features","palette","colors","theme","custom","default","normalizeFontSizes","normalizedFontSizes","dimensions","map","fontSizeObject","sizePx","useMobileGlobalStylesColors","type","colorGradientSettings","availableThemeColors","origin","concat","colorPalette","editorDefaultPalette","getColorsAndGradients","defaultEditorColors","defaultEditorGradients","rawFeatures","__experimentalGlobalStylesBaseStyles","__experimentalFeatures","gradients","defaultPalette","defaultGradients","getGlobalStyles","rawStyles","stringify","globalStyles","customLineHeight"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { camelCase } from 'change-case';\nimport { get } from 'lodash';\nimport { Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tgetPxFromCssUnit,\n\tuseSetting,\n\tuseMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\n\nexport const BLOCK_STYLE_ATTRIBUTES = [\n\t'textColor',\n\t'backgroundColor',\n\t'style',\n\t'color',\n\t'fontSize',\n];\n\n// Mapping style properties name to native.\nconst BLOCK_STYLE_ATTRIBUTES_MAPPING = {\n\ttextColor: 'color',\n\ttext: 'color',\n\tbackground: 'backgroundColor',\n\tlink: 'linkColor',\n\tplaceholder: 'placeholderColor',\n};\n\nconst PADDING = 12; // $solid-border-space\nconst UNKNOWN_VALUE = 'undefined';\nconst DEFAULT_FONT_SIZE = 16;\n\nexport function getBlockPaddings(\n\tmergedStyle,\n\twrapperPropsStyle,\n\tblockStyleAttributes,\n\tblockColors\n) {\n\tconst blockPaddings = {};\n\n\tif (\n\t\t! mergedStyle.padding &&\n\t\t( wrapperPropsStyle?.backgroundColor ||\n\t\t\tblockStyleAttributes?.backgroundColor ||\n\t\t\tblockColors?.backgroundColor )\n\t) {\n\t\tblockPaddings.padding = PADDING;\n\t\treturn blockPaddings;\n\t}\n\n\t// Prevent adding extra paddings to inner blocks without background colors.\n\tif (\n\t\tmergedStyle?.padding &&\n\t\t! wrapperPropsStyle?.backgroundColor &&\n\t\t! blockStyleAttributes?.backgroundColor &&\n\t\t! blockColors?.backgroundColor\n\t) {\n\t\tblockPaddings.padding = undefined;\n\t}\n\n\treturn blockPaddings;\n}\n\nexport function getBlockColors(\n\tblockStyleAttributes,\n\tdefaultColors,\n\tblockName,\n\tbaseGlobalStyles\n) {\n\tconst blockStyles = {};\n\tconst customBlockStyles = blockStyleAttributes?.style?.color || {};\n\tconst blockGlobalStyles = baseGlobalStyles?.blocks?.[ blockName ];\n\n\t// Global styles colors.\n\tif ( blockGlobalStyles?.color ) {\n\t\tObject.entries( blockGlobalStyles.color ).forEach(\n\t\t\t( [ key, value ] ) => {\n\t\t\t\tconst styleKey = BLOCK_STYLE_ATTRIBUTES_MAPPING[ key ];\n\n\t\t\t\tif ( styleKey && value !== UNKNOWN_VALUE ) {\n\t\t\t\t\tconst color = customBlockStyles[ key ] ?? value;\n\t\t\t\t\tblockStyles[ styleKey ] = color;\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t} else if ( baseGlobalStyles?.styles?.color?.text ) {\n\t\tblockStyles[ BLOCK_STYLE_ATTRIBUTES_MAPPING.text ] =\n\t\t\tbaseGlobalStyles?.styles?.color?.text;\n\t}\n\n\t// Global styles elements.\n\tif ( blockGlobalStyles?.elements ) {\n\t\tconst linkColor = blockGlobalStyles.elements?.link?.color?.text;\n\t\tconst styleKey = BLOCK_STYLE_ATTRIBUTES_MAPPING.link;\n\n\t\tif ( styleKey && linkColor && linkColor !== UNKNOWN_VALUE ) {\n\t\t\tblockStyles[ styleKey ] = linkColor;\n\t\t}\n\t}\n\n\t// Custom colors.\n\tObject.entries( blockStyleAttributes ).forEach( ( [ key, value ] ) => {\n\t\tconst isCustomColor = value?.startsWith?.( '#' );\n\t\tlet styleKey = key;\n\n\t\tif ( BLOCK_STYLE_ATTRIBUTES_MAPPING[ styleKey ] ) {\n\t\t\tstyleKey = BLOCK_STYLE_ATTRIBUTES_MAPPING[ styleKey ];\n\t\t}\n\n\t\tif ( ! isCustomColor ) {\n\t\t\tconst mappedColor = Object.values( defaultColors ?? {} ).find(\n\t\t\t\t( { slug } ) => slug === value\n\t\t\t);\n\n\t\t\tif ( mappedColor ) {\n\t\t\t\tblockStyles[ styleKey ] = mappedColor.color;\n\t\t\t}\n\t\t} else {\n\t\t\tblockStyles[ styleKey ] = value;\n\t\t}\n\t} );\n\n\t// Color placeholder.\n\tif ( blockStyles?.color ) {\n\t\tblockStyles[ BLOCK_STYLE_ATTRIBUTES_MAPPING.placeholder ] =\n\t\t\tblockStyles.color;\n\t}\n\n\treturn blockStyles;\n}\n\nexport function getBlockTypography(\n\tblockStyleAttributes,\n\tfontSizes,\n\tblockName,\n\tbaseGlobalStyles\n) {\n\tconst typographyStyles = {};\n\tconst customBlockStyles = blockStyleAttributes?.style?.typography || {};\n\tconst blockGlobalStyles = baseGlobalStyles?.blocks?.[ blockName ];\n\tconst parsedFontSizes = Object.values( fontSizes ?? {} );\n\n\t// Global styles.\n\tif ( blockGlobalStyles?.typography ) {\n\t\tconst fontSize = blockGlobalStyles?.typography?.fontSize;\n\t\tconst lineHeight = blockGlobalStyles?.typography?.lineHeight;\n\n\t\tif ( fontSize ) {\n\t\t\tif ( parseInt( fontSize, 10 ) ) {\n\t\t\t\ttypographyStyles.fontSize = fontSize;\n\t\t\t} else {\n\t\t\t\tconst mappedFontSize = parsedFontSizes.find(\n\t\t\t\t\t( { slug } ) => slug === fontSize\n\t\t\t\t);\n\n\t\t\t\tif ( mappedFontSize ) {\n\t\t\t\t\ttypographyStyles.fontSize = mappedFontSize?.size;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( lineHeight ) {\n\t\t\ttypographyStyles.lineHeight = lineHeight;\n\t\t}\n\t}\n\n\tif ( blockStyleAttributes?.fontSize && baseGlobalStyles ) {\n\t\tconst mappedFontSize = parsedFontSizes.find(\n\t\t\t( { slug } ) => slug === blockStyleAttributes?.fontSize\n\t\t);\n\n\t\tif ( mappedFontSize ) {\n\t\t\ttypographyStyles.fontSize = mappedFontSize?.size;\n\t\t}\n\t}\n\n\t// Custom styles.\n\tif ( customBlockStyles?.fontSize ) {\n\t\ttypographyStyles.fontSize = customBlockStyles?.fontSize;\n\t}\n\n\tif ( customBlockStyles?.lineHeight ) {\n\t\ttypographyStyles.lineHeight = customBlockStyles?.lineHeight;\n\t}\n\n\treturn typographyStyles;\n}\n\nexport function parseStylesVariables( styles, mappedValues, customValues ) {\n\tlet stylesBase = styles;\n\tconst variables = [ 'preset', 'custom', 'var', 'fontSize' ];\n\n\tif ( ! stylesBase ) {\n\t\treturn styles;\n\t}\n\n\tvariables.forEach( ( variable ) => {\n\t\t// Examples\n\t\t// var(--wp--preset--color--gray)\n\t\t// var(--wp--custom--body--typography--font-family)\n\t\t// var:preset|color|custom-color-2\n\t\tconst regex = new RegExp( `var\\\\(--wp--${ variable }--(.*?)\\\\)`, 'g' );\n\t\tconst varRegex = /\\\"var:preset\\|color\\|(.*?)\\\"/gm;\n\t\tconst fontSizeRegex = /\"fontSize\":\"(.*?)\"/gm;\n\n\t\tif ( variable === 'preset' ) {\n\t\t\tstylesBase = stylesBase.replace( regex, ( _$1, $2 ) => {\n\t\t\t\tconst path = $2.split( '--' );\n\t\t\t\tconst mappedPresetValue = mappedValues[ path[ 0 ] ];\n\t\t\t\tif ( mappedPresetValue && mappedPresetValue.slug ) {\n\t\t\t\t\tconst matchedValue = Object.values(\n\t\t\t\t\t\tmappedPresetValue.values ?? {}\n\t\t\t\t\t).find( ( { slug } ) => slug === path[ 1 ] );\n\t\t\t\t\treturn matchedValue?.[ mappedPresetValue.slug ];\n\t\t\t\t}\n\t\t\t\treturn UNKNOWN_VALUE;\n\t\t\t} );\n\t\t}\n\t\tif ( variable === 'custom' ) {\n\t\t\tconst customValuesData = customValues ?? JSON.parse( stylesBase );\n\t\t\tstylesBase = stylesBase.replace( regex, ( _$1, $2 ) => {\n\t\t\t\tconst path = $2.split( '--' );\n\t\t\t\tif (\n\t\t\t\t\tpath.reduce(\n\t\t\t\t\t\t( prev, curr ) => prev && prev[ curr ],\n\t\t\t\t\t\tcustomValuesData\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\treturn get( customValuesData, path );\n\t\t\t\t}\n\n\t\t\t\t// Check for camelcase properties.\n\t\t\t\treturn get( customValuesData, [\n\t\t\t\t\t...path.slice( 0, path.length - 1 ),\n\t\t\t\t\tcamelCase( path[ path.length - 1 ] ),\n\t\t\t\t] );\n\t\t\t} );\n\t\t}\n\n\t\tif ( variable === 'var' ) {\n\t\t\tstylesBase = stylesBase.replace( varRegex, ( _$1, $2 ) => {\n\t\t\t\tif ( mappedValues?.color ) {\n\t\t\t\t\tconst matchedValue = mappedValues.color?.values?.find(\n\t\t\t\t\t\t( { slug } ) => slug === $2\n\t\t\t\t\t);\n\t\t\t\t\treturn `\"${ matchedValue?.color }\"`;\n\t\t\t\t}\n\t\t\t\treturn UNKNOWN_VALUE;\n\t\t\t} );\n\t\t}\n\n\t\tif ( variable === 'fontSize' ) {\n\t\t\tconst { width, height } = Dimensions.get( 'window' );\n\n\t\t\tstylesBase = stylesBase.replace( fontSizeRegex, ( _$1, $2 ) => {\n\t\t\t\tconst parsedFontSize =\n\t\t\t\t\tgetPxFromCssUnit( $2, {\n\t\t\t\t\t\twidth,\n\t\t\t\t\t\theight,\n\t\t\t\t\t\tfontSize: DEFAULT_FONT_SIZE,\n\t\t\t\t\t} ) || `${ DEFAULT_FONT_SIZE }px`;\n\n\t\t\t\treturn `\"fontSize\":\"${ parsedFontSize }\"`;\n\t\t\t} );\n\t\t}\n\t} );\n\n\treturn JSON.parse( stylesBase );\n}\n\nexport function getMappedValues( features, palette ) {\n\tconst typography = features?.typography;\n\tconst colors = [\n\t\t...( palette?.theme || [] ),\n\t\t...( palette?.custom || [] ),\n\t\t...( palette?.default || [] ),\n\t];\n\n\tconst fontSizes = {\n\t\t...typography?.fontSizes?.theme,\n\t\t...typography?.fontSizes?.custom,\n\t};\n\tconst mappedValues = {\n\t\tcolor: {\n\t\t\tvalues: colors,\n\t\t\tslug: 'color',\n\t\t},\n\t\t'font-size': {\n\t\t\tvalues: fontSizes,\n\t\t\tslug: 'size',\n\t\t},\n\t};\n\treturn mappedValues;\n}\n\n/**\n * Returns the normalized fontSizes to include the sizePx value for each of the different sizes.\n *\n * @param {Object} fontSizes found in global styles.\n * @return {Object} normalized sizes.\n */\nfunction normalizeFontSizes( fontSizes ) {\n\t// Adds normalized PX values for each of the different keys.\n\tif ( ! fontSizes ) {\n\t\treturn fontSizes;\n\t}\n\tconst normalizedFontSizes = {};\n\tconst dimensions = Dimensions.get( 'window' );\n\n\t[ 'default', 'theme', 'custom' ].forEach( ( key ) => {\n\t\tif ( fontSizes[ key ] ) {\n\t\t\tnormalizedFontSizes[ key ] = fontSizes[ key ]?.map(\n\t\t\t\t( fontSizeObject ) => {\n\t\t\t\t\tfontSizeObject.sizePx = getPxFromCssUnit(\n\t\t\t\t\t\tfontSizeObject.size,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\twidth: dimensions.width,\n\t\t\t\t\t\t\theight: dimensions.height,\n\t\t\t\t\t\t\tfontSize: DEFAULT_FONT_SIZE,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t\treturn fontSizeObject;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t} );\n\n\treturn normalizedFontSizes;\n}\n\nexport function useMobileGlobalStylesColors( type = 'colors' ) {\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\tconst availableThemeColors = colorGradientSettings?.[ type ]?.reduce(\n\t\t( colors, origin ) => colors.concat( origin?.[ type ] ),\n\t\t[]\n\t);\n\t// Default editor colors/gradients if it's not a block-based theme.\n\tconst colorPalette =\n\t\ttype === 'colors' ? 'color.palette' : 'color.gradients';\n\tconst editorDefaultPalette = useSetting( colorPalette );\n\n\treturn availableThemeColors.length >= 1\n\t\t? availableThemeColors\n\t\t: editorDefaultPalette;\n}\n\nexport function getColorsAndGradients(\n\tdefaultEditorColors = [],\n\tdefaultEditorGradients = [],\n\trawFeatures\n) {\n\tconst features = rawFeatures ? JSON.parse( rawFeatures ) : {};\n\n\treturn {\n\t\t__experimentalGlobalStylesBaseStyles: null,\n\t\t__experimentalFeatures: {\n\t\t\tcolor: {\n\t\t\t\t...( ! features?.color\n\t\t\t\t\t? {\n\t\t\t\t\t\t\ttext: true,\n\t\t\t\t\t\t\tbackground: true,\n\t\t\t\t\t\t\tpalette: {\n\t\t\t\t\t\t\t\tdefault: defaultEditorColors,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tgradients: {\n\t\t\t\t\t\t\t\tdefault: defaultEditorGradients,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t }\n\t\t\t\t\t: features?.color ),\n\t\t\t\tdefaultPalette: defaultEditorColors?.length > 0,\n\t\t\t\tdefaultGradients: defaultEditorGradients?.length > 0,\n\t\t\t},\n\t\t},\n\t};\n}\n\nexport function getGlobalStyles( rawStyles, rawFeatures ) {\n\tconst features = rawFeatures ? JSON.parse( rawFeatures ) : {};\n\tconst mappedValues = getMappedValues( features, features?.color?.palette );\n\tconst colors = parseStylesVariables(\n\t\tJSON.stringify( features?.color ),\n\t\tmappedValues\n\t);\n\tconst gradients = parseStylesVariables(\n\t\tJSON.stringify( features?.color?.gradients ),\n\t\tmappedValues\n\t);\n\tconst customValues = parseStylesVariables(\n\t\tJSON.stringify( features?.custom ),\n\t\tmappedValues\n\t);\n\tconst globalStyles = parseStylesVariables(\n\t\trawStyles,\n\t\tmappedValues,\n\t\tcustomValues\n\t);\n\n\tconst fontSizes = normalizeFontSizes( features?.typography?.fontSizes );\n\n\treturn {\n\t\t__experimentalFeatures: {\n\t\t\tcolor: {\n\t\t\t\tpalette: colors?.palette,\n\t\t\t\tgradients,\n\t\t\t\ttext: features?.color?.text ?? true,\n\t\t\t\tbackground: features?.color?.background ?? true,\n\t\t\t\tdefaultPalette: features?.color?.defaultPalette ?? true,\n\t\t\t\tdefaultGradients: features?.color?.defaultGradients ?? true,\n\t\t\t},\n\t\t\ttypography: {\n\t\t\t\tfontSizes,\n\t\t\t\tcustomLineHeight: features?.custom?.[ 'line-height' ],\n\t\t\t},\n\t\t},\n\t\t__experimentalGlobalStylesBaseStyles: globalStyles,\n\t};\n}\n"]}
@@ -14,8 +14,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
14
14
 
15
15
  var _classnames = _interopRequireDefault(require("classnames"));
16
16
 
17
- var _lodash = require("lodash");
18
-
19
17
  var _compose = require("@wordpress/compose");
20
18
 
21
19
  var _navigableContainer = require("../navigable-container");
@@ -112,8 +110,11 @@ function TabPanel(_ref2) {
112
110
  child.click();
113
111
  };
114
112
 
115
- const selectedTab = (0, _lodash.find)(tabs, {
116
- name: selected
113
+ const selectedTab = tabs.find(_ref3 => {
114
+ let {
115
+ name
116
+ } = _ref3;
117
+ return name === selected;
117
118
  });
118
119
  const selectedId = `${instanceId}-${(_selectedTab$name = selectedTab === null || selectedTab === void 0 ? void 0 : selectedTab.name) !== null && _selectedTab$name !== void 0 ? _selectedTab$name : 'none'}`;
119
120
  (0, _element.useEffect)(() => {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/tab-panel/index.tsx"],"names":["TabButton","tabId","onClick","children","selected","rest","TabPanel","className","tabs","selectOnMove","initialTabName","orientation","activeClass","onSelect","instanceId","setSelected","handleTabSelection","tabKey","activateTabAutomatically","_childIndex","child","click","selectedTab","name","selectedId","length","undefined","map","tab","icon","title"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { find } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect, useCallback } 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\tonClick,\n\tchildren,\n\tselected,\n\t...rest\n}: TabButtonProps ) => (\n\t<Button\n\t\trole=\"tab\"\n\t\ttabIndex={ selected ? null : -1 }\n\t\taria-selected={ selected }\n\t\tid={ tabId }\n\t\tonClick={ onClick }\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 */\nexport function TabPanel( {\n\tclassName,\n\tchildren,\n\ttabs,\n\tselectOnMove = true,\n\tinitialTabName,\n\torientation = 'horizontal',\n\tactiveClass = 'is-active',\n\tonSelect,\n}: WordPressComponentProps< TabPanelProps, 'div', false > ) {\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: HTMLButtonElement\n\t) => {\n\t\tchild.click();\n\t};\n\tconst selectedTab = find( tabs, { name: selected } );\n\tconst selectedId = `${ instanceId }-${ selectedTab?.name ?? 'none' }`;\n\n\tuseEffect( () => {\n\t\tif ( ! selectedTab?.name && tabs.length > 0 ) {\n\t\t\thandleTabSelection( initialTabName || tabs[ 0 ].name );\n\t\t}\n\t}, [ tabs, selectedTab?.name, initialTabName, handleTabSelection ] );\n\n\treturn (\n\t\t<div className={ className }>\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\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 default TabPanel;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/tab-panel/index.tsx"],"names":["TabButton","tabId","onClick","children","selected","rest","TabPanel","className","tabs","selectOnMove","initialTabName","orientation","activeClass","onSelect","instanceId","setSelected","handleTabSelection","tabKey","activateTabAutomatically","_childIndex","child","click","selectedTab","find","name","selectedId","length","undefined","map","tab","icon","title"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect, useCallback } 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\tonClick,\n\tchildren,\n\tselected,\n\t...rest\n}: TabButtonProps ) => (\n\t<Button\n\t\trole=\"tab\"\n\t\ttabIndex={ selected ? null : -1 }\n\t\taria-selected={ selected }\n\t\tid={ tabId }\n\t\tonClick={ onClick }\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 */\nexport function TabPanel( {\n\tclassName,\n\tchildren,\n\ttabs,\n\tselectOnMove = true,\n\tinitialTabName,\n\torientation = 'horizontal',\n\tactiveClass = 'is-active',\n\tonSelect,\n}: WordPressComponentProps< TabPanelProps, 'div', false > ) {\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: HTMLButtonElement\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\tuseEffect( () => {\n\t\tif ( ! selectedTab?.name && tabs.length > 0 ) {\n\t\t\thandleTabSelection( initialTabName || tabs[ 0 ].name );\n\t\t}\n\t}, [ tabs, selectedTab?.name, initialTabName, handleTabSelection ] );\n\n\treturn (\n\t\t<div className={ className }>\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\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 default TabPanel;\n"]}
@@ -3,7 +3,6 @@ import { createElement, Fragment } from "@wordpress/element";
3
3
  /**
4
4
  * External dependencies
5
5
  */
6
- import { find } from 'lodash';
7
6
  import removeAccents from 'remove-accents';
8
7
  /**
9
8
  * WordPress dependencies
@@ -258,7 +257,7 @@ function useAutocomplete(_ref) {
258
257
 
259
258
  const text = removeAccents(textContent);
260
259
  const textAfterSelection = getTextContent(slice(record, undefined, getTextContent(record).length));
261
- const completer = find(completers, _ref2 => {
260
+ const completer = completers === null || completers === void 0 ? void 0 : completers.find(_ref2 => {
262
261
  let {
263
262
  triggerPrefix,
264
263
  allowContext
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/autocomplete/index.js"],"names":["find","removeAccents","renderToString","useEffect","useState","useRef","useMemo","__","_n","sprintf","useInstanceId","useDebounce","useMergeRefs","useRefEffect","create","slice","insert","isCollapsed","getTextContent","speak","getAutoCompleterUI","escapeRegExp","useAutocomplete","record","onChange","onReplace","completers","contentRef","debouncedSpeak","instanceId","selectedIndex","setSelectedIndex","filteredOptions","setFilteredOptions","filterValue","setFilterValue","autocompleter","setAutocompleter","AutocompleterUI","setAutocompleterUI","backspacing","insertCompletion","replacement","end","start","triggerPrefix","length","toInsert","html","select","option","getOptionCompletion","isDisabled","completion","value","action","undefined","reset","announce","options","onChangeOptions","handleKeyDown","event","current","key","defaultPrevented","isComposing","keyCode","preventDefault","textContent","text","textAfterSelection","completer","allowContext","index","lastIndexOf","textWithoutTrigger","tooDistantFromTrigger","mismatch","wordsFromTrigger","split","hasOneTriggerWord","matchingWhileBackspacing","test","safeTrigger","match","RegExp","query","selectedKey","className","isExpanded","listBoxId","activeId","hasSelection","onKeyDown","popover","useAutocompleteProps","isVisible","setIsVisible","ref","recordAfterInput","onKeyDownRef","mergedRefs","element","_onKeyDown","_onInput","addEventListener","removeEventListener","children","Autocomplete","isSelected","props"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { find } from 'lodash';\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport {\n\trenderToString,\n\tuseEffect,\n\tuseState,\n\tuseRef,\n\tuseMemo,\n} from '@wordpress/element';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport {\n\tuseInstanceId,\n\tuseDebounce,\n\tuseMergeRefs,\n\tuseRefEffect,\n} from '@wordpress/compose';\nimport {\n\tcreate,\n\tslice,\n\tinsert,\n\tisCollapsed,\n\tgetTextContent,\n} from '@wordpress/rich-text';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport { getAutoCompleterUI } from './autocompleter-ui';\nimport { escapeRegExp } from '../utils/strings';\n\n/**\n * A raw completer option.\n *\n * @typedef {*} CompleterOption\n */\n\n/**\n * @callback FnGetOptions\n *\n * @return {(CompleterOption[]|Promise.<CompleterOption[]>)} The completer options or a promise for them.\n */\n\n/**\n * @callback FnGetOptionKeywords\n * @param {CompleterOption} option a completer option.\n *\n * @return {string[]} list of key words to search.\n */\n\n/**\n * @callback FnIsOptionDisabled\n * @param {CompleterOption} option a completer option.\n *\n * @return {string[]} whether or not the given option is disabled.\n */\n\n/**\n * @callback FnGetOptionLabel\n * @param {CompleterOption} option a completer option.\n *\n * @return {(string|Array.<(string|WPElement)>)} list of react components to render.\n */\n\n/**\n * @callback FnAllowContext\n * @param {string} before the string before the auto complete trigger and query.\n * @param {string} after the string after the autocomplete trigger and query.\n *\n * @return {boolean} true if the completer can handle.\n */\n\n/**\n * @typedef {Object} OptionCompletion\n * @property {'insert-at-caret'|'replace'} action the intended placement of the completion.\n * @property {OptionCompletionValue} value the completion value.\n */\n\n/**\n * A completion value.\n *\n * @typedef {(string|WPElement|Object)} OptionCompletionValue\n */\n\n/**\n * @callback FnGetOptionCompletion\n * @param {CompleterOption} value the value of the completer option.\n * @param {string} query the text value of the autocomplete query.\n *\n * @return {(OptionCompletion|OptionCompletionValue)} the completion for the given option. If an\n * \t\t\t\t\t\t\t\t\t\t\t\t\t OptionCompletionValue is returned, the\n * \t\t\t\t\t\t\t\t\t\t\t\t\t completion action defaults to `insert-at-caret`.\n */\n\n/**\n * @typedef {Object} WPCompleter\n * @property {string} name a way to identify a completer, useful for selective overriding.\n * @property {?string} className A class to apply to the popup menu.\n * @property {string} triggerPrefix the prefix that will display the menu.\n * @property {(CompleterOption[]|FnGetOptions)} options the completer options or a function to get them.\n * @property {?FnGetOptionKeywords} getOptionKeywords get the keywords for a given option.\n * @property {?FnIsOptionDisabled} isOptionDisabled get whether or not the given option is disabled.\n * @property {FnGetOptionLabel} getOptionLabel get the label for a given option.\n * @property {?FnAllowContext} allowContext filter the context under which the autocomplete activates.\n * @property {FnGetOptionCompletion} getOptionCompletion get the completion associated with a given option.\n */\n\nfunction useAutocomplete( {\n\trecord,\n\tonChange,\n\tonReplace,\n\tcompleters,\n\tcontentRef,\n} ) {\n\tconst debouncedSpeak = useDebounce( speak, 500 );\n\tconst instanceId = useInstanceId( useAutocomplete );\n\tconst [ selectedIndex, setSelectedIndex ] = useState( 0 );\n\tconst [ filteredOptions, setFilteredOptions ] = useState( [] );\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst [ autocompleter, setAutocompleter ] = useState( null );\n\tconst [ AutocompleterUI, setAutocompleterUI ] = useState( null );\n\tconst backspacing = useRef( false );\n\n\tfunction insertCompletion( replacement ) {\n\t\tconst end = record.start;\n\t\tconst start =\n\t\t\tend - autocompleter.triggerPrefix.length - filterValue.length;\n\t\tconst toInsert = create( { html: renderToString( replacement ) } );\n\n\t\tonChange( insert( record, toInsert, start, end ) );\n\t}\n\n\tfunction select( option ) {\n\t\tconst { getOptionCompletion } = autocompleter || {};\n\n\t\tif ( option.isDisabled ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( getOptionCompletion ) {\n\t\t\tconst completion = getOptionCompletion( option.value, filterValue );\n\n\t\t\tconst { action, value } =\n\t\t\t\tundefined === completion.action ||\n\t\t\t\tundefined === completion.value\n\t\t\t\t\t? { action: 'insert-at-caret', value: completion }\n\t\t\t\t\t: completion;\n\n\t\t\tif ( 'replace' === action ) {\n\t\t\t\tonReplace( [ value ] );\n\t\t\t\t// When replacing, the component will unmount, so don't reset\n\t\t\t\t// state (below) on an unmounted component.\n\t\t\t\treturn;\n\t\t\t} else if ( 'insert-at-caret' === action ) {\n\t\t\t\tinsertCompletion( value );\n\t\t\t}\n\t\t}\n\n\t\t// Reset autocomplete state after insertion rather than before\n\t\t// so insertion events don't cause the completion menu to redisplay.\n\t\treset();\n\t}\n\n\tfunction reset() {\n\t\tsetSelectedIndex( 0 );\n\t\tsetFilteredOptions( [] );\n\t\tsetFilterValue( '' );\n\t\tsetAutocompleter( null );\n\t\tsetAutocompleterUI( null );\n\t}\n\n\tfunction announce( options ) {\n\t\tif ( ! debouncedSpeak ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( !! options.length ) {\n\t\t\tdebouncedSpeak(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %d: number of results. */\n\t\t\t\t\t_n(\n\t\t\t\t\t\t'%d result found, use up and down arrow keys to navigate.',\n\t\t\t\t\t\t'%d results found, use up and down arrow keys to navigate.',\n\t\t\t\t\t\toptions.length\n\t\t\t\t\t),\n\t\t\t\t\toptions.length\n\t\t\t\t),\n\t\t\t\t'assertive'\n\t\t\t);\n\t\t} else {\n\t\t\tdebouncedSpeak( __( 'No results.' ), 'assertive' );\n\t\t}\n\t}\n\n\t/**\n\t * Load options for an autocompleter.\n\t *\n\t * @param {Array} options\n\t */\n\tfunction onChangeOptions( options ) {\n\t\tsetSelectedIndex(\n\t\t\toptions.length === filteredOptions.length ? selectedIndex : 0\n\t\t);\n\t\tsetFilteredOptions( options );\n\t\tannounce( options );\n\t}\n\n\tfunction handleKeyDown( event ) {\n\t\tbackspacing.current = event.key === 'Backspace';\n\n\t\tif ( ! autocompleter ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( filteredOptions.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\tevent.defaultPrevented ||\n\t\t\t// Ignore keydowns from IMEs\n\t\t\tevent.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\t\tswitch ( event.key ) {\n\t\t\tcase 'ArrowUp':\n\t\t\t\tsetSelectedIndex(\n\t\t\t\t\t( selectedIndex === 0\n\t\t\t\t\t\t? filteredOptions.length\n\t\t\t\t\t\t: selectedIndex ) - 1\n\t\t\t\t);\n\t\t\t\tbreak;\n\n\t\t\tcase 'ArrowDown':\n\t\t\t\tsetSelectedIndex(\n\t\t\t\t\t( selectedIndex + 1 ) % filteredOptions.length\n\t\t\t\t);\n\t\t\t\tbreak;\n\n\t\t\tcase 'Escape':\n\t\t\t\tsetAutocompleter( null );\n\t\t\t\tsetAutocompleterUI( null );\n\t\t\t\tevent.preventDefault();\n\t\t\t\tbreak;\n\n\t\t\tcase 'Enter':\n\t\t\t\tselect( filteredOptions[ selectedIndex ] );\n\t\t\t\tbreak;\n\n\t\t\tcase 'ArrowLeft':\n\t\t\tcase 'ArrowRight':\n\t\t\t\treset();\n\t\t\t\treturn;\n\n\t\t\tdefault:\n\t\t\t\treturn;\n\t\t}\n\n\t\t// Any handled key should prevent original behavior. This relies on\n\t\t// the early return in the default case.\n\t\tevent.preventDefault();\n\t}\n\n\t// textContent is a primitive (string), memoizing is not strictly necessary\n\t// but this is a preemptive performance improvement, since the autocompleter\n\t// is a potential bottleneck for the editor type metric.\n\tconst textContent = useMemo( () => {\n\t\tif ( isCollapsed( record ) ) {\n\t\t\treturn getTextContent( slice( record, 0 ) );\n\t\t}\n\t}, [ record ] );\n\n\tuseEffect( () => {\n\t\tif ( ! textContent ) {\n\t\t\treset();\n\t\t\treturn;\n\t\t}\n\n\t\tconst text = removeAccents( textContent );\n\t\tconst textAfterSelection = getTextContent(\n\t\t\tslice( record, undefined, getTextContent( record ).length )\n\t\t);\n\t\tconst completer = find(\n\t\t\tcompleters,\n\t\t\t( { triggerPrefix, allowContext } ) => {\n\t\t\t\tconst index = text.lastIndexOf( triggerPrefix );\n\n\t\t\t\tif ( index === -1 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tconst textWithoutTrigger = text.slice(\n\t\t\t\t\tindex + triggerPrefix.length\n\t\t\t\t);\n\n\t\t\t\tconst tooDistantFromTrigger = textWithoutTrigger.length > 50; // 50 chars seems to be a good limit.\n\t\t\t\t// This is a final barrier to prevent the effect from completing with\n\t\t\t\t// an extremely long string, which causes the editor to slow-down\n\t\t\t\t// significantly. This could happen, for example, if `matchingWhileBackspacing`\n\t\t\t\t// is true and one of the \"words\" end up being too long. If that's the case,\n\t\t\t\t// it will be caught by this guard.\n\t\t\t\tif ( tooDistantFromTrigger ) return false;\n\n\t\t\t\tconst mismatch = filteredOptions.length === 0;\n\t\t\t\tconst wordsFromTrigger = textWithoutTrigger.split( /\\s/ );\n\t\t\t\t// We need to allow the effect to run when not backspacing and if there\n\t\t\t\t// was a mismatch. i.e when typing a trigger + the match string or when\n\t\t\t\t// clicking in an existing trigger word on the page. We do that if we\n\t\t\t\t// detect that we have one word from trigger in the current textual context.\n\t\t\t\t//\n\t\t\t\t// Ex.: \"Some text @a\" <-- \"@a\" will be detected as the trigger word and\n\t\t\t\t// allow the effect to run. It will run until there's a mismatch.\n\t\t\t\tconst hasOneTriggerWord = wordsFromTrigger.length === 1;\n\t\t\t\t// This is used to allow the effect to run when backspacing and if\n\t\t\t\t// \"touching\" a word that \"belongs\" to a trigger. We consider a \"trigger\n\t\t\t\t// word\" any word up to the limit of 3 from the trigger character.\n\t\t\t\t// Anything beyond that is ignored if there's a mismatch. This allows\n\t\t\t\t// us to \"escape\" a mismatch when backspacing, but still imposing some\n\t\t\t\t// sane limits.\n\t\t\t\t//\n\t\t\t\t// Ex: \"Some text @marcelo sekkkk\" <--- \"kkkk\" caused a mismatch, but\n\t\t\t\t// if the user presses backspace here, it will show the completion popup again.\n\t\t\t\tconst matchingWhileBackspacing =\n\t\t\t\t\tbackspacing.current &&\n\t\t\t\t\ttextWithoutTrigger.split( /\\s/ ).length <= 3;\n\n\t\t\t\tif (\n\t\t\t\t\tmismatch &&\n\t\t\t\t\t! ( matchingWhileBackspacing || hasOneTriggerWord )\n\t\t\t\t) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\tallowContext &&\n\t\t\t\t\t! allowContext( text.slice( 0, index ), textAfterSelection )\n\t\t\t\t) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t/^\\s/.test( textWithoutTrigger ) ||\n\t\t\t\t\t/\\s\\s+$/.test( textWithoutTrigger )\n\t\t\t\t) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\treturn /[\\u0000-\\uFFFF]*$/.test( textWithoutTrigger );\n\t\t\t}\n\t\t);\n\n\t\tif ( ! completer ) {\n\t\t\treset();\n\t\t\treturn;\n\t\t}\n\n\t\tconst safeTrigger = escapeRegExp( completer.triggerPrefix );\n\t\tconst match = text\n\t\t\t.slice( text.lastIndexOf( completer.triggerPrefix ) )\n\t\t\t.match( new RegExp( `${ safeTrigger }([\\u0000-\\uFFFF]*)$` ) );\n\t\tconst query = match && match[ 1 ];\n\n\t\tsetAutocompleter( completer );\n\t\tsetAutocompleterUI( () =>\n\t\t\tcompleter !== autocompleter\n\t\t\t\t? getAutoCompleterUI( completer )\n\t\t\t\t: AutocompleterUI\n\t\t);\n\t\tsetFilterValue( query );\n\t\t// Temporarily disabling exhaustive-deps to avoid introducing unexpected side effecst.\n\t\t// See https://github.com/WordPress/gutenberg/pull/41820\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ textContent ] );\n\n\tconst { key: selectedKey = '' } = filteredOptions[ selectedIndex ] || {};\n\tconst { className } = autocompleter || {};\n\tconst isExpanded = !! autocompleter && filteredOptions.length > 0;\n\tconst listBoxId = isExpanded\n\t\t? `components-autocomplete-listbox-${ instanceId }`\n\t\t: null;\n\tconst activeId = isExpanded\n\t\t? `components-autocomplete-item-${ instanceId }-${ selectedKey }`\n\t\t: null;\n\tconst hasSelection = record.start !== undefined;\n\n\treturn {\n\t\tlistBoxId,\n\t\tactiveId,\n\t\tonKeyDown: handleKeyDown,\n\t\tpopover: hasSelection && AutocompleterUI && (\n\t\t\t<AutocompleterUI\n\t\t\t\tclassName={ className }\n\t\t\t\tfilterValue={ filterValue }\n\t\t\t\tinstanceId={ instanceId }\n\t\t\t\tlistBoxId={ listBoxId }\n\t\t\t\tselectedIndex={ selectedIndex }\n\t\t\t\tonChangeOptions={ onChangeOptions }\n\t\t\t\tonSelect={ select }\n\t\t\t\tvalue={ record }\n\t\t\t\tcontentRef={ contentRef }\n\t\t\t\treset={ reset }\n\t\t\t/>\n\t\t),\n\t};\n}\n\nexport function useAutocompleteProps( options ) {\n\tconst [ isVisible, setIsVisible ] = useState( false );\n\tconst ref = useRef();\n\tconst recordAfterInput = useRef();\n\tconst onKeyDownRef = useRef();\n\tconst { popover, listBoxId, activeId, onKeyDown } = useAutocomplete( {\n\t\t...options,\n\t\tcontentRef: ref,\n\t} );\n\tonKeyDownRef.current = onKeyDown;\n\n\tuseEffect( () => {\n\t\tif ( isVisible ) {\n\t\t\tif ( ! recordAfterInput.current ) {\n\t\t\t\trecordAfterInput.current = options.record;\n\t\t\t} else if (\n\t\t\t\trecordAfterInput.current.start !== options.record.start ||\n\t\t\t\trecordAfterInput.current.end !== options.record.end\n\t\t\t) {\n\t\t\t\tsetIsVisible( false );\n\t\t\t\trecordAfterInput.current = null;\n\t\t\t}\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ options.record ] );\n\n\tconst mergedRefs = useMergeRefs( [\n\t\tref,\n\t\tuseRefEffect( ( element ) => {\n\t\t\tfunction _onKeyDown( event ) {\n\t\t\t\tonKeyDownRef.current( event );\n\t\t\t}\n\t\t\tfunction _onInput() {\n\t\t\t\t// Only show auto complete UI if the user is inputting text.\n\t\t\t\tsetIsVisible( true );\n\t\t\t\trecordAfterInput.current = null;\n\t\t\t}\n\t\t\telement.addEventListener( 'keydown', _onKeyDown );\n\t\t\telement.addEventListener( 'input', _onInput );\n\t\t\treturn () => {\n\t\t\t\telement.removeEventListener( 'keydown', _onKeyDown );\n\t\t\t\telement.removeEventListener( 'input', _onInput );\n\t\t\t};\n\t\t}, [] ),\n\t] );\n\n\tif ( ! isVisible ) {\n\t\treturn { ref: mergedRefs };\n\t}\n\n\treturn {\n\t\tref: mergedRefs,\n\t\tchildren: popover,\n\t\t'aria-autocomplete': listBoxId ? 'list' : undefined,\n\t\t'aria-owns': listBoxId,\n\t\t'aria-activedescendant': activeId,\n\t};\n}\n\nexport default function Autocomplete( { children, isSelected, ...options } ) {\n\tconst { popover, ...props } = useAutocomplete( options );\n\treturn (\n\t\t<>\n\t\t\t{ children( props ) }\n\t\t\t{ isSelected && popover }\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/autocomplete/index.js"],"names":["removeAccents","renderToString","useEffect","useState","useRef","useMemo","__","_n","sprintf","useInstanceId","useDebounce","useMergeRefs","useRefEffect","create","slice","insert","isCollapsed","getTextContent","speak","getAutoCompleterUI","escapeRegExp","useAutocomplete","record","onChange","onReplace","completers","contentRef","debouncedSpeak","instanceId","selectedIndex","setSelectedIndex","filteredOptions","setFilteredOptions","filterValue","setFilterValue","autocompleter","setAutocompleter","AutocompleterUI","setAutocompleterUI","backspacing","insertCompletion","replacement","end","start","triggerPrefix","length","toInsert","html","select","option","getOptionCompletion","isDisabled","completion","value","action","undefined","reset","announce","options","onChangeOptions","handleKeyDown","event","current","key","defaultPrevented","isComposing","keyCode","preventDefault","textContent","text","textAfterSelection","completer","find","allowContext","index","lastIndexOf","textWithoutTrigger","tooDistantFromTrigger","mismatch","wordsFromTrigger","split","hasOneTriggerWord","matchingWhileBackspacing","test","safeTrigger","match","RegExp","query","selectedKey","className","isExpanded","listBoxId","activeId","hasSelection","onKeyDown","popover","useAutocompleteProps","isVisible","setIsVisible","ref","recordAfterInput","onKeyDownRef","mergedRefs","element","_onKeyDown","_onInput","addEventListener","removeEventListener","children","Autocomplete","isSelected","props"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport {\n\trenderToString,\n\tuseEffect,\n\tuseState,\n\tuseRef,\n\tuseMemo,\n} from '@wordpress/element';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport {\n\tuseInstanceId,\n\tuseDebounce,\n\tuseMergeRefs,\n\tuseRefEffect,\n} from '@wordpress/compose';\nimport {\n\tcreate,\n\tslice,\n\tinsert,\n\tisCollapsed,\n\tgetTextContent,\n} from '@wordpress/rich-text';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport { getAutoCompleterUI } from './autocompleter-ui';\nimport { escapeRegExp } from '../utils/strings';\n\n/**\n * A raw completer option.\n *\n * @typedef {*} CompleterOption\n */\n\n/**\n * @callback FnGetOptions\n *\n * @return {(CompleterOption[]|Promise.<CompleterOption[]>)} The completer options or a promise for them.\n */\n\n/**\n * @callback FnGetOptionKeywords\n * @param {CompleterOption} option a completer option.\n *\n * @return {string[]} list of key words to search.\n */\n\n/**\n * @callback FnIsOptionDisabled\n * @param {CompleterOption} option a completer option.\n *\n * @return {string[]} whether or not the given option is disabled.\n */\n\n/**\n * @callback FnGetOptionLabel\n * @param {CompleterOption} option a completer option.\n *\n * @return {(string|Array.<(string|WPElement)>)} list of react components to render.\n */\n\n/**\n * @callback FnAllowContext\n * @param {string} before the string before the auto complete trigger and query.\n * @param {string} after the string after the autocomplete trigger and query.\n *\n * @return {boolean} true if the completer can handle.\n */\n\n/**\n * @typedef {Object} OptionCompletion\n * @property {'insert-at-caret'|'replace'} action the intended placement of the completion.\n * @property {OptionCompletionValue} value the completion value.\n */\n\n/**\n * A completion value.\n *\n * @typedef {(string|WPElement|Object)} OptionCompletionValue\n */\n\n/**\n * @callback FnGetOptionCompletion\n * @param {CompleterOption} value the value of the completer option.\n * @param {string} query the text value of the autocomplete query.\n *\n * @return {(OptionCompletion|OptionCompletionValue)} the completion for the given option. If an\n * \t\t\t\t\t\t\t\t\t\t\t\t\t OptionCompletionValue is returned, the\n * \t\t\t\t\t\t\t\t\t\t\t\t\t completion action defaults to `insert-at-caret`.\n */\n\n/**\n * @typedef {Object} WPCompleter\n * @property {string} name a way to identify a completer, useful for selective overriding.\n * @property {?string} className A class to apply to the popup menu.\n * @property {string} triggerPrefix the prefix that will display the menu.\n * @property {(CompleterOption[]|FnGetOptions)} options the completer options or a function to get them.\n * @property {?FnGetOptionKeywords} getOptionKeywords get the keywords for a given option.\n * @property {?FnIsOptionDisabled} isOptionDisabled get whether or not the given option is disabled.\n * @property {FnGetOptionLabel} getOptionLabel get the label for a given option.\n * @property {?FnAllowContext} allowContext filter the context under which the autocomplete activates.\n * @property {FnGetOptionCompletion} getOptionCompletion get the completion associated with a given option.\n */\n\nfunction useAutocomplete( {\n\trecord,\n\tonChange,\n\tonReplace,\n\tcompleters,\n\tcontentRef,\n} ) {\n\tconst debouncedSpeak = useDebounce( speak, 500 );\n\tconst instanceId = useInstanceId( useAutocomplete );\n\tconst [ selectedIndex, setSelectedIndex ] = useState( 0 );\n\tconst [ filteredOptions, setFilteredOptions ] = useState( [] );\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst [ autocompleter, setAutocompleter ] = useState( null );\n\tconst [ AutocompleterUI, setAutocompleterUI ] = useState( null );\n\tconst backspacing = useRef( false );\n\n\tfunction insertCompletion( replacement ) {\n\t\tconst end = record.start;\n\t\tconst start =\n\t\t\tend - autocompleter.triggerPrefix.length - filterValue.length;\n\t\tconst toInsert = create( { html: renderToString( replacement ) } );\n\n\t\tonChange( insert( record, toInsert, start, end ) );\n\t}\n\n\tfunction select( option ) {\n\t\tconst { getOptionCompletion } = autocompleter || {};\n\n\t\tif ( option.isDisabled ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( getOptionCompletion ) {\n\t\t\tconst completion = getOptionCompletion( option.value, filterValue );\n\n\t\t\tconst { action, value } =\n\t\t\t\tundefined === completion.action ||\n\t\t\t\tundefined === completion.value\n\t\t\t\t\t? { action: 'insert-at-caret', value: completion }\n\t\t\t\t\t: completion;\n\n\t\t\tif ( 'replace' === action ) {\n\t\t\t\tonReplace( [ value ] );\n\t\t\t\t// When replacing, the component will unmount, so don't reset\n\t\t\t\t// state (below) on an unmounted component.\n\t\t\t\treturn;\n\t\t\t} else if ( 'insert-at-caret' === action ) {\n\t\t\t\tinsertCompletion( value );\n\t\t\t}\n\t\t}\n\n\t\t// Reset autocomplete state after insertion rather than before\n\t\t// so insertion events don't cause the completion menu to redisplay.\n\t\treset();\n\t}\n\n\tfunction reset() {\n\t\tsetSelectedIndex( 0 );\n\t\tsetFilteredOptions( [] );\n\t\tsetFilterValue( '' );\n\t\tsetAutocompleter( null );\n\t\tsetAutocompleterUI( null );\n\t}\n\n\tfunction announce( options ) {\n\t\tif ( ! debouncedSpeak ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( !! options.length ) {\n\t\t\tdebouncedSpeak(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %d: number of results. */\n\t\t\t\t\t_n(\n\t\t\t\t\t\t'%d result found, use up and down arrow keys to navigate.',\n\t\t\t\t\t\t'%d results found, use up and down arrow keys to navigate.',\n\t\t\t\t\t\toptions.length\n\t\t\t\t\t),\n\t\t\t\t\toptions.length\n\t\t\t\t),\n\t\t\t\t'assertive'\n\t\t\t);\n\t\t} else {\n\t\t\tdebouncedSpeak( __( 'No results.' ), 'assertive' );\n\t\t}\n\t}\n\n\t/**\n\t * Load options for an autocompleter.\n\t *\n\t * @param {Array} options\n\t */\n\tfunction onChangeOptions( options ) {\n\t\tsetSelectedIndex(\n\t\t\toptions.length === filteredOptions.length ? selectedIndex : 0\n\t\t);\n\t\tsetFilteredOptions( options );\n\t\tannounce( options );\n\t}\n\n\tfunction handleKeyDown( event ) {\n\t\tbackspacing.current = event.key === 'Backspace';\n\n\t\tif ( ! autocompleter ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( filteredOptions.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\tevent.defaultPrevented ||\n\t\t\t// Ignore keydowns from IMEs\n\t\t\tevent.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\t\tswitch ( event.key ) {\n\t\t\tcase 'ArrowUp':\n\t\t\t\tsetSelectedIndex(\n\t\t\t\t\t( selectedIndex === 0\n\t\t\t\t\t\t? filteredOptions.length\n\t\t\t\t\t\t: selectedIndex ) - 1\n\t\t\t\t);\n\t\t\t\tbreak;\n\n\t\t\tcase 'ArrowDown':\n\t\t\t\tsetSelectedIndex(\n\t\t\t\t\t( selectedIndex + 1 ) % filteredOptions.length\n\t\t\t\t);\n\t\t\t\tbreak;\n\n\t\t\tcase 'Escape':\n\t\t\t\tsetAutocompleter( null );\n\t\t\t\tsetAutocompleterUI( null );\n\t\t\t\tevent.preventDefault();\n\t\t\t\tbreak;\n\n\t\t\tcase 'Enter':\n\t\t\t\tselect( filteredOptions[ selectedIndex ] );\n\t\t\t\tbreak;\n\n\t\t\tcase 'ArrowLeft':\n\t\t\tcase 'ArrowRight':\n\t\t\t\treset();\n\t\t\t\treturn;\n\n\t\t\tdefault:\n\t\t\t\treturn;\n\t\t}\n\n\t\t// Any handled key should prevent original behavior. This relies on\n\t\t// the early return in the default case.\n\t\tevent.preventDefault();\n\t}\n\n\t// textContent is a primitive (string), memoizing is not strictly necessary\n\t// but this is a preemptive performance improvement, since the autocompleter\n\t// is a potential bottleneck for the editor type metric.\n\tconst textContent = useMemo( () => {\n\t\tif ( isCollapsed( record ) ) {\n\t\t\treturn getTextContent( slice( record, 0 ) );\n\t\t}\n\t}, [ record ] );\n\n\tuseEffect( () => {\n\t\tif ( ! textContent ) {\n\t\t\treset();\n\t\t\treturn;\n\t\t}\n\n\t\tconst text = removeAccents( textContent );\n\t\tconst textAfterSelection = getTextContent(\n\t\t\tslice( record, undefined, getTextContent( record ).length )\n\t\t);\n\t\tconst completer = completers?.find(\n\t\t\t( { triggerPrefix, allowContext } ) => {\n\t\t\t\tconst index = text.lastIndexOf( triggerPrefix );\n\n\t\t\t\tif ( index === -1 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tconst textWithoutTrigger = text.slice(\n\t\t\t\t\tindex + triggerPrefix.length\n\t\t\t\t);\n\n\t\t\t\tconst tooDistantFromTrigger = textWithoutTrigger.length > 50; // 50 chars seems to be a good limit.\n\t\t\t\t// This is a final barrier to prevent the effect from completing with\n\t\t\t\t// an extremely long string, which causes the editor to slow-down\n\t\t\t\t// significantly. This could happen, for example, if `matchingWhileBackspacing`\n\t\t\t\t// is true and one of the \"words\" end up being too long. If that's the case,\n\t\t\t\t// it will be caught by this guard.\n\t\t\t\tif ( tooDistantFromTrigger ) return false;\n\n\t\t\t\tconst mismatch = filteredOptions.length === 0;\n\t\t\t\tconst wordsFromTrigger = textWithoutTrigger.split( /\\s/ );\n\t\t\t\t// We need to allow the effect to run when not backspacing and if there\n\t\t\t\t// was a mismatch. i.e when typing a trigger + the match string or when\n\t\t\t\t// clicking in an existing trigger word on the page. We do that if we\n\t\t\t\t// detect that we have one word from trigger in the current textual context.\n\t\t\t\t//\n\t\t\t\t// Ex.: \"Some text @a\" <-- \"@a\" will be detected as the trigger word and\n\t\t\t\t// allow the effect to run. It will run until there's a mismatch.\n\t\t\t\tconst hasOneTriggerWord = wordsFromTrigger.length === 1;\n\t\t\t\t// This is used to allow the effect to run when backspacing and if\n\t\t\t\t// \"touching\" a word that \"belongs\" to a trigger. We consider a \"trigger\n\t\t\t\t// word\" any word up to the limit of 3 from the trigger character.\n\t\t\t\t// Anything beyond that is ignored if there's a mismatch. This allows\n\t\t\t\t// us to \"escape\" a mismatch when backspacing, but still imposing some\n\t\t\t\t// sane limits.\n\t\t\t\t//\n\t\t\t\t// Ex: \"Some text @marcelo sekkkk\" <--- \"kkkk\" caused a mismatch, but\n\t\t\t\t// if the user presses backspace here, it will show the completion popup again.\n\t\t\t\tconst matchingWhileBackspacing =\n\t\t\t\t\tbackspacing.current &&\n\t\t\t\t\ttextWithoutTrigger.split( /\\s/ ).length <= 3;\n\n\t\t\t\tif (\n\t\t\t\t\tmismatch &&\n\t\t\t\t\t! ( matchingWhileBackspacing || hasOneTriggerWord )\n\t\t\t\t) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\tallowContext &&\n\t\t\t\t\t! allowContext( text.slice( 0, index ), textAfterSelection )\n\t\t\t\t) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t/^\\s/.test( textWithoutTrigger ) ||\n\t\t\t\t\t/\\s\\s+$/.test( textWithoutTrigger )\n\t\t\t\t) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\treturn /[\\u0000-\\uFFFF]*$/.test( textWithoutTrigger );\n\t\t\t}\n\t\t);\n\n\t\tif ( ! completer ) {\n\t\t\treset();\n\t\t\treturn;\n\t\t}\n\n\t\tconst safeTrigger = escapeRegExp( completer.triggerPrefix );\n\t\tconst match = text\n\t\t\t.slice( text.lastIndexOf( completer.triggerPrefix ) )\n\t\t\t.match( new RegExp( `${ safeTrigger }([\\u0000-\\uFFFF]*)$` ) );\n\t\tconst query = match && match[ 1 ];\n\n\t\tsetAutocompleter( completer );\n\t\tsetAutocompleterUI( () =>\n\t\t\tcompleter !== autocompleter\n\t\t\t\t? getAutoCompleterUI( completer )\n\t\t\t\t: AutocompleterUI\n\t\t);\n\t\tsetFilterValue( query );\n\t\t// Temporarily disabling exhaustive-deps to avoid introducing unexpected side effecst.\n\t\t// See https://github.com/WordPress/gutenberg/pull/41820\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ textContent ] );\n\n\tconst { key: selectedKey = '' } = filteredOptions[ selectedIndex ] || {};\n\tconst { className } = autocompleter || {};\n\tconst isExpanded = !! autocompleter && filteredOptions.length > 0;\n\tconst listBoxId = isExpanded\n\t\t? `components-autocomplete-listbox-${ instanceId }`\n\t\t: null;\n\tconst activeId = isExpanded\n\t\t? `components-autocomplete-item-${ instanceId }-${ selectedKey }`\n\t\t: null;\n\tconst hasSelection = record.start !== undefined;\n\n\treturn {\n\t\tlistBoxId,\n\t\tactiveId,\n\t\tonKeyDown: handleKeyDown,\n\t\tpopover: hasSelection && AutocompleterUI && (\n\t\t\t<AutocompleterUI\n\t\t\t\tclassName={ className }\n\t\t\t\tfilterValue={ filterValue }\n\t\t\t\tinstanceId={ instanceId }\n\t\t\t\tlistBoxId={ listBoxId }\n\t\t\t\tselectedIndex={ selectedIndex }\n\t\t\t\tonChangeOptions={ onChangeOptions }\n\t\t\t\tonSelect={ select }\n\t\t\t\tvalue={ record }\n\t\t\t\tcontentRef={ contentRef }\n\t\t\t\treset={ reset }\n\t\t\t/>\n\t\t),\n\t};\n}\n\nexport function useAutocompleteProps( options ) {\n\tconst [ isVisible, setIsVisible ] = useState( false );\n\tconst ref = useRef();\n\tconst recordAfterInput = useRef();\n\tconst onKeyDownRef = useRef();\n\tconst { popover, listBoxId, activeId, onKeyDown } = useAutocomplete( {\n\t\t...options,\n\t\tcontentRef: ref,\n\t} );\n\tonKeyDownRef.current = onKeyDown;\n\n\tuseEffect( () => {\n\t\tif ( isVisible ) {\n\t\t\tif ( ! recordAfterInput.current ) {\n\t\t\t\trecordAfterInput.current = options.record;\n\t\t\t} else if (\n\t\t\t\trecordAfterInput.current.start !== options.record.start ||\n\t\t\t\trecordAfterInput.current.end !== options.record.end\n\t\t\t) {\n\t\t\t\tsetIsVisible( false );\n\t\t\t\trecordAfterInput.current = null;\n\t\t\t}\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ options.record ] );\n\n\tconst mergedRefs = useMergeRefs( [\n\t\tref,\n\t\tuseRefEffect( ( element ) => {\n\t\t\tfunction _onKeyDown( event ) {\n\t\t\t\tonKeyDownRef.current( event );\n\t\t\t}\n\t\t\tfunction _onInput() {\n\t\t\t\t// Only show auto complete UI if the user is inputting text.\n\t\t\t\tsetIsVisible( true );\n\t\t\t\trecordAfterInput.current = null;\n\t\t\t}\n\t\t\telement.addEventListener( 'keydown', _onKeyDown );\n\t\t\telement.addEventListener( 'input', _onInput );\n\t\t\treturn () => {\n\t\t\t\telement.removeEventListener( 'keydown', _onKeyDown );\n\t\t\t\telement.removeEventListener( 'input', _onInput );\n\t\t\t};\n\t\t}, [] ),\n\t] );\n\n\tif ( ! isVisible ) {\n\t\treturn { ref: mergedRefs };\n\t}\n\n\treturn {\n\t\tref: mergedRefs,\n\t\tchildren: popover,\n\t\t'aria-autocomplete': listBoxId ? 'list' : undefined,\n\t\t'aria-owns': listBoxId,\n\t\t'aria-activedescendant': activeId,\n\t};\n}\n\nexport default function Autocomplete( { children, isSelected, ...options } ) {\n\tconst { popover, ...props } = useAutocomplete( options );\n\treturn (\n\t\t<>\n\t\t\t{ children( props ) }\n\t\t\t{ isSelected && popover }\n\t\t</>\n\t);\n}\n"]}
@@ -57,7 +57,6 @@ const UnconnectedBorderBoxControl = (props, forwardedRef) => {
57
57
  splitValue,
58
58
  toggleLinked,
59
59
  wrapperClassName,
60
- __experimentalHasMultipleOrigins,
61
60
  __experimentalIsRenderedInSidebar,
62
61
  ...otherProps
63
62
  } = useBorderBoxControl(props); // Use internal state instead of a ref to make sure that the component
@@ -96,7 +95,6 @@ const UnconnectedBorderBoxControl = (props, forwardedRef) => {
96
95
  value: linkedValue,
97
96
  withSlider: true,
98
97
  width: size === '__unstable-large' ? '116px' : '110px',
99
- __experimentalHasMultipleOrigins: __experimentalHasMultipleOrigins,
100
98
  __experimentalIsRenderedInSidebar: __experimentalIsRenderedInSidebar,
101
99
  size: size
102
100
  }) : createElement(BorderBoxControlSplitControls, {
@@ -108,7 +106,6 @@ const UnconnectedBorderBoxControl = (props, forwardedRef) => {
108
106
  popoverPlacement: popoverPlacement,
109
107
  popoverOffset: popoverOffset,
110
108
  value: splitValue,
111
- __experimentalHasMultipleOrigins: __experimentalHasMultipleOrigins,
112
109
  __experimentalIsRenderedInSidebar: __experimentalIsRenderedInSidebar,
113
110
  size: size
114
111
  }), createElement(BorderBoxControlLinkedButton, {