@fountain-ui/core 2.0.0-beta.92 → 2.0.0-beta.93

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 (343) hide show
  1. package/build/commonjs/Button/Button.js +51 -63
  2. package/build/commonjs/Button/Button.js.map +1 -1
  3. package/build/commonjs/Button/ButtonProps.js +11 -0
  4. package/build/commonjs/Button/ButtonProps.js.map +1 -1
  5. package/build/commonjs/Button/LegacyButton.js +144 -0
  6. package/build/commonjs/Button/LegacyButton.js.map +1 -0
  7. package/build/commonjs/Button/LegacyButtonProps.js +2 -0
  8. package/build/commonjs/Button/LegacyButtonProps.js.map +1 -0
  9. package/build/commonjs/Button/index.js +2 -2
  10. package/build/commonjs/Button/index.js.map +1 -1
  11. package/build/commonjs/Button/useVariantStyleMap.js +95 -0
  12. package/build/commonjs/Button/useVariantStyleMap.js.map +1 -0
  13. package/build/commonjs/ButtonSet/ButtonSet.js +54 -0
  14. package/build/commonjs/ButtonSet/ButtonSet.js.map +1 -0
  15. package/build/commonjs/ButtonSet/ButtonSetProps.js +11 -0
  16. package/build/commonjs/ButtonSet/ButtonSetProps.js.map +1 -0
  17. package/build/commonjs/ButtonSet/index.js +30 -0
  18. package/build/commonjs/ButtonSet/index.js.map +1 -0
  19. package/build/commonjs/ButtonSet/useVariantStyleMap.js +85 -0
  20. package/build/commonjs/ButtonSet/useVariantStyleMap.js.map +1 -0
  21. package/build/commonjs/Checkbox/Checkbox.js +33 -23
  22. package/build/commonjs/Checkbox/Checkbox.js.map +1 -1
  23. package/build/commonjs/Checkbox/CheckboxProps.js +7 -0
  24. package/build/commonjs/Checkbox/CheckboxProps.js.map +1 -1
  25. package/build/commonjs/Checkbox/LegacyCheckbox.js +65 -0
  26. package/build/commonjs/Checkbox/LegacyCheckbox.js.map +1 -0
  27. package/build/commonjs/Checkbox/LegacyCheckboxProps.js +2 -0
  28. package/build/commonjs/Checkbox/LegacyCheckboxProps.js.map +1 -0
  29. package/build/commonjs/Checkbox/index.js +2 -2
  30. package/build/commonjs/Checkbox/index.js.map +1 -1
  31. package/build/commonjs/Checkbox/useVariantStyleMap.js +70 -0
  32. package/build/commonjs/Checkbox/useVariantStyleMap.js.map +1 -0
  33. package/build/commonjs/CheckboxGroup/CheckboxGroup.js +50 -0
  34. package/build/commonjs/CheckboxGroup/CheckboxGroup.js.map +1 -0
  35. package/build/commonjs/CheckboxGroup/CheckboxGroupProps.js +2 -0
  36. package/build/commonjs/CheckboxGroup/CheckboxGroupProps.js.map +1 -0
  37. package/build/commonjs/CheckboxGroup/index.js +16 -0
  38. package/build/commonjs/CheckboxGroup/index.js.map +1 -0
  39. package/build/commonjs/IconButton/IconButton.js +39 -42
  40. package/build/commonjs/IconButton/IconButton.js.map +1 -1
  41. package/build/commonjs/IconButton/IconButtonProps.js +7 -0
  42. package/build/commonjs/IconButton/IconButtonProps.js.map +1 -1
  43. package/build/commonjs/IconButton/LegacyIconButton.js +88 -0
  44. package/build/commonjs/IconButton/LegacyIconButton.js.map +1 -0
  45. package/build/commonjs/IconButton/LegacyIconButtonProps.js +2 -0
  46. package/build/commonjs/IconButton/LegacyIconButtonProps.js.map +1 -0
  47. package/build/commonjs/IconButton/index.js +2 -2
  48. package/build/commonjs/IconButton/index.js.map +1 -1
  49. package/build/commonjs/Radio/LegacyRadio.js +82 -0
  50. package/build/commonjs/Radio/LegacyRadio.js.map +1 -0
  51. package/build/commonjs/Radio/LegacyRadioProps.js +2 -0
  52. package/build/commonjs/Radio/LegacyRadioProps.js.map +1 -0
  53. package/build/commonjs/Radio/Radio.js +40 -19
  54. package/build/commonjs/Radio/Radio.js.map +1 -1
  55. package/build/commonjs/Radio/RadioProps.js.map +1 -1
  56. package/build/commonjs/Radio/index.js +2 -2
  57. package/build/commonjs/Radio/index.js.map +1 -1
  58. package/build/commonjs/RadioGroup/LegacyRadioGroup.js +31 -0
  59. package/build/commonjs/RadioGroup/LegacyRadioGroup.js.map +1 -0
  60. package/build/commonjs/RadioGroup/RadioGroup.js +28 -2
  61. package/build/commonjs/RadioGroup/RadioGroup.js.map +1 -1
  62. package/build/commonjs/RadioGroup/index.js +2 -2
  63. package/build/commonjs/RadioGroup/index.js.map +1 -1
  64. package/build/commonjs/ShadowView/ShadowView.js +35 -0
  65. package/build/commonjs/ShadowView/ShadowView.js.map +1 -0
  66. package/build/commonjs/ShadowView/ShadowView.native.js +35 -0
  67. package/build/commonjs/ShadowView/ShadowView.native.js.map +1 -0
  68. package/build/commonjs/ShadowView/ShadowViewProps.js +2 -0
  69. package/build/commonjs/ShadowView/ShadowViewProps.js.map +1 -0
  70. package/build/commonjs/ShadowView/index.js +16 -0
  71. package/build/commonjs/ShadowView/index.js.map +1 -0
  72. package/build/commonjs/SvgIcon/LegacySvgIcon.js +43 -0
  73. package/build/commonjs/SvgIcon/LegacySvgIcon.js.map +1 -0
  74. package/build/commonjs/SvgIcon/LegacySvgIconProps.js +2 -0
  75. package/build/commonjs/SvgIcon/LegacySvgIconProps.js.map +1 -0
  76. package/build/commonjs/SvgIcon/SvgIcon.js +16 -4
  77. package/build/commonjs/SvgIcon/SvgIcon.js.map +1 -1
  78. package/build/commonjs/SvgIcon/SvgIconProps.js +15 -0
  79. package/build/commonjs/SvgIcon/SvgIconProps.js.map +1 -1
  80. package/build/commonjs/SvgIcon/index.js +2 -2
  81. package/build/commonjs/SvgIcon/index.js.map +1 -1
  82. package/build/commonjs/Toggle/Toggle.js +110 -0
  83. package/build/commonjs/Toggle/Toggle.js.map +1 -0
  84. package/build/commonjs/Toggle/ToggleProps.js +2 -0
  85. package/build/commonjs/Toggle/ToggleProps.js.map +1 -0
  86. package/build/commonjs/Toggle/index.js +16 -0
  87. package/build/commonjs/Toggle/index.js.map +1 -0
  88. package/build/commonjs/Typography/LegacyTypography.js +142 -0
  89. package/build/commonjs/Typography/LegacyTypography.js.map +1 -0
  90. package/build/commonjs/Typography/LegacyTypographyProps.js +2 -0
  91. package/build/commonjs/Typography/LegacyTypographyProps.js.map +1 -0
  92. package/build/commonjs/Typography/Typography.js +15 -54
  93. package/build/commonjs/Typography/Typography.js.map +1 -1
  94. package/build/commonjs/Typography/TypographyProps.js +7 -0
  95. package/build/commonjs/Typography/TypographyProps.js.map +1 -1
  96. package/build/commonjs/Typography/index.js +2 -2
  97. package/build/commonjs/Typography/index.js.map +1 -1
  98. package/build/commonjs/hooks/useCollapsibleAppBar.js +11 -2
  99. package/build/commonjs/hooks/useCollapsibleAppBar.js.map +1 -1
  100. package/build/commonjs/index.js +84 -0
  101. package/build/commonjs/index.js.map +1 -1
  102. package/build/commonjs/internal/icons/Check.js +23 -0
  103. package/build/commonjs/internal/icons/Check.js.map +1 -0
  104. package/build/commonjs/internal/icons/CheckboxOn.js +23 -0
  105. package/build/commonjs/internal/icons/CheckboxOn.js.map +1 -0
  106. package/build/commonjs/internal/icons/index.js +16 -0
  107. package/build/commonjs/internal/icons/index.js.map +1 -1
  108. package/build/commonjs/styles/createFontStyle.js.map +1 -1
  109. package/build/commonjs/utils/cloneElementSafely.js.map +1 -1
  110. package/build/commonjs/utils/createSvgIcon.js +15 -3
  111. package/build/commonjs/utils/createSvgIcon.js.map +1 -1
  112. package/build/commonjs/utils/index.js.map +1 -1
  113. package/build/module/Button/Button.js +53 -63
  114. package/build/module/Button/Button.js.map +1 -1
  115. package/build/module/Button/ButtonProps.js +3 -1
  116. package/build/module/Button/ButtonProps.js.map +1 -1
  117. package/build/module/Button/LegacyButton.js +127 -0
  118. package/build/module/Button/LegacyButton.js.map +1 -0
  119. package/build/module/Button/LegacyButtonProps.js +2 -0
  120. package/build/module/Button/LegacyButtonProps.js.map +1 -0
  121. package/build/module/Button/index.js +1 -1
  122. package/build/module/Button/index.js.map +1 -1
  123. package/build/module/Button/useVariantStyleMap.js +85 -0
  124. package/build/module/Button/useVariantStyleMap.js.map +1 -0
  125. package/build/module/ButtonSet/ButtonSet.js +34 -0
  126. package/build/module/ButtonSet/ButtonSet.js.map +1 -0
  127. package/build/module/ButtonSet/ButtonSetProps.js +3 -0
  128. package/build/module/ButtonSet/ButtonSetProps.js.map +1 -0
  129. package/build/module/ButtonSet/index.js +3 -0
  130. package/build/module/ButtonSet/index.js.map +1 -0
  131. package/build/module/ButtonSet/useVariantStyleMap.js +76 -0
  132. package/build/module/ButtonSet/useVariantStyleMap.js.map +1 -0
  133. package/build/module/Checkbox/Checkbox.js +32 -26
  134. package/build/module/Checkbox/Checkbox.js.map +1 -1
  135. package/build/module/Checkbox/CheckboxProps.js +1 -1
  136. package/build/module/Checkbox/CheckboxProps.js.map +1 -1
  137. package/build/module/Checkbox/LegacyCheckbox.js +52 -0
  138. package/build/module/Checkbox/LegacyCheckbox.js.map +1 -0
  139. package/build/module/Checkbox/LegacyCheckboxProps.js +2 -0
  140. package/build/module/Checkbox/LegacyCheckboxProps.js.map +1 -0
  141. package/build/module/Checkbox/index.js +1 -1
  142. package/build/module/Checkbox/index.js.map +1 -1
  143. package/build/module/Checkbox/useVariantStyleMap.js +59 -0
  144. package/build/module/Checkbox/useVariantStyleMap.js.map +1 -0
  145. package/build/module/CheckboxGroup/CheckboxGroup.js +34 -0
  146. package/build/module/CheckboxGroup/CheckboxGroup.js.map +1 -0
  147. package/build/module/CheckboxGroup/CheckboxGroupProps.js +2 -0
  148. package/build/module/CheckboxGroup/CheckboxGroupProps.js.map +1 -0
  149. package/build/module/CheckboxGroup/index.js +2 -0
  150. package/build/module/CheckboxGroup/index.js.map +1 -0
  151. package/build/module/IconButton/IconButton.js +36 -40
  152. package/build/module/IconButton/IconButton.js.map +1 -1
  153. package/build/module/IconButton/IconButtonProps.js +1 -1
  154. package/build/module/IconButton/IconButtonProps.js.map +1 -1
  155. package/build/module/IconButton/LegacyIconButton.js +73 -0
  156. package/build/module/IconButton/LegacyIconButton.js.map +1 -0
  157. package/build/module/IconButton/LegacyIconButtonProps.js +2 -0
  158. package/build/module/IconButton/LegacyIconButtonProps.js.map +1 -0
  159. package/build/module/IconButton/index.js +1 -1
  160. package/build/module/IconButton/index.js.map +1 -1
  161. package/build/module/Radio/LegacyRadio.js +63 -0
  162. package/build/module/Radio/LegacyRadio.js.map +1 -0
  163. package/build/module/Radio/LegacyRadioProps.js +2 -0
  164. package/build/module/Radio/LegacyRadioProps.js.map +1 -0
  165. package/build/module/Radio/Radio.js +35 -18
  166. package/build/module/Radio/Radio.js.map +1 -1
  167. package/build/module/Radio/RadioProps.js.map +1 -1
  168. package/build/module/Radio/index.js +1 -1
  169. package/build/module/Radio/index.js.map +1 -1
  170. package/build/module/RadioGroup/LegacyRadioGroup.js +18 -0
  171. package/build/module/RadioGroup/LegacyRadioGroup.js.map +1 -0
  172. package/build/module/RadioGroup/RadioGroup.js +21 -2
  173. package/build/module/RadioGroup/RadioGroup.js.map +1 -1
  174. package/build/module/RadioGroup/index.js +1 -1
  175. package/build/module/RadioGroup/index.js.map +1 -1
  176. package/build/module/ShadowView/ShadowView.js +23 -0
  177. package/build/module/ShadowView/ShadowView.js.map +1 -0
  178. package/build/module/ShadowView/ShadowView.native.js +23 -0
  179. package/build/module/ShadowView/ShadowView.native.js.map +1 -0
  180. package/build/module/ShadowView/ShadowViewProps.js +2 -0
  181. package/build/module/ShadowView/ShadowViewProps.js.map +1 -0
  182. package/build/module/ShadowView/index.js +2 -0
  183. package/build/module/ShadowView/index.js.map +1 -0
  184. package/build/module/SvgIcon/LegacySvgIcon.js +30 -0
  185. package/build/module/SvgIcon/LegacySvgIcon.js.map +1 -0
  186. package/build/module/SvgIcon/LegacySvgIconProps.js +2 -0
  187. package/build/module/SvgIcon/LegacySvgIconProps.js.map +1 -0
  188. package/build/module/SvgIcon/SvgIcon.js +15 -4
  189. package/build/module/SvgIcon/SvgIcon.js.map +1 -1
  190. package/build/module/SvgIcon/SvgIconProps.js +7 -1
  191. package/build/module/SvgIcon/SvgIconProps.js.map +1 -1
  192. package/build/module/SvgIcon/index.js +1 -1
  193. package/build/module/SvgIcon/index.js.map +1 -1
  194. package/build/module/Toggle/Toggle.js +90 -0
  195. package/build/module/Toggle/Toggle.js.map +1 -0
  196. package/build/module/Toggle/ToggleProps.js +2 -0
  197. package/build/module/Toggle/ToggleProps.js.map +1 -0
  198. package/build/module/Toggle/index.js +2 -0
  199. package/build/module/Toggle/index.js.map +1 -0
  200. package/build/module/Typography/LegacyTypography.js +126 -0
  201. package/build/module/Typography/LegacyTypography.js.map +1 -0
  202. package/build/module/Typography/LegacyTypographyProps.js +2 -0
  203. package/build/module/Typography/LegacyTypographyProps.js.map +1 -0
  204. package/build/module/Typography/Typography.js +15 -54
  205. package/build/module/Typography/Typography.js.map +1 -1
  206. package/build/module/Typography/TypographyProps.js +1 -1
  207. package/build/module/Typography/TypographyProps.js.map +1 -1
  208. package/build/module/Typography/index.js +1 -1
  209. package/build/module/Typography/index.js.map +1 -1
  210. package/build/module/hooks/useCollapsibleAppBar.js +12 -3
  211. package/build/module/hooks/useCollapsibleAppBar.js.map +1 -1
  212. package/build/module/index.js +8 -0
  213. package/build/module/index.js.map +1 -1
  214. package/build/module/internal/icons/Check.js +9 -0
  215. package/build/module/internal/icons/Check.js.map +1 -0
  216. package/build/module/internal/icons/CheckboxOn.js +9 -0
  217. package/build/module/internal/icons/CheckboxOn.js.map +1 -0
  218. package/build/module/internal/icons/index.js +2 -0
  219. package/build/module/internal/icons/index.js.map +1 -1
  220. package/build/module/styles/createFontStyle.js.map +1 -1
  221. package/build/module/utils/cloneElementSafely.js.map +1 -1
  222. package/build/module/utils/createSvgIcon.js +14 -3
  223. package/build/module/utils/createSvgIcon.js.map +1 -1
  224. package/build/module/utils/index.js.map +1 -1
  225. package/build/typescript/Button/ButtonProps.d.ts +13 -11
  226. package/build/typescript/Button/LegacyButton.d.ts +3 -0
  227. package/build/typescript/Button/LegacyButtonProps.d.ts +51 -0
  228. package/build/typescript/Button/index.d.ts +2 -2
  229. package/build/typescript/Button/useVariantStyleMap.d.ts +9 -0
  230. package/build/typescript/ButtonSet/ButtonSet.d.ts +3 -0
  231. package/build/typescript/ButtonSet/ButtonSetProps.d.ts +20 -0
  232. package/build/typescript/ButtonSet/index.d.ts +3 -0
  233. package/build/typescript/ButtonSet/useVariantStyleMap.d.ts +10 -0
  234. package/build/typescript/Checkbox/CheckboxProps.d.ts +10 -14
  235. package/build/typescript/Checkbox/LegacyCheckbox.d.ts +3 -0
  236. package/build/typescript/Checkbox/LegacyCheckboxProps.d.ts +36 -0
  237. package/build/typescript/Checkbox/index.d.ts +2 -2
  238. package/build/typescript/Checkbox/useVariantStyleMap.d.ts +9 -0
  239. package/build/typescript/CheckboxGroup/CheckboxGroup.d.ts +3 -0
  240. package/build/typescript/CheckboxGroup/CheckboxGroupProps.d.ts +11 -0
  241. package/build/typescript/CheckboxGroup/index.d.ts +2 -0
  242. package/build/typescript/IconButton/IconButtonProps.d.ts +7 -10
  243. package/build/typescript/IconButton/LegacyIconButton.d.ts +3 -0
  244. package/build/typescript/IconButton/LegacyIconButtonProps.d.ts +26 -0
  245. package/build/typescript/IconButton/index.d.ts +2 -2
  246. package/build/typescript/Radio/LegacyRadio.d.ts +3 -0
  247. package/build/typescript/Radio/LegacyRadioProps.d.ts +43 -0
  248. package/build/typescript/Radio/RadioProps.d.ts +9 -14
  249. package/build/typescript/Radio/index.d.ts +2 -2
  250. package/build/typescript/RadioGroup/LegacyRadioGroup.d.ts +3 -0
  251. package/build/typescript/RadioGroup/index.d.ts +1 -1
  252. package/build/typescript/ShadowView/ShadowView.d.ts +3 -0
  253. package/build/typescript/ShadowView/ShadowView.native.d.ts +3 -0
  254. package/build/typescript/ShadowView/ShadowViewProps.d.ts +11 -0
  255. package/build/typescript/ShadowView/index.d.ts +2 -0
  256. package/build/typescript/SvgIcon/LegacySvgIcon.d.ts +3 -0
  257. package/build/typescript/SvgIcon/LegacySvgIconProps.d.ts +35 -0
  258. package/build/typescript/SvgIcon/SvgIconProps.d.ts +17 -6
  259. package/build/typescript/SvgIcon/index.d.ts +2 -2
  260. package/build/typescript/Toggle/Toggle.d.ts +3 -0
  261. package/build/typescript/Toggle/ToggleProps.d.ts +19 -0
  262. package/build/typescript/Toggle/index.d.ts +2 -0
  263. package/build/typescript/Typography/LegacyTypography.d.ts +5 -0
  264. package/build/typescript/Typography/LegacyTypographyProps.d.ts +81 -0
  265. package/build/typescript/Typography/Typography.d.ts +1 -1
  266. package/build/typescript/Typography/TypographyProps.d.ts +12 -9
  267. package/build/typescript/Typography/index.d.ts +2 -2
  268. package/build/typescript/hooks/useCollapsibleAppBar.d.ts +1 -0
  269. package/build/typescript/index.d.ts +8 -0
  270. package/build/typescript/internal/icons/Check.d.ts +8 -0
  271. package/build/typescript/internal/icons/Checkbox.d.ts +2 -124
  272. package/build/typescript/internal/icons/CheckboxChecked.d.ts +2 -124
  273. package/build/typescript/internal/icons/CheckboxOn.d.ts +8 -0
  274. package/build/typescript/internal/icons/ChevronDown.d.ts +2 -124
  275. package/build/typescript/internal/icons/ChevronLeft.d.ts +2 -124
  276. package/build/typescript/internal/icons/ChevronRight.d.ts +2 -124
  277. package/build/typescript/internal/icons/Close.d.ts +2 -124
  278. package/build/typescript/internal/icons/Radio.d.ts +2 -124
  279. package/build/typescript/internal/icons/RadioChecked.d.ts +2 -124
  280. package/build/typescript/internal/icons/index.d.ts +2 -0
  281. package/build/typescript/styles/createFontStyle.d.ts +1 -1
  282. package/build/typescript/utils/cloneElementSafely.d.ts +1 -2
  283. package/build/typescript/utils/createSvgIcon.d.ts +8 -3
  284. package/build/typescript/utils/index.d.ts +1 -0
  285. package/package.json +2 -2
  286. package/src/Button/Button.tsx +53 -71
  287. package/src/Button/ButtonProps.ts +29 -12
  288. package/src/Button/LegacyButton.tsx +157 -0
  289. package/src/Button/LegacyButtonProps.ts +62 -0
  290. package/src/Button/index.ts +2 -2
  291. package/src/Button/useVariantStyleMap.ts +99 -0
  292. package/src/ButtonSet/ButtonSet.tsx +43 -0
  293. package/src/ButtonSet/ButtonSetProps.ts +27 -0
  294. package/src/ButtonSet/index.ts +3 -0
  295. package/src/ButtonSet/useVariantStyleMap.ts +84 -0
  296. package/src/Checkbox/Checkbox.tsx +48 -33
  297. package/src/Checkbox/CheckboxProps.ts +10 -15
  298. package/src/Checkbox/LegacyCheckbox.tsx +62 -0
  299. package/src/Checkbox/LegacyCheckboxProps.ts +42 -0
  300. package/src/Checkbox/index.ts +2 -2
  301. package/src/Checkbox/useVariantStyleMap.ts +71 -0
  302. package/src/CheckboxGroup/CheckboxGroup.tsx +47 -0
  303. package/src/CheckboxGroup/CheckboxGroupProps.ts +11 -0
  304. package/src/CheckboxGroup/index.ts +2 -0
  305. package/src/IconButton/IconButton.tsx +36 -54
  306. package/src/IconButton/IconButtonProps.ts +12 -12
  307. package/src/IconButton/LegacyIconButton.tsx +96 -0
  308. package/src/IconButton/LegacyIconButtonProps.ts +31 -0
  309. package/src/IconButton/index.ts +2 -2
  310. package/src/Radio/LegacyRadio.tsx +72 -0
  311. package/src/Radio/LegacyRadioProps.ts +50 -0
  312. package/src/Radio/Radio.tsx +47 -16
  313. package/src/Radio/RadioProps.ts +10 -16
  314. package/src/Radio/index.ts +2 -2
  315. package/src/RadioGroup/LegacyRadioGroup.tsx +20 -0
  316. package/src/RadioGroup/RadioGroup.tsx +31 -4
  317. package/src/RadioGroup/index.ts +2 -2
  318. package/src/ShadowView/ShadowView.native.tsx +37 -0
  319. package/src/ShadowView/ShadowView.tsx +33 -0
  320. package/src/ShadowView/ShadowViewProps.ts +11 -0
  321. package/src/ShadowView/index.ts +2 -0
  322. package/src/SvgIcon/LegacySvgIcon.tsx +36 -0
  323. package/src/SvgIcon/LegacySvgIconProps.ts +41 -0
  324. package/src/SvgIcon/SvgIcon.tsx +19 -5
  325. package/src/SvgIcon/SvgIconProps.ts +33 -6
  326. package/src/SvgIcon/index.ts +2 -2
  327. package/src/Toggle/Toggle.tsx +113 -0
  328. package/src/Toggle/ToggleProps.ts +21 -0
  329. package/src/Toggle/index.ts +2 -0
  330. package/src/Typography/LegacyTypography.tsx +107 -0
  331. package/src/Typography/LegacyTypographyProps.ts +122 -0
  332. package/src/Typography/Typography.tsx +24 -30
  333. package/src/Typography/TypographyProps.ts +29 -34
  334. package/src/Typography/index.ts +2 -2
  335. package/src/hooks/useCollapsibleAppBar.ts +12 -2
  336. package/src/index.ts +12 -0
  337. package/src/internal/icons/Check.tsx +13 -0
  338. package/src/internal/icons/CheckboxOn.tsx +13 -0
  339. package/src/internal/icons/index.ts +2 -0
  340. package/src/styles/createFontStyle.ts +1 -1
  341. package/src/utils/cloneElementSafely.ts +1 -1
  342. package/src/utils/createSvgIcon.tsx +29 -6
  343. package/src/utils/index.ts +1 -0
@@ -0,0 +1,84 @@
1
+ import { useMemo } from 'react';
2
+ import type { FountainUiStyle } from '@fountain-ui/styles';
3
+ import { useTheme } from '@fountain-ui/styles';
4
+ import type ButtonProps from '../Button/ButtonProps';
5
+ import type { ButtonSetColor, ButtonSetVariant } from './ButtonSetProps';
6
+
7
+ type ButtonStyle = Partial<ButtonProps>;
8
+
9
+ type ButtonStyleMap = {
10
+ [color in ButtonSetColor]?: ButtonStyle[];
11
+ };
12
+
13
+ type VariantButtonStyleMap = {
14
+ [variant in ButtonSetVariant]: {
15
+ containerStyle: FountainUiStyle;
16
+ buttonStyleMap: ButtonStyleMap;
17
+ };
18
+ };
19
+
20
+ type UseVariantButtonStyleMapReturns = {
21
+ containerStyle: FountainUiStyle;
22
+ buttonStyleMap: ButtonStyle[];
23
+ };
24
+
25
+ export default function useVariantStyleMap(variant: ButtonSetVariant, color: ButtonSetColor): UseVariantButtonStyleMapReturns {
26
+ const theme = useTheme();
27
+
28
+ return useMemo(() => {
29
+ const variantStyleMap: VariantButtonStyleMap = {
30
+ horizontal: {
31
+ containerStyle: {
32
+ flexDirection: 'row',
33
+ gap: theme.spacing(2),
34
+ paddingVertical: theme.spacing(2),
35
+ },
36
+ buttonStyleMap: {
37
+ accent: [
38
+ { color: 'primary', variant: 'outlined' },
39
+ { color: 'accent', variant: 'solid' },
40
+ ],
41
+ danger: [
42
+ { color: 'primary', variant: 'outlined' },
43
+ { color: 'danger', variant: 'solid' },
44
+ ],
45
+ },
46
+ },
47
+ vertical: {
48
+ containerStyle: {
49
+ flexDirection: 'column',
50
+ gap: theme.spacing(2.5),
51
+ paddingTop: theme.spacing(2),
52
+ },
53
+ buttonStyleMap: {
54
+ accent: [
55
+ { color: 'accent', variant: 'solid' },
56
+ { color: 'secondary', variant: 'text' },
57
+ ],
58
+ danger: [
59
+ { color: 'danger', variant: 'solid' },
60
+ { color: 'secondary', variant: 'text' },
61
+ ],
62
+ warning: [
63
+ { color: 'primary', variant: 'solid' },
64
+ { color: 'danger', variant: 'text' },
65
+ ],
66
+ },
67
+ },
68
+ };
69
+
70
+ const {
71
+ containerStyle,
72
+ buttonStyleMap,
73
+ } = variantStyleMap[variant];
74
+
75
+ if (process.env.NODE_ENV !== 'production' && buttonStyleMap[color] === undefined) {
76
+ console.warn('The selected color is not supported for the chosen variant.');
77
+ }
78
+
79
+ return {
80
+ containerStyle,
81
+ buttonStyleMap: buttonStyleMap[color] ?? [],
82
+ };
83
+ }, [theme, variant, color]);
84
+ }
@@ -1,39 +1,41 @@
1
1
  import React from 'react';
2
- import { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';
3
- import type CheckboxProps from './CheckboxProps';
2
+ import { Text, View } from 'react-native';
4
3
  import ButtonBase from '../ButtonBase';
5
- import { Checkbox as CheckboxIcon, CheckboxChecked as CheckboxCheckedIcon } from '../internal/icons';
6
- import { css } from '../styles';
7
-
8
- type CheckboxStyle = NamedStylesStringUnion<'root'>;
9
-
10
- const useStyles: UseStyles<CheckboxStyle> = function (): CheckboxStyle {
11
- return {
12
- root: {
13
- width: 24,
14
- height: 24,
15
- justifyContent: 'center',
16
- alignItems: 'center',
17
- },
18
- };
19
- };
4
+ import { CheckboxOn as CheckboxOnIcon } from '../internal/icons';
5
+ import Row from '../Row';
6
+ import { createFontStyle, css, useTheme } from '../styles';
7
+ import type CheckboxProps from './CheckboxProps';
8
+ import type { CheckboxVariant } from './CheckboxProps';
9
+ import useVariantStyleMap from './useVariantStyleMap';
20
10
 
21
11
  export default function Checkbox(props: CheckboxProps) {
22
12
  const {
23
13
  checked = false,
24
- checkedIcon: checkedIconProp,
25
- color = 'primary',
14
+ children,
26
15
  disabled = false,
27
- icon: iconProp,
28
16
  onChange,
29
- style,
17
+ style: styleProp,
18
+ variant = 'square' as CheckboxVariant,
30
19
  ...otherProps
31
20
  } = props;
32
21
 
33
- const styles = useStyles();
22
+ const theme = useTheme();
34
23
 
35
- const uncheckedIcon = iconProp ? iconProp : <CheckboxIcon color={color}/>;
36
- const checkedIcon = checkedIconProp ? checkedIconProp : <CheckboxCheckedIcon color={color}/>;
24
+ const {
25
+ checkboxStyle,
26
+ containerStyle,
27
+ iconColor,
28
+ } = useVariantStyleMap(variant, checked);
29
+
30
+ const rootStyle = css([
31
+ children ? containerStyle : undefined,
32
+ styleProp,
33
+ ]);
34
+
35
+ const fontStyle = createFontStyle(theme, {
36
+ // TODO: apply typo select.
37
+ color: theme.palette.text.strong,
38
+ });
37
39
 
38
40
  const handlePress = () => {
39
41
  if (onChange) {
@@ -41,11 +43,6 @@ export default function Checkbox(props: CheckboxProps) {
41
43
  }
42
44
  };
43
45
 
44
- const rootStyle = css([
45
- styles.root,
46
- style,
47
- ]);
48
-
49
46
  return (
50
47
  <ButtonBase
51
48
  disabled={disabled}
@@ -53,10 +50,28 @@ export default function Checkbox(props: CheckboxProps) {
53
50
  style={rootStyle}
54
51
  {...otherProps}
55
52
  >
56
- {checked
57
- ? checkedIcon
58
- : uncheckedIcon
59
- }
53
+ <View style={checkboxStyle}>
54
+ {checked ? (
55
+ <CheckboxOnIcon
56
+ fill={iconColor}
57
+ enableV2={true}
58
+ height={7.5}
59
+ width={11}
60
+ />
61
+ ) : null}
62
+ </View>
63
+
64
+ {children ? (
65
+ <Row
66
+ flexGrow={1}
67
+ flexShrink={1}
68
+ >
69
+ <Text
70
+ children={children}
71
+ style={fontStyle}
72
+ />
73
+ </Row>
74
+ ) : null}
60
75
  </ButtonBase>
61
76
  );
62
77
  };
@@ -1,10 +1,10 @@
1
- import React from 'react';
2
- import type { CommonComponentColor, OverridableComponentProps } from '../types';
1
+ import type { OverridableComponentProps } from '../types';
3
2
  import type { ButtonBaseProps } from '../ButtonBase';
4
3
 
5
4
  type BaseProps = Omit<ButtonBaseProps, 'onPress' | 'children'>;
6
5
 
7
- export type CheckboxColor = CommonComponentColor;
6
+ export const checkboxVariants = ['square', 'round'] as const;
7
+ export type CheckboxVariant = typeof checkboxVariants[number];
8
8
 
9
9
  export default interface CheckboxProps extends OverridableComponentProps<BaseProps, {
10
10
  /**
@@ -14,15 +14,9 @@ export default interface CheckboxProps extends OverridableComponentProps<BasePro
14
14
  checked?: boolean;
15
15
 
16
16
  /**
17
- * The checked Icon which is replaced.
17
+ * Content which is sharing pressable next to checkbox.
18
18
  */
19
- checkedIcon?: React.ReactElement;
20
-
21
- /**
22
- * The color of the component. It supports those theme colors that make sense for this component.
23
- * @default 'primary'
24
- */
25
- color?: CheckboxColor;
19
+ children?: string;
26
20
 
27
21
  /**
28
22
  * If `true`, the checkbox is disabled.
@@ -31,12 +25,13 @@ export default interface CheckboxProps extends OverridableComponentProps<BasePro
31
25
  disabled?: boolean;
32
26
 
33
27
  /**
34
- * The unchecked Icon which is replaced.
28
+ * Callback fired when the state is changed.
35
29
  */
36
- icon?: React.ReactElement;
30
+ onChange?: (newChecked: boolean) => void;
37
31
 
38
32
  /**
39
- * Callback fired when the state is changed.
33
+ * Determines the shape and style of the checkbox.
34
+ * @default 'square'
40
35
  */
41
- onChange?: (newChecked: boolean) => void;
36
+ variant?: CheckboxVariant
42
37
  }> {}
@@ -0,0 +1,62 @@
1
+ import React from 'react';
2
+ import { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';
3
+ import ButtonBase from '../ButtonBase';
4
+ import { Checkbox as CheckboxIcon, CheckboxChecked as CheckboxCheckedIcon } from '../internal/icons';
5
+ import { css } from '../styles';
6
+ import type CheckboxProps from './LegacyCheckboxProps';
7
+
8
+ type CheckboxStyle = NamedStylesStringUnion<'root'>;
9
+
10
+ const useStyles: UseStyles<CheckboxStyle> = function (): CheckboxStyle {
11
+ return {
12
+ root: {
13
+ width: 24,
14
+ height: 24,
15
+ justifyContent: 'center',
16
+ alignItems: 'center',
17
+ },
18
+ };
19
+ };
20
+
21
+ export default function Checkbox(props: CheckboxProps) {
22
+ const {
23
+ checked = false,
24
+ checkedIcon: checkedIconProp,
25
+ color = 'primary',
26
+ disabled = false,
27
+ icon: iconProp,
28
+ onChange,
29
+ style,
30
+ ...otherProps
31
+ } = props;
32
+
33
+ const styles = useStyles();
34
+
35
+ const uncheckedIcon = iconProp ? iconProp : <CheckboxIcon color={color}/>;
36
+ const checkedIcon = checkedIconProp ? checkedIconProp : <CheckboxCheckedIcon color={color}/>;
37
+
38
+ const handlePress = () => {
39
+ if (onChange) {
40
+ onChange(!checked);
41
+ }
42
+ };
43
+
44
+ const rootStyle = css([
45
+ styles.root,
46
+ style,
47
+ ]);
48
+
49
+ return (
50
+ <ButtonBase
51
+ disabled={disabled}
52
+ onPress={handlePress}
53
+ style={rootStyle}
54
+ {...otherProps}
55
+ >
56
+ {checked
57
+ ? checkedIcon
58
+ : uncheckedIcon
59
+ }
60
+ </ButtonBase>
61
+ );
62
+ };
@@ -0,0 +1,42 @@
1
+ import React from 'react';
2
+ import type { CommonComponentColor, OverridableComponentProps } from '../types';
3
+ import type { ButtonBaseProps } from '../ButtonBase';
4
+
5
+ type BaseProps = Omit<ButtonBaseProps, 'onPress' | 'children'>;
6
+
7
+ export type CheckboxColor = CommonComponentColor;
8
+
9
+ export default interface CheckboxProps extends OverridableComponentProps<BaseProps, {
10
+ /**
11
+ * If `true`, the component is checked.
12
+ * @default false
13
+ */
14
+ checked?: boolean;
15
+
16
+ /**
17
+ * The checked Icon which is replaced.
18
+ */
19
+ checkedIcon?: React.ReactElement;
20
+
21
+ /**
22
+ * The color of the component. It supports those theme colors that make sense for this component.
23
+ * @default 'primary'
24
+ */
25
+ color?: CheckboxColor;
26
+
27
+ /**
28
+ * If `true`, the checkbox is disabled.
29
+ * @default false
30
+ */
31
+ disabled?: boolean;
32
+
33
+ /**
34
+ * The unchecked Icon which is replaced.
35
+ */
36
+ icon?: React.ReactElement;
37
+
38
+ /**
39
+ * Callback fired when the state is changed.
40
+ */
41
+ onChange?: (newChecked: boolean) => void;
42
+ }> {}
@@ -1,2 +1,2 @@
1
- export { default } from './Checkbox';
2
- export type { default as CheckboxProps } from './CheckboxProps';
1
+ export { default } from './LegacyCheckbox';
2
+ export type { default as CheckboxProps } from './LegacyCheckboxProps';
@@ -0,0 +1,71 @@
1
+ import { StyleSheet } from 'react-native';
2
+ import { commonColors, FountainUiStyle } from '@fountain-ui/styles';
3
+ import { css, useTheme } from '../styles';
4
+ import type { CheckboxVariant } from './CheckboxProps';
5
+
6
+ const styles = StyleSheet.create({
7
+ checkbox: {
8
+ alignItems: 'center',
9
+ borderWidth: 1,
10
+ justifyContent: 'center',
11
+ },
12
+ });
13
+
14
+ type useVariantStyleMapReturns = {
15
+ checkboxStyle?: FountainUiStyle;
16
+ containerStyle?: FountainUiStyle;
17
+ iconColor?: string;
18
+ };
19
+
20
+ export default function useVariantStyleMap(variant: CheckboxVariant, checked: boolean): useVariantStyleMapReturns {
21
+ const theme = useTheme();
22
+
23
+ switch (variant) {
24
+ case 'square':
25
+ return {
26
+ checkboxStyle: css([
27
+ styles.checkbox,
28
+ {
29
+ borderColor: theme.palette.border.base,
30
+ borderRadius: theme.shape.radius.xs,
31
+ height: 18,
32
+ width: 18,
33
+ ...(checked ? {
34
+ backgroundColor: theme.palette.fill.base,
35
+ borderColor: theme.palette.fill.base,
36
+ } : {}),
37
+ },
38
+ ]),
39
+ containerStyle: {
40
+ alignItems: 'center',
41
+ flexDirection: 'row',
42
+ gap: theme.spacing(3),
43
+ },
44
+ iconColor: theme.palette.fill.baseAlt,
45
+ };
46
+ case 'round':
47
+ return {
48
+ checkboxStyle: css([
49
+ styles.checkbox,
50
+ {
51
+ borderColor: theme.palette.border.base,
52
+ borderRadius: theme.shape.radius.full,
53
+ height: 20,
54
+ width: 20,
55
+ ...(checked ? {
56
+ backgroundColor: theme.palette.fill.accent,
57
+ borderColor: theme.palette.fill.accent,
58
+ } : {}),
59
+ },
60
+ ]),
61
+ containerStyle: {
62
+ alignItems: 'center',
63
+ flexDirection: 'row-reverse',
64
+ gap: theme.spacing(8),
65
+ },
66
+ iconColor: commonColors.static.strongInverse,
67
+ };
68
+ default:
69
+ return {};
70
+ }
71
+ }
@@ -0,0 +1,47 @@
1
+ import React, { Children } from 'react';
2
+ import { View } from 'react-native';
3
+ import { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';
4
+ import type { CheckboxVariant } from '../Checkbox/CheckboxProps';
5
+ import { useTheme } from '../styles';
6
+ import type { FalsyReactElement } from '../utils';
7
+ import { cloneElementSafely } from '../utils';
8
+ import type CheckboxGroupProps from './CheckboxGroupProps';
9
+
10
+ type CheckboxItemStyles = NamedStylesStringUnion<CheckboxVariant>;
11
+
12
+ const useStyles: UseStyles<CheckboxItemStyles> = function (): CheckboxItemStyles {
13
+ const theme = useTheme();
14
+
15
+ return {
16
+ square: {
17
+ paddingVertical: theme.spacing(2),
18
+ },
19
+ round: {
20
+ borderBottomColor: theme.palette.border.weak,
21
+ borderBottomWidth: 0.5,
22
+ paddingVertical: theme.spacing(3.5),
23
+ },
24
+ };
25
+ };
26
+
27
+ export default function CheckboxGroup(props: CheckboxGroupProps) {
28
+ const {
29
+ children,
30
+ variant = 'square' as CheckboxVariant,
31
+ ...otherProps
32
+ } = props;
33
+
34
+ const styles = useStyles();
35
+
36
+ const content = Children.map(children, (child) => (
37
+ <View style={styles[variant]}>
38
+ {cloneElementSafely(child as FalsyReactElement, { variant })}
39
+ </View>
40
+ ));
41
+
42
+ return (
43
+ <View {...otherProps}>
44
+ {content}
45
+ </View>
46
+ );
47
+ }
@@ -0,0 +1,11 @@
1
+ import type { ViewProps } from 'react-native';
2
+ import type { OverridableComponentProps } from '../types';
3
+ import type { CheckboxVariant } from '../Checkbox/CheckboxProps';
4
+
5
+ export default interface CheckboxGroupProps extends OverridableComponentProps<ViewProps, {
6
+ /**
7
+ * Determines the shape and style of the checkbox.
8
+ * @default 'square'
9
+ */
10
+ variant?: CheckboxVariant;
11
+ }> {}
@@ -0,0 +1,2 @@
1
+ export { default } from './CheckboxGroup';
2
+ export type { default as CheckboxGroupProps } from './CheckboxGroupProps';
@@ -1,79 +1,68 @@
1
1
  import React from 'react';
2
- import { Text } from 'react-native';
3
- import { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';
2
+ import { StyleSheet } from 'react-native';
3
+ import { commonColors, Theme } from '@fountain-ui/styles';
4
4
  import ButtonBase from '../ButtonBase';
5
- import { createFontStyle, css, useTheme } from '../styles';
5
+ import { css, useTheme } from '../styles';
6
+ import type { SvgIconSize } from '../SvgIcon/SvgIconProps';
6
7
  import { cloneElementSafely } from '../utils';
7
8
  import type IconButtonProps from './IconButtonProps';
8
- import type { IconButtonSize } from './IconButtonProps';
9
+ import type { IconButtonColor } from './IconButtonProps';
9
10
 
10
- type IconButtonStyles = NamedStylesStringUnion<'root'>;
11
+ const styles = StyleSheet.create({
12
+ root: {
13
+ alignItems: 'center',
14
+ height: 32,
15
+ justifyContent: 'center',
16
+ width: 32,
17
+ },
18
+ });
11
19
 
12
- type IconSizes = { [n in IconButtonSize]: number };
13
-
14
- const iconSizes: IconSizes = {
15
- tiny: 16,
16
- small: 20,
17
- medium: 24,
18
- large: 28,
19
- };
20
-
21
- const useStyles: UseStyles<IconButtonStyles> = function (): IconButtonStyles {
22
- const theme = useTheme();
23
-
24
- return {
25
- root: {
26
- flexDirection: 'column',
27
- justifyContent: 'center',
28
- alignItems: 'center',
29
- padding: theme.spacing(1),
30
- },
31
- };
32
- };
20
+ function selectIconColor(theme: Theme, color: IconButtonColor) {
21
+ switch (color) {
22
+ default:
23
+ case 'strong':
24
+ return theme.palette.icon.strong;
25
+ case 'base':
26
+ return theme.palette.icon.base;
27
+ case 'staticStrongInverse':
28
+ return commonColors.static.strongInverse;
29
+ case 'disabled':
30
+ return theme.palette.status.disabled;
31
+ }
32
+ }
33
33
 
34
34
  export default function IconButton(props: IconButtonProps) {
35
35
  const {
36
36
  children,
37
- color = 'primary',
37
+ color = 'strong' as IconButtonColor,
38
38
  disabled = false,
39
- label,
40
39
  onPress,
41
- size = 'medium',
40
+ iconSize = 'medium' as SvgIconSize,
42
41
  style,
43
42
  ...otherProps
44
43
  } = props;
45
44
 
46
45
  const theme = useTheme();
47
- const styles = useStyles();
48
46
 
49
- const icon = cloneElementSafely(children, {
50
- width: iconSizes[size],
51
- height: iconSizes[size],
52
- color: color,
53
- });
47
+ const iconColor = selectIconColor(theme, color);
54
48
 
55
- const fontStyle = createFontStyle(theme, {
56
- selector: (typo) => typo.caption1,
57
- color: theme.palette[color].main,
49
+ const icon = cloneElementSafely(children, {
50
+ enableV2: true,
51
+ fill: iconColor,
52
+ size: iconSize,
58
53
  });
59
54
 
60
- const labelStyle = css([
61
- fontStyle,
62
- ]);
63
-
64
55
  const rootStyle = css([
65
56
  styles.root,
66
57
  style,
67
58
  ]);
68
59
 
69
- const handlePress = async () => {
60
+ const handlePress = () => {
70
61
  if (disabled) {
71
62
  return;
72
63
  }
73
- if (onPress) {
74
- onPress();
75
- return;
76
- }
64
+
65
+ onPress?.();
77
66
  };
78
67
 
79
68
  return (
@@ -84,13 +73,6 @@ export default function IconButton(props: IconButtonProps) {
84
73
  {...otherProps}
85
74
  >
86
75
  {icon}
87
-
88
- {label ? (
89
- <Text
90
- children={label}
91
- style={labelStyle}
92
- />
93
- ) : null}
94
76
  </ButtonBase>
95
77
  );
96
78
  };
@@ -1,10 +1,15 @@
1
1
  import React from 'react';
2
2
  import type { ButtonBaseProps } from '../ButtonBase';
3
- import type { CommonComponentColor, OverridableComponentProps } from '../types';
3
+ import type { SvgIconSize } from '../SvgIcon/SvgIconProps';
4
+ import type { OverridableComponentProps } from '../types';
4
5
 
5
- export type IconButtonColor = CommonComponentColor;
6
-
7
- export type IconButtonSize = 'medium' | 'large' | 'small' | 'tiny';
6
+ export const iconButtonColors = [
7
+ 'strong',
8
+ 'base',
9
+ 'staticStrongInverse',
10
+ 'disabled',
11
+ ] as const;
12
+ export type IconButtonColor = typeof iconButtonColors[number];
8
13
 
9
14
  export default interface IconButtonProps extends OverridableComponentProps<ButtonBaseProps, {
10
15
  /**
@@ -14,18 +19,13 @@ export default interface IconButtonProps extends OverridableComponentProps<Butto
14
19
 
15
20
  /**
16
21
  * The color of the component. It supports those theme colors that make sense for this component.
17
- * @default 'primary'
22
+ * @default 'strong'
18
23
  */
19
24
  color?: IconButtonColor;
20
25
 
21
26
  /**
22
- * If present, this is typography displayed at the bottom of the icon.
23
- */
24
- label?: string;
25
-
26
- /**
27
- * The size of the button.
27
+ * Determines the size of the icon that goes inside the button.
28
28
  * @default 'medium'
29
29
  */
30
- size?: IconButtonSize;
30
+ iconSize?: SvgIconSize;
31
31
  }> {}