@koine/react 2.0.0-beta.2 → 2.0.0-beta.5

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 (481) hide show
  1. package/Alert/Alert.js +27 -12
  2. package/Alert/Alert.mjs +16 -8
  3. package/Alert/Alert.stories.js +36 -0
  4. package/Alert/Alert.stories.mjs +15 -0
  5. package/Alert/index.js +5 -3
  6. package/Animations/Reveal.js +48 -18
  7. package/Animations/Reveal.mjs +38 -14
  8. package/Animations/Underline.js +25 -7
  9. package/Animations/Underline.mjs +14 -4
  10. package/Animations/index.js +7 -5
  11. package/Animations/useReveal.js +51 -43
  12. package/Animations/useReveal.mjs +42 -40
  13. package/Autocomplete/AutocompleteDownshift.js +166 -160
  14. package/Autocomplete/AutocompleteDownshift.mjs +156 -157
  15. package/Autocomplete/AutocompleteDownshiftMultiselect.js +361 -355
  16. package/Autocomplete/AutocompleteDownshiftMultiselect.mjs +351 -352
  17. package/Autocomplete/AutocompleteMui.d.ts +1 -1
  18. package/Autocomplete/AutocompleteMui.js +111 -137
  19. package/Autocomplete/AutocompleteMui.mjs +98 -90
  20. package/Autocomplete/AutocompleteReach.js +120 -114
  21. package/Autocomplete/AutocompleteReach.mjs +110 -111
  22. package/Autocomplete/components.js +129 -34
  23. package/Autocomplete/components.mjs +76 -23
  24. package/Autocomplete/helpers.js +25 -25
  25. package/Autocomplete/helpers.mjs +11 -5
  26. package/Autocomplete/index.js +14 -6
  27. package/Autocomplete/index.mjs +4 -3
  28. package/Bg/BgColor.js +55 -21
  29. package/Bg/BgColor.mjs +32 -16
  30. package/Bg/BgPhoto.js +78 -18
  31. package/Bg/BgPhoto.mjs +65 -12
  32. package/Bg/BgSvg.js +27 -14
  33. package/Bg/BgSvg.mjs +16 -8
  34. package/Bg/index.js +7 -5
  35. package/Breadcrumbs/Breadcrumbs.d.ts +1 -1
  36. package/Breadcrumbs/Breadcrumbs.js +85 -26
  37. package/Breadcrumbs/Breadcrumbs.mjs +70 -19
  38. package/Breadcrumbs/index.js +5 -3
  39. package/Buttons/Button.js +105 -16
  40. package/Buttons/Button.mjs +73 -9
  41. package/Buttons/ButtonComposite.d.ts +1 -1
  42. package/Buttons/ButtonComposite.js +76 -25
  43. package/Buttons/ButtonComposite.mjs +66 -22
  44. package/Buttons/ButtonFab.js +26 -8
  45. package/Buttons/ButtonFab.mjs +6 -4
  46. package/Buttons/ButtonLink.d.ts +1 -1
  47. package/Buttons/ButtonLink.js +26 -13
  48. package/Buttons/ButtonLink.mjs +14 -8
  49. package/Buttons/IconButton.js +40 -9
  50. package/Buttons/IconButton.mjs +18 -6
  51. package/Buttons/index.js +9 -7
  52. package/Calendar/CalendarDaygridCell.d.ts +2 -2
  53. package/Calendar/CalendarDaygridCell.js +70 -49
  54. package/Calendar/CalendarDaygridCell.mjs +58 -43
  55. package/Calendar/CalendarDaygridNav.d.ts +1 -1
  56. package/Calendar/CalendarDaygridNav.js +41 -20
  57. package/Calendar/CalendarDaygridNav.mjs +28 -13
  58. package/Calendar/CalendarDaygridTable.d.ts +3 -3
  59. package/Calendar/CalendarDaygridTable.js +88 -39
  60. package/Calendar/CalendarDaygridTable.mjs +73 -31
  61. package/Calendar/CalendarLegend.d.ts +1 -1
  62. package/Calendar/CalendarLegend.js +17 -10
  63. package/Calendar/CalendarLegend.mjs +8 -7
  64. package/Calendar/calendar-api-google.d.ts +1 -1
  65. package/Calendar/calendar-api-google.js +90 -113
  66. package/Calendar/calendar-api-google.mjs +75 -105
  67. package/Calendar/index.js +10 -8
  68. package/Calendar/types.js +3 -1
  69. package/Calendar/types.mjs +1 -1
  70. package/Calendar/useCalendar.d.ts +2 -2
  71. package/Calendar/useCalendar.js +196 -148
  72. package/Calendar/useCalendar.mjs +184 -142
  73. package/Calendar/utils.js +152 -115
  74. package/Calendar/utils.mjs +101 -94
  75. package/Carousel/Carousel.js +386 -380
  76. package/Carousel/Carousel.mjs +377 -378
  77. package/Carousel/CarouselCss.d.ts +1 -1
  78. package/Carousel/CarouselCss.js +59 -23
  79. package/Carousel/CarouselCss.mjs +37 -17
  80. package/Carousel/index.js +5 -3
  81. package/Collapsable/Collapsable.js +10 -3
  82. package/Collapsable/Collapsable.mjs +1 -1
  83. package/Collapsable/CollapsableReach.js +2 -3
  84. package/Collapsable/CollapsableReach.mjs +1 -3
  85. package/Collapsable/index.js +6 -4
  86. package/Collapsable/index.mjs +1 -2
  87. package/Debug/Debug.js +29 -11
  88. package/Debug/Debug.mjs +18 -7
  89. package/Debug/index.js +5 -3
  90. package/Details/Details.d.ts +5 -5
  91. package/Details/Details.js +87 -44
  92. package/Details/Details.mjs +60 -41
  93. package/Details/Details.stories.js +38 -0
  94. package/Details/Details.stories.mjs +20 -0
  95. package/Details/index.js +5 -3
  96. package/Dialog/DialogMui.d.ts +7 -7
  97. package/Dialog/DialogMui.js +78 -31
  98. package/Dialog/DialogMui.mjs +38 -26
  99. package/Dialog/DialogMui.stories.js +37 -0
  100. package/Dialog/DialogMui.stories.mjs +19 -0
  101. package/Dialog/css/bare.d.ts +6 -6
  102. package/Dialog/css/bare.js +53 -22
  103. package/Dialog/css/bare.mjs +15 -17
  104. package/Dialog/css/index.stories.js +85 -0
  105. package/Dialog/css/index.stories.mjs +67 -0
  106. package/Dialog/index.js +10 -4
  107. package/Dialog/m/bare.d.ts +6 -6
  108. package/Dialog/m/bare.js +55 -30
  109. package/Dialog/m/bare.mjs +40 -22
  110. package/Dialog/m/basic.js +29 -14
  111. package/Dialog/m/basic.mjs +10 -10
  112. package/Dialog/m/index.js +13 -7
  113. package/Dialog/m/index.mjs +4 -4
  114. package/Dialog/sc/bare.d.ts +6 -6
  115. package/Dialog/sc/bare.js +79 -42
  116. package/Dialog/sc/bare.mjs +40 -29
  117. package/Dialog/sc/framer.d.ts +6 -6
  118. package/Dialog/sc/framer.js +24 -17
  119. package/Dialog/sc/framer.mjs +9 -9
  120. package/Dialog/sc/framerMaterial.d.ts +6 -6
  121. package/Dialog/sc/framerMaterial.js +24 -17
  122. package/Dialog/sc/framerMaterial.mjs +9 -9
  123. package/Dialog/sc/index.stories.js +74 -0
  124. package/Dialog/sc/index.stories.mjs +47 -0
  125. package/Dialog/sc/material.d.ts +6 -6
  126. package/Dialog/sc/material.js +76 -22
  127. package/Dialog/sc/material.mjs +37 -17
  128. package/Dialog/tw/bare.d.ts +6 -6
  129. package/Dialog/tw/bare.js +51 -41
  130. package/Dialog/tw/bare.mjs +15 -28
  131. package/Dialog/tw/elegant.d.ts +6 -6
  132. package/Dialog/tw/elegant.js +52 -21
  133. package/Dialog/tw/elegant.mjs +15 -17
  134. package/Dialog/tw/framer.d.ts +6 -6
  135. package/Dialog/tw/framer.js +24 -17
  136. package/Dialog/tw/framer.mjs +9 -9
  137. package/Dialog/tw/framerMaterial.d.ts +6 -6
  138. package/Dialog/tw/framerMaterial.js +24 -17
  139. package/Dialog/tw/framerMaterial.mjs +9 -9
  140. package/Dialog/tw/index.stories.js +112 -0
  141. package/Dialog/tw/index.stories.mjs +82 -0
  142. package/Dialog/tw/material.d.ts +6 -6
  143. package/Dialog/tw/material.js +52 -21
  144. package/Dialog/tw/material.mjs +15 -17
  145. package/Editor/Editor--tiptap.d.ts +1 -1
  146. package/Editor/Editor--tiptap.js +50 -24
  147. package/Editor/Editor--tiptap.mjs +31 -19
  148. package/Editor/components.js +58 -14
  149. package/Editor/components.mjs +26 -8
  150. package/Editor/index.js +5 -3
  151. package/FaviconTags.js +59 -0
  152. package/FaviconTags.mjs +50 -0
  153. package/Form/Form.js +100 -52
  154. package/Form/Form.mjs +64 -47
  155. package/Form/index.js +5 -3
  156. package/Form/sc/bare.js +53 -21
  157. package/Form/sc/bare.mjs +21 -12
  158. package/Forms/Checkbox/Checkbox.js +46 -19
  159. package/Forms/Checkbox/Checkbox.mjs +16 -12
  160. package/Forms/Checkbox/index.js +5 -3
  161. package/Forms/Feedback/Feedback.js +21 -11
  162. package/Forms/Feedback/Feedback.mjs +10 -7
  163. package/Forms/Feedback/index.js +5 -3
  164. package/Forms/Field/Field.js +55 -21
  165. package/Forms/Field/Field.mjs +30 -17
  166. package/Forms/Field/FieldControl.js +41 -37
  167. package/Forms/Field/FieldControl.mjs +26 -20
  168. package/Forms/Field/FieldHint.js +16 -6
  169. package/Forms/Field/FieldHint.mjs +5 -3
  170. package/Forms/Field/index.js +6 -4
  171. package/Forms/Input/Input.js +56 -17
  172. package/Forms/Input/Input.mjs +22 -11
  173. package/Forms/Input/index.js +5 -3
  174. package/Forms/InputGroup/InputGroup.js +73 -17
  175. package/Forms/InputGroup/InputGroup.mjs +43 -11
  176. package/Forms/InputGroup/index.js +5 -3
  177. package/Forms/Label/Label.js +45 -8
  178. package/Forms/Label/Label.mjs +23 -5
  179. package/Forms/Label/index.js +5 -3
  180. package/Forms/Password/Password.js +56 -18
  181. package/Forms/Password/Password.mjs +35 -13
  182. package/Forms/Password/index.js +5 -3
  183. package/Forms/Radio/Radio.js +46 -25
  184. package/Forms/Radio/Radio.mjs +32 -19
  185. package/Forms/Radio/index.js +5 -3
  186. package/Forms/Switch/Switch.js +66 -21
  187. package/Forms/Switch/Switch.mjs +41 -13
  188. package/Forms/Switch/index.js +5 -3
  189. package/Forms/Textarea/Textarea.js +35 -13
  190. package/Forms/Textarea/Textarea.mjs +13 -7
  191. package/Forms/Textarea/TextareaRich.js +48 -29
  192. package/Forms/Textarea/TextareaRich.mjs +34 -22
  193. package/Forms/Textarea/index.js +6 -4
  194. package/Forms/Toggle/Toggle-tailwind.js +1 -1
  195. package/Forms/Toggle/Toggle-tailwind.mjs +0 -1
  196. package/Forms/Toggle/Toggle.js +149 -29
  197. package/Forms/Toggle/Toggle.mjs +95 -22
  198. package/Forms/Toggle/index.js +5 -3
  199. package/Forms/Toggle/useToggle-tailwind.js +1 -1
  200. package/Forms/Toggle/useToggle-tailwind.mjs +0 -1
  201. package/Forms/Toggle/useToggle.js +91 -101
  202. package/Forms/Toggle/useToggle.mjs +80 -68
  203. package/Forms/antispam.js +38 -45
  204. package/Forms/antispam.mjs +19 -21
  205. package/Forms/helpers.js +49 -31
  206. package/Forms/helpers.mjs +25 -19
  207. package/Forms/index.js +18 -18
  208. package/Forms/styles.js +90 -29
  209. package/Forms/styles.mjs +50 -19
  210. package/Gauge/Gauge.js +109 -104
  211. package/Gauge/Gauge.mjs +99 -100
  212. package/Grid/Grid.d.ts +4 -3
  213. package/Grid/Grid.js +84 -34
  214. package/Grid/Grid.mjs +54 -32
  215. package/Grid/index.js +5 -3
  216. package/Hamburger/Hamburger.js +68 -41
  217. package/Hamburger/Hamburger.mjs +58 -38
  218. package/Hamburger/index.js +5 -3
  219. package/Header/index.js +5 -3
  220. package/Header/useHeader.js +44 -25
  221. package/Header/useHeader.mjs +23 -18
  222. package/Hidden/Hidden.js +19 -11
  223. package/Hidden/Hidden.mjs +9 -9
  224. package/Hidden/index.js +5 -3
  225. package/Img/index.js +5 -3
  226. package/Img/sc/bare.js +42 -41
  227. package/Img/sc/bare.mjs +31 -34
  228. package/Img/types.js +5 -1
  229. package/Img/types.mjs +1 -1
  230. package/Link/Link.js +12 -6
  231. package/Link/Link.mjs +1 -3
  232. package/Link/LinkBlank.js +42 -18
  233. package/Link/LinkBlank.mjs +19 -11
  234. package/Link/index.js +6 -4
  235. package/Menu/Menu.js +21 -6
  236. package/Menu/Menu.mjs +10 -3
  237. package/Menu/MenuMui.js +2 -2
  238. package/Menu/MenuMui.mjs +1 -2
  239. package/Menu/index.js +5 -3
  240. package/MenuItem/MenuItem.js +30 -6
  241. package/MenuItem/MenuItem.mjs +19 -3
  242. package/MenuItem/MenuItemMui.js +1 -1
  243. package/MenuItem/MenuItemMui.mjs +0 -1
  244. package/MenuItem/index.js +5 -3
  245. package/MenuItem/useMenuItem.js +65 -33
  246. package/MenuItem/useMenuItem.mjs +45 -27
  247. package/Meta/Meta.js +23 -8
  248. package/Meta/Meta.mjs +5 -4
  249. package/Meta/index.js +11 -6
  250. package/NoJs/NoJs.js +25 -9
  251. package/NoJs/NoJs.mjs +7 -5
  252. package/NoJs/index.js +11 -6
  253. package/Pagination/PaginationNav.d.ts +1 -1
  254. package/Pagination/PaginationNav.js +86 -44
  255. package/Pagination/PaginationNav.mjs +72 -30
  256. package/Pagination/PaginationResults.js +38 -13
  257. package/Pagination/PaginationResults.mjs +27 -9
  258. package/Pagination/index.js +6 -4
  259. package/Pill/Pill.js +61 -9
  260. package/Pill/Pill.mjs +36 -6
  261. package/Pill/index.js +5 -3
  262. package/Progress/ProgressCircular.js +58 -17
  263. package/Progress/ProgressCircular.mjs +47 -11
  264. package/Progress/ProgressLinear.js +49 -26
  265. package/Progress/ProgressLinear.mjs +38 -20
  266. package/Progress/ProgressOverlay.js +65 -24
  267. package/Progress/ProgressOverlay.mjs +51 -17
  268. package/Progress/index.js +7 -5
  269. package/Rating/Rating.js +128 -41
  270. package/Rating/Rating.mjs +93 -35
  271. package/Rating/index.js +61 -33
  272. package/Rating/index.mjs +37 -24
  273. package/Select/SelectDownshift.js +46 -40
  274. package/Select/SelectDownshift.mjs +37 -38
  275. package/Select/components.js +40 -13
  276. package/Select/components.mjs +20 -9
  277. package/Select/index.js +12 -6
  278. package/Select/index.mjs +2 -3
  279. package/Sidebar/Sidebar.js +61 -23
  280. package/Sidebar/Sidebar.mjs +48 -17
  281. package/Sidebar/index.js +5 -3
  282. package/Spacing/Spacing.d.ts +1 -1
  283. package/Spacing/Spacing.js +36 -33
  284. package/Spacing/Spacing.mjs +24 -17
  285. package/Spacing/index.js +5 -3
  286. package/Sticky/Sticky.js +227 -221
  287. package/Sticky/Sticky.mjs +218 -219
  288. package/Sticky/StickyCss.js +17 -8
  289. package/Sticky/StickyCss.mjs +8 -5
  290. package/Sticky/index.js +18 -4
  291. package/Sticky/index.mjs +1 -1
  292. package/Tabs/TabsMui.d.ts +8 -8
  293. package/Tabs/TabsMui.js +64 -34
  294. package/Tabs/TabsMui.mjs +31 -28
  295. package/Tabs/TabsMui.stories.js +37 -0
  296. package/Tabs/TabsMui.stories.mjs +19 -0
  297. package/Tabs/index.js +5 -3
  298. package/Tabs/sc/bare.js +2 -3
  299. package/Tabs/sc/bare.mjs +1 -3
  300. package/Tabs/sc/index.stories.js +1 -0
  301. package/Tabs/sc/index.stories.mjs +0 -0
  302. package/Tabs/tw/bare.d.ts +6 -6
  303. package/Tabs/tw/bare.js +43 -18
  304. package/Tabs/tw/bare.mjs +11 -13
  305. package/Tabs/tw/index.stories.js +45 -0
  306. package/Tabs/tw/index.stories.mjs +24 -0
  307. package/Tabs/tw/material.d.ts +6 -6
  308. package/Tabs/tw/material.js +41 -18
  309. package/Tabs/tw/material.mjs +11 -15
  310. package/Tabs/useTabs.js +44 -25
  311. package/Tabs/useTabs.mjs +24 -21
  312. package/Typography/CopyPasteVisible.js +16 -6
  313. package/Typography/CopyPasteVisible.mjs +5 -3
  314. package/Typography/Native.js +89 -16
  315. package/Typography/Native.mjs +45 -12
  316. package/Typography/ReadMore.js +99 -36
  317. package/Typography/ReadMore.mjs +86 -30
  318. package/Typography/TextLoop.js +94 -45
  319. package/Typography/TextLoop.mjs +76 -40
  320. package/Typography/TypeStairs.js +43 -32
  321. package/Typography/TypeStairs.mjs +33 -29
  322. package/Typography/index.js +9 -7
  323. package/css/index.js +32 -35
  324. package/css/index.mjs +20 -21
  325. package/helpers/classed.js +39 -51
  326. package/helpers/classed.mjs +21 -30
  327. package/helpers/classed.stories.js +122 -0
  328. package/helpers/classed.stories.mjs +103 -0
  329. package/helpers/createUseMediaQueryWidth.js +163 -153
  330. package/helpers/createUseMediaQueryWidth.mjs +140 -140
  331. package/helpers/extend-component.js +26 -11
  332. package/helpers/extend-component.mjs +7 -7
  333. package/helpers/index.js +8 -6
  334. package/helpers/mergeRefs.js +21 -8
  335. package/helpers/mergeRefs.mjs +3 -4
  336. package/hooks/index.js +91 -43
  337. package/hooks/index.mjs +3 -3
  338. package/hooks/types.js +6 -2
  339. package/hooks/types.mjs +3 -1
  340. package/hooks/useAsyncFn.js +48 -33
  341. package/hooks/useAsyncFn.mjs +28 -26
  342. package/hooks/useDateLocale.js +42 -32
  343. package/hooks/useDateLocale.mjs +22 -22
  344. package/hooks/useFirstMountState.js +20 -9
  345. package/hooks/useFirstMountState.mjs +2 -3
  346. package/hooks/useFixedOffset.js +45 -40
  347. package/hooks/useFixedOffset.mjs +23 -24
  348. package/hooks/useFocus.js +26 -12
  349. package/hooks/useFocus.mjs +7 -5
  350. package/hooks/useInterval.js +37 -25
  351. package/hooks/useInterval.mjs +15 -14
  352. package/hooks/useIsomorphicLayoutEffect.js +22 -12
  353. package/hooks/useIsomorphicLayoutEffect.mjs +1 -4
  354. package/hooks/useKeyUp.js +30 -17
  355. package/hooks/useKeyUp.mjs +9 -11
  356. package/hooks/useMeasure.js +98 -80
  357. package/hooks/useMeasure.mjs +74 -67
  358. package/hooks/useMountedState.js +23 -12
  359. package/hooks/useMountedState.mjs +5 -6
  360. package/hooks/useNavigateAway.js +47 -51
  361. package/hooks/useNavigateAway.mjs +26 -25
  362. package/hooks/usePrevious.js +27 -10
  363. package/hooks/usePrevious.mjs +9 -4
  364. package/hooks/usePreviousRef.js +21 -7
  365. package/hooks/usePreviousRef.mjs +2 -2
  366. package/hooks/useScrollPosition.js +53 -43
  367. package/hooks/useScrollPosition.mjs +28 -26
  368. package/hooks/useScrollThreshold.js +41 -22
  369. package/hooks/useScrollThreshold.mjs +18 -13
  370. package/hooks/useScrollTo.js +28 -16
  371. package/hooks/useScrollTo.mjs +6 -8
  372. package/hooks/useSmoothScroll.js +39 -34
  373. package/hooks/useSmoothScroll.mjs +12 -16
  374. package/hooks/useSpinDelay.js +42 -37
  375. package/hooks/useSpinDelay.mjs +24 -22
  376. package/hooks/useTraceUpdate.js +26 -13
  377. package/hooks/useTraceUpdate.mjs +8 -7
  378. package/hooks/useUpdateEffect.js +24 -13
  379. package/hooks/useUpdateEffect.mjs +4 -5
  380. package/hooks/useWindowSize.js +34 -25
  381. package/hooks/useWindowSize.mjs +13 -10
  382. package/index.js +9 -7
  383. package/index.mjs +4 -5
  384. package/m/MotionProvider.js +23 -41
  385. package/m/MotionProvider.mjs +4 -5
  386. package/m/index.js +6 -5
  387. package/m/index.mjs +1 -2
  388. package/m/lite.js +11 -3
  389. package/m/max.js +11 -3
  390. package/package.json +16 -13
  391. package/sc/index.js +48 -36
  392. package/scm/index.js +39 -35
  393. package/shared/index.js +12 -10
  394. package/shared/index.mjs +35 -0
  395. package/styles/Body.js +27 -15
  396. package/styles/Body.mjs +8 -5
  397. package/styles/Global.js +54 -20
  398. package/styles/Global.mjs +36 -5
  399. package/styles/index.js +141 -40
  400. package/styles/index.mjs +5 -5
  401. package/styles/media.js +98 -120
  402. package/styles/media.mjs +63 -68
  403. package/styles/spacing.js +49 -31
  404. package/styles/spacing.mjs +26 -25
  405. package/styles/styled.js +56 -15
  406. package/styles/styled.mjs +23 -10
  407. package/styles/theme--vanilla.js +58 -42
  408. package/styles/theme--vanilla.mjs +25 -20
  409. package/styles/theme.js +38 -34
  410. package/styles/theme.mjs +16 -19
  411. package/tw/index.js +32 -35
  412. package/tw/index.mjs +20 -21
  413. package/twm/index.js +32 -35
  414. package/twm/index.mjs +20 -21
  415. package/types.js +3 -1
  416. package/types.mjs +1 -1
  417. package/typings.d.ts +1 -0
  418. package/Alert/package.json +0 -6
  419. package/Animations/package.json +0 -6
  420. package/Autocomplete/package.json +0 -6
  421. package/Bg/package.json +0 -6
  422. package/Breadcrumbs/package.json +0 -6
  423. package/Buttons/package.json +0 -6
  424. package/Calendar/package.json +0 -6
  425. package/Carousel/package.json +0 -6
  426. package/Collapsable/package.json +0 -6
  427. package/Debug/package.json +0 -6
  428. package/Details/package.json +0 -6
  429. package/Dialog/m/package.json +0 -6
  430. package/Dialog/package.json +0 -6
  431. package/Editor/package.json +0 -6
  432. package/FaviconTags/FaviconTags.js +0 -20
  433. package/FaviconTags/FaviconTags.mjs +0 -16
  434. package/FaviconTags/index.d.ts +0 -2
  435. package/FaviconTags/index.js +0 -7
  436. package/FaviconTags/index.mjs +0 -2
  437. package/FaviconTags/package.json +0 -6
  438. package/Form/package.json +0 -6
  439. package/Forms/Checkbox/package.json +0 -6
  440. package/Forms/Feedback/package.json +0 -6
  441. package/Forms/Field/package.json +0 -6
  442. package/Forms/Input/package.json +0 -6
  443. package/Forms/InputGroup/package.json +0 -6
  444. package/Forms/Label/package.json +0 -6
  445. package/Forms/Password/package.json +0 -6
  446. package/Forms/Radio/package.json +0 -6
  447. package/Forms/Switch/package.json +0 -6
  448. package/Forms/Textarea/package.json +0 -6
  449. package/Forms/Toggle/package.json +0 -6
  450. package/Forms/package.json +0 -6
  451. package/Grid/package.json +0 -6
  452. package/Hamburger/package.json +0 -6
  453. package/Header/package.json +0 -6
  454. package/Hidden/package.json +0 -6
  455. package/Img/package.json +0 -6
  456. package/Link/package.json +0 -6
  457. package/Menu/package.json +0 -6
  458. package/MenuItem/package.json +0 -6
  459. package/Meta/package.json +0 -6
  460. package/NoJs/package.json +0 -6
  461. package/Pagination/package.json +0 -6
  462. package/Pill/package.json +0 -6
  463. package/Progress/package.json +0 -6
  464. package/Rating/package.json +0 -6
  465. package/Select/package.json +0 -6
  466. package/Sidebar/package.json +0 -6
  467. package/Spacing/package.json +0 -6
  468. package/Sticky/package.json +0 -6
  469. package/Tabs/package.json +0 -6
  470. package/Typography/package.json +0 -6
  471. package/css/package.json +0 -6
  472. package/helpers/package.json +0 -6
  473. package/hooks/package.json +0 -6
  474. package/m/package.json +0 -6
  475. package/sc/package.json +0 -6
  476. package/scm/package.json +0 -6
  477. package/shared/package.json +0 -6
  478. package/styles/package.json +0 -6
  479. package/tw/package.json +0 -6
  480. package/twm/package.json +0 -6
  481. /package/{FaviconTags/FaviconTags.d.ts → FaviconTags.d.ts} +0 -0
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
- import type { Option } from "../types";
3
2
  import { FormControl } from "../Forms/helpers";
3
+ import type { Option } from "../types";
4
4
  export type AutocompleteOption = Option | string;
5
5
  export type AutocompleteValue<TMultiple extends boolean | undefined = undefined> = TMultiple extends undefined ? null | Option[] | string[] | Option | string : TMultiple extends true ? Option[] | string[] : null | Option | string;
6
6
  export type AutocompleteConfig<TOption extends AutocompleteOption, TValue extends AutocompleteValue> = {
@@ -1,71 +1,30 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Autocomplete = void 0;
4
- var tslib_1 = require("tslib");
5
- var jsx_runtime_1 = require("react/jsx-runtime");
6
- var react_1 = require("react");
7
- var useAutocomplete_1 = tslib_1.__importDefault(require("@mui/base/useAutocomplete"));
8
- var isString_1 = tslib_1.__importDefault(require("@koine/utils/isString"));
9
- var helpers_1 = require("../Forms/helpers");
10
- var helpers_2 = require("./helpers");
11
- var components_1 = require("./components");
12
- var styles_1 = require("../Forms/styles");
13
- /**
14
- * Autocomplete/autocomplete component based on [`@mui useAutocomplete hook`](https://mui.com/components/autocomplete/#useautocomplete/useAutocomplete).
15
- *
16
- * This component is design to work out of the box with [`react-hook-form`](https://react-hook-form.com/)
17
- * and [`yup`](https://github.com/jquense/yup) alongside our custom `Field`
18
- * component.
19
- *
20
- * After a lot of tests and attempts with `downshift` and `@reach` this proved
21
- * the best headless hook, small in size and behaving correctly in all scenarios.
22
- * `downshift` had in fact problems treating the initial `defaultValue` which
23
- * here is elegantly managed by the `isOptionEqualToValue` option passed into
24
- * the `useAutocomplete` hoo/useAutocompletek.
25
- *
26
- *
27
- * Validation with `yup` and `react-hook-form` example:
28
- *
29
- * ```ts
30
- * const schema = object({
31
- * // the value must be an array with at least one non-empty string
32
- * test1: array(string().required()).required().min(1),
33
- * // the value must be an array of strings or an empty array
34
- * test2: array(string().required()).required(),
35
- * }).required();
36
- * ```
37
- */
38
- // export const Autocomplete = <TOption, TValue>forwardRef<
39
- // HTMLInputElement,
40
- // PropsWithChildren<AutocompleteProps<TOption, TValue>
41
- // >(function Autocomplete(
42
- // {
43
- // creatable,
44
- // multiple,
45
- // autoComplete,
46
- // loadOptions,
47
- // options: defaultOptions = [],
48
- // defaultValue = [],
49
- // label,
50
- // register,
51
- // setValue,
52
- // // trigger,
53
- // name,
54
- // onChange,
55
- // $ref,
56
- // children,
57
- // ...props
58
- // },
59
- // ref
60
- // ) {
61
- var Autocomplete = function (_a) {
62
- var creatable = _a.creatable, multiple = _a.multiple, autoComplete = _a.autoComplete, loadOptions = _a.loadOptions, _b = _a.options, defaultOptions = _b === void 0 ? [] : _b, defaultValue = _a.defaultValue, controlledValue = _a.value, defaultInputValue = _a.defaultInputValue, label = _a.label, placeholder = _a.placeholder, register = _a.register, setValue = _a.setValue,
63
- // trigger,
64
- name = _a.name, onChange = _a.onChange, $ref = _a.$ref, children = _a.children, props = tslib_1.__rest(_a, ["creatable", "multiple", "autoComplete", "loadOptions", "options", "defaultValue", "value", "defaultInputValue", "label", "placeholder", "register", "setValue", "name", "onChange", "$ref", "children"]);
65
- var defaultOptionsMemo = (0, react_1.useMemo)(function () { return (0, helpers_1.normaliseOptions)(defaultOptions); }, [defaultOptions]);
66
- var _c = (0, react_1.useState)(defaultOptionsMemo), options = _c[0], setOptions = _c[1];
67
- var _d = (0, react_1.useState)(false), loading = _d[0], setLoading = _d[1];
68
- var _e = (0, useAutocomplete_1.default)({
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "Autocomplete", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return Autocomplete;
9
+ }
10
+ });
11
+ const _interop_require_default = require("@swc/helpers/_/_interop_require_default");
12
+ const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
13
+ const _useAutocomplete = /*#__PURE__*/ _interop_require_default._(require("@mui/base/useAutocomplete"));
14
+ const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
15
+ const _isString = /*#__PURE__*/ _interop_require_default._(require("@koine/utils/isString"));
16
+ const _helpers = require("../Forms/helpers");
17
+ const _styles = require("../Forms/styles");
18
+ const _components = require("./components");
19
+ const _helpers1 = require("./helpers");
20
+ const Autocomplete = ({ creatable, multiple, autoComplete, loadOptions, options: defaultOptions = [], defaultValue, value: controlledValue, defaultInputValue, label, placeholder, register, setValue, // trigger,
21
+ name, onChange, $ref, children, ...props })=>{
22
+ const defaultOptionsMemo = (0, _react.useMemo)(()=>(0, _helpers.normaliseOptions)(defaultOptions), [
23
+ defaultOptions
24
+ ]);
25
+ const [options, setOptions] = (0, _react.useState)(defaultOptionsMemo);
26
+ const [loading, setLoading] = (0, _react.useState)(false);
27
+ const { getRootProps, getInputLabelProps, getInputProps, getTagProps, getListboxProps, getOptionProps, getPopupIndicatorProps, groupedOptions, value: stateValue, setAnchorEl, popupOpen, focused } = (0, _useAutocomplete.default)({
69
28
  id: "Autocomplete",
70
29
  multiple: multiple ? true : undefined,
71
30
  freeSolo: creatable ? true : undefined,
@@ -79,86 +38,81 @@ var Autocomplete = function (_a) {
79
38
  // ourselves
80
39
  // inputValue: defaultInputValue,
81
40
  // @ts-expect-error FIXME: how?
82
- defaultValue: defaultValue,
41
+ defaultValue,
83
42
  // @ts-expect-error FIXME: how?
84
43
  value: controlledValue,
85
44
  // defaultValue: useMemo(
86
45
  // () => normaliseAutocompleteValue(defaultValue, multiple),
87
46
  // [defaultValue]
88
47
  // ),
89
- options: (0, react_1.useMemo)(function () { return (loadOptions ? options : defaultOptions); }, [loadOptions, options, defaultOptions]),
48
+ options: (0, _react.useMemo)(()=>loadOptions ? options : defaultOptions, [
49
+ loadOptions,
50
+ options,
51
+ defaultOptions
52
+ ]),
90
53
  // update input change only if we are searching as you type, @see
91
54
  // https://mui.com/components/autocomplete/#search-as-you-type
92
- onInputChange: (0, react_1.useCallback)(function (_event, inputValue) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
93
- var newOptions, e_1;
94
- return tslib_1.__generator(this, function (_a) {
95
- switch (_a.label) {
96
- case 0:
97
- if (!loadOptions) {
98
- return [2 /*return*/];
99
- }
100
- if (!inputValue) return [3 /*break*/, 6];
101
- setLoading(true);
102
- _a.label = 1;
103
- case 1:
104
- _a.trys.push([1, 3, 4, 5]);
105
- return [4 /*yield*/, loadOptions(inputValue)];
106
- case 2:
107
- newOptions = _a.sent();
108
- setOptions(newOptions);
109
- return [3 /*break*/, 5];
110
- case 3:
111
- e_1 = _a.sent();
112
- console.warn(e_1);
113
- return [3 /*break*/, 5];
114
- case 4:
115
- setLoading(false);
116
- return [7 /*endfinally*/];
117
- case 5: return [3 /*break*/, 7];
118
- case 6:
119
- setOptions(options);
120
- _a.label = 7;
121
- case 7: return [2 /*return*/];
55
+ onInputChange: (0, _react.useCallback)(async (_event, inputValue)=>{
56
+ if (!loadOptions) {
57
+ return;
58
+ }
59
+ if (inputValue) {
60
+ setLoading(true);
61
+ try {
62
+ const newOptions = await loadOptions(inputValue);
63
+ setOptions(newOptions);
64
+ } catch (e) {
65
+ console.warn(e);
66
+ } finally{
67
+ setLoading(false);
122
68
  }
123
- });
124
- }); }, [loadOptions, options]),
69
+ } else {
70
+ setOptions(options);
71
+ // TODO: clear like behaviour?
72
+ // triggerChange({ value: "", label: "" });
73
+ }
74
+ }, [
75
+ loadOptions,
76
+ options
77
+ ]),
125
78
  // TODO: check if we need this, probably, and check how to structure the
126
79
  // callback, here we get the actual input event
127
- onChange: function (event, newValue) {
128
- var value = (0, helpers_2.normaliseAutocompleteValue)(newValue, multiple);
80
+ onChange: (event, newValue)=>{
81
+ const value = (0, _helpers1.normaliseAutocompleteValue)(newValue, multiple);
129
82
  // @ts-expect-error FIXME: how?
130
- if (onChange)
131
- onChange(newValue);
132
- if (setValue)
133
- setValue(name, value, { shouldValidate: true });
134
- // triggerOnChange(onChange, name, value);
83
+ if (onChange) onChange(newValue);
84
+ if (setValue) setValue(name, value, {
85
+ shouldValidate: true
86
+ });
87
+ // triggerOnChange(onChange, name, value);
135
88
  },
136
89
  // support both freeSolo free text and full option structure
137
- isOptionEqualToValue: function (option, value) {
138
- var optValue = (0, isString_1.default)(option) ? option : option.value;
139
- var valValue = (0, isString_1.default)(value) ? value : value.value;
90
+ isOptionEqualToValue: (option, value)=>{
91
+ const optValue = (0, _isString.default)(option) ? option : option.value;
92
+ const valValue = (0, _isString.default)(value) ? value : value.value;
140
93
  return optValue === valValue;
141
94
  },
142
- getOptionLabel: function (option) {
95
+ getOptionLabel: (option)=>{
143
96
  // @ts-expect-error TODO: I don't get this error
144
- return (0, isString_1.default)(option) ? option : option.label || "";
145
- },
146
- }), getRootProps = _e.getRootProps, getInputLabelProps = _e.getInputLabelProps, getInputProps = _e.getInputProps, getTagProps = _e.getTagProps, getListboxProps = _e.getListboxProps, getOptionProps = _e.getOptionProps, getPopupIndicatorProps = _e.getPopupIndicatorProps, groupedOptions = _e.groupedOptions, stateValue = _e.value, setAnchorEl = _e.setAnchorEl, popupOpen = _e.popupOpen, focused = _e.focused;
147
- var value = typeof controlledValue !== "undefined" ? controlledValue : stateValue;
148
- var inputProps = function () {
149
- var autocompleteProps = getInputProps();
97
+ return (0, _isString.default)(option) ? option : option.label || "";
98
+ }
99
+ });
100
+ const value = typeof controlledValue !== "undefined" ? controlledValue : stateValue;
101
+ const inputProps = ()=>{
102
+ const autocompleteProps = getInputProps();
150
103
  // here we merge the mui's `useAutocomplete` props with the react-hook-form's
151
104
  // `register` props
152
- var registerProps = register
153
- ? register(name, {
154
- // @ts-expect-error FIXME: can't remember
155
- ref: autocompleteProps.ref.current,
156
- // this makes the validation works when a valid `defaultValue`
157
- // is provided
158
- value: (0, helpers_2.normaliseAutocompleteValue)(value, multiple),
159
- })
160
- : {};
161
- return tslib_1.__assign(tslib_1.__assign({}, registerProps), autocompleteProps);
105
+ const registerProps = register ? register(name, {
106
+ // @ts-expect-error FIXME: can't remember
107
+ ref: autocompleteProps.ref.current,
108
+ // this makes the validation works when a valid `defaultValue`
109
+ // is provided
110
+ value: (0, _helpers1.normaliseAutocompleteValue)(value, multiple)
111
+ }) : {};
112
+ return {
113
+ ...registerProps,
114
+ ...autocompleteProps
115
+ };
162
116
  };
163
117
  // to focus the input on error this works too
164
118
  // @see https://react-hook-form.com/faqs#question12 but probably it is
@@ -168,13 +122,33 @@ var Autocomplete = function (_a) {
168
122
  // inputProps.ref.current.focus();
169
123
  // }
170
124
  // }, [errors, name, inputProps.ref]);
171
- return ((0, jsx_runtime_1.jsxs)(components_1.AutocompleteRoot, { children: [label && ((0, jsx_runtime_1.jsx)(components_1.AutocompleteLabel, tslib_1.__assign({}, getInputLabelProps(), { children: label }))), (0, jsx_runtime_1.jsxs)(components_1.AutocompleteWrap, tslib_1.__assign({}, getRootProps(), { "data-focus": focused, children: [(0, jsx_runtime_1.jsxs)(components_1.AutocompleteInner, { ref: setAnchorEl, children: [multiple &&
172
- value.map(function (valueItem, index) {
173
- var _a = getTagProps({ index: index }), onDelete = _a.onDelete, key = _a.key, tagProps = tslib_1.__rest(_a, ["onDelete", "key"]);
174
- return ((0, jsx_runtime_1.jsxs)(components_1.AutocompleteItem, tslib_1.__assign({}, tagProps, { children: [(0, jsx_runtime_1.jsx)(components_1.AutocompleteItemLabel, { children: (0, isString_1.default)(valueItem)
175
- ? valueItem
176
- : valueItem.Label || valueItem.label }), (0, jsx_runtime_1.jsx)(components_1.AutocompleteItemRemove, { onClick: onDelete, children: "\u2715" })] }), key));
177
- }), (0, jsx_runtime_1.jsx)(components_1.AutocompleteInput, tslib_1.__assign({}, inputProps(), { placeholder: placeholder }))] }), !!options.length && ((0, jsx_runtime_1.jsx)(components_1.AutocompleteInputArrow, tslib_1.__assign({}, getPopupIndicatorProps(), { isOpen: popupOpen }))), loading && (0, jsx_runtime_1.jsx)(styles_1.InputProgress, {})] })), groupedOptions.length ? ((0, jsx_runtime_1.jsx)(components_1.AutocompleteMenu, tslib_1.__assign({}, getListboxProps(), { children: groupedOptions.map(function (option, index) { return ((0, jsx_runtime_1.jsx)(components_1.AutocompleteMenuItem, tslib_1.__assign({}, getOptionProps({ option: option, index: index }), { children: (0, isString_1.default)(option) ? option : option.Label || option.label }), index)); }) }))) : null, children] }));
178
- // });
125
+ return /*#__PURE__*/ _react.default.createElement(_components.AutocompleteRoot, null, label && /*#__PURE__*/ _react.default.createElement(_components.AutocompleteLabel, getInputLabelProps(), label), /*#__PURE__*/ _react.default.createElement(_components.AutocompleteWrap, {
126
+ ...getRootProps(),
127
+ "data-focus": focused
128
+ }, /*#__PURE__*/ _react.default.createElement(_components.AutocompleteInner, {
129
+ ref: setAnchorEl
130
+ }, multiple && value.map((valueItem, index)=>{
131
+ const { onDelete, key, ...tagProps } = getTagProps({
132
+ index
133
+ });
134
+ return /*#__PURE__*/ _react.default.createElement(_components.AutocompleteItem, {
135
+ key: key,
136
+ ...tagProps
137
+ }, /*#__PURE__*/ _react.default.createElement(_components.AutocompleteItemLabel, null, (0, _isString.default)(valueItem) ? valueItem : valueItem.Label || valueItem.label), /*#__PURE__*/ _react.default.createElement(_components.AutocompleteItemRemove, {
138
+ onClick: onDelete
139
+ }, "✕"));
140
+ }), /*#__PURE__*/ _react.default.createElement(_components.AutocompleteInput, {
141
+ ...inputProps(),
142
+ placeholder: placeholder
143
+ })), !!options.length && /*#__PURE__*/ _react.default.createElement(_components.AutocompleteInputArrow, {
144
+ ...getPopupIndicatorProps(),
145
+ isOpen: popupOpen
146
+ }), loading && /*#__PURE__*/ _react.default.createElement(_styles.InputProgress, null)), groupedOptions.length ? /*#__PURE__*/ _react.default.createElement(_components.AutocompleteMenu, getListboxProps(), groupedOptions.map((option, index)=>/*#__PURE__*/ _react.default.createElement(_components.AutocompleteMenuItem, {
147
+ key: index,
148
+ ...getOptionProps({
149
+ option,
150
+ index
151
+ })
152
+ }, (0, _isString.default)(option) ? option : option.Label || option.label))) : null, children);
153
+ // });
179
154
  };
180
- exports.Autocomplete = Autocomplete;
@@ -1,18 +1,11 @@
1
- import { __assign, __awaiter, __generator, __rest } from "tslib";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import {
4
- // forwardRef,
5
- useCallback, useMemo, useState, } from "react";
6
1
  import useAutocomplete from "@mui/base/useAutocomplete";
2
+ import React, { useCallback, useMemo, useState } from "react";
3
+ // forwardRef,
7
4
  import isString from "@koine/utils/isString";
8
- import {
9
- // triggerOnChange,
10
- normaliseOptions, } from "../Forms/helpers";
11
- import { normaliseAutocompleteValue } from "./helpers";
12
- import { AutocompleteRoot, AutocompleteLabel, AutocompleteWrap, AutocompleteInner, AutocompleteItem, AutocompleteItemLabel, AutocompleteItemRemove,
13
- // AutocompleteInputWrap,
14
- AutocompleteInput, AutocompleteInputArrow, AutocompleteMenu, AutocompleteMenuItem, } from "./components";
5
+ import { normaliseOptions } from "../Forms/helpers";
15
6
  import { InputProgress } from "../Forms/styles";
7
+ import { AutocompleteInner, AutocompleteInput, AutocompleteInputArrow, AutocompleteItem, AutocompleteItemLabel, AutocompleteItemRemove, AutocompleteLabel, AutocompleteMenu, AutocompleteMenuItem, AutocompleteRoot, AutocompleteWrap } from "./components";
8
+ import { normaliseAutocompleteValue } from "./helpers";
16
9
  /**
17
10
  * Autocomplete/autocomplete component based on [`@mui useAutocomplete hook`](https://mui.com/components/autocomplete/#useautocomplete/useAutocomplete).
18
11
  *
@@ -37,8 +30,7 @@ import { InputProgress } from "../Forms/styles";
37
30
  * test2: array(string().required()).required(),
38
31
  * }).required();
39
32
  * ```
40
- */
41
- // export const Autocomplete = <TOption, TValue>forwardRef<
33
+ */ // export const Autocomplete = <TOption, TValue>forwardRef<
42
34
  // HTMLInputElement,
43
35
  // PropsWithChildren<AutocompleteProps<TOption, TValue>
44
36
  // >(function Autocomplete(
@@ -61,14 +53,14 @@ import { InputProgress } from "../Forms/styles";
61
53
  // },
62
54
  // ref
63
55
  // ) {
64
- export var Autocomplete = function (_a) {
65
- var creatable = _a.creatable, multiple = _a.multiple, autoComplete = _a.autoComplete, loadOptions = _a.loadOptions, _b = _a.options, defaultOptions = _b === void 0 ? [] : _b, defaultValue = _a.defaultValue, controlledValue = _a.value, defaultInputValue = _a.defaultInputValue, label = _a.label, placeholder = _a.placeholder, register = _a.register, setValue = _a.setValue,
66
- // trigger,
67
- name = _a.name, onChange = _a.onChange, $ref = _a.$ref, children = _a.children, props = __rest(_a, ["creatable", "multiple", "autoComplete", "loadOptions", "options", "defaultValue", "value", "defaultInputValue", "label", "placeholder", "register", "setValue", "name", "onChange", "$ref", "children"]);
68
- var defaultOptionsMemo = useMemo(function () { return normaliseOptions(defaultOptions); }, [defaultOptions]);
69
- var _c = useState(defaultOptionsMemo), options = _c[0], setOptions = _c[1];
70
- var _d = useState(false), loading = _d[0], setLoading = _d[1];
71
- var _e = useAutocomplete({
56
+ export const Autocomplete = ({ creatable, multiple, autoComplete, loadOptions, options: defaultOptions = [], defaultValue, value: controlledValue, defaultInputValue, label, placeholder, register, setValue, // trigger,
57
+ name, onChange, $ref, children, ...props })=>{
58
+ const defaultOptionsMemo = useMemo(()=>normaliseOptions(defaultOptions), [
59
+ defaultOptions
60
+ ]);
61
+ const [options, setOptions] = useState(defaultOptionsMemo);
62
+ const [loading, setLoading] = useState(false);
63
+ const { getRootProps, getInputLabelProps, getInputProps, getTagProps, getListboxProps, getOptionProps, getPopupIndicatorProps, groupedOptions, value: stateValue, setAnchorEl, popupOpen, focused } = useAutocomplete({
72
64
  id: "Autocomplete",
73
65
  multiple: multiple ? true : undefined,
74
66
  freeSolo: creatable ? true : undefined,
@@ -82,86 +74,81 @@ export var Autocomplete = function (_a) {
82
74
  // ourselves
83
75
  // inputValue: defaultInputValue,
84
76
  // @ts-expect-error FIXME: how?
85
- defaultValue: defaultValue,
77
+ defaultValue,
86
78
  // @ts-expect-error FIXME: how?
87
79
  value: controlledValue,
88
80
  // defaultValue: useMemo(
89
81
  // () => normaliseAutocompleteValue(defaultValue, multiple),
90
82
  // [defaultValue]
91
83
  // ),
92
- options: useMemo(function () { return (loadOptions ? options : defaultOptions); }, [loadOptions, options, defaultOptions]),
84
+ options: useMemo(()=>loadOptions ? options : defaultOptions, [
85
+ loadOptions,
86
+ options,
87
+ defaultOptions
88
+ ]),
93
89
  // update input change only if we are searching as you type, @see
94
90
  // https://mui.com/components/autocomplete/#search-as-you-type
95
- onInputChange: useCallback(function (_event, inputValue) { return __awaiter(void 0, void 0, void 0, function () {
96
- var newOptions, e_1;
97
- return __generator(this, function (_a) {
98
- switch (_a.label) {
99
- case 0:
100
- if (!loadOptions) {
101
- return [2 /*return*/];
102
- }
103
- if (!inputValue) return [3 /*break*/, 6];
104
- setLoading(true);
105
- _a.label = 1;
106
- case 1:
107
- _a.trys.push([1, 3, 4, 5]);
108
- return [4 /*yield*/, loadOptions(inputValue)];
109
- case 2:
110
- newOptions = _a.sent();
111
- setOptions(newOptions);
112
- return [3 /*break*/, 5];
113
- case 3:
114
- e_1 = _a.sent();
115
- console.warn(e_1);
116
- return [3 /*break*/, 5];
117
- case 4:
118
- setLoading(false);
119
- return [7 /*endfinally*/];
120
- case 5: return [3 /*break*/, 7];
121
- case 6:
122
- setOptions(options);
123
- _a.label = 7;
124
- case 7: return [2 /*return*/];
91
+ onInputChange: useCallback(async (_event, inputValue)=>{
92
+ if (!loadOptions) {
93
+ return;
94
+ }
95
+ if (inputValue) {
96
+ setLoading(true);
97
+ try {
98
+ const newOptions = await loadOptions(inputValue);
99
+ setOptions(newOptions);
100
+ } catch (e) {
101
+ console.warn(e);
102
+ } finally{
103
+ setLoading(false);
125
104
  }
126
- });
127
- }); }, [loadOptions, options]),
105
+ } else {
106
+ setOptions(options);
107
+ // TODO: clear like behaviour?
108
+ // triggerChange({ value: "", label: "" });
109
+ }
110
+ }, [
111
+ loadOptions,
112
+ options
113
+ ]),
128
114
  // TODO: check if we need this, probably, and check how to structure the
129
115
  // callback, here we get the actual input event
130
- onChange: function (event, newValue) {
131
- var value = normaliseAutocompleteValue(newValue, multiple);
116
+ onChange: (event, newValue)=>{
117
+ const value = normaliseAutocompleteValue(newValue, multiple);
132
118
  // @ts-expect-error FIXME: how?
133
- if (onChange)
134
- onChange(newValue);
135
- if (setValue)
136
- setValue(name, value, { shouldValidate: true });
137
- // triggerOnChange(onChange, name, value);
119
+ if (onChange) onChange(newValue);
120
+ if (setValue) setValue(name, value, {
121
+ shouldValidate: true
122
+ });
123
+ // triggerOnChange(onChange, name, value);
138
124
  },
139
125
  // support both freeSolo free text and full option structure
140
- isOptionEqualToValue: function (option, value) {
141
- var optValue = isString(option) ? option : option.value;
142
- var valValue = isString(value) ? value : value.value;
126
+ isOptionEqualToValue: (option, value)=>{
127
+ const optValue = isString(option) ? option : option.value;
128
+ const valValue = isString(value) ? value : value.value;
143
129
  return optValue === valValue;
144
130
  },
145
- getOptionLabel: function (option) {
131
+ getOptionLabel: (option)=>{
146
132
  // @ts-expect-error TODO: I don't get this error
147
133
  return isString(option) ? option : option.label || "";
148
- },
149
- }), getRootProps = _e.getRootProps, getInputLabelProps = _e.getInputLabelProps, getInputProps = _e.getInputProps, getTagProps = _e.getTagProps, getListboxProps = _e.getListboxProps, getOptionProps = _e.getOptionProps, getPopupIndicatorProps = _e.getPopupIndicatorProps, groupedOptions = _e.groupedOptions, stateValue = _e.value, setAnchorEl = _e.setAnchorEl, popupOpen = _e.popupOpen, focused = _e.focused;
150
- var value = typeof controlledValue !== "undefined" ? controlledValue : stateValue;
151
- var inputProps = function () {
152
- var autocompleteProps = getInputProps();
134
+ }
135
+ });
136
+ const value = typeof controlledValue !== "undefined" ? controlledValue : stateValue;
137
+ const inputProps = ()=>{
138
+ const autocompleteProps = getInputProps();
153
139
  // here we merge the mui's `useAutocomplete` props with the react-hook-form's
154
140
  // `register` props
155
- var registerProps = register
156
- ? register(name, {
157
- // @ts-expect-error FIXME: can't remember
158
- ref: autocompleteProps.ref.current,
159
- // this makes the validation works when a valid `defaultValue`
160
- // is provided
161
- value: normaliseAutocompleteValue(value, multiple),
162
- })
163
- : {};
164
- return __assign(__assign({}, registerProps), autocompleteProps);
141
+ const registerProps = register ? register(name, {
142
+ // @ts-expect-error FIXME: can't remember
143
+ ref: autocompleteProps.ref.current,
144
+ // this makes the validation works when a valid `defaultValue`
145
+ // is provided
146
+ value: normaliseAutocompleteValue(value, multiple)
147
+ }) : {};
148
+ return {
149
+ ...registerProps,
150
+ ...autocompleteProps
151
+ };
165
152
  };
166
153
  // to focus the input on error this works too
167
154
  // @see https://react-hook-form.com/faqs#question12 but probably it is
@@ -171,12 +158,33 @@ export var Autocomplete = function (_a) {
171
158
  // inputProps.ref.current.focus();
172
159
  // }
173
160
  // }, [errors, name, inputProps.ref]);
174
- return (_jsxs(AutocompleteRoot, { children: [label && (_jsx(AutocompleteLabel, __assign({}, getInputLabelProps(), { children: label }))), _jsxs(AutocompleteWrap, __assign({}, getRootProps(), { "data-focus": focused, children: [_jsxs(AutocompleteInner, { ref: setAnchorEl, children: [multiple &&
175
- value.map(function (valueItem, index) {
176
- var _a = getTagProps({ index: index }), onDelete = _a.onDelete, key = _a.key, tagProps = __rest(_a, ["onDelete", "key"]);
177
- return (_jsxs(AutocompleteItem, __assign({}, tagProps, { children: [_jsx(AutocompleteItemLabel, { children: isString(valueItem)
178
- ? valueItem
179
- : valueItem.Label || valueItem.label }), _jsx(AutocompleteItemRemove, { onClick: onDelete, children: "\u2715" })] }), key));
180
- }), _jsx(AutocompleteInput, __assign({}, inputProps(), { placeholder: placeholder }))] }), !!options.length && (_jsx(AutocompleteInputArrow, __assign({}, getPopupIndicatorProps(), { isOpen: popupOpen }))), loading && _jsx(InputProgress, {})] })), groupedOptions.length ? (_jsx(AutocompleteMenu, __assign({}, getListboxProps(), { children: groupedOptions.map(function (option, index) { return (_jsx(AutocompleteMenuItem, __assign({}, getOptionProps({ option: option, index: index }), { children: isString(option) ? option : option.Label || option.label }), index)); }) }))) : null, children] }));
181
- // });
161
+ return /*#__PURE__*/ React.createElement(AutocompleteRoot, null, label && /*#__PURE__*/ React.createElement(AutocompleteLabel, getInputLabelProps(), label), /*#__PURE__*/ React.createElement(AutocompleteWrap, {
162
+ ...getRootProps(),
163
+ "data-focus": focused
164
+ }, /*#__PURE__*/ React.createElement(AutocompleteInner, {
165
+ ref: setAnchorEl
166
+ }, multiple && value.map((valueItem, index)=>{
167
+ const { onDelete, key, ...tagProps } = getTagProps({
168
+ index
169
+ });
170
+ return /*#__PURE__*/ React.createElement(AutocompleteItem, {
171
+ key: key,
172
+ ...tagProps
173
+ }, /*#__PURE__*/ React.createElement(AutocompleteItemLabel, null, isString(valueItem) ? valueItem : valueItem.Label || valueItem.label), /*#__PURE__*/ React.createElement(AutocompleteItemRemove, {
174
+ onClick: onDelete
175
+ }, "✕"));
176
+ }), /*#__PURE__*/ React.createElement(AutocompleteInput, {
177
+ ...inputProps(),
178
+ placeholder: placeholder
179
+ })), !!options.length && /*#__PURE__*/ React.createElement(AutocompleteInputArrow, {
180
+ ...getPopupIndicatorProps(),
181
+ isOpen: popupOpen
182
+ }), loading && /*#__PURE__*/ React.createElement(InputProgress, null)), groupedOptions.length ? /*#__PURE__*/ React.createElement(AutocompleteMenu, getListboxProps(), groupedOptions.map((option, index)=>/*#__PURE__*/ React.createElement(AutocompleteMenuItem, {
183
+ key: index,
184
+ ...getOptionProps({
185
+ option,
186
+ index
187
+ })
188
+ }, isString(option) ? option : option.Label || option.label))) : null, children);
189
+ // });
182
190
  };