@wordpress/components 27.0.0 → 27.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 (208) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/build/base-control/index.native.js.map +1 -1
  3. package/build/border-box-control/border-box-control/component.js.map +1 -1
  4. package/build/border-box-control/border-box-control-split-controls/component.js.map +1 -1
  5. package/build/border-control/border-control-dropdown/component.js.map +1 -1
  6. package/build/button/index.js +2 -2
  7. package/build/button/index.js.map +1 -1
  8. package/build/button/index.native.js.map +1 -1
  9. package/build/confirm-dialog/component.js.map +1 -1
  10. package/build/custom-select-control-v2/default-component/index.js.map +1 -1
  11. package/build/custom-select-control-v2/index.js +2 -2
  12. package/build/custom-select-control-v2/index.js.map +1 -1
  13. package/build/custom-select-control-v2/types.js.map +1 -1
  14. package/build/draggable/index.native.js +2 -2
  15. package/build/draggable/index.native.js.map +1 -1
  16. package/build/dropdown-menu/index.native.js.map +1 -1
  17. package/build/flex/flex/hook.js +1 -1
  18. package/build/flex/flex/hook.js.map +1 -1
  19. package/build/font-size-picker/index.native.js.map +1 -1
  20. package/build/form-token-field/index.js.map +1 -1
  21. package/build/h-stack/hook.js +6 -1
  22. package/build/h-stack/hook.js.map +1 -1
  23. package/build/mobile/bottom-sheet/button.native.js.map +1 -1
  24. package/build/mobile/bottom-sheet/index.native.js.map +1 -1
  25. package/build/mobile/bottom-sheet/range-cell.native.js.map +1 -1
  26. package/build/mobile/bottom-sheet/stepper-cell/index.native.js.map +1 -1
  27. package/build/mobile/bottom-sheet-select-control/index.native.js.map +1 -1
  28. package/build/mobile/bottom-sheet-text-control/index.native.js.map +1 -1
  29. package/build/mobile/gradient/index.native.js.map +1 -1
  30. package/build/mobile/image/index.native.js +4 -13
  31. package/build/mobile/image/index.native.js.map +1 -1
  32. package/build/mobile/media-edit/index.native.js.map +1 -1
  33. package/build/palette-edit/index.js.map +1 -1
  34. package/build/query-controls/index.native.js.map +1 -1
  35. package/build/range-control/index.js.map +1 -1
  36. package/build/search-control/index.native.js.map +1 -1
  37. package/build/snackbar/index.js +3 -2
  38. package/build/snackbar/index.js.map +1 -1
  39. package/build/snackbar/list.js +2 -1
  40. package/build/snackbar/list.js.map +1 -1
  41. package/build/snackbar/types.js.map +1 -1
  42. package/build/tabs/index.js +7 -7
  43. package/build/tabs/index.js.map +1 -1
  44. package/build/tabs/types.js.map +1 -1
  45. package/build/utils/hooks/index.js +0 -7
  46. package/build/utils/hooks/index.js.map +1 -1
  47. package/build-module/base-control/index.native.js.map +1 -1
  48. package/build-module/border-box-control/border-box-control/component.js.map +1 -1
  49. package/build-module/border-box-control/border-box-control-split-controls/component.js.map +1 -1
  50. package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
  51. package/build-module/button/index.js +2 -2
  52. package/build-module/button/index.js.map +1 -1
  53. package/build-module/button/index.native.js.map +1 -1
  54. package/build-module/confirm-dialog/component.js.map +1 -1
  55. package/build-module/custom-select-control-v2/default-component/index.js.map +1 -1
  56. package/build-module/custom-select-control-v2/index.js +1 -1
  57. package/build-module/custom-select-control-v2/index.js.map +1 -1
  58. package/build-module/custom-select-control-v2/types.js.map +1 -1
  59. package/build-module/draggable/index.native.js +2 -2
  60. package/build-module/draggable/index.native.js.map +1 -1
  61. package/build-module/dropdown-menu/index.native.js.map +1 -1
  62. package/build-module/flex/flex/hook.js +1 -1
  63. package/build-module/flex/flex/hook.js.map +1 -1
  64. package/build-module/font-size-picker/index.native.js.map +1 -1
  65. package/build-module/form-token-field/index.js.map +1 -1
  66. package/build-module/h-stack/hook.js +6 -1
  67. package/build-module/h-stack/hook.js.map +1 -1
  68. package/build-module/mobile/bottom-sheet/button.native.js.map +1 -1
  69. package/build-module/mobile/bottom-sheet/index.native.js.map +1 -1
  70. package/build-module/mobile/bottom-sheet/range-cell.native.js.map +1 -1
  71. package/build-module/mobile/bottom-sheet/stepper-cell/index.native.js.map +1 -1
  72. package/build-module/mobile/bottom-sheet-select-control/index.native.js.map +1 -1
  73. package/build-module/mobile/bottom-sheet-text-control/index.native.js.map +1 -1
  74. package/build-module/mobile/gradient/index.native.js.map +1 -1
  75. package/build-module/mobile/image/index.native.js +6 -15
  76. package/build-module/mobile/image/index.native.js.map +1 -1
  77. package/build-module/mobile/media-edit/index.native.js.map +1 -1
  78. package/build-module/palette-edit/index.js.map +1 -1
  79. package/build-module/query-controls/index.native.js.map +1 -1
  80. package/build-module/range-control/index.js.map +1 -1
  81. package/build-module/search-control/index.native.js.map +1 -1
  82. package/build-module/snackbar/index.js +3 -2
  83. package/build-module/snackbar/index.js.map +1 -1
  84. package/build-module/snackbar/list.js +2 -1
  85. package/build-module/snackbar/list.js.map +1 -1
  86. package/build-module/snackbar/types.js.map +1 -1
  87. package/build-module/tabs/index.js +7 -7
  88. package/build-module/tabs/index.js.map +1 -1
  89. package/build-module/tabs/types.js.map +1 -1
  90. package/build-module/utils/hooks/index.js +0 -1
  91. package/build-module/utils/hooks/index.js.map +1 -1
  92. package/build-style/style-rtl.css +8 -1
  93. package/build-style/style.css +8 -1
  94. package/build-types/custom-select-control-v2/default-component/index.d.ts +2 -1
  95. package/build-types/custom-select-control-v2/default-component/index.d.ts.map +1 -1
  96. package/build-types/custom-select-control-v2/index.d.ts +1 -1
  97. package/build-types/custom-select-control-v2/index.d.ts.map +1 -1
  98. package/build-types/custom-select-control-v2/legacy-component/test/index.d.ts +2 -0
  99. package/build-types/custom-select-control-v2/legacy-component/test/index.d.ts.map +1 -0
  100. package/build-types/custom-select-control-v2/stories/default.story.d.ts +4 -3
  101. package/build-types/custom-select-control-v2/stories/default.story.d.ts.map +1 -1
  102. package/build-types/custom-select-control-v2/stories/legacy.story.d.ts +2 -2
  103. package/build-types/custom-select-control-v2/stories/legacy.story.d.ts.map +1 -1
  104. package/build-types/custom-select-control-v2/types.d.ts +0 -1
  105. package/build-types/custom-select-control-v2/types.d.ts.map +1 -1
  106. package/build-types/flex/flex/hook.d.ts +2 -3
  107. package/build-types/flex/flex/hook.d.ts.map +1 -1
  108. package/build-types/h-stack/hook.d.ts +2 -4
  109. package/build-types/h-stack/hook.d.ts.map +1 -1
  110. package/build-types/navigation/stories/utils/hide-if-empty.d.ts.map +1 -1
  111. package/build-types/radio-group/stories/index.story.d.ts.map +1 -1
  112. package/build-types/snackbar/index.d.ts +5 -2
  113. package/build-types/snackbar/index.d.ts.map +1 -1
  114. package/build-types/snackbar/list.d.ts.map +1 -1
  115. package/build-types/snackbar/test/index.d.ts +2 -0
  116. package/build-types/snackbar/test/index.d.ts.map +1 -0
  117. package/build-types/snackbar/test/list.d.ts +2 -0
  118. package/build-types/snackbar/test/list.d.ts.map +1 -0
  119. package/build-types/snackbar/types.d.ts +18 -2
  120. package/build-types/snackbar/types.d.ts.map +1 -1
  121. package/build-types/tabs/index.d.ts +1 -1
  122. package/build-types/tabs/types.d.ts +1 -1
  123. package/build-types/utils/hooks/index.d.ts +0 -1
  124. package/build-types/v-stack/hook.d.ts +2 -4
  125. package/build-types/v-stack/hook.d.ts.map +1 -1
  126. package/package.json +19 -19
  127. package/src/base-control/index.native.js +1 -1
  128. package/src/base-control/test/index.tsx +1 -1
  129. package/src/border-box-control/border-box-control/component.tsx +1 -1
  130. package/src/border-box-control/border-box-control-split-controls/component.tsx +4 -4
  131. package/src/border-control/border-control-dropdown/component.tsx +1 -1
  132. package/src/button/index.native.js +1 -1
  133. package/src/button/index.tsx +1 -1
  134. package/src/button/style.scss +1 -3
  135. package/src/circular-option-picker/test/index.tsx +2 -4
  136. package/src/combobox-control/test/index.tsx +1 -1
  137. package/src/confirm-dialog/component.tsx +1 -1
  138. package/src/confirm-dialog/test/index.tsx +5 -21
  139. package/src/custom-select-control-v2/default-component/index.tsx +4 -1
  140. package/src/custom-select-control-v2/index.tsx +1 -1
  141. package/src/custom-select-control-v2/legacy-component/test/index.tsx +457 -0
  142. package/src/custom-select-control-v2/stories/legacy.story.tsx +5 -6
  143. package/src/custom-select-control-v2/test/index.tsx +279 -749
  144. package/src/custom-select-control-v2/types.ts +0 -1
  145. package/src/disabled/test/index.tsx +1 -1
  146. package/src/draggable/index.native.js +2 -2
  147. package/src/draggable/test/index.native.js +6 -2
  148. package/src/dropdown-menu/index.native.js +2 -2
  149. package/src/flex/flex/hook.ts +1 -1
  150. package/src/font-size-picker/index.native.js +2 -2
  151. package/src/form-token-field/index.tsx +1 -1
  152. package/src/h-stack/hook.tsx +2 -1
  153. package/src/h-stack/test/index.tsx +10 -0
  154. package/src/item-group/test/index.js +2 -2
  155. package/src/mobile/bottom-sheet/bottom-sheet-navigation/test/navigation-container.native.js +10 -15
  156. package/src/mobile/bottom-sheet/button.native.js +1 -5
  157. package/src/mobile/bottom-sheet/index.native.js +2 -2
  158. package/src/mobile/bottom-sheet/range-cell.native.js +1 -1
  159. package/src/mobile/bottom-sheet/stepper-cell/index.native.js +2 -2
  160. package/src/mobile/bottom-sheet-select-control/index.native.js +1 -1
  161. package/src/mobile/bottom-sheet-text-control/index.native.js +1 -1
  162. package/src/mobile/gradient/index.native.js +1 -1
  163. package/src/mobile/image/index.native.js +8 -23
  164. package/src/mobile/media-edit/index.native.js +1 -1
  165. package/src/modal/test/index.tsx +1 -1
  166. package/src/navigation/stories/utils/hide-if-empty.tsx +2 -6
  167. package/src/palette-edit/index.tsx +2 -2
  168. package/src/popover/test/index.tsx +1 -4
  169. package/src/query-controls/index.native.js +2 -2
  170. package/src/radio-group/stories/index.story.tsx +1 -0
  171. package/src/range-control/index.tsx +3 -3
  172. package/src/range-control/test/index.tsx +2 -2
  173. package/src/search-control/index.native.js +1 -1
  174. package/src/snackbar/index.tsx +5 -2
  175. package/src/snackbar/list.tsx +6 -1
  176. package/src/snackbar/stories/list.story.tsx +0 -3
  177. package/src/snackbar/test/index.tsx +267 -0
  178. package/src/snackbar/test/list.tsx +46 -0
  179. package/src/snackbar/types.ts +31 -3
  180. package/src/tabs/README.md +18 -18
  181. package/src/tabs/index.tsx +7 -7
  182. package/src/tabs/stories/index.story.tsx +1 -1
  183. package/src/tabs/test/index.tsx +30 -30
  184. package/src/tabs/types.ts +1 -1
  185. package/src/toggle-group-control/test/index.tsx +1 -1
  186. package/src/tools-panel/stories/index.story.tsx +8 -8
  187. package/src/tools-panel/test/index.tsx +10 -28
  188. package/src/tooltip/style.scss +2 -1
  189. package/src/tooltip/test/index.native.js +3 -3
  190. package/src/tree-grid/test/index.tsx +1 -1
  191. package/src/utils/hooks/index.js +0 -1
  192. package/src/v-stack/test/index.tsx +10 -0
  193. package/tsconfig.tsbuildinfo +1 -1
  194. package/build/custom-select-control-v2/legacy-adapter.js +0 -29
  195. package/build/custom-select-control-v2/legacy-adapter.js.map +0 -1
  196. package/build/utils/hooks/use-latest-ref.js +0 -33
  197. package/build/utils/hooks/use-latest-ref.js.map +0 -1
  198. package/build-module/custom-select-control-v2/legacy-adapter.js +0 -21
  199. package/build-module/custom-select-control-v2/legacy-adapter.js.map +0 -1
  200. package/build-module/utils/hooks/use-latest-ref.js +0 -27
  201. package/build-module/utils/hooks/use-latest-ref.js.map +0 -1
  202. package/build-types/custom-select-control-v2/legacy-adapter.d.ts +0 -6
  203. package/build-types/custom-select-control-v2/legacy-adapter.d.ts.map +0 -1
  204. package/build-types/utils/hooks/use-latest-ref.d.ts +0 -15
  205. package/build-types/utils/hooks/use-latest-ref.d.ts.map +0 -1
  206. package/src/custom-select-control-v2/legacy-adapter.tsx +0 -25
  207. package/src/utils/hooks/test/use-latest-ref.js +0 -119
  208. package/src/utils/hooks/use-latest-ref.ts +0 -29
@@ -1 +1 @@
1
- {"version":3,"names":["__","_x","useCallback","memo","RangeControl","SelectControl","CategorySelect","DEFAULT_MIN_ITEMS","DEFAULT_MAX_ITEMS","options","label","value","QueryControls","categoriesList","selectedCategoryId","numberOfItems","order","orderBy","maxItems","minItems","onCategoryChange","onNumberOfItemsChange","onOrderChange","onOrderByChange","onChange","newOrderBy","newOrder","split","createElement","Fragment","hideCancelButton","noOptionLabel","__next40pxDefaultSize","min","max","required"],"sources":["@wordpress/components/src/query-controls/index.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { useCallback, memo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { RangeControl, SelectControl } from '../';\nimport CategorySelect from './category-select';\n\nconst DEFAULT_MIN_ITEMS = 1;\nconst DEFAULT_MAX_ITEMS = 100;\n\nconst options = [\n\t{\n\t\tlabel: __( 'Newest to oldest' ),\n\t\tvalue: 'date/desc',\n\t},\n\t{\n\t\tlabel: __( 'Oldest to newest' ),\n\t\tvalue: 'date/asc',\n\t},\n\t{\n\t\t/* translators: Label for ordering posts by title in ascending order. */\n\t\tlabel: __( 'A → Z' ),\n\t\tvalue: 'title/asc',\n\t},\n\t{\n\t\t/* translators: Label for ordering posts by title in descending order. */\n\t\tlabel: __( 'Z → A' ),\n\t\tvalue: 'title/desc',\n\t},\n];\n\nconst QueryControls = memo(\n\t( {\n\t\tcategoriesList,\n\t\tselectedCategoryId,\n\t\tnumberOfItems,\n\t\torder,\n\t\torderBy,\n\t\tmaxItems = DEFAULT_MAX_ITEMS,\n\t\tminItems = DEFAULT_MIN_ITEMS,\n\t\tonCategoryChange,\n\t\tonNumberOfItemsChange,\n\t\tonOrderChange,\n\t\tonOrderByChange,\n\t} ) => {\n\t\tconst onChange = useCallback(\n\t\t\t( value ) => {\n\t\t\t\tconst [ newOrderBy, newOrder ] = value.split( '/' );\n\t\t\t\tif ( newOrder !== order ) {\n\t\t\t\t\tonOrderChange( newOrder );\n\t\t\t\t}\n\t\t\t\tif ( newOrderBy !== orderBy ) {\n\t\t\t\t\tonOrderByChange( newOrderBy );\n\t\t\t\t}\n\t\t\t},\n\t\t\t[ order, orderBy, onOrderByChange, onOrderChange ]\n\t\t);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ onOrderChange && onOrderByChange && (\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ __( 'Order by' ) }\n\t\t\t\t\t\tvalue={ `${ orderBy }/${ order }` }\n\t\t\t\t\t\toptions={ options }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ onCategoryChange && (\n\t\t\t\t\t<CategorySelect\n\t\t\t\t\t\tcategoriesList={ categoriesList }\n\t\t\t\t\t\tlabel={ __( 'Category' ) }\n\t\t\t\t\t\tnoOptionLabel={ _x( 'All', 'categories' ) }\n\t\t\t\t\t\tselectedCategoryId={ selectedCategoryId }\n\t\t\t\t\t\tonChange={ onCategoryChange }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ onNumberOfItemsChange && (\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Number of items' ) }\n\t\t\t\t\t\tvalue={ numberOfItems }\n\t\t\t\t\t\tonChange={ onNumberOfItemsChange }\n\t\t\t\t\t\tmin={ minItems }\n\t\t\t\t\t\tmax={ maxItems }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}\n);\n\nexport default QueryControls;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,EAAEC,EAAE,QAAQ,iBAAiB;AACxC,SAASC,WAAW,EAAEC,IAAI,QAAQ,oBAAoB;;AAEtD;AACA;AACA;AACA,SAASC,YAAY,EAAEC,aAAa,QAAQ,KAAK;AACjD,OAAOC,cAAc,MAAM,mBAAmB;AAE9C,MAAMC,iBAAiB,GAAG,CAAC;AAC3B,MAAMC,iBAAiB,GAAG,GAAG;AAE7B,MAAMC,OAAO,GAAG,CACf;EACCC,KAAK,EAAEV,EAAE,CAAE,kBAAmB,CAAC;EAC/BW,KAAK,EAAE;AACR,CAAC,EACD;EACCD,KAAK,EAAEV,EAAE,CAAE,kBAAmB,CAAC;EAC/BW,KAAK,EAAE;AACR,CAAC,EACD;EACC;EACAD,KAAK,EAAEV,EAAE,CAAE,OAAQ,CAAC;EACpBW,KAAK,EAAE;AACR,CAAC,EACD;EACC;EACAD,KAAK,EAAEV,EAAE,CAAE,OAAQ,CAAC;EACpBW,KAAK,EAAE;AACR,CAAC,CACD;AAED,MAAMC,aAAa,GAAGT,IAAI,CACzB,CAAE;EACDU,cAAc;EACdC,kBAAkB;EAClBC,aAAa;EACbC,KAAK;EACLC,OAAO;EACPC,QAAQ,GAAGV,iBAAiB;EAC5BW,QAAQ,GAAGZ,iBAAiB;EAC5Ba,gBAAgB;EAChBC,qBAAqB;EACrBC,aAAa;EACbC;AACD,CAAC,KAAM;EACN,MAAMC,QAAQ,GAAGtB,WAAW,CACzBS,KAAK,IAAM;IACZ,MAAM,CAAEc,UAAU,EAAEC,QAAQ,CAAE,GAAGf,KAAK,CAACgB,KAAK,CAAE,GAAI,CAAC;IACnD,IAAKD,QAAQ,KAAKV,KAAK,EAAG;MACzBM,aAAa,CAAEI,QAAS,CAAC;IAC1B;IACA,IAAKD,UAAU,KAAKR,OAAO,EAAG;MAC7BM,eAAe,CAAEE,UAAW,CAAC;IAC9B;EACD,CAAC,EACD,CAAET,KAAK,EAAEC,OAAO,EAAEM,eAAe,EAAED,aAAa,CACjD,CAAC;EAED,OACCM,aAAA,CAAAC,QAAA,QACGP,aAAa,IAAIC,eAAe,IACjCK,aAAA,CAACvB,aAAa;IACbK,KAAK,EAAGV,EAAE,CAAE,UAAW,CAAG;IAC1BW,KAAK,EAAI,GAAGM,OAAS,IAAID,KAAO,EAAG;IACnCP,OAAO,EAAGA,OAAS;IACnBe,QAAQ,EAAGA,QAAU;IACrBM,gBAAgB,EAAG;EAAM,CACzB,CACD,EACCV,gBAAgB,IACjBQ,aAAA,CAACtB,cAAc;IACdO,cAAc,EAAGA,cAAgB;IACjCH,KAAK,EAAGV,EAAE,CAAE,UAAW,CAAG;IAC1B+B,aAAa,EAAG9B,EAAE,CAAE,KAAK,EAAE,YAAa,CAAG;IAC3Ca,kBAAkB,EAAGA,kBAAoB;IACzCU,QAAQ,EAAGJ,gBAAkB;IAC7BU,gBAAgB,EAAG;EAAM,CACzB,CACD,EACCT,qBAAqB,IACtBO,aAAA,CAACxB,YAAY;IACZ4B,qBAAqB;IACrBtB,KAAK,EAAGV,EAAE,CAAE,iBAAkB,CAAG;IACjCW,KAAK,EAAGI,aAAe;IACvBS,QAAQ,EAAGH,qBAAuB;IAClCY,GAAG,EAAGd,QAAU;IAChBe,GAAG,EAAGhB,QAAU;IAChBiB,QAAQ;EAAA,CACR,CAED,CAAC;AAEL,CACD,CAAC;AAED,eAAevB,aAAa"}
1
+ {"version":3,"names":["__","_x","useCallback","memo","RangeControl","SelectControl","CategorySelect","DEFAULT_MIN_ITEMS","DEFAULT_MAX_ITEMS","options","label","value","QueryControls","categoriesList","selectedCategoryId","numberOfItems","order","orderBy","maxItems","minItems","onCategoryChange","onNumberOfItemsChange","onOrderChange","onOrderByChange","onChange","newOrderBy","newOrder","split","createElement","Fragment","hideCancelButton","noOptionLabel","__next40pxDefaultSize","min","max","required"],"sources":["@wordpress/components/src/query-controls/index.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { useCallback, memo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { RangeControl, SelectControl } from '../';\nimport CategorySelect from './category-select';\n\nconst DEFAULT_MIN_ITEMS = 1;\nconst DEFAULT_MAX_ITEMS = 100;\n\nconst options = [\n\t{\n\t\tlabel: __( 'Newest to oldest' ),\n\t\tvalue: 'date/desc',\n\t},\n\t{\n\t\tlabel: __( 'Oldest to newest' ),\n\t\tvalue: 'date/asc',\n\t},\n\t{\n\t\t/* translators: Label for ordering posts by title in ascending order. */\n\t\tlabel: __( 'A → Z' ),\n\t\tvalue: 'title/asc',\n\t},\n\t{\n\t\t/* translators: Label for ordering posts by title in descending order. */\n\t\tlabel: __( 'Z → A' ),\n\t\tvalue: 'title/desc',\n\t},\n];\n\nconst QueryControls = memo(\n\t( {\n\t\tcategoriesList,\n\t\tselectedCategoryId,\n\t\tnumberOfItems,\n\t\torder,\n\t\torderBy,\n\t\tmaxItems = DEFAULT_MAX_ITEMS,\n\t\tminItems = DEFAULT_MIN_ITEMS,\n\t\tonCategoryChange,\n\t\tonNumberOfItemsChange,\n\t\tonOrderChange,\n\t\tonOrderByChange,\n\t} ) => {\n\t\tconst onChange = useCallback(\n\t\t\t( value ) => {\n\t\t\t\tconst [ newOrderBy, newOrder ] = value.split( '/' );\n\t\t\t\tif ( newOrder !== order ) {\n\t\t\t\t\tonOrderChange( newOrder );\n\t\t\t\t}\n\t\t\t\tif ( newOrderBy !== orderBy ) {\n\t\t\t\t\tonOrderByChange( newOrderBy );\n\t\t\t\t}\n\t\t\t},\n\t\t\t[ order, orderBy, onOrderByChange, onOrderChange ]\n\t\t);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ onOrderChange && onOrderByChange && (\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ __( 'Order by' ) }\n\t\t\t\t\t\tvalue={ `${ orderBy }/${ order }` }\n\t\t\t\t\t\toptions={ options }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\thideCancelButton\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ onCategoryChange && (\n\t\t\t\t\t<CategorySelect\n\t\t\t\t\t\tcategoriesList={ categoriesList }\n\t\t\t\t\t\tlabel={ __( 'Category' ) }\n\t\t\t\t\t\tnoOptionLabel={ _x( 'All', 'categories' ) }\n\t\t\t\t\t\tselectedCategoryId={ selectedCategoryId }\n\t\t\t\t\t\tonChange={ onCategoryChange }\n\t\t\t\t\t\thideCancelButton\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ onNumberOfItemsChange && (\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Number of items' ) }\n\t\t\t\t\t\tvalue={ numberOfItems }\n\t\t\t\t\t\tonChange={ onNumberOfItemsChange }\n\t\t\t\t\t\tmin={ minItems }\n\t\t\t\t\t\tmax={ maxItems }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}\n);\n\nexport default QueryControls;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,EAAEC,EAAE,QAAQ,iBAAiB;AACxC,SAASC,WAAW,EAAEC,IAAI,QAAQ,oBAAoB;;AAEtD;AACA;AACA;AACA,SAASC,YAAY,EAAEC,aAAa,QAAQ,KAAK;AACjD,OAAOC,cAAc,MAAM,mBAAmB;AAE9C,MAAMC,iBAAiB,GAAG,CAAC;AAC3B,MAAMC,iBAAiB,GAAG,GAAG;AAE7B,MAAMC,OAAO,GAAG,CACf;EACCC,KAAK,EAAEV,EAAE,CAAE,kBAAmB,CAAC;EAC/BW,KAAK,EAAE;AACR,CAAC,EACD;EACCD,KAAK,EAAEV,EAAE,CAAE,kBAAmB,CAAC;EAC/BW,KAAK,EAAE;AACR,CAAC,EACD;EACC;EACAD,KAAK,EAAEV,EAAE,CAAE,OAAQ,CAAC;EACpBW,KAAK,EAAE;AACR,CAAC,EACD;EACC;EACAD,KAAK,EAAEV,EAAE,CAAE,OAAQ,CAAC;EACpBW,KAAK,EAAE;AACR,CAAC,CACD;AAED,MAAMC,aAAa,GAAGT,IAAI,CACzB,CAAE;EACDU,cAAc;EACdC,kBAAkB;EAClBC,aAAa;EACbC,KAAK;EACLC,OAAO;EACPC,QAAQ,GAAGV,iBAAiB;EAC5BW,QAAQ,GAAGZ,iBAAiB;EAC5Ba,gBAAgB;EAChBC,qBAAqB;EACrBC,aAAa;EACbC;AACD,CAAC,KAAM;EACN,MAAMC,QAAQ,GAAGtB,WAAW,CACzBS,KAAK,IAAM;IACZ,MAAM,CAAEc,UAAU,EAAEC,QAAQ,CAAE,GAAGf,KAAK,CAACgB,KAAK,CAAE,GAAI,CAAC;IACnD,IAAKD,QAAQ,KAAKV,KAAK,EAAG;MACzBM,aAAa,CAAEI,QAAS,CAAC;IAC1B;IACA,IAAKD,UAAU,KAAKR,OAAO,EAAG;MAC7BM,eAAe,CAAEE,UAAW,CAAC;IAC9B;EACD,CAAC,EACD,CAAET,KAAK,EAAEC,OAAO,EAAEM,eAAe,EAAED,aAAa,CACjD,CAAC;EAED,OACCM,aAAA,CAAAC,QAAA,QACGP,aAAa,IAAIC,eAAe,IACjCK,aAAA,CAACvB,aAAa;IACbK,KAAK,EAAGV,EAAE,CAAE,UAAW,CAAG;IAC1BW,KAAK,EAAI,GAAGM,OAAS,IAAID,KAAO,EAAG;IACnCP,OAAO,EAAGA,OAAS;IACnBe,QAAQ,EAAGA,QAAU;IACrBM,gBAAgB;EAAA,CAChB,CACD,EACCV,gBAAgB,IACjBQ,aAAA,CAACtB,cAAc;IACdO,cAAc,EAAGA,cAAgB;IACjCH,KAAK,EAAGV,EAAE,CAAE,UAAW,CAAG;IAC1B+B,aAAa,EAAG9B,EAAE,CAAE,KAAK,EAAE,YAAa,CAAG;IAC3Ca,kBAAkB,EAAGA,kBAAoB;IACzCU,QAAQ,EAAGJ,gBAAkB;IAC7BU,gBAAgB;EAAA,CAChB,CACD,EACCT,qBAAqB,IACtBO,aAAA,CAACxB,YAAY;IACZ4B,qBAAqB;IACrBtB,KAAK,EAAGV,EAAE,CAAE,iBAAkB,CAAG;IACjCW,KAAK,EAAGI,aAAe;IACvBS,QAAQ,EAAGH,qBAAuB;IAClCY,GAAG,EAAGd,QAAU;IAChBe,GAAG,EAAGhB,QAAU;IAChBiB,QAAQ;EAAA,CACR,CAED,CAAC;AAEL,CACD,CAAC;AAED,eAAevB,aAAa"}
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","__","isRTL","useRef","useState","forwardRef","useInstanceId","useMergeRefs","BaseControl","Button","Icon","COLORS","floatClamp","useControlledRangeValue","clamp","InputRange","RangeRail","SimpleTooltip","ActionRightWrapper","AfterIconWrapper","BeforeIconWrapper","InputNumber","Root","Track","ThumbWrapper","Thumb","Wrapper","space","noop","UnforwardedRangeControl","props","forwardedRef","__nextHasNoMarginBottom","afterIcon","allowReset","beforeIcon","className","color","colorProp","theme","accent","currentInput","disabled","help","hideLabelFromVision","initialPosition","isShiftStepEnabled","label","marks","max","min","onBlur","onChange","onFocus","onMouseLeave","onMouseMove","railColor","renderTooltipContent","v","resetFallbackValue","__next40pxDefaultSize","shiftStep","showTooltip","showTooltipProp","step","trackColor","value","valueProp","withInputField","otherProps","setValue","initial","isResetPendent","hasTooltip","hasInputField","setShowTooltip","isFocused","setIsFocused","inputRef","isCurrentlyFocused","current","matches","isThumbFocused","isValueReset","currentValue","undefined","inputSliderValue","rangeFillValue","fillValue","fillValueOffset","classes","wrapperClasses","id","describedBy","enableTooltip","Number","isFinite","handleOnRangeChange","event","nextValue","parseFloat","target","handleOnChange","next","isNaN","handleOnInputNumberBlur","handleOnReset","resetValue","onChangeResetValue","handleShowTooltip","handleHideTooltip","handleOnBlur","handleOnFocus","offsetStyle","createElement","icon","ref","style","width","tooltipPosition","show","inputMode","size","__unstableInputWidth","variant","onClick","RangeControl"],"sources":["@wordpress/components/src/range-control/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport type { ChangeEvent, FocusEvent, ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport { useRef, useState, forwardRef } from '@wordpress/element';\nimport { useInstanceId, useMergeRefs } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BaseControl from '../base-control';\nimport Button from '../button';\nimport Icon from '../icon';\nimport { COLORS } from '../utils';\nimport { floatClamp, useControlledRangeValue } from './utils';\nimport { clamp } from '../utils/math';\nimport InputRange from './input-range';\nimport RangeRail from './rail';\nimport SimpleTooltip from './tooltip';\nimport {\n\tActionRightWrapper,\n\tAfterIconWrapper,\n\tBeforeIconWrapper,\n\tInputNumber,\n\tRoot,\n\tTrack,\n\tThumbWrapper,\n\tThumb,\n\tWrapper,\n} from './styles/range-control-styles';\n\nimport type { RangeControlProps } from './types';\nimport type { WordPressComponentProps } from '../context';\nimport { space } from '../utils/space';\n\nconst noop = () => {};\n\nfunction UnforwardedRangeControl(\n\tprops: WordPressComponentProps< RangeControlProps, 'input', false >,\n\tforwardedRef: ForwardedRef< HTMLInputElement >\n) {\n\tconst {\n\t\t__nextHasNoMarginBottom = false,\n\t\tafterIcon,\n\t\tallowReset = false,\n\t\tbeforeIcon,\n\t\tclassName,\n\t\tcolor: colorProp = COLORS.theme.accent,\n\t\tcurrentInput,\n\t\tdisabled = false,\n\t\thelp,\n\t\thideLabelFromVision = false,\n\t\tinitialPosition,\n\t\tisShiftStepEnabled = true,\n\t\tlabel,\n\t\tmarks = false,\n\t\tmax = 100,\n\t\tmin = 0,\n\t\tonBlur = noop,\n\t\tonChange = noop,\n\t\tonFocus = noop,\n\t\tonMouseLeave = noop,\n\t\tonMouseMove = noop,\n\t\trailColor,\n\t\trenderTooltipContent = ( v ) => v,\n\t\tresetFallbackValue,\n\t\t__next40pxDefaultSize = false,\n\t\tshiftStep = 10,\n\t\tshowTooltip: showTooltipProp,\n\t\tstep = 1,\n\t\ttrackColor,\n\t\tvalue: valueProp,\n\t\twithInputField = true,\n\t\t...otherProps\n\t} = props;\n\n\tconst [ value, setValue ] = useControlledRangeValue( {\n\t\tmin,\n\t\tmax,\n\t\tvalue: valueProp ?? null,\n\t\tinitial: initialPosition,\n\t} );\n\tconst isResetPendent = useRef( false );\n\n\tlet hasTooltip = showTooltipProp;\n\tlet hasInputField = withInputField;\n\n\tif ( step === 'any' ) {\n\t\t// The tooltip and number input field are hidden when the step is \"any\"\n\t\t// because the decimals get too lengthy to fit well.\n\t\thasTooltip = false;\n\t\thasInputField = false;\n\t}\n\n\tconst [ showTooltip, setShowTooltip ] = useState( hasTooltip );\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\n\tconst inputRef = useRef< HTMLInputElement >();\n\tconst isCurrentlyFocused = inputRef.current?.matches( ':focus' );\n\tconst isThumbFocused = ! disabled && isFocused;\n\n\tconst isValueReset = value === null;\n\tconst currentValue = value !== undefined ? value : currentInput;\n\n\tconst inputSliderValue = isValueReset ? '' : currentValue;\n\tconst rangeFillValue = isValueReset ? ( max - min ) / 2 + min : value;\n\n\tconst fillValue = isValueReset\n\t\t? 50\n\t\t: ( ( value - min ) / ( max - min ) ) * 100;\n\tconst fillValueOffset = `${ clamp( fillValue, 0, 100 ) }%`;\n\n\tconst classes = classnames( 'components-range-control', className );\n\n\tconst wrapperClasses = classnames(\n\t\t'components-range-control__wrapper',\n\t\t!! marks && 'is-marked'\n\t);\n\n\tconst id = useInstanceId(\n\t\tUnforwardedRangeControl,\n\t\t'inspector-range-control'\n\t);\n\tconst describedBy = !! help ? `${ id }__help` : undefined;\n\tconst enableTooltip = hasTooltip !== false && Number.isFinite( value );\n\n\tconst handleOnRangeChange = ( event: ChangeEvent< HTMLInputElement > ) => {\n\t\tconst nextValue = parseFloat( event.target.value );\n\t\tsetValue( nextValue );\n\t\tonChange( nextValue );\n\t};\n\n\tconst handleOnChange = ( next?: string ) => {\n\t\t// @ts-expect-error TODO: Investigate if it's problematic for setValue() to\n\t\t// potentially receive a NaN when next is undefined.\n\t\tlet nextValue = parseFloat( next );\n\t\tsetValue( nextValue );\n\n\t\t/*\n\t\t * Calls onChange only when nextValue is numeric\n\t\t * otherwise may queue a reset for the blur event.\n\t\t */\n\t\tif ( ! isNaN( nextValue ) ) {\n\t\t\tif ( nextValue < min || nextValue > max ) {\n\t\t\t\tnextValue = floatClamp( nextValue, min, max ) as number;\n\t\t\t}\n\n\t\t\tonChange( nextValue );\n\t\t\tisResetPendent.current = false;\n\t\t} else if ( allowReset ) {\n\t\t\tisResetPendent.current = true;\n\t\t}\n\t};\n\n\tconst handleOnInputNumberBlur = () => {\n\t\tif ( isResetPendent.current ) {\n\t\t\thandleOnReset();\n\t\t\tisResetPendent.current = false;\n\t\t}\n\t};\n\n\tconst handleOnReset = () => {\n\t\tlet resetValue: number | null = parseFloat( `${ resetFallbackValue }` );\n\t\tlet onChangeResetValue: number | undefined = resetValue;\n\n\t\tif ( isNaN( resetValue ) ) {\n\t\t\tresetValue = null;\n\t\t\tonChangeResetValue = undefined;\n\t\t}\n\n\t\tsetValue( resetValue );\n\n\t\t/**\n\t\t * Previously, this callback would always receive undefined as\n\t\t * an argument. This behavior is unexpected, specifically\n\t\t * when resetFallbackValue is defined.\n\t\t *\n\t\t * The value of undefined is not ideal. Passing it through\n\t\t * to internal <input /> elements would change it from a\n\t\t * controlled component to an uncontrolled component.\n\t\t *\n\t\t * For now, to minimize unexpected regressions, we're going to\n\t\t * preserve the undefined callback argument, except when a\n\t\t * resetFallbackValue is defined.\n\t\t */\n\t\tonChange( onChangeResetValue );\n\t};\n\n\tconst handleShowTooltip = () => setShowTooltip( true );\n\tconst handleHideTooltip = () => setShowTooltip( false );\n\n\tconst handleOnBlur = ( event: FocusEvent< HTMLInputElement > ) => {\n\t\tonBlur( event );\n\t\tsetIsFocused( false );\n\t\thandleHideTooltip();\n\t};\n\n\tconst handleOnFocus = ( event: FocusEvent< HTMLInputElement > ) => {\n\t\tonFocus( event );\n\t\tsetIsFocused( true );\n\t\thandleShowTooltip();\n\t};\n\n\tconst offsetStyle = {\n\t\t[ isRTL() ? 'right' : 'left' ]: fillValueOffset,\n\t};\n\treturn (\n\t\t<BaseControl\n\t\t\t__nextHasNoMarginBottom={ __nextHasNoMarginBottom }\n\t\t\tclassName={ classes }\n\t\t\tlabel={ label }\n\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\tid={ `${ id }` }\n\t\t\thelp={ help }\n\t\t>\n\t\t\t<Root\n\t\t\t\tclassName=\"components-range-control__root\"\n\t\t\t\t__next40pxDefaultSize={ __next40pxDefaultSize }\n\t\t\t>\n\t\t\t\t{ beforeIcon && (\n\t\t\t\t\t<BeforeIconWrapper>\n\t\t\t\t\t\t<Icon icon={ beforeIcon } />\n\t\t\t\t\t</BeforeIconWrapper>\n\t\t\t\t) }\n\t\t\t\t<Wrapper\n\t\t\t\t\t__nextHasNoMarginBottom={ __nextHasNoMarginBottom }\n\t\t\t\t\tclassName={ wrapperClasses }\n\t\t\t\t\tcolor={ colorProp }\n\t\t\t\t\tmarks={ !! marks }\n\t\t\t\t>\n\t\t\t\t\t<InputRange\n\t\t\t\t\t\t{ ...otherProps }\n\t\t\t\t\t\tclassName=\"components-range-control__slider\"\n\t\t\t\t\t\tdescribedBy={ describedBy }\n\t\t\t\t\t\tdisabled={ disabled }\n\t\t\t\t\t\tid={ `${ id }` }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\tmax={ max }\n\t\t\t\t\t\tmin={ min }\n\t\t\t\t\t\tonBlur={ handleOnBlur }\n\t\t\t\t\t\tonChange={ handleOnRangeChange }\n\t\t\t\t\t\tonFocus={ handleOnFocus }\n\t\t\t\t\t\tonMouseMove={ onMouseMove }\n\t\t\t\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\t\t\t\tref={ useMergeRefs( [ inputRef, forwardedRef ] ) }\n\t\t\t\t\t\tstep={ step }\n\t\t\t\t\t\tvalue={ inputSliderValue ?? undefined }\n\t\t\t\t\t/>\n\t\t\t\t\t<RangeRail\n\t\t\t\t\t\taria-hidden={ true }\n\t\t\t\t\t\tdisabled={ disabled }\n\t\t\t\t\t\tmarks={ marks }\n\t\t\t\t\t\tmax={ max }\n\t\t\t\t\t\tmin={ min }\n\t\t\t\t\t\trailColor={ railColor }\n\t\t\t\t\t\tstep={ step }\n\t\t\t\t\t\tvalue={ rangeFillValue }\n\t\t\t\t\t/>\n\t\t\t\t\t<Track\n\t\t\t\t\t\taria-hidden={ true }\n\t\t\t\t\t\tclassName=\"components-range-control__track\"\n\t\t\t\t\t\tdisabled={ disabled }\n\t\t\t\t\t\tstyle={ { width: fillValueOffset } }\n\t\t\t\t\t\ttrackColor={ trackColor }\n\t\t\t\t\t/>\n\t\t\t\t\t<ThumbWrapper\n\t\t\t\t\t\tclassName=\"components-range-control__thumb-wrapper\"\n\t\t\t\t\t\tstyle={ offsetStyle }\n\t\t\t\t\t\tdisabled={ disabled }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Thumb\n\t\t\t\t\t\t\taria-hidden={ true }\n\t\t\t\t\t\t\tisFocused={ isThumbFocused }\n\t\t\t\t\t\t\tdisabled={ disabled }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ThumbWrapper>\n\t\t\t\t\t{ enableTooltip && (\n\t\t\t\t\t\t<SimpleTooltip\n\t\t\t\t\t\t\tclassName=\"components-range-control__tooltip\"\n\t\t\t\t\t\t\tinputRef={ inputRef }\n\t\t\t\t\t\t\ttooltipPosition=\"bottom\"\n\t\t\t\t\t\t\trenderTooltipContent={ renderTooltipContent }\n\t\t\t\t\t\t\tshow={ isCurrentlyFocused || showTooltip }\n\t\t\t\t\t\t\tstyle={ offsetStyle }\n\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</Wrapper>\n\t\t\t\t{ afterIcon && (\n\t\t\t\t\t<AfterIconWrapper>\n\t\t\t\t\t\t<Icon icon={ afterIcon } />\n\t\t\t\t\t</AfterIconWrapper>\n\t\t\t\t) }\n\t\t\t\t{ hasInputField && (\n\t\t\t\t\t<InputNumber\n\t\t\t\t\t\taria-label={ label }\n\t\t\t\t\t\tclassName=\"components-range-control__number\"\n\t\t\t\t\t\tdisabled={ disabled }\n\t\t\t\t\t\tinputMode=\"decimal\"\n\t\t\t\t\t\tisShiftStepEnabled={ isShiftStepEnabled }\n\t\t\t\t\t\tmax={ max }\n\t\t\t\t\t\tmin={ min }\n\t\t\t\t\t\tonBlur={ handleOnInputNumberBlur }\n\t\t\t\t\t\tonChange={ handleOnChange }\n\t\t\t\t\t\tshiftStep={ shiftStep }\n\t\t\t\t\t\tsize={\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t? '__unstable-large'\n\t\t\t\t\t\t\t\t: 'default'\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__unstableInputWidth={\n\t\t\t\t\t\t\t__next40pxDefaultSize ? space( 20 ) : space( 16 )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstep={ step }\n\t\t\t\t\t\t// @ts-expect-error TODO: Investigate if the `null` value is necessary\n\t\t\t\t\t\tvalue={ inputSliderValue }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ allowReset && (\n\t\t\t\t\t<ActionRightWrapper>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"components-range-control__reset\"\n\t\t\t\t\t\t\tdisabled={ disabled || value === undefined }\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tonClick={ handleOnReset }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</ActionRightWrapper>\n\t\t\t\t) }\n\t\t\t</Root>\n\t\t</BaseControl>\n\t);\n}\n\n/**\n * RangeControls are used to make selections from a range of incremental values.\n *\n * ```jsx\n * import { RangeControl } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyRangeControl = () => {\n * const [ isChecked, setChecked ] = useState( true );\n * return (\n * <RangeControl\n * help=\"Please select how transparent you would like this.\"\n * initialPosition={50}\n * label=\"Opacity\"\n * max={100}\n * min={0}\n * onChange={() => {}}\n * />\n * );\n * };\n * ```\n */\nexport const RangeControl = forwardRef( UnforwardedRangeControl );\n\nexport default RangeControl;\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","__","isRTL","useRef","useState","forwardRef","useInstanceId","useMergeRefs","BaseControl","Button","Icon","COLORS","floatClamp","useControlledRangeValue","clamp","InputRange","RangeRail","SimpleTooltip","ActionRightWrapper","AfterIconWrapper","BeforeIconWrapper","InputNumber","Root","Track","ThumbWrapper","Thumb","Wrapper","space","noop","UnforwardedRangeControl","props","forwardedRef","__nextHasNoMarginBottom","afterIcon","allowReset","beforeIcon","className","color","colorProp","theme","accent","currentInput","disabled","help","hideLabelFromVision","initialPosition","isShiftStepEnabled","label","marks","max","min","onBlur","onChange","onFocus","onMouseLeave","onMouseMove","railColor","renderTooltipContent","v","resetFallbackValue","__next40pxDefaultSize","shiftStep","showTooltip","showTooltipProp","step","trackColor","value","valueProp","withInputField","otherProps","setValue","initial","isResetPendent","hasTooltip","hasInputField","setShowTooltip","isFocused","setIsFocused","inputRef","isCurrentlyFocused","current","matches","isThumbFocused","isValueReset","currentValue","undefined","inputSliderValue","rangeFillValue","fillValue","fillValueOffset","classes","wrapperClasses","id","describedBy","enableTooltip","Number","isFinite","handleOnRangeChange","event","nextValue","parseFloat","target","handleOnChange","next","isNaN","handleOnInputNumberBlur","handleOnReset","resetValue","onChangeResetValue","handleShowTooltip","handleHideTooltip","handleOnBlur","handleOnFocus","offsetStyle","createElement","icon","ref","style","width","tooltipPosition","show","inputMode","size","__unstableInputWidth","variant","onClick","RangeControl"],"sources":["@wordpress/components/src/range-control/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport type { ChangeEvent, FocusEvent, ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport { useRef, useState, forwardRef } from '@wordpress/element';\nimport { useInstanceId, useMergeRefs } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BaseControl from '../base-control';\nimport Button from '../button';\nimport Icon from '../icon';\nimport { COLORS } from '../utils';\nimport { floatClamp, useControlledRangeValue } from './utils';\nimport { clamp } from '../utils/math';\nimport InputRange from './input-range';\nimport RangeRail from './rail';\nimport SimpleTooltip from './tooltip';\nimport {\n\tActionRightWrapper,\n\tAfterIconWrapper,\n\tBeforeIconWrapper,\n\tInputNumber,\n\tRoot,\n\tTrack,\n\tThumbWrapper,\n\tThumb,\n\tWrapper,\n} from './styles/range-control-styles';\n\nimport type { RangeControlProps } from './types';\nimport type { WordPressComponentProps } from '../context';\nimport { space } from '../utils/space';\n\nconst noop = () => {};\n\nfunction UnforwardedRangeControl(\n\tprops: WordPressComponentProps< RangeControlProps, 'input', false >,\n\tforwardedRef: ForwardedRef< HTMLInputElement >\n) {\n\tconst {\n\t\t__nextHasNoMarginBottom = false,\n\t\tafterIcon,\n\t\tallowReset = false,\n\t\tbeforeIcon,\n\t\tclassName,\n\t\tcolor: colorProp = COLORS.theme.accent,\n\t\tcurrentInput,\n\t\tdisabled = false,\n\t\thelp,\n\t\thideLabelFromVision = false,\n\t\tinitialPosition,\n\t\tisShiftStepEnabled = true,\n\t\tlabel,\n\t\tmarks = false,\n\t\tmax = 100,\n\t\tmin = 0,\n\t\tonBlur = noop,\n\t\tonChange = noop,\n\t\tonFocus = noop,\n\t\tonMouseLeave = noop,\n\t\tonMouseMove = noop,\n\t\trailColor,\n\t\trenderTooltipContent = ( v ) => v,\n\t\tresetFallbackValue,\n\t\t__next40pxDefaultSize = false,\n\t\tshiftStep = 10,\n\t\tshowTooltip: showTooltipProp,\n\t\tstep = 1,\n\t\ttrackColor,\n\t\tvalue: valueProp,\n\t\twithInputField = true,\n\t\t...otherProps\n\t} = props;\n\n\tconst [ value, setValue ] = useControlledRangeValue( {\n\t\tmin,\n\t\tmax,\n\t\tvalue: valueProp ?? null,\n\t\tinitial: initialPosition,\n\t} );\n\tconst isResetPendent = useRef( false );\n\n\tlet hasTooltip = showTooltipProp;\n\tlet hasInputField = withInputField;\n\n\tif ( step === 'any' ) {\n\t\t// The tooltip and number input field are hidden when the step is \"any\"\n\t\t// because the decimals get too lengthy to fit well.\n\t\thasTooltip = false;\n\t\thasInputField = false;\n\t}\n\n\tconst [ showTooltip, setShowTooltip ] = useState( hasTooltip );\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\n\tconst inputRef = useRef< HTMLInputElement >();\n\tconst isCurrentlyFocused = inputRef.current?.matches( ':focus' );\n\tconst isThumbFocused = ! disabled && isFocused;\n\n\tconst isValueReset = value === null;\n\tconst currentValue = value !== undefined ? value : currentInput;\n\n\tconst inputSliderValue = isValueReset ? '' : currentValue;\n\tconst rangeFillValue = isValueReset ? ( max - min ) / 2 + min : value;\n\n\tconst fillValue = isValueReset\n\t\t? 50\n\t\t: ( ( value - min ) / ( max - min ) ) * 100;\n\tconst fillValueOffset = `${ clamp( fillValue, 0, 100 ) }%`;\n\n\tconst classes = classnames( 'components-range-control', className );\n\n\tconst wrapperClasses = classnames(\n\t\t'components-range-control__wrapper',\n\t\t!! marks && 'is-marked'\n\t);\n\n\tconst id = useInstanceId(\n\t\tUnforwardedRangeControl,\n\t\t'inspector-range-control'\n\t);\n\tconst describedBy = !! help ? `${ id }__help` : undefined;\n\tconst enableTooltip = hasTooltip !== false && Number.isFinite( value );\n\n\tconst handleOnRangeChange = ( event: ChangeEvent< HTMLInputElement > ) => {\n\t\tconst nextValue = parseFloat( event.target.value );\n\t\tsetValue( nextValue );\n\t\tonChange( nextValue );\n\t};\n\n\tconst handleOnChange = ( next?: string ) => {\n\t\t// @ts-expect-error TODO: Investigate if it's problematic for setValue() to\n\t\t// potentially receive a NaN when next is undefined.\n\t\tlet nextValue = parseFloat( next );\n\t\tsetValue( nextValue );\n\n\t\t/*\n\t\t * Calls onChange only when nextValue is numeric\n\t\t * otherwise may queue a reset for the blur event.\n\t\t */\n\t\tif ( ! isNaN( nextValue ) ) {\n\t\t\tif ( nextValue < min || nextValue > max ) {\n\t\t\t\tnextValue = floatClamp( nextValue, min, max ) as number;\n\t\t\t}\n\n\t\t\tonChange( nextValue );\n\t\t\tisResetPendent.current = false;\n\t\t} else if ( allowReset ) {\n\t\t\tisResetPendent.current = true;\n\t\t}\n\t};\n\n\tconst handleOnInputNumberBlur = () => {\n\t\tif ( isResetPendent.current ) {\n\t\t\thandleOnReset();\n\t\t\tisResetPendent.current = false;\n\t\t}\n\t};\n\n\tconst handleOnReset = () => {\n\t\tlet resetValue: number | null = parseFloat( `${ resetFallbackValue }` );\n\t\tlet onChangeResetValue: number | undefined = resetValue;\n\n\t\tif ( isNaN( resetValue ) ) {\n\t\t\tresetValue = null;\n\t\t\tonChangeResetValue = undefined;\n\t\t}\n\n\t\tsetValue( resetValue );\n\n\t\t/**\n\t\t * Previously, this callback would always receive undefined as\n\t\t * an argument. This behavior is unexpected, specifically\n\t\t * when resetFallbackValue is defined.\n\t\t *\n\t\t * The value of undefined is not ideal. Passing it through\n\t\t * to internal <input /> elements would change it from a\n\t\t * controlled component to an uncontrolled component.\n\t\t *\n\t\t * For now, to minimize unexpected regressions, we're going to\n\t\t * preserve the undefined callback argument, except when a\n\t\t * resetFallbackValue is defined.\n\t\t */\n\t\tonChange( onChangeResetValue );\n\t};\n\n\tconst handleShowTooltip = () => setShowTooltip( true );\n\tconst handleHideTooltip = () => setShowTooltip( false );\n\n\tconst handleOnBlur = ( event: FocusEvent< HTMLInputElement > ) => {\n\t\tonBlur( event );\n\t\tsetIsFocused( false );\n\t\thandleHideTooltip();\n\t};\n\n\tconst handleOnFocus = ( event: FocusEvent< HTMLInputElement > ) => {\n\t\tonFocus( event );\n\t\tsetIsFocused( true );\n\t\thandleShowTooltip();\n\t};\n\n\tconst offsetStyle = {\n\t\t[ isRTL() ? 'right' : 'left' ]: fillValueOffset,\n\t};\n\treturn (\n\t\t<BaseControl\n\t\t\t__nextHasNoMarginBottom={ __nextHasNoMarginBottom }\n\t\t\tclassName={ classes }\n\t\t\tlabel={ label }\n\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\tid={ `${ id }` }\n\t\t\thelp={ help }\n\t\t>\n\t\t\t<Root\n\t\t\t\tclassName=\"components-range-control__root\"\n\t\t\t\t__next40pxDefaultSize={ __next40pxDefaultSize }\n\t\t\t>\n\t\t\t\t{ beforeIcon && (\n\t\t\t\t\t<BeforeIconWrapper>\n\t\t\t\t\t\t<Icon icon={ beforeIcon } />\n\t\t\t\t\t</BeforeIconWrapper>\n\t\t\t\t) }\n\t\t\t\t<Wrapper\n\t\t\t\t\t__nextHasNoMarginBottom={ __nextHasNoMarginBottom }\n\t\t\t\t\tclassName={ wrapperClasses }\n\t\t\t\t\tcolor={ colorProp }\n\t\t\t\t\tmarks={ !! marks }\n\t\t\t\t>\n\t\t\t\t\t<InputRange\n\t\t\t\t\t\t{ ...otherProps }\n\t\t\t\t\t\tclassName=\"components-range-control__slider\"\n\t\t\t\t\t\tdescribedBy={ describedBy }\n\t\t\t\t\t\tdisabled={ disabled }\n\t\t\t\t\t\tid={ `${ id }` }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\tmax={ max }\n\t\t\t\t\t\tmin={ min }\n\t\t\t\t\t\tonBlur={ handleOnBlur }\n\t\t\t\t\t\tonChange={ handleOnRangeChange }\n\t\t\t\t\t\tonFocus={ handleOnFocus }\n\t\t\t\t\t\tonMouseMove={ onMouseMove }\n\t\t\t\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\t\t\t\tref={ useMergeRefs( [ inputRef, forwardedRef ] ) }\n\t\t\t\t\t\tstep={ step }\n\t\t\t\t\t\tvalue={ inputSliderValue ?? undefined }\n\t\t\t\t\t/>\n\t\t\t\t\t<RangeRail\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t\tdisabled={ disabled }\n\t\t\t\t\t\tmarks={ marks }\n\t\t\t\t\t\tmax={ max }\n\t\t\t\t\t\tmin={ min }\n\t\t\t\t\t\trailColor={ railColor }\n\t\t\t\t\t\tstep={ step }\n\t\t\t\t\t\tvalue={ rangeFillValue }\n\t\t\t\t\t/>\n\t\t\t\t\t<Track\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t\tclassName=\"components-range-control__track\"\n\t\t\t\t\t\tdisabled={ disabled }\n\t\t\t\t\t\tstyle={ { width: fillValueOffset } }\n\t\t\t\t\t\ttrackColor={ trackColor }\n\t\t\t\t\t/>\n\t\t\t\t\t<ThumbWrapper\n\t\t\t\t\t\tclassName=\"components-range-control__thumb-wrapper\"\n\t\t\t\t\t\tstyle={ offsetStyle }\n\t\t\t\t\t\tdisabled={ disabled }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Thumb\n\t\t\t\t\t\t\taria-hidden\n\t\t\t\t\t\t\tisFocused={ isThumbFocused }\n\t\t\t\t\t\t\tdisabled={ disabled }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ThumbWrapper>\n\t\t\t\t\t{ enableTooltip && (\n\t\t\t\t\t\t<SimpleTooltip\n\t\t\t\t\t\t\tclassName=\"components-range-control__tooltip\"\n\t\t\t\t\t\t\tinputRef={ inputRef }\n\t\t\t\t\t\t\ttooltipPosition=\"bottom\"\n\t\t\t\t\t\t\trenderTooltipContent={ renderTooltipContent }\n\t\t\t\t\t\t\tshow={ isCurrentlyFocused || showTooltip }\n\t\t\t\t\t\t\tstyle={ offsetStyle }\n\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</Wrapper>\n\t\t\t\t{ afterIcon && (\n\t\t\t\t\t<AfterIconWrapper>\n\t\t\t\t\t\t<Icon icon={ afterIcon } />\n\t\t\t\t\t</AfterIconWrapper>\n\t\t\t\t) }\n\t\t\t\t{ hasInputField && (\n\t\t\t\t\t<InputNumber\n\t\t\t\t\t\taria-label={ label }\n\t\t\t\t\t\tclassName=\"components-range-control__number\"\n\t\t\t\t\t\tdisabled={ disabled }\n\t\t\t\t\t\tinputMode=\"decimal\"\n\t\t\t\t\t\tisShiftStepEnabled={ isShiftStepEnabled }\n\t\t\t\t\t\tmax={ max }\n\t\t\t\t\t\tmin={ min }\n\t\t\t\t\t\tonBlur={ handleOnInputNumberBlur }\n\t\t\t\t\t\tonChange={ handleOnChange }\n\t\t\t\t\t\tshiftStep={ shiftStep }\n\t\t\t\t\t\tsize={\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t? '__unstable-large'\n\t\t\t\t\t\t\t\t: 'default'\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__unstableInputWidth={\n\t\t\t\t\t\t\t__next40pxDefaultSize ? space( 20 ) : space( 16 )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstep={ step }\n\t\t\t\t\t\t// @ts-expect-error TODO: Investigate if the `null` value is necessary\n\t\t\t\t\t\tvalue={ inputSliderValue }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ allowReset && (\n\t\t\t\t\t<ActionRightWrapper>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"components-range-control__reset\"\n\t\t\t\t\t\t\tdisabled={ disabled || value === undefined }\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tonClick={ handleOnReset }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</ActionRightWrapper>\n\t\t\t\t) }\n\t\t\t</Root>\n\t\t</BaseControl>\n\t);\n}\n\n/**\n * RangeControls are used to make selections from a range of incremental values.\n *\n * ```jsx\n * import { RangeControl } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyRangeControl = () => {\n * const [ isChecked, setChecked ] = useState( true );\n * return (\n * <RangeControl\n * help=\"Please select how transparent you would like this.\"\n * initialPosition={50}\n * label=\"Opacity\"\n * max={100}\n * min={0}\n * onChange={() => {}}\n * />\n * );\n * };\n * ```\n */\nexport const RangeControl = forwardRef( UnforwardedRangeControl );\n\nexport default RangeControl;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["TextInput","Text","View","TouchableOpacity","Platform","useColorScheme","Keyboard","useState","useRef","useMemo","useEffect","useCallback","__","Button","Gridicons","Icon","cancelCircleFilled","cancelCircleFilledIcon","arrowLeft","arrowLeftIcon","close","closeIcon","allStyles","platformStyles","baseStyles","selector","selectModifiedStyles","styles","modifier","modifierMatcher","RegExp","modifierSelectors","Object","keys","filter","match","reduce","modifiedStyles","modifierSelector","blockElementSelector","split","mergeStyles","updateStyles","selectors","forEach","SearchControl","value","onChange","placeholder","isActive","setIsActive","currentStyles","setCurrentStyles","isDark","inputRef","onCancelTimer","isIOS","OS","darkStyles","activeStyles","activeDarkStyles","futureStyles","mergeFutureStyles","shouldUseConditions","shouldUseModified","every","should","updatedStyles","clearInput","onPress","current","focus","onFocus","onCancel","clearTimeout","setTimeout","blur","onKeyboardDidHide","keyboardHideSubscription","addListener","remove","containerStyle","innerContainerStyle","inputContainerStyle","formInputStyle","placeholderStyle","inputButtonStyle","inputButtonLeftStyle","inputButtonRightStyle","cancelButtonStyle","cancelButtonTextStyle","iconStyle","rightIconStyle","renderLeftButton","button","createElement","label","icon","onClick","style","search","fill","color","renderRightButton","renderCancel","accessible","accessibilityRole","accessibilityLabel","accessibilityHint","activeOpacity","ref","placeholderTextColor","onChangeText"],"sources":["@wordpress/components/src/search-control/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tTextInput,\n\tText,\n\tView,\n\tTouchableOpacity,\n\tPlatform,\n\tuseColorScheme,\n\tKeyboard,\n} from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tuseRef,\n\tuseMemo,\n\tuseEffect,\n\tuseCallback,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Button, Gridicons } from '@wordpress/components';\nimport {\n\tIcon,\n\tcancelCircleFilled as cancelCircleFilledIcon,\n\tarrowLeft as arrowLeftIcon,\n\tclose as closeIcon,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport allStyles from './style.scss';\nimport platformStyles from './platform-style.scss';\n\n// Merge platform specific styles with the default styles.\nconst baseStyles = { ...allStyles };\nfor ( const selector in platformStyles ) {\n\tbaseStyles[ selector ] = {\n\t\t...baseStyles[ selector ],\n\t\t...platformStyles[ selector ],\n\t};\n}\n\nfunction selectModifiedStyles( styles, modifier ) {\n\tconst modifierMatcher = new RegExp( `--${ modifier }$` );\n\tconst modifierSelectors = Object.keys( styles ).filter( ( selector ) =>\n\t\tselector.match( modifierMatcher )\n\t);\n\n\treturn modifierSelectors.reduce( ( modifiedStyles, modifierSelector ) => {\n\t\tconst blockElementSelector = modifierSelector.split( '--' )[ 0 ];\n\t\tmodifiedStyles[ blockElementSelector ] = styles[ modifierSelector ];\n\t\treturn modifiedStyles;\n\t}, {} );\n}\n\nfunction mergeStyles( styles, updateStyles, selectors ) {\n\tselectors.forEach( ( selector ) => {\n\t\tstyles[ selector ] = {\n\t\t\t...styles[ selector ],\n\t\t\t...updateStyles[ selector ],\n\t\t};\n\t} );\n\n\treturn styles;\n}\n\nfunction SearchControl( {\n\tvalue,\n\tonChange,\n\tplaceholder = __( 'Search blocks' ),\n} ) {\n\tconst [ isActive, setIsActive ] = useState( false );\n\tconst [ currentStyles, setCurrentStyles ] = useState( baseStyles );\n\n\tconst isDark = useColorScheme() === 'dark';\n\tconst inputRef = useRef();\n\tconst onCancelTimer = useRef();\n\n\tconst isIOS = Platform.OS === 'ios';\n\n\tconst darkStyles = useMemo( () => {\n\t\treturn selectModifiedStyles( baseStyles, 'dark' );\n\t}, [] );\n\n\tconst activeStyles = useMemo( () => {\n\t\treturn selectModifiedStyles( baseStyles, 'active' );\n\t}, [] );\n\n\tconst activeDarkStyles = useMemo( () => {\n\t\treturn selectModifiedStyles( baseStyles, 'active-dark' );\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tlet futureStyles = { ...baseStyles };\n\n\t\tfunction mergeFutureStyles( modifiedStyles, shouldUseConditions ) {\n\t\t\tconst shouldUseModified = shouldUseConditions.every(\n\t\t\t\t( should ) => should\n\t\t\t);\n\n\t\t\tconst updatedStyles = shouldUseModified\n\t\t\t\t? modifiedStyles\n\t\t\t\t: futureStyles;\n\n\t\t\tconst selectors = Object.keys( modifiedStyles );\n\n\t\t\tfutureStyles = mergeStyles(\n\t\t\t\tfutureStyles,\n\t\t\t\tupdatedStyles,\n\t\t\t\tselectors\n\t\t\t);\n\t\t}\n\n\t\tmergeFutureStyles( activeStyles, [ isActive ] );\n\t\tmergeFutureStyles( darkStyles, [ isDark ] );\n\t\tmergeFutureStyles( activeDarkStyles, [ isActive, isDark ] );\n\n\t\tsetCurrentStyles( futureStyles );\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ isActive, isDark ] );\n\n\tconst clearInput = useCallback( () => {\n\t\tonChange( '' );\n\t}, [ onChange ] );\n\n\tconst onPress = useCallback( () => {\n\t\tsetIsActive( true );\n\t\tinputRef.current?.focus();\n\t}, [] );\n\n\tconst onFocus = useCallback( () => {\n\t\tsetIsActive( true );\n\t}, [] );\n\n\tconst onCancel = useCallback( () => {\n\t\tclearTimeout( onCancelTimer.current );\n\t\tonCancelTimer.current = setTimeout( () => {\n\t\t\tinputRef.current?.blur();\n\t\t\tclearInput();\n\t\t\tsetIsActive( false );\n\t\t}, 0 );\n\t}, [ clearInput ] );\n\n\tconst onKeyboardDidHide = useCallback( () => {\n\t\tif ( ! isIOS ) {\n\t\t\tonCancel();\n\t\t}\n\t}, [ isIOS, onCancel ] );\n\n\tuseEffect( () => {\n\t\tconst keyboardHideSubscription = Keyboard.addListener(\n\t\t\t'keyboardDidHide',\n\t\t\tonKeyboardDidHide\n\t\t);\n\t\treturn () => {\n\t\t\tclearTimeout( onCancelTimer.current );\n\t\t\tkeyboardHideSubscription.remove();\n\t\t};\n\t}, [ onKeyboardDidHide ] );\n\n\tconst {\n\t\t'search-control__container': containerStyle,\n\t\t'search-control__inner-container': innerContainerStyle,\n\t\t'search-control__input-container': inputContainerStyle,\n\t\t'search-control__form-input': formInputStyle,\n\t\t'search-control__form-input-placeholder': placeholderStyle,\n\t\t'search-control__input-button': inputButtonStyle,\n\t\t'search-control__input-button-left': inputButtonLeftStyle,\n\t\t'search-control__input-button-right': inputButtonRightStyle,\n\t\t'search-control__cancel-button': cancelButtonStyle,\n\t\t'search-control__cancel-button-text': cancelButtonTextStyle,\n\t\t'search-control__icon': iconStyle,\n\t\t'search-control__right-icon': rightIconStyle,\n\t} = currentStyles;\n\n\tfunction renderLeftButton() {\n\t\tconst button =\n\t\t\t! isIOS && isActive ? (\n\t\t\t\t<Button\n\t\t\t\t\tlabel={ __( 'Cancel search' ) }\n\t\t\t\t\ticon={ arrowLeftIcon }\n\t\t\t\t\tonClick={ onCancel }\n\t\t\t\t\tstyle={ iconStyle }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<Icon icon={ Gridicons.search } fill={ iconStyle?.color } />\n\t\t\t);\n\n\t\treturn (\n\t\t\t<View style={ [ inputButtonStyle, inputButtonLeftStyle ] }>\n\t\t\t\t{ button }\n\t\t\t</View>\n\t\t);\n\t}\n\n\tfunction renderRightButton() {\n\t\tlet button;\n\n\t\t// Add a View element to properly center the input placeholder via flexbox.\n\t\tif ( isIOS && ! isActive ) {\n\t\t\tbutton = <View />;\n\t\t}\n\n\t\tif ( !! value ) {\n\t\t\tbutton = (\n\t\t\t\t<Button\n\t\t\t\t\tlabel={ __( 'Clear search' ) }\n\t\t\t\t\ticon={ isIOS ? cancelCircleFilledIcon : closeIcon }\n\t\t\t\t\tonClick={ clearInput }\n\t\t\t\t\tstyle={ [ iconStyle, rightIconStyle ] }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<View style={ [ inputButtonStyle, inputButtonRightStyle ] }>\n\t\t\t\t{ button }\n\t\t\t</View>\n\t\t);\n\t}\n\n\tfunction renderCancel() {\n\t\tif ( ! isIOS ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<View style={ cancelButtonStyle }>\n\t\t\t\t<Text\n\t\t\t\t\tonPress={ onCancel }\n\t\t\t\t\tstyle={ cancelButtonTextStyle }\n\t\t\t\t\taccessible={ true }\n\t\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t\t\taccessibilityLabel={ __( 'Cancel search' ) }\n\t\t\t\t\taccessibilityHint={ __( 'Cancel search' ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</Text>\n\t\t\t</View>\n\t\t);\n\t}\n\n\treturn (\n\t\t<TouchableOpacity\n\t\t\tstyle={ containerStyle }\n\t\t\tonPress={ onPress }\n\t\t\tactiveOpacity={ 1 }\n\t\t>\n\t\t\t<View style={ innerContainerStyle }>\n\t\t\t\t<View style={ inputContainerStyle }>\n\t\t\t\t\t{ renderLeftButton() }\n\t\t\t\t\t<TextInput\n\t\t\t\t\t\tref={ inputRef }\n\t\t\t\t\t\tstyle={ formInputStyle }\n\t\t\t\t\t\tplaceholderTextColor={ placeholderStyle?.color }\n\t\t\t\t\t\tonChangeText={ onChange }\n\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\t/>\n\t\t\t\t\t{ renderRightButton() }\n\t\t\t\t</View>\n\t\t\t\t{ isActive && renderCancel() }\n\t\t\t</View>\n\t\t</TouchableOpacity>\n\t);\n}\n\nexport default SearchControl;\n"],"mappings":"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"}
1
+ {"version":3,"names":["TextInput","Text","View","TouchableOpacity","Platform","useColorScheme","Keyboard","useState","useRef","useMemo","useEffect","useCallback","__","Button","Gridicons","Icon","cancelCircleFilled","cancelCircleFilledIcon","arrowLeft","arrowLeftIcon","close","closeIcon","allStyles","platformStyles","baseStyles","selector","selectModifiedStyles","styles","modifier","modifierMatcher","RegExp","modifierSelectors","Object","keys","filter","match","reduce","modifiedStyles","modifierSelector","blockElementSelector","split","mergeStyles","updateStyles","selectors","forEach","SearchControl","value","onChange","placeholder","isActive","setIsActive","currentStyles","setCurrentStyles","isDark","inputRef","onCancelTimer","isIOS","OS","darkStyles","activeStyles","activeDarkStyles","futureStyles","mergeFutureStyles","shouldUseConditions","shouldUseModified","every","should","updatedStyles","clearInput","onPress","current","focus","onFocus","onCancel","clearTimeout","setTimeout","blur","onKeyboardDidHide","keyboardHideSubscription","addListener","remove","containerStyle","innerContainerStyle","inputContainerStyle","formInputStyle","placeholderStyle","inputButtonStyle","inputButtonLeftStyle","inputButtonRightStyle","cancelButtonStyle","cancelButtonTextStyle","iconStyle","rightIconStyle","renderLeftButton","button","createElement","label","icon","onClick","style","search","fill","color","renderRightButton","renderCancel","accessible","accessibilityRole","accessibilityLabel","accessibilityHint","activeOpacity","ref","placeholderTextColor","onChangeText"],"sources":["@wordpress/components/src/search-control/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tTextInput,\n\tText,\n\tView,\n\tTouchableOpacity,\n\tPlatform,\n\tuseColorScheme,\n\tKeyboard,\n} from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tuseRef,\n\tuseMemo,\n\tuseEffect,\n\tuseCallback,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Button, Gridicons } from '@wordpress/components';\nimport {\n\tIcon,\n\tcancelCircleFilled as cancelCircleFilledIcon,\n\tarrowLeft as arrowLeftIcon,\n\tclose as closeIcon,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport allStyles from './style.scss';\nimport platformStyles from './platform-style.scss';\n\n// Merge platform specific styles with the default styles.\nconst baseStyles = { ...allStyles };\nfor ( const selector in platformStyles ) {\n\tbaseStyles[ selector ] = {\n\t\t...baseStyles[ selector ],\n\t\t...platformStyles[ selector ],\n\t};\n}\n\nfunction selectModifiedStyles( styles, modifier ) {\n\tconst modifierMatcher = new RegExp( `--${ modifier }$` );\n\tconst modifierSelectors = Object.keys( styles ).filter( ( selector ) =>\n\t\tselector.match( modifierMatcher )\n\t);\n\n\treturn modifierSelectors.reduce( ( modifiedStyles, modifierSelector ) => {\n\t\tconst blockElementSelector = modifierSelector.split( '--' )[ 0 ];\n\t\tmodifiedStyles[ blockElementSelector ] = styles[ modifierSelector ];\n\t\treturn modifiedStyles;\n\t}, {} );\n}\n\nfunction mergeStyles( styles, updateStyles, selectors ) {\n\tselectors.forEach( ( selector ) => {\n\t\tstyles[ selector ] = {\n\t\t\t...styles[ selector ],\n\t\t\t...updateStyles[ selector ],\n\t\t};\n\t} );\n\n\treturn styles;\n}\n\nfunction SearchControl( {\n\tvalue,\n\tonChange,\n\tplaceholder = __( 'Search blocks' ),\n} ) {\n\tconst [ isActive, setIsActive ] = useState( false );\n\tconst [ currentStyles, setCurrentStyles ] = useState( baseStyles );\n\n\tconst isDark = useColorScheme() === 'dark';\n\tconst inputRef = useRef();\n\tconst onCancelTimer = useRef();\n\n\tconst isIOS = Platform.OS === 'ios';\n\n\tconst darkStyles = useMemo( () => {\n\t\treturn selectModifiedStyles( baseStyles, 'dark' );\n\t}, [] );\n\n\tconst activeStyles = useMemo( () => {\n\t\treturn selectModifiedStyles( baseStyles, 'active' );\n\t}, [] );\n\n\tconst activeDarkStyles = useMemo( () => {\n\t\treturn selectModifiedStyles( baseStyles, 'active-dark' );\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tlet futureStyles = { ...baseStyles };\n\n\t\tfunction mergeFutureStyles( modifiedStyles, shouldUseConditions ) {\n\t\t\tconst shouldUseModified = shouldUseConditions.every(\n\t\t\t\t( should ) => should\n\t\t\t);\n\n\t\t\tconst updatedStyles = shouldUseModified\n\t\t\t\t? modifiedStyles\n\t\t\t\t: futureStyles;\n\n\t\t\tconst selectors = Object.keys( modifiedStyles );\n\n\t\t\tfutureStyles = mergeStyles(\n\t\t\t\tfutureStyles,\n\t\t\t\tupdatedStyles,\n\t\t\t\tselectors\n\t\t\t);\n\t\t}\n\n\t\tmergeFutureStyles( activeStyles, [ isActive ] );\n\t\tmergeFutureStyles( darkStyles, [ isDark ] );\n\t\tmergeFutureStyles( activeDarkStyles, [ isActive, isDark ] );\n\n\t\tsetCurrentStyles( futureStyles );\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ isActive, isDark ] );\n\n\tconst clearInput = useCallback( () => {\n\t\tonChange( '' );\n\t}, [ onChange ] );\n\n\tconst onPress = useCallback( () => {\n\t\tsetIsActive( true );\n\t\tinputRef.current?.focus();\n\t}, [] );\n\n\tconst onFocus = useCallback( () => {\n\t\tsetIsActive( true );\n\t}, [] );\n\n\tconst onCancel = useCallback( () => {\n\t\tclearTimeout( onCancelTimer.current );\n\t\tonCancelTimer.current = setTimeout( () => {\n\t\t\tinputRef.current?.blur();\n\t\t\tclearInput();\n\t\t\tsetIsActive( false );\n\t\t}, 0 );\n\t}, [ clearInput ] );\n\n\tconst onKeyboardDidHide = useCallback( () => {\n\t\tif ( ! isIOS ) {\n\t\t\tonCancel();\n\t\t}\n\t}, [ isIOS, onCancel ] );\n\n\tuseEffect( () => {\n\t\tconst keyboardHideSubscription = Keyboard.addListener(\n\t\t\t'keyboardDidHide',\n\t\t\tonKeyboardDidHide\n\t\t);\n\t\treturn () => {\n\t\t\tclearTimeout( onCancelTimer.current );\n\t\t\tkeyboardHideSubscription.remove();\n\t\t};\n\t}, [ onKeyboardDidHide ] );\n\n\tconst {\n\t\t'search-control__container': containerStyle,\n\t\t'search-control__inner-container': innerContainerStyle,\n\t\t'search-control__input-container': inputContainerStyle,\n\t\t'search-control__form-input': formInputStyle,\n\t\t'search-control__form-input-placeholder': placeholderStyle,\n\t\t'search-control__input-button': inputButtonStyle,\n\t\t'search-control__input-button-left': inputButtonLeftStyle,\n\t\t'search-control__input-button-right': inputButtonRightStyle,\n\t\t'search-control__cancel-button': cancelButtonStyle,\n\t\t'search-control__cancel-button-text': cancelButtonTextStyle,\n\t\t'search-control__icon': iconStyle,\n\t\t'search-control__right-icon': rightIconStyle,\n\t} = currentStyles;\n\n\tfunction renderLeftButton() {\n\t\tconst button =\n\t\t\t! isIOS && isActive ? (\n\t\t\t\t<Button\n\t\t\t\t\tlabel={ __( 'Cancel search' ) }\n\t\t\t\t\ticon={ arrowLeftIcon }\n\t\t\t\t\tonClick={ onCancel }\n\t\t\t\t\tstyle={ iconStyle }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<Icon icon={ Gridicons.search } fill={ iconStyle?.color } />\n\t\t\t);\n\n\t\treturn (\n\t\t\t<View style={ [ inputButtonStyle, inputButtonLeftStyle ] }>\n\t\t\t\t{ button }\n\t\t\t</View>\n\t\t);\n\t}\n\n\tfunction renderRightButton() {\n\t\tlet button;\n\n\t\t// Add a View element to properly center the input placeholder via flexbox.\n\t\tif ( isIOS && ! isActive ) {\n\t\t\tbutton = <View />;\n\t\t}\n\n\t\tif ( !! value ) {\n\t\t\tbutton = (\n\t\t\t\t<Button\n\t\t\t\t\tlabel={ __( 'Clear search' ) }\n\t\t\t\t\ticon={ isIOS ? cancelCircleFilledIcon : closeIcon }\n\t\t\t\t\tonClick={ clearInput }\n\t\t\t\t\tstyle={ [ iconStyle, rightIconStyle ] }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<View style={ [ inputButtonStyle, inputButtonRightStyle ] }>\n\t\t\t\t{ button }\n\t\t\t</View>\n\t\t);\n\t}\n\n\tfunction renderCancel() {\n\t\tif ( ! isIOS ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<View style={ cancelButtonStyle }>\n\t\t\t\t<Text\n\t\t\t\t\tonPress={ onCancel }\n\t\t\t\t\tstyle={ cancelButtonTextStyle }\n\t\t\t\t\taccessible\n\t\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t\t\taccessibilityLabel={ __( 'Cancel search' ) }\n\t\t\t\t\taccessibilityHint={ __( 'Cancel search' ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</Text>\n\t\t\t</View>\n\t\t);\n\t}\n\n\treturn (\n\t\t<TouchableOpacity\n\t\t\tstyle={ containerStyle }\n\t\t\tonPress={ onPress }\n\t\t\tactiveOpacity={ 1 }\n\t\t>\n\t\t\t<View style={ innerContainerStyle }>\n\t\t\t\t<View style={ inputContainerStyle }>\n\t\t\t\t\t{ renderLeftButton() }\n\t\t\t\t\t<TextInput\n\t\t\t\t\t\tref={ inputRef }\n\t\t\t\t\t\tstyle={ formInputStyle }\n\t\t\t\t\t\tplaceholderTextColor={ placeholderStyle?.color }\n\t\t\t\t\t\tonChangeText={ onChange }\n\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\t/>\n\t\t\t\t\t{ renderRightButton() }\n\t\t\t\t</View>\n\t\t\t\t{ isActive && renderCancel() }\n\t\t\t</View>\n\t\t</TouchableOpacity>\n\t);\n}\n\nexport default SearchControl;\n"],"mappings":"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"}
@@ -107,9 +107,10 @@ function UnforwardedSnackbar({
107
107
  className: classes,
108
108
  onClick: !explicitDismiss ? dismissMe : undefined,
109
109
  tabIndex: 0,
110
- role: !explicitDismiss ? 'button' : '',
110
+ role: !explicitDismiss ? 'button' : undefined,
111
111
  onKeyPress: !explicitDismiss ? dismissMe : undefined,
112
- "aria-label": !explicitDismiss ? __('Dismiss this notice') : ''
112
+ "aria-label": !explicitDismiss ? __('Dismiss this notice') : undefined,
113
+ "data-testid": "snackbar"
113
114
  }, createElement("div", {
114
115
  className: snackbarContentClassnames
115
116
  }, icon && createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","speak","useEffect","useLayoutEffect","useRef","forwardRef","renderToString","__","warning","Button","NOTICE_TIMEOUT","useSpokenMessage","message","politeness","spokenMessage","UnforwardedSnackbar","className","children","actions","onRemove","icon","explicitDismiss","onDismiss","listRef","ref","dismissMe","event","preventDefault","current","focus","onActionClick","onClick","stopPropagation","callbackRefs","timeoutHandle","setTimeout","clearTimeout","classes","length","SCRIPT_DEBUG","snackbarContentClassnames","createElement","undefined","tabIndex","role","onKeyPress","map","label","url","index","key","href","variant","Snackbar"],"sources":["@wordpress/components/src/snackbar/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef, KeyboardEvent, MouseEvent } from 'react';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { speak } from '@wordpress/a11y';\nimport {\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseRef,\n\tforwardRef,\n\trenderToString,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport type { SnackbarProps } from './types';\nimport type { NoticeAction } from '../notice/types';\nimport type { WordPressComponentProps } from '../context';\n\nconst NOTICE_TIMEOUT = 10000;\n\n/**\n * Custom hook which announces the message with the given politeness, if a\n * valid message is provided.\n *\n * @param message Message to announce.\n * @param politeness Politeness to announce.\n */\nfunction useSpokenMessage(\n\tmessage: SnackbarProps[ 'spokenMessage' ],\n\tpoliteness: NonNullable< SnackbarProps[ 'politeness' ] >\n) {\n\tconst spokenMessage =\n\t\ttypeof message === 'string' ? message : renderToString( message );\n\n\tuseEffect( () => {\n\t\tif ( spokenMessage ) {\n\t\t\tspeak( spokenMessage, politeness );\n\t\t}\n\t}, [ spokenMessage, politeness ] );\n}\n\nfunction UnforwardedSnackbar(\n\t{\n\t\tclassName,\n\t\tchildren,\n\t\tspokenMessage = children,\n\t\tpoliteness = 'polite',\n\t\tactions = [],\n\t\tonRemove,\n\t\ticon = null,\n\t\texplicitDismiss = false,\n\t\t// onDismiss is a callback executed when the snackbar is dismissed.\n\t\t// It is distinct from onRemove, which _looks_ like a callback but is\n\t\t// actually the function to call to remove the snackbar from the UI.\n\t\tonDismiss,\n\t\tlistRef,\n\t}: WordPressComponentProps< SnackbarProps, 'div' >,\n\tref: ForwardedRef< any >\n) {\n\tfunction dismissMe( event: KeyboardEvent | MouseEvent ) {\n\t\tif ( event && event.preventDefault ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\t// Prevent focus loss by moving it to the list element.\n\t\tlistRef?.current?.focus();\n\n\t\tonDismiss?.();\n\t\tonRemove?.();\n\t}\n\n\tfunction onActionClick(\n\t\tevent: MouseEvent< HTMLButtonElement >,\n\t\tonClick: NoticeAction[ 'onClick' ]\n\t) {\n\t\tevent.stopPropagation();\n\n\t\tonRemove?.();\n\n\t\tif ( onClick ) {\n\t\t\tonClick( event );\n\t\t}\n\t}\n\n\tuseSpokenMessage( spokenMessage, politeness );\n\n\t// The `onDismiss/onRemove` can have unstable references,\n\t// trigger side-effect cleanup, and reset timers.\n\tconst callbackRefs = useRef( { onDismiss, onRemove } );\n\tuseLayoutEffect( () => {\n\t\tcallbackRefs.current = { onDismiss, onRemove };\n\t} );\n\n\tuseEffect( () => {\n\t\t// Only set up the timeout dismiss if we're not explicitly dismissing.\n\t\tconst timeoutHandle = setTimeout( () => {\n\t\t\tif ( ! explicitDismiss ) {\n\t\t\t\tcallbackRefs.current.onDismiss?.();\n\t\t\t\tcallbackRefs.current.onRemove?.();\n\t\t\t}\n\t\t}, NOTICE_TIMEOUT );\n\n\t\treturn () => clearTimeout( timeoutHandle );\n\t}, [ explicitDismiss ] );\n\n\tconst classes = classnames( className, 'components-snackbar', {\n\t\t'components-snackbar-explicit-dismiss': !! explicitDismiss,\n\t} );\n\tif ( actions && actions.length > 1 ) {\n\t\t// We need to inform developers that snackbar only accepts 1 action.\n\t\twarning(\n\t\t\t'Snackbar can only have one action. Use Notice if your message requires many actions.'\n\t\t);\n\t\t// return first element only while keeping it inside an array\n\t\tactions = [ actions[ 0 ] ];\n\t}\n\n\tconst snackbarContentClassnames = classnames(\n\t\t'components-snackbar__content',\n\t\t{\n\t\t\t'components-snackbar__content-with-icon': !! icon,\n\t\t}\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tref={ ref }\n\t\t\tclassName={ classes }\n\t\t\tonClick={ ! explicitDismiss ? dismissMe : undefined }\n\t\t\ttabIndex={ 0 }\n\t\t\trole={ ! explicitDismiss ? 'button' : '' }\n\t\t\tonKeyPress={ ! explicitDismiss ? dismissMe : undefined }\n\t\t\taria-label={ ! explicitDismiss ? __( 'Dismiss this notice' ) : '' }\n\t\t>\n\t\t\t<div className={ snackbarContentClassnames }>\n\t\t\t\t{ icon && (\n\t\t\t\t\t<div className=\"components-snackbar__icon\">{ icon }</div>\n\t\t\t\t) }\n\t\t\t\t{ children }\n\t\t\t\t{ actions.map( ( { label, onClick, url }, index ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\t\thref={ url }\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ (\n\t\t\t\t\t\t\t\tevent: MouseEvent< HTMLButtonElement >\n\t\t\t\t\t\t\t) => onActionClick( event, onClick ) }\n\t\t\t\t\t\t\tclassName=\"components-snackbar__action\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t\t{ explicitDismiss && (\n\t\t\t\t\t<span\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\taria-label=\"Dismiss this notice\"\n\t\t\t\t\t\ttabIndex={ 0 }\n\t\t\t\t\t\tclassName=\"components-snackbar__dismiss-button\"\n\t\t\t\t\t\tonClick={ dismissMe }\n\t\t\t\t\t\tonKeyPress={ dismissMe }\n\t\t\t\t\t>\n\t\t\t\t\t\t&#x2715;\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\n/**\n * A Snackbar displays a succinct message that is cleared out after a small delay.\n *\n * It can also offer the user options, like viewing a published post.\n * But these options should also be available elsewhere in the UI.\n *\n * ```jsx\n * const MySnackbarNotice = () => (\n * <Snackbar>Post published successfully.</Snackbar>\n * );\n * ```\n */\nexport const Snackbar = forwardRef( UnforwardedSnackbar );\n\nexport default Snackbar;\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","speak","useEffect","useLayoutEffect","useRef","forwardRef","renderToString","__","warning","Button","NOTICE_TIMEOUT","useSpokenMessage","message","politeness","spokenMessage","UnforwardedSnackbar","className","children","actions","onRemove","icon","explicitDismiss","onDismiss","listRef","ref","dismissMe","event","preventDefault","current","focus","onActionClick","onClick","stopPropagation","callbackRefs","timeoutHandle","setTimeout","clearTimeout","classes","length","SCRIPT_DEBUG","snackbarContentClassnames","createElement","undefined","tabIndex","role","onKeyPress","map","label","url","index","key","href","variant","Snackbar"],"sources":["@wordpress/components/src/snackbar/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef, KeyboardEvent, MouseEvent } from 'react';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { speak } from '@wordpress/a11y';\nimport {\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseRef,\n\tforwardRef,\n\trenderToString,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport type { SnackbarProps } from './types';\nimport type { NoticeAction } from '../notice/types';\nimport type { WordPressComponentProps } from '../context';\n\nconst NOTICE_TIMEOUT = 10000;\n\n/**\n * Custom hook which announces the message with the given politeness, if a\n * valid message is provided.\n *\n * @param message Message to announce.\n * @param politeness Politeness to announce.\n */\nfunction useSpokenMessage(\n\tmessage: SnackbarProps[ 'spokenMessage' ],\n\tpoliteness: NonNullable< SnackbarProps[ 'politeness' ] >\n) {\n\tconst spokenMessage =\n\t\ttypeof message === 'string' ? message : renderToString( message );\n\n\tuseEffect( () => {\n\t\tif ( spokenMessage ) {\n\t\t\tspeak( spokenMessage, politeness );\n\t\t}\n\t}, [ spokenMessage, politeness ] );\n}\n\nfunction UnforwardedSnackbar(\n\t{\n\t\tclassName,\n\t\tchildren,\n\t\tspokenMessage = children,\n\t\tpoliteness = 'polite',\n\t\tactions = [],\n\t\tonRemove,\n\t\ticon = null,\n\t\texplicitDismiss = false,\n\t\t// onDismiss is a callback executed when the snackbar is dismissed.\n\t\t// It is distinct from onRemove, which _looks_ like a callback but is\n\t\t// actually the function to call to remove the snackbar from the UI.\n\t\tonDismiss,\n\t\tlistRef,\n\t}: WordPressComponentProps< SnackbarProps, 'div' >,\n\tref: ForwardedRef< any >\n) {\n\tfunction dismissMe( event: KeyboardEvent | MouseEvent ) {\n\t\tif ( event && event.preventDefault ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\t// Prevent focus loss by moving it to the list element.\n\t\tlistRef?.current?.focus();\n\n\t\tonDismiss?.();\n\t\tonRemove?.();\n\t}\n\n\tfunction onActionClick(\n\t\tevent: MouseEvent< HTMLButtonElement >,\n\t\tonClick: NoticeAction[ 'onClick' ]\n\t) {\n\t\tevent.stopPropagation();\n\n\t\tonRemove?.();\n\n\t\tif ( onClick ) {\n\t\t\tonClick( event );\n\t\t}\n\t}\n\n\tuseSpokenMessage( spokenMessage, politeness );\n\n\t// The `onDismiss/onRemove` can have unstable references,\n\t// trigger side-effect cleanup, and reset timers.\n\tconst callbackRefs = useRef( { onDismiss, onRemove } );\n\tuseLayoutEffect( () => {\n\t\tcallbackRefs.current = { onDismiss, onRemove };\n\t} );\n\n\tuseEffect( () => {\n\t\t// Only set up the timeout dismiss if we're not explicitly dismissing.\n\t\tconst timeoutHandle = setTimeout( () => {\n\t\t\tif ( ! explicitDismiss ) {\n\t\t\t\tcallbackRefs.current.onDismiss?.();\n\t\t\t\tcallbackRefs.current.onRemove?.();\n\t\t\t}\n\t\t}, NOTICE_TIMEOUT );\n\n\t\treturn () => clearTimeout( timeoutHandle );\n\t}, [ explicitDismiss ] );\n\n\tconst classes = classnames( className, 'components-snackbar', {\n\t\t'components-snackbar-explicit-dismiss': !! explicitDismiss,\n\t} );\n\tif ( actions && actions.length > 1 ) {\n\t\t// We need to inform developers that snackbar only accepts 1 action.\n\t\twarning(\n\t\t\t'Snackbar can only have one action. Use Notice if your message requires many actions.'\n\t\t);\n\t\t// return first element only while keeping it inside an array\n\t\tactions = [ actions[ 0 ] ];\n\t}\n\n\tconst snackbarContentClassnames = classnames(\n\t\t'components-snackbar__content',\n\t\t{\n\t\t\t'components-snackbar__content-with-icon': !! icon,\n\t\t}\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tref={ ref }\n\t\t\tclassName={ classes }\n\t\t\tonClick={ ! explicitDismiss ? dismissMe : undefined }\n\t\t\ttabIndex={ 0 }\n\t\t\trole={ ! explicitDismiss ? 'button' : undefined }\n\t\t\tonKeyPress={ ! explicitDismiss ? dismissMe : undefined }\n\t\t\taria-label={\n\t\t\t\t! explicitDismiss ? __( 'Dismiss this notice' ) : undefined\n\t\t\t}\n\t\t\tdata-testid=\"snackbar\"\n\t\t>\n\t\t\t<div className={ snackbarContentClassnames }>\n\t\t\t\t{ icon && (\n\t\t\t\t\t<div className=\"components-snackbar__icon\">{ icon }</div>\n\t\t\t\t) }\n\t\t\t\t{ children }\n\t\t\t\t{ actions.map( ( { label, onClick, url }, index ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\t\thref={ url }\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ (\n\t\t\t\t\t\t\t\tevent: MouseEvent< HTMLButtonElement >\n\t\t\t\t\t\t\t) => onActionClick( event, onClick ) }\n\t\t\t\t\t\t\tclassName=\"components-snackbar__action\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t\t{ explicitDismiss && (\n\t\t\t\t\t<span\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\taria-label=\"Dismiss this notice\"\n\t\t\t\t\t\ttabIndex={ 0 }\n\t\t\t\t\t\tclassName=\"components-snackbar__dismiss-button\"\n\t\t\t\t\t\tonClick={ dismissMe }\n\t\t\t\t\t\tonKeyPress={ dismissMe }\n\t\t\t\t\t>\n\t\t\t\t\t\t&#x2715;\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\n/**\n * A Snackbar displays a succinct message that is cleared out after a small delay.\n *\n * It can also offer the user options, like viewing a published post.\n * But these options should also be available elsewhere in the UI.\n *\n * ```jsx\n * const MySnackbarNotice = () => (\n * <Snackbar>Post published successfully.</Snackbar>\n * );\n * ```\n */\nexport const Snackbar = forwardRef( UnforwardedSnackbar );\n\nexport default Snackbar;\n"],"mappings":";AAAA;AACA;AACA;;AAEA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SAASC,KAAK,QAAQ,iBAAiB;AACvC,SACCC,SAAS,EACTC,eAAe,EACfC,MAAM,EACNC,UAAU,EACVC,cAAc,QACR,oBAAoB;AAC3B,SAASC,EAAE,QAAQ,iBAAiB;AACpC,OAAOC,OAAO,MAAM,oBAAoB;;AAExC;AACA;AACA;AACA,OAAOC,MAAM,MAAM,WAAW;AAK9B,MAAMC,cAAc,GAAG,KAAK;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,gBAAgBA,CACxBC,OAAyC,EACzCC,UAAwD,EACvD;EACD,MAAMC,aAAa,GAClB,OAAOF,OAAO,KAAK,QAAQ,GAAGA,OAAO,GAAGN,cAAc,CAAEM,OAAQ,CAAC;EAElEV,SAAS,CAAE,MAAM;IAChB,IAAKY,aAAa,EAAG;MACpBb,KAAK,CAAEa,aAAa,EAAED,UAAW,CAAC;IACnC;EACD,CAAC,EAAE,CAAEC,aAAa,EAAED,UAAU,CAAG,CAAC;AACnC;AAEA,SAASE,mBAAmBA,CAC3B;EACCC,SAAS;EACTC,QAAQ;EACRH,aAAa,GAAGG,QAAQ;EACxBJ,UAAU,GAAG,QAAQ;EACrBK,OAAO,GAAG,EAAE;EACZC,QAAQ;EACRC,IAAI,GAAG,IAAI;EACXC,eAAe,GAAG,KAAK;EACvB;EACA;EACA;EACAC,SAAS;EACTC;AACgD,CAAC,EAClDC,GAAwB,EACvB;EACD,SAASC,SAASA,CAAEC,KAAiC,EAAG;IACvD,IAAKA,KAAK,IAAIA,KAAK,CAACC,cAAc,EAAG;MACpCD,KAAK,CAACC,cAAc,CAAC,CAAC;IACvB;;IAEA;IACAJ,OAAO,EAAEK,OAAO,EAAEC,KAAK,CAAC,CAAC;IAEzBP,SAAS,GAAG,CAAC;IACbH,QAAQ,GAAG,CAAC;EACb;EAEA,SAASW,aAAaA,CACrBJ,KAAsC,EACtCK,OAAkC,EACjC;IACDL,KAAK,CAACM,eAAe,CAAC,CAAC;IAEvBb,QAAQ,GAAG,CAAC;IAEZ,IAAKY,OAAO,EAAG;MACdA,OAAO,CAAEL,KAAM,CAAC;IACjB;EACD;EAEAf,gBAAgB,CAAEG,aAAa,EAAED,UAAW,CAAC;;EAE7C;EACA;EACA,MAAMoB,YAAY,GAAG7B,MAAM,CAAE;IAAEkB,SAAS;IAAEH;EAAS,CAAE,CAAC;EACtDhB,eAAe,CAAE,MAAM;IACtB8B,YAAY,CAACL,OAAO,GAAG;MAAEN,SAAS;MAAEH;IAAS,CAAC;EAC/C,CAAE,CAAC;EAEHjB,SAAS,CAAE,MAAM;IAChB;IACA,MAAMgC,aAAa,GAAGC,UAAU,CAAE,MAAM;MACvC,IAAK,CAAEd,eAAe,EAAG;QACxBY,YAAY,CAACL,OAAO,CAACN,SAAS,GAAG,CAAC;QAClCW,YAAY,CAACL,OAAO,CAACT,QAAQ,GAAG,CAAC;MAClC;IACD,CAAC,EAAET,cAAe,CAAC;IAEnB,OAAO,MAAM0B,YAAY,CAAEF,aAAc,CAAC;EAC3C,CAAC,EAAE,CAAEb,eAAe,CAAG,CAAC;EAExB,MAAMgB,OAAO,GAAGrC,UAAU,CAAEgB,SAAS,EAAE,qBAAqB,EAAE;IAC7D,sCAAsC,EAAE,CAAC,CAAEK;EAC5C,CAAE,CAAC;EACH,IAAKH,OAAO,IAAIA,OAAO,CAACoB,MAAM,GAAG,CAAC,EAAG;IACpC;IACA,OAAAC,YAAA,oBAAAA,YAAA,YAAA/B,OAAO,CACN,sFACD,CAAC;IACD;IACAU,OAAO,GAAG,CAAEA,OAAO,CAAE,CAAC,CAAE,CAAE;EAC3B;EAEA,MAAMsB,yBAAyB,GAAGxC,UAAU,CAC3C,8BAA8B,EAC9B;IACC,wCAAwC,EAAE,CAAC,CAAEoB;EAC9C,CACD,CAAC;EAED,OACCqB,aAAA;IACCjB,GAAG,EAAGA,GAAK;IACXR,SAAS,EAAGqB,OAAS;IACrBN,OAAO,EAAG,CAAEV,eAAe,GAAGI,SAAS,GAAGiB,SAAW;IACrDC,QAAQ,EAAG,CAAG;IACdC,IAAI,EAAG,CAAEvB,eAAe,GAAG,QAAQ,GAAGqB,SAAW;IACjDG,UAAU,EAAG,CAAExB,eAAe,GAAGI,SAAS,GAAGiB,SAAW;IACxD,cACC,CAAErB,eAAe,GAAGd,EAAE,CAAE,qBAAsB,CAAC,GAAGmC,SAClD;IACD,eAAY;EAAU,GAEtBD,aAAA;IAAKzB,SAAS,EAAGwB;EAA2B,GACzCpB,IAAI,IACLqB,aAAA;IAAKzB,SAAS,EAAC;EAA2B,GAAGI,IAAW,CACxD,EACCH,QAAQ,EACRC,OAAO,CAAC4B,GAAG,CAAE,CAAE;IAAEC,KAAK;IAAEhB,OAAO;IAAEiB;EAAI,CAAC,EAAEC,KAAK,KAAM;IACpD,OACCR,aAAA,CAAChC,MAAM;MACNyC,GAAG,EAAGD,KAAO;MACbE,IAAI,EAAGH,GAAK;MACZI,OAAO,EAAC,UAAU;MAClBrB,OAAO,EACNL,KAAsC,IAClCI,aAAa,CAAEJ,KAAK,EAAEK,OAAQ,CAAG;MACtCf,SAAS,EAAC;IAA6B,GAErC+B,KACK,CAAC;EAEX,CAAE,CAAC,EACD1B,eAAe,IAChBoB,aAAA;IACCG,IAAI,EAAC,QAAQ;IACb,cAAW,qBAAqB;IAChCD,QAAQ,EAAG,CAAG;IACd3B,SAAS,EAAC,qCAAqC;IAC/Ce,OAAO,EAAGN,SAAW;IACrBoB,UAAU,EAAGpB;EAAW,GACxB,QAEK,CAEH,CACD,CAAC;AAER;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAM4B,QAAQ,GAAGhD,UAAU,CAAEU,mBAAoB,CAAC;AAEzD,eAAesC,QAAQ"}
@@ -72,7 +72,8 @@ export function SnackbarList({
72
72
  return createElement("div", {
73
73
  className: className,
74
74
  tabIndex: -1,
75
- ref: listRef
75
+ ref: listRef,
76
+ "data-testid": "snackbar-list"
76
77
  }, children, createElement(AnimatePresence, null, notices.map(notice => {
77
78
  const {
78
79
  content,
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","useReducedMotion","useRef","Snackbar","__unstableMotion","motion","__unstableAnimatePresence","AnimatePresence","SNACKBAR_VARIANTS","init","height","opacity","open","transition","type","duration","ease","delay","exit","SnackbarList","notices","className","children","onRemove","listRef","isReducedMotion","removeNotice","notice","id","createElement","tabIndex","ref","map","content","restNotice","div","layout","initial","animate","key","variants","undefined"],"sources":["@wordpress/components/src/snackbar/list.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useReducedMotion } from '@wordpress/compose';\nimport { useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Snackbar from '.';\nimport {\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n} from '../animation';\nimport type { SnackbarListProps } from './types';\nimport type { WordPressComponentProps } from '../context';\n\nconst SNACKBAR_VARIANTS = {\n\tinit: {\n\t\theight: 0,\n\t\topacity: 0,\n\t},\n\topen: {\n\t\theight: 'auto',\n\t\topacity: 1,\n\t\ttransition: {\n\t\t\theight: { type: 'tween', duration: 0.3, ease: [ 0, 0, 0.2, 1 ] },\n\t\t\topacity: {\n\t\t\t\ttype: 'tween',\n\t\t\t\tduration: 0.25,\n\t\t\t\tdelay: 0.05,\n\t\t\t\tease: [ 0, 0, 0.2, 1 ],\n\t\t\t},\n\t\t},\n\t},\n\texit: {\n\t\topacity: 0,\n\t\ttransition: {\n\t\t\ttype: 'tween',\n\t\t\tduration: 0.1,\n\t\t\tease: [ 0, 0, 0.2, 1 ],\n\t\t},\n\t},\n};\n\n/**\n * Renders a list of notices.\n *\n * ```jsx\n * const MySnackbarListNotice = () => (\n * <SnackbarList\n * notices={ notices }\n * onRemove={ removeNotice }\n * />\n * );\n * ```\n */\nexport function SnackbarList( {\n\tnotices,\n\tclassName,\n\tchildren,\n\tonRemove,\n}: WordPressComponentProps< SnackbarListProps, 'div' > ) {\n\tconst listRef = useRef< HTMLDivElement | null >( null );\n\tconst isReducedMotion = useReducedMotion();\n\tclassName = classnames( 'components-snackbar-list', className );\n\tconst removeNotice =\n\t\t( notice: SnackbarListProps[ 'notices' ][ number ] ) => () =>\n\t\t\tonRemove?.( notice.id );\n\treturn (\n\t\t<div className={ className } tabIndex={ -1 } ref={ listRef }>\n\t\t\t{ children }\n\t\t\t<AnimatePresence>\n\t\t\t\t{ notices.map( ( notice ) => {\n\t\t\t\t\tconst { content, ...restNotice } = notice;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<motion.div\n\t\t\t\t\t\t\tlayout={ ! isReducedMotion } // See https://www.framer.com/docs/animation/#layout-animations\n\t\t\t\t\t\t\tinitial={ 'init' }\n\t\t\t\t\t\t\tanimate={ 'open' }\n\t\t\t\t\t\t\texit={ 'exit' }\n\t\t\t\t\t\t\tkey={ notice.id }\n\t\t\t\t\t\t\tvariants={\n\t\t\t\t\t\t\t\tisReducedMotion ? undefined : SNACKBAR_VARIANTS\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div className=\"components-snackbar-list__notice-container\">\n\t\t\t\t\t\t\t\t<Snackbar\n\t\t\t\t\t\t\t\t\t{ ...restNotice }\n\t\t\t\t\t\t\t\t\tonRemove={ removeNotice( notice ) }\n\t\t\t\t\t\t\t\t\tlistRef={ listRef }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ notice.content }\n\t\t\t\t\t\t\t\t</Snackbar>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</motion.div>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</AnimatePresence>\n\t\t</div>\n\t);\n}\n\nexport default SnackbarList;\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,MAAM,QAAQ,oBAAoB;;AAE3C;AACA;AACA;AACA,OAAOC,QAAQ,MAAM,GAAG;AACxB,SACCC,gBAAgB,IAAIC,MAAM,EAC1BC,yBAAyB,IAAIC,eAAe,QACtC,cAAc;AAIrB,MAAMC,iBAAiB,GAAG;EACzBC,IAAI,EAAE;IACLC,MAAM,EAAE,CAAC;IACTC,OAAO,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACLF,MAAM,EAAE,MAAM;IACdC,OAAO,EAAE,CAAC;IACVE,UAAU,EAAE;MACXH,MAAM,EAAE;QAAEI,IAAI,EAAE,OAAO;QAAEC,QAAQ,EAAE,GAAG;QAAEC,IAAI,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;MAAG,CAAC;MAChEL,OAAO,EAAE;QACRG,IAAI,EAAE,OAAO;QACbC,QAAQ,EAAE,IAAI;QACdE,KAAK,EAAE,IAAI;QACXD,IAAI,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;MACrB;IACD;EACD,CAAC;EACDE,IAAI,EAAE;IACLP,OAAO,EAAE,CAAC;IACVE,UAAU,EAAE;MACXC,IAAI,EAAE,OAAO;MACbC,QAAQ,EAAE,GAAG;MACbC,IAAI,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IACrB;EACD;AACD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,YAAYA,CAAE;EAC7BC,OAAO;EACPC,SAAS;EACTC,QAAQ;EACRC;AACoD,CAAC,EAAG;EACxD,MAAMC,OAAO,GAAGtB,MAAM,CAA2B,IAAK,CAAC;EACvD,MAAMuB,eAAe,GAAGxB,gBAAgB,CAAC,CAAC;EAC1CoB,SAAS,GAAGrB,UAAU,CAAE,0BAA0B,EAAEqB,SAAU,CAAC;EAC/D,MAAMK,YAAY,GACfC,MAAgD,IAAM,MACvDJ,QAAQ,GAAII,MAAM,CAACC,EAAG,CAAC;EACzB,OACCC,aAAA;IAAKR,SAAS,EAAGA,SAAW;IAACS,QAAQ,EAAG,CAAC,CAAG;IAACC,GAAG,EAAGP;EAAS,GACzDF,QAAQ,EACVO,aAAA,CAACtB,eAAe,QACba,OAAO,CAACY,GAAG,CAAIL,MAAM,IAAM;IAC5B,MAAM;MAAEM,OAAO;MAAE,GAAGC;IAAW,CAAC,GAAGP,MAAM;IAEzC,OACCE,aAAA,CAACxB,MAAM,CAAC8B,GAAG;MACVC,MAAM,EAAG,CAAEX,eAAiB,CAAC;MAAA;MAC7BY,OAAO,EAAG,MAAQ;MAClBC,OAAO,EAAG,MAAQ;MAClBpB,IAAI,EAAG,MAAQ;MACfqB,GAAG,EAAGZ,MAAM,CAACC,EAAI;MACjBY,QAAQ,EACPf,eAAe,GAAGgB,SAAS,GAAGjC;IAC9B,GAEDqB,aAAA;MAAKR,SAAS,EAAC;IAA4C,GAC1DQ,aAAA,CAAC1B,QAAQ;MAAA,GACH+B,UAAU;MACfX,QAAQ,EAAGG,YAAY,CAAEC,MAAO,CAAG;MACnCH,OAAO,EAAGA;IAAS,GAEjBG,MAAM,CAACM,OACA,CACN,CACM,CAAC;EAEf,CAAE,CACc,CACb,CAAC;AAER;AAEA,eAAed,YAAY"}
1
+ {"version":3,"names":["classnames","useReducedMotion","useRef","Snackbar","__unstableMotion","motion","__unstableAnimatePresence","AnimatePresence","SNACKBAR_VARIANTS","init","height","opacity","open","transition","type","duration","ease","delay","exit","SnackbarList","notices","className","children","onRemove","listRef","isReducedMotion","removeNotice","notice","id","createElement","tabIndex","ref","map","content","restNotice","div","layout","initial","animate","key","variants","undefined"],"sources":["@wordpress/components/src/snackbar/list.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useReducedMotion } from '@wordpress/compose';\nimport { useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Snackbar from '.';\nimport {\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n} from '../animation';\nimport type { SnackbarListProps } from './types';\nimport type { WordPressComponentProps } from '../context';\n\nconst SNACKBAR_VARIANTS = {\n\tinit: {\n\t\theight: 0,\n\t\topacity: 0,\n\t},\n\topen: {\n\t\theight: 'auto',\n\t\topacity: 1,\n\t\ttransition: {\n\t\t\theight: { type: 'tween', duration: 0.3, ease: [ 0, 0, 0.2, 1 ] },\n\t\t\topacity: {\n\t\t\t\ttype: 'tween',\n\t\t\t\tduration: 0.25,\n\t\t\t\tdelay: 0.05,\n\t\t\t\tease: [ 0, 0, 0.2, 1 ],\n\t\t\t},\n\t\t},\n\t},\n\texit: {\n\t\topacity: 0,\n\t\ttransition: {\n\t\t\ttype: 'tween',\n\t\t\tduration: 0.1,\n\t\t\tease: [ 0, 0, 0.2, 1 ],\n\t\t},\n\t},\n};\n\n/**\n * Renders a list of notices.\n *\n * ```jsx\n * const MySnackbarListNotice = () => (\n * <SnackbarList\n * notices={ notices }\n * onRemove={ removeNotice }\n * />\n * );\n * ```\n */\nexport function SnackbarList( {\n\tnotices,\n\tclassName,\n\tchildren,\n\tonRemove,\n}: WordPressComponentProps< SnackbarListProps, 'div' > ) {\n\tconst listRef = useRef< HTMLDivElement | null >( null );\n\tconst isReducedMotion = useReducedMotion();\n\tclassName = classnames( 'components-snackbar-list', className );\n\tconst removeNotice =\n\t\t( notice: SnackbarListProps[ 'notices' ][ number ] ) => () =>\n\t\t\tonRemove?.( notice.id );\n\treturn (\n\t\t<div\n\t\t\tclassName={ className }\n\t\t\ttabIndex={ -1 }\n\t\t\tref={ listRef }\n\t\t\tdata-testid=\"snackbar-list\"\n\t\t>\n\t\t\t{ children }\n\t\t\t<AnimatePresence>\n\t\t\t\t{ notices.map( ( notice ) => {\n\t\t\t\t\tconst { content, ...restNotice } = notice;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<motion.div\n\t\t\t\t\t\t\tlayout={ ! isReducedMotion } // See https://www.framer.com/docs/animation/#layout-animations\n\t\t\t\t\t\t\tinitial={ 'init' }\n\t\t\t\t\t\t\tanimate={ 'open' }\n\t\t\t\t\t\t\texit={ 'exit' }\n\t\t\t\t\t\t\tkey={ notice.id }\n\t\t\t\t\t\t\tvariants={\n\t\t\t\t\t\t\t\tisReducedMotion ? undefined : SNACKBAR_VARIANTS\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div className=\"components-snackbar-list__notice-container\">\n\t\t\t\t\t\t\t\t<Snackbar\n\t\t\t\t\t\t\t\t\t{ ...restNotice }\n\t\t\t\t\t\t\t\t\tonRemove={ removeNotice( notice ) }\n\t\t\t\t\t\t\t\t\tlistRef={ listRef }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ notice.content }\n\t\t\t\t\t\t\t\t</Snackbar>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</motion.div>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</AnimatePresence>\n\t\t</div>\n\t);\n}\n\nexport default SnackbarList;\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,MAAM,QAAQ,oBAAoB;;AAE3C;AACA;AACA;AACA,OAAOC,QAAQ,MAAM,GAAG;AACxB,SACCC,gBAAgB,IAAIC,MAAM,EAC1BC,yBAAyB,IAAIC,eAAe,QACtC,cAAc;AAIrB,MAAMC,iBAAiB,GAAG;EACzBC,IAAI,EAAE;IACLC,MAAM,EAAE,CAAC;IACTC,OAAO,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACLF,MAAM,EAAE,MAAM;IACdC,OAAO,EAAE,CAAC;IACVE,UAAU,EAAE;MACXH,MAAM,EAAE;QAAEI,IAAI,EAAE,OAAO;QAAEC,QAAQ,EAAE,GAAG;QAAEC,IAAI,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;MAAG,CAAC;MAChEL,OAAO,EAAE;QACRG,IAAI,EAAE,OAAO;QACbC,QAAQ,EAAE,IAAI;QACdE,KAAK,EAAE,IAAI;QACXD,IAAI,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;MACrB;IACD;EACD,CAAC;EACDE,IAAI,EAAE;IACLP,OAAO,EAAE,CAAC;IACVE,UAAU,EAAE;MACXC,IAAI,EAAE,OAAO;MACbC,QAAQ,EAAE,GAAG;MACbC,IAAI,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IACrB;EACD;AACD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,YAAYA,CAAE;EAC7BC,OAAO;EACPC,SAAS;EACTC,QAAQ;EACRC;AACoD,CAAC,EAAG;EACxD,MAAMC,OAAO,GAAGtB,MAAM,CAA2B,IAAK,CAAC;EACvD,MAAMuB,eAAe,GAAGxB,gBAAgB,CAAC,CAAC;EAC1CoB,SAAS,GAAGrB,UAAU,CAAE,0BAA0B,EAAEqB,SAAU,CAAC;EAC/D,MAAMK,YAAY,GACfC,MAAgD,IAAM,MACvDJ,QAAQ,GAAII,MAAM,CAACC,EAAG,CAAC;EACzB,OACCC,aAAA;IACCR,SAAS,EAAGA,SAAW;IACvBS,QAAQ,EAAG,CAAC,CAAG;IACfC,GAAG,EAAGP,OAAS;IACf,eAAY;EAAe,GAEzBF,QAAQ,EACVO,aAAA,CAACtB,eAAe,QACba,OAAO,CAACY,GAAG,CAAIL,MAAM,IAAM;IAC5B,MAAM;MAAEM,OAAO;MAAE,GAAGC;IAAW,CAAC,GAAGP,MAAM;IAEzC,OACCE,aAAA,CAACxB,MAAM,CAAC8B,GAAG;MACVC,MAAM,EAAG,CAAEX,eAAiB,CAAC;MAAA;MAC7BY,OAAO,EAAG,MAAQ;MAClBC,OAAO,EAAG,MAAQ;MAClBpB,IAAI,EAAG,MAAQ;MACfqB,GAAG,EAAGZ,MAAM,CAACC,EAAI;MACjBY,QAAQ,EACPf,eAAe,GAAGgB,SAAS,GAAGjC;IAC9B,GAEDqB,aAAA;MAAKR,SAAS,EAAC;IAA4C,GAC1DQ,aAAA,CAAC1B,QAAQ;MAAA,GACH+B,UAAU;MACfX,QAAQ,EAAGG,YAAY,CAAEC,MAAO,CAAG;MACnCH,OAAO,EAAGA;IAAS,GAEjBG,MAAM,CAACM,OACA,CACN,CACM,CAAC;EAEf,CAAE,CACc,CACb,CAAC;AAER;AAEA,eAAed,YAAY"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["@wordpress/components/src/snackbar/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { MutableRefObject, ReactNode } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { NoticeProps, NoticeChildren } from '../notice/types';\n\ntype SnackbarOnlyProps = {\n\t/**\n\t * The icon to render in the snackbar.\n\t *\n\t * @default null\n\t */\n\ticon?: ReactNode;\n\t/**\n\t * Whether to require user action to dismiss the snackbar.\n\t * By default, this is dismissed on a timeout, without user interaction.\n\t *\n\t * @default false\n\t */\n\texplicitDismiss?: boolean;\n\t/**\n\t * A ref to the list that contains the snackbar.\n\t */\n\tlistRef?: MutableRefObject< HTMLDivElement | null >;\n};\n\nexport type SnackbarProps = Omit< NoticeProps, '__unstableHTML' > &\n\tSnackbarOnlyProps;\n\nexport type SnackbarListProps = {\n\tnotices: Array<\n\t\tOmit< SnackbarProps, 'children' > & {\n\t\t\tid: string;\n\t\t\tcontent: string;\n\t\t}\n\t>;\n\tonRemove: ( id: string ) => void;\n\tchildren?: NoticeChildren | Array< NoticeChildren >;\n};\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["@wordpress/components/src/snackbar/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { MutableRefObject, ReactNode } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tNoticeProps,\n\tNoticeChildren,\n\tNoticeAction,\n} from '../notice/types';\n\ntype SnackbarOnlyProps = {\n\t/**\n\t * The icon to render in the snackbar.\n\t *\n\t * @default null\n\t */\n\ticon?: ReactNode;\n\t/**\n\t * Whether to require user action to dismiss the snackbar.\n\t * By default, this is dismissed on a timeout, without user interaction.\n\t *\n\t * @default false\n\t */\n\texplicitDismiss?: boolean;\n\t/**\n\t * A ref to the list that contains the snackbar.\n\t */\n\tlistRef?: MutableRefObject< HTMLDivElement | null >;\n};\n\nexport type SnackbarProps = Pick<\n\tNoticeProps,\n\t| 'className'\n\t| 'children'\n\t| 'spokenMessage'\n\t| 'onRemove'\n\t| 'politeness'\n\t| 'onDismiss'\n> &\n\tSnackbarOnlyProps & {\n\t\t/**\n\t\t * An array of action objects. Each member object should contain:\n\t\t *\n\t\t * - `label`: `string` containing the text of the button/link\n\t\t * - `url`: `string` OR `onClick`: `( event: SyntheticEvent ) => void` to specify\n\t\t * what the action does.\n\t\t *\n\t\t * The default appearance of an action button is inferred based on whether\n\t\t * `url` or `onClick` are provided, rendering the button as a link if\n\t\t * appropriate. If both props are provided, `url` takes precedence, and the\n\t\t * action button will render as an anchor tag.\n\t\t *\n\t\t * @default []\n\t\t */\n\t\tactions?: Pick< NoticeAction, 'label' | 'url' | 'onClick' >[];\n\t};\n\nexport type SnackbarListProps = {\n\tnotices: Array<\n\t\tOmit< SnackbarProps, 'children' > & {\n\t\t\tid: string;\n\t\t\tcontent: string;\n\t\t}\n\t>;\n\tonRemove: ( id: string ) => void;\n\tchildren?: NoticeChildren | Array< NoticeChildren >;\n};\n"],"mappings":""}
@@ -21,7 +21,7 @@ import { TabList } from './tablist';
21
21
  import { TabPanel } from './tabpanel';
22
22
  function Tabs({
23
23
  selectOnMove = true,
24
- initialTabId,
24
+ defaultTabId,
25
25
  orientation = 'horizontal',
26
26
  onSelect,
27
27
  children,
@@ -31,7 +31,7 @@ function Tabs({
31
31
  const store = Ariakit.useTabStore({
32
32
  selectOnMove,
33
33
  orientation,
34
- defaultSelectedId: initialTabId && `${instanceId}-${initialTabId}`,
34
+ defaultSelectedId: defaultTabId && `${instanceId}-${defaultTabId}`,
35
35
  setSelectedId: selectedId => {
36
36
  const strippedDownId = typeof selectedId === 'string' ? selectedId.replace(`${instanceId}-`, '') : selectedId;
37
37
  onSelect?.(strippedDownId);
@@ -61,7 +61,7 @@ function Tabs({
61
61
  // Ariakit internally refers to disabled tabs as `dimmed`.
62
62
  return !item.dimmed;
63
63
  });
64
- const initialTab = items.find(item => item.id === `${instanceId}-${initialTabId}`);
64
+ const initialTab = items.find(item => item.id === `${instanceId}-${defaultTabId}`);
65
65
 
66
66
  // Handle selecting the initial tab.
67
67
  useLayoutEffect(() => {
@@ -72,8 +72,8 @@ function Tabs({
72
72
  // Wait for the denoted initial tab to be declared before making a
73
73
  // selection. This ensures that if a tab is declared lazily it can
74
74
  // still receive initial selection, as well as ensuring no tab is
75
- // selected if an invalid `initialTabId` is provided.
76
- if (initialTabId && !initialTab) {
75
+ // selected if an invalid `defaultTabId` is provided.
76
+ if (defaultTabId && !initialTab) {
77
77
  return;
78
78
  }
79
79
 
@@ -91,7 +91,7 @@ function Tabs({
91
91
  setSelectedId(null);
92
92
  }
93
93
  }
94
- }, [firstEnabledTab, initialTab, initialTabId, isControlled, items, selectedId, setSelectedId]);
94
+ }, [firstEnabledTab, initialTab, defaultTabId, isControlled, items, selectedId, setSelectedId]);
95
95
 
96
96
  // Handle the currently selected tab becoming disabled.
97
97
  useLayoutEffect(() => {
@@ -107,7 +107,7 @@ function Tabs({
107
107
  }
108
108
 
109
109
  // If the currently selected tab becomes disabled, fall back to the
110
- // `initialTabId` if possible. Otherwise select the first
110
+ // `defaultTabId` if possible. Otherwise select the first
111
111
  // enabled tab (if there is one).
112
112
  if (initialTab && !initialTab.dimmed) {
113
113
  setSelectedId(initialTab.id);
@@ -1 +1 @@
1
- {"version":3,"names":["Ariakit","useInstanceId","useEffect","useLayoutEffect","useMemo","useRef","TabsContext","Tab","TabList","TabPanel","Tabs","selectOnMove","initialTabId","orientation","onSelect","children","selectedTabId","instanceId","store","useTabStore","defaultSelectedId","setSelectedId","selectedId","strippedDownId","replace","isControlled","undefined","items","activeId","useState","setActiveId","tabsHavePopulated","length","current","selectedTab","find","item","id","firstEnabledTab","dimmed","initialTab","requestAnimationFrame","focusedElement","element","ownerDocument","activeElement","some","contextValue","createElement","Provider","value","Context"],"sources":["@wordpress/components/src/tabs/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\n// eslint-disable-next-line no-restricted-imports\nimport * as Ariakit from '@ariakit/react';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport {\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseMemo,\n\tuseRef,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { TabsProps } from './types';\nimport { TabsContext } from './context';\nimport { Tab } from './tab';\nimport { TabList } from './tablist';\nimport { TabPanel } from './tabpanel';\n\nfunction Tabs( {\n\tselectOnMove = true,\n\tinitialTabId,\n\torientation = 'horizontal',\n\tonSelect,\n\tchildren,\n\tselectedTabId,\n}: TabsProps ) {\n\tconst instanceId = useInstanceId( Tabs, 'tabs' );\n\tconst store = Ariakit.useTabStore( {\n\t\tselectOnMove,\n\t\torientation,\n\t\tdefaultSelectedId: initialTabId && `${ instanceId }-${ initialTabId }`,\n\t\tsetSelectedId: ( selectedId ) => {\n\t\t\tconst strippedDownId =\n\t\t\t\ttypeof selectedId === 'string'\n\t\t\t\t\t? selectedId.replace( `${ instanceId }-`, '' )\n\t\t\t\t\t: selectedId;\n\t\t\tonSelect?.( strippedDownId );\n\t\t},\n\t\tselectedId: selectedTabId && `${ instanceId }-${ selectedTabId }`,\n\t} );\n\n\tconst isControlled = selectedTabId !== undefined;\n\n\tconst { items, selectedId, activeId } = store.useState();\n\tconst { setSelectedId, setActiveId } = store;\n\n\t// Keep track of whether tabs have been populated. This is used to prevent\n\t// certain effects from firing too early while tab data and relevant\n\t// variables are undefined during the initial render.\n\tconst tabsHavePopulated = useRef( false );\n\tif ( items.length > 0 ) {\n\t\ttabsHavePopulated.current = true;\n\t}\n\n\tconst selectedTab = items.find( ( item ) => item.id === selectedId );\n\tconst firstEnabledTab = items.find( ( item ) => {\n\t\t// Ariakit internally refers to disabled tabs as `dimmed`.\n\t\treturn ! item.dimmed;\n\t} );\n\tconst initialTab = items.find(\n\t\t( item ) => item.id === `${ instanceId }-${ initialTabId }`\n\t);\n\n\t// Handle selecting the initial tab.\n\tuseLayoutEffect( () => {\n\t\tif ( isControlled ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Wait for the denoted initial tab to be declared before making a\n\t\t// selection. This ensures that if a tab is declared lazily it can\n\t\t// still receive initial selection, as well as ensuring no tab is\n\t\t// selected if an invalid `initialTabId` is provided.\n\t\tif ( initialTabId && ! initialTab ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If the currently selected tab is missing (i.e. removed from the DOM),\n\t\t// fall back to the initial tab or the first enabled tab if there is\n\t\t// one. Otherwise, no tab should be selected.\n\t\tif ( ! items.find( ( item ) => item.id === selectedId ) ) {\n\t\t\tif ( initialTab && ! initialTab.dimmed ) {\n\t\t\t\tsetSelectedId( initialTab?.id );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( firstEnabledTab ) {\n\t\t\t\tsetSelectedId( firstEnabledTab.id );\n\t\t\t} else if ( tabsHavePopulated.current ) {\n\t\t\t\tsetSelectedId( null );\n\t\t\t}\n\t\t}\n\t}, [\n\t\tfirstEnabledTab,\n\t\tinitialTab,\n\t\tinitialTabId,\n\t\tisControlled,\n\t\titems,\n\t\tselectedId,\n\t\tsetSelectedId,\n\t] );\n\n\t// Handle the currently selected tab becoming disabled.\n\tuseLayoutEffect( () => {\n\t\tif ( ! selectedTab?.dimmed ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// In controlled mode, we trust that disabling tabs is done\n\t\t// intentionally, and don't select a new tab automatically.\n\t\tif ( isControlled ) {\n\t\t\tsetSelectedId( null );\n\t\t\treturn;\n\t\t}\n\n\t\t// If the currently selected tab becomes disabled, fall back to the\n\t\t// `initialTabId` if possible. Otherwise select the first\n\t\t// enabled tab (if there is one).\n\t\tif ( initialTab && ! initialTab.dimmed ) {\n\t\t\tsetSelectedId( initialTab.id );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( firstEnabledTab ) {\n\t\t\tsetSelectedId( firstEnabledTab.id );\n\t\t}\n\t}, [\n\t\tfirstEnabledTab,\n\t\tinitialTab,\n\t\tisControlled,\n\t\tselectedTab?.dimmed,\n\t\tsetSelectedId,\n\t] );\n\n\t// Clear `selectedId` if the active tab is removed from the DOM in controlled mode.\n\tuseLayoutEffect( () => {\n\t\tif ( ! isControlled ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once the tabs have populated, if the `selectedTabId` still can't be\n\t\t// found, clear the selection.\n\t\tif ( tabsHavePopulated.current && !! selectedTabId && ! selectedTab ) {\n\t\t\tsetSelectedId( null );\n\t\t}\n\t}, [ isControlled, selectedTab, selectedTabId, setSelectedId ] );\n\n\tuseEffect( () => {\n\t\tif ( ! isControlled ) {\n\t\t\treturn;\n\t\t}\n\n\t\trequestAnimationFrame( () => {\n\t\t\tconst focusedElement =\n\t\t\t\titems?.[ 0 ]?.element?.ownerDocument.activeElement;\n\n\t\t\tif (\n\t\t\t\t! focusedElement ||\n\t\t\t\t! items.some( ( item ) => focusedElement === item.element )\n\t\t\t) {\n\t\t\t\treturn; // Return early if no tabs are focused.\n\t\t\t}\n\n\t\t\t// If, after ariakit re-computes the active tab, that tab doesn't match\n\t\t\t// the currently focused tab, then we force an update to ariakit to avoid\n\t\t\t// any mismatches, especially when navigating to previous/next tab with\n\t\t\t// arrow keys.\n\t\t\tif ( activeId !== focusedElement.id ) {\n\t\t\t\tsetActiveId( focusedElement.id );\n\t\t\t}\n\t\t} );\n\t}, [ activeId, isControlled, items, setActiveId ] );\n\n\tconst contextValue = useMemo(\n\t\t() => ( {\n\t\t\tstore,\n\t\t\tinstanceId,\n\t\t} ),\n\t\t[ store, instanceId ]\n\t);\n\n\treturn (\n\t\t<TabsContext.Provider value={ contextValue }>\n\t\t\t{ children }\n\t\t</TabsContext.Provider>\n\t);\n}\n\nTabs.TabList = TabList;\nTabs.Tab = Tab;\nTabs.TabPanel = TabPanel;\nTabs.Context = TabsContext;\n\nexport default Tabs;\n"],"mappings":"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"}
1
+ {"version":3,"names":["Ariakit","useInstanceId","useEffect","useLayoutEffect","useMemo","useRef","TabsContext","Tab","TabList","TabPanel","Tabs","selectOnMove","defaultTabId","orientation","onSelect","children","selectedTabId","instanceId","store","useTabStore","defaultSelectedId","setSelectedId","selectedId","strippedDownId","replace","isControlled","undefined","items","activeId","useState","setActiveId","tabsHavePopulated","length","current","selectedTab","find","item","id","firstEnabledTab","dimmed","initialTab","requestAnimationFrame","focusedElement","element","ownerDocument","activeElement","some","contextValue","createElement","Provider","value","Context"],"sources":["@wordpress/components/src/tabs/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\n// eslint-disable-next-line no-restricted-imports\nimport * as Ariakit from '@ariakit/react';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport {\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseMemo,\n\tuseRef,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { TabsProps } from './types';\nimport { TabsContext } from './context';\nimport { Tab } from './tab';\nimport { TabList } from './tablist';\nimport { TabPanel } from './tabpanel';\n\nfunction Tabs( {\n\tselectOnMove = true,\n\tdefaultTabId,\n\torientation = 'horizontal',\n\tonSelect,\n\tchildren,\n\tselectedTabId,\n}: TabsProps ) {\n\tconst instanceId = useInstanceId( Tabs, 'tabs' );\n\tconst store = Ariakit.useTabStore( {\n\t\tselectOnMove,\n\t\torientation,\n\t\tdefaultSelectedId: defaultTabId && `${ instanceId }-${ defaultTabId }`,\n\t\tsetSelectedId: ( selectedId ) => {\n\t\t\tconst strippedDownId =\n\t\t\t\ttypeof selectedId === 'string'\n\t\t\t\t\t? selectedId.replace( `${ instanceId }-`, '' )\n\t\t\t\t\t: selectedId;\n\t\t\tonSelect?.( strippedDownId );\n\t\t},\n\t\tselectedId: selectedTabId && `${ instanceId }-${ selectedTabId }`,\n\t} );\n\n\tconst isControlled = selectedTabId !== undefined;\n\n\tconst { items, selectedId, activeId } = store.useState();\n\tconst { setSelectedId, setActiveId } = store;\n\n\t// Keep track of whether tabs have been populated. This is used to prevent\n\t// certain effects from firing too early while tab data and relevant\n\t// variables are undefined during the initial render.\n\tconst tabsHavePopulated = useRef( false );\n\tif ( items.length > 0 ) {\n\t\ttabsHavePopulated.current = true;\n\t}\n\n\tconst selectedTab = items.find( ( item ) => item.id === selectedId );\n\tconst firstEnabledTab = items.find( ( item ) => {\n\t\t// Ariakit internally refers to disabled tabs as `dimmed`.\n\t\treturn ! item.dimmed;\n\t} );\n\tconst initialTab = items.find(\n\t\t( item ) => item.id === `${ instanceId }-${ defaultTabId }`\n\t);\n\n\t// Handle selecting the initial tab.\n\tuseLayoutEffect( () => {\n\t\tif ( isControlled ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Wait for the denoted initial tab to be declared before making a\n\t\t// selection. This ensures that if a tab is declared lazily it can\n\t\t// still receive initial selection, as well as ensuring no tab is\n\t\t// selected if an invalid `defaultTabId` is provided.\n\t\tif ( defaultTabId && ! initialTab ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If the currently selected tab is missing (i.e. removed from the DOM),\n\t\t// fall back to the initial tab or the first enabled tab if there is\n\t\t// one. Otherwise, no tab should be selected.\n\t\tif ( ! items.find( ( item ) => item.id === selectedId ) ) {\n\t\t\tif ( initialTab && ! initialTab.dimmed ) {\n\t\t\t\tsetSelectedId( initialTab?.id );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( firstEnabledTab ) {\n\t\t\t\tsetSelectedId( firstEnabledTab.id );\n\t\t\t} else if ( tabsHavePopulated.current ) {\n\t\t\t\tsetSelectedId( null );\n\t\t\t}\n\t\t}\n\t}, [\n\t\tfirstEnabledTab,\n\t\tinitialTab,\n\t\tdefaultTabId,\n\t\tisControlled,\n\t\titems,\n\t\tselectedId,\n\t\tsetSelectedId,\n\t] );\n\n\t// Handle the currently selected tab becoming disabled.\n\tuseLayoutEffect( () => {\n\t\tif ( ! selectedTab?.dimmed ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// In controlled mode, we trust that disabling tabs is done\n\t\t// intentionally, and don't select a new tab automatically.\n\t\tif ( isControlled ) {\n\t\t\tsetSelectedId( null );\n\t\t\treturn;\n\t\t}\n\n\t\t// If the currently selected tab becomes disabled, fall back to the\n\t\t// `defaultTabId` if possible. Otherwise select the first\n\t\t// enabled tab (if there is one).\n\t\tif ( initialTab && ! initialTab.dimmed ) {\n\t\t\tsetSelectedId( initialTab.id );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( firstEnabledTab ) {\n\t\t\tsetSelectedId( firstEnabledTab.id );\n\t\t}\n\t}, [\n\t\tfirstEnabledTab,\n\t\tinitialTab,\n\t\tisControlled,\n\t\tselectedTab?.dimmed,\n\t\tsetSelectedId,\n\t] );\n\n\t// Clear `selectedId` if the active tab is removed from the DOM in controlled mode.\n\tuseLayoutEffect( () => {\n\t\tif ( ! isControlled ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once the tabs have populated, if the `selectedTabId` still can't be\n\t\t// found, clear the selection.\n\t\tif ( tabsHavePopulated.current && !! selectedTabId && ! selectedTab ) {\n\t\t\tsetSelectedId( null );\n\t\t}\n\t}, [ isControlled, selectedTab, selectedTabId, setSelectedId ] );\n\n\tuseEffect( () => {\n\t\tif ( ! isControlled ) {\n\t\t\treturn;\n\t\t}\n\n\t\trequestAnimationFrame( () => {\n\t\t\tconst focusedElement =\n\t\t\t\titems?.[ 0 ]?.element?.ownerDocument.activeElement;\n\n\t\t\tif (\n\t\t\t\t! focusedElement ||\n\t\t\t\t! items.some( ( item ) => focusedElement === item.element )\n\t\t\t) {\n\t\t\t\treturn; // Return early if no tabs are focused.\n\t\t\t}\n\n\t\t\t// If, after ariakit re-computes the active tab, that tab doesn't match\n\t\t\t// the currently focused tab, then we force an update to ariakit to avoid\n\t\t\t// any mismatches, especially when navigating to previous/next tab with\n\t\t\t// arrow keys.\n\t\t\tif ( activeId !== focusedElement.id ) {\n\t\t\t\tsetActiveId( focusedElement.id );\n\t\t\t}\n\t\t} );\n\t}, [ activeId, isControlled, items, setActiveId ] );\n\n\tconst contextValue = useMemo(\n\t\t() => ( {\n\t\t\tstore,\n\t\t\tinstanceId,\n\t\t} ),\n\t\t[ store, instanceId ]\n\t);\n\n\treturn (\n\t\t<TabsContext.Provider value={ contextValue }>\n\t\t\t{ children }\n\t\t</TabsContext.Provider>\n\t);\n}\n\nTabs.TabList = TabList;\nTabs.Tab = Tab;\nTabs.TabPanel = TabPanel;\nTabs.Context = TabsContext;\n\nexport default Tabs;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["@wordpress/components/src/tabs/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\n// eslint-disable-next-line no-restricted-imports\nimport type * as Ariakit from '@ariakit/react';\n\nexport type TabsContextProps =\n\t| {\n\t\t\t/**\n\t\t\t * The tabStore object returned by Ariakit's `useTabStore` hook.\n\t\t\t */\n\t\t\tstore: Ariakit.TabStore;\n\t\t\t/**\n\t\t\t * The unique id string for this instance of the Tabs component.\n\t\t\t */\n\t\t\tinstanceId: string;\n\t }\n\t| undefined;\n\nexport type TabsProps = {\n\t/**\n\t * The children elements, which should be at least a\n\t * `Tabs.Tablist` component and a series of `Tabs.TabPanel`\n\t * components.\n\t */\n\tchildren: React.ReactNode;\n\t/**\n\t * When `true`, the tab will be selected when receiving focus (automatic tab\n\t * activation). When `false`, the tab will be selected only when clicked\n\t * (manual tab activation). See the official W3C docs for more info.\n\t *\n\t * @default true\n\t *\n\t * @see https://www.w3.org/WAI/ARIA/apg/patterns/tabpanel/\n\t */\n\tselectOnMove?: boolean;\n\t/**\n\t * The id of the tab to be selected upon mounting of component.\n\t * If this prop is not set, the first tab will be selected by default.\n\t * The id provided will be internally prefixed with the\n\t * `TabsContextProps.instanceId`.\n\t *\n\t * Note: this prop will be overridden by the `selectedTabId` prop if it is\n\t * provided. (Controlled Mode)\n\t */\n\tinitialTabId?: string;\n\t/**\n\t * The function called when a tab has been selected.\n\t * It is passed the id of the newly selected tab as an argument.\n\t */\n\tonSelect?: ( selectedId: string | null | undefined ) => void;\n\n\t/**\n\t * The orientation of the tablist.\n\t *\n\t * @default `horizontal`\n\t */\n\torientation?: 'horizontal' | 'vertical';\n\t/**\n\t * The Id of the tab to display. This id is prepended with the `Tabs`\n\t * instanceId internally.\n\t *\n\t * If left `undefined`, the component assumes it is being used in\n\t * uncontrolled mode. Consequently, any value different than `undefined`\n\t * will set the component in `controlled` mode.\n\t * When in controlled mode, the `null` value will result in no tab being selected.\n\t */\n\tselectedTabId?: string | null;\n};\n\nexport type TabListProps = {\n\t/**\n\t * The children elements, which should be a series of `Tabs.TabPanel` components.\n\t */\n\tchildren?: React.ReactNode;\n};\n\nexport type TabProps = {\n\t/**\n\t * The id of the tab, which is prepended with the `Tabs` instanceId.\n\t * The value of this prop should match with the value of the `tabId` prop on\n\t * the corresponding `Tabs.TabPanel` component.\n\t */\n\ttabId: string;\n\t/**\n\t * The children elements, generally the text to display on the tab.\n\t */\n\tchildren?: React.ReactNode;\n\t/**\n\t * Determines if the tab button should be disabled.\n\t *\n\t * @default false\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * The type of component to render the tab button as. If this prop is not\n\t * provided, the tab button will be rendered as a `button` element.\n\t */\n\trender?: React.ReactElement;\n};\n\nexport type TabPanelProps = {\n\t/**\n\t * The children elements, generally the content to display on the tabpanel.\n\t */\n\tchildren?: React.ReactNode;\n\t/**\n\t * A unique identifier for the tabpanel, which is used to generate an\n\t * instanced id for the underlying element.\n\t * The value of this prop should match with the value of the `tabId` prop on\n\t * the corresponding `Tabs.Tab` component.\n\t */\n\ttabId: string;\n\t/**\n\t * Determines whether or not the tabpanel element should be focusable.\n\t * If `false`, pressing the tab key will skip over the tabpanel, and instead\n\t * focus on the first focusable element in the panel (if there is one).\n\t *\n\t * @default true\n\t */\n\tfocusable?: boolean;\n};\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["@wordpress/components/src/tabs/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\n// eslint-disable-next-line no-restricted-imports\nimport type * as Ariakit from '@ariakit/react';\n\nexport type TabsContextProps =\n\t| {\n\t\t\t/**\n\t\t\t * The tabStore object returned by Ariakit's `useTabStore` hook.\n\t\t\t */\n\t\t\tstore: Ariakit.TabStore;\n\t\t\t/**\n\t\t\t * The unique id string for this instance of the Tabs component.\n\t\t\t */\n\t\t\tinstanceId: string;\n\t }\n\t| undefined;\n\nexport type TabsProps = {\n\t/**\n\t * The children elements, which should be at least a\n\t * `Tabs.Tablist` component and a series of `Tabs.TabPanel`\n\t * components.\n\t */\n\tchildren: React.ReactNode;\n\t/**\n\t * When `true`, the tab will be selected when receiving focus (automatic tab\n\t * activation). When `false`, the tab will be selected only when clicked\n\t * (manual tab activation). See the official W3C docs for more info.\n\t *\n\t * @default true\n\t *\n\t * @see https://www.w3.org/WAI/ARIA/apg/patterns/tabpanel/\n\t */\n\tselectOnMove?: boolean;\n\t/**\n\t * The id of the tab to be selected upon mounting of component.\n\t * If this prop is not set, the first tab will be selected by default.\n\t * The id provided will be internally prefixed with the\n\t * `TabsContextProps.instanceId`.\n\t *\n\t * Note: this prop will be overridden by the `selectedTabId` prop if it is\n\t * provided. (Controlled Mode)\n\t */\n\tdefaultTabId?: string;\n\t/**\n\t * The function called when a tab has been selected.\n\t * It is passed the id of the newly selected tab as an argument.\n\t */\n\tonSelect?: ( selectedId: string | null | undefined ) => void;\n\n\t/**\n\t * The orientation of the tablist.\n\t *\n\t * @default `horizontal`\n\t */\n\torientation?: 'horizontal' | 'vertical';\n\t/**\n\t * The Id of the tab to display. This id is prepended with the `Tabs`\n\t * instanceId internally.\n\t *\n\t * If left `undefined`, the component assumes it is being used in\n\t * uncontrolled mode. Consequently, any value different than `undefined`\n\t * will set the component in `controlled` mode.\n\t * When in controlled mode, the `null` value will result in no tab being selected.\n\t */\n\tselectedTabId?: string | null;\n};\n\nexport type TabListProps = {\n\t/**\n\t * The children elements, which should be a series of `Tabs.TabPanel` components.\n\t */\n\tchildren?: React.ReactNode;\n};\n\nexport type TabProps = {\n\t/**\n\t * The id of the tab, which is prepended with the `Tabs` instanceId.\n\t * The value of this prop should match with the value of the `tabId` prop on\n\t * the corresponding `Tabs.TabPanel` component.\n\t */\n\ttabId: string;\n\t/**\n\t * The children elements, generally the text to display on the tab.\n\t */\n\tchildren?: React.ReactNode;\n\t/**\n\t * Determines if the tab button should be disabled.\n\t *\n\t * @default false\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * The type of component to render the tab button as. If this prop is not\n\t * provided, the tab button will be rendered as a `button` element.\n\t */\n\trender?: React.ReactElement;\n};\n\nexport type TabPanelProps = {\n\t/**\n\t * The children elements, generally the content to display on the tabpanel.\n\t */\n\tchildren?: React.ReactNode;\n\t/**\n\t * A unique identifier for the tabpanel, which is used to generate an\n\t * instanced id for the underlying element.\n\t * The value of this prop should match with the value of the `tabId` prop on\n\t * the corresponding `Tabs.Tab` component.\n\t */\n\ttabId: string;\n\t/**\n\t * Determines whether or not the tabpanel element should be focusable.\n\t * If `false`, pressing the tab key will skip over the tabpanel, and instead\n\t * focus on the first focusable element in the panel (if there is one).\n\t *\n\t * @default true\n\t */\n\tfocusable?: boolean;\n};\n"],"mappings":""}
@@ -2,5 +2,4 @@ export { default as useControlledState } from './use-controlled-state';
2
2
  export { default as useUpdateEffect } from './use-update-effect';
3
3
  export { useControlledValue } from './use-controlled-value';
4
4
  export { useCx } from './use-cx';
5
- export { useLatestRef } from './use-latest-ref';
6
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["default","useControlledState","useUpdateEffect","useControlledValue","useCx","useLatestRef"],"sources":["@wordpress/components/src/utils/hooks/index.js"],"sourcesContent":["export { default as useControlledState } from './use-controlled-state';\nexport { default as useUpdateEffect } from './use-update-effect';\nexport { useControlledValue } from './use-controlled-value';\nexport { useCx } from './use-cx';\nexport { useLatestRef } from './use-latest-ref';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,kBAAkB,QAAQ,wBAAwB;AACtE,SAASD,OAAO,IAAIE,eAAe,QAAQ,qBAAqB;AAChE,SAASC,kBAAkB,QAAQ,wBAAwB;AAC3D,SAASC,KAAK,QAAQ,UAAU;AAChC,SAASC,YAAY,QAAQ,kBAAkB"}
1
+ {"version":3,"names":["default","useControlledState","useUpdateEffect","useControlledValue","useCx"],"sources":["@wordpress/components/src/utils/hooks/index.js"],"sourcesContent":["export { default as useControlledState } from './use-controlled-state';\nexport { default as useUpdateEffect } from './use-update-effect';\nexport { useControlledValue } from './use-controlled-value';\nexport { useCx } from './use-cx';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,kBAAkB,QAAQ,wBAAwB;AACtE,SAASD,OAAO,IAAIE,eAAe,QAAQ,qBAAqB;AAChE,SAASC,kBAAkB,QAAQ,wBAAwB;AAC3D,SAASC,KAAK,QAAQ,UAAU"}
@@ -296,7 +296,7 @@
296
296
  outline: none;
297
297
  }
298
298
  .components-button.is-primary:disabled:focus:enabled, .components-button.is-primary:disabled:active:enabled:focus:enabled, .components-button.is-primary[aria-disabled=true]:focus:enabled, .components-button.is-primary[aria-disabled=true]:enabled:focus:enabled, .components-button.is-primary[aria-disabled=true]:active:enabled:focus:enabled {
299
- box-shadow: 0 0 0 1px var(--wp-components-color-background, #fff), 0 0 0 3px var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));
299
+ box-shadow: inset 0 0 0 1px var(--wp-components-color-background, #fff), 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));
300
300
  }
301
301
  .components-button.is-primary.is-busy, .components-button.is-primary.is-busy:disabled, .components-button.is-primary.is-busy[aria-disabled=true] {
302
302
  color: var(--wp-components-color-accent-inverted, #fff);
@@ -586,6 +586,12 @@ p + .components-button.is-tertiary {
586
586
  font-size: 21px;
587
587
  }
588
588
  }
589
+ .components-checkbox-control__input[type=checkbox][aria-disabled=true], .components-checkbox-control__input[type=checkbox]:disabled {
590
+ background: #f0f0f0;
591
+ border-color: #ddd;
592
+ cursor: default;
593
+ opacity: 1;
594
+ }
589
595
  @media (min-width: 600px) {
590
596
  .components-checkbox-control__input[type=checkbox] {
591
597
  height: 20px;
@@ -3414,6 +3420,7 @@ div.components-toolbar > div + div.has-left-divider::before {
3414
3420
 
3415
3421
  .components-tooltip {
3416
3422
  background: #000;
3423
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
3417
3424
  border-radius: 2px;
3418
3425
  color: #f0f0f0;
3419
3426
  text-align: center;
@@ -296,7 +296,7 @@
296
296
  outline: none;
297
297
  }
298
298
  .components-button.is-primary:disabled:focus:enabled, .components-button.is-primary:disabled:active:enabled:focus:enabled, .components-button.is-primary[aria-disabled=true]:focus:enabled, .components-button.is-primary[aria-disabled=true]:enabled:focus:enabled, .components-button.is-primary[aria-disabled=true]:active:enabled:focus:enabled {
299
- box-shadow: 0 0 0 1px var(--wp-components-color-background, #fff), 0 0 0 3px var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));
299
+ box-shadow: inset 0 0 0 1px var(--wp-components-color-background, #fff), 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));
300
300
  }
301
301
  .components-button.is-primary.is-busy, .components-button.is-primary.is-busy:disabled, .components-button.is-primary.is-busy[aria-disabled=true] {
302
302
  color: var(--wp-components-color-accent-inverted, #fff);
@@ -586,6 +586,12 @@ p + .components-button.is-tertiary {
586
586
  font-size: 21px;
587
587
  }
588
588
  }
589
+ .components-checkbox-control__input[type=checkbox][aria-disabled=true], .components-checkbox-control__input[type=checkbox]:disabled {
590
+ background: #f0f0f0;
591
+ border-color: #ddd;
592
+ cursor: default;
593
+ opacity: 1;
594
+ }
589
595
  @media (min-width: 600px) {
590
596
  .components-checkbox-control__input[type=checkbox] {
591
597
  height: 20px;
@@ -3426,6 +3432,7 @@ div.components-toolbar > div + div.has-left-divider::before {
3426
3432
 
3427
3433
  .components-tooltip {
3428
3434
  background: #000;
3435
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
3429
3436
  border-radius: 2px;
3430
3437
  color: #f0f0f0;
3431
3438
  text-align: center;
@@ -1,5 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import type { CustomSelectProps } from '../types';
3
- declare function CustomSelect(props: CustomSelectProps): JSX.Element;
3
+ import type { WordPressComponentProps } from '../../context';
4
+ declare function CustomSelect(props: WordPressComponentProps<CustomSelectProps, 'button', false>): JSX.Element;
4
5
  export default CustomSelect;
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/custom-select-control-v2/default-component/index.tsx"],"names":[],"mappings":";AASA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElD,iBAAS,YAAY,CAAE,KAAK,EAAE,iBAAiB,eAU9C;AAED,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/custom-select-control-v2/default-component/index.tsx"],"names":[],"mappings":";AASA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAE7D,iBAAS,YAAY,CACpB,KAAK,EAAE,uBAAuB,CAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,CAAE,eAWpE;AAED,eAAe,YAAY,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Internal dependencies
3
3
  */
4
- export { default as CustomSelect } from './legacy-adapter';
4
+ export { default as CustomSelect } from './default-component';
5
5
  export { default as CustomSelectItem } from './custom-select-item';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/custom-select-control-v2/index.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/custom-select-control-v2/index.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/custom-select-control-v2/legacy-component/test/index.tsx"],"names":[],"mappings":""}