@ebay/ui-core-react 7.0.2 → 7.1.0-alpha.3

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 (289) hide show
  1. package/array.polyfill.flat-5BAolFdk.js +1 -0
  2. package/badge-CoHKfiPt.js +1 -0
  3. package/button-o4ao46WM.js +1 -0
  4. package/calendar-CPKqwJVQ.js +1 -0
  5. package/debounce-BQsYxxOL.js +1 -0
  6. package/dialog-previous-button-7ePoYWyj.js +1 -0
  7. package/drawer-BxxlJwkZ.js +1 -0
  8. package/ebay-alert-dialog.js +1 -0
  9. package/ebay-badge.js +1 -0
  10. package/ebay-breadcrumbs.js +1 -0
  11. package/ebay-button.js +1 -0
  12. package/ebay-calendar.js +1 -0
  13. package/ebay-carousel.js +1 -0
  14. package/ebay-checkbox.js +1 -0
  15. package/ebay-confirm-dialog.js +1 -0
  16. package/ebay-cta-button.js +1 -0
  17. package/ebay-date-textbox.js +1 -0
  18. package/ebay-dialog-base.js +1 -0
  19. package/ebay-drawer-dialog.js +1 -0
  20. package/ebay-eek.js +1 -0
  21. package/ebay-fake-menu-button.js +1 -0
  22. package/ebay-fake-menu.js +1 -0
  23. package/ebay-fake-tabs.js +1 -0
  24. package/ebay-field.js +1 -0
  25. package/ebay-fullscreen-dialog.js +1 -0
  26. package/ebay-icon-button.js +1 -0
  27. package/ebay-icon.js +1 -0
  28. package/ebay-infotip.js +1 -0
  29. package/ebay-inline-notice.js +1 -0
  30. package/ebay-lightbox-dialog.js +1 -0
  31. package/ebay-listbox-button.js +2 -0
  32. package/ebay-menu/menu.d.ts +1 -1
  33. package/ebay-menu/menu.d.ts.map +1 -1
  34. package/ebay-menu-button.js +1 -0
  35. package/ebay-menu.js +1 -0
  36. package/ebay-notice-base.js +1 -0
  37. package/ebay-page-notice.js +1 -0
  38. package/ebay-pagination.js +1 -0
  39. package/ebay-panel-dialog.js +1 -0
  40. package/ebay-progress-bar.js +1 -0
  41. package/ebay-progress-spinner.js +1 -0
  42. package/ebay-progress-stepper.js +1 -0
  43. package/ebay-radio.js +1 -0
  44. package/ebay-section-notice.js +1 -0
  45. package/ebay-section-title/index.d.ts.map +1 -1
  46. package/ebay-section-title.js +1 -0
  47. package/ebay-select.js +1 -0
  48. package/ebay-signal.js +1 -0
  49. package/ebay-snackbar-dialog.js +1 -0
  50. package/ebay-split-button.js +1 -0
  51. package/ebay-star-rating-select.js +1 -0
  52. package/ebay-star-rating.js +1 -0
  53. package/ebay-svg.js +1 -0
  54. package/ebay-switch.js +1 -0
  55. package/ebay-tabs.js +1 -0
  56. package/ebay-textbox.js +1 -0
  57. package/ebay-toast-dialog.js +1 -0
  58. package/ebay-tooltip.js +1 -0
  59. package/ebay-tourtip.js +1 -0
  60. package/ebay-video.js +1 -0
  61. package/hooks-Ctier7Yv.js +1 -0
  62. package/icon-DK6eEQD8.js +1 -0
  63. package/icon-button-BB6GFLm7.js +1 -0
  64. package/index-DbjwTbDP.js +1 -0
  65. package/label-CnrpYJ-g.js +1 -0
  66. package/menu-DZU8jEPV.js +1 -0
  67. package/menu-button-label-BcgasGA4.js +1 -0
  68. package/menu-item-DBi1NcrM.js +1 -0
  69. package/notice-content-9iF4T8uB.js +1 -0
  70. package/notice-content-C0ZStfuX.js +1 -0
  71. package/notice-footer-Cw1DMzoB.js +1 -0
  72. package/package.json +19 -8
  73. package/progress-spinner-CDgxI8R_.js +1 -0
  74. package/range-DOsPN0h5.js +1 -0
  75. package/textbox-WnB-9F4y.js +1 -0
  76. package/use-tooltip-BavqG36Z.js +1 -0
  77. package/utils-C9NL3q0j.js +1 -0
  78. package/common/component-utils/array.polyfill.flat.js +0 -32
  79. package/common/component-utils/forwardRef.js +0 -37
  80. package/common/component-utils/index.js +0 -18
  81. package/common/component-utils/usePrevious.js +0 -12
  82. package/common/component-utils/utils.js +0 -26
  83. package/common/debounce.js +0 -11
  84. package/common/event-utils/index.js +0 -123
  85. package/common/event-utils/types.js +0 -14
  86. package/common/event-utils/use-key-press.js +0 -33
  87. package/common/event-utils/use-roving-index.js +0 -35
  88. package/common/floating-label-utils/hooks.js +0 -133
  89. package/common/notice-utils/notice-content.js +0 -12
  90. package/common/notice-utils/notice-cta.js +0 -23
  91. package/common/notice-utils/notice-footer.js +0 -23
  92. package/common/notice-utils/notice-title.js +0 -24
  93. package/common/random-id.js +0 -5
  94. package/common/range.js +0 -5
  95. package/common/tooltip-utils/constants.js +0 -95
  96. package/common/tooltip-utils/index.js +0 -19
  97. package/common/tooltip-utils/tooltip-close-button.js +0 -8
  98. package/common/tooltip-utils/tooltip-content.js +0 -25
  99. package/common/tooltip-utils/tooltip-footer.js +0 -9
  100. package/common/tooltip-utils/tooltip-host.js +0 -24
  101. package/common/tooltip-utils/tooltip.js +0 -60
  102. package/common/tooltip-utils/types.js +0 -2
  103. package/common/tooltip-utils/use-tooltip.js +0 -27
  104. package/ebay-alert-dialog/alert-dialog.js +0 -55
  105. package/ebay-alert-dialog/index.js +0 -8
  106. package/ebay-badge/badge.js +0 -25
  107. package/ebay-badge/index.js +0 -8
  108. package/ebay-breadcrumbs/breadcrumb-item.js +0 -27
  109. package/ebay-breadcrumbs/breadcrumbs.js +0 -64
  110. package/ebay-breadcrumbs/index.js +0 -10
  111. package/ebay-button/button-cell.js +0 -29
  112. package/ebay-button/button-expand.js +0 -13
  113. package/ebay-button/button-loading.js +0 -11
  114. package/ebay-button/button-text.js +0 -9
  115. package/ebay-button/button.js +0 -95
  116. package/ebay-button/index.js +0 -10
  117. package/ebay-button/types.js +0 -2
  118. package/ebay-calendar/calendar.js +0 -306
  119. package/ebay-calendar/date-utils.js +0 -58
  120. package/ebay-calendar/index.js +0 -8
  121. package/ebay-carousel/carousel-control-button.js +0 -24
  122. package/ebay-carousel/carousel-item.js +0 -59
  123. package/ebay-carousel/carousel-list.js +0 -81
  124. package/ebay-carousel/carousel.js +0 -109
  125. package/ebay-carousel/helpers.js +0 -123
  126. package/ebay-carousel/index.js +0 -10
  127. package/ebay-carousel/scroll-to-transition.js +0 -102
  128. package/ebay-carousel/types.js +0 -2
  129. package/ebay-checkbox/checkbox.js +0 -77
  130. package/ebay-checkbox/index.js +0 -8
  131. package/ebay-confirm-dialog/confirm-dialog.js +0 -56
  132. package/ebay-confirm-dialog/index.js +0 -8
  133. package/ebay-cta-button/cta-button.js +0 -30
  134. package/ebay-cta-button/index.js +0 -8
  135. package/ebay-date-textbox/date-textbox.js +0 -179
  136. package/ebay-date-textbox/index.js +0 -8
  137. package/ebay-dialog-base/components/animation.js +0 -96
  138. package/ebay-dialog-base/components/dialog-actions.js +0 -8
  139. package/ebay-dialog-base/components/dialog-close-button.js +0 -8
  140. package/ebay-dialog-base/components/dialog-footer.js +0 -8
  141. package/ebay-dialog-base/components/dialog-header.js +0 -22
  142. package/ebay-dialog-base/components/dialog-previous-button.js +0 -24
  143. package/ebay-dialog-base/components/dialogBase.js +0 -152
  144. package/ebay-dialog-base/dialog-base-with-state.js +0 -63
  145. package/ebay-dialog-base/index.js +0 -18
  146. package/ebay-drawer-dialog/components/drawer.js +0 -104
  147. package/ebay-drawer-dialog/index.js +0 -8
  148. package/ebay-eek/eek-rating.js +0 -23
  149. package/ebay-eek/eek-util.js +0 -34
  150. package/ebay-eek/index.js +0 -8
  151. package/ebay-fake-menu/index.js +0 -12
  152. package/ebay-fake-menu/menu-item-separator.js +0 -23
  153. package/ebay-fake-menu/menu-item.js +0 -72
  154. package/ebay-fake-menu/menu.js +0 -57
  155. package/ebay-fake-menu-button/index.js +0 -14
  156. package/ebay-fake-menu-button/menu-button-item.js +0 -5
  157. package/ebay-fake-menu-button/menu-button-label.js +0 -8
  158. package/ebay-fake-menu-button/menu-button-separator.js +0 -23
  159. package/ebay-fake-menu-button/menu-button.js +0 -105
  160. package/ebay-fake-tabs/fake-tabs.js +0 -54
  161. package/ebay-fake-tabs/index.js +0 -10
  162. package/ebay-fake-tabs/tab.js +0 -24
  163. package/ebay-field/description.js +0 -26
  164. package/ebay-field/field.js +0 -12
  165. package/ebay-field/index.js +0 -12
  166. package/ebay-field/label.js +0 -29
  167. package/ebay-field/types.js +0 -2
  168. package/ebay-fullscreen-dialog/fullscreen-dialog.js +0 -25
  169. package/ebay-fullscreen-dialog/index.js +0 -8
  170. package/ebay-icon/icon.js +0 -98
  171. package/ebay-icon/index.js +0 -8
  172. package/ebay-icon/types.js +0 -3
  173. package/ebay-icon-button/icon-button.js +0 -40
  174. package/ebay-icon-button/index.js +0 -8
  175. package/ebay-infotip/ebay-infotip-content.js +0 -12
  176. package/ebay-infotip/ebay-infotip-heading.js +0 -23
  177. package/ebay-infotip/ebay-infotip-host.js +0 -28
  178. package/ebay-infotip/ebay-infotip.js +0 -79
  179. package/ebay-infotip/index.js +0 -14
  180. package/ebay-infotip/types.js +0 -2
  181. package/ebay-inline-notice/index.js +0 -10
  182. package/ebay-inline-notice/inline-notice.js +0 -66
  183. package/ebay-inline-notice/types.js +0 -2
  184. package/ebay-lightbox-dialog/index.js +0 -8
  185. package/ebay-lightbox-dialog/lightbox-dialog.js +0 -27
  186. package/ebay-listbox-button/index.js +0 -10
  187. package/ebay-listbox-button/listbox-button-option.js +0 -27
  188. package/ebay-listbox-button/listbox-button.js +0 -252
  189. package/ebay-menu/index.js +0 -27
  190. package/ebay-menu/menu-item-separator.js +0 -23
  191. package/ebay-menu/menu-item.js +0 -67
  192. package/ebay-menu/menu.js +0 -149
  193. package/ebay-menu/types.js +0 -2
  194. package/ebay-menu-button/index.js +0 -29
  195. package/ebay-menu-button/menu-button-item.js +0 -5
  196. package/ebay-menu-button/menu-button-label.js +0 -8
  197. package/ebay-menu-button/menu-button-separator.js +0 -23
  198. package/ebay-menu-button/menu-button.js +0 -132
  199. package/ebay-menu-button/types.js +0 -2
  200. package/ebay-notice-base/components/ebay-notice-content/index.js +0 -8
  201. package/ebay-notice-base/components/ebay-notice-content/notice-content.js +0 -4
  202. package/ebay-notice-base/components/ebay-notice-title/index.js +0 -8
  203. package/ebay-notice-base/components/ebay-notice-title/notice-title.js +0 -8
  204. package/ebay-notice-base/index.js +0 -7
  205. package/ebay-page-notice/index.js +0 -16
  206. package/ebay-page-notice/page-notice-cta.js +0 -9
  207. package/ebay-page-notice/page-notice-footer.js +0 -9
  208. package/ebay-page-notice/page-notice-title.js +0 -23
  209. package/ebay-page-notice/page-notice.js +0 -66
  210. package/ebay-pagination/const.js +0 -8
  211. package/ebay-pagination/helpers.js +0 -92
  212. package/ebay-pagination/index.js +0 -10
  213. package/ebay-pagination/pagination-item.js +0 -55
  214. package/ebay-pagination/pagination.js +0 -146
  215. package/ebay-pagination/types.js +0 -2
  216. package/ebay-panel-dialog/index.js +0 -8
  217. package/ebay-panel-dialog/panel-dialog.js +0 -27
  218. package/ebay-progress-bar/index.js +0 -8
  219. package/ebay-progress-bar/progress-bar.js +0 -23
  220. package/ebay-progress-spinner/index.js +0 -8
  221. package/ebay-progress-spinner/progress-spinner.js +0 -35
  222. package/ebay-progress-stepper/ebay-progress-step.js +0 -64
  223. package/ebay-progress-stepper/ebay-progress-stepper.js +0 -70
  224. package/ebay-progress-stepper/ebay-progress-title.js +0 -5
  225. package/ebay-progress-stepper/index.js +0 -12
  226. package/ebay-progress-stepper/types.js +0 -2
  227. package/ebay-radio/index.js +0 -8
  228. package/ebay-radio/radio.js +0 -71
  229. package/ebay-section-notice/index.js +0 -14
  230. package/ebay-section-notice/section-notice-footer.js +0 -9
  231. package/ebay-section-notice/section-notice-title.js +0 -23
  232. package/ebay-section-notice/section-notice.js +0 -82
  233. package/ebay-section-title/cta.js +0 -26
  234. package/ebay-section-title/index.js +0 -16
  235. package/ebay-section-title/info.js +0 -23
  236. package/ebay-section-title/overflow.js +0 -23
  237. package/ebay-section-title/section-title.js +0 -35
  238. package/ebay-section-title/subtitle.js +0 -23
  239. package/ebay-section-title/title.js +0 -23
  240. package/ebay-select/ebay-select-option.js +0 -22
  241. package/ebay-select/ebay-select.js +0 -129
  242. package/ebay-select/index.js +0 -10
  243. package/ebay-signal/index.js +0 -8
  244. package/ebay-signal/signal.js +0 -24
  245. package/ebay-snackbar-dialog/components/ebay-snackbar-dialog-action.js +0 -24
  246. package/ebay-snackbar-dialog/components/ebay-snackbar-dialog.js +0 -122
  247. package/ebay-snackbar-dialog/index.js +0 -7
  248. package/ebay-split-button/index.js +0 -23
  249. package/ebay-split-button/split-button.js +0 -30
  250. package/ebay-split-button/types.js +0 -2
  251. package/ebay-star-rating/index.js +0 -23
  252. package/ebay-star-rating/star-rating.js +0 -26
  253. package/ebay-star-rating-select/index.js +0 -23
  254. package/ebay-star-rating-select/star-rating-select.js +0 -82
  255. package/ebay-svg/index.js +0 -8
  256. package/ebay-svg/svg.js +0 -2548
  257. package/ebay-switch/ebay-switch.js +0 -61
  258. package/ebay-switch/index.js +0 -8
  259. package/ebay-tabs/index.js +0 -12
  260. package/ebay-tabs/tab-panel.js +0 -24
  261. package/ebay-tabs/tab.js +0 -24
  262. package/ebay-tabs/tabs.js +0 -90
  263. package/ebay-tabs/types.js +0 -2
  264. package/ebay-textbox/index.js +0 -16
  265. package/ebay-textbox/postfix-icon.js +0 -26
  266. package/ebay-textbox/postfix-text.js +0 -8
  267. package/ebay-textbox/prefix-icon.js +0 -23
  268. package/ebay-textbox/prefix-text.js +0 -8
  269. package/ebay-textbox/textbox.js +0 -147
  270. package/ebay-textbox/types.js +0 -2
  271. package/ebay-toast-dialog/components/toast.js +0 -26
  272. package/ebay-toast-dialog/index.js +0 -8
  273. package/ebay-tooltip/ebay-tooltip-content.js +0 -8
  274. package/ebay-tooltip/ebay-tooltip-host.js +0 -8
  275. package/ebay-tooltip/ebay-tooltip.js +0 -85
  276. package/ebay-tooltip/index.js +0 -14
  277. package/ebay-tourtip/ebay-tourtip-content.js +0 -8
  278. package/ebay-tourtip/ebay-tourtip-footer.js +0 -10
  279. package/ebay-tourtip/ebay-tourtip-heading.js +0 -24
  280. package/ebay-tourtip/ebay-tourtip-host.js +0 -8
  281. package/ebay-tourtip/ebay-tourtip.js +0 -70
  282. package/ebay-tourtip/index.js +0 -18
  283. package/ebay-video/const.js +0 -19
  284. package/ebay-video/controls.js +0 -40
  285. package/ebay-video/index.js +0 -25
  286. package/ebay-video/reportButton.js +0 -12
  287. package/ebay-video/source.js +0 -22
  288. package/ebay-video/types.js +0 -2
  289. package/ebay-video/video.js +0 -210
package/ebay-switch.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react"),b=require("classnames"),o=s=>typeof s<"u",w=({id:s,value:i,name:r,className:u,checked:e,defaultChecked:h=!1,onChange:d=()=>{},...m})=>{const[a,c]=t.useState(h);t.useEffect(()=>{c(!!e)},[e]);const p=n=>{const{value:f="",checked:l=!1}=n.target||{};d(n,{value:f,checked:l}),c(l)};return t.createElement("span",{className:"switch"},t.createElement("input",{...m,className:b("switch__control",u),id:s,role:"switch",type:"checkbox",value:i,"aria-checked":o(e)?e:a,checked:o(e)?e:a,name:r,onChange:p}),t.createElement("span",{className:"switch__button"}))};exports.EbaySwitch=w;
package/ebay-tabs.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react"),i=require("classnames"),x=require("./index-DbjwTbDP.js"),E=require("./utils-C9NL3q0j.js"),_=({children:l,index:c,parentId:n,selected:o,focused:r,className:d,refCallback:m,...b})=>a.createElement("div",{...b,ref:m,"aria-controls":`${n||"default"}-tabpanel-${c}`,"aria-selected":o,className:i(d,"tabs__item"),id:`${n||"default"}-tab-${c}`,role:"tab",tabIndex:r?0:-1},a.createElement("span",null,l)),h=({children:l,index:c,parentId:n,selected:o,className:r,...d})=>a.createElement("div",{...d,"aria-labelledby":`default-tab-${c}`,className:i(r,"tabs__panel"),id:`${n||"default"}-tabpanel-${c}`,role:"tabpanel",hidden:!o},a.createElement("div",{className:"tabs__cell"},l)),D=({id:l,className:c,index:n=0,size:o="medium",activation:r="auto",onSelect:d=()=>{},onTabSelect:m=()=>{},children:b})=>{const I=[],[f,N]=a.useState(n),[p,T]=a.useState(n),u=e=>{d({selectedIndex:e}),m(e),N(e)},w=(e,t)=>{x.handleActionKeydown(e,()=>{e.preventDefault(),r==="manual"&&u(t)}),x.handleLeftRightArrowsKeydown(e,()=>{var g;e.preventDefault();const s=E.filterByType(b,_).length,q=["Left","ArrowLeft"].includes(e.key)?-1:1,y=((p===void 0?f:p)+s+q)%s;T(y),(g=I[y])==null||g.focus(),r!=="manual"&&u(y)})};a.useEffect(()=>{u(n)},[n]);const S=o==="large",v=E.filterByType(b,_).map((e,t)=>a.cloneElement(e,{...e.props,refCallback:s=>{I[t]=s},index:t,parentId:l,selected:f===t,focused:p===t,onClick:()=>{u(t),T(t)},onKeyDown:s=>{w(s,t)}})),P=E.filterByType(b,h).map((e,t)=>{const s={index:t,parentId:l,selected:f===t,children:e.props.children};return a.cloneElement(e,s)});return a.createElement("div",{id:l,className:i(c,"tabs")},a.createElement("div",{className:i("tabs__items",{"tabs__items--large":S}),role:"tablist"},v),a.createElement("div",{className:"tabs__content"},P))};exports.EbayTab=_;exports.EbayTabPanel=h;exports.EbayTabs=D;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const x=require("./textbox-WnB-9F4y.js");exports.EbayTextbox=x.EbayTextbox;exports.EbayTextboxPostfixIcon=x.EbayTextboxPostfixIcon;exports.EbayTextboxPostfixText=x.EbayTextboxPostfixText;exports.EbayTextboxPrefixIcon=x.EbayTextboxPrefixIcon;exports.EbayTextboxPrefixText=x.EbayTextboxPrefixText;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react"),s=require("classnames"),i=require("./dialog-previous-button-7ePoYWyj.js");require("./icon-button-BB6GFLm7.js");const r=({className:t,onClose:e=()=>{},...o})=>a.createElement(i.DialogBaseWithState,{...o,isModal:!1,baseEl:"aside",classPrefix:"toast-dialog",buttonPosition:"right",transitionElement:"root",className:s(t,"toast-dialog--transition"),onCloseBtnClick:e});exports.EbayToast=r;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),u=require("./utils-C9NL3q0j.js"),t=require("./use-tooltip-BavqG36Z.js");require("classnames");require("./icon-DK6eEQD8.js");require("./array.polyfill.flat-5BAolFdk.js");const c=()=>null,T=()=>null,g=({className:E,pointer:y,overlayStyle:f,noHover:l,onFocus:h=()=>{},onBlur:b=()=>{},onMouseEnter:d=()=>{},onMouseLeave:m=()=>{},onExpand:q,onCollapse:C,children:i,...M})=>{const{isExpanded:O,expandTooltip:s,collapseTooltip:r}=t.useTooltip({onCollapse:C,onExpand:q}),n=e.useRef(),w=o=>{d(o),l||(clearTimeout(n.current),s())},H=o=>{m(o),l||(clearTimeout(n.current),n.current=setTimeout(()=>{r()},300))},P=o=>{h(o),s()},R=o=>{b(o),r()},p=u.findComponent(i,c),a=u.findComponent(i,T);if(!a)throw new Error("EbayTooltip: Please use a EbayTooltipHost that defines the host of the tooltip");if(!p)throw new Error("EbayTooltip: Please use a EbayTooltipContent that defines the content of the tooltip");return e.createElement(t.Tooltip,{...M,className:E,type:"tooltip",isExpanded:O,onFocus:P,onBlur:R,onMouseEnter:w,onMouseLeave:H},e.createElement(t.TooltipHost,{...a.props}),e.createElement(t.TooltipContent,{...p.props,type:"tooltip",style:f,pointer:y}))};exports.Tooltip=t.Tooltip;exports.EbayTooltip=g;exports.EbayTooltipContent=c;exports.EbayTooltipHost=T;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react"),i=require("./utils-C9NL3q0j.js"),n=require("./use-tooltip-BavqG36Z.js"),F=require("classnames");require("./icon-DK6eEQD8.js");require("./array.polyfill.flat-5BAolFdk.js");const T=()=>null,d=()=>null,y=({index:e,children:r})=>t.createElement(t.Fragment,null,e!==void 0&&t.createElement("span",{className:"tourtip__index"},e),r),f=({as:e,children:r,className:a,...o})=>{const s=e||"h2";return t.createElement(s,{...o,className:F("tourtip__heading",a)},r)},P=({a11yCloseText:e,"aria-label":r,className:a,children:o,onCollapse:s,onExpand:b,overlayStyle:m,pointer:h,...C})=>{const p=t.useRef(),{isExpanded:u,collapseTooltip:g}=n.useTooltip({onExpand:b,onCollapse:s,initialExpanded:!0,hostRef:p}),H=t.useRef(),l=i.findComponent(o,T);if(!l)throw new Error("EbayTourtip: Please use a EbayTourtipContent that defines the content of the tourtip");const{children:q,contentProps:w}=l.props,c=i.findComponent(o,d);if(!c)throw new Error("EbayTourtip: Please use a EbayTourtipHost that defines the host of the tourtip");const R=i.findComponent(o,f),E=i.findComponent(o,y);return t.createElement(n.Tooltip,{...C,className:a,type:"tourtip",isExpanded:u,ref:H},t.createElement(n.TooltipHost,{...c.props,forwardedRef:p,"aria-label":r,"aria-expanded":u}),t.createElement(n.TooltipContent,{...w,a11yCloseText:e,onClose:g,pointer:h,showCloseButton:!0,style:m,type:"tourtip"},R,q,E&&t.createElement(n.TooltipFooter,{type:"tourtip"},E)))};exports.Tooltip=n.Tooltip;exports.EbayTourtip=P;exports.EbayTourtipContent=T;exports.EbayTourtipFooter=y;exports.EbayTourtipHeading=f;exports.EbayTourtipHost=d;
package/ebay-video.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";var U=Object.defineProperty;var X=(n,r,a)=>r in n?U(n,r,{enumerable:!0,configurable:!0,writable:!0,value:a}):n[r]=a;var T=(n,r,a)=>X(n,typeof r!="symbol"?r+"":r,a);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),b=require("classnames"),d=require("shaka-player/dist/shaka-player.ui"),Z=require("./utils-C9NL3q0j.js"),R=require("./icon-DK6eEQD8.js"),ee=require("./progress-spinner-CDgxI8R_.js"),te=require("react-dom/client"),w=({...n})=>e.createElement("source",{...n}),ne=7e3,re=11,V={addBigPlayButton:!1,addSeekBar:!0,controlPanelElements:["play_pause","time_and_duration","spacer","mute","report","captions","fullscreen"]},ae=({callback:n,children:r})=>e.createElement("button",{className:"video-player__report-button",ref:n},e.createElement(R.EbayIcon,{name:"flag24"}),r);function oe(n=()=>{}){const r=class extends d.ui.Element{constructor(a,u,y){super(a,u);const i=document.createElement("div"),E=()=>{const m=i.firstChild;a.appendChild(m),i.remove(),this.eventManager.listen(m,"click",n)};te.createRoot(i).render(e.createElement(ae,{callback:E},y))}};return r.Factory=class{constructor(a){T(this,"reportText");this.reportText=a}create(a,u){return new r(a,u,this.reportText)}},{Report:r}}const le=({width:n,height:r,thumbnail:a,action:u,muted:y,playView:i="inline",a11yLoadText:E,a11yPlayText:m,reportText:_,volumeSlider:A,volume:x=1,hideReportButton:I,errorText:L,onVolumeChange:F=()=>{},onLoadError:M=()=>{},onPlay:z=()=>{},onReport:$=()=>{},children:j,...D})=>{const[P,v]=e.useState(),[S,H]=e.useState(),[k,W]=e.useState(),[h,C]=e.useState(),N=e.useRef(null),l=e.useRef(null),s=e.useRef(null),p=e.useRef(null),f=Z.filterByType(j,w).map(({props:t})=>t),B=t=>{v(!0),C(!0),M(t)},g=(t=0)=>{var o;!f.length||!s.current||(v(!1),s.current.load((o=f[t])==null?void 0:o.src).then(()=>{C(!1)}).catch(c=>{switch(console.error(c),c.code){case ne:return;case re:setTimeout(()=>g(t),0);break;default:{const q=f.length>t+1&&t+1;q?setTimeout(()=>g(q),0):B(c)}}}).finally(()=>{v(!0)}))};e.useEffect(()=>{const t=l.current,o=N.current;if(!(!t||!o)&&(t.volume=x,d.polyfill.installAll(),s.current=new d.Player(t),!!s.current)){if(s.current.addEventListener("error",B),s.current.addEventListener("buffering",c=>{H(c.buffering)}),p.current=new d.ui.Overlay(s.current,o,t,_),p.current.configure({addBigPlayButton:!0,controlPanelElements:[],addSeekBar:!1}),!I){const{Report:c}=oe($);d.ui.Controls.registerElement("report",new c.Factory(_))}g(),ce(o)}},[]),e.useEffect(()=>{switch(u){case"play":l.current.play();break;case"pause":l.current.pause();break}},[u]);const Y=()=>{if(!p.current)return;const t=A?{controlPanelElements:se(V.controlPanelElements)}:{};p.current.configure({...V,...t}),l.current.controls=!1},G=t=>{t.stopPropagation(),Y(),i==="fullscreen"&&l.current.requestFullscreen(),W(!0),z(t,{player:s.current})},J=()=>{l.current.play()},K=t=>{const o=t.currentTarget;F(t,{volume:Math.round((o.volume+Number.EPSILON)*100)/100,muted:o.muted})},Q=()=>{l.current.controls=!1},O={width:n?`${n}px`:void 0,height:r?`${r}px`:void 0};return e.createElement("div",{style:O,className:b("video-player",{"video-player--poster":!k})},!k&&P&&!h&&!S&&e.createElement("div",{className:"shaka-play-button-container"},e.createElement("button",{onClick:J,className:"shaka-play-button",style:{opacity:1,zIndex:999},"aria-label":m},e.createElement(R.EbayIcon,{name:"playFilled64Colored"}))),e.createElement("div",{className:"video-player__container",ref:N},e.createElement("video",{ref:l,style:O,poster:a,muted:y||!1,onPlaying:G,onPause:Q,onVolumeChange:K,...D},f.map((t,o)=>e.createElement("source",{key:o,...t})))),e.createElement("div",{className:b("video-player__overlay",{"video-player__overlay--hidden":!h})},e.createElement(R.EbayIcon,{name:"attention64"}),e.createElement("div",{className:"video-player__overlay-text"},L)),e.createElement("div",{className:b("video-player__overlay",{"video-player__overlay--hidden":P&&(h||!S)})},e.createElement(ee.EbayProgressSpinner,{size:"large","aria-label":E})))};function se(n){const r=n.length-2>0?n.length-2:n.length,a=[...n];return a.splice(r,0,"volume"),a}function ce(n){const r=n.querySelectorAll(".shaka-spinner")[0];r&&r.setAttribute("hidden","")}exports.EbayVideo=le;exports.EbayVideoSource=w;
@@ -0,0 +1 @@
1
+ "use strict";const o=require("react"),N=require("classnames"),n="floating-label__label",T=["rgb(245, 245, 245)","rgb(247, 247, 247)"],v=t=>t&&!T.includes(getComputedStyle(t).backgroundColor),g=t=>{var a;return((a=t==null?void 0:t.value)==null?void 0:a.length)>0},p=t=>(t==null?void 0:t.tagName)==="SELECT",f=(t,a)=>{if(p(t)&&!g(t.querySelector("option"))){t.style["min-width"]="";const l=t.offsetWidth;t.querySelector("option").text=a,!a&&l>t.offsetWidth&&(t.style["min-width"]=`${l}px`)}},G=t=>p(t)?t.querySelector("option").text:t==null?void 0:t.placeholder;function I({ref:t,inputId:a,className:l,disabled:q,label:c,inputSize:y,inputValue:d,placeholder:b,invalid:R,opaqueLabel:$,type:m,onMount:B=()=>{}}){const L=o.useRef(null),s=()=>t||L,[F,u]=o.useState(!!d),[k,h]=o.useState(!1),[i,C]=o.useState(!1),E=o.useRef(""),A=()=>{var e;h(!0),u(g((e=s())==null?void 0:e.current)),C(!1),f(s().current,"")},P=()=>{var e;h(!0),u(!0),C(!0),f((e=s())==null?void 0:e.current,E.current)};o.useEffect(()=>{var e,r;c&&(E.current=G((e=s())==null?void 0:e.current),f((r=s())==null?void 0:r.current,""),B())},[]),o.useEffect(()=>{var e,r,x;c&&u(i||g((e=s())==null?void 0:e.current)||v((x=(r=s())==null?void 0:r.current)==null?void 0:x.parentNode))},[i,d]);const W=N(l,n,{[`${n}--disabled`]:q,[`${n}--animate`]:k,[`${n}--inline`]:!F&&m!=="date",[`${n}--focus`]:i,[`${n}--invalid`]:R}),S=N("floating-label",{"floating-label--large":y==="large","floating-label--opaque":$}),_=o.useCallback(({children:e})=>o.createElement(o.Fragment,null,e),[]),w=o.useCallback(({children:e})=>o.createElement("span",{className:S},e),[S]);return c?{label:o.createElement("label",{htmlFor:a,className:W},c),Container:w,onBlur:A,onFocus:P,ref:s(),placeholder:F?b:null}:{label:null,Container:_,onBlur:()=>{},onFocus:()=>{},ref:s(),placeholder:b}}exports.useFloatingLabel=I;
@@ -0,0 +1 @@
1
+ "use strict";const a=require("react"),I=require("classnames");require("./array.polyfill.flat-5BAolFdk.js");const h=t=>t.displayName||t.name||"Component",c=t=>{const e=a.forwardRef((n,r)=>a.createElement(t,{...n,forwardedRef:r}));return e.displayName=h(t),e},l=()=>Math.random().toString(16).slice(-4),p=({name:t,className:e,noSkinClasses:n=!1,a11yText:r,a11yVariant:d,forwardedRef:f,...m})=>{const[u,b]=a.useState("");a.useEffect(()=>{b(l())},[]);const o=d==="label",i=r&&`icon-title-${u}`,N=r?{"aria-labelledby":o?void 0:i,"aria-label":o?r:void 0,role:"img"}:{"aria-hidden":!0},s=R(t),w=["icon",`icon--${E(s)||s}`,y(s)].filter(Boolean).join(" "),g=I(e,{[w]:!n});return a.createElement("svg",{...m,className:g,xmlns:"http://www.w3.org/2000/svg",focusable:!1,ref:f,...N},r&&!o&&a.createElement("title",{id:i},r),a.createElement("use",{xlinkHref:`#icon-${s}`}))};function E(t){const e=t.split("-"),n=e[e.length-1];return n==="colored"?e[e.length-2]:isNaN(Number(n))?"":n}function y(t){const e=t.split("-"),n=e.indexOf("filled");return n===-1?"":`icon--${e.slice(0,n+1).join("-")}`}function R(t){return t.replace(/([0-9]+)/g,(e,n)=>`-${n}`).replace(/([A-Z])/g,(e,n)=>`-${n.toLowerCase()}`)}const $=c(p);exports.EbayIcon=$;exports.randomId=l;exports.withForwardRef=c;
@@ -0,0 +1 @@
1
+ "use strict";const e=require("react"),p=require("classnames"),y=require("./icon-DK6eEQD8.js"),w=require("./badge-CoHKfiPt.js");require("./array.polyfill.flat-5BAolFdk.js");const B=({href:c,icon:E,badgeNumber:a,badgeAriaLabel:m,transparent:b,className:q,forwardedRef:o,size:r,onEscape:$=()=>{},onKeyDown:k=()=>{},...s})=>{const n=c?"icon-link":"icon-btn",i=p(q,n,r&&`${n}--${r}`,{[`${n}--badged`]:a,[`${n}--transparent`]:b}),l=e.createElement(e.Fragment,null,e.createElement(y.EbayIcon,{name:E}),a&&e.createElement(w.EbayBadge,{type:"icon",number:a,"aria-label":m})),u=t=>{(t.key==="Escape"||t.key==="Esc")&&$(t),k(t)};return c?e.createElement("a",{ref:o,className:i,href:c,onKeyDown:u,...s},l):e.createElement("button",{ref:o,type:"button",className:i,onKeyDown:u,...s},l)},I=y.withForwardRef(B);exports.EbayIconButton=I;
@@ -0,0 +1 @@
1
+ "use strict";function t(n,e,o=()=>{}){n.includes(e.key)&&o()}function c(n,e){i(n.key)&&e()}function i(n){return[" ","Enter"].includes(n)}function d(n,e){t(["Esc","Escape"],n,e)}function r(n,e){t(["Left","ArrowLeft","Right","ArrowRight"],n,e)}exports.handleActionKeydown=c;exports.handleEscapeKeydown=d;exports.handleLeftRightArrowsKeydown=r;exports.isActionKey=i;
@@ -0,0 +1 @@
1
+ "use strict";const e=require("react"),d=require("classnames"),i=({className:l,children:a,stacked:s=!1,required:t=!1,position:r="start",...n})=>{const c=d("field__label",l,{"field__label--stacked":s},{"field__label--end":r==="end"}),u=t?e.createElement(e.Fragment,null," ",e.createElement("sup",null,"*")):null;return e.createElement("label",{className:c,...n},a,u)};exports.Label=i;
@@ -0,0 +1 @@
1
+ "use strict";const t=require("react"),q=require("classnames"),B=require("./index-DbjwTbDP.js"),K=require("./icon-DK6eEQD8.js");require("./array.polyfill.flat-5BAolFdk.js");const N=require("./badge-CoHKfiPt.js"),O=()=>{const[l,c]=t.useState(!1),[k,o]=t.useState(!1),d=({key:u})=>{const a={ArrowUp:c,ArrowDown:o}[u];a&&a(!1)},f=({key:u})=>{const a={ArrowUp:c,ArrowDown:o}[u];a&&a(!0)};return t.useEffect(()=>(window.addEventListener("keydown",f),window.addEventListener("keyup",d),()=>{window.removeEventListener("keydown",f),window.removeEventListener("keyup",d)}),[]),[l,k]},H=(l,c,k)=>{const[o,d]=t.useState(k),[f,u]=O(),a=t.Children.toArray(l).reduce((s,I,p)=>I.type===c?[...s,p]:s,[]),m=a.indexOf(o),E=()=>{if(m===-1)return o;const s=a[m-1];return s===void 0?o:s},w=()=>{if(m===-1)return o;const s=a[m+1];return s===void 0?o:s};return t.useEffect(()=>{f&&d(E()),u&&d(w())},[f,u]),[o,d]},M=({className:l,checked:c,type:k,focused:o=!1,tabIndex:d,disabled:f,badgeNumber:u,badgeAriaLabel:a,children:m,...E})=>{const w=t.useRef(null),s=u!==void 0;t.useEffect(()=>{w.current&&o&&w.current.focus()},[w,o]);const I=["radio","checkbox"];return t.createElement("div",{"aria-label":a,...E,ref:w,className:q(l,"menu__item",s&&"menu__item--badged"),role:T(k),"aria-checked":I.includes(k)?c:void 0,"aria-disabled":f,tabIndex:o?0:d},t.createElement("span",{"aria-hidden":s},m,s&&t.createElement(N.EbayBadge,{type:"menu",number:u})),t.createElement(K.EbayIcon,{name:"tick16"}))};function T(l){return{radio:"menuitemradio",checkbox:"menuitemcheckbox"}[l]||"menuitem"}const j=({baseEl:l="span",type:c,priority:k="secondary",checked:o,className:d,autofocus:f,onClick:u=()=>{},onKeyDown:a=()=>{},onChange:m=()=>{},onSelect:E=()=>{},forwardedRef:w,children:s,...I})=>{const p=t.Children.toArray(s),[g,A]=H(s,M,f===!0?0:void 0),[v,P]=t.useState(p.map(()=>!1)),U=n=>p.reduce((e,r,h)=>n[h]?[...e,r.props.value]:e,[]),D=n=>n.reduce((e,r,h)=>r?[...e,h]:e,[]),C=(n,e)=>({index:n,checked:D(e)}),F=(n,e)=>({...C(n,e),indexes:D(e),checkedValues:U(e)}),R=(n,e,r=!1)=>{let h=!1;const y=v.map((x,i)=>{const V=r?!1:x;return n===i?(x!==e&&(h=!0),e):V});if(h)return P(y),y},b=n=>{switch(c){case"radio":return R(n,!0,!0);case"checkbox":return R(n,!v[n],!1);default:return v.map((e,r)=>r===n)}};t.useEffect(()=>{if(c==="radio")if(o===void 0){const n=p.findIndex(e=>e.props.checked);n>-1&&b(n)}else b(o);else c==="checkbox"&&P(p.map(n=>!!n.props.checked))},[]);const _=(n,e,r)=>{switch(c){case"radio":case"checkbox":return m(n,F(e,r));default:return E(n,C(e,r))}},L=(n,e)=>{let r;switch(B.isActionKey(n.key)&&(r=b(e),r&&_(n,e,r)),c){case"radio":case"checkbox":return a(n,F(e,r||v));default:return a(n,C(e,r||v))}},S=(n,e)=>{A(e);const r=b(e);r&&_(n,e,r)};return t.createElement(l,{...I,className:q(d,"menu")},t.createElement("div",{className:"menu__items",role:"menu",ref:w},p.map((n,e)=>{const{onClick:r=()=>{},onFocus:h=()=>{},onKeyDown:y=()=>{},...x}=n.props;return t.cloneElement(n,{...x,type:c,focused:e===g,tabIndex:g===void 0?0:-1,checked:v[e],onFocus:i=>{A(e),h(i)},onClick:i=>{S(i,e),r(i),u(i)},onKeyDown:i=>{L(i,e),y(i)}})})))},z=K.withForwardRef(j);exports.EbayMenu=z;exports.EbayMenuItem=M;
@@ -0,0 +1 @@
1
+ "use strict";const e=require("react"),s=require("classnames"),m=require("./utils-C9NL3q0j.js"),D=require("./index-DbjwTbDP.js"),p=require("./icon-DK6eEQD8.js"),R=require("./button-o4ao46WM.js"),z=require("./icon-button-BB6GFLm7.js"),y=require("./menu-item-DBi1NcrM.js"),H=({a11yText:o,noToggleIcon:r,fixWidth:_,reverse:I,variant:i,expanded:q=!1,className:v,onCollapse:x=()=>{},onExpand:w=()=>{},onMouseDown:F=()=>{},onSelect:N=()=>{},text:d="",children:c,...C})=>{const[a,l]=e.useState(q),[b,S]=e.useState(),u=e.useRef(),f=m.findComponent(c,p.EbayIcon),h=m.findComponent(c,M)||(f?e.createElement("span",null,d):d),L=m.filterByType(c,[k,B]);e.useEffect(()=>{const n=t=>{u.current&&!u.current.contains(t.currentTarget)&&l(!1)};return a?(w(),setTimeout(()=>{document.addEventListener("click",n,!1)})):a===!1&&x(),()=>document.removeEventListener("click",n,!1)},[a]),e.useEffect(()=>{S(p.randomId())},[]);const g=n=>{D.handleEscapeKeydown(n,()=>{var t;l(!1),(t=u.current)==null||t.focus()})},K=s("fake-menu-button__menu",{"menu-button__menu--fix-width":_,"menu-button__menu--reverse":I}),E={ref:u,className:"fake-menu-button__button","aria-expanded":!!a,"aria-haspopup":!0,"aria-label":o,"aria-controls":b,onClick:()=>l(!a),...C};return e.createElement("span",{className:s("fake-menu-button",v)},i==="overflow"?e.createElement(z.EbayIconButton,{icon:"overflowHorizontal24",...E}):e.createElement(R.EbayButton,{variant:i==="form"?"form":void 0,bodyState:r?void 0:"expand",...E},f,h),a&&e.createElement(y.EbayFakeMenu,{className:K,id:b,tabIndex:-1,onKeyDown:g,onSelect:N},L.map((n,t)=>e.cloneElement(n,{...n.props,onMouseDown:T=>{F(T,{index:t})},className:s(n.props.className,"fake-menu-button__item"),key:t,autoFocus:t===0}))))},k=y.EbayMenuItem,B=({className:o,...r})=>e.createElement("hr",{...r,className:s(o,"menu-button__separator"),role:"separator"}),M=({children:o})=>e.createElement(e.Fragment,null,o);exports.EbayFakeMenuButtonItem=k;exports.EbayFakeMenuButtonLabel=M;exports.EbayMenuButton=H;exports.EbayMenuButtonSeparator=B;
@@ -0,0 +1 @@
1
+ "use strict";const e=require("react"),g=require("classnames"),p=require("./icon-DK6eEQD8.js"),k=require("./badge-CoHKfiPt.js"),v=({className:m,itemMatchesUrl:d=!0,onKeyDown:a=()=>{},onSelect:l=()=>{},children:E,...r})=>{const b=e.Children.toArray(E),c=d===!1?"true":"page";return e.createElement("div",{...r,className:g(m,"fake-menu")},e.createElement("ul",{className:"fake-menu__items",tabIndex:-1},b.map((s,t)=>{const{current:u,onClick:o=()=>{},...i}=s.props;return e.createElement("li",{key:t},e.cloneElement(s,{...i,"aria-current":u?c:void 0,onClick:n=>{l(n,{index:t}),o(n)},onKeyDown:n=>{a(n,{index:t})}}))})))},_=({className:m,current:d,disabled:a,autoFocus:l,type:E,badgeNumber:r,badgeAriaLabel:b,children:c,...s})=>{const t=e.useRef(),u=r!==void 0;e.useEffect(()=>{var f;l&&((f=t.current)==null||f.focus())});const o={...s,ref:t,className:g(m,"fake-menu__item",u&&"menu__item--badged"),"aria-label":b},i=e.createElement(p.EbayIcon,{name:"tick16"}),n={marginLeft:"var(--spacing-100)",marginRight:"var(--spacing-100)"},y=u&&e.createElement(k.EbayBadge,{type:"menu",number:r,style:n});return E==="button"?e.createElement("button",{...o,type:"button",disabled:a},e.createElement("span",null,c,y),i):e.createElement("a",{...o,"aria-disabled":a?"true":void 0},e.createElement("span",null,c,y),i)};exports.EbayFakeMenu=v;exports.EbayMenuItem=_;
@@ -0,0 +1 @@
1
+ "use strict";const s=require("react"),i=require("classnames"),o=({className:t,type:e,children:n})=>{const c=e==="inline"?"span":"div";return s.createElement(c,{className:i(t,`${e}-notice__main`)},n)};exports.NoticeContent=o;
@@ -0,0 +1 @@
1
+ "use strict";const t=()=>null;exports.EbayNoticeContent=t;
@@ -0,0 +1 @@
1
+ "use strict";const i=require("react"),s=require("classnames"),n=({className:e,type:t,as:c,children:o,...r})=>{const a=c||"h2";return i.createElement(a,{className:s(e,`${t}-notice__title`),...r},o)},l=({className:e,type:t,children:c,...o})=>i.createElement("div",{className:s(e,`${t}-notice__footer`),...o},c);exports.NoticeFooter=l;exports.NoticeTitle=n;
package/package.json CHANGED
@@ -1,10 +1,17 @@
1
1
  {
2
2
  "name": "@ebay/ui-core-react",
3
- "version": "7.0.2",
3
+ "version": "7.1.0-alpha.3",
4
4
  "description": "Skin components build off React",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org"
7
7
  },
8
+ "exports": {
9
+ "./package.json": "./package.json",
10
+ "./*": {
11
+ "types": "./*/index.d.ts",
12
+ "default": "./*.js"
13
+ }
14
+ },
8
15
  "scripts": {
9
16
  "clean": "node scripts/clean",
10
17
  "lint": "eslint . --ext ts,tsx",
@@ -18,13 +25,14 @@
18
25
  "build-storybook": "storybook build",
19
26
  "storybook:publish": "NODE_OPTIONS=--openssl-legacy-provider yarn build-storybook --output-dir storybook-static/$(git branch --show-current) && gh-pages --add --message=\"Deploying to gh-pages from @ eBay/ebayui-core-react@$(git rev-parse --short HEAD) 🚀\" -d storybook-static",
20
27
  "test": "yarn jest",
21
- "build": "yarn typecheck && yarn tsc",
22
- "typecheck": "tsc --project tsconfig.typecheck.json",
28
+ "build:tsc": "yarn tsc",
29
+ "build": "yarn type:check && vite build",
30
+ "type:check": "tsc --noEmit",
23
31
  "update-icons": "node ./scripts/update-icons",
24
- "copy": "copyfiles package.json README.md lib; yarn copy:rest",
25
- "copy:rest": "yarn copyfiles -u 1 'src/**/*.md' lib",
26
- "release": "yarn build && yarn copy && CI=1 npm publish lib/ --access public",
27
- "release:rc": "npm version prerelease --preid rc && yarn clean && yarn build && yarn copy && CI=1 npm publish --tag rc lib/",
32
+ "copy": "copyfiles package.json README.md dist; yarn copy:rest",
33
+ "copy:rest": "yarn copyfiles -u 1 'src/**/*.md' dist",
34
+ "release": "yarn clean && yarn build && yarn copy && CI=1 npm publish dist/ --access public",
35
+ "release:rc": "yarn clean && yarn build && yarn copy && CI=1 npm publish --tag rc dist/",
28
36
  "prepare": "node scripts/husky-install || node ../scripts/husky-install"
29
37
  },
30
38
  "lint-staged": {
@@ -63,6 +71,7 @@
63
71
  "@babel/register": "^7.0.0",
64
72
  "@ebay/skin": "^18.0.0",
65
73
  "@microsoft/eslint-formatter-sarif": "^3.0.0",
74
+ "@rollup/plugin-typescript": "^11.1.6",
66
75
  "@storybook/addon-a11y": "^7.6.12",
67
76
  "@storybook/addon-essentials": "^7.4.6",
68
77
  "@storybook/addon-storysource": "^7.6.12",
@@ -101,13 +110,15 @@
101
110
  "react": "^18",
102
111
  "react-docgen-typescript-loader": "^3.7.2",
103
112
  "react-dom": "^18",
113
+ "rollup-plugin-node-externals": "^7.1.3",
104
114
  "shaka-player": "^4.3.2",
105
115
  "storybook": "^7.5.1",
106
116
  "style-loader": "^2.0.0",
107
117
  "svgson": "^4.0.0",
108
118
  "ts-jest": "^29.1.1",
109
119
  "ts-loader": "^8.0.7",
110
- "typescript": "4"
120
+ "typescript": "4",
121
+ "vite": "^5.4.7"
111
122
  },
112
123
  "resolutions": {
113
124
  "@storybook/addon-actions": "~7.5.3",
@@ -0,0 +1 @@
1
+ "use strict";const s=require("react"),l=require("classnames"),i=require("./icon-DK6eEQD8.js"),t={default:"",small:"progress-spinner--small",large:"progress-spinner--large"},c={default:"spinner24",small:"spinner20",large:"spinner30"},o=({size:e="default","aria-label":r="Busy",className:a,...n})=>s.createElement("span",{...n,className:l("progress-spinner",t[e],a),"aria-label":r,role:"img"},s.createElement(i.EbayIcon,{name:c[e]}));exports.EbayProgressSpinner=o;
@@ -0,0 +1 @@
1
+ "use strict";const l=(a,c,r=1)=>Array(Math.ceil((c+1-a)/r)).fill(a).map((e,i)=>e+i*r);exports.range=l;
@@ -0,0 +1 @@
1
+ "use strict";const t=require("react"),ue=require("classnames"),y=require("./icon-DK6eEQD8.js"),p=require("./utils-C9NL3q0j.js"),xe=require("./icon-button-BB6GFLm7.js"),be=require("./hooks-Ctier7Yv.js"),P=({name:n,buttonAriaLabel:a,onClick:c=()=>{},...r})=>a?t.createElement(xe.EbayIconButton,{"aria-label":a,icon:n,transparent:!0,onClick:c,...r}):t.createElement(y.EbayIcon,{name:n,...r}),B=n=>t.createElement("span",{...n}),w=({name:n,...a})=>t.createElement(y.EbayIcon,{name:n,...a}),F=n=>t.createElement("span",{...n}),E=n=>typeof n<"u",de=({type:n="text",invalid:a,fluid:c,multiline:r,onChange:N=()=>{},onInputChange:q=()=>{},onFocus:K=()=>{},onBlur:k=()=>{},onKeyPress:L=()=>{},onKeyUp:D=()=>{},onKeyDown:R=()=>{},onInvalid:U=()=>{},onFloatingLabelInit:_=()=>{},onButtonClick:j=()=>{},autoFocus:m,defaultValue:f="",value:i,forwardedRef:M,inputSize:I="default",floatingLabel:O,children:u,placeholder:S,opaqueLabel:V,...s})=>{var h,v;const[g,W]=t.useState(f),[C,$]=t.useState(f),{label:G,Container:H,onBlur:J,onFocus:Q,ref:X,placeholder:Y}=be.useFloatingLabel({ref:M,inputId:s.id,className:s.className,disabled:s.disabled,label:O,inputSize:I,inputValue:i||C,placeholder:S,invalid:a,type:n,opaqueLabel:V,onMount:_}),T=e=>{var o;K(e,{value:((o=e==null?void 0:e.target)==null?void 0:o.value)||f}),Q()},Z=e=>{var l;const o=(l=e.target)==null?void 0:l.value;k(e,{value:o}),o!==g&&(N(e,{value:o}),W(o)),J()},z=e=>{const o=e.target;L(e,{value:o==null?void 0:o.value})},A=e=>{const o=e.target;D(e,{value:o==null?void 0:o.value})},ee=e=>{const o=e.target;R(e,{value:o==null?void 0:o.value})},oe=e=>{const o=e.target;U(e,{value:o==null?void 0:o.value})},ne=e=>{j(e,{value:g})};t.useEffect(()=>{m&&T()},[]);const te=e=>{var l;const o=(l=e.target)==null?void 0:l.value;E(i)||$(o),q(e,{value:o})},ae=r?"textarea":"input",se=c?"div":"span",le=p.findComponent(u,w),x=p.findComponent(u,F),ce=(h=x==null?void 0:x.props)==null?void 0:h.id,b=p.findComponent(u,P),d=p.findComponent(u,B),re=(v=d==null?void 0:d.props)==null?void 0:v.id,ie=ue("textbox",s.className,{"textbox--fluid":c,"textbox--large":I==="large","textbox--disabled":s.disabled,"textbox--invalid":a,"textbox--readonly":s.readOnly});return t.createElement(H,null,G,t.createElement(se,{className:ie},le,x,t.createElement(ae,{"aria-describedby":[ce,re].filter(Boolean).join(" ")||void 0,...s,className:"textbox__control",type:n,"aria-invalid":a,value:E(i)?i:C,onChange:te,onBlur:Z,onFocus:T,onKeyPress:z,onKeyUp:A,onKeyDown:ee,onInvalid:oe,autoFocus:m,ref:X,placeholder:Y}),d,b&&t.cloneElement(b,{...b.props,onClick:e=>{const{onClick:o=()=>{}}=b.props;o(e),ne(e)}})))},pe=y.withForwardRef(de);exports.EbayTextbox=pe;exports.EbayTextboxPostfixIcon=P;exports.EbayTextboxPostfixText=B;exports.EbayTextboxPrefixIcon=w;exports.EbayTextboxPrefixText=F;exports.isControlled=E;
@@ -0,0 +1 @@
1
+ "use strict";const t=require("react"),d=require("classnames"),b=require("./icon-DK6eEQD8.js"),i=require("./utils-C9NL3q0j.js"),u=({children:o,className:e,forwardedRef:s,...a})=>(t.Children.only(o),t.cloneElement(o,{ref:s,...a,className:d(e,o.props.className)})),T=({className:o,type:e,isExpanded:s,children:a,forwardedRef:l,...c})=>{var m;const p=i.findComponent(a,u),r=i.excludeComponent(a,u)[0];if(!p)throw new Error("Tooltip: Please use a TooltipHost that defines the host of the tooltip");const n=t.cloneElement(p,{className:`${e}__host`,"aria-expanded":s,"aria-describedby":(m=r==null?void 0:r.props)==null?void 0:m.id,...p.props});return t.createElement("span",{...c,ref:l,className:d(o,e,{[`${e}--expanded`]:s})},n,r)},_=b.withForwardRef(T),E="bottom",g={tooltip:"tooltip",tourtip:"region",infotip:""},h={left:{transform:"translateX(16px) translateY(-50%) scale3d(1,1,1)",left:"100%",right:"auto",top:"-6px",bottom:"auto"},"left-top":{transform:"translateX(16px) scale3d(1,1,1)",left:"100%",right:"auto",top:"-100%",bottom:"auto"},"left-bottom":{transform:"translateX(16px) scale3d(1,1,1)",left:"100%",right:"auto",top:"auto",bottom:"-10px"},right:{transform:"translateX(-16px) translateY(-50%) scale3d(1,1,1)",left:"auto",right:"100%",top:"-6px",bottom:"auto"},"right-top":{transform:"translateX(-16px) scale3d(1,1,1)",left:"auto",right:"100%",top:"-100%",bottom:"auto"},"right-bottom":{transform:"translateX(-16px) scale3d(1,1,1)",left:"auto",right:"100%",top:"auto",bottom:"-50%"},top:{transform:"translateX(-50%) scale3d(1,1,1)",left:"50%",right:"auto",top:"calc(100% + 2px)",bottom:"auto"},"top-left":{transform:"scale3d(1,1,1)",left:"-10px",right:"auto",top:"calc(100% + 2px)",bottom:"auto"},"top-right":{transform:"scale3d(1,1,1)",left:"auto",right:"-10px",top:"calc(100% + 2px)",bottom:"auto"},"bottom-right":{transform:"scale3d(1,1,1)",left:"auto",right:"-10px",top:"auto",bottom:"calc(100% + 12px)"},"bottom-left":{transform:"scale3d(1,1,1)",left:"-10px",right:"auto",top:"auto",bottom:"calc(100% + 12px)"},bottom:{transform:"translateX(-50%) scale3d(1,1,1)",left:"50%",right:"auto",top:"auto",bottom:"calc(100% + 12px)"}},N=()=>null,f=({children:o,className:e,type:s="tourtip"})=>t.createElement("div",{className:d(`${s}__footer`,e)},o),C=({id:o,style:e,pointer:s=E,children:a,type:l="tooltip",showCloseButton:c,a11yCloseText:p,onClose:r})=>{const n=i.findComponent(a,N),m=i.findComponent(a,f),x=i.excludeComponent(a,f);return t.createElement("span",{className:`${l}__overlay`,id:o,role:g[l]||null,style:{...h[s],...e}},t.createElement("span",{className:`${l}__pointer ${l}__pointer--${s}`}),t.createElement("span",{className:`${l}__mask`},t.createElement("span",{className:`${l}__cell`},t.createElement("span",{className:`${l}__content`},x),c?t.createElement("button",{...n==null?void 0:n.props,className:`icon-btn icon-btn--transparent ${l}__close`,type:"button","aria-label":p,onClick:r},t.createElement(b.EbayIcon,{name:"close16"})):null,m)))},$=({onExpand:o,onCollapse:e,initialExpanded:s=!1,hostRef:a})=>{const[l,c]=t.useState(s);return{isExpanded:l,expandTooltip:()=>{c(!0),o&&o()},collapseTooltip:()=>{var n;c(!1),e&&e(),(n=a==null?void 0:a.current)==null||n.focus()}}};exports.Tooltip=_;exports.TooltipContent=C;exports.TooltipFooter=f;exports.TooltipHost=u;exports.useTooltip=$;
@@ -0,0 +1 @@
1
+ "use strict";const l=require("react");require("./array.polyfill.flat-5BAolFdk.js");function o(e=[],n){return l.Children.toArray(e).find(({type:t})=>t===n)||null}function s(e=[],n){return l.Children.toArray(e).filter(({type:t})=>t!==n)}function c(e=[],n){const r=l.Children.toArray(e),t=[n].flat();return r.filter(({type:i})=>t.includes(i))}function f(e=[],n){return l.Children.toArray(e).filter(n)}exports.excludeComponent=s;exports.filterBy=f;exports.filterByType=c;exports.findComponent=o;
@@ -1,32 +0,0 @@
1
- "use strict";
2
- /**
3
- * adapted from:
4
- * https://github.com/behnammodi/polyfill/blob/master/array.polyfill.js
5
- * Array.prototype.flat()
6
- * version 0.0.0
7
- * Feature Chrome Firefox Internet Explorer Opera Safari Edge
8
- * Basic support 69 62 (No) 56 12 (No)
9
- * -------------------------------------------------------------------------------
10
- */
11
- if (!Array.prototype.flat) {
12
- // eslint-disable-next-line no-extend-native
13
- Object.defineProperty(Array.prototype, 'flat', {
14
- configurable: true,
15
- writable: true,
16
- value: function (d) {
17
- const depthArg = typeof d === 'undefined' ? 1 : Number(d) || 0;
18
- const result = [];
19
- const forEach = result.forEach;
20
- const flatDeep = (arr, depth) => forEach.call(arr, val => {
21
- if (depth > 0 && Array.isArray(val)) {
22
- flatDeep(val, depth - 1);
23
- }
24
- else {
25
- result.push(val);
26
- }
27
- });
28
- flatDeep(this, depthArg);
29
- return result;
30
- }
31
- });
32
- }
@@ -1,37 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.withForwardRef = void 0;
27
- const react_1 = __importStar(require("react"));
28
- const getDisplayName = (Component) => Component.displayName || Component.name || 'Component';
29
- // Typescript will automatically find the return type crom forwardRef() function
30
- // Disabling eslint for this use case
31
- // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
32
- const withForwardRef = (Component) => {
33
- const ForwardRef = (0, react_1.forwardRef)((props, ref) => react_1.default.createElement(Component, Object.assign({}, props, { forwardedRef: ref })));
34
- ForwardRef.displayName = getDisplayName(Component);
35
- return ForwardRef;
36
- };
37
- exports.withForwardRef = withForwardRef;
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./forwardRef"), exports);
18
- __exportStar(require("./utils"), exports);
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.usePrevious = void 0;
4
- const react_1 = require("react");
5
- function usePrevious(value) {
6
- const ref = (0, react_1.useRef)();
7
- (0, react_1.useEffect)(() => {
8
- ref.current = value;
9
- }, [value]);
10
- return ref.current;
11
- }
12
- exports.usePrevious = usePrevious;
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.filterBy = exports.filterByType = exports.excludeComponent = exports.findComponent = void 0;
4
- const react_1 = require("react");
5
- require("./array.polyfill.flat"); // for Mobile Safari 11
6
- function findComponent(nodes = [], componentType) {
7
- const elements = react_1.Children.toArray(nodes);
8
- return elements.find(({ type }) => type === componentType) || null;
9
- }
10
- exports.findComponent = findComponent;
11
- function excludeComponent(nodes = [], componentType) {
12
- const elements = react_1.Children.toArray(nodes);
13
- return elements.filter(({ type }) => type !== componentType);
14
- }
15
- exports.excludeComponent = excludeComponent;
16
- function filterByType(nodes = [], componentType) {
17
- const elements = react_1.Children.toArray(nodes);
18
- const types = [componentType].flat();
19
- return elements.filter(({ type }) => types.includes(type));
20
- }
21
- exports.filterByType = filterByType;
22
- function filterBy(nodes = [], predicate) {
23
- const elements = react_1.Children.toArray(nodes);
24
- return elements.filter(predicate);
25
- }
26
- exports.filterBy = filterBy;
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.debounce = void 0;
4
- function debounce(fn, ms) {
5
- let timer;
6
- return (...args) => {
7
- clearTimeout(timer);
8
- timer = setTimeout(() => fn(...args), ms);
9
- };
10
- }
11
- exports.debounce = debounce;
@@ -1,123 +0,0 @@
1
- "use strict";
2
- /*
3
- * Based on https://github.com/eBay/ebayui-core/edit/master/src/common/event-utils/index.js
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.wrapEvent = exports.handleResize = exports.removeEventListener = exports.addEventListener = exports.preventDefaultIfHijax = exports.handleTextInput = exports.handleLeftRightArrowsKeydown = exports.handleUpDownArrowsKeydown = exports.handleEscapeKeydown = exports.isActionKey = exports.handleActionKeydown = exports.handleEnterKeydown = void 0;
7
- /**
8
- * Generic keydown handler used by more specific cases
9
- * @param {Array} keyList: List of acceptable keys
10
- * @param {KeyboardEvent} e
11
- * @param {Function} callback
12
- */
13
- function handleKeydown(keyList, e, callback = () => { }) {
14
- if (keyList.includes(e.key)) {
15
- callback();
16
- }
17
- }
18
- // inverse of found keys
19
- function handleNotKeydown(keyList, e, callback = () => { }) {
20
- if (!keyList.includes(e.key)) {
21
- callback();
22
- }
23
- }
24
- function handleEnterKeydown(e, callback) {
25
- if (e.key === 'Enter') {
26
- callback();
27
- }
28
- }
29
- exports.handleEnterKeydown = handleEnterKeydown;
30
- function handleActionKeydown(e, callback) {
31
- if (isActionKey(e.key)) {
32
- callback();
33
- }
34
- }
35
- exports.handleActionKeydown = handleActionKeydown;
36
- function isActionKey(key) {
37
- return [' ', 'Enter'].includes(key);
38
- }
39
- exports.isActionKey = isActionKey;
40
- function handleEscapeKeydown(e, callback) {
41
- handleKeydown(['Esc', 'Escape'], e, callback);
42
- }
43
- exports.handleEscapeKeydown = handleEscapeKeydown;
44
- function handleUpDownArrowsKeydown(e, callback) {
45
- handleKeydown(['Up', 'ArrowUp', 'Down', 'ArrowDown'], e, callback);
46
- }
47
- exports.handleUpDownArrowsKeydown = handleUpDownArrowsKeydown;
48
- function handleLeftRightArrowsKeydown(e, callback) {
49
- handleKeydown(['Left', 'ArrowLeft', 'Right', 'ArrowRight'], e, callback);
50
- }
51
- exports.handleLeftRightArrowsKeydown = handleLeftRightArrowsKeydown;
52
- // only fire for character input, not modifier/meta keys (enter, escape, backspace, tab, etc.)
53
- function handleTextInput(e, callback) {
54
- const keyList = [
55
- // Edge
56
- 'Esc',
57
- 'Left',
58
- 'Up',
59
- 'Right',
60
- 'Down',
61
- // Browsers
62
- 'Tab',
63
- 'Enter',
64
- 'Shift',
65
- 'Control',
66
- 'Alt',
67
- 'CapsLock',
68
- 'Escape',
69
- 'ArrowLeft',
70
- 'ArrowUp',
71
- 'ArrowRight',
72
- 'ArrowDown',
73
- 'Meta'
74
- ];
75
- handleNotKeydown(keyList, e, callback);
76
- }
77
- exports.handleTextInput = handleTextInput;
78
- function preventDefaultIfHijax(e, hijax) {
79
- if (hijax) {
80
- e.preventDefault();
81
- }
82
- }
83
- exports.preventDefaultIfHijax = preventDefaultIfHijax;
84
- const handlers = [];
85
- function addEventListener(_, handler) {
86
- if (handlers.length === 0) {
87
- window.addEventListener('resize', handleResize);
88
- }
89
- handlers.push(handler);
90
- }
91
- exports.addEventListener = addEventListener;
92
- function removeEventListener(_, handler) {
93
- if (handlers.length === 1) {
94
- window.removeEventListener('resize', handleResize);
95
- }
96
- handlers.splice(handlers.indexOf(handler), 1);
97
- }
98
- exports.removeEventListener = removeEventListener;
99
- function handleResize(e) {
100
- window.removeEventListener('resize', handleResize);
101
- const callback = () => {
102
- if (handlers.length) {
103
- handlers.forEach(handler => handler(e));
104
- window.addEventListener('resize', handleResize);
105
- }
106
- };
107
- if (window.requestAnimationFrame) {
108
- window.requestAnimationFrame(callback);
109
- }
110
- else {
111
- window.setTimeout(callback, 16);
112
- }
113
- }
114
- exports.handleResize = handleResize;
115
- function wrapEvent(parentEventHandler = () => { }, localEventHandler) {
116
- return (e) => {
117
- parentEventHandler(e);
118
- if (!e.defaultPrevented) {
119
- return localEventHandler(e);
120
- }
121
- };
122
- }
123
- exports.wrapEvent = wrapEvent;
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /*
4
- type ClipboardEventHandler<T = Element> = EventHandler<ClipboardEvent<T>>;
5
- type CompositionEventHandler<T = Element> = EventHandler<CompositionEvent<T>>;
6
- type DragEventHandler<T = Element> = EventHandler<DragEvent<T>>;
7
- type FormEventHandler<T = Element> = EventHandler<FormEvent<T>>;
8
- type TouchEventHandler<T = Element> = EventHandler<TouchEvent<T>>;
9
- type PointerEventHandler<T = Element> = EventHandler<PointerEvent<T>>;
10
- type UIEventHandler<T = Element> = EventHandler<UIEvent<T>>;
11
- type WheelEventHandler<T = Element> = EventHandler<WheelEvent<T>>;
12
- type AnimationEventHandler<T = Element> = EventHandler<AnimationEvent<T>>;
13
- type TransitionEventHandler<T = Element> = EventHandler<TransitionEvent<T>>;
14
- */
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const react_1 = require("react");
4
- const useKeyPress = () => {
5
- const [arrowUpPressed, setArrowUpPressed] = (0, react_1.useState)(false);
6
- const [arrowDownPressed, setArrowDownPressed] = (0, react_1.useState)(false);
7
- const upHandler = ({ key }) => {
8
- const fn = {
9
- ArrowUp: setArrowUpPressed,
10
- ArrowDown: setArrowDownPressed
11
- }[key];
12
- if (fn)
13
- fn(false);
14
- };
15
- const downHandler = ({ key }) => {
16
- const fn = {
17
- ArrowUp: setArrowUpPressed,
18
- ArrowDown: setArrowDownPressed
19
- }[key];
20
- if (fn)
21
- fn(true);
22
- };
23
- (0, react_1.useEffect)(() => {
24
- window.addEventListener('keydown', downHandler);
25
- window.addEventListener('keyup', upHandler);
26
- return () => {
27
- window.removeEventListener('keydown', downHandler);
28
- window.removeEventListener('keyup', upHandler);
29
- };
30
- }, []);
31
- return [arrowUpPressed, arrowDownPressed];
32
- };
33
- exports.default = useKeyPress;
@@ -1,35 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const react_1 = require("react");
7
- const use_key_press_1 = __importDefault(require("./use-key-press"));
8
- const useRovingIndex = (children, FocusableType, defaultValue) => {
9
- const [rovingIndex, setRovingIndex] = (0, react_1.useState)(defaultValue);
10
- const [arrowUpPressed, arrowDownPressed] = (0, use_key_press_1.default)();
11
- const rovingIndexArray = react_1.Children
12
- .toArray(children)
13
- .reduce((focusables, child, i) => child.type === FocusableType ? [...focusables, i] : focusables, []);
14
- const currentIndex = rovingIndexArray.indexOf(rovingIndex);
15
- const previousOrCurrent = () => {
16
- if (currentIndex === -1)
17
- return rovingIndex;
18
- const previousRovingIndex = rovingIndexArray[currentIndex - 1];
19
- return previousRovingIndex === undefined ? rovingIndex : previousRovingIndex;
20
- };
21
- const nextOrCurrent = () => {
22
- if (currentIndex === -1)
23
- return rovingIndex;
24
- const nextRovingIndex = rovingIndexArray[currentIndex + 1];
25
- return nextRovingIndex === undefined ? rovingIndex : nextRovingIndex;
26
- };
27
- (0, react_1.useEffect)(() => {
28
- if (arrowUpPressed)
29
- setRovingIndex(previousOrCurrent());
30
- if (arrowDownPressed)
31
- setRovingIndex(nextOrCurrent());
32
- }, [arrowUpPressed, arrowDownPressed]);
33
- return [rovingIndex, setRovingIndex];
34
- };
35
- exports.default = useRovingIndex;