@os-design/core 1.0.254 → 1.0.255

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 (329) hide show
  1. package/dist/cjs/Alert/index.js +5 -5
  2. package/dist/cjs/Alert/index.js.map +1 -1
  3. package/dist/cjs/Avatar/index.js +5 -5
  4. package/dist/cjs/Avatar/index.js.map +1 -1
  5. package/dist/cjs/AvatarSkeleton/index.js +5 -5
  6. package/dist/cjs/AvatarSkeleton/index.js.map +1 -1
  7. package/dist/cjs/Badge/index.js +9 -9
  8. package/dist/cjs/Badge/index.js.map +1 -1
  9. package/dist/cjs/Breadcrumb/index.js +7 -7
  10. package/dist/cjs/Breadcrumb/index.js.map +1 -1
  11. package/dist/cjs/BreadcrumbItem/index.js +5 -5
  12. package/dist/cjs/BreadcrumbItem/index.js.map +1 -1
  13. package/dist/cjs/Button/ButtonContent.js +2 -2
  14. package/dist/cjs/Button/ButtonContent.js.map +1 -1
  15. package/dist/cjs/Button/index.js +5 -5
  16. package/dist/cjs/Button/index.js.map +1 -1
  17. package/dist/cjs/ButtonLink/index.js +5 -5
  18. package/dist/cjs/ButtonLink/index.js.map +1 -1
  19. package/dist/cjs/Checkbox/index.js +9 -9
  20. package/dist/cjs/Checkbox/index.js.map +1 -1
  21. package/dist/cjs/CheckboxSkeleton/index.js +5 -5
  22. package/dist/cjs/CheckboxSkeleton/index.js.map +1 -1
  23. package/dist/cjs/DatePicker/DatePickerCalendar.js +8 -8
  24. package/dist/cjs/DatePicker/DatePickerCalendar.js.map +1 -1
  25. package/dist/cjs/DatePicker/index.js +9 -9
  26. package/dist/cjs/DatePicker/index.js.map +1 -1
  27. package/dist/cjs/Drawer/index.js +5 -5
  28. package/dist/cjs/Drawer/index.js.map +1 -1
  29. package/dist/cjs/Form/FormConfigContext.js +1 -1
  30. package/dist/cjs/Form/FormConfigContext.js.map +1 -1
  31. package/dist/cjs/Form/index.js +5 -5
  32. package/dist/cjs/Form/index.js.map +1 -1
  33. package/dist/cjs/FormDivider/index.js +5 -5
  34. package/dist/cjs/FormDivider/index.js.map +1 -1
  35. package/dist/cjs/FormItem/index.js +5 -5
  36. package/dist/cjs/FormItem/index.js.map +1 -1
  37. package/dist/cjs/Gallery/Status.js +2 -2
  38. package/dist/cjs/Gallery/Status.js.map +1 -1
  39. package/dist/cjs/Gallery/index.js +9 -9
  40. package/dist/cjs/Gallery/index.js.map +1 -1
  41. package/dist/cjs/GlobalStyles/index.js +1 -1
  42. package/dist/cjs/GlobalStyles/index.js.map +1 -1
  43. package/dist/cjs/GlobalStyles/resetStyles.js +1 -1
  44. package/dist/cjs/GlobalStyles/resetStyles.js.map +1 -1
  45. package/dist/cjs/GlobalStyles/typographyStyles.js +2 -2
  46. package/dist/cjs/GlobalStyles/typographyStyles.js.map +1 -1
  47. package/dist/cjs/HeaderSkeleton/index.js +5 -5
  48. package/dist/cjs/HeaderSkeleton/index.js.map +1 -1
  49. package/dist/cjs/Image/index.js +5 -5
  50. package/dist/cjs/Image/index.js.map +1 -1
  51. package/dist/cjs/ImageSkeleton/index.js +3 -3
  52. package/dist/cjs/ImageSkeleton/index.js.map +1 -1
  53. package/dist/cjs/Input/index.js +9 -9
  54. package/dist/cjs/Input/index.js.map +1 -1
  55. package/dist/cjs/Input/utils/getFocusableElements.js +5 -5
  56. package/dist/cjs/InputNumber/index.js +8 -8
  57. package/dist/cjs/InputNumber/index.js.map +1 -1
  58. package/dist/cjs/InputPassword/index.js +9 -9
  59. package/dist/cjs/InputPassword/index.js.map +1 -1
  60. package/dist/cjs/InputSearch/index.js +9 -9
  61. package/dist/cjs/InputSearch/index.js.map +1 -1
  62. package/dist/cjs/InputSkeleton/index.js +3 -3
  63. package/dist/cjs/InputSkeleton/index.js.map +1 -1
  64. package/dist/cjs/Layout/LayoutContext.js +1 -1
  65. package/dist/cjs/Layout/LayoutContext.js.map +1 -1
  66. package/dist/cjs/Layout/index.js +1 -1
  67. package/dist/cjs/Layout/index.js.map +1 -1
  68. package/dist/cjs/Link/index.js +5 -5
  69. package/dist/cjs/Link/index.js.map +1 -1
  70. package/dist/cjs/LinkButton/index.js +5 -5
  71. package/dist/cjs/LinkButton/index.js.map +1 -1
  72. package/dist/cjs/List/index.js +9 -9
  73. package/dist/cjs/List/index.js.map +1 -1
  74. package/dist/cjs/List/utils/frameTimeout.js +3 -3
  75. package/dist/cjs/List/utils/frameTimeout.js.map +1 -1
  76. package/dist/cjs/ListItem/index.js +5 -5
  77. package/dist/cjs/ListItem/index.js.map +1 -1
  78. package/dist/cjs/ListItemActions/index.js +12 -12
  79. package/dist/cjs/ListItemActions/index.js.map +1 -1
  80. package/dist/cjs/ListItemLink/index.js +10 -10
  81. package/dist/cjs/ListItemLink/index.js.map +1 -1
  82. package/dist/cjs/ListItemSkeleton/index.js +5 -5
  83. package/dist/cjs/ListItemSkeleton/index.js.map +1 -1
  84. package/dist/cjs/ListSkeleton/index.js +4 -4
  85. package/dist/cjs/ListSkeleton/index.js.map +1 -1
  86. package/dist/cjs/LogoLink/index.js +5 -5
  87. package/dist/cjs/LogoLink/index.js.map +1 -1
  88. package/dist/cjs/Menu/index.js +9 -9
  89. package/dist/cjs/Menu/index.js.map +1 -1
  90. package/dist/cjs/Menu/utils/useFocusWithArrows.js +5 -5
  91. package/dist/cjs/Menu/utils/useFocusWithArrows.js.map +1 -1
  92. package/dist/cjs/MenuDivider/index.js +3 -3
  93. package/dist/cjs/MenuDivider/index.js.map +1 -1
  94. package/dist/cjs/MenuGroup/index.js +13 -13
  95. package/dist/cjs/MenuGroup/index.js.map +1 -1
  96. package/dist/cjs/MenuItem/index.js +5 -5
  97. package/dist/cjs/MenuItem/index.js.map +1 -1
  98. package/dist/cjs/Modal/index.js +5 -5
  99. package/dist/cjs/Modal/index.js.map +1 -1
  100. package/dist/cjs/Navigation/index.js +5 -5
  101. package/dist/cjs/Navigation/index.js.map +1 -1
  102. package/dist/cjs/Navigation/utils/useScrollFlags.js +4 -4
  103. package/dist/cjs/Navigation/utils/useScrollFlags.js.map +1 -1
  104. package/dist/cjs/NavigationItem/index.js +5 -5
  105. package/dist/cjs/NavigationItem/index.js.map +1 -1
  106. package/dist/cjs/PageContent/index.js +5 -5
  107. package/dist/cjs/PageContent/index.js.map +1 -1
  108. package/dist/cjs/PageHeader/index.js +5 -5
  109. package/dist/cjs/PageHeader/index.js.map +1 -1
  110. package/dist/cjs/PageHeaderInputSearch/index.js +9 -9
  111. package/dist/cjs/PageHeaderInputSearch/index.js.map +1 -1
  112. package/dist/cjs/PageHeaderInputSearch/utils/defaultLocale.js +2 -2
  113. package/dist/cjs/PageHeaderInputSearch/utils/defaultLocale.js.map +1 -1
  114. package/dist/cjs/PageHeaderSkeleton/index.js +4 -4
  115. package/dist/cjs/PageHeaderSkeleton/index.js.map +1 -1
  116. package/dist/cjs/ParagraphSkeleton/index.js +5 -5
  117. package/dist/cjs/ParagraphSkeleton/index.js.map +1 -1
  118. package/dist/cjs/Popover/index.js +9 -9
  119. package/dist/cjs/Popover/index.js.map +1 -1
  120. package/dist/cjs/Popover/utils/usePopoverPosition.js +6 -6
  121. package/dist/cjs/Popover/utils/usePopoverPosition.js.map +1 -1
  122. package/dist/cjs/Progress/index.js +5 -5
  123. package/dist/cjs/Progress/index.js.map +1 -1
  124. package/dist/cjs/RadioGroup/index.js +9 -9
  125. package/dist/cjs/RadioGroup/index.js.map +1 -1
  126. package/dist/cjs/RadioGroupSkeleton/index.js +5 -5
  127. package/dist/cjs/RadioGroupSkeleton/index.js.map +1 -1
  128. package/dist/cjs/Result/index.js +5 -5
  129. package/dist/cjs/Result/index.js.map +1 -1
  130. package/dist/cjs/ScrollButton/index.js +5 -5
  131. package/dist/cjs/ScrollButton/index.js.map +1 -1
  132. package/dist/cjs/ScrollButton/utils/useContainerPosition.js +4 -4
  133. package/dist/cjs/ScrollButton/utils/useContainerPosition.js.map +1 -1
  134. package/dist/cjs/ScrollButton/utils/useVisibility.js +4 -4
  135. package/dist/cjs/ScrollButton/utils/useVisibility.js.map +1 -1
  136. package/dist/cjs/Select/index.js +13 -13
  137. package/dist/cjs/Select/index.js.map +1 -1
  138. package/dist/cjs/Skeleton/index.js +5 -5
  139. package/dist/cjs/Skeleton/index.js.map +1 -1
  140. package/dist/cjs/Switch/index.js +9 -9
  141. package/dist/cjs/Switch/index.js.map +1 -1
  142. package/dist/cjs/SwitchSkeleton/index.js +3 -3
  143. package/dist/cjs/SwitchSkeleton/index.js.map +1 -1
  144. package/dist/cjs/Tag/index.js +5 -5
  145. package/dist/cjs/Tag/index.js.map +1 -1
  146. package/dist/cjs/TagLink/index.js +5 -5
  147. package/dist/cjs/TagLink/index.js.map +1 -1
  148. package/dist/cjs/TagList/index.js +9 -9
  149. package/dist/cjs/TagList/index.js.map +1 -1
  150. package/dist/cjs/TagListSkeleton/index.js +4 -4
  151. package/dist/cjs/TagListSkeleton/index.js.map +1 -1
  152. package/dist/cjs/TagSkeleton/index.js +5 -5
  153. package/dist/cjs/TagSkeleton/index.js.map +1 -1
  154. package/dist/cjs/TextArea/index.js +9 -9
  155. package/dist/cjs/TextArea/index.js.map +1 -1
  156. package/dist/cjs/TextAreaSkeleton/index.js +3 -3
  157. package/dist/cjs/TextAreaSkeleton/index.js.map +1 -1
  158. package/dist/cjs/ThemeSwitcher/index.js +4 -4
  159. package/dist/cjs/ThemeSwitcher/index.js.map +1 -1
  160. package/dist/cjs/TimePicker/index.js +8 -8
  161. package/dist/cjs/TimePicker/index.js.map +1 -1
  162. package/dist/cjs/Video/index.js +5 -5
  163. package/dist/cjs/Video/index.js.map +1 -1
  164. package/dist/cjs/index.js +1 -1
  165. package/dist/cjs/index.js.map +1 -1
  166. package/dist/cjs/message/AlertIcon.js +2 -2
  167. package/dist/cjs/message/AlertIcon.js.map +1 -1
  168. package/dist/cjs/message/Message.js +2 -2
  169. package/dist/cjs/message/Message.js.map +1 -1
  170. package/dist/cjs/message/index.js +1 -1
  171. package/dist/cjs/message/index.js.map +1 -1
  172. package/dist/cjs/message/styles.js +4 -4
  173. package/dist/esm/Alert/index.js +1 -1
  174. package/dist/esm/Alert/index.js.map +1 -1
  175. package/dist/esm/Avatar/index.js +1 -1
  176. package/dist/esm/Avatar/index.js.map +1 -1
  177. package/dist/esm/Avatar/utils/nameToInitials.js.map +1 -1
  178. package/dist/esm/AvatarSkeleton/index.js +1 -1
  179. package/dist/esm/AvatarSkeleton/index.js.map +1 -1
  180. package/dist/esm/Badge/index.js +1 -1
  181. package/dist/esm/Badge/index.js.map +1 -1
  182. package/dist/esm/Breadcrumb/index.js +2 -2
  183. package/dist/esm/Breadcrumb/index.js.map +1 -1
  184. package/dist/esm/BreadcrumbItem/index.js +1 -1
  185. package/dist/esm/BreadcrumbItem/index.js.map +1 -1
  186. package/dist/esm/Button/ButtonContent.js.map +1 -1
  187. package/dist/esm/Button/index.js +1 -1
  188. package/dist/esm/Button/index.js.map +1 -1
  189. package/dist/esm/Button/utils/useButtonColors.js.map +1 -1
  190. package/dist/esm/ButtonLink/index.js +1 -1
  191. package/dist/esm/ButtonLink/index.js.map +1 -1
  192. package/dist/esm/Checkbox/index.js +1 -1
  193. package/dist/esm/Checkbox/index.js.map +1 -1
  194. package/dist/esm/CheckboxSkeleton/index.js +1 -1
  195. package/dist/esm/CheckboxSkeleton/index.js.map +1 -1
  196. package/dist/esm/DatePicker/DatePickerCalendar.js +1 -1
  197. package/dist/esm/DatePicker/DatePickerCalendar.js.map +1 -1
  198. package/dist/esm/DatePicker/index.js +1 -1
  199. package/dist/esm/DatePicker/index.js.map +1 -1
  200. package/dist/esm/Drawer/index.js +1 -1
  201. package/dist/esm/Drawer/index.js.map +1 -1
  202. package/dist/esm/Form/index.js +1 -1
  203. package/dist/esm/Form/index.js.map +1 -1
  204. package/dist/esm/FormDivider/index.js +1 -1
  205. package/dist/esm/FormDivider/index.js.map +1 -1
  206. package/dist/esm/FormItem/index.js +1 -1
  207. package/dist/esm/FormItem/index.js.map +1 -1
  208. package/dist/esm/Gallery/Status.js.map +1 -1
  209. package/dist/esm/Gallery/index.js +1 -1
  210. package/dist/esm/Gallery/index.js.map +1 -1
  211. package/dist/esm/GlobalStyles/resetStyles.js.map +1 -1
  212. package/dist/esm/GlobalStyles/typographyStyles.js.map +1 -1
  213. package/dist/esm/HeaderSkeleton/index.js +1 -1
  214. package/dist/esm/HeaderSkeleton/index.js.map +1 -1
  215. package/dist/esm/Image/index.js +1 -1
  216. package/dist/esm/Image/index.js.map +1 -1
  217. package/dist/esm/ImageSkeleton/index.js +1 -1
  218. package/dist/esm/ImageSkeleton/index.js.map +1 -1
  219. package/dist/esm/Input/index.js +1 -1
  220. package/dist/esm/Input/index.js.map +1 -1
  221. package/dist/esm/InputNumber/index.js +1 -1
  222. package/dist/esm/InputPassword/index.js +1 -1
  223. package/dist/esm/InputPassword/index.js.map +1 -1
  224. package/dist/esm/InputSearch/index.js +1 -1
  225. package/dist/esm/InputSearch/index.js.map +1 -1
  226. package/dist/esm/InputSkeleton/index.js +1 -1
  227. package/dist/esm/InputSkeleton/index.js.map +1 -1
  228. package/dist/esm/Link/index.js +1 -1
  229. package/dist/esm/Link/index.js.map +1 -1
  230. package/dist/esm/LinkButton/index.js +1 -1
  231. package/dist/esm/LinkButton/index.js.map +1 -1
  232. package/dist/esm/List/index.js +1 -1
  233. package/dist/esm/List/index.js.map +1 -1
  234. package/dist/esm/ListItem/index.js +1 -1
  235. package/dist/esm/ListItem/index.js.map +1 -1
  236. package/dist/esm/ListItemActions/index.js +1 -1
  237. package/dist/esm/ListItemActions/index.js.map +1 -1
  238. package/dist/esm/ListItemLink/index.js +1 -1
  239. package/dist/esm/ListItemLink/index.js.map +1 -1
  240. package/dist/esm/ListItemSkeleton/index.js +1 -1
  241. package/dist/esm/ListItemSkeleton/index.js.map +1 -1
  242. package/dist/esm/ListSkeleton/index.js +1 -1
  243. package/dist/esm/LogoLink/index.js +1 -1
  244. package/dist/esm/LogoLink/index.js.map +1 -1
  245. package/dist/esm/Menu/index.js +1 -1
  246. package/dist/esm/Menu/index.js.map +1 -1
  247. package/dist/esm/MenuDivider/index.js +1 -1
  248. package/dist/esm/MenuDivider/index.js.map +1 -1
  249. package/dist/esm/MenuGroup/index.js +1 -1
  250. package/dist/esm/MenuGroup/index.js.map +1 -1
  251. package/dist/esm/MenuItem/index.js +1 -1
  252. package/dist/esm/MenuItem/index.js.map +1 -1
  253. package/dist/esm/Modal/index.js +1 -1
  254. package/dist/esm/Modal/index.js.map +1 -1
  255. package/dist/esm/Navigation/index.js +1 -1
  256. package/dist/esm/Navigation/index.js.map +1 -1
  257. package/dist/esm/NavigationItem/index.js +1 -1
  258. package/dist/esm/NavigationItem/index.js.map +1 -1
  259. package/dist/esm/PageContent/index.js +1 -1
  260. package/dist/esm/PageContent/index.js.map +1 -1
  261. package/dist/esm/PageHeader/index.js +1 -1
  262. package/dist/esm/PageHeader/index.js.map +1 -1
  263. package/dist/esm/PageHeaderInputSearch/index.js +1 -1
  264. package/dist/esm/PageHeaderInputSearch/index.js.map +1 -1
  265. package/dist/esm/PageHeaderSkeleton/index.js +1 -1
  266. package/dist/esm/ParagraphSkeleton/index.js +1 -1
  267. package/dist/esm/ParagraphSkeleton/index.js.map +1 -1
  268. package/dist/esm/Popover/index.js +1 -1
  269. package/dist/esm/Popover/index.js.map +1 -1
  270. package/dist/esm/Progress/index.js +1 -1
  271. package/dist/esm/Progress/index.js.map +1 -1
  272. package/dist/esm/RadioGroup/index.js +1 -1
  273. package/dist/esm/RadioGroup/index.js.map +1 -1
  274. package/dist/esm/RadioGroupSkeleton/index.js +1 -1
  275. package/dist/esm/RadioGroupSkeleton/index.js.map +1 -1
  276. package/dist/esm/Result/index.js +1 -1
  277. package/dist/esm/Result/index.js.map +1 -1
  278. package/dist/esm/ScrollButton/index.js +1 -1
  279. package/dist/esm/ScrollButton/index.js.map +1 -1
  280. package/dist/esm/Select/index.js +1 -1
  281. package/dist/esm/Select/index.js.map +1 -1
  282. package/dist/esm/Skeleton/index.js +1 -1
  283. package/dist/esm/Skeleton/index.js.map +1 -1
  284. package/dist/esm/Switch/index.js +1 -1
  285. package/dist/esm/Switch/index.js.map +1 -1
  286. package/dist/esm/SwitchSkeleton/index.js +1 -1
  287. package/dist/esm/SwitchSkeleton/index.js.map +1 -1
  288. package/dist/esm/Tag/index.js +1 -1
  289. package/dist/esm/Tag/index.js.map +1 -1
  290. package/dist/esm/TagLink/index.js +1 -1
  291. package/dist/esm/TagLink/index.js.map +1 -1
  292. package/dist/esm/TagList/index.js +1 -1
  293. package/dist/esm/TagList/index.js.map +1 -1
  294. package/dist/esm/TagListSkeleton/index.js +1 -1
  295. package/dist/esm/TagSkeleton/index.js +1 -1
  296. package/dist/esm/TagSkeleton/index.js.map +1 -1
  297. package/dist/esm/TextArea/index.js +1 -1
  298. package/dist/esm/TextArea/index.js.map +1 -1
  299. package/dist/esm/TextAreaSkeleton/index.js +1 -1
  300. package/dist/esm/TextAreaSkeleton/index.js.map +1 -1
  301. package/dist/esm/ThemeSwitcher/index.js +1 -1
  302. package/dist/esm/TimePicker/index.js +1 -1
  303. package/dist/esm/Video/index.js +1 -1
  304. package/dist/esm/Video/index.js.map +1 -1
  305. package/dist/esm/message/AlertIcon.js.map +1 -1
  306. package/dist/esm/message/Message.js.map +1 -1
  307. package/dist/types/Button/index.d.ts +2 -2
  308. package/dist/types/Button/index.d.ts.map +1 -1
  309. package/dist/types/ButtonLink/index.d.ts +14 -13
  310. package/dist/types/ButtonLink/index.d.ts.map +1 -1
  311. package/dist/types/Input/index.d.ts +4 -4
  312. package/dist/types/Input/index.d.ts.map +1 -1
  313. package/dist/types/Link/index.d.ts +4 -4
  314. package/dist/types/Link/index.d.ts.map +1 -1
  315. package/dist/types/Menu/utils/useFocusWithArrows.d.ts.map +1 -1
  316. package/dist/types/Modal/index.d.ts +2 -2
  317. package/dist/types/Modal/index.d.ts.map +1 -1
  318. package/dist/types/Navigation/utils/useScrollFlags.d.ts.map +1 -1
  319. package/dist/types/PageHeader/index.d.ts +2 -2
  320. package/dist/types/PageHeader/index.d.ts.map +1 -1
  321. package/dist/types/ScrollButton/utils/useContainerPosition.d.ts.map +1 -1
  322. package/dist/types/Select/index.d.ts +21 -21
  323. package/dist/types/Select/index.d.ts.map +1 -1
  324. package/dist/types/Tag/index.d.ts +6 -6
  325. package/dist/types/Tag/index.d.ts.map +1 -1
  326. package/dist/types/ThemeSwitcher/index.d.ts +14 -13
  327. package/dist/types/ThemeSwitcher/index.d.ts.map +1 -1
  328. package/dist/types/message/styles.d.ts.map +1 -1
  329. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["css","styled","Close","CloseCircle","Down","Loading","Up","m","useIsMinWidth","ellipsisStyles","resetButtonStyles","transitionStyles","ThemeOverrider","clr","useTheme","omitEmotionProps","useBrowserLayoutEffect","useEvent","useFontSize","useForwardedRef","useForwardedState","useResizeObserver","useSize","React","forwardRef","useCallback","useEffect","useMemo","useRef","useState","FixedSizeList","Button","InputContainer","InputSearch","useRWLoadNext","Menu","MenuItem","Tag","defaultLocale","selectContainerPaddingStyles","p","paddingVertical","theme","baseHeight","selectToggleListItemHeight","selectContainerOpenedStyles","opened","unbordered","inputFocusColorBorder","inputFocusColorShadow","selectContainerUnborderedStyles","selectContainerUnborderedHoverStyles","disabled","buttonGhostColorBgHover","SelectContainer","SelectMenu","min","xs","width","NotFound","div","menuItemHeight","inputPaddingHorizontal","selectNotFoundColorText","InputSearchContainer","menuPaddingVertical","ToggleContainer","toggleContentNotHasLeftStyles","hasLeft","toggleContentNotHasRightStyles","hasRight","ToggleContent","Placeholder","span","inputColorPlaceholder","titleUnborderedStyles","colorPrimary","titleDisabledStyles","inputDisabledColorText","Title","colorText","ToggleListItem","ToggleList","selectToggleListItemGap","DeleteButton","button","selectToggleDeleteButtonColorIcon","selectToggleDeleteButtonColorIconHover","toggleIconUnborderedStyles","ToggleIconContainer","selectColorIcon","ClearIcon","Addon","ToggleLeftAddon","inputAddonPaddingHorizontal","hasPadding","ToggleRightAddon","Select","options","initSelectedOptions","left","leftHasPadding","right","rightHasPadding","placeholder","searchVisible","searchProps","notFoundText","loading","autoFocus","autoOpen","clearVisible","threshold","visibleCount","overscanCount","multiple","maxSelectedItems","locale","value","defaultValue","onChange","onLoadNext","onClose","onBlur","size","placement","rest","ref","containerRef","mergedContainerRef","setWidth","setOpened","forwardedValue","setForwardedValue","current","focus","onCloseRef","initRef","resizeHandler","window","requestAnimationFrame","nextWidth","getBoundingClientRect","undefined","setAttribute","listBoxId","Math","random","toString","slice","blurHandler","e","onDelete","v","filter","item","prevSelectedOptions","selectedOptions","values","Array","isArray","items","map","option","find","title","toggleContent","length","createElement","key","onClick","stopPropagation","onKeyDown","deleteLabel","toggleShowClearButton","toggleOnClear","toggleRightValue","type","wide","clearLabel","toggleRightHasPaddingValue","onSelect","includes","windowSize","isMinXs","fontSize","document","body","scaleFactor","s","sizes","Number","replace","paddingBottom","paddingEm","modalBodyPaddingVertical","paddingTop","searchInputHeight","itemSize","height","maxHeight","modalHeaderHeight","curHeight","count","scrollHandler","itemCount","InnerElement","style","innerElementRest","_extends","parseFloat","role","id","listItemFn","index","optionTitle","optionValue","optionOnClick","restOption","top","selected","Fragment","tabIndex","preventDefault","onMouseDown","overrides","t","buttonPaddingHorizontal","small","trigger","visible","closeOnSelect","modalTitle","onScroll","scrollOffset","innerElementType","displayName"],"sources":["../../../src/Select/index.tsx"],"sourcesContent":["import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Close, CloseCircle, Down, Loading, Up } from '@os-design/icons';\nimport { m, useIsMinWidth } from '@os-design/media';\nimport {\n WithSize,\n ellipsisStyles,\n resetButtonStyles,\n transitionStyles,\n} from '@os-design/styles';\nimport { ThemeOverrider, clr, useTheme } from '@os-design/theming';\nimport {\n omitEmotionProps,\n useBrowserLayoutEffect,\n useEvent,\n useFontSize,\n useForwardedRef,\n useForwardedState,\n useResizeObserver,\n useSize,\n} from '@os-design/utils';\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { FixedSizeList } from 'react-window';\nimport Button from '../Button';\nimport { InputContainer } from '../Input';\nimport InputSearch, { InputSearchProps } from '../InputSearch';\nimport useRWLoadNext from '../List/utils/useRWLoadNext';\nimport Menu from '../Menu';\nimport MenuItem, { MenuItemProps } from '../MenuItem';\nimport { PopoverProps } from '../Popover';\nimport Tag from '../Tag';\nimport defaultLocale, { SelectLocale } from './utils/defaultLocale';\n\nexport interface Option extends MenuItemProps {\n value: string;\n title: string;\n}\n\ntype JsxDivProps = Omit<\n JSX.IntrinsicElements['div'],\n 'value' | 'defaultValue' | 'onChange' | 'ref'\n>;\ninterface BaseSelectProps<T>\n extends JsxDivProps,\n WithSize,\n Pick<PopoverProps, 'placement'> {\n /**\n * Options of the select.\n * @default undefined\n */\n options?: Option[];\n /**\n * Options of the select used to display the selected values.\n * Must be used if all of the options are not loaded immediately.\n * In this case, it's possible that the first loaded options do not contain the selected values.\n * @default undefined\n */\n initSelectedOptions?: Option[];\n /**\n * The component located on the left side.\n * @default undefined\n */\n left?: React.ReactNode;\n /**\n * Adds padding to the left component.\n * It can be useful when passing an icon or text in the left component.\n * @default false\n */\n leftHasPadding?: boolean;\n /**\n * The component located on the right side.\n * @default undefined\n */\n right?: React.ReactNode;\n /**\n * Adds padding to the right component.\n * It can be useful when passing an icon or text in the right component.\n * @default false\n */\n rightHasPadding?: boolean;\n /**\n * The placeholder of the select.\n * @default undefined\n */\n placeholder?: string;\n /**\n * Whether the search input visible.\n * @default false\n */\n searchVisible?: boolean;\n /**\n * Props of the search input.\n * @default undefined\n */\n searchProps?: InputSearchProps;\n /**\n * Text displayed when there are no list items.\n * @default 'Not found'\n */\n notFoundText?: string;\n /**\n * Whether the border is hidden.\n * @default false\n */\n unbordered?: boolean;\n /**\n * Shows the loading status.\n * @default false\n */\n loading?: boolean;\n /**\n * Whether the select is disabled.\n * @default false\n */\n disabled?: boolean;\n /**\n * Whether the component have a focus.\n * @default false\n */\n autoFocus?: boolean;\n /**\n * Whether the component opens the popup list.\n * @default false\n */\n autoOpen?: boolean;\n /**\n * Whether the select has the clear button.\n * @default false\n */\n clearVisible?: boolean;\n /**\n * A threshold N means that the onLoadNext function calls when a user scrolls all items except N.\n * @default 10\n */\n threshold?: number;\n /**\n * Defines how many items inside of the visible \"window\" to render.\n * @default 6\n */\n visibleCount?: number;\n /**\n * Defines how many items outside of the visible \"window\" to render at all times.\n * @default 10\n */\n overscanCount?: number;\n /**\n * The max number of options that the user can select. Zero means unlimited.\n * Works only when multiple is true.\n * @default 0\n */\n maxSelectedItems?: number;\n /**\n * The locale.\n * @default undefined\n */\n locale?: SelectLocale;\n /**\n * Selected options.\n * @default undefined\n */\n value?: T;\n /**\n * The default value.\n * @default undefined\n */\n defaultValue?: T;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: T) => void;\n /**\n * The callback to load more items.\n * @default undefined\n */\n onLoadNext?: () => void;\n /**\n * The event handler that is called whenever a popup closes.\n * @default undefined\n */\n onClose?: () => void;\n}\nexport interface SelectNotMultipleProps extends BaseSelectProps<string | null> {\n /**\n * Is it possible to select multiple values.\n * @default false\n */\n multiple?: false;\n}\nexport interface SelectMultipleProps extends BaseSelectProps<string[]> {\n /**\n * Is it possible to select multiple values.\n * @default false\n */\n multiple: true;\n}\nexport type SelectProps = SelectNotMultipleProps | SelectMultipleProps;\n\nconst selectContainerPaddingStyles = (p) => {\n const paddingVertical =\n (p.theme.baseHeight - p.theme.selectToggleListItemHeight) / 2;\n\n return css`\n padding: calc(${paddingVertical}em - 1px) 0;\n `;\n};\n\nconst selectContainerOpenedStyles = (p) =>\n p.opened &&\n !p.unbordered &&\n css`\n border-color: ${clr(p.theme.inputFocusColorBorder)};\n box-shadow: 0 0 0 0.15em ${clr(p.theme.inputFocusColorShadow)};\n `;\n\nconst selectContainerUnborderedStyles = (p) =>\n p.unbordered &&\n css`\n border: 0;\n box-shadow: none !important;\n ${transitionStyles('background-color')(p)};\n `;\n\nconst selectContainerUnborderedHoverStyles = (p) =>\n p.unbordered &&\n !p.disabled &&\n css`\n @media (hover: hover) {\n &:hover,\n &:focus {\n background-color: ${clr(p.theme.buttonGhostColorBgHover)};\n }\n }\n `;\n\ninterface SelectContainerProps {\n opened: boolean;\n unbordered?: boolean;\n disabled?: boolean;\n}\nexport const SelectContainer = styled(\n InputContainer,\n omitEmotionProps('opened', 'unbordered', 'disabled')\n)<SelectContainerProps>`\n cursor: ${(p) => (!p.disabled ? 'pointer' : 'not-allowed')};\n user-select: none;\n position: relative;\n display: flex;\n align-items: center;\n\n height: unset;\n min-height: ${(p) => p.theme.baseHeight}em;\n\n ${selectContainerPaddingStyles};\n ${selectContainerOpenedStyles};\n ${selectContainerUnborderedStyles};\n ${selectContainerUnborderedHoverStyles};\n`;\n\ninterface SelectMenuProps {\n width: number;\n}\nconst SelectMenu = styled(Menu, omitEmotionProps('width'))<SelectMenuProps>`\n padding-top: 0;\n padding-bottom: 0;\n max-height: unset;\n\n ${m.min.xs} {\n width: ${(p) => p.width}px;\n }\n`;\n\nconst NotFound = styled.div`\n height: ${(p) => p.theme.menuItemHeight}em;\n display: flex;\n align-items: center;\n\n padding: 0 ${(p) => p.theme.inputPaddingHorizontal}em;\n color: ${(p) => clr(p.theme.selectNotFoundColorText)};\n`;\n\nconst InputSearchContainer = styled.div`\n padding: ${(p) => p.theme.menuPaddingVertical}em\n ${(p) => p.theme.inputPaddingHorizontal}em 0;\n`;\n\nexport const ToggleContainer = styled.div`\n flex: 1;\n display: flex;\n align-items: center;\n overflow: hidden;\n`;\n\nconst toggleContentNotHasLeftStyles = (p) =>\n !p.hasLeft &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `;\n\nconst toggleContentNotHasRightStyles = (p) =>\n !p.hasRight &&\n !p.unbordered &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `;\n\ninterface ToggleContentProps {\n hasLeft?: boolean;\n hasRight?: boolean;\n unbordered?: boolean;\n}\nexport const ToggleContent = styled(\n 'div',\n omitEmotionProps('hasLeft', 'hasRight', 'unbordered')\n)<ToggleContentProps>`\n flex: 1;\n ${toggleContentNotHasLeftStyles};\n ${toggleContentNotHasRightStyles};\n ${ellipsisStyles};\n`;\n\nexport const Placeholder = styled.span`\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n ${ellipsisStyles};\n`;\n\nconst titleUnborderedStyles = (p) =>\n p.unbordered &&\n css`\n font-weight: 500;\n ${!p.disabled && `color: ${clr(p.theme.colorPrimary)};`}\n `;\n\nconst titleDisabledStyles = (p) =>\n p.disabled &&\n css`\n color: ${clr(p.theme.inputDisabledColorText)};\n `;\n\ntype TitleProps = Pick<SelectProps, 'disabled' | 'unbordered'>;\nexport const Title = styled(\n 'span',\n omitEmotionProps('disabled', 'unbordered')\n)<TitleProps>`\n color: ${(p) => clr(p.theme.colorText)};\n ${titleUnborderedStyles};\n ${titleDisabledStyles};\n ${ellipsisStyles};\n`;\n\ntype ToggleListItemProps = Pick<SelectProps, 'disabled'>;\nconst ToggleListItem = styled(\n Tag,\n omitEmotionProps('disabled')\n)<ToggleListItemProps>`\n // Reset tag styles\n padding-top: 0;\n padding-bottom: 0;\n\n height: ${(p) => p.theme.selectToggleListItemHeight}em;\n ${titleDisabledStyles};\n`;\n\nconst ToggleList = styled.div`\n display: flex;\n flex-wrap: wrap;\n overflow: hidden; // For ellipsis styles\n\n margin: 0 ${(p) => p.theme.selectToggleListItemGap}em\n ${(p) => -p.theme.selectToggleListItemGap}em 0;\n\n & > div {\n margin: 0 ${(p) => p.theme.selectToggleListItemGap}em\n ${(p) => p.theme.selectToggleListItemGap}em 0;\n }\n`;\n\nconst DeleteButton = styled.button`\n ${resetButtonStyles};\n cursor: pointer;\n display: inherit;\n font-size: 1em;\n margin-left: 0.2em;\n\n background-color: transparent;\n color: ${(p) => clr(p.theme.selectToggleDeleteButtonColorIcon)};\n\n @media (hover: hover) {\n &:hover,\n &:focus {\n color: ${(p) => clr(p.theme.selectToggleDeleteButtonColorIconHover)};\n }\n }\n\n ${transitionStyles('color')};\n`;\n\nconst toggleIconUnborderedStyles = (p) =>\n p.unbordered &&\n css`\n padding-top: 0.2em;\n font-size: 0.8em;\n ${!p.disabled && `color: ${clr(p.theme.colorPrimary)};`}\n `;\n\ninterface ToggleIconContainerProps {\n unbordered?: boolean;\n}\nexport const ToggleIconContainer = styled(\n 'span',\n omitEmotionProps('unbordered')\n)<ToggleIconContainerProps>`\n color: ${(p) => clr(p.theme.selectColorIcon)};\n line-height: 1;\n ${toggleIconUnborderedStyles};\n`;\n\nexport const ClearIcon = styled(CloseCircle)`\n transform: scale(1.2) !important;\n`;\n\ninterface AddonProps {\n hasPadding: boolean;\n}\nconst Addon = styled('span', omitEmotionProps('hasPadding'))<AddonProps>`\n display: flex;\n align-items: center;\n user-select: none;\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n\n svg {\n transform: scale(1.2);\n }\n`;\n\nexport const ToggleLeftAddon = styled(Addon)`\n padding-right: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\nexport const ToggleRightAddon = styled(Addon)`\n padding-left: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\n/**\n * The component that allows to pick a value from predefined options.\n */\nconst Select = forwardRef<HTMLDivElement, SelectProps>(\n (\n {\n options = [],\n initSelectedOptions = [],\n left,\n leftHasPadding = false,\n right,\n rightHasPadding = false,\n placeholder,\n searchVisible = false,\n searchProps = {},\n notFoundText = 'Not found',\n unbordered = false,\n loading = false,\n disabled = false,\n autoFocus = false,\n autoOpen = false,\n clearVisible = false,\n threshold = 10,\n visibleCount = 6,\n overscanCount = 10,\n multiple = false,\n maxSelectedItems = 0,\n locale = defaultLocale,\n value,\n defaultValue,\n onChange,\n onLoadNext = () => {},\n onClose = () => {},\n onBlur = () => {},\n size,\n placement,\n ...rest\n },\n ref\n ) => {\n const [containerRef, mergedContainerRef] = useForwardedRef(ref);\n const [width, setWidth] = useState(0);\n const [opened, setOpened] = useState(autoOpen);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [forwardedValue, setForwardedValue] = useForwardedState<any>({\n value,\n defaultValue,\n onChange,\n });\n\n useEffect(() => {\n if (autoFocus) containerRef.current?.focus();\n }, [autoFocus, containerRef]);\n\n const onCloseRef = useRef(onClose);\n useEffect(() => {\n onCloseRef.current = onClose;\n }, [onClose]);\n\n const initRef = useRef(false);\n useEffect(() => {\n if (!initRef.current) {\n initRef.current = true;\n return;\n }\n if (!opened) onCloseRef.current();\n }, [opened]);\n\n /**\n * Detect the width of the container when the select was opened and update\n * it when either the container size or the window size has been changed.\n */\n const resizeHandler = useCallback(() => {\n window.requestAnimationFrame(() => {\n if (!opened || !containerRef.current) return;\n const nextWidth = containerRef.current.getBoundingClientRect().width;\n if (width === nextWidth) return;\n setWidth(nextWidth);\n });\n }, [opened, containerRef, width]);\n useBrowserLayoutEffect(() => resizeHandler(), [resizeHandler]);\n useResizeObserver(containerRef, resizeHandler);\n useEvent(\n (typeof window !== 'undefined' ? window : undefined) as EventTarget,\n 'resize',\n resizeHandler\n );\n\n // Replace the aria-haspopup attribute from menu to listbox\n useBrowserLayoutEffect(() => {\n if (!containerRef.current) return;\n containerRef.current.setAttribute('aria-haspopup', 'listbox');\n }, []);\n\n const listBoxId = useMemo(\n () => `listbox-${Math.random().toString(36).slice(2, 11)}`,\n []\n );\n\n const blurHandler = useCallback(\n (e) => {\n if (!opened) onBlur(e);\n },\n [onBlur, opened]\n );\n\n const onDelete = useCallback(\n (v: string) => {\n if (!multiple) return;\n setForwardedValue((forwardedValue || []).filter((item) => item !== v));\n },\n [forwardedValue, multiple, setForwardedValue]\n );\n\n const prevSelectedOptions = useRef<Option[]>(initSelectedOptions);\n\n const selectedOptions = useMemo<\n Array<{ title: string; value: string }>\n >(() => {\n if (!forwardedValue) return [];\n const values = Array.isArray(forwardedValue)\n ? forwardedValue\n : [forwardedValue];\n const items = [...options, ...prevSelectedOptions.current];\n return values.map((v) => {\n const option = items.find((item) => item.value === v);\n return {\n title: option ? option.title : v,\n value: v,\n };\n });\n }, [forwardedValue, options]);\n\n useEffect(() => {\n prevSelectedOptions.current = selectedOptions;\n }, [selectedOptions]);\n\n const toggleContent = useMemo(() => {\n if (multiple) {\n if (!forwardedValue || forwardedValue.length === 0) {\n return <Placeholder>{placeholder}</Placeholder>;\n }\n return (\n <ToggleList>\n {selectedOptions.map(({ title, value: v }) => (\n <ToggleListItem\n key={v}\n disabled={disabled}\n right={\n !disabled ? (\n <DeleteButton\n onClick={(e) => {\n onDelete(v);\n e.stopPropagation();\n }}\n onKeyDown={(e) => e.stopPropagation()}\n aria-label={`${locale.deleteLabel} ${title}`}\n aria-hidden\n >\n <Close />\n </DeleteButton>\n ) : undefined\n }\n aria-hidden\n >\n {title}\n </ToggleListItem>\n ))}\n </ToggleList>\n );\n }\n if (!forwardedValue) {\n return <Placeholder>{placeholder}</Placeholder>;\n }\n const option = selectedOptions.find(\n (item) => item.value === forwardedValue\n );\n return (\n <Title disabled={disabled} unbordered={unbordered}>\n {option ? option.title : ''}\n </Title>\n );\n }, [\n disabled,\n forwardedValue,\n locale.deleteLabel,\n multiple,\n onDelete,\n placeholder,\n selectedOptions,\n unbordered,\n ]);\n\n const toggleShowClearButton = useMemo(() => {\n if (!clearVisible) return false;\n if (multiple) return forwardedValue && forwardedValue.length > 0;\n return !!forwardedValue;\n }, [clearVisible, forwardedValue, multiple]);\n\n const toggleOnClear = useCallback(() => {\n setForwardedValue(multiple ? [] : null);\n if (!containerRef.current) return;\n containerRef.current.focus();\n }, [containerRef, multiple, setForwardedValue]);\n\n const toggleRightValue = useMemo(() => {\n if (loading) return <Loading />;\n if (toggleShowClearButton) {\n return (\n <Button\n type='ghost'\n wide='never'\n size='small'\n disabled={disabled}\n onClick={(e) => {\n toggleOnClear();\n e.stopPropagation();\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') toggleOnClear();\n e.stopPropagation();\n }}\n aria-label={locale.clearLabel}\n >\n <ClearIcon />\n </Button>\n );\n }\n return (\n right || (\n <ToggleIconContainer unbordered={unbordered}>\n {opened ? <Up /> : <Down />}\n </ToggleIconContainer>\n )\n );\n }, [\n disabled,\n loading,\n locale.clearLabel,\n opened,\n right,\n toggleOnClear,\n toggleShowClearButton,\n unbordered,\n ]);\n\n const toggleRightHasPaddingValue = useMemo(() => {\n if (loading) return true;\n if (toggleShowClearButton) return false;\n return right ? rightHasPadding : true;\n }, [loading, right, rightHasPadding, toggleShowClearButton]);\n\n const onSelect = useCallback(\n (v: string) => {\n if (multiple) {\n // Delete the value because it was already selected\n if ((forwardedValue || []).includes(v)) {\n setForwardedValue(\n (forwardedValue || []).filter((item) => item !== v)\n );\n return;\n }\n\n // Add a new value if the number of selected items is less than max\n if (\n maxSelectedItems === 0 ||\n (forwardedValue || []).length < maxSelectedItems\n ) {\n setForwardedValue([...(forwardedValue || []), v]);\n return;\n }\n return;\n }\n setForwardedValue(v);\n },\n [forwardedValue, maxSelectedItems, multiple, setForwardedValue]\n );\n\n const windowSize = useSize();\n const isMinXs = useIsMinWidth('xs');\n const fontSize = useFontSize(\n typeof window !== 'undefined'\n ? document.body\n : (null as unknown as HTMLElement)\n );\n const { theme } = useTheme();\n\n const scaleFactor = useMemo(() => {\n const s = size || 'medium';\n return ['small', 'medium', 'large'].includes(s)\n ? theme.sizes[s]\n : Number(s.replace(/^([0-9]+(\\.[0-9]+)?).*/, '$1')) || 1; // Extract the number\n }, [size, theme.sizes]);\n\n const paddingBottom = useMemo(() => {\n const paddingEm = isMinXs\n ? theme.menuPaddingVertical\n : theme.modalBodyPaddingVertical[0];\n return paddingEm * fontSize * scaleFactor;\n }, [\n isMinXs,\n theme.menuPaddingVertical,\n theme.modalBodyPaddingVertical,\n fontSize,\n scaleFactor,\n ]);\n\n const paddingTop = useMemo(\n () => (searchVisible ? 5 * scaleFactor : paddingBottom),\n [searchVisible, scaleFactor, paddingBottom]\n );\n\n const searchInputHeight = useMemo(\n () =>\n searchVisible\n ? (theme.baseHeight + theme.menuPaddingVertical) *\n fontSize *\n scaleFactor\n : 0,\n [\n searchVisible,\n theme.baseHeight,\n theme.menuPaddingVertical,\n fontSize,\n scaleFactor,\n ]\n );\n\n const itemSize = useMemo(\n () => theme.menuItemHeight * fontSize * scaleFactor,\n [theme.menuItemHeight, fontSize, scaleFactor]\n );\n\n const height = useMemo(() => {\n // Modal\n if (!isMinXs) {\n const maxHeight =\n windowSize.height -\n theme.modalHeaderHeight * fontSize * scaleFactor -\n searchInputHeight;\n const curHeight =\n options.length * itemSize + paddingTop + paddingBottom;\n return curHeight < maxHeight ? curHeight : maxHeight;\n }\n // Popover\n const count =\n options.length < visibleCount ? options.length : visibleCount;\n return count * itemSize + paddingTop + paddingBottom;\n }, [\n isMinXs,\n options.length,\n visibleCount,\n itemSize,\n windowSize.height,\n theme.modalHeaderHeight,\n fontSize,\n scaleFactor,\n searchInputHeight,\n paddingTop,\n paddingBottom,\n ]);\n\n const scrollHandler = useRWLoadNext({\n itemCount: options.length,\n threshold,\n itemSize,\n paddingTop,\n height,\n onLoadNext,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const InnerElement = useCallback(\n ({ style, ...innerElementRest }) => (\n <div\n style={{\n ...style,\n height: `${\n parseFloat(style.height) + paddingTop + paddingBottom\n }px`,\n }}\n role='listbox'\n id={listBoxId}\n {...innerElementRest}\n />\n ),\n [listBoxId, paddingBottom, paddingTop]\n );\n\n const listItemFn = useCallback(\n ({ index, style }) => {\n const {\n title: optionTitle,\n value: optionValue,\n onClick: optionOnClick,\n ...restOption\n } = options[index];\n return (\n <MenuItem\n style={{\n ...style,\n top: `${\n parseFloat(style.top ? style.top.toString() : '0') + paddingTop\n }px`,\n }}\n selected={\n (multiple &&\n (forwardedValue || []).includes(optionValue || '')) ||\n (!multiple && forwardedValue === optionValue)\n }\n onClick={(e) => {\n if (!optionValue) return;\n onSelect(optionValue);\n\n // Focus the input.\n // Otherwise, if multiple is false and the user presses enter to select an item,\n // the input will lose focus.\n if (containerRef.current && !multiple) {\n containerRef.current.focus();\n }\n\n if (optionOnClick) optionOnClick(e);\n }}\n role='option'\n aria-selected={\n (multiple &&\n (forwardedValue || []).includes(optionValue || '')) ||\n (!multiple && forwardedValue === optionValue)\n }\n {...restOption}\n >\n {optionTitle}\n </MenuItem>\n );\n },\n [containerRef, forwardedValue, multiple, onSelect, options, paddingTop]\n );\n\n return (\n <>\n <SelectContainer\n opened={opened}\n unbordered={unbordered}\n disabled={disabled}\n size={size}\n tabIndex={!disabled ? 0 : -1}\n onClick={() => {\n if (disabled) return;\n setOpened(!opened);\n }}\n onKeyDown={(e) => {\n if (disabled) return;\n if (['Enter', ' '].includes(e.key)) {\n setOpened(!opened);\n e.preventDefault();\n }\n }}\n onMouseDown={(e) => e.preventDefault()}\n onBlur={blurHandler}\n role='combobox'\n aria-disabled={disabled}\n aria-busy={loading}\n aria-haspopup='listbox'\n aria-owns={listBoxId}\n {...rest}\n ref={mergedContainerRef}\n >\n <ToggleContainer>\n {left && (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: 0.8,\n baseHeight: t.selectToggleListItemHeight / t.sizes.small,\n })}\n >\n <ToggleLeftAddon hasPadding={leftHasPadding}>\n {left}\n </ToggleLeftAddon>\n </ThemeOverrider>\n )}\n\n <ToggleContent\n hasLeft={!!left}\n hasRight={!!right}\n unbordered={unbordered}\n >\n {toggleContent}\n </ToggleContent>\n\n {toggleRightValue && (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: 0.8,\n baseHeight: t.selectToggleListItemHeight / t.sizes.small,\n })}\n >\n <ToggleRightAddon hasPadding={toggleRightHasPaddingValue}>\n {toggleRightValue}\n </ToggleRightAddon>\n </ThemeOverrider>\n )}\n </ToggleContainer>\n </SelectContainer>\n\n <SelectMenu\n trigger={containerRef}\n visible={opened}\n onClose={() => setOpened(false)}\n size={size}\n width={width}\n closeOnSelect={!multiple}\n modalTitle={placeholder}\n placement={placement}\n >\n {searchVisible && (\n <InputSearchContainer>\n <InputSearch {...searchProps} />\n </InputSearchContainer>\n )}\n\n {options.length > 0 ? (\n <FixedSizeList\n width='100%'\n height={height}\n itemSize={itemSize}\n itemCount={options.length}\n overscanCount={overscanCount}\n onScroll={({ scrollOffset }) => scrollHandler(scrollOffset)}\n innerElementType={InnerElement}\n >\n {listItemFn}\n </FixedSizeList>\n ) : (\n <NotFound>{notFoundText}</NotFound>\n )}\n </SelectMenu>\n </>\n );\n }\n);\n\nSelect.displayName = 'Select';\n\nexport default Select;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["css","styled","Close","CloseCircle","Down","Loading","Up","m","useIsMinWidth","ellipsisStyles","resetButtonStyles","transitionStyles","ThemeOverrider","clr","useTheme","omitEmotionProps","useBrowserLayoutEffect","useEvent","useFontSize","useForwardedRef","useForwardedState","useResizeObserver","useSize","React","forwardRef","useCallback","useEffect","useMemo","useRef","useState","FixedSizeList","Button","InputContainer","InputSearch","useRWLoadNext","Menu","MenuItem","Tag","defaultLocale","selectContainerPaddingStyles","p","paddingVertical","theme","baseHeight","selectToggleListItemHeight","selectContainerOpenedStyles","opened","unbordered","inputFocusColorBorder","inputFocusColorShadow","selectContainerUnborderedStyles","selectContainerUnborderedHoverStyles","disabled","buttonGhostColorBgHover","SelectContainer","SelectMenu","min","xs","width","NotFound","div","menuItemHeight","inputPaddingHorizontal","selectNotFoundColorText","InputSearchContainer","menuPaddingVertical","ToggleContainer","toggleContentNotHasLeftStyles","hasLeft","toggleContentNotHasRightStyles","hasRight","ToggleContent","Placeholder","span","inputColorPlaceholder","titleUnborderedStyles","colorPrimary","titleDisabledStyles","inputDisabledColorText","Title","colorText","ToggleListItem","ToggleList","selectToggleListItemGap","DeleteButton","button","selectToggleDeleteButtonColorIcon","selectToggleDeleteButtonColorIconHover","toggleIconUnborderedStyles","ToggleIconContainer","selectColorIcon","ClearIcon","Addon","ToggleLeftAddon","inputAddonPaddingHorizontal","hasPadding","ToggleRightAddon","Select","options","initSelectedOptions","left","leftHasPadding","right","rightHasPadding","placeholder","searchVisible","searchProps","notFoundText","loading","autoFocus","autoOpen","clearVisible","threshold","visibleCount","overscanCount","multiple","maxSelectedItems","locale","value","defaultValue","onChange","onLoadNext","onClose","onBlur","size","placement","rest","ref","containerRef","mergedContainerRef","setWidth","setOpened","forwardedValue","setForwardedValue","current","focus","onCloseRef","initRef","resizeHandler","window","requestAnimationFrame","nextWidth","getBoundingClientRect","undefined","setAttribute","listBoxId","Math","random","toString","slice","blurHandler","e","onDelete","v","filter","item","prevSelectedOptions","selectedOptions","values","Array","isArray","items","map","option","find","title","toggleContent","length","createElement","key","onClick","stopPropagation","onKeyDown","deleteLabel","toggleShowClearButton","toggleOnClear","toggleRightValue","type","wide","clearLabel","toggleRightHasPaddingValue","onSelect","includes","windowSize","isMinXs","fontSize","document","body","scaleFactor","s","sizes","Number","replace","paddingBottom","paddingEm","modalBodyPaddingVertical","paddingTop","searchInputHeight","itemSize","height","maxHeight","modalHeaderHeight","curHeight","count","scrollHandler","itemCount","InnerElement","style","innerElementRest","_extends","parseFloat","role","id","listItemFn","index","optionTitle","optionValue","optionOnClick","restOption","top","selected","Fragment","tabIndex","preventDefault","onMouseDown","overrides","t","buttonPaddingHorizontal","small","trigger","visible","closeOnSelect","modalTitle","onScroll","scrollOffset","innerElementType","displayName"],"sources":["../../../src/Select/index.tsx"],"sourcesContent":["import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Close, CloseCircle, Down, Loading, Up } from '@os-design/icons';\nimport { m, useIsMinWidth } from '@os-design/media';\nimport {\n WithSize,\n ellipsisStyles,\n resetButtonStyles,\n transitionStyles,\n} from '@os-design/styles';\nimport { ThemeOverrider, clr, useTheme } from '@os-design/theming';\nimport {\n omitEmotionProps,\n useBrowserLayoutEffect,\n useEvent,\n useFontSize,\n useForwardedRef,\n useForwardedState,\n useResizeObserver,\n useSize,\n} from '@os-design/utils';\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { FixedSizeList } from 'react-window';\nimport Button from '../Button';\nimport { InputContainer } from '../Input';\nimport InputSearch, { InputSearchProps } from '../InputSearch';\nimport useRWLoadNext from '../List/utils/useRWLoadNext';\nimport Menu from '../Menu';\nimport MenuItem, { MenuItemProps } from '../MenuItem';\nimport { PopoverProps } from '../Popover';\nimport Tag from '../Tag';\nimport defaultLocale, { SelectLocale } from './utils/defaultLocale';\n\nexport interface Option extends MenuItemProps {\n value: string;\n title: string;\n}\n\ntype JsxDivProps = Omit<\n JSX.IntrinsicElements['div'],\n 'value' | 'defaultValue' | 'onChange' | 'ref'\n>;\ninterface BaseSelectProps<T>\n extends JsxDivProps,\n WithSize,\n Pick<PopoverProps, 'placement'> {\n /**\n * Options of the select.\n * @default undefined\n */\n options?: Option[];\n /**\n * Options of the select used to display the selected values.\n * Must be used if all of the options are not loaded immediately.\n * In this case, it's possible that the first loaded options do not contain the selected values.\n * @default undefined\n */\n initSelectedOptions?: Option[];\n /**\n * The component located on the left side.\n * @default undefined\n */\n left?: React.ReactNode;\n /**\n * Adds padding to the left component.\n * It can be useful when passing an icon or text in the left component.\n * @default false\n */\n leftHasPadding?: boolean;\n /**\n * The component located on the right side.\n * @default undefined\n */\n right?: React.ReactNode;\n /**\n * Adds padding to the right component.\n * It can be useful when passing an icon or text in the right component.\n * @default false\n */\n rightHasPadding?: boolean;\n /**\n * The placeholder of the select.\n * @default undefined\n */\n placeholder?: string;\n /**\n * Whether the search input visible.\n * @default false\n */\n searchVisible?: boolean;\n /**\n * Props of the search input.\n * @default undefined\n */\n searchProps?: InputSearchProps;\n /**\n * Text displayed when there are no list items.\n * @default 'Not found'\n */\n notFoundText?: string;\n /**\n * Whether the border is hidden.\n * @default false\n */\n unbordered?: boolean;\n /**\n * Shows the loading status.\n * @default false\n */\n loading?: boolean;\n /**\n * Whether the select is disabled.\n * @default false\n */\n disabled?: boolean;\n /**\n * Whether the component have a focus.\n * @default false\n */\n autoFocus?: boolean;\n /**\n * Whether the component opens the popup list.\n * @default false\n */\n autoOpen?: boolean;\n /**\n * Whether the select has the clear button.\n * @default false\n */\n clearVisible?: boolean;\n /**\n * A threshold N means that the onLoadNext function calls when a user scrolls all items except N.\n * @default 10\n */\n threshold?: number;\n /**\n * Defines how many items inside of the visible \"window\" to render.\n * @default 6\n */\n visibleCount?: number;\n /**\n * Defines how many items outside of the visible \"window\" to render at all times.\n * @default 10\n */\n overscanCount?: number;\n /**\n * The max number of options that the user can select. Zero means unlimited.\n * Works only when multiple is true.\n * @default 0\n */\n maxSelectedItems?: number;\n /**\n * The locale.\n * @default undefined\n */\n locale?: SelectLocale;\n /**\n * Selected options.\n * @default undefined\n */\n value?: T;\n /**\n * The default value.\n * @default undefined\n */\n defaultValue?: T;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: T) => void;\n /**\n * The callback to load more items.\n * @default undefined\n */\n onLoadNext?: () => void;\n /**\n * The event handler that is called whenever a popup closes.\n * @default undefined\n */\n onClose?: () => void;\n}\nexport interface SelectNotMultipleProps extends BaseSelectProps<string | null> {\n /**\n * Is it possible to select multiple values.\n * @default false\n */\n multiple?: false;\n}\nexport interface SelectMultipleProps extends BaseSelectProps<string[]> {\n /**\n * Is it possible to select multiple values.\n * @default false\n */\n multiple: true;\n}\nexport type SelectProps = SelectNotMultipleProps | SelectMultipleProps;\n\nconst selectContainerPaddingStyles = (p) => {\n const paddingVertical =\n (p.theme.baseHeight - p.theme.selectToggleListItemHeight) / 2;\n\n return css`\n padding: calc(${paddingVertical}em - 1px) 0;\n `;\n};\n\nconst selectContainerOpenedStyles = (p) =>\n p.opened &&\n !p.unbordered &&\n css`\n border-color: ${clr(p.theme.inputFocusColorBorder)};\n box-shadow: 0 0 0 0.15em ${clr(p.theme.inputFocusColorShadow)};\n `;\n\nconst selectContainerUnborderedStyles = (p) =>\n p.unbordered &&\n css`\n border: 0;\n box-shadow: none !important;\n ${transitionStyles('background-color')(p)};\n `;\n\nconst selectContainerUnborderedHoverStyles = (p) =>\n p.unbordered &&\n !p.disabled &&\n css`\n @media (hover: hover) {\n &:hover,\n &:focus {\n background-color: ${clr(p.theme.buttonGhostColorBgHover)};\n }\n }\n `;\n\ninterface SelectContainerProps {\n opened: boolean;\n unbordered?: boolean;\n disabled?: boolean;\n}\nexport const SelectContainer = styled(\n InputContainer,\n omitEmotionProps('opened', 'unbordered', 'disabled')\n)<SelectContainerProps>`\n cursor: ${(p) => (!p.disabled ? 'pointer' : 'not-allowed')};\n user-select: none;\n position: relative;\n display: flex;\n align-items: center;\n\n height: unset;\n min-height: ${(p) => p.theme.baseHeight}em;\n\n ${selectContainerPaddingStyles};\n ${selectContainerOpenedStyles};\n ${selectContainerUnborderedStyles};\n ${selectContainerUnborderedHoverStyles};\n`;\n\ninterface SelectMenuProps {\n width: number;\n}\nconst SelectMenu = styled(Menu, omitEmotionProps('width'))<SelectMenuProps>`\n padding-top: 0;\n padding-bottom: 0;\n max-height: unset;\n\n ${m.min.xs} {\n width: ${(p) => p.width}px;\n }\n`;\n\nconst NotFound = styled.div`\n height: ${(p) => p.theme.menuItemHeight}em;\n display: flex;\n align-items: center;\n\n padding: 0 ${(p) => p.theme.inputPaddingHorizontal}em;\n color: ${(p) => clr(p.theme.selectNotFoundColorText)};\n`;\n\nconst InputSearchContainer = styled.div`\n padding: ${(p) => p.theme.menuPaddingVertical}em\n ${(p) => p.theme.inputPaddingHorizontal}em 0;\n`;\n\nexport const ToggleContainer = styled.div`\n flex: 1;\n display: flex;\n align-items: center;\n overflow: hidden;\n`;\n\nconst toggleContentNotHasLeftStyles = (p) =>\n !p.hasLeft &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `;\n\nconst toggleContentNotHasRightStyles = (p) =>\n !p.hasRight &&\n !p.unbordered &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `;\n\ninterface ToggleContentProps {\n hasLeft?: boolean;\n hasRight?: boolean;\n unbordered?: boolean;\n}\nexport const ToggleContent = styled(\n 'div',\n omitEmotionProps('hasLeft', 'hasRight', 'unbordered')\n)<ToggleContentProps>`\n flex: 1;\n ${toggleContentNotHasLeftStyles};\n ${toggleContentNotHasRightStyles};\n ${ellipsisStyles};\n`;\n\nexport const Placeholder = styled.span`\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n ${ellipsisStyles};\n`;\n\nconst titleUnborderedStyles = (p) =>\n p.unbordered &&\n css`\n font-weight: 500;\n ${!p.disabled && `color: ${clr(p.theme.colorPrimary)};`}\n `;\n\nconst titleDisabledStyles = (p) =>\n p.disabled &&\n css`\n color: ${clr(p.theme.inputDisabledColorText)};\n `;\n\ntype TitleProps = Pick<SelectProps, 'disabled' | 'unbordered'>;\nexport const Title = styled(\n 'span',\n omitEmotionProps('disabled', 'unbordered')\n)<TitleProps>`\n color: ${(p) => clr(p.theme.colorText)};\n ${titleUnborderedStyles};\n ${titleDisabledStyles};\n ${ellipsisStyles};\n`;\n\ntype ToggleListItemProps = Pick<SelectProps, 'disabled'>;\nconst ToggleListItem = styled(\n Tag,\n omitEmotionProps('disabled')\n)<ToggleListItemProps>`\n // Reset tag styles\n padding-top: 0;\n padding-bottom: 0;\n\n height: ${(p) => p.theme.selectToggleListItemHeight}em;\n ${titleDisabledStyles};\n`;\n\nconst ToggleList = styled.div`\n display: flex;\n flex-wrap: wrap;\n overflow: hidden; // For ellipsis styles\n\n margin: 0 ${(p) => p.theme.selectToggleListItemGap}em\n ${(p) => -p.theme.selectToggleListItemGap}em 0;\n\n & > div {\n margin: 0 ${(p) => p.theme.selectToggleListItemGap}em\n ${(p) => p.theme.selectToggleListItemGap}em 0;\n }\n`;\n\nconst DeleteButton = styled.button`\n ${resetButtonStyles};\n cursor: pointer;\n display: inherit;\n font-size: 1em;\n margin-left: 0.2em;\n\n background-color: transparent;\n color: ${(p) => clr(p.theme.selectToggleDeleteButtonColorIcon)};\n\n @media (hover: hover) {\n &:hover,\n &:focus {\n color: ${(p) => clr(p.theme.selectToggleDeleteButtonColorIconHover)};\n }\n }\n\n ${transitionStyles('color')};\n`;\n\nconst toggleIconUnborderedStyles = (p) =>\n p.unbordered &&\n css`\n padding-top: 0.2em;\n font-size: 0.8em;\n ${!p.disabled && `color: ${clr(p.theme.colorPrimary)};`}\n `;\n\ninterface ToggleIconContainerProps {\n unbordered?: boolean;\n}\nexport const ToggleIconContainer = styled(\n 'span',\n omitEmotionProps('unbordered')\n)<ToggleIconContainerProps>`\n color: ${(p) => clr(p.theme.selectColorIcon)};\n line-height: 1;\n ${toggleIconUnborderedStyles};\n`;\n\nexport const ClearIcon = styled(CloseCircle)`\n transform: scale(1.2) !important;\n`;\n\ninterface AddonProps {\n hasPadding: boolean;\n}\nconst Addon = styled('span', omitEmotionProps('hasPadding'))<AddonProps>`\n display: flex;\n align-items: center;\n user-select: none;\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n\n svg {\n transform: scale(1.2);\n }\n`;\n\nexport const ToggleLeftAddon = styled(Addon)`\n padding-right: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\nexport const ToggleRightAddon = styled(Addon)`\n padding-left: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\n/**\n * The component that allows to pick a value from predefined options.\n */\nconst Select = forwardRef<HTMLDivElement, SelectProps>(\n (\n {\n options = [],\n initSelectedOptions = [],\n left,\n leftHasPadding = false,\n right,\n rightHasPadding = false,\n placeholder,\n searchVisible = false,\n searchProps = {},\n notFoundText = 'Not found',\n unbordered = false,\n loading = false,\n disabled = false,\n autoFocus = false,\n autoOpen = false,\n clearVisible = false,\n threshold = 10,\n visibleCount = 6,\n overscanCount = 10,\n multiple = false,\n maxSelectedItems = 0,\n locale = defaultLocale,\n value,\n defaultValue,\n onChange,\n onLoadNext = () => {},\n onClose = () => {},\n onBlur = () => {},\n size,\n placement,\n ...rest\n },\n ref\n ) => {\n const [containerRef, mergedContainerRef] = useForwardedRef(ref);\n const [width, setWidth] = useState(0);\n const [opened, setOpened] = useState(autoOpen);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [forwardedValue, setForwardedValue] = useForwardedState<any>({\n value,\n defaultValue,\n onChange,\n });\n\n useEffect(() => {\n if (autoFocus) containerRef.current?.focus();\n }, [autoFocus, containerRef]);\n\n const onCloseRef = useRef(onClose);\n useEffect(() => {\n onCloseRef.current = onClose;\n }, [onClose]);\n\n const initRef = useRef(false);\n useEffect(() => {\n if (!initRef.current) {\n initRef.current = true;\n return;\n }\n if (!opened) onCloseRef.current();\n }, [opened]);\n\n /**\n * Detect the width of the container when the select was opened and update\n * it when either the container size or the window size has been changed.\n */\n const resizeHandler = useCallback(() => {\n window.requestAnimationFrame(() => {\n if (!opened || !containerRef.current) return;\n const nextWidth = containerRef.current.getBoundingClientRect().width;\n if (width === nextWidth) return;\n setWidth(nextWidth);\n });\n }, [opened, containerRef, width]);\n useBrowserLayoutEffect(() => resizeHandler(), [resizeHandler]);\n useResizeObserver(containerRef, resizeHandler);\n useEvent(\n (typeof window !== 'undefined' ? window : undefined) as EventTarget,\n 'resize',\n resizeHandler\n );\n\n // Replace the aria-haspopup attribute from menu to listbox\n useBrowserLayoutEffect(() => {\n if (!containerRef.current) return;\n containerRef.current.setAttribute('aria-haspopup', 'listbox');\n }, []);\n\n const listBoxId = useMemo(\n () => `listbox-${Math.random().toString(36).slice(2, 11)}`,\n []\n );\n\n const blurHandler = useCallback(\n (e) => {\n if (!opened) onBlur(e);\n },\n [onBlur, opened]\n );\n\n const onDelete = useCallback(\n (v: string) => {\n if (!multiple) return;\n setForwardedValue((forwardedValue || []).filter((item) => item !== v));\n },\n [forwardedValue, multiple, setForwardedValue]\n );\n\n const prevSelectedOptions = useRef<Option[]>(initSelectedOptions);\n\n const selectedOptions = useMemo<\n Array<{ title: string; value: string }>\n >(() => {\n if (!forwardedValue) return [];\n const values = Array.isArray(forwardedValue)\n ? forwardedValue\n : [forwardedValue];\n const items = [...options, ...prevSelectedOptions.current];\n return values.map((v) => {\n const option = items.find((item) => item.value === v);\n return {\n title: option ? option.title : v,\n value: v,\n };\n });\n }, [forwardedValue, options]);\n\n useEffect(() => {\n prevSelectedOptions.current = selectedOptions;\n }, [selectedOptions]);\n\n const toggleContent = useMemo(() => {\n if (multiple) {\n if (!forwardedValue || forwardedValue.length === 0) {\n return <Placeholder>{placeholder}</Placeholder>;\n }\n return (\n <ToggleList>\n {selectedOptions.map(({ title, value: v }) => (\n <ToggleListItem\n key={v}\n disabled={disabled}\n right={\n !disabled ? (\n <DeleteButton\n onClick={(e) => {\n onDelete(v);\n e.stopPropagation();\n }}\n onKeyDown={(e) => e.stopPropagation()}\n aria-label={`${locale.deleteLabel} ${title}`}\n aria-hidden\n >\n <Close />\n </DeleteButton>\n ) : undefined\n }\n aria-hidden\n >\n {title}\n </ToggleListItem>\n ))}\n </ToggleList>\n );\n }\n if (!forwardedValue) {\n return <Placeholder>{placeholder}</Placeholder>;\n }\n const option = selectedOptions.find(\n (item) => item.value === forwardedValue\n );\n return (\n <Title disabled={disabled} unbordered={unbordered}>\n {option ? option.title : ''}\n </Title>\n );\n }, [\n disabled,\n forwardedValue,\n locale.deleteLabel,\n multiple,\n onDelete,\n placeholder,\n selectedOptions,\n unbordered,\n ]);\n\n const toggleShowClearButton = useMemo(() => {\n if (!clearVisible) return false;\n if (multiple) return forwardedValue && forwardedValue.length > 0;\n return !!forwardedValue;\n }, [clearVisible, forwardedValue, multiple]);\n\n const toggleOnClear = useCallback(() => {\n setForwardedValue(multiple ? [] : null);\n if (!containerRef.current) return;\n containerRef.current.focus();\n }, [containerRef, multiple, setForwardedValue]);\n\n const toggleRightValue = useMemo(() => {\n if (loading) return <Loading />;\n if (toggleShowClearButton) {\n return (\n <Button\n type='ghost'\n wide='never'\n size='small'\n disabled={disabled}\n onClick={(e) => {\n toggleOnClear();\n e.stopPropagation();\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') toggleOnClear();\n e.stopPropagation();\n }}\n aria-label={locale.clearLabel}\n >\n <ClearIcon />\n </Button>\n );\n }\n return (\n right || (\n <ToggleIconContainer unbordered={unbordered}>\n {opened ? <Up /> : <Down />}\n </ToggleIconContainer>\n )\n );\n }, [\n disabled,\n loading,\n locale.clearLabel,\n opened,\n right,\n toggleOnClear,\n toggleShowClearButton,\n unbordered,\n ]);\n\n const toggleRightHasPaddingValue = useMemo(() => {\n if (loading) return true;\n if (toggleShowClearButton) return false;\n return right ? rightHasPadding : true;\n }, [loading, right, rightHasPadding, toggleShowClearButton]);\n\n const onSelect = useCallback(\n (v: string) => {\n if (multiple) {\n // Delete the value because it was already selected\n if ((forwardedValue || []).includes(v)) {\n setForwardedValue(\n (forwardedValue || []).filter((item) => item !== v)\n );\n return;\n }\n\n // Add a new value if the number of selected items is less than max\n if (\n maxSelectedItems === 0 ||\n (forwardedValue || []).length < maxSelectedItems\n ) {\n setForwardedValue([...(forwardedValue || []), v]);\n return;\n }\n return;\n }\n setForwardedValue(v);\n },\n [forwardedValue, maxSelectedItems, multiple, setForwardedValue]\n );\n\n const windowSize = useSize();\n const isMinXs = useIsMinWidth('xs');\n const fontSize = useFontSize(\n typeof window !== 'undefined'\n ? document.body\n : (null as unknown as HTMLElement)\n );\n const { theme } = useTheme();\n\n const scaleFactor = useMemo(() => {\n const s = size || 'medium';\n return ['small', 'medium', 'large'].includes(s)\n ? theme.sizes[s]\n : Number(s.replace(/^([0-9]+(\\.[0-9]+)?).*/, '$1')) || 1; // Extract the number\n }, [size, theme.sizes]);\n\n const paddingBottom = useMemo(() => {\n const paddingEm = isMinXs\n ? theme.menuPaddingVertical\n : theme.modalBodyPaddingVertical[0];\n return paddingEm * fontSize * scaleFactor;\n }, [\n isMinXs,\n theme.menuPaddingVertical,\n theme.modalBodyPaddingVertical,\n fontSize,\n scaleFactor,\n ]);\n\n const paddingTop = useMemo(\n () => (searchVisible ? 5 * scaleFactor : paddingBottom),\n [searchVisible, scaleFactor, paddingBottom]\n );\n\n const searchInputHeight = useMemo(\n () =>\n searchVisible\n ? (theme.baseHeight + theme.menuPaddingVertical) *\n fontSize *\n scaleFactor\n : 0,\n [\n searchVisible,\n theme.baseHeight,\n theme.menuPaddingVertical,\n fontSize,\n scaleFactor,\n ]\n );\n\n const itemSize = useMemo(\n () => theme.menuItemHeight * fontSize * scaleFactor,\n [theme.menuItemHeight, fontSize, scaleFactor]\n );\n\n const height = useMemo(() => {\n // Modal\n if (!isMinXs) {\n const maxHeight =\n windowSize.height -\n theme.modalHeaderHeight * fontSize * scaleFactor -\n searchInputHeight;\n const curHeight =\n options.length * itemSize + paddingTop + paddingBottom;\n return curHeight < maxHeight ? curHeight : maxHeight;\n }\n // Popover\n const count =\n options.length < visibleCount ? options.length : visibleCount;\n return count * itemSize + paddingTop + paddingBottom;\n }, [\n isMinXs,\n options.length,\n visibleCount,\n itemSize,\n windowSize.height,\n theme.modalHeaderHeight,\n fontSize,\n scaleFactor,\n searchInputHeight,\n paddingTop,\n paddingBottom,\n ]);\n\n const scrollHandler = useRWLoadNext({\n itemCount: options.length,\n threshold,\n itemSize,\n paddingTop,\n height,\n onLoadNext,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const InnerElement = useCallback(\n ({ style, ...innerElementRest }) => (\n <div\n style={{\n ...style,\n height: `${\n parseFloat(style.height) + paddingTop + paddingBottom\n }px`,\n }}\n role='listbox'\n id={listBoxId}\n {...innerElementRest}\n />\n ),\n [listBoxId, paddingBottom, paddingTop]\n );\n\n const listItemFn = useCallback(\n ({ index, style }) => {\n const {\n title: optionTitle,\n value: optionValue,\n onClick: optionOnClick,\n ...restOption\n } = options[index];\n return (\n <MenuItem\n style={{\n ...style,\n top: `${\n parseFloat(style.top ? style.top.toString() : '0') + paddingTop\n }px`,\n }}\n selected={\n (multiple &&\n (forwardedValue || []).includes(optionValue || '')) ||\n (!multiple && forwardedValue === optionValue)\n }\n onClick={(e) => {\n if (!optionValue) return;\n onSelect(optionValue);\n\n // Focus the input.\n // Otherwise, if multiple is false and the user presses enter to select an item,\n // the input will lose focus.\n if (containerRef.current && !multiple) {\n containerRef.current.focus();\n }\n\n if (optionOnClick) optionOnClick(e);\n }}\n role='option'\n aria-selected={\n (multiple &&\n (forwardedValue || []).includes(optionValue || '')) ||\n (!multiple && forwardedValue === optionValue)\n }\n {...restOption}\n >\n {optionTitle}\n </MenuItem>\n );\n },\n [containerRef, forwardedValue, multiple, onSelect, options, paddingTop]\n );\n\n return (\n <>\n <SelectContainer\n opened={opened}\n unbordered={unbordered}\n disabled={disabled}\n size={size}\n tabIndex={!disabled ? 0 : -1}\n onClick={() => {\n if (disabled) return;\n setOpened(!opened);\n }}\n onKeyDown={(e) => {\n if (disabled) return;\n if (['Enter', ' '].includes(e.key)) {\n setOpened(!opened);\n e.preventDefault();\n }\n }}\n onMouseDown={(e) => e.preventDefault()}\n onBlur={blurHandler}\n role='combobox'\n aria-disabled={disabled}\n aria-busy={loading}\n aria-haspopup='listbox'\n aria-owns={listBoxId}\n {...rest}\n ref={mergedContainerRef}\n >\n <ToggleContainer>\n {left && (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: 0.8,\n baseHeight: t.selectToggleListItemHeight / t.sizes.small,\n })}\n >\n <ToggleLeftAddon hasPadding={leftHasPadding}>\n {left}\n </ToggleLeftAddon>\n </ThemeOverrider>\n )}\n\n <ToggleContent\n hasLeft={!!left}\n hasRight={!!right}\n unbordered={unbordered}\n >\n {toggleContent}\n </ToggleContent>\n\n {toggleRightValue && (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: 0.8,\n baseHeight: t.selectToggleListItemHeight / t.sizes.small,\n })}\n >\n <ToggleRightAddon hasPadding={toggleRightHasPaddingValue}>\n {toggleRightValue}\n </ToggleRightAddon>\n </ThemeOverrider>\n )}\n </ToggleContainer>\n </SelectContainer>\n\n <SelectMenu\n trigger={containerRef}\n visible={opened}\n onClose={() => setOpened(false)}\n size={size}\n width={width}\n closeOnSelect={!multiple}\n modalTitle={placeholder}\n placement={placement}\n >\n {searchVisible && (\n <InputSearchContainer>\n <InputSearch {...searchProps} />\n </InputSearchContainer>\n )}\n\n {options.length > 0 ? (\n <FixedSizeList\n width='100%'\n height={height}\n itemSize={itemSize}\n itemCount={options.length}\n overscanCount={overscanCount}\n onScroll={({ scrollOffset }) => scrollHandler(scrollOffset)}\n innerElementType={InnerElement}\n >\n {listItemFn}\n </FixedSizeList>\n ) : (\n <NotFound>{notFoundText}</NotFound>\n )}\n </SelectMenu>\n </>\n );\n }\n);\n\nSelect.displayName = 'Select';\n\nexport default Select;\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
1
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
2
  import { keyframes } from '@emotion/react';
3
3
  import styled from '@emotion/styled';
4
4
  import { clr } from '@os-design/theming';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["keyframes","styled","clr","omitEmotionProps","React","forwardRef","SkeletonAnimation","StyledSkeleton","p","width","theme","skeletonColorBgFrom","skeletonColorBgTo","borderRadius","Skeleton","rest","ref","createElement","_extends","displayName"],"sources":["../../../src/Skeleton/index.tsx"],"sourcesContent":["import { keyframes } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { clr } from '@os-design/theming';\nimport { omitEmotionProps } from '@os-design/utils';\nimport React, { forwardRef } from 'react';\n\ntype JsxDivProps = Omit<JSX.IntrinsicElements['div'], 'ref'>;\nexport interface SkeletonProps extends JsxDivProps {\n /**\n * The width of the skeleton.\n * @default 100%\n */\n width?: string;\n}\n\nconst SkeletonAnimation = keyframes`\n from { background-position: 100% 50%; }\n to { background-position: 0 50%; }\n`;\n\ntype StyledSkeletonProps = Required<Pick<SkeletonProps, 'width'>>;\nconst StyledSkeleton = styled(\n 'div',\n omitEmotionProps('width', 'size')\n)<StyledSkeletonProps>`\n width: ${(p) => p.width};\n height: 1em;\n\n background: linear-gradient(\n 90deg,\n ${(p) => clr(p.theme.skeletonColorBgFrom)} 25%,\n ${(p) => clr(p.theme.skeletonColorBgTo)} 37%,\n ${(p) => clr(p.theme.skeletonColorBgFrom)} 63%\n );\n background-size: 400% 100%;\n\n border-radius: ${(p) => p.theme.borderRadius}em;\n animation: ${SkeletonAnimation} 1.4s ease infinite;\n`;\n\n/**\n * Provides a basic placeholder while a user waits for the content to load.\n */\nconst Skeleton = forwardRef<HTMLDivElement, SkeletonProps>(\n ({ width = '100%', ...rest }, ref) => (\n <StyledSkeleton width={width} aria-busy {...rest} ref={ref} />\n )\n);\n\nSkeleton.displayName = 'Skeleton';\n\nexport default Skeleton;\n"],"mappings":";AAAA,SAASA,SAAS,QAAQ,gBAAgB;AAC1C,OAAOC,MAAM,MAAM,iBAAiB;AACpC,SAASC,GAAG,QAAQ,oBAAoB;AACxC,SAASC,gBAAgB,QAAQ,kBAAkB;AACnD,OAAOC,KAAK,IAAIC,UAAU,QAAQ,OAAO;AAWzC,MAAMC,iBAAiB,GAAGN,SAAU;AACpC;AACA;AACA,CAAC;AAGD,MAAMO,cAAc,GAAGN,MAAM,CAC3B,KAAK,EACLE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAClC,CAAuB;AACvB,WAAYK,CAAC,IAAKA,CAAC,CAACC,KAAM;AAC1B;AACA;AACA;AACA;AACA,MAAOD,CAAC,IAAKN,GAAG,CAACM,CAAC,CAACE,KAAK,CAACC,mBAAmB,CAAE;AAC9C,MAAOH,CAAC,IAAKN,GAAG,CAACM,CAAC,CAACE,KAAK,CAACE,iBAAiB,CAAE;AAC5C,MAAOJ,CAAC,IAAKN,GAAG,CAACM,CAAC,CAACE,KAAK,CAACC,mBAAmB,CAAE;AAC9C;AACA;AACA;AACA,mBAAoBH,CAAC,IAAKA,CAAC,CAACE,KAAK,CAACG,YAAa;AAC/C,eAAeP,iBAAkB;AACjC,CAAC;;AAED;AACA;AACA;AACA,MAAMQ,QAAQ,gBAAGT,UAAU,CACzB,CAAC;EAAEI,KAAK,GAAG,MAAM;EAAE,GAAGM;AAAK,CAAC,EAAEC,GAAG,kBAC/BZ,KAAA,CAAAa,aAAA,CAACV,cAAc,EAAAW,QAAA;EAACT,KAAK,EAAEA,KAAM;EAAC;AAAS,GAAKM,IAAI;EAAEC,GAAG,EAAEA;AAAI,EAAE,CAEjE,CAAC;AAEDF,QAAQ,CAACK,WAAW,GAAG,UAAU;AAEjC,eAAeL,QAAQ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["keyframes","styled","clr","omitEmotionProps","React","forwardRef","SkeletonAnimation","StyledSkeleton","p","width","theme","skeletonColorBgFrom","skeletonColorBgTo","borderRadius","Skeleton","rest","ref","createElement","_extends","displayName"],"sources":["../../../src/Skeleton/index.tsx"],"sourcesContent":["import { keyframes } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { clr } from '@os-design/theming';\nimport { omitEmotionProps } from '@os-design/utils';\nimport React, { forwardRef } from 'react';\n\ntype JsxDivProps = Omit<JSX.IntrinsicElements['div'], 'ref'>;\nexport interface SkeletonProps extends JsxDivProps {\n /**\n * The width of the skeleton.\n * @default 100%\n */\n width?: string;\n}\n\nconst SkeletonAnimation = keyframes`\n from { background-position: 100% 50%; }\n to { background-position: 0 50%; }\n`;\n\ntype StyledSkeletonProps = Required<Pick<SkeletonProps, 'width'>>;\nconst StyledSkeleton = styled(\n 'div',\n omitEmotionProps('width', 'size')\n)<StyledSkeletonProps>`\n width: ${(p) => p.width};\n height: 1em;\n\n background: linear-gradient(\n 90deg,\n ${(p) => clr(p.theme.skeletonColorBgFrom)} 25%,\n ${(p) => clr(p.theme.skeletonColorBgTo)} 37%,\n ${(p) => clr(p.theme.skeletonColorBgFrom)} 63%\n );\n background-size: 400% 100%;\n\n border-radius: ${(p) => p.theme.borderRadius}em;\n animation: ${SkeletonAnimation} 1.4s ease infinite;\n`;\n\n/**\n * Provides a basic placeholder while a user waits for the content to load.\n */\nconst Skeleton = forwardRef<HTMLDivElement, SkeletonProps>(\n ({ width = '100%', ...rest }, ref) => (\n <StyledSkeleton width={width} aria-busy {...rest} ref={ref} />\n )\n);\n\nSkeleton.displayName = 'Skeleton';\n\nexport default Skeleton;\n"],"mappings":";AAAA,SAASA,SAAS,QAAQ,gBAAgB;AAC1C,OAAOC,MAAM,MAAM,iBAAiB;AACpC,SAASC,GAAG,QAAQ,oBAAoB;AACxC,SAASC,gBAAgB,QAAQ,kBAAkB;AACnD,OAAOC,KAAK,IAAIC,UAAU,QAAQ,OAAO;AAWzC,MAAMC,iBAAiB,GAAGN,SAAS;AACnC;AACA;AACA,CAAC;AAGD,MAAMO,cAAc,GAAGN,MAAM,CAC3B,KAAK,EACLE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAClC,CAAsB;AACtB,WAAYK,CAAC,IAAKA,CAAC,CAACC,KAAK;AACzB;AACA;AACA;AACA;AACA,MAAOD,CAAC,IAAKN,GAAG,CAACM,CAAC,CAACE,KAAK,CAACC,mBAAmB,CAAC;AAC7C,MAAOH,CAAC,IAAKN,GAAG,CAACM,CAAC,CAACE,KAAK,CAACE,iBAAiB,CAAC;AAC3C,MAAOJ,CAAC,IAAKN,GAAG,CAACM,CAAC,CAACE,KAAK,CAACC,mBAAmB,CAAC;AAC7C;AACA;AACA;AACA,mBAAoBH,CAAC,IAAKA,CAAC,CAACE,KAAK,CAACG,YAAY;AAC9C,eAAeP,iBAAiB;AAChC,CAAC;;AAED;AACA;AACA;AACA,MAAMQ,QAAQ,gBAAGT,UAAU,CACzB,CAAC;EAAEI,KAAK,GAAG,MAAM;EAAE,GAAGM;AAAK,CAAC,EAAEC,GAAG,kBAC/BZ,KAAA,CAAAa,aAAA,CAACV,cAAc,EAAAW,QAAA;EAACT,KAAK,EAAEA,KAAM;EAAC;AAAS,GAAKM,IAAI;EAAEC,GAAG,EAAEA;AAAI,EAAE,CAEjE,CAAC;AAEDF,QAAQ,CAACK,WAAW,GAAG,UAAU;AAEjC,eAAeL,QAAQ","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
1
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
2
  import { css } from '@emotion/react';
3
3
  import styled from '@emotion/styled';
4
4
  import { resetButtonStyles, sizeStyles, transitionStyles } from '@os-design/styles';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["css","styled","resetButtonStyles","sizeStyles","transitionStyles","clr","omitEmotionProps","useForwardedState","React","forwardRef","useCallback","FRACTION_DIGITS","uncheckedStyles","p","checked","theme","switchUncheckedColorBg","switchHeight","switchCircleSize","toFixed","checkedStyles","switchCheckedColorBg","switchWidth","hoverUncheckedStyles","switchUncheckedColorBgHover","hoverCheckedStyles","switchCheckedColorBgHover","hoverStyles","disabled","disabledUncheckedStyles","switchDisabledUncheckedColorBg","disabledCheckedStyles","switchDisabledCheckedColorBg","disabledStyles","StyledSwitch","switchColorCircleBg","Switch","value","defaultValue","onChange","size","onMouseDown","onKeyDown","rest","ref","forwardedValue","setForwardedValue","clickHandler","mouseDownHandler","e","preventDefault","keyDownHandler","key","createElement","_extends","onClick","role","displayName"],"sources":["../../../src/Switch/index.tsx"],"sourcesContent":["import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport {\n resetButtonStyles,\n sizeStyles,\n transitionStyles,\n WithSize,\n} from '@os-design/styles';\nimport { clr } from '@os-design/theming';\nimport { omitEmotionProps, useForwardedState } from '@os-design/utils';\nimport React, { forwardRef, useCallback } from 'react';\n\ntype JsxButtonProps = Omit<\n JSX.IntrinsicElements['button'],\n 'value' | 'defaultValue' | 'onChange' | 'onClick' | 'ref'\n>;\nexport interface SwitchProps extends JsxButtonProps, WithSize {\n /**\n * Whether the switch is disabled.\n * @default false\n */\n disabled?: boolean;\n /**\n * Whether the switch is checked.\n * @default false\n */\n value?: boolean;\n /**\n * The default value.\n * @default undefined\n */\n defaultValue?: boolean;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: boolean) => void;\n}\n\nconst FRACTION_DIGITS = 4;\n\nconst uncheckedStyles = (p) =>\n !p.checked &&\n css`\n background-color: ${clr(p.theme.switchUncheckedColorBg)};\n &::after {\n left: ${+((p.theme.switchHeight - p.theme.switchCircleSize) / 2).toFixed(\n FRACTION_DIGITS\n )}em;\n }\n `;\n\nconst checkedStyles = (p) =>\n p.checked &&\n css`\n background-color: ${clr(p.theme.switchCheckedColorBg)};\n &::after {\n left: ${+(\n p.theme.switchWidth -\n p.theme.switchCircleSize -\n (p.theme.switchHeight - p.theme.switchCircleSize) / 2\n ).toFixed(FRACTION_DIGITS)}em;\n }\n `;\n\nconst hoverUncheckedStyles = (p) =>\n !p.checked &&\n css`\n background-color: ${clr(p.theme.switchUncheckedColorBgHover)};\n `;\n\nconst hoverCheckedStyles = (p) =>\n p.checked &&\n css`\n background-color: ${clr(p.theme.switchCheckedColorBgHover)};\n `;\n\nconst hoverStyles = (p) =>\n !p.disabled &&\n css`\n @media (hover: hover) {\n &:hover,\n &:focus {\n ${hoverUncheckedStyles(p)};\n ${hoverCheckedStyles(p)};\n }\n }\n `;\n\nconst disabledUncheckedStyles = (p) =>\n !p.checked &&\n css`\n background-color: ${clr(p.theme.switchDisabledUncheckedColorBg)};\n `;\n\nconst disabledCheckedStyles = (p) =>\n p.checked &&\n css`\n background-color: ${clr(p.theme.switchDisabledCheckedColorBg)};\n `;\n\nconst disabledStyles = (p) =>\n p.disabled &&\n css`\n cursor: not-allowed;\n ${disabledUncheckedStyles(p)};\n ${disabledCheckedStyles(p)};\n `;\n\ninterface StyledSwitchProps extends Pick<SwitchProps, 'disabled' | 'size'> {\n checked: SwitchProps['value'];\n}\nconst StyledSwitch = styled(\n 'button',\n omitEmotionProps('size', 'checked')\n)<StyledSwitchProps>`\n ${resetButtonStyles};\n position: relative;\n cursor: pointer;\n user-select: none;\n display: block;\n\n width: ${(p) => p.theme.switchWidth}em;\n height: ${(p) => p.theme.switchHeight}em;\n border-radius: ${(p) => p.theme.switchHeight / 2}em;\n\n &::after {\n position: absolute;\n top: ${(p) =>\n +((p.theme.switchHeight - p.theme.switchCircleSize) / 2).toFixed(\n FRACTION_DIGITS\n )}em;\n\n width: ${(p) => p.theme.switchCircleSize}em;\n height: ${(p) => p.theme.switchCircleSize}em;\n border-radius: 50%;\n\n background-color: ${(p) => clr(p.theme.switchColorCircleBg)};\n content: ' ';\n\n ${transitionStyles('left')};\n }\n\n ${uncheckedStyles};\n ${checkedStyles};\n ${hoverStyles};\n ${disabledStyles};\n\n ${sizeStyles};\n ${transitionStyles('background-color')};\n`;\n\n/**\n * The switch that can be enabled or disabled.\n */\nconst Switch = forwardRef<HTMLButtonElement, SwitchProps>(\n (\n {\n disabled = false,\n value,\n defaultValue,\n onChange = () => {},\n size,\n onMouseDown = () => {},\n onKeyDown = () => {},\n ...rest\n },\n ref\n ) => {\n const [forwardedValue, setForwardedValue] = useForwardedState({\n value,\n defaultValue,\n onChange,\n });\n\n const clickHandler = useCallback(() => {\n if (disabled) return;\n setForwardedValue(!forwardedValue);\n }, [disabled, forwardedValue, setForwardedValue]);\n\n const mouseDownHandler = useCallback(\n (e) => {\n onMouseDown(e);\n e.preventDefault();\n },\n [onMouseDown]\n );\n\n const keyDownHandler = useCallback(\n (e) => {\n if (e.key === ' ') setForwardedValue(!forwardedValue);\n onKeyDown(e);\n e.preventDefault();\n },\n [forwardedValue, onKeyDown, setForwardedValue]\n );\n\n return (\n <StyledSwitch\n disabled={disabled}\n checked={forwardedValue}\n size={size}\n onClick={clickHandler}\n onMouseDown={mouseDownHandler}\n onKeyDown={keyDownHandler}\n role='switch'\n aria-checked={forwardedValue}\n {...rest}\n ref={ref}\n />\n );\n }\n);\n\nSwitch.displayName = 'Switch';\n\nexport default Switch;\n"],"mappings":";AAAA,SAASA,GAAG,QAAQ,gBAAgB;AACpC,OAAOC,MAAM,MAAM,iBAAiB;AACpC,SACEC,iBAAiB,EACjBC,UAAU,EACVC,gBAAgB,QAEX,mBAAmB;AAC1B,SAASC,GAAG,QAAQ,oBAAoB;AACxC,SAASC,gBAAgB,EAAEC,iBAAiB,QAAQ,kBAAkB;AACtE,OAAOC,KAAK,IAAIC,UAAU,EAAEC,WAAW,QAAQ,OAAO;AA6BtD,MAAMC,eAAe,GAAG,CAAC;AAEzB,MAAMC,eAAe,GAAIC,CAAC,IACxB,CAACA,CAAC,CAACC,OAAO,IACVd,GAAI;AACN,wBAAwBK,GAAG,CAACQ,CAAC,CAACE,KAAK,CAACC,sBAAsB,CAAE;AAC5D;AACA,cAAc,CAAC,CAAC,CAACH,CAAC,CAACE,KAAK,CAACE,YAAY,GAAGJ,CAAC,CAACE,KAAK,CAACG,gBAAgB,IAAI,CAAC,EAAEC,OAAO,CACtER,eACF,CAAE;AACR;AACA,GAAG;AAEH,MAAMS,aAAa,GAAIP,CAAC,IACtBA,CAAC,CAACC,OAAO,IACTd,GAAI;AACN,wBAAwBK,GAAG,CAACQ,CAAC,CAACE,KAAK,CAACM,oBAAoB,CAAE;AAC1D;AACA,cAAc,CAAC,CACPR,CAAC,CAACE,KAAK,CAACO,WAAW,GACnBT,CAAC,CAACE,KAAK,CAACG,gBAAgB,GACxB,CAACL,CAAC,CAACE,KAAK,CAACE,YAAY,GAAGJ,CAAC,CAACE,KAAK,CAACG,gBAAgB,IAAI,CAAC,EACrDC,OAAO,CAACR,eAAe,CAAE;AACjC;AACA,GAAG;AAEH,MAAMY,oBAAoB,GAAIV,CAAC,IAC7B,CAACA,CAAC,CAACC,OAAO,IACVd,GAAI;AACN,wBAAwBK,GAAG,CAACQ,CAAC,CAACE,KAAK,CAACS,2BAA2B,CAAE;AACjE,GAAG;AAEH,MAAMC,kBAAkB,GAAIZ,CAAC,IAC3BA,CAAC,CAACC,OAAO,IACTd,GAAI;AACN,wBAAwBK,GAAG,CAACQ,CAAC,CAACE,KAAK,CAACW,yBAAyB,CAAE;AAC/D,GAAG;AAEH,MAAMC,WAAW,GAAId,CAAC,IACpB,CAACA,CAAC,CAACe,QAAQ,IACX5B,GAAI;AACN;AACA;AACA;AACA,UAAUuB,oBAAoB,CAACV,CAAC,CAAE;AAClC,UAAUY,kBAAkB,CAACZ,CAAC,CAAE;AAChC;AACA;AACA,GAAG;AAEH,MAAMgB,uBAAuB,GAAIhB,CAAC,IAChC,CAACA,CAAC,CAACC,OAAO,IACVd,GAAI;AACN,wBAAwBK,GAAG,CAACQ,CAAC,CAACE,KAAK,CAACe,8BAA8B,CAAE;AACpE,GAAG;AAEH,MAAMC,qBAAqB,GAAIlB,CAAC,IAC9BA,CAAC,CAACC,OAAO,IACTd,GAAI;AACN,wBAAwBK,GAAG,CAACQ,CAAC,CAACE,KAAK,CAACiB,4BAA4B,CAAE;AAClE,GAAG;AAEH,MAAMC,cAAc,GAAIpB,CAAC,IACvBA,CAAC,CAACe,QAAQ,IACV5B,GAAI;AACN;AACA,MAAM6B,uBAAuB,CAAChB,CAAC,CAAE;AACjC,MAAMkB,qBAAqB,CAAClB,CAAC,CAAE;AAC/B,GAAG;AAKH,MAAMqB,YAAY,GAAGjC,MAAM,CACzB,QAAQ,EACRK,gBAAgB,CAAC,MAAM,EAAE,SAAS,CACpC,CAAqB;AACrB,IAAIJ,iBAAkB;AACtB;AACA;AACA;AACA;AACA;AACA,WAAYW,CAAC,IAAKA,CAAC,CAACE,KAAK,CAACO,WAAY;AACtC,YAAaT,CAAC,IAAKA,CAAC,CAACE,KAAK,CAACE,YAAa;AACxC,mBAAoBJ,CAAC,IAAKA,CAAC,CAACE,KAAK,CAACE,YAAY,GAAG,CAAE;AACnD;AACA;AACA;AACA,WAAYJ,CAAC,IACP,CAAC,CAAC,CAACA,CAAC,CAACE,KAAK,CAACE,YAAY,GAAGJ,CAAC,CAACE,KAAK,CAACG,gBAAgB,IAAI,CAAC,EAAEC,OAAO,CAC9DR,eACF,CAAE;AACR;AACA,aAAcE,CAAC,IAAKA,CAAC,CAACE,KAAK,CAACG,gBAAiB;AAC7C,cAAeL,CAAC,IAAKA,CAAC,CAACE,KAAK,CAACG,gBAAiB;AAC9C;AACA;AACA,wBAAyBL,CAAC,IAAKR,GAAG,CAACQ,CAAC,CAACE,KAAK,CAACoB,mBAAmB,CAAE;AAChE;AACA;AACA,MAAM/B,gBAAgB,CAAC,MAAM,CAAE;AAC/B;AACA;AACA,IAAIQ,eAAgB;AACpB,IAAIQ,aAAc;AAClB,IAAIO,WAAY;AAChB,IAAIM,cAAe;AACnB;AACA,IAAI9B,UAAW;AACf,IAAIC,gBAAgB,CAAC,kBAAkB,CAAE;AACzC,CAAC;;AAED;AACA;AACA;AACA,MAAMgC,MAAM,gBAAG3B,UAAU,CACvB,CACE;EACEmB,QAAQ,GAAG,KAAK;EAChBS,KAAK;EACLC,YAAY;EACZC,QAAQ,GAAGA,CAAA,KAAM,CAAC,CAAC;EACnBC,IAAI;EACJC,WAAW,GAAGA,CAAA,KAAM,CAAC,CAAC;EACtBC,SAAS,GAAGA,CAAA,KAAM,CAAC,CAAC;EACpB,GAAGC;AACL,CAAC,EACDC,GAAG,KACA;EACH,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAGvC,iBAAiB,CAAC;IAC5D8B,KAAK;IACLC,YAAY;IACZC;EACF,CAAC,CAAC;EAEF,MAAMQ,YAAY,GAAGrC,WAAW,CAAC,MAAM;IACrC,IAAIkB,QAAQ,EAAE;IACdkB,iBAAiB,CAAC,CAACD,cAAc,CAAC;EACpC,CAAC,EAAE,CAACjB,QAAQ,EAAEiB,cAAc,EAAEC,iBAAiB,CAAC,CAAC;EAEjD,MAAME,gBAAgB,GAAGtC,WAAW,CACjCuC,CAAC,IAAK;IACLR,WAAW,CAACQ,CAAC,CAAC;IACdA,CAAC,CAACC,cAAc,CAAC,CAAC;EACpB,CAAC,EACD,CAACT,WAAW,CACd,CAAC;EAED,MAAMU,cAAc,GAAGzC,WAAW,CAC/BuC,CAAC,IAAK;IACL,IAAIA,CAAC,CAACG,GAAG,KAAK,GAAG,EAAEN,iBAAiB,CAAC,CAACD,cAAc,CAAC;IACrDH,SAAS,CAACO,CAAC,CAAC;IACZA,CAAC,CAACC,cAAc,CAAC,CAAC;EACpB,CAAC,EACD,CAACL,cAAc,EAAEH,SAAS,EAAEI,iBAAiB,CAC/C,CAAC;EAED,oBACEtC,KAAA,CAAA6C,aAAA,CAACnB,YAAY,EAAAoB,QAAA;IACX1B,QAAQ,EAAEA,QAAS;IACnBd,OAAO,EAAE+B,cAAe;IACxBL,IAAI,EAAEA,IAAK;IACXe,OAAO,EAAER,YAAa;IACtBN,WAAW,EAAEO,gBAAiB;IAC9BN,SAAS,EAAES,cAAe;IAC1BK,IAAI,EAAC,QAAQ;IACb,gBAAcX;EAAe,GACzBF,IAAI;IACRC,GAAG,EAAEA;EAAI,EACV,CAAC;AAEN,CACF,CAAC;AAEDR,MAAM,CAACqB,WAAW,GAAG,QAAQ;AAE7B,eAAerB,MAAM","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["css","styled","resetButtonStyles","sizeStyles","transitionStyles","clr","omitEmotionProps","useForwardedState","React","forwardRef","useCallback","FRACTION_DIGITS","uncheckedStyles","p","checked","theme","switchUncheckedColorBg","switchHeight","switchCircleSize","toFixed","checkedStyles","switchCheckedColorBg","switchWidth","hoverUncheckedStyles","switchUncheckedColorBgHover","hoverCheckedStyles","switchCheckedColorBgHover","hoverStyles","disabled","disabledUncheckedStyles","switchDisabledUncheckedColorBg","disabledCheckedStyles","switchDisabledCheckedColorBg","disabledStyles","StyledSwitch","switchColorCircleBg","Switch","value","defaultValue","onChange","size","onMouseDown","onKeyDown","rest","ref","forwardedValue","setForwardedValue","clickHandler","mouseDownHandler","e","preventDefault","keyDownHandler","key","createElement","_extends","onClick","role","displayName"],"sources":["../../../src/Switch/index.tsx"],"sourcesContent":["import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport {\n resetButtonStyles,\n sizeStyles,\n transitionStyles,\n WithSize,\n} from '@os-design/styles';\nimport { clr } from '@os-design/theming';\nimport { omitEmotionProps, useForwardedState } from '@os-design/utils';\nimport React, { forwardRef, useCallback } from 'react';\n\ntype JsxButtonProps = Omit<\n JSX.IntrinsicElements['button'],\n 'value' | 'defaultValue' | 'onChange' | 'onClick' | 'ref'\n>;\nexport interface SwitchProps extends JsxButtonProps, WithSize {\n /**\n * Whether the switch is disabled.\n * @default false\n */\n disabled?: boolean;\n /**\n * Whether the switch is checked.\n * @default false\n */\n value?: boolean;\n /**\n * The default value.\n * @default undefined\n */\n defaultValue?: boolean;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: boolean) => void;\n}\n\nconst FRACTION_DIGITS = 4;\n\nconst uncheckedStyles = (p) =>\n !p.checked &&\n css`\n background-color: ${clr(p.theme.switchUncheckedColorBg)};\n &::after {\n left: ${+((p.theme.switchHeight - p.theme.switchCircleSize) / 2).toFixed(\n FRACTION_DIGITS\n )}em;\n }\n `;\n\nconst checkedStyles = (p) =>\n p.checked &&\n css`\n background-color: ${clr(p.theme.switchCheckedColorBg)};\n &::after {\n left: ${+(\n p.theme.switchWidth -\n p.theme.switchCircleSize -\n (p.theme.switchHeight - p.theme.switchCircleSize) / 2\n ).toFixed(FRACTION_DIGITS)}em;\n }\n `;\n\nconst hoverUncheckedStyles = (p) =>\n !p.checked &&\n css`\n background-color: ${clr(p.theme.switchUncheckedColorBgHover)};\n `;\n\nconst hoverCheckedStyles = (p) =>\n p.checked &&\n css`\n background-color: ${clr(p.theme.switchCheckedColorBgHover)};\n `;\n\nconst hoverStyles = (p) =>\n !p.disabled &&\n css`\n @media (hover: hover) {\n &:hover,\n &:focus {\n ${hoverUncheckedStyles(p)};\n ${hoverCheckedStyles(p)};\n }\n }\n `;\n\nconst disabledUncheckedStyles = (p) =>\n !p.checked &&\n css`\n background-color: ${clr(p.theme.switchDisabledUncheckedColorBg)};\n `;\n\nconst disabledCheckedStyles = (p) =>\n p.checked &&\n css`\n background-color: ${clr(p.theme.switchDisabledCheckedColorBg)};\n `;\n\nconst disabledStyles = (p) =>\n p.disabled &&\n css`\n cursor: not-allowed;\n ${disabledUncheckedStyles(p)};\n ${disabledCheckedStyles(p)};\n `;\n\ninterface StyledSwitchProps extends Pick<SwitchProps, 'disabled' | 'size'> {\n checked: SwitchProps['value'];\n}\nconst StyledSwitch = styled(\n 'button',\n omitEmotionProps('size', 'checked')\n)<StyledSwitchProps>`\n ${resetButtonStyles};\n position: relative;\n cursor: pointer;\n user-select: none;\n display: block;\n\n width: ${(p) => p.theme.switchWidth}em;\n height: ${(p) => p.theme.switchHeight}em;\n border-radius: ${(p) => p.theme.switchHeight / 2}em;\n\n &::after {\n position: absolute;\n top: ${(p) =>\n +((p.theme.switchHeight - p.theme.switchCircleSize) / 2).toFixed(\n FRACTION_DIGITS\n )}em;\n\n width: ${(p) => p.theme.switchCircleSize}em;\n height: ${(p) => p.theme.switchCircleSize}em;\n border-radius: 50%;\n\n background-color: ${(p) => clr(p.theme.switchColorCircleBg)};\n content: ' ';\n\n ${transitionStyles('left')};\n }\n\n ${uncheckedStyles};\n ${checkedStyles};\n ${hoverStyles};\n ${disabledStyles};\n\n ${sizeStyles};\n ${transitionStyles('background-color')};\n`;\n\n/**\n * The switch that can be enabled or disabled.\n */\nconst Switch = forwardRef<HTMLButtonElement, SwitchProps>(\n (\n {\n disabled = false,\n value,\n defaultValue,\n onChange = () => {},\n size,\n onMouseDown = () => {},\n onKeyDown = () => {},\n ...rest\n },\n ref\n ) => {\n const [forwardedValue, setForwardedValue] = useForwardedState({\n value,\n defaultValue,\n onChange,\n });\n\n const clickHandler = useCallback(() => {\n if (disabled) return;\n setForwardedValue(!forwardedValue);\n }, [disabled, forwardedValue, setForwardedValue]);\n\n const mouseDownHandler = useCallback(\n (e) => {\n onMouseDown(e);\n e.preventDefault();\n },\n [onMouseDown]\n );\n\n const keyDownHandler = useCallback(\n (e) => {\n if (e.key === ' ') setForwardedValue(!forwardedValue);\n onKeyDown(e);\n e.preventDefault();\n },\n [forwardedValue, onKeyDown, setForwardedValue]\n );\n\n return (\n <StyledSwitch\n disabled={disabled}\n checked={forwardedValue}\n size={size}\n onClick={clickHandler}\n onMouseDown={mouseDownHandler}\n onKeyDown={keyDownHandler}\n role='switch'\n aria-checked={forwardedValue}\n {...rest}\n ref={ref}\n />\n );\n }\n);\n\nSwitch.displayName = 'Switch';\n\nexport default Switch;\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
1
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
2
  import styled from '@emotion/styled';
3
3
  import { sizeStyles } from '@os-design/styles';
4
4
  import { omitEmotionProps } from '@os-design/utils';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["styled","sizeStyles","omitEmotionProps","React","forwardRef","Skeleton","StyledSwitchSkeleton","p","theme","switchWidth","switchHeight","SwitchSkeleton","props","ref","createElement","_extends","width","displayName"],"sources":["../../../src/SwitchSkeleton/index.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport { sizeStyles, WithSize } from '@os-design/styles';\nimport { omitEmotionProps } from '@os-design/utils';\nimport React, { forwardRef } from 'react';\nimport Skeleton, { SkeletonProps } from '../Skeleton';\n\nexport type SwitchSkeletonProps = Omit<SkeletonProps, 'width'> & WithSize;\n\nconst StyledSwitchSkeleton = styled(\n Skeleton,\n omitEmotionProps('size')\n)<WithSize>`\n width: ${(p) => p.theme.switchWidth}em;\n height: ${(p) => p.theme.switchHeight}em;\n border-radius: ${(p) => p.theme.switchHeight / 2}em;\n ${sizeStyles};\n`;\n\n/**\n * Provides a switch placeholder while a user waits for the content to load.\n */\nconst SwitchSkeleton = forwardRef<HTMLDivElement, SwitchSkeletonProps>(\n (props, ref) => <StyledSwitchSkeleton width='100%' {...props} ref={ref} />\n);\n\nSwitchSkeleton.displayName = 'SwitchSkeleton';\n\nexport default SwitchSkeleton;\n"],"mappings":";AAAA,OAAOA,MAAM,MAAM,iBAAiB;AACpC,SAASC,UAAU,QAAkB,mBAAmB;AACxD,SAASC,gBAAgB,QAAQ,kBAAkB;AACnD,OAAOC,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,QAAQ,MAAyB,aAAa;AAIrD,MAAMC,oBAAoB,GAAGN,MAAM,CACjCK,QAAQ,EACRH,gBAAgB,CAAC,MAAM,CACzB,CAAY;AACZ,WAAYK,CAAC,IAAKA,CAAC,CAACC,KAAK,CAACC,WAAY;AACtC,YAAaF,CAAC,IAAKA,CAAC,CAACC,KAAK,CAACE,YAAa;AACxC,mBAAoBH,CAAC,IAAKA,CAAC,CAACC,KAAK,CAACE,YAAY,GAAG,CAAE;AACnD,IAAIT,UAAW;AACf,CAAC;;AAED;AACA;AACA;AACA,MAAMU,cAAc,gBAAGP,UAAU,CAC/B,CAACQ,KAAK,EAAEC,GAAG,kBAAKV,KAAA,CAAAW,aAAA,CAACR,oBAAoB,EAAAS,QAAA;EAACC,KAAK,EAAC;AAAM,GAAKJ,KAAK;EAAEC,GAAG,EAAEA;AAAI,EAAE,CAC3E,CAAC;AAEDF,cAAc,CAACM,WAAW,GAAG,gBAAgB;AAE7C,eAAeN,cAAc","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["styled","sizeStyles","omitEmotionProps","React","forwardRef","Skeleton","StyledSwitchSkeleton","p","theme","switchWidth","switchHeight","SwitchSkeleton","props","ref","createElement","_extends","width","displayName"],"sources":["../../../src/SwitchSkeleton/index.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport { sizeStyles, WithSize } from '@os-design/styles';\nimport { omitEmotionProps } from '@os-design/utils';\nimport React, { forwardRef } from 'react';\nimport Skeleton, { SkeletonProps } from '../Skeleton';\n\nexport type SwitchSkeletonProps = Omit<SkeletonProps, 'width'> & WithSize;\n\nconst StyledSwitchSkeleton = styled(\n Skeleton,\n omitEmotionProps('size')\n)<WithSize>`\n width: ${(p) => p.theme.switchWidth}em;\n height: ${(p) => p.theme.switchHeight}em;\n border-radius: ${(p) => p.theme.switchHeight / 2}em;\n ${sizeStyles};\n`;\n\n/**\n * Provides a switch placeholder while a user waits for the content to load.\n */\nconst SwitchSkeleton = forwardRef<HTMLDivElement, SwitchSkeletonProps>(\n (props, ref) => <StyledSwitchSkeleton width='100%' {...props} ref={ref} />\n);\n\nSwitchSkeleton.displayName = 'SwitchSkeleton';\n\nexport default SwitchSkeleton;\n"],"mappings":";AAAA,OAAOA,MAAM,MAAM,iBAAiB;AACpC,SAASC,UAAU,QAAkB,mBAAmB;AACxD,SAASC,gBAAgB,QAAQ,kBAAkB;AACnD,OAAOC,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,QAAQ,MAAyB,aAAa;AAIrD,MAAMC,oBAAoB,GAAGN,MAAM,CACjCK,QAAQ,EACRH,gBAAgB,CAAC,MAAM,CACzB,CAAW;AACX,WAAYK,CAAC,IAAKA,CAAC,CAACC,KAAK,CAACC,WAAW;AACrC,YAAaF,CAAC,IAAKA,CAAC,CAACC,KAAK,CAACE,YAAY;AACvC,mBAAoBH,CAAC,IAAKA,CAAC,CAACC,KAAK,CAACE,YAAY,GAAG,CAAC;AAClD,IAAIT,UAAU;AACd,CAAC;;AAED;AACA;AACA;AACA,MAAMU,cAAc,gBAAGP,UAAU,CAC/B,CAACQ,KAAK,EAAEC,GAAG,kBAAKV,KAAA,CAAAW,aAAA,CAACR,oBAAoB,EAAAS,QAAA;EAACC,KAAK,EAAC;AAAM,GAAKJ,KAAK;EAAEC,GAAG,EAAEA;AAAI,EAAE,CAC3E,CAAC;AAEDF,cAAc,CAACM,WAAW,GAAG,gBAAgB;AAE7C,eAAeN,cAAc","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
1
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
2
  import styled from '@emotion/styled';
3
3
  import { ellipsisStyles, sizeStyles, transitionStyles } from '@os-design/styles';
4
4
  import { clr } from '@os-design/theming';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["styled","ellipsisStyles","sizeStyles","transitionStyles","clr","omitEmotionProps","React","forwardRef","TagContainer","p","theme","tagColorBg","tagColorText","borderRadius","tagPaddingVertical","tagPaddingHorizontal","Content","div","LeftAddon","tagAddonPaddingHorizontal","RightAddon","Tag","left","right","children","rest","ref","createElement","_extends","displayName"],"sources":["../../../src/Tag/index.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport {\n ellipsisStyles,\n sizeStyles,\n transitionStyles,\n WithSize,\n} from '@os-design/styles';\nimport { clr } from '@os-design/theming';\nimport { omitEmotionProps } from '@os-design/utils';\nimport React, { forwardRef } from 'react';\n\ntype JsxDivProps = Omit<JSX.IntrinsicElements['div'], 'ref'>;\n\nexport interface BaseTagProps extends WithSize {\n /**\n * The component located on the left side.\n * @default undefined\n */\n left?: React.ReactNode;\n /**\n * The component located on the right side.\n * @default undefined\n */\n right?: React.ReactNode;\n}\n\nexport type TagProps = JsxDivProps & BaseTagProps;\n\nexport const TagContainer = styled('div', omitEmotionProps('size'))<WithSize>`\n display: inline-flex;\n align-items: center;\n overflow: hidden;\n\n background-color: ${(p) => clr(p.theme.tagColorBg)};\n color: ${(p) => clr(p.theme.tagColorText)};\n\n border-radius: ${(p) => p.theme.borderRadius}em;\n padding: ${(p) => p.theme.tagPaddingVertical}em\n ${(p) => p.theme.tagPaddingHorizontal}em;\n\n ${sizeStyles};\n ${transitionStyles('background-color')};\n`;\n\nconst Content = styled.div`\n ${ellipsisStyles};\n`;\n\nexport const LeftAddon = styled.div`\n display: inherit;\n padding-right: ${(p) => p.theme.tagAddonPaddingHorizontal}em;\n`;\n\nexport const RightAddon = styled.div`\n display: inherit;\n padding-left: ${(p) => p.theme.tagAddonPaddingHorizontal}em;\n`;\n\n/**\n * The component to display a label, tag, or category.\n */\nconst Tag = forwardRef<HTMLDivElement, TagProps>(\n ({ left, right, children, ...rest }, ref) => (\n <TagContainer {...rest} ref={ref}>\n {left && <LeftAddon>{left}</LeftAddon>}\n <Content>{children}</Content>\n {right && <RightAddon>{right}</RightAddon>}\n </TagContainer>\n )\n);\n\nTag.displayName = 'Tag';\n\nexport default Tag;\n"],"mappings":";AAAA,OAAOA,MAAM,MAAM,iBAAiB;AACpC,SACEC,cAAc,EACdC,UAAU,EACVC,gBAAgB,QAEX,mBAAmB;AAC1B,SAASC,GAAG,QAAQ,oBAAoB;AACxC,SAASC,gBAAgB,QAAQ,kBAAkB;AACnD,OAAOC,KAAK,IAAIC,UAAU,QAAQ,OAAO;AAmBzC,OAAO,MAAMC,YAAY,GAAGR,MAAM,CAAC,KAAK,EAAEK,gBAAgB,CAAC,MAAM,CAAC,CAAY;AAC9E;AACA;AACA;AACA;AACA,sBAAuBI,CAAC,IAAKL,GAAG,CAACK,CAAC,CAACC,KAAK,CAACC,UAAU,CAAE;AACrD,WAAYF,CAAC,IAAKL,GAAG,CAACK,CAAC,CAACC,KAAK,CAACE,YAAY,CAAE;AAC5C;AACA,mBAAoBH,CAAC,IAAKA,CAAC,CAACC,KAAK,CAACG,YAAa;AAC/C,aAAcJ,CAAC,IAAKA,CAAC,CAACC,KAAK,CAACI,kBAAmB;AAC/C,MAAOL,CAAC,IAAKA,CAAC,CAACC,KAAK,CAACK,oBAAqB;AAC1C;AACA,IAAIb,UAAW;AACf,IAAIC,gBAAgB,CAAC,kBAAkB,CAAE;AACzC,CAAC;AAED,MAAMa,OAAO,GAAGhB,MAAM,CAACiB,GAAI;AAC3B,IAAIhB,cAAe;AACnB,CAAC;AAED,OAAO,MAAMiB,SAAS,GAAGlB,MAAM,CAACiB,GAAI;AACpC;AACA,mBAAoBR,CAAC,IAAKA,CAAC,CAACC,KAAK,CAACS,yBAA0B;AAC5D,CAAC;AAED,OAAO,MAAMC,UAAU,GAAGpB,MAAM,CAACiB,GAAI;AACrC;AACA,kBAAmBR,CAAC,IAAKA,CAAC,CAACC,KAAK,CAACS,yBAA0B;AAC3D,CAAC;;AAED;AACA;AACA;AACA,MAAME,GAAG,gBAAGd,UAAU,CACpB,CAAC;EAAEe,IAAI;EAAEC,KAAK;EAAEC,QAAQ;EAAE,GAAGC;AAAK,CAAC,EAAEC,GAAG,kBACtCpB,KAAA,CAAAqB,aAAA,CAACnB,YAAY,EAAAoB,QAAA,KAAKH,IAAI;EAAEC,GAAG,EAAEA;AAAI,IAC9BJ,IAAI,iBAAIhB,KAAA,CAAAqB,aAAA,CAACT,SAAS,QAAEI,IAAgB,CAAC,eACtChB,KAAA,CAAAqB,aAAA,CAACX,OAAO,QAAEQ,QAAkB,CAAC,EAC5BD,KAAK,iBAAIjB,KAAA,CAAAqB,aAAA,CAACP,UAAU,QAAEG,KAAkB,CAC7B,CAElB,CAAC;AAEDF,GAAG,CAACQ,WAAW,GAAG,KAAK;AAEvB,eAAeR,GAAG","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["styled","ellipsisStyles","sizeStyles","transitionStyles","clr","omitEmotionProps","React","forwardRef","TagContainer","p","theme","tagColorBg","tagColorText","borderRadius","tagPaddingVertical","tagPaddingHorizontal","Content","div","LeftAddon","tagAddonPaddingHorizontal","RightAddon","Tag","left","right","children","rest","ref","createElement","_extends","displayName"],"sources":["../../../src/Tag/index.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport {\n ellipsisStyles,\n sizeStyles,\n transitionStyles,\n WithSize,\n} from '@os-design/styles';\nimport { clr } from '@os-design/theming';\nimport { omitEmotionProps } from '@os-design/utils';\nimport React, { forwardRef } from 'react';\n\ntype JsxDivProps = Omit<JSX.IntrinsicElements['div'], 'ref'>;\n\nexport interface BaseTagProps extends WithSize {\n /**\n * The component located on the left side.\n * @default undefined\n */\n left?: React.ReactNode;\n /**\n * The component located on the right side.\n * @default undefined\n */\n right?: React.ReactNode;\n}\n\nexport type TagProps = JsxDivProps & BaseTagProps;\n\nexport const TagContainer = styled('div', omitEmotionProps('size'))<WithSize>`\n display: inline-flex;\n align-items: center;\n overflow: hidden;\n\n background-color: ${(p) => clr(p.theme.tagColorBg)};\n color: ${(p) => clr(p.theme.tagColorText)};\n\n border-radius: ${(p) => p.theme.borderRadius}em;\n padding: ${(p) => p.theme.tagPaddingVertical}em\n ${(p) => p.theme.tagPaddingHorizontal}em;\n\n ${sizeStyles};\n ${transitionStyles('background-color')};\n`;\n\nconst Content = styled.div`\n ${ellipsisStyles};\n`;\n\nexport const LeftAddon = styled.div`\n display: inherit;\n padding-right: ${(p) => p.theme.tagAddonPaddingHorizontal}em;\n`;\n\nexport const RightAddon = styled.div`\n display: inherit;\n padding-left: ${(p) => p.theme.tagAddonPaddingHorizontal}em;\n`;\n\n/**\n * The component to display a label, tag, or category.\n */\nconst Tag = forwardRef<HTMLDivElement, TagProps>(\n ({ left, right, children, ...rest }, ref) => (\n <TagContainer {...rest} ref={ref}>\n {left && <LeftAddon>{left}</LeftAddon>}\n <Content>{children}</Content>\n {right && <RightAddon>{right}</RightAddon>}\n </TagContainer>\n )\n);\n\nTag.displayName = 'Tag';\n\nexport default Tag;\n"],"mappings":";AAAA,OAAOA,MAAM,MAAM,iBAAiB;AACpC,SACEC,cAAc,EACdC,UAAU,EACVC,gBAAgB,QAEX,mBAAmB;AAC1B,SAASC,GAAG,QAAQ,oBAAoB;AACxC,SAASC,gBAAgB,QAAQ,kBAAkB;AACnD,OAAOC,KAAK,IAAIC,UAAU,QAAQ,OAAO;AAmBzC,OAAO,MAAMC,YAAY,GAAGR,MAAM,CAAC,KAAK,EAAEK,gBAAgB,CAAC,MAAM,CAAC,CAAW;AAC7E;AACA;AACA;AACA;AACA,sBAAuBI,CAAC,IAAKL,GAAG,CAACK,CAAC,CAACC,KAAK,CAACC,UAAU,CAAC;AACpD,WAAYF,CAAC,IAAKL,GAAG,CAACK,CAAC,CAACC,KAAK,CAACE,YAAY,CAAC;AAC3C;AACA,mBAAoBH,CAAC,IAAKA,CAAC,CAACC,KAAK,CAACG,YAAY;AAC9C,aAAcJ,CAAC,IAAKA,CAAC,CAACC,KAAK,CAACI,kBAAkB;AAC9C,MAAOL,CAAC,IAAKA,CAAC,CAACC,KAAK,CAACK,oBAAoB;AACzC;AACA,IAAIb,UAAU;AACd,IAAIC,gBAAgB,CAAC,kBAAkB,CAAC;AACxC,CAAC;AAED,MAAMa,OAAO,GAAGhB,MAAM,CAACiB,GAAG;AAC1B,IAAIhB,cAAc;AAClB,CAAC;AAED,OAAO,MAAMiB,SAAS,GAAGlB,MAAM,CAACiB,GAAG;AACnC;AACA,mBAAoBR,CAAC,IAAKA,CAAC,CAACC,KAAK,CAACS,yBAAyB;AAC3D,CAAC;AAED,OAAO,MAAMC,UAAU,GAAGpB,MAAM,CAACiB,GAAG;AACpC;AACA,kBAAmBR,CAAC,IAAKA,CAAC,CAACC,KAAK,CAACS,yBAAyB;AAC1D,CAAC;;AAED;AACA;AACA;AACA,MAAME,GAAG,gBAAGd,UAAU,CACpB,CAAC;EAAEe,IAAI;EAAEC,KAAK;EAAEC,QAAQ;EAAE,GAAGC;AAAK,CAAC,EAAEC,GAAG,kBACtCpB,KAAA,CAAAqB,aAAA,CAACnB,YAAY,EAAAoB,QAAA,KAAKH,IAAI;EAAEC,GAAG,EAAEA;AAAI,IAC9BJ,IAAI,iBAAIhB,KAAA,CAAAqB,aAAA,CAACT,SAAS,QAAEI,IAAgB,CAAC,eACtChB,KAAA,CAAAqB,aAAA,CAACX,OAAO,QAAEQ,QAAkB,CAAC,EAC5BD,KAAK,iBAAIjB,KAAA,CAAAqB,aAAA,CAACP,UAAU,QAAEG,KAAkB,CAC7B,CAElB,CAAC;AAEDF,GAAG,CAACQ,WAAW,GAAG,KAAK;AAEvB,eAAeR,GAAG","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
1
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
2
  import styled from '@emotion/styled';
3
3
  import { clr } from '@os-design/theming';
4
4
  import { omitEmotionProps } from '@os-design/utils';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["styled","clr","omitEmotionProps","React","forwardRef","LeftAddon","RightAddon","TagContainer","StyledTagLink","withComponent","p","theme","tagColorBgHover","TagLink","left","right","as","onMouseDown","children","rest","ref","createElement","_extends","e","preventDefault","displayName"],"sources":["../../../src/TagLink/index.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport { clr } from '@os-design/theming';\nimport { omitEmotionProps } from '@os-design/utils';\nimport React, { forwardRef } from 'react';\nimport { LinkProps, ReactRouterLinkProps } from '../Link';\nimport { BaseTagProps, LeftAddon, RightAddon, TagContainer } from '../Tag';\n\ntype JsxAProps = Omit<JSX.IntrinsicElements['a'], 'ref'>;\nexport type TagLinkProps = JsxAProps &\n ReactRouterLinkProps &\n Pick<LinkProps, 'as'> &\n BaseTagProps;\n\nconst StyledTagLink = styled(\n TagContainer.withComponent('a'),\n omitEmotionProps('as')\n)`\n cursor: pointer;\n text-decoration: none;\n\n @media (hover: hover) {\n &:hover,\n &:focus {\n background-color: ${(p) => clr(p.theme.tagColorBgHover)};\n }\n }\n`;\n\n/**\n * The tag component with a link.\n */\nconst TagLink = forwardRef<HTMLAnchorElement, TagLinkProps>(\n ({ left, right, as, onMouseDown = () => {}, children, ...rest }, ref) => (\n <StyledTagLink\n as={as}\n onMouseDown={(e) => {\n onMouseDown(e);\n e.preventDefault();\n }}\n {...rest}\n ref={ref}\n >\n {left && <LeftAddon>{left}</LeftAddon>}\n {children}\n {right && <RightAddon>{right}</RightAddon>}\n </StyledTagLink>\n )\n);\n\nTagLink.displayName = 'TagLink';\n\nexport default TagLink;\n"],"mappings":";AAAA,OAAOA,MAAM,MAAM,iBAAiB;AACpC,SAASC,GAAG,QAAQ,oBAAoB;AACxC,SAASC,gBAAgB,QAAQ,kBAAkB;AACnD,OAAOC,KAAK,IAAIC,UAAU,QAAQ,OAAO;AAEzC,SAAuBC,SAAS,EAAEC,UAAU,EAAEC,YAAY,QAAQ,QAAQ;AAQ1E,MAAMC,aAAa,GAAGR,MAAM,CAC1BO,YAAY,CAACE,aAAa,CAAC,GAAG,CAAC,EAC/BP,gBAAgB,CAAC,IAAI,CACvB,CAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,0BAA2BQ,CAAC,IAAKT,GAAG,CAACS,CAAC,CAACC,KAAK,CAACC,eAAe,CAAE;AAC9D;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,MAAMC,OAAO,gBAAGT,UAAU,CACxB,CAAC;EAAEU,IAAI;EAAEC,KAAK;EAAEC,EAAE;EAAEC,WAAW,GAAGA,CAAA,KAAM,CAAC,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAAK,CAAC,EAAEC,GAAG,kBAClEjB,KAAA,CAAAkB,aAAA,CAACb,aAAa,EAAAc,QAAA;EACZN,EAAE,EAAEA,EAAG;EACPC,WAAW,EAAGM,CAAC,IAAK;IAClBN,WAAW,CAACM,CAAC,CAAC;IACdA,CAAC,CAACC,cAAc,CAAC,CAAC;EACpB;AAAE,GACEL,IAAI;EACRC,GAAG,EAAEA;AAAI,IAERN,IAAI,iBAAIX,KAAA,CAAAkB,aAAA,CAAChB,SAAS,QAAES,IAAgB,CAAC,EACrCI,QAAQ,EACRH,KAAK,iBAAIZ,KAAA,CAAAkB,aAAA,CAACf,UAAU,QAAES,KAAkB,CAC5B,CAEnB,CAAC;AAEDF,OAAO,CAACY,WAAW,GAAG,SAAS;AAE/B,eAAeZ,OAAO","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["styled","clr","omitEmotionProps","React","forwardRef","LeftAddon","RightAddon","TagContainer","StyledTagLink","withComponent","p","theme","tagColorBgHover","TagLink","left","right","as","onMouseDown","children","rest","ref","createElement","_extends","e","preventDefault","displayName"],"sources":["../../../src/TagLink/index.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport { clr } from '@os-design/theming';\nimport { omitEmotionProps } from '@os-design/utils';\nimport React, { forwardRef } from 'react';\nimport { LinkProps, ReactRouterLinkProps } from '../Link';\nimport { BaseTagProps, LeftAddon, RightAddon, TagContainer } from '../Tag';\n\ntype JsxAProps = Omit<JSX.IntrinsicElements['a'], 'ref'>;\nexport type TagLinkProps = JsxAProps &\n ReactRouterLinkProps &\n Pick<LinkProps, 'as'> &\n BaseTagProps;\n\nconst StyledTagLink = styled(\n TagContainer.withComponent('a'),\n omitEmotionProps('as')\n)`\n cursor: pointer;\n text-decoration: none;\n\n @media (hover: hover) {\n &:hover,\n &:focus {\n background-color: ${(p) => clr(p.theme.tagColorBgHover)};\n }\n }\n`;\n\n/**\n * The tag component with a link.\n */\nconst TagLink = forwardRef<HTMLAnchorElement, TagLinkProps>(\n ({ left, right, as, onMouseDown = () => {}, children, ...rest }, ref) => (\n <StyledTagLink\n as={as}\n onMouseDown={(e) => {\n onMouseDown(e);\n e.preventDefault();\n }}\n {...rest}\n ref={ref}\n >\n {left && <LeftAddon>{left}</LeftAddon>}\n {children}\n {right && <RightAddon>{right}</RightAddon>}\n </StyledTagLink>\n )\n);\n\nTagLink.displayName = 'TagLink';\n\nexport default TagLink;\n"],"mappings":";AAAA,OAAOA,MAAM,MAAM,iBAAiB;AACpC,SAASC,GAAG,QAAQ,oBAAoB;AACxC,SAASC,gBAAgB,QAAQ,kBAAkB;AACnD,OAAOC,KAAK,IAAIC,UAAU,QAAQ,OAAO;AAEzC,SAAuBC,SAAS,EAAEC,UAAU,EAAEC,YAAY,QAAQ,QAAQ;AAQ1E,MAAMC,aAAa,GAAGR,MAAM,CAC1BO,YAAY,CAACE,aAAa,CAAC,GAAG,CAAC,EAC/BP,gBAAgB,CAAC,IAAI,CACvB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,0BAA2BQ,CAAC,IAAKT,GAAG,CAACS,CAAC,CAACC,KAAK,CAACC,eAAe,CAAC;AAC7D;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,MAAMC,OAAO,gBAAGT,UAAU,CACxB,CAAC;EAAEU,IAAI;EAAEC,KAAK;EAAEC,EAAE;EAAEC,WAAW,GAAGA,CAAA,KAAM,CAAC,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAAK,CAAC,EAAEC,GAAG,kBAClEjB,KAAA,CAAAkB,aAAA,CAACb,aAAa,EAAAc,QAAA;EACZN,EAAE,EAAEA,EAAG;EACPC,WAAW,EAAGM,CAAC,IAAK;IAClBN,WAAW,CAACM,CAAC,CAAC;IACdA,CAAC,CAACC,cAAc,CAAC,CAAC;EACpB;AAAE,GACEL,IAAI;EACRC,GAAG,EAAEA;AAAI,IAERN,IAAI,iBAAIX,KAAA,CAAAkB,aAAA,CAAChB,SAAS,QAAES,IAAgB,CAAC,EACrCI,QAAQ,EACRH,KAAK,iBAAIZ,KAAA,CAAAkB,aAAA,CAACf,UAAU,QAAES,KAAkB,CAC5B,CAEnB,CAAC;AAEDF,OAAO,CAACY,WAAW,GAAG,SAAS;AAE/B,eAAeZ,OAAO","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
1
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
2
  import { css } from '@emotion/react';
3
3
  import styled from '@emotion/styled';
4
4
  import { Down, Up } from '@os-design/icons';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["css","styled","Down","Up","sizeStyles","omitEmotionProps","React","forwardRef","useState","Button","collapsibleStyles","p","collapsible","opened","theme","lineHeight","tagPaddingVertical","Container","Content","div","tagListGap","Control","OpenButton","TagList","size","children","rest","ref","setOpened","createElement","_extends","type","wide","onClick","displayName"],"sources":["../../../src/TagList/index.tsx"],"sourcesContent":["import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Down, Up } from '@os-design/icons';\nimport { WithSize, sizeStyles } from '@os-design/styles';\nimport { omitEmotionProps } from '@os-design/utils';\nimport React, { forwardRef, useState } from 'react';\nimport Button from '../Button';\n\ntype JsxDivProps = Omit<JSX.IntrinsicElements['div'], 'ref'>;\nexport interface TagListProps extends JsxDivProps, WithSize {\n /**\n * Whether the tag list is collapsible.\n * @default false\n */\n collapsible?: boolean;\n}\n\nconst collapsibleStyles = (p) =>\n p.collapsible &&\n !p.opened &&\n css`\n // The height of the tag\n height: ${p.theme.lineHeight + p.theme.tagPaddingVertical * 2}em;\n `;\n\ninterface ContainerProps extends Pick<TagListProps, 'collapsible' | 'size'> {\n opened: boolean;\n}\nconst Container = styled(\n 'div',\n omitEmotionProps('opened', 'collapsible', 'size')\n)<ContainerProps>`\n display: flex;\n overflow: hidden;\n ${collapsibleStyles};\n ${sizeStyles};\n`;\n\nconst Content = styled.div`\n display: flex;\n flex-wrap: wrap;\n flex-grow: 1;\n\n margin: ${(p) => -p.theme.tagListGap}em 0 0 ${(p) => -p.theme.tagListGap}em;\n & > * {\n margin: ${(p) => p.theme.tagListGap}em 0 0 ${(p) => p.theme.tagListGap}em;\n }\n`;\n\nconst Control = styled.div`\n margin-left: 0.2em;\n`;\n\nconst OpenButton = styled(Button)`\n // The height of the tag\n height: ${(p) => p.theme.lineHeight + p.theme.tagPaddingVertical * 2}em;\n padding: 0 0.5em;\n`;\n\n/**\n * The component to display a list of tags.\n */\nconst TagList = forwardRef<HTMLDivElement, TagListProps>(\n ({ collapsible = false, size, children, ...rest }, ref) => {\n const [opened, setOpened] = useState(false);\n\n return (\n <Container\n opened={opened}\n collapsible={collapsible}\n size={size}\n {...rest}\n ref={ref}\n >\n <Content>{children}</Content>\n\n {collapsible && (\n <Control>\n <OpenButton\n type='ghost'\n wide='never'\n onClick={() => setOpened(!opened)}\n >\n {opened ? <Up /> : <Down />}\n </OpenButton>\n </Control>\n )}\n </Container>\n );\n }\n);\n\nTagList.displayName = 'TagList';\n\nexport default TagList;\n"],"mappings":";AAAA,SAASA,GAAG,QAAQ,gBAAgB;AACpC,OAAOC,MAAM,MAAM,iBAAiB;AACpC,SAASC,IAAI,EAAEC,EAAE,QAAQ,kBAAkB;AAC3C,SAAmBC,UAAU,QAAQ,mBAAmB;AACxD,SAASC,gBAAgB,QAAQ,kBAAkB;AACnD,OAAOC,KAAK,IAAIC,UAAU,EAAEC,QAAQ,QAAQ,OAAO;AACnD,OAAOC,MAAM,MAAM,WAAW;AAW9B,MAAMC,iBAAiB,GAAIC,CAAC,IAC1BA,CAAC,CAACC,WAAW,IACb,CAACD,CAAC,CAACE,MAAM,IACTb,GAAI;AACN;AACA,cAAcW,CAAC,CAACG,KAAK,CAACC,UAAU,GAAGJ,CAAC,CAACG,KAAK,CAACE,kBAAkB,GAAG,CAAE;AAClE,GAAG;AAKH,MAAMC,SAAS,GAAGhB,MAAM,CACtB,KAAK,EACLI,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,CAClD,CAAkB;AAClB;AACA;AACA,IAAIK,iBAAkB;AACtB,IAAIN,UAAW;AACf,CAAC;AAED,MAAMc,OAAO,GAAGjB,MAAM,CAACkB,GAAI;AAC3B;AACA;AACA;AACA;AACA,YAAaR,CAAC,IAAK,CAACA,CAAC,CAACG,KAAK,CAACM,UAAW,UAAUT,CAAC,IAAK,CAACA,CAAC,CAACG,KAAK,CAACM,UAAW;AAC3E;AACA,cAAeT,CAAC,IAAKA,CAAC,CAACG,KAAK,CAACM,UAAW,UAAUT,CAAC,IAAKA,CAAC,CAACG,KAAK,CAACM,UAAW;AAC3E;AACA,CAAC;AAED,MAAMC,OAAO,GAAGpB,MAAM,CAACkB,GAAI;AAC3B;AACA,CAAC;AAED,MAAMG,UAAU,GAAGrB,MAAM,CAACQ,MAAM,CAAE;AAClC;AACA,YAAaE,CAAC,IAAKA,CAAC,CAACG,KAAK,CAACC,UAAU,GAAGJ,CAAC,CAACG,KAAK,CAACE,kBAAkB,GAAG,CAAE;AACvE;AACA,CAAC;;AAED;AACA;AACA;AACA,MAAMO,OAAO,gBAAGhB,UAAU,CACxB,CAAC;EAAEK,WAAW,GAAG,KAAK;EAAEY,IAAI;EAAEC,QAAQ;EAAE,GAAGC;AAAK,CAAC,EAAEC,GAAG,KAAK;EACzD,MAAM,CAACd,MAAM,EAAEe,SAAS,CAAC,GAAGpB,QAAQ,CAAC,KAAK,CAAC;EAE3C,oBACEF,KAAA,CAAAuB,aAAA,CAACZ,SAAS,EAAAa,QAAA;IACRjB,MAAM,EAAEA,MAAO;IACfD,WAAW,EAAEA,WAAY;IACzBY,IAAI,EAAEA;EAAK,GACPE,IAAI;IACRC,GAAG,EAAEA;EAAI,iBAETrB,KAAA,CAAAuB,aAAA,CAACX,OAAO,QAAEO,QAAkB,CAAC,EAE5Bb,WAAW,iBACVN,KAAA,CAAAuB,aAAA,CAACR,OAAO,qBACNf,KAAA,CAAAuB,aAAA,CAACP,UAAU;IACTS,IAAI,EAAC,OAAO;IACZC,IAAI,EAAC,OAAO;IACZC,OAAO,EAAEA,CAAA,KAAML,SAAS,CAAC,CAACf,MAAM;EAAE,GAEjCA,MAAM,gBAAGP,KAAA,CAAAuB,aAAA,CAAC1B,EAAE,MAAE,CAAC,gBAAGG,KAAA,CAAAuB,aAAA,CAAC3B,IAAI,MAAE,CAChB,CACL,CAEF,CAAC;AAEhB,CACF,CAAC;AAEDqB,OAAO,CAACW,WAAW,GAAG,SAAS;AAE/B,eAAeX,OAAO","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["css","styled","Down","Up","sizeStyles","omitEmotionProps","React","forwardRef","useState","Button","collapsibleStyles","p","collapsible","opened","theme","lineHeight","tagPaddingVertical","Container","Content","div","tagListGap","Control","OpenButton","TagList","size","children","rest","ref","setOpened","createElement","_extends","type","wide","onClick","displayName"],"sources":["../../../src/TagList/index.tsx"],"sourcesContent":["import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Down, Up } from '@os-design/icons';\nimport { WithSize, sizeStyles } from '@os-design/styles';\nimport { omitEmotionProps } from '@os-design/utils';\nimport React, { forwardRef, useState } from 'react';\nimport Button from '../Button';\n\ntype JsxDivProps = Omit<JSX.IntrinsicElements['div'], 'ref'>;\nexport interface TagListProps extends JsxDivProps, WithSize {\n /**\n * Whether the tag list is collapsible.\n * @default false\n */\n collapsible?: boolean;\n}\n\nconst collapsibleStyles = (p) =>\n p.collapsible &&\n !p.opened &&\n css`\n // The height of the tag\n height: ${p.theme.lineHeight + p.theme.tagPaddingVertical * 2}em;\n `;\n\ninterface ContainerProps extends Pick<TagListProps, 'collapsible' | 'size'> {\n opened: boolean;\n}\nconst Container = styled(\n 'div',\n omitEmotionProps('opened', 'collapsible', 'size')\n)<ContainerProps>`\n display: flex;\n overflow: hidden;\n ${collapsibleStyles};\n ${sizeStyles};\n`;\n\nconst Content = styled.div`\n display: flex;\n flex-wrap: wrap;\n flex-grow: 1;\n\n margin: ${(p) => -p.theme.tagListGap}em 0 0 ${(p) => -p.theme.tagListGap}em;\n & > * {\n margin: ${(p) => p.theme.tagListGap}em 0 0 ${(p) => p.theme.tagListGap}em;\n }\n`;\n\nconst Control = styled.div`\n margin-left: 0.2em;\n`;\n\nconst OpenButton = styled(Button)`\n // The height of the tag\n height: ${(p) => p.theme.lineHeight + p.theme.tagPaddingVertical * 2}em;\n padding: 0 0.5em;\n`;\n\n/**\n * The component to display a list of tags.\n */\nconst TagList = forwardRef<HTMLDivElement, TagListProps>(\n ({ collapsible = false, size, children, ...rest }, ref) => {\n const [opened, setOpened] = useState(false);\n\n return (\n <Container\n opened={opened}\n collapsible={collapsible}\n size={size}\n {...rest}\n ref={ref}\n >\n <Content>{children}</Content>\n\n {collapsible && (\n <Control>\n <OpenButton\n type='ghost'\n wide='never'\n onClick={() => setOpened(!opened)}\n >\n {opened ? <Up /> : <Down />}\n </OpenButton>\n </Control>\n )}\n </Container>\n );\n }\n);\n\nTagList.displayName = 'TagList';\n\nexport default TagList;\n"],"mappings":";AAAA,SAASA,GAAG,QAAQ,gBAAgB;AACpC,OAAOC,MAAM,MAAM,iBAAiB;AACpC,SAASC,IAAI,EAAEC,EAAE,QAAQ,kBAAkB;AAC3C,SAAmBC,UAAU,QAAQ,mBAAmB;AACxD,SAASC,gBAAgB,QAAQ,kBAAkB;AACnD,OAAOC,KAAK,IAAIC,UAAU,EAAEC,QAAQ,QAAQ,OAAO;AACnD,OAAOC,MAAM,MAAM,WAAW;AAW9B,MAAMC,iBAAiB,GAAIC,CAAC,IAC1BA,CAAC,CAACC,WAAW,IACb,CAACD,CAAC,CAACE,MAAM,IACTb,GAAG;AACL;AACA,cAAcW,CAAC,CAACG,KAAK,CAACC,UAAU,GAAGJ,CAAC,CAACG,KAAK,CAACE,kBAAkB,GAAG,CAAC;AACjE,GAAG;AAKH,MAAMC,SAAS,GAAGhB,MAAM,CACtB,KAAK,EACLI,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,CAClD,CAAiB;AACjB;AACA;AACA,IAAIK,iBAAiB;AACrB,IAAIN,UAAU;AACd,CAAC;AAED,MAAMc,OAAO,GAAGjB,MAAM,CAACkB,GAAG;AAC1B;AACA;AACA;AACA;AACA,YAAaR,CAAC,IAAK,CAACA,CAAC,CAACG,KAAK,CAACM,UAAU,UAAWT,CAAC,IAAK,CAACA,CAAC,CAACG,KAAK,CAACM,UAAU;AAC1E;AACA,cAAeT,CAAC,IAAKA,CAAC,CAACG,KAAK,CAACM,UAAU,UAAWT,CAAC,IAAKA,CAAC,CAACG,KAAK,CAACM,UAAU;AAC1E;AACA,CAAC;AAED,MAAMC,OAAO,GAAGpB,MAAM,CAACkB,GAAG;AAC1B;AACA,CAAC;AAED,MAAMG,UAAU,GAAGrB,MAAM,CAACQ,MAAM,CAAC;AACjC;AACA,YAAaE,CAAC,IAAKA,CAAC,CAACG,KAAK,CAACC,UAAU,GAAGJ,CAAC,CAACG,KAAK,CAACE,kBAAkB,GAAG,CAAC;AACtE;AACA,CAAC;;AAED;AACA;AACA;AACA,MAAMO,OAAO,gBAAGhB,UAAU,CACxB,CAAC;EAAEK,WAAW,GAAG,KAAK;EAAEY,IAAI;EAAEC,QAAQ;EAAE,GAAGC;AAAK,CAAC,EAAEC,GAAG,KAAK;EACzD,MAAM,CAACd,MAAM,EAAEe,SAAS,CAAC,GAAGpB,QAAQ,CAAC,KAAK,CAAC;EAE3C,oBACEF,KAAA,CAAAuB,aAAA,CAACZ,SAAS,EAAAa,QAAA;IACRjB,MAAM,EAAEA,MAAO;IACfD,WAAW,EAAEA,WAAY;IACzBY,IAAI,EAAEA;EAAK,GACPE,IAAI;IACRC,GAAG,EAAEA;EAAI,iBAETrB,KAAA,CAAAuB,aAAA,CAACX,OAAO,QAAEO,QAAkB,CAAC,EAE5Bb,WAAW,iBACVN,KAAA,CAAAuB,aAAA,CAACR,OAAO,qBACNf,KAAA,CAAAuB,aAAA,CAACP,UAAU;IACTS,IAAI,EAAC,OAAO;IACZC,IAAI,EAAC,OAAO;IACZC,OAAO,EAAEA,CAAA,KAAML,SAAS,CAAC,CAACf,MAAM;EAAE,GAEjCA,MAAM,gBAAGP,KAAA,CAAAuB,aAAA,CAAC1B,EAAE,MAAE,CAAC,gBAAGG,KAAA,CAAAuB,aAAA,CAAC3B,IAAI,MAAE,CAChB,CACL,CAEF,CAAC;AAEhB,CACF,CAAC;AAEDqB,OAAO,CAACW,WAAW,GAAG,SAAS;AAE/B,eAAeX,OAAO","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
1
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
2
  import React, { forwardRef } from 'react';
3
3
  import TagList from '../TagList';
4
4
  import TagSkeleton from '../TagSkeleton';
@@ -1,4 +1,4 @@
1
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
1
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
2
  import styled from '@emotion/styled';
3
3
  import { sizeStyles } from '@os-design/styles';
4
4
  import { omitEmotionProps } from '@os-design/utils';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["styled","sizeStyles","omitEmotionProps","React","forwardRef","Skeleton","StyledTagSkeleton","p","width","theme","lineHeight","tagPaddingVertical","TagSkeleton","rest","ref","createElement","_extends","displayName"],"sources":["../../../src/TagSkeleton/index.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport { sizeStyles, WithSize } from '@os-design/styles';\nimport { omitEmotionProps } from '@os-design/utils';\nimport React, { forwardRef } from 'react';\nimport Skeleton, { SkeletonProps } from '../Skeleton';\n\nexport interface TagSkeletonProps\n extends Omit<SkeletonProps, 'width'>,\n WithSize {\n /**\n * The width of the skeleton.\n * @default 6em\n */\n width?: string;\n}\n\ntype StyledTagSkeletonProps = Pick<TagSkeletonProps, 'width' | 'size'>;\nconst StyledTagSkeleton = styled(\n Skeleton,\n omitEmotionProps('width', 'size')\n)<StyledTagSkeletonProps>`\n width: ${(p) => p.width};\n height: ${(p) => p.theme.lineHeight + p.theme.tagPaddingVertical * 2}em;\n ${sizeStyles};\n`;\n\n/**\n * Provides a tag placeholder while a user waits for the content to load.\n */\nconst TagSkeleton = forwardRef<HTMLDivElement, TagSkeletonProps>(\n ({ width = '6em', ...rest }, ref) => (\n <StyledTagSkeleton width={width} {...rest} ref={ref} />\n )\n);\n\nTagSkeleton.displayName = 'TagSkeleton';\n\nexport default TagSkeleton;\n"],"mappings":";AAAA,OAAOA,MAAM,MAAM,iBAAiB;AACpC,SAASC,UAAU,QAAkB,mBAAmB;AACxD,SAASC,gBAAgB,QAAQ,kBAAkB;AACnD,OAAOC,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,QAAQ,MAAyB,aAAa;AAarD,MAAMC,iBAAiB,GAAGN,MAAM,CAC9BK,QAAQ,EACRH,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAClC,CAA0B;AAC1B,WAAYK,CAAC,IAAKA,CAAC,CAACC,KAAM;AAC1B,YAAaD,CAAC,IAAKA,CAAC,CAACE,KAAK,CAACC,UAAU,GAAGH,CAAC,CAACE,KAAK,CAACE,kBAAkB,GAAG,CAAE;AACvE,IAAIV,UAAW;AACf,CAAC;;AAED;AACA;AACA;AACA,MAAMW,WAAW,gBAAGR,UAAU,CAC5B,CAAC;EAAEI,KAAK,GAAG,KAAK;EAAE,GAAGK;AAAK,CAAC,EAAEC,GAAG,kBAC9BX,KAAA,CAAAY,aAAA,CAACT,iBAAiB,EAAAU,QAAA;EAACR,KAAK,EAAEA;AAAM,GAAKK,IAAI;EAAEC,GAAG,EAAEA;AAAI,EAAE,CAE1D,CAAC;AAEDF,WAAW,CAACK,WAAW,GAAG,aAAa;AAEvC,eAAeL,WAAW","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["styled","sizeStyles","omitEmotionProps","React","forwardRef","Skeleton","StyledTagSkeleton","p","width","theme","lineHeight","tagPaddingVertical","TagSkeleton","rest","ref","createElement","_extends","displayName"],"sources":["../../../src/TagSkeleton/index.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport { sizeStyles, WithSize } from '@os-design/styles';\nimport { omitEmotionProps } from '@os-design/utils';\nimport React, { forwardRef } from 'react';\nimport Skeleton, { SkeletonProps } from '../Skeleton';\n\nexport interface TagSkeletonProps\n extends Omit<SkeletonProps, 'width'>,\n WithSize {\n /**\n * The width of the skeleton.\n * @default 6em\n */\n width?: string;\n}\n\ntype StyledTagSkeletonProps = Pick<TagSkeletonProps, 'width' | 'size'>;\nconst StyledTagSkeleton = styled(\n Skeleton,\n omitEmotionProps('width', 'size')\n)<StyledTagSkeletonProps>`\n width: ${(p) => p.width};\n height: ${(p) => p.theme.lineHeight + p.theme.tagPaddingVertical * 2}em;\n ${sizeStyles};\n`;\n\n/**\n * Provides a tag placeholder while a user waits for the content to load.\n */\nconst TagSkeleton = forwardRef<HTMLDivElement, TagSkeletonProps>(\n ({ width = '6em', ...rest }, ref) => (\n <StyledTagSkeleton width={width} {...rest} ref={ref} />\n )\n);\n\nTagSkeleton.displayName = 'TagSkeleton';\n\nexport default TagSkeleton;\n"],"mappings":";AAAA,OAAOA,MAAM,MAAM,iBAAiB;AACpC,SAASC,UAAU,QAAkB,mBAAmB;AACxD,SAASC,gBAAgB,QAAQ,kBAAkB;AACnD,OAAOC,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,QAAQ,MAAyB,aAAa;AAarD,MAAMC,iBAAiB,GAAGN,MAAM,CAC9BK,QAAQ,EACRH,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAClC,CAAyB;AACzB,WAAYK,CAAC,IAAKA,CAAC,CAACC,KAAK;AACzB,YAAaD,CAAC,IAAKA,CAAC,CAACE,KAAK,CAACC,UAAU,GAAGH,CAAC,CAACE,KAAK,CAACE,kBAAkB,GAAG,CAAC;AACtE,IAAIV,UAAU;AACd,CAAC;;AAED;AACA;AACA;AACA,MAAMW,WAAW,gBAAGR,UAAU,CAC5B,CAAC;EAAEI,KAAK,GAAG,KAAK;EAAE,GAAGK;AAAK,CAAC,EAAEC,GAAG,kBAC9BX,KAAA,CAAAY,aAAA,CAACT,iBAAiB,EAAAU,QAAA;EAACR,KAAK,EAAEA;AAAM,GAAKK,IAAI;EAAEC,GAAG,EAAEA;AAAI,EAAE,CAE1D,CAAC;AAEDF,WAAW,CAACK,WAAW,GAAG,aAAa;AAEvC,eAAeL,WAAW","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
1
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
2
  import { css } from '@emotion/react';
3
3
  import styled from '@emotion/styled';
4
4
  import { Loading } from '@os-design/icons';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["css","styled","Loading","clr","ThemeOverrider","omitEmotionProps","useForwardedRef","React","forwardRef","useCallback","useMemo","InputContainer","StyledInput","getFocusableElements","TextAreaContainer","p","theme","textAreaHeight","TextAreaField","withComponent","textAreaPaddingVertical","lineHeight","Addon","inputColorPlaceholder","LeftAddon","inputAddonPaddingHorizontal","hasPadding","inputPaddingHorizontal","RightAddon","TextArea","left","leftHasPadding","right","rightHasPadding","disabled","loading","containerRef","containerProps","size","value","onChange","rest","ref","innerContainerRef","mergedContainerRef","rightValue","createElement","rightHasPaddingValue","onFocus","e","target","current","focusableElements","focus","onKeyDown","document","inputFocusableElements","firstInputElementIsFocused","activeElement","key","shiftKey","inputContainerIndex","findIndex","el","elementBeforeInputContainer","_extends","tabIndex","overrides","buttonPaddingHorizontal","hasLeft","hasRight","displayName"],"sources":["../../../src/TextArea/index.tsx"],"sourcesContent":["import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Loading } from '@os-design/icons';\nimport { WithSize } from '@os-design/styles';\nimport { clr, ThemeOverrider } from '@os-design/theming';\nimport { omitEmotionProps, useForwardedRef } from '@os-design/utils';\nimport React, {\n ChangeEvent,\n FocusEventHandler,\n ForwardedRef,\n forwardRef,\n KeyboardEventHandler,\n useCallback,\n useMemo,\n} from 'react';\nimport { InputContainer, StyledInput } from '../Input';\nimport getFocusableElements from '../Input/utils/getFocusableElements';\n\ntype JsxTextAreaProps = Omit<\n JSX.IntrinsicElements['textarea'],\n 'value' | 'onChange' | 'ref'\n>;\nexport interface TextAreaProps extends JsxTextAreaProps, WithSize {\n /**\n * The component located on the left side.\n * @default undefined\n */\n left?: React.ReactNode;\n /**\n * Adds padding to the left component.\n * It can be useful when passing an icon or text in the left component.\n * @default false\n */\n leftHasPadding?: boolean;\n /**\n * The component located on the right side.\n * @default undefined\n */\n right?: React.ReactNode;\n /**\n * Adds padding to the right component.\n * It can be useful when passing an icon or text in the right component.\n * @default false\n */\n rightHasPadding?: boolean;\n /**\n * Whether the textarea is disabled.\n * @default false\n */\n disabled?: boolean;\n /**\n * Shows the loading status.\n * @default false\n */\n loading?: boolean;\n /**\n * The ref of the textarea container.\n * @default undefined\n */\n containerRef?: ForwardedRef<HTMLDivElement>;\n /**\n * The props of the textarea container.\n * @default undefined\n */\n containerProps?: JSX.IntrinsicElements['div'];\n /**\n * The textarea value.\n * @default undefined\n */\n value?: string;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: string, e: ChangeEvent<HTMLTextAreaElement>) => void;\n}\n\nconst TextAreaContainer = styled(InputContainer)`\n height: ${(p) => p.theme.textAreaHeight}em;\n`;\n\nconst TextAreaField = styled(StyledInput.withComponent('textarea'))`\n padding-top: ${(p) => p.theme.textAreaPaddingVertical}em;\n padding-bottom: ${(p) => p.theme.textAreaPaddingVertical}em;\n line-height: ${(p) => p.theme.lineHeight};\n resize: none;\n`;\n\ninterface AddonProps {\n hasPadding: boolean;\n}\nconst Addon = styled('span', omitEmotionProps('hasPadding'))<AddonProps>`\n display: flex;\n align-items: center;\n user-select: none;\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n\n svg {\n transform: scale(1.2);\n }\n`;\n\nconst LeftAddon = styled(Addon)`\n padding-right: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\nconst RightAddon = styled(Addon)`\n padding-left: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\n/**\n * The multiline input component.\n */\nconst TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n (\n {\n left,\n leftHasPadding = false,\n right,\n rightHasPadding = false,\n disabled = false,\n loading = false,\n containerRef,\n containerProps = {},\n size,\n value,\n onChange = () => {},\n ...rest\n },\n ref\n ) => {\n const [innerContainerRef, mergedContainerRef] =\n useForwardedRef(containerRef);\n\n const rightValue = useMemo(\n () => (loading ? <Loading /> : right),\n [loading, right]\n );\n\n const rightHasPaddingValue = useMemo(\n () => (loading ? true : rightHasPadding),\n [loading, rightHasPadding]\n );\n\n const onFocus = useCallback<FocusEventHandler>(\n (e) => {\n // Focus the next element if the container element was focused.\n // The next element will be the input or button in the addon.\n if (disabled || e.target !== innerContainerRef.current) return;\n const focusableElements = getFocusableElements(\n innerContainerRef.current\n );\n focusableElements[0].focus();\n },\n [disabled, innerContainerRef]\n );\n\n const onKeyDown = useCallback<KeyboardEventHandler>(\n (e) => {\n // Focus the previous element if the first element in the input\n // container is focused and the Shift + Tab combination is pressed.\n const focusableElements = getFocusableElements(document);\n const inputFocusableElements = innerContainerRef.current\n ? getFocusableElements(innerContainerRef.current)\n : [];\n const firstInputElementIsFocused =\n inputFocusableElements[0] === document.activeElement;\n if (firstInputElementIsFocused && e.key === 'Tab' && e.shiftKey) {\n const inputContainerIndex = focusableElements.findIndex(\n (el) => el === innerContainerRef.current\n );\n if (inputContainerIndex === 0) return;\n const elementBeforeInputContainer =\n focusableElements[inputContainerIndex - 1];\n elementBeforeInputContainer.focus();\n }\n },\n [innerContainerRef]\n );\n\n return (\n <TextAreaContainer\n disabled={disabled}\n size={size}\n tabIndex={!disabled ? 0 : -1}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n ref={mergedContainerRef}\n {...containerProps}\n >\n {left && (\n <ThemeOverrider overrides={{ buttonPaddingHorizontal: 0.8 }}>\n <LeftAddon hasPadding={leftHasPadding}>{left}</LeftAddon>\n </ThemeOverrider>\n )}\n\n <TextAreaField\n disabled={disabled}\n hasLeft={!!left}\n hasRight={!!right}\n value={value || ''}\n onChange={(e) => onChange(e.target.value, e)}\n {...rest}\n ref={ref}\n />\n\n {rightValue && (\n <ThemeOverrider overrides={{ buttonPaddingHorizontal: 0.8 }}>\n <RightAddon hasPadding={rightHasPaddingValue}>\n {rightValue}\n </RightAddon>\n </ThemeOverrider>\n )}\n </TextAreaContainer>\n );\n }\n);\n\nTextArea.displayName = 'TextArea';\n\nexport default TextArea;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["css","styled","Loading","clr","ThemeOverrider","omitEmotionProps","useForwardedRef","React","forwardRef","useCallback","useMemo","InputContainer","StyledInput","getFocusableElements","TextAreaContainer","p","theme","textAreaHeight","TextAreaField","withComponent","textAreaPaddingVertical","lineHeight","Addon","inputColorPlaceholder","LeftAddon","inputAddonPaddingHorizontal","hasPadding","inputPaddingHorizontal","RightAddon","TextArea","left","leftHasPadding","right","rightHasPadding","disabled","loading","containerRef","containerProps","size","value","onChange","rest","ref","innerContainerRef","mergedContainerRef","rightValue","createElement","rightHasPaddingValue","onFocus","e","target","current","focusableElements","focus","onKeyDown","document","inputFocusableElements","firstInputElementIsFocused","activeElement","key","shiftKey","inputContainerIndex","findIndex","el","elementBeforeInputContainer","_extends","tabIndex","overrides","buttonPaddingHorizontal","hasLeft","hasRight","displayName"],"sources":["../../../src/TextArea/index.tsx"],"sourcesContent":["import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Loading } from '@os-design/icons';\nimport { WithSize } from '@os-design/styles';\nimport { clr, ThemeOverrider } from '@os-design/theming';\nimport { omitEmotionProps, useForwardedRef } from '@os-design/utils';\nimport React, {\n ChangeEvent,\n FocusEventHandler,\n ForwardedRef,\n forwardRef,\n KeyboardEventHandler,\n useCallback,\n useMemo,\n} from 'react';\nimport { InputContainer, StyledInput } from '../Input';\nimport getFocusableElements from '../Input/utils/getFocusableElements';\n\ntype JsxTextAreaProps = Omit<\n JSX.IntrinsicElements['textarea'],\n 'value' | 'onChange' | 'ref'\n>;\nexport interface TextAreaProps extends JsxTextAreaProps, WithSize {\n /**\n * The component located on the left side.\n * @default undefined\n */\n left?: React.ReactNode;\n /**\n * Adds padding to the left component.\n * It can be useful when passing an icon or text in the left component.\n * @default false\n */\n leftHasPadding?: boolean;\n /**\n * The component located on the right side.\n * @default undefined\n */\n right?: React.ReactNode;\n /**\n * Adds padding to the right component.\n * It can be useful when passing an icon or text in the right component.\n * @default false\n */\n rightHasPadding?: boolean;\n /**\n * Whether the textarea is disabled.\n * @default false\n */\n disabled?: boolean;\n /**\n * Shows the loading status.\n * @default false\n */\n loading?: boolean;\n /**\n * The ref of the textarea container.\n * @default undefined\n */\n containerRef?: ForwardedRef<HTMLDivElement>;\n /**\n * The props of the textarea container.\n * @default undefined\n */\n containerProps?: JSX.IntrinsicElements['div'];\n /**\n * The textarea value.\n * @default undefined\n */\n value?: string;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: string, e: ChangeEvent<HTMLTextAreaElement>) => void;\n}\n\nconst TextAreaContainer = styled(InputContainer)`\n height: ${(p) => p.theme.textAreaHeight}em;\n`;\n\nconst TextAreaField = styled(StyledInput.withComponent('textarea'))`\n padding-top: ${(p) => p.theme.textAreaPaddingVertical}em;\n padding-bottom: ${(p) => p.theme.textAreaPaddingVertical}em;\n line-height: ${(p) => p.theme.lineHeight};\n resize: none;\n`;\n\ninterface AddonProps {\n hasPadding: boolean;\n}\nconst Addon = styled('span', omitEmotionProps('hasPadding'))<AddonProps>`\n display: flex;\n align-items: center;\n user-select: none;\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n\n svg {\n transform: scale(1.2);\n }\n`;\n\nconst LeftAddon = styled(Addon)`\n padding-right: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\nconst RightAddon = styled(Addon)`\n padding-left: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\n/**\n * The multiline input component.\n */\nconst TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n (\n {\n left,\n leftHasPadding = false,\n right,\n rightHasPadding = false,\n disabled = false,\n loading = false,\n containerRef,\n containerProps = {},\n size,\n value,\n onChange = () => {},\n ...rest\n },\n ref\n ) => {\n const [innerContainerRef, mergedContainerRef] =\n useForwardedRef(containerRef);\n\n const rightValue = useMemo(\n () => (loading ? <Loading /> : right),\n [loading, right]\n );\n\n const rightHasPaddingValue = useMemo(\n () => (loading ? true : rightHasPadding),\n [loading, rightHasPadding]\n );\n\n const onFocus = useCallback<FocusEventHandler>(\n (e) => {\n // Focus the next element if the container element was focused.\n // The next element will be the input or button in the addon.\n if (disabled || e.target !== innerContainerRef.current) return;\n const focusableElements = getFocusableElements(\n innerContainerRef.current\n );\n focusableElements[0].focus();\n },\n [disabled, innerContainerRef]\n );\n\n const onKeyDown = useCallback<KeyboardEventHandler>(\n (e) => {\n // Focus the previous element if the first element in the input\n // container is focused and the Shift + Tab combination is pressed.\n const focusableElements = getFocusableElements(document);\n const inputFocusableElements = innerContainerRef.current\n ? getFocusableElements(innerContainerRef.current)\n : [];\n const firstInputElementIsFocused =\n inputFocusableElements[0] === document.activeElement;\n if (firstInputElementIsFocused && e.key === 'Tab' && e.shiftKey) {\n const inputContainerIndex = focusableElements.findIndex(\n (el) => el === innerContainerRef.current\n );\n if (inputContainerIndex === 0) return;\n const elementBeforeInputContainer =\n focusableElements[inputContainerIndex - 1];\n elementBeforeInputContainer.focus();\n }\n },\n [innerContainerRef]\n );\n\n return (\n <TextAreaContainer\n disabled={disabled}\n size={size}\n tabIndex={!disabled ? 0 : -1}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n ref={mergedContainerRef}\n {...containerProps}\n >\n {left && (\n <ThemeOverrider overrides={{ buttonPaddingHorizontal: 0.8 }}>\n <LeftAddon hasPadding={leftHasPadding}>{left}</LeftAddon>\n </ThemeOverrider>\n )}\n\n <TextAreaField\n disabled={disabled}\n hasLeft={!!left}\n hasRight={!!right}\n value={value || ''}\n onChange={(e) => onChange(e.target.value, e)}\n {...rest}\n ref={ref}\n />\n\n {rightValue && (\n <ThemeOverrider overrides={{ buttonPaddingHorizontal: 0.8 }}>\n <RightAddon hasPadding={rightHasPaddingValue}>\n {rightValue}\n </RightAddon>\n </ThemeOverrider>\n )}\n </TextAreaContainer>\n );\n }\n);\n\nTextArea.displayName = 'TextArea';\n\nexport default TextArea;\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
1
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
2
  import styled from '@emotion/styled';
3
3
  import React, { forwardRef } from 'react';
4
4
  import InputSkeleton from '../InputSkeleton';