@koine/react 2.0.0-beta.1 → 2.0.0-beta.10

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