@bspk/ui 1.3.8 → 1.3.9

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 (364) hide show
  1. package/dist/components/Accordion/Accordion.d.ts +19 -3
  2. package/dist/components/Accordion/Accordion.js +20 -3
  3. package/dist/components/Accordion/Accordion.js.map +1 -1
  4. package/dist/components/Avatar/Avatar.d.ts +13 -14
  5. package/dist/components/Avatar/Avatar.js +13 -14
  6. package/dist/components/Avatar/Avatar.js.map +1 -1
  7. package/dist/components/AvatarGroup/AvatarGroup.d.ts +29 -12
  8. package/dist/components/AvatarGroup/AvatarGroup.js +29 -12
  9. package/dist/components/AvatarGroup/AvatarGroup.js.map +1 -1
  10. package/dist/components/Badge/Badge.d.ts +1 -3
  11. package/dist/components/Badge/Badge.js +1 -3
  12. package/dist/components/Badge/Badge.js.map +1 -1
  13. package/dist/components/BadgeDot/BadgeDot.d.ts +4 -4
  14. package/dist/components/BadgeDot/BadgeDot.js +5 -4
  15. package/dist/components/BadgeDot/BadgeDot.js.map +1 -1
  16. package/dist/components/BannerAlert/BannerAlert.d.ts +11 -12
  17. package/dist/components/BannerAlert/BannerAlert.js +11 -12
  18. package/dist/components/BannerAlert/BannerAlert.js.map +1 -1
  19. package/dist/components/BottomNavigation/BottomNavigation.d.ts +6 -3
  20. package/dist/components/BottomNavigation/BottomNavigation.js +6 -3
  21. package/dist/components/BottomNavigation/BottomNavigation.js.map +1 -1
  22. package/dist/components/BottomNavigation/BottomNavigationExample.js +31 -36
  23. package/dist/components/BottomNavigation/BottomNavigationExample.js.map +1 -1
  24. package/dist/components/BottomNavigation/bottom-navigation.css +8 -1
  25. package/dist/components/BottomNavigation/bottom-navigation.css.js +8 -1
  26. package/dist/components/Breadcrumb/Breadcrumb.d.ts +17 -18
  27. package/dist/components/Breadcrumb/Breadcrumb.js +17 -18
  28. package/dist/components/Breadcrumb/Breadcrumb.js.map +1 -1
  29. package/dist/components/Button/Button.d.ts +1 -11
  30. package/dist/components/Button/Button.js +1 -11
  31. package/dist/components/Button/Button.js.map +1 -1
  32. package/dist/components/Button/ButtonExample.js +1 -3
  33. package/dist/components/Button/ButtonExample.js.map +1 -1
  34. package/dist/components/ButtonDock/ButtonDock.d.ts +10 -14
  35. package/dist/components/ButtonDock/ButtonDock.js +10 -14
  36. package/dist/components/ButtonDock/ButtonDock.js.map +1 -1
  37. package/dist/components/Card/Card.d.ts +8 -10
  38. package/dist/components/Card/Card.js +6 -10
  39. package/dist/components/Card/Card.js.map +1 -1
  40. package/dist/components/Carousel/Carousel.d.ts +9 -13
  41. package/dist/components/Carousel/Carousel.js +9 -13
  42. package/dist/components/Carousel/Carousel.js.map +1 -1
  43. package/dist/components/Carousel/CarouselExample.js +14 -14
  44. package/dist/components/Carousel/CarouselExample.js.map +1 -1
  45. package/dist/components/Checkbox/Checkbox.d.ts +7 -4
  46. package/dist/components/Checkbox/Checkbox.js +7 -4
  47. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  48. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +3 -3
  49. package/dist/components/CheckboxGroup/CheckboxGroup.js +3 -3
  50. package/dist/components/CheckboxOption/CheckboxOption.d.ts +4 -4
  51. package/dist/components/CheckboxOption/CheckboxOption.js +4 -4
  52. package/dist/components/Chip/Chip.d.ts +3 -7
  53. package/dist/components/Chip/Chip.js +3 -7
  54. package/dist/components/Chip/Chip.js.map +1 -1
  55. package/dist/components/Chip/ChipExample.js +50 -3
  56. package/dist/components/Chip/ChipExample.js.map +1 -1
  57. package/dist/components/ChipGroup/ChipGroup.d.ts +21 -10
  58. package/dist/components/ChipGroup/ChipGroup.js +21 -10
  59. package/dist/components/ChipGroup/ChipGroup.js.map +1 -1
  60. package/dist/components/ChipGroup/ChipGroupExample.js +1 -0
  61. package/dist/components/ChipGroup/ChipGroupExample.js.map +1 -1
  62. package/dist/components/DatePicker/DatePicker.d.ts +13 -12
  63. package/dist/components/DatePicker/DatePicker.js +13 -12
  64. package/dist/components/DatePicker/DatePicker.js.map +1 -1
  65. package/dist/components/Dialog/Dialog.d.ts +11 -6
  66. package/dist/components/Dialog/Dialog.js +11 -6
  67. package/dist/components/Dialog/Dialog.js.map +1 -1
  68. package/dist/components/Divider/Divider.d.ts +5 -9
  69. package/dist/components/Divider/Divider.js +5 -9
  70. package/dist/components/Divider/Divider.js.map +1 -1
  71. package/dist/components/Divider/DividerExample.js +16 -1
  72. package/dist/components/Divider/DividerExample.js.map +1 -1
  73. package/dist/components/Drawer/Drawer.d.ts +3 -3
  74. package/dist/components/Drawer/Drawer.js +3 -3
  75. package/dist/components/EmptyState/EmptyState.d.ts +3 -7
  76. package/dist/components/EmptyState/EmptyState.js +3 -7
  77. package/dist/components/EmptyState/EmptyState.js.map +1 -1
  78. package/dist/components/Fab/Fab.d.ts +4 -5
  79. package/dist/components/Fab/Fab.js +4 -6
  80. package/dist/components/Fab/Fab.js.map +1 -1
  81. package/dist/components/Fab/FabExample.d.ts +2 -1
  82. package/dist/components/Fab/FabExample.js +20 -2
  83. package/dist/components/Fab/FabExample.js.map +1 -1
  84. package/dist/components/Field/Field.d.ts +4 -5
  85. package/dist/components/Field/Field.js +4 -5
  86. package/dist/components/Field/Field.js.map +1 -1
  87. package/dist/components/FileUpload/FileUpload.d.ts +3 -3
  88. package/dist/components/FileUpload/FileUpload.js +3 -3
  89. package/dist/components/FileUploadItem/FileUploadItem.d.ts +6 -10
  90. package/dist/components/FileUploadItem/FileUploadItem.js +6 -10
  91. package/dist/components/FileUploadItem/FileUploadItem.js.map +1 -1
  92. package/dist/components/FormField/FormField.d.ts +5 -16
  93. package/dist/components/FormField/FormField.js +5 -16
  94. package/dist/components/FormField/FormField.js.map +1 -1
  95. package/dist/components/Img/Img.d.ts +1 -3
  96. package/dist/components/Img/Img.js +1 -3
  97. package/dist/components/Img/Img.js.map +1 -1
  98. package/dist/components/InlineAlert/InlineAlert.d.ts +1 -3
  99. package/dist/components/InlineAlert/InlineAlert.js +1 -3
  100. package/dist/components/InlineAlert/InlineAlert.js.map +1 -1
  101. package/dist/components/Input/Input.d.ts +13 -13
  102. package/dist/components/Input/Input.js +13 -13
  103. package/dist/components/Input/InputElement.d.ts +11 -5
  104. package/dist/components/Input/InputElement.js +11 -5
  105. package/dist/components/Input/InputElement.js.map +1 -1
  106. package/dist/components/InputNumber/InputNumber.d.ts +20 -20
  107. package/dist/components/InputNumber/InputNumber.js +20 -20
  108. package/dist/components/InputPhone/InputPhone.d.ts +21 -16
  109. package/dist/components/InputPhone/InputPhone.js +21 -16
  110. package/dist/components/InputPhone/InputPhone.js.map +1 -1
  111. package/dist/components/Layout/Layout.d.ts +1 -3
  112. package/dist/components/Layout/Layout.js +1 -3
  113. package/dist/components/Layout/Layout.js.map +1 -1
  114. package/dist/components/Link/Link.d.ts +1 -3
  115. package/dist/components/Link/Link.js +1 -3
  116. package/dist/components/Link/Link.js.map +1 -1
  117. package/dist/components/ListItem/ListItem.d.ts +22 -21
  118. package/dist/components/ListItem/ListItem.js +19 -16
  119. package/dist/components/ListItem/ListItem.js.map +1 -1
  120. package/dist/components/Menu/Menu.d.ts +5 -9
  121. package/dist/components/Menu/Menu.js +5 -9
  122. package/dist/components/Menu/Menu.js.map +1 -1
  123. package/dist/components/Modal/Modal.d.ts +4 -4
  124. package/dist/components/Modal/Modal.js +4 -4
  125. package/dist/components/Modal/Modal.js.map +1 -1
  126. package/dist/components/Modal/modal.css +12 -1
  127. package/dist/components/Modal/modal.css.js +12 -1
  128. package/dist/components/OTPInput/OTPInput.d.ts +1 -3
  129. package/dist/components/OTPInput/OTPInput.js +1 -3
  130. package/dist/components/OTPInput/OTPInput.js.map +1 -1
  131. package/dist/components/PageControl/PageControl.d.ts +1 -3
  132. package/dist/components/PageControl/PageControl.js +1 -3
  133. package/dist/components/PageControl/PageControl.js.map +1 -1
  134. package/dist/components/Pagination/Pagination.d.ts +6 -7
  135. package/dist/components/Pagination/Pagination.js +28 -15
  136. package/dist/components/Pagination/Pagination.js.map +1 -1
  137. package/dist/components/Pagination/pagination.css +5 -14
  138. package/dist/components/Pagination/pagination.css.js +5 -14
  139. package/dist/components/Password/Password.d.ts +19 -20
  140. package/dist/components/Password/Password.js +19 -20
  141. package/dist/components/Password/Password.js.map +1 -1
  142. package/dist/components/Popover/Popover.d.ts +11 -20
  143. package/dist/components/Popover/Popover.js +11 -20
  144. package/dist/components/Popover/Popover.js.map +1 -1
  145. package/dist/components/Popover/PopoverExample.js +1 -1
  146. package/dist/components/Popover/PopoverExample.js.map +1 -1
  147. package/dist/components/ProgressBar/ProgressBar.d.ts +1 -3
  148. package/dist/components/ProgressBar/ProgressBar.js +1 -3
  149. package/dist/components/ProgressBar/ProgressBar.js.map +1 -1
  150. package/dist/components/ProgressCircle/ProgressCircle.d.ts +1 -3
  151. package/dist/components/ProgressCircle/ProgressCircle.js +1 -3
  152. package/dist/components/ProgressCircle/ProgressCircle.js.map +1 -1
  153. package/dist/components/ProgressionStepper/ProgressionStepper.d.ts +1 -3
  154. package/dist/components/ProgressionStepper/ProgressionStepper.js +1 -3
  155. package/dist/components/ProgressionStepper/ProgressionStepper.js.map +1 -1
  156. package/dist/components/RadioGroup/RadioGroup.d.ts +2 -2
  157. package/dist/components/RadioGroup/RadioGroup.js +2 -2
  158. package/dist/components/Rating/Rating.d.ts +2 -4
  159. package/dist/components/Rating/Rating.js +8 -6
  160. package/dist/components/Rating/Rating.js.map +1 -1
  161. package/dist/components/Rating/RatingExample.js +17 -1
  162. package/dist/components/Rating/RatingExample.js.map +1 -1
  163. package/dist/components/SearchBar/SearchBar.d.ts +2 -2
  164. package/dist/components/SearchBar/SearchBar.js +2 -2
  165. package/dist/components/SegmentedControl/SegmentedControl.d.ts +3 -3
  166. package/dist/components/SegmentedControl/SegmentedControl.js +3 -3
  167. package/dist/components/SegmentedControl/SegmentedControlExample.js +10 -12
  168. package/dist/components/SegmentedControl/SegmentedControlExample.js.map +1 -1
  169. package/dist/components/Select/Select.d.ts +24 -25
  170. package/dist/components/Select/Select.js +24 -25
  171. package/dist/components/Select/Select.js.map +1 -1
  172. package/dist/components/Skeleton/Skeleton.d.ts +10 -14
  173. package/dist/components/Skeleton/Skeleton.js +10 -14
  174. package/dist/components/Skeleton/Skeleton.js.map +1 -1
  175. package/dist/components/Skeleton/SkeletonExample.js +4 -3
  176. package/dist/components/Skeleton/SkeletonExample.js.map +1 -1
  177. package/dist/components/SkeletonText/SkeletonText.d.ts +5 -9
  178. package/dist/components/SkeletonText/SkeletonText.js +5 -9
  179. package/dist/components/SkeletonText/SkeletonText.js.map +1 -1
  180. package/dist/components/Slider/Slider.d.ts +2 -2
  181. package/dist/components/Slider/Slider.js +2 -2
  182. package/dist/components/Slider/SliderExample.js +40 -18
  183. package/dist/components/Slider/SliderExample.js.map +1 -1
  184. package/dist/components/Snackbar/Manager.d.ts +29 -0
  185. package/dist/components/Snackbar/Manager.js +35 -0
  186. package/dist/components/Snackbar/Manager.js.map +1 -0
  187. package/dist/components/Snackbar/Snackbar.d.ts +23 -5
  188. package/dist/components/Snackbar/Snackbar.js +23 -4
  189. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  190. package/dist/components/Snackbar/SnackbarExample.js +8 -1
  191. package/dist/components/Snackbar/SnackbarExample.js.map +1 -1
  192. package/dist/components/Snackbar/index.d.ts +1 -0
  193. package/dist/components/Snackbar/index.js +1 -0
  194. package/dist/components/Snackbar/index.js.map +1 -1
  195. package/dist/components/StylesProviderDemo/StylesProviderDemo.d.ts +1 -3
  196. package/dist/components/StylesProviderDemo/StylesProviderDemo.js +1 -3
  197. package/dist/components/StylesProviderDemo/StylesProviderDemo.js.map +1 -1
  198. package/dist/components/Switch/Switch.d.ts +2 -2
  199. package/dist/components/Switch/Switch.js +2 -2
  200. package/dist/components/TabGroup/TabGroup.d.ts +2 -2
  201. package/dist/components/TabGroup/TabGroup.js +2 -2
  202. package/dist/components/TabGroup/TabGroupExample.js +5 -11
  203. package/dist/components/TabGroup/TabGroupExample.js.map +1 -1
  204. package/dist/components/TabGroup/tab-group.css +1 -0
  205. package/dist/components/TabGroup/tab-group.css.js +1 -0
  206. package/dist/components/TabList/TabList.d.ts +2 -2
  207. package/dist/components/TabList/TabList.js +2 -2
  208. package/dist/components/TabList/tab-list.css +0 -1
  209. package/dist/components/TabList/tab-list.css.js +0 -1
  210. package/dist/components/Table/Table.d.ts +53 -16
  211. package/dist/components/Table/Table.js +53 -16
  212. package/dist/components/Table/Table.js.map +1 -1
  213. package/dist/components/Table/table.css +0 -1
  214. package/dist/components/Table/table.css.js +0 -1
  215. package/dist/components/Tag/Tag.d.ts +1 -3
  216. package/dist/components/Tag/Tag.js +1 -3
  217. package/dist/components/Tag/Tag.js.map +1 -1
  218. package/dist/components/Textarea/Textarea.d.ts +13 -13
  219. package/dist/components/Textarea/Textarea.js +13 -13
  220. package/dist/components/TimePicker/TimePicker.d.ts +14 -14
  221. package/dist/components/TimePicker/TimePicker.js +14 -14
  222. package/dist/components/ToggleOption/ToggleOption.js +1 -1
  223. package/dist/components/ToggleOption/ToggleOption.js.map +1 -1
  224. package/dist/components/ToggleOption/toggle-option.css +2 -49
  225. package/dist/components/ToggleOption/toggle-option.css.js +2 -49
  226. package/dist/components/Tooltip/Tooltip.d.ts +3 -7
  227. package/dist/components/Tooltip/Tooltip.js +3 -7
  228. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  229. package/dist/components/Tooltip/TooltipExample.js +23 -3
  230. package/dist/components/Tooltip/TooltipExample.js.map +1 -1
  231. package/dist/components/Txt/Txt.d.ts +1 -3
  232. package/dist/components/Txt/Txt.js +1 -3
  233. package/dist/components/Txt/Txt.js.map +1 -1
  234. package/dist/components/UIProvider/AriaLiveMessageHandler.js +3 -2
  235. package/dist/components/UIProvider/AriaLiveMessageHandler.js.map +1 -1
  236. package/dist/hooks/useAddEventListener.d.ts +1 -2
  237. package/dist/hooks/useAddEventListener.js.map +1 -1
  238. package/dist/hooks/useRadioState.d.ts +1 -1
  239. package/dist/hooks/useTimeout.d.ts +1 -2
  240. package/dist/hooks/useTimeout.js +20 -4
  241. package/dist/hooks/useTimeout.js.map +1 -1
  242. package/dist/types/common.d.ts +3 -0
  243. package/dist/types/common.js.map +1 -1
  244. package/dist/types/meta.d.ts +1 -0
  245. package/dist/types/meta.js.map +1 -1
  246. package/dist/utils/createCustomEvent.d.ts +17 -0
  247. package/dist/utils/createCustomEvent.js +21 -0
  248. package/dist/utils/createCustomEvent.js.map +1 -0
  249. package/dist/utils/createExampleChildElement.js +3 -3
  250. package/dist/utils/createExampleChildElement.js.map +1 -1
  251. package/dist/utils/demo.d.ts +18 -26
  252. package/dist/utils/demo.js.map +1 -1
  253. package/meta.ts +6 -1
  254. package/package.json +1 -1
  255. package/src/components/Accordion/Accordion.tsx +20 -3
  256. package/src/components/Avatar/Avatar.tsx +13 -14
  257. package/src/components/AvatarGroup/AvatarGroup.tsx +30 -13
  258. package/src/components/Badge/Badge.tsx +1 -3
  259. package/src/components/BadgeDot/BadgeDot.tsx +6 -4
  260. package/src/components/BannerAlert/BannerAlert.tsx +11 -12
  261. package/src/components/BottomNavigation/BottomNavigation.tsx +6 -3
  262. package/src/components/BottomNavigation/BottomNavigationExample.tsx +31 -36
  263. package/src/components/BottomNavigation/bottom-navigation.scss +10 -1
  264. package/src/components/Breadcrumb/Breadcrumb.tsx +17 -18
  265. package/src/components/Button/Button.tsx +1 -11
  266. package/src/components/Button/ButtonExample.tsx +1 -2
  267. package/src/components/ButtonDock/ButtonDock.tsx +10 -14
  268. package/src/components/Card/Card.tsx +9 -11
  269. package/src/components/Carousel/Carousel.tsx +9 -13
  270. package/src/components/Carousel/CarouselExample.tsx +25 -25
  271. package/src/components/Checkbox/Checkbox.tsx +7 -4
  272. package/src/components/CheckboxGroup/CheckboxGroup.tsx +3 -3
  273. package/src/components/CheckboxOption/CheckboxOption.tsx +4 -4
  274. package/src/components/Chip/Chip.tsx +3 -7
  275. package/src/components/Chip/ChipExample.tsx +52 -3
  276. package/src/components/ChipGroup/ChipGroup.tsx +21 -10
  277. package/src/components/ChipGroup/ChipGroupExample.tsx +1 -1
  278. package/src/components/DatePicker/DatePicker.tsx +13 -12
  279. package/src/components/Dialog/Dialog.tsx +11 -6
  280. package/src/components/Divider/Divider.tsx +5 -9
  281. package/src/components/Divider/DividerExample.tsx +18 -1
  282. package/src/components/Drawer/Drawer.tsx +3 -3
  283. package/src/components/EmptyState/EmptyState.tsx +3 -7
  284. package/src/components/Fab/Fab.tsx +8 -5
  285. package/src/components/Fab/FabExample.tsx +22 -3
  286. package/src/components/Field/Field.tsx +4 -5
  287. package/src/components/FileUpload/FileUpload.tsx +3 -3
  288. package/src/components/FileUploadItem/FileUploadItem.tsx +6 -10
  289. package/src/components/FormField/FormField.tsx +5 -16
  290. package/src/components/Img/Img.tsx +1 -3
  291. package/src/components/InlineAlert/InlineAlert.tsx +1 -3
  292. package/src/components/Input/Input.tsx +13 -13
  293. package/src/components/Input/InputElement.tsx +11 -5
  294. package/src/components/InputNumber/InputNumber.tsx +20 -20
  295. package/src/components/InputPhone/InputPhone.tsx +21 -16
  296. package/src/components/Layout/Layout.tsx +1 -3
  297. package/src/components/Link/Link.tsx +1 -3
  298. package/src/components/ListItem/ListItem.tsx +22 -20
  299. package/src/components/Menu/Menu.tsx +5 -9
  300. package/src/components/Modal/Modal.tsx +10 -5
  301. package/src/components/Modal/modal.scss +13 -1
  302. package/src/components/OTPInput/OTPInput.tsx +1 -3
  303. package/src/components/PageControl/PageControl.tsx +1 -3
  304. package/src/components/Pagination/Pagination.tsx +50 -24
  305. package/src/components/Pagination/pagination.scss +7 -17
  306. package/src/components/Password/Password.tsx +19 -20
  307. package/src/components/Popover/Popover.tsx +11 -20
  308. package/src/components/Popover/PopoverExample.tsx +1 -1
  309. package/src/components/ProgressBar/ProgressBar.tsx +1 -3
  310. package/src/components/ProgressCircle/ProgressCircle.tsx +1 -3
  311. package/src/components/ProgressionStepper/ProgressionStepper.tsx +1 -3
  312. package/src/components/RadioGroup/RadioGroup.tsx +2 -2
  313. package/src/components/Rating/Rating.tsx +34 -14
  314. package/src/components/Rating/RatingExample.tsx +18 -1
  315. package/src/components/SearchBar/SearchBar.tsx +2 -2
  316. package/src/components/SegmentedControl/SegmentedControl.tsx +3 -3
  317. package/src/components/SegmentedControl/SegmentedControlExample.tsx +10 -12
  318. package/src/components/Select/Select.tsx +24 -25
  319. package/src/components/Skeleton/Skeleton.tsx +10 -14
  320. package/src/components/Skeleton/SkeletonExample.tsx +5 -3
  321. package/src/components/SkeletonText/SkeletonText.tsx +5 -9
  322. package/src/components/Slider/Slider.tsx +2 -2
  323. package/src/components/Slider/SliderExample.tsx +42 -17
  324. package/src/components/Snackbar/Manager.tsx +64 -0
  325. package/src/components/Snackbar/Snackbar.tsx +23 -6
  326. package/src/components/Snackbar/SnackbarExample.tsx +28 -6
  327. package/src/components/Snackbar/index.tsx +1 -0
  328. package/src/components/StylesProviderDemo/StylesProviderDemo.tsx +1 -3
  329. package/src/components/Switch/Switch.tsx +2 -2
  330. package/src/components/TabGroup/TabGroup.tsx +2 -2
  331. package/src/components/TabGroup/TabGroupExample.tsx +5 -11
  332. package/src/components/TabGroup/tab-group.scss +1 -0
  333. package/src/components/TabList/TabList.tsx +2 -2
  334. package/src/components/TabList/tab-list.scss +0 -1
  335. package/src/components/Table/Table.tsx +53 -16
  336. package/src/components/Table/table.scss +0 -1
  337. package/src/components/Tag/Tag.tsx +1 -3
  338. package/src/components/Textarea/Textarea.tsx +13 -13
  339. package/src/components/TimePicker/TimePicker.tsx +14 -14
  340. package/src/components/ToggleOption/ToggleOption.tsx +1 -0
  341. package/src/components/ToggleOption/toggle-option.scss +2 -61
  342. package/src/components/Tooltip/Tooltip.tsx +3 -7
  343. package/src/components/Tooltip/TooltipExample.tsx +23 -11
  344. package/src/components/Txt/Txt.tsx +1 -3
  345. package/src/components/UIProvider/AriaLiveMessageHandler.tsx +4 -2
  346. package/src/hooks/useAddEventListener.ts +1 -3
  347. package/src/hooks/useTimeout.ts +1 -5
  348. package/src/types/common.ts +4 -0
  349. package/src/types/meta.ts +1 -0
  350. package/src/utils/createCustomEvent.ts +35 -0
  351. package/src/utils/createExampleChildElement.tsx +3 -8
  352. package/src/utils/demo.ts +24 -27
  353. package/dist/components/ListItem/ListItemButton.d.ts +0 -2
  354. package/dist/components/ListItem/ListItemButton.js +0 -7
  355. package/dist/components/ListItem/ListItemButton.js.map +0 -1
  356. package/dist/components/Pagination/PageInput.d.ts +0 -4
  357. package/dist/components/Pagination/PageInput.js +0 -36
  358. package/dist/components/Pagination/PageInput.js.map +0 -1
  359. package/dist/hooks/usePaginationState.d.ts +0 -4
  360. package/dist/hooks/usePaginationState.js +0 -22
  361. package/dist/hooks/usePaginationState.js.map +0 -1
  362. package/src/components/ListItem/ListItemButton.tsx +0 -6
  363. package/src/components/Pagination/PageInput.tsx +0 -65
  364. package/src/hooks/usePaginationState.tsx +0 -24
@@ -1,9 +1,9 @@
1
1
  import './pagination.scss';
2
2
  import { SvgIcon } from '@bspk/icons/SvgIcon';
3
- import { AriaAttributes } from 'react';
4
- import { PageInput } from './PageInput';
3
+ import { AriaAttributes, useEffect, useState } from 'react';
5
4
  import { PageList } from './PageList';
6
5
  import { Button } from '-/components/Button';
6
+ import { InputElement } from '-/components/Input';
7
7
 
8
8
  // After this point the manual input renders. With equal or fewer pages the individual page buttons render instead.
9
9
  const INPUT_TYPE_THRESHOLD = 7;
@@ -12,7 +12,9 @@ export type PaginationProps = {
12
12
  /**
13
13
  * The number of pages to display in the pagination component.
14
14
  *
15
- * @default 1
15
+ * If there is only one page, the component will not render.
16
+ *
17
+ * @default 2
16
18
  */
17
19
  numPages: number;
18
20
  /**
@@ -32,14 +34,11 @@ export type PaginationProps = {
32
34
  *
33
35
  * @example
34
36
  * import { Pagination } from '@bspk/ui/Pagination';
35
- * import { usePaginationState } from '@bspk/ui/hooks/usePaginationState';
36
37
  *
37
38
  * function Example() {
38
- * const numPages = 10;
39
- *
40
- * const { currentPage, setCurrentPage } = usePaginationState(numPages);
39
+ * const [currentPage, setCurrentPage] = useState(1);
41
40
  *
42
- * return <Pagination value={currentPage} onChange={setCurrentPage} numPages={numPages} />;
41
+ * return <Pagination value={currentPage} onChange={setCurrentPage} numPages={10} />;
43
42
  * }
44
43
  *
45
44
  * @name Pagination
@@ -47,46 +46,73 @@ export type PaginationProps = {
47
46
  */
48
47
  export function Pagination({ numPages, value, onChange, ...ariaProps }: AriaAttributes & PaginationProps) {
49
48
  const nextPage = () => {
50
- if (value < numPages) {
51
- onChange(value + 1);
52
- }
49
+ if (value < numPages) onChange(value + 1);
53
50
  };
54
51
 
55
52
  const previousPage = () => {
56
- if (value > 1) {
57
- onChange(value - 1);
58
- }
53
+ if (value > 1) onChange(value - 1);
59
54
  };
60
55
 
61
- const isFirstPage = value === 1;
62
- const isLastPage = value === numPages;
63
- const isOutOfBoundsValue = value < 1 || value > numPages;
64
- const isOneOrFewerPages = numPages <= 1;
56
+ const [inputValue, setInputValue] = useState<string | undefined>(`${value}`);
57
+
58
+ useEffect(() => setInputValue(`${value}`), [value]);
59
+
60
+ const submitInputChange = () => {
61
+ const parsedValue = parseInt(inputValue || '', 10);
62
+ if (isNaN(parsedValue)) return setInputValue(`${value}`);
63
+
64
+ let next = parsedValue;
65
+ if (parsedValue < 1) next = 1;
66
+ if (parsedValue > numPages) next = numPages;
67
+
68
+ onChange(next);
69
+ if (next !== parsedValue) setInputValue(`${next}`);
70
+ };
71
+
72
+ const inBounds = (n: number) => n >= 1 && n <= numPages;
73
+
74
+ if (numPages <= 1) return null;
65
75
 
66
76
  return (
67
77
  <span data-bspk="pagination" role="group" {...ariaProps}>
68
78
  <Button
69
- disabled={isOutOfBoundsValue || isOneOrFewerPages || isFirstPage}
79
+ disabled={!inBounds(value - 1)}
70
80
  icon={<SvgIcon name="ChevronLeft" />}
71
81
  iconOnly
72
- label={isFirstPage ? 'First page' : `Previous page (${value - 1})`}
82
+ label={value === 1 ? 'First page' : `Previous page (${value - 1})`}
73
83
  onClick={previousPage}
74
84
  owner="pagination"
75
85
  size="small"
76
86
  variant="tertiary"
77
87
  />
78
-
79
88
  {numPages > INPUT_TYPE_THRESHOLD ? (
80
- <PageInput numPages={numPages} onChange={onChange} value={value} />
89
+ <form
90
+ data-input-form
91
+ onSubmit={(e) => {
92
+ e.preventDefault();
93
+ submitInputChange();
94
+ }}
95
+ >
96
+ <InputElement
97
+ name="page-number"
98
+ onBlur={() => submitInputChange()}
99
+ onChange={setInputValue}
100
+ owner="pagination"
101
+ showClearButton={false}
102
+ type="number"
103
+ value={inputValue}
104
+ />
105
+ of {numPages}
106
+ </form>
81
107
  ) : (
82
108
  <PageList numPages={numPages} onChange={onChange} value={value} />
83
109
  )}
84
110
 
85
111
  <Button
86
- disabled={isOutOfBoundsValue || isOneOrFewerPages || isLastPage}
112
+ disabled={!inBounds(value + 1)}
87
113
  icon={<SvgIcon name="ChevronRight" />}
88
114
  iconOnly
89
- label={isLastPage ? 'Last page' : `Next page (${value + 1})`}
115
+ label={value === numPages ? 'Last page' : `Next page (${value + 1})`}
90
116
  onClick={nextPage}
91
117
  owner="pagination"
92
118
  size="small"
@@ -6,25 +6,15 @@
6
6
  gap: var(--spacing-sizing-01);
7
7
  flex: 1;
8
8
 
9
- [data-bspk='page-input'] {
10
- display: flex;
11
- flex-direction: row;
12
- align-items: center;
13
- justify-content: center;
14
- gap: var(--spacing-sizing-01);
15
-
16
- [data-bspk='txt'] {
17
- color: var(--foreground-neutral-on-surface-variant-02);
18
- text-wrap: nowrap;
19
- }
9
+ [data-input-form] {
10
+ display: contents;
11
+ }
20
12
 
21
- [data-bspk='text-input'] {
22
- width: var(--spacing-sizing-12);
13
+ [data-bspk='input'] {
14
+ max-width: var(--spacing-sizing-12);
23
15
 
24
- input {
25
- text-align: center;
26
- flex: 1;
27
- }
16
+ input {
17
+ text-align: center;
28
18
  }
29
19
  }
30
20
 
@@ -16,30 +16,29 @@ export type PasswordProps = FieldControlProps & Pick<InputProps, 'containerRef'
16
16
  * import { Password } from '@bspk/ui/Password';
17
17
  * import { useState } from 'react';
18
18
  *
19
- * function ExampleStandalone() {
19
+ * () => {
20
20
  * const [value, setValue] = useState('');
21
21
  *
22
22
  * return (
23
- * <Password
24
- * aria-label="Enter password"
25
- * value={value}
26
- * onChange={setValue}
27
- * aria-label="password"
28
- * name="password"
29
- * />
23
+ * <>
24
+ * // standalone password example
25
+ * <Password
26
+ * aria-label="Enter password"
27
+ * value={value}
28
+ * onChange={setValue}
29
+ * aria-label="password"
30
+ * name="password"
31
+ * />
32
+ * <br />
33
+ * // password used within a field
34
+ * <Field>
35
+ * <FieldLabel>Password</FieldLabel>
36
+ * <Password value={value} onChange={setValue} aria-label="password" name="password" />
37
+ * <FieldDescription>The password field allows you to enter a secure password.</FieldDescription>
38
+ * </Field>
39
+ * </>
30
40
  * );
31
- * }
32
- *
33
- * function ExampleWithField() {
34
- * const [value, setValue] = useState('');
35
- * return (
36
- * <Field>
37
- * <FieldLabel>Password</FieldLabel>
38
- * <Password value={value} onChange={setValue} aria-label="password" name="password" />
39
- * <FieldDescription>The password field allows you to enter a secure password.</FieldDescription>
40
- * </Field>
41
- * );
42
- * }
41
+ * };
43
42
  *
44
43
  * @name Password
45
44
  * @phase UXReview
@@ -60,26 +60,17 @@ export type PopoverProps = CommonProps<'disabled'> &
60
60
  * import { Popover } from '@bspk/ui/Popover';
61
61
  * import { Button } from '@bspk/ui/Button';
62
62
  *
63
- * function Example() {
64
- * const [showPopover, setShowPopover] = useState<boolean>(false);
65
- *
66
- * const togglePopover = () => setShowPopover(!showPopover);
67
- * const onPopoverCallToActionClick = () => alert('Action clicked');
68
- *
69
- * return (
70
- * <Popover
71
- * placement="bottom"
72
- * content="This is a popover content"
73
- * header="Popover Header"
74
- * callToAction={{
75
- * label: 'Action',
76
- * onClick: onPopoverCallToActionClick,
77
- * }}
78
- * >
79
- * <Button label="Toggle popover" onClick={togglePopover} />
80
- * </Popover>
81
- * );
82
- * }
63
+ * <Popover
64
+ * placement="bottom"
65
+ * content="This is a popover content"
66
+ * header="Popover Header"
67
+ * callToAction={{
68
+ * label: 'Action',
69
+ * onClick: () => action('Action clicked'),
70
+ * }}
71
+ * >
72
+ * {(triggerProps) => <Button {...triggerProps} label="Toggle popover" />}
73
+ * </Popover>;
83
74
  *
84
75
  * @name Popover
85
76
  * @phase UXReview
@@ -8,7 +8,7 @@ export const PopoverExample: ComponentExampleFn<PopoverProps> = ({ action }) =>
8
8
  render: ({ props, Component }) => {
9
9
  return (
10
10
  <>
11
- <Txt style={{ marginBottom: `var(--spacing-sizing-02)` }}>Click button for a Popover</Txt>
11
+ <Txt style={{ marginBottom: `var(--spacing-sizing-02)` }}>Click for a Popover</Txt>
12
12
  <Component {...props}>
13
13
  {(triggerProps) => <Button label={`${props.placement}`} variant="secondary" {...triggerProps} />}
14
14
  </Component>
@@ -53,9 +53,7 @@ export type ProgressBarProps = {
53
53
  * @example
54
54
  * import { ProgressBar } from '@bspk/ui/ProgressBar';
55
55
  *
56
- * function Example() {
57
- * return <ProgressBar label="Example label" completion={50} />;
58
- * }
56
+ * <ProgressBar label="Example label" completion={50} />;
59
57
  *
60
58
  * @name ProgressBar
61
59
  * @phase UXReview
@@ -27,9 +27,7 @@ export type ProgressCircleProps = {
27
27
  * @example
28
28
  * import { ProgressCircle } from '@bspk/ui/ProgressCircle';
29
29
  *
30
- * function Example() {
31
- * return <ProgressCircle label="Example label" />;
32
- * }
30
+ * <ProgressCircle label="Example label" />;
33
31
  *
34
32
  * @name ProgressCircle
35
33
  * @phase UXReview
@@ -59,9 +59,7 @@ export type ProgressionStepperProps = {
59
59
  * @example
60
60
  * import { ProgressionStepper } from '@bspk/ui/ProgressionStepper';
61
61
  *
62
- * function Example() {
63
- * return <ProgressionStepper steps={[{ name: 'Step 1' }, { name: 'Step 2' }, { name: 'Step 3' }]} />;
64
- * }
62
+ * <ProgressionStepper steps={[{ name: 'Step 1' }, { name: 'Step 2' }, { name: 'Step 3' }]} />;
65
63
  *
66
64
  * @name ProgressionStepper
67
65
  * @phase UXReview
@@ -40,7 +40,7 @@ export type RadioGroupProps = Omit<FieldControlProps, 'readOnly'> & {
40
40
  * import { useState } from 'react';
41
41
  * import { RadioGroup } from '@bspk/ui/RadioGroup';
42
42
  *
43
- * function Example() {
43
+ * () => {
44
44
  * const [selectedOption, setSelectedOption] = useState<string>('1');
45
45
  *
46
46
  * return (
@@ -59,7 +59,7 @@ export type RadioGroupProps = Omit<FieldControlProps, 'readOnly'> & {
59
59
  * value={selectedOption}
60
60
  * />
61
61
  * );
62
- * }
62
+ * };
63
63
  *
64
64
  * @name RadioGroup
65
65
  * @phase UXReview
@@ -1,6 +1,5 @@
1
1
  import './rating.scss';
2
2
  import { SvgStarFill } from '@bspk/icons/StarFill';
3
- import { ElementType } from 'react';
4
3
 
5
4
  export type RatingSize = 'large' | 'medium' | 'small';
6
5
  export type RatingProps = {
@@ -12,7 +11,7 @@ export type RatingProps = {
12
11
  */
13
12
  value?: number;
14
13
  /**
15
- * If included the component is in interactive mode and this callback is fired when a star is selected.
14
+ * If included the component is interactive and this callback is fired when the user selects a new rating value.
16
15
  *
17
16
  * @param value - The new value of the rating.
18
17
  */
@@ -39,37 +38,58 @@ const iconWidths: Record<RatingSize, number> = {
39
38
  * @example
40
39
  * import { Rating } from '@bspk/ui/Rating';
41
40
  *
42
- * function Example() {
43
- * return <Rating value={4.5} />;
44
- * }
41
+ * <Rating value={4.5} size="large" />;
45
42
  *
46
43
  * @name Rating
47
44
  * @phase UXReview
48
45
  */
49
46
  export function Rating({ size = 'medium', value, onChange }: RatingProps) {
50
- const As: ElementType = onChange ? 'button' : 'div';
47
+ if (!onChange)
48
+ return (
49
+ <div
50
+ aria-label={value ? `${value} out of ${MAX_STARS} stars` : 'Rating'}
51
+ data-bspk="rating"
52
+ data-size={size}
53
+ role="img"
54
+ >
55
+ {Array.from({ length: MAX_STARS }, (_, index) => {
56
+ const fill = getFill(index + 1, value);
57
+ return (
58
+ <div data-fill={fill} data-star key={index} role="presentation" tabIndex={-1}>
59
+ <SvgStarFill width={iconWidths[size]} />
60
+ {fill === 'half' && (
61
+ <div data-fill-half>
62
+ <div data-star>
63
+ <SvgStarFill width={iconWidths[size]} />
64
+ </div>
65
+ </div>
66
+ )}
67
+ </div>
68
+ );
69
+ })}
70
+ </div>
71
+ );
51
72
 
52
73
  return (
53
74
  <div
54
- aria-label={onChange ? 'Select a star rating' : value ? `${value} out of ${MAX_STARS} stars` : 'Rating'}
75
+ aria-label={value ? `${value} out of ${MAX_STARS} stars` : 'Select a star rating'}
55
76
  data-bspk="rating"
56
77
  data-size={size}
57
- role={onChange ? 'radiogroup' : 'img'}
78
+ role="radiogroup"
58
79
  >
59
80
  {Array.from({ length: MAX_STARS }, (_, index) => {
60
81
  const fill = getFill(index + 1, value);
61
82
  const selected = value !== undefined && Math.floor(value) === index;
62
83
  return (
63
- <As
84
+ <button
64
85
  aria-checked={selected}
65
- aria-hidden={!onChange}
66
- aria-label={onChange ? `Rate ${index + 1}` : undefined}
86
+ aria-label={`Rate ${index + 1}`}
67
87
  data-fill={fill}
68
88
  data-star
69
89
  key={index}
70
90
  onClick={() => onChange?.(index + 1)}
71
- role={onChange ? 'radio' : 'presentation'}
72
- tabIndex={onChange ? (selected ? 0 : -1) : -1}
91
+ role="radio"
92
+ tabIndex={selected ? 0 : -1}
73
93
  type="button"
74
94
  >
75
95
  <SvgStarFill width={iconWidths[size]} />
@@ -80,7 +100,7 @@ export function Rating({ size = 'medium', value, onChange }: RatingProps) {
80
100
  </div>
81
101
  </div>
82
102
  )}
83
- </As>
103
+ </button>
84
104
  );
85
105
  })}
86
106
  </div>
@@ -3,11 +3,28 @@ import { ComponentExampleFn, Preset } from '-/utils/demo';
3
3
 
4
4
  export const presets: Preset<RatingProps>[] = [
5
5
  {
6
- label: 'Non interactive',
6
+ label: 'Read Only, No Value',
7
7
  propState: {
8
8
  onChange: undefined,
9
+ value: undefined,
9
10
  },
10
11
  },
12
+ {
13
+ label: 'Read Only',
14
+ propState: {
15
+ onChange: undefined,
16
+ value: 4.5,
17
+ },
18
+ designPattern: 'A read only representation of ratings, a scale of 1 to 5.',
19
+ },
20
+ {
21
+ label: 'Interactive',
22
+ propState: {
23
+ onChange: () => {},
24
+ },
25
+ designPattern:
26
+ 'Interactive control that allow customers to indicate their feelings about an experience or product on a scale of 1 to 5.',
27
+ },
11
28
  ];
12
29
 
13
30
  export const RatingExample: ComponentExampleFn<RatingProps> = () => {
@@ -72,7 +72,7 @@ export type SearchBarProps<O extends SearchBarOption = SearchBarOption> = Omit<
72
72
  * import { useState } from 'react';
73
73
  * import { SearchBar } from '@bspk/ui/SearchBar';
74
74
  *
75
- * function Example() {
75
+ * () => {
76
76
  * const [searchText, setSearchText] = useState('');
77
77
  *
78
78
  * return (
@@ -96,7 +96,7 @@ export type SearchBarProps<O extends SearchBarOption = SearchBarOption> = Omit<
96
96
  * onChange={setSearchText}
97
97
  * />
98
98
  * );
99
- * }
99
+ * };
100
100
  *
101
101
  * @name SearchBar
102
102
  * @phase UXReview
@@ -12,8 +12,8 @@ export type SegmentedControlProps = TabListProps<SegmentedControlOption>;
12
12
  * import { useState } from 'react';
13
13
  * import { SegmentedControl } from '@bspk/ui/SegmentedControl';
14
14
  *
15
- * function Example() {
16
- * const [selectedOption, setSelectedOption] = useState<string>();
15
+ * () => {
16
+ * const [selectedOption, setSelectedOption] = useState<string>('');
17
17
  *
18
18
  * return (
19
19
  * <SegmentedControl
@@ -26,7 +26,7 @@ export type SegmentedControlProps = TabListProps<SegmentedControlOption>;
26
26
  * value={selectedOption}
27
27
  * />
28
28
  * );
29
- * }
29
+ * };
30
30
  *
31
31
  * @name SegmentedControl
32
32
  * @phase UXReview
@@ -1,9 +1,3 @@
1
- import { SvgCircle } from '@bspk/icons/Circle';
2
- import { SvgDiamond } from '@bspk/icons/Diamond';
3
- import { SvgDiamondFill } from '@bspk/icons/DiamondFill';
4
- import { SvgSquare } from '@bspk/icons/Square';
5
- import { SvgSquareFill } from '@bspk/icons/SquareFill';
6
-
7
1
  import { SegmentedControlOption, SegmentedControlProps } from '.';
8
2
  import { ComponentExample, Preset } from '-/utils/demo';
9
3
 
@@ -11,20 +5,20 @@ const PRESET_OPTIONS: SegmentedControlOption[] = [
11
5
  {
12
6
  value: '1',
13
7
  label: 'Option 1',
14
- icon: <SvgDiamond />,
15
- iconSelected: <SvgDiamondFill />,
8
+ icon: 'Diamond',
9
+ iconSelected: 'DiamondFill',
16
10
  },
17
11
  {
18
12
  value: '2',
19
13
  label: 'Disabled 2',
20
14
  disabled: true,
21
- icon: <SvgCircle />,
15
+ icon: 'Circle',
22
16
  },
23
17
  {
24
18
  value: '3',
25
19
  label: 'Option 3',
26
- icon: <SvgSquare />,
27
- iconSelected: <SvgSquareFill />,
20
+ icon: 'Square',
21
+ iconSelected: 'SquareFill',
28
22
  },
29
23
  ];
30
24
 
@@ -64,7 +58,11 @@ export const presets: Preset<SegmentedControlProps>[] = [
64
58
  export const SegmentedControlExample: ComponentExample<SegmentedControlProps> = {
65
59
  containerStyle: { width: '100%', overflow: 'auto', alignItems: 'start' },
66
60
  defaultState: {
67
- options: PRESET_OPTIONS,
61
+ options: PRESET_OPTIONS.map((option) => ({
62
+ ...option,
63
+ icon: undefined,
64
+ iconSelected: undefined,
65
+ })),
68
66
  },
69
67
  presets,
70
68
  variants: false,
@@ -77,29 +77,14 @@ export type SelectProps = CommonProps<'size'> &
77
77
  * { id: '6', label: 'Option 6' },
78
78
  * ];
79
79
  *
80
- * function ExampleStandalone() {
81
- * const [selected, setSelected] = React.useState<string[]>([]);
80
+ * () => {
81
+ * const [selected, setSelected] = useState<string[]>([]);
82
82
  *
83
83
  * return (
84
- * <Select
85
- * aria-label="Select an option"
86
- * itemCount={5}
87
- * name="example-select"
88
- * onChange={setSelected}
89
- * options={OPTIONS}
90
- * placeholder="Select an option"
91
- * size="medium"
92
- * value={selected}
93
- * />
94
- * );
95
- * }
96
- *
97
- * function ExampleWithField() {
98
- * const [selected, setSelected] = React.useState<string[]>([]);
99
- * return (
100
- * <Field>
101
- * <FieldLabel>Select an option</FieldLabel>
84
+ * <>
85
+ * // standalone select example
102
86
  * <Select
87
+ * aria-label="Select an option"
103
88
  * itemCount={5}
104
89
  * name="example-select"
105
90
  * onChange={setSelected}
@@ -108,12 +93,26 @@ export type SelectProps = CommonProps<'size'> &
108
93
  * size="medium"
109
94
  * value={selected}
110
95
  * />
111
- * <FieldDescription>
112
- * The select allows you to choose one option from a list of options.
113
- * </FieldDescription>
114
- * </Field>
96
+ * <br />
97
+ * // select used within a field
98
+ * <Field>
99
+ * <FieldLabel>Select an option</FieldLabel>
100
+ * <Select
101
+ * itemCount={5}
102
+ * name="example-select"
103
+ * onChange={setSelected}
104
+ * options={OPTIONS}
105
+ * placeholder="Select an option"
106
+ * size="medium"
107
+ * value={selected}
108
+ * />
109
+ * <FieldDescription>
110
+ * The select allows you to choose one option from a list of options.
111
+ * </FieldDescription>
112
+ * </Field>
113
+ * </>
115
114
  * );
116
- * }
115
+ * };
117
116
  *
118
117
  * @name Select
119
118
  * @phase UXReview
@@ -49,20 +49,16 @@ export type SkeletonProps = {
49
49
  * @example
50
50
  * import { Skeleton } from '@bspk/ui/skeleton';
51
51
  *
52
- * function Example(item: { title: string; src: string } | null) {
53
- * return (
54
- * <Skeleton variant="photo" width={210} height={118}>
55
- * <img
56
- * style={{
57
- * width: 210,
58
- * height: 118,
59
- * }}
60
- * alt={item.title}
61
- * src={item.src}
62
- * />
63
- * </Skeleton>
64
- * );
65
- * }
52
+ * <Skeleton variant="photo" width={210} height={118}>
53
+ * <img
54
+ * style={{
55
+ * width: 210,
56
+ * height: 118,
57
+ * }}
58
+ * alt={'A cool photo'}
59
+ * src={'https://example.com/cool-photo.jpg'}
60
+ * />
61
+ * </Skeleton>;
66
62
  *
67
63
  * @exampleDescription This example shows a skeleton loading state for an image but can be used for any element.
68
64
  *
@@ -1,8 +1,7 @@
1
- import { useState } from 'react';
1
+ import { useEffect, useState } from 'react';
2
2
  import { SkeletonProps, SkeletonVariant } from '.';
3
3
  import { Avatar } from '-/components/Avatar';
4
4
  import { ExamplePlaceholder } from '-/components/ExamplePlaceholder';
5
- import { useTimeout } from '-/hooks/useTimeout';
6
5
  import { ComponentExample, ComponentExampleRenderProps, Preset } from '-/utils/demo';
7
6
 
8
7
  export const presets: Preset<SkeletonProps>[] = [
@@ -29,7 +28,10 @@ function SkeletonTransition({
29
28
  props,
30
29
  }: Pick<ComponentExampleRenderProps<SkeletonProps>, 'Component' | 'props'>) {
31
30
  const [loaded, setLoaded] = useState(false);
32
- useTimeout(() => setLoaded(true), 3000);
31
+
32
+ useEffect(() => {
33
+ setTimeout(() => setLoaded(true), 3000);
34
+ }, []);
33
35
 
34
36
  return <Component {...props}>{loaded && PROP_VARIANT_CHILDREN[props!.variant as SkeletonVariant]}</Component>;
35
37
  }