@jobber/components-native 0.75.3-POC-fixing-b57471f.136 → 0.75.3-POC-fixing-ffcd368.137

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 (353) hide show
  1. package/dist/package.json +4 -3
  2. package/dist/src/ActionItem/ActionItem.js +2 -1
  3. package/dist/src/ActionItem/ActionItem.style.js +23 -22
  4. package/dist/src/ActionItem/ActionItemGroup.js +2 -1
  5. package/dist/src/ActionItem/components/ActionItemContainer.js +4 -2
  6. package/dist/src/ActionItem/components/ActionItemContainer.style.js +12 -11
  7. package/dist/src/ActivityIndicator/ActivityIndicator.js +2 -1
  8. package/dist/src/AtlantisThemeContext/AtlantisThemeContext.js +32 -0
  9. package/dist/src/AtlantisThemeContext/buildThemedStyles.js +38 -0
  10. package/dist/src/AtlantisThemeContext/index.js +2 -0
  11. package/dist/src/AtlantisThemeContext/types.js +1 -0
  12. package/dist/src/AutoLink/AutoLink.js +2 -1
  13. package/dist/src/Banner/Banner.js +4 -3
  14. package/dist/src/Banner/Banner.style.js +34 -33
  15. package/dist/src/Banner/components/BannerIcon/BannerIcon.js +2 -1
  16. package/dist/src/Banner/components/BannerIcon/BannerIcon.style.js +17 -16
  17. package/dist/src/BottomSheet/BottomSheet.js +8 -7
  18. package/dist/src/BottomSheet/BottomSheet.style.js +27 -25
  19. package/dist/src/BottomSheet/components/BottomSheetOption/BottomSheetOption.js +2 -1
  20. package/dist/src/BottomSheet/components/BottomSheetOption/BottomSheetOption.styles.js +18 -17
  21. package/dist/src/Button/Button.js +13 -8
  22. package/dist/src/Button/Button.style.js +97 -95
  23. package/dist/src/ButtonGroup/ButtonGroup.js +2 -1
  24. package/dist/src/ButtonGroup/ButtonGroup.style.js +18 -17
  25. package/dist/src/Card/Card.js +4 -3
  26. package/dist/src/Card/Card.style.js +31 -30
  27. package/dist/src/Card/components/InternalCardHeader.js +2 -1
  28. package/dist/src/Card/components/InternalCardHeader.style.js +16 -15
  29. package/dist/src/Checkbox/Checkbox.js +4 -2
  30. package/dist/src/Checkbox/Checkbox.style.js +30 -29
  31. package/dist/src/Checkbox/CheckboxGroup.js +2 -1
  32. package/dist/src/Checkbox/CheckboxGroup.style.js +14 -13
  33. package/dist/src/Chip/Chip.js +6 -4
  34. package/dist/src/Chip/Chip.style.js +32 -31
  35. package/dist/src/Content/Content.js +14 -9
  36. package/dist/src/Content/ContentHorizontal.style.js +30 -29
  37. package/dist/src/Content/ContentSpaceAround.style.js +22 -21
  38. package/dist/src/Content/ContentVertical.style.js +30 -29
  39. package/dist/src/ContentOverlay/ContentOverlay.js +4 -2
  40. package/dist/src/ContentOverlay/ContentOverlay.style.js +55 -54
  41. package/dist/src/Disclosure/Disclosure.js +10 -7
  42. package/dist/src/Disclosure/Disclosure.style.js +21 -20
  43. package/dist/src/Divider/Divider.js +4 -2
  44. package/dist/src/Divider/DividerHorizontal.style.js +23 -22
  45. package/dist/src/Divider/DividerVertical.style.js +26 -25
  46. package/dist/src/EmptyState/EmptyState.js +2 -1
  47. package/dist/src/EmptyState/EmptyState.style.js +8 -7
  48. package/dist/src/ErrorMessageWrapper/ErrorMessageWrapper.js +6 -5
  49. package/dist/src/ErrorMessageWrapper/ErrorMessageWrapper.style.js +31 -30
  50. package/dist/src/Flex/Flex.styles.js +2 -2
  51. package/dist/src/Form/Form.js +2 -1
  52. package/dist/src/Form/Form.style.js +33 -32
  53. package/dist/src/Form/components/FormActionBar/FormActionBar.js +2 -1
  54. package/dist/src/Form/components/FormActionBar/FormActionBar.style.js +5 -4
  55. package/dist/src/Form/components/FormBody/FormBody.js +2 -1
  56. package/dist/src/Form/components/FormBody/FormBody.style.js +26 -25
  57. package/dist/src/Form/components/FormMask/FormMask.js +2 -1
  58. package/dist/src/Form/components/FormMask/FormMask.style.js +15 -14
  59. package/dist/src/Form/components/FormMessage/components/InternalFormMessage/InternalFormMessage.js +2 -1
  60. package/dist/src/Form/components/FormMessage/components/InternalFormMessage/InternalFormMessage.style.js +17 -16
  61. package/dist/src/FormatFile/FormatFile.js +2 -1
  62. package/dist/src/FormatFile/FormatFile.style.js +18 -15
  63. package/dist/src/FormatFile/components/ErrorIcon/ErrorIcon.js +2 -1
  64. package/dist/src/FormatFile/components/ErrorIcon/ErrorIcon.style.js +10 -9
  65. package/dist/src/FormatFile/components/FileView/FileView.js +2 -1
  66. package/dist/src/FormatFile/components/FileView/FileView.style.js +64 -63
  67. package/dist/src/FormatFile/components/MediaView/MediaView.js +8 -7
  68. package/dist/src/FormatFile/components/MediaView/MediaView.style.js +27 -26
  69. package/dist/src/FormatFile/components/ProgressBar/ProgressBar.js +2 -1
  70. package/dist/src/FormatFile/components/ProgressBar/ProgressBar.style.js +15 -14
  71. package/dist/src/Glimmer/Glimmer.js +6 -3
  72. package/dist/src/Glimmer/Glimmer.shape.style.js +16 -15
  73. package/dist/src/Glimmer/Glimmer.size.style.js +9 -8
  74. package/dist/src/Glimmer/Glimmer.style.js +21 -19
  75. package/dist/src/IconButton/IconButton.js +2 -1
  76. package/dist/src/IconButton/IconButton.style.js +10 -9
  77. package/dist/src/InputFieldWrapper/CommonInputStyles.style.js +47 -33
  78. package/dist/src/InputFieldWrapper/InputFieldWrapper.js +4 -2
  79. package/dist/src/InputFieldWrapper/InputFieldWrapper.style.js +121 -116
  80. package/dist/src/InputFieldWrapper/components/ClearAction/ClearAction.js +2 -1
  81. package/dist/src/InputFieldWrapper/components/ClearAction/ClearAction.style.js +25 -24
  82. package/dist/src/InputFieldWrapper/components/Prefix/Prefix.js +7 -3
  83. package/dist/src/InputFieldWrapper/components/Suffix/Suffix.js +7 -3
  84. package/dist/src/InputFieldWrapper/index.js +1 -1
  85. package/dist/src/InputPressable/InputPressable.js +4 -2
  86. package/dist/src/InputPressable/InputPressable.style.js +24 -22
  87. package/dist/src/InputText/InputText.js +4 -2
  88. package/dist/src/InputText/InputText.style.js +23 -22
  89. package/dist/src/InputText/context/InputAccessoriesProvider.js +2 -1
  90. package/dist/src/InputText/context/InputAccessoriesProvider.style.js +21 -19
  91. package/dist/src/Menu/Menu.js +6 -4
  92. package/dist/src/Menu/Menu.style.js +5 -4
  93. package/dist/src/Menu/components/MenuOption/MenuOption.js +4 -2
  94. package/dist/src/Menu/components/MenuOption/MenuOption.style.js +10 -9
  95. package/dist/src/Menu/components/Overlay/Overlay.js +2 -1
  96. package/dist/src/Menu/components/Overlay/Overlay.style.js +5 -3
  97. package/dist/src/Menu/utils.js +1 -2
  98. package/dist/src/ProgressBar/ProgressBar.js +6 -4
  99. package/dist/src/ProgressBar/ProgressBar.style.js +36 -35
  100. package/dist/src/ProgressBar/ProgressBarInner.js +2 -1
  101. package/dist/src/ProgressBar/ProgressBarStepped.js +7 -2
  102. package/dist/src/Select/Select.js +2 -1
  103. package/dist/src/Select/Select.style.js +48 -45
  104. package/dist/src/Select/components/SelectDefaultPicker/SelectDefaultPicker.js +2 -1
  105. package/dist/src/Select/components/SelectPressable/SelectPressable.js +2 -1
  106. package/dist/src/Select/components/SelectPressable/SelectPressable.style.js +7 -6
  107. package/dist/src/StatusLabel/StatusLabel.js +6 -4
  108. package/dist/src/StatusLabel/StatusLabel.style.js +28 -28
  109. package/dist/src/Switch/Switch.js +2 -1
  110. package/dist/src/Switch/Switch.styles.js +20 -19
  111. package/dist/src/Switch/components/BaseSwitch/BaseSwitch.js +5 -4
  112. package/dist/src/Text/Text.js +2 -2
  113. package/dist/src/TextList/TextList.js +2 -1
  114. package/dist/src/TextList/TextList.style.js +16 -15
  115. package/dist/src/ThumbnailList/ThumbnailList.js +2 -1
  116. package/dist/src/ThumbnailList/ThumbnailList.style.js +49 -48
  117. package/dist/src/Toast/Toast.js +9 -6
  118. package/dist/src/Toast/Toast.styles.js +30 -29
  119. package/dist/src/Typography/Typography.js +18 -13
  120. package/dist/src/Typography/Typography.style.js +16 -21
  121. package/dist/src/Typography/index.js +1 -0
  122. package/dist/src/index.js +1 -0
  123. package/dist/src/utils/design/index.js +5 -0
  124. package/dist/src/utils/meta/meta.json +1 -0
  125. package/dist/tsconfig.tsbuildinfo +1 -1
  126. package/dist/types/src/ActionItem/ActionItem.style.d.ts +1 -1
  127. package/dist/types/src/ActionItem/components/ActionItemContainer.style.d.ts +1 -1
  128. package/dist/types/src/AtlantisThemeContext/AtlantisThemeContext.d.ts +4 -0
  129. package/dist/types/src/AtlantisThemeContext/buildThemedStyles.d.ts +32 -0
  130. package/dist/types/src/AtlantisThemeContext/index.d.ts +3 -0
  131. package/dist/types/src/AtlantisThemeContext/types.d.ts +27 -0
  132. package/dist/types/src/Banner/Banner.style.d.ts +1 -1
  133. package/dist/types/src/Banner/components/BannerIcon/BannerIcon.style.d.ts +1 -1
  134. package/dist/types/src/BottomSheet/BottomSheet.style.d.ts +1 -1
  135. package/dist/types/src/BottomSheet/components/BottomSheetOption/BottomSheetOption.styles.d.ts +1 -1
  136. package/dist/types/src/Button/Button.d.ts +14 -1
  137. package/dist/types/src/Button/Button.style.d.ts +1 -1
  138. package/dist/types/src/ButtonGroup/ButtonGroup.style.d.ts +1 -1
  139. package/dist/types/src/Card/Card.style.d.ts +1 -1
  140. package/dist/types/src/Card/components/InternalCardHeader.style.d.ts +1 -1
  141. package/dist/types/src/Checkbox/Checkbox.style.d.ts +1 -1
  142. package/dist/types/src/Checkbox/CheckboxGroup.style.d.ts +1 -1
  143. package/dist/types/src/Chip/Chip.style.d.ts +1 -1
  144. package/dist/types/src/Content/Content.d.ts +12 -1
  145. package/dist/types/src/Content/ContentHorizontal.style.d.ts +1 -1
  146. package/dist/types/src/Content/ContentSpaceAround.style.d.ts +1 -1
  147. package/dist/types/src/Content/ContentVertical.style.d.ts +1 -1
  148. package/dist/types/src/ContentOverlay/ContentOverlay.style.d.ts +1 -1
  149. package/dist/types/src/Disclosure/Disclosure.style.d.ts +1 -1
  150. package/dist/types/src/Divider/DividerHorizontal.style.d.ts +1 -1
  151. package/dist/types/src/Divider/DividerVertical.style.d.ts +1 -1
  152. package/dist/types/src/EmptyState/EmptyState.style.d.ts +1 -1
  153. package/dist/types/src/ErrorMessageWrapper/ErrorMessageWrapper.style.d.ts +1 -1
  154. package/dist/types/src/Flex/Flex.styles.d.ts +1 -1
  155. package/dist/types/src/Form/Form.style.d.ts +1 -1
  156. package/dist/types/src/Form/components/FormActionBar/FormActionBar.style.d.ts +1 -1
  157. package/dist/types/src/Form/components/FormBody/FormBody.style.d.ts +1 -1
  158. package/dist/types/src/Form/components/FormMask/FormMask.style.d.ts +1 -1
  159. package/dist/types/src/Form/components/FormMessage/components/InternalFormMessage/InternalFormMessage.style.d.ts +1 -1
  160. package/dist/types/src/FormatFile/FormatFile.style.d.ts +2 -1
  161. package/dist/types/src/FormatFile/components/ErrorIcon/ErrorIcon.style.d.ts +1 -1
  162. package/dist/types/src/FormatFile/components/FileView/FileView.style.d.ts +1 -1
  163. package/dist/types/src/FormatFile/components/MediaView/MediaView.style.d.ts +1 -1
  164. package/dist/types/src/FormatFile/components/ProgressBar/ProgressBar.style.d.ts +1 -1
  165. package/dist/types/src/Glimmer/Glimmer.d.ts +6 -5
  166. package/dist/types/src/Glimmer/Glimmer.shape.style.d.ts +1 -1
  167. package/dist/types/src/Glimmer/Glimmer.size.style.d.ts +1 -1
  168. package/dist/types/src/Glimmer/Glimmer.style.d.ts +1 -1
  169. package/dist/types/src/IconButton/IconButton.style.d.ts +1 -1
  170. package/dist/types/src/InputFieldWrapper/CommonInputStyles.style.d.ts +10 -32
  171. package/dist/types/src/InputFieldWrapper/InputFieldWrapper.style.d.ts +2 -16
  172. package/dist/types/src/InputFieldWrapper/components/ClearAction/ClearAction.style.d.ts +1 -1
  173. package/dist/types/src/InputFieldWrapper/index.d.ts +1 -1
  174. package/dist/types/src/InputPressable/InputPressable.d.ts +12 -4
  175. package/dist/types/src/InputPressable/InputPressable.style.d.ts +1 -1
  176. package/dist/types/src/InputText/InputText.style.d.ts +1 -1
  177. package/dist/types/src/InputText/context/InputAccessoriesProvider.style.d.ts +1 -1
  178. package/dist/types/src/Menu/Menu.style.d.ts +1 -1
  179. package/dist/types/src/Menu/components/MenuOption/MenuOption.style.d.ts +1 -1
  180. package/dist/types/src/Menu/components/Overlay/Overlay.style.d.ts +1 -1
  181. package/dist/types/src/Menu/utils.d.ts +2 -1
  182. package/dist/types/src/ProgressBar/ProgressBar.style.d.ts +1 -1
  183. package/dist/types/src/ProgressBar/ProgressBarStepped.d.ts +2 -1
  184. package/dist/types/src/Select/Select.style.d.ts +3 -38
  185. package/dist/types/src/Select/components/SelectPressable/SelectPressable.style.d.ts +1 -1
  186. package/dist/types/src/StatusLabel/StatusLabel.style.d.ts +1 -1
  187. package/dist/types/src/Switch/Switch.styles.d.ts +1 -1
  188. package/dist/types/src/Text/Text.d.ts +9 -3
  189. package/dist/types/src/TextList/TextList.style.d.ts +1 -1
  190. package/dist/types/src/ThumbnailList/ThumbnailList.style.d.ts +1 -1
  191. package/dist/types/src/ThumbnailList/types.d.ts +1 -1
  192. package/dist/types/src/Toast/Toast.styles.d.ts +1 -1
  193. package/dist/types/src/Typography/Typography.d.ts +6 -2
  194. package/dist/types/src/Typography/Typography.style.d.ts +7 -11
  195. package/dist/types/src/Typography/index.d.ts +1 -0
  196. package/dist/types/src/index.d.ts +1 -0
  197. package/dist/types/src/utils/design/index.d.ts +5 -0
  198. package/jestSetup.js +2 -1
  199. package/package.json +4 -3
  200. package/src/ActionItem/ActionItem.style.ts +23 -22
  201. package/src/ActionItem/ActionItem.tsx +3 -1
  202. package/src/ActionItem/ActionItemGroup.tsx +2 -1
  203. package/src/ActionItem/components/ActionItemContainer.style.ts +12 -11
  204. package/src/ActionItem/components/ActionItemContainer.tsx +5 -2
  205. package/src/ActivityIndicator/ActivityIndicator.tsx +3 -1
  206. package/src/AtlantisThemeContext/AtlantisThemeContext.test.tsx +106 -0
  207. package/src/AtlantisThemeContext/AtlantisThemeContext.tsx +56 -0
  208. package/src/AtlantisThemeContext/buildThemedStyles.test.tsx +57 -0
  209. package/src/AtlantisThemeContext/buildThemedStyles.ts +43 -0
  210. package/src/AtlantisThemeContext/index.ts +10 -0
  211. package/src/AtlantisThemeContext/types.ts +33 -0
  212. package/src/AutoLink/AutoLink.tsx +2 -1
  213. package/src/Banner/Banner.style.ts +34 -33
  214. package/src/Banner/Banner.tsx +6 -2
  215. package/src/Banner/components/BannerIcon/BannerIcon.style.ts +17 -16
  216. package/src/Banner/components/BannerIcon/BannerIcon.tsx +3 -1
  217. package/src/BottomSheet/BottomSheet.style.ts +32 -29
  218. package/src/BottomSheet/BottomSheet.tsx +21 -5
  219. package/src/BottomSheet/components/BottomSheetOption/BottomSheetOption.styles.ts +18 -17
  220. package/src/BottomSheet/components/BottomSheetOption/BottomSheetOption.tsx +2 -1
  221. package/src/Button/Button.style.ts +119 -120
  222. package/src/Button/Button.test.tsx +88 -1
  223. package/src/Button/Button.tsx +38 -7
  224. package/src/ButtonGroup/ButtonGroup.style.ts +18 -17
  225. package/src/ButtonGroup/ButtonGroup.tsx +2 -1
  226. package/src/Card/Card.style.ts +46 -45
  227. package/src/Card/Card.tsx +8 -3
  228. package/src/Card/components/InternalCardHeader.style.ts +16 -15
  229. package/src/Card/components/InternalCardHeader.tsx +3 -1
  230. package/src/Checkbox/Checkbox.style.ts +30 -29
  231. package/src/Checkbox/Checkbox.tsx +6 -2
  232. package/src/Checkbox/CheckboxGroup.style.ts +14 -13
  233. package/src/Checkbox/CheckboxGroup.tsx +3 -1
  234. package/src/Chip/Chip.style.ts +32 -31
  235. package/src/Chip/Chip.test.tsx +1 -1
  236. package/src/Chip/Chip.tsx +7 -5
  237. package/src/Content/Content.test.tsx +93 -5
  238. package/src/Content/Content.tsx +33 -9
  239. package/src/Content/ContentHorizontal.style.ts +38 -37
  240. package/src/Content/ContentSpaceAround.style.ts +22 -21
  241. package/src/Content/ContentVertical.style.ts +38 -37
  242. package/src/ContentOverlay/ContentOverlay.style.ts +57 -56
  243. package/src/ContentOverlay/ContentOverlay.tsx +5 -2
  244. package/src/Disclosure/Disclosure.style.ts +21 -20
  245. package/src/Disclosure/Disclosure.test.tsx +102 -44
  246. package/src/Disclosure/Disclosure.tsx +18 -7
  247. package/src/Divider/Divider.test.tsx +11 -3
  248. package/src/Divider/Divider.tsx +5 -2
  249. package/src/Divider/DividerHorizontal.style.ts +23 -22
  250. package/src/Divider/DividerVertical.style.ts +26 -25
  251. package/src/EmptyState/EmptyState.style.ts +8 -7
  252. package/src/EmptyState/EmptyState.tsx +3 -1
  253. package/src/ErrorMessageWrapper/ErrorMessageWrapper.style.ts +31 -30
  254. package/src/ErrorMessageWrapper/ErrorMessageWrapper.tsx +7 -6
  255. package/src/Flex/Flex.styles.tsx +2 -2
  256. package/src/Form/Form.style.ts +33 -32
  257. package/src/Form/Form.test.tsx +1 -1
  258. package/src/Form/Form.tsx +3 -1
  259. package/src/Form/components/FormActionBar/FormActionBar.style.ts +10 -9
  260. package/src/Form/components/FormActionBar/FormActionBar.tsx +3 -1
  261. package/src/Form/components/FormBody/FormBody.style.ts +26 -25
  262. package/src/Form/components/FormBody/FormBody.tsx +2 -1
  263. package/src/Form/components/FormMask/FormMask.style.tsx +15 -14
  264. package/src/Form/components/FormMask/FormMask.tsx +2 -1
  265. package/src/Form/components/FormMessage/components/InternalFormMessage/InternalFormMessage.style.ts +17 -16
  266. package/src/Form/components/FormMessage/components/InternalFormMessage/InternalFormMessage.tsx +2 -1
  267. package/src/FormatFile/FormatFile.style.ts +18 -15
  268. package/src/FormatFile/FormatFile.tsx +3 -1
  269. package/src/FormatFile/components/ErrorIcon/ErrorIcon.style.ts +10 -9
  270. package/src/FormatFile/components/ErrorIcon/ErrorIcon.tsx +3 -1
  271. package/src/FormatFile/components/FileView/FileView.style.ts +64 -63
  272. package/src/FormatFile/components/FileView/FileView.tsx +3 -1
  273. package/src/FormatFile/components/MediaView/MediaView.style.ts +27 -26
  274. package/src/FormatFile/components/MediaView/MediaView.tsx +15 -3
  275. package/src/FormatFile/components/ProgressBar/ProgressBar.style.tsx +15 -14
  276. package/src/FormatFile/components/ProgressBar/ProgressBar.tsx +3 -1
  277. package/src/Glimmer/Glimmer.shape.style.ts +16 -15
  278. package/src/Glimmer/Glimmer.size.style.ts +9 -8
  279. package/src/Glimmer/Glimmer.style.ts +21 -19
  280. package/src/Glimmer/Glimmer.test.tsx +16 -5
  281. package/src/Glimmer/Glimmer.tsx +9 -5
  282. package/src/Heading/__snapshots__/Heading.test.tsx.snap +1 -1
  283. package/src/IconButton/IconButton.style.ts +10 -9
  284. package/src/IconButton/IconButton.tsx +3 -1
  285. package/src/InputFieldWrapper/CommonInputStyles.style.ts +65 -38
  286. package/src/InputFieldWrapper/InputFieldWrapper.style.ts +144 -138
  287. package/src/InputFieldWrapper/InputFieldWrapper.test.tsx +24 -5
  288. package/src/InputFieldWrapper/InputFieldWrapper.tsx +5 -2
  289. package/src/InputFieldWrapper/components/ClearAction/ClearAction.style.ts +25 -24
  290. package/src/InputFieldWrapper/components/ClearAction/ClearAction.tsx +2 -1
  291. package/src/InputFieldWrapper/components/Prefix/Prefix.test.tsx +14 -3
  292. package/src/InputFieldWrapper/components/Prefix/Prefix.tsx +9 -3
  293. package/src/InputFieldWrapper/components/Suffix/Suffix.test.tsx +9 -2
  294. package/src/InputFieldWrapper/components/Suffix/Suffix.tsx +9 -3
  295. package/src/InputFieldWrapper/index.ts +4 -1
  296. package/src/InputPressable/InputPressable.style.ts +26 -23
  297. package/src/InputPressable/InputPressable.tsx +19 -6
  298. package/src/InputText/InputText.style.ts +26 -24
  299. package/src/InputText/InputText.test.tsx +11 -1
  300. package/src/InputText/InputText.tsx +5 -2
  301. package/src/InputText/context/InputAccessoriesProvider.style.tsx +21 -19
  302. package/src/InputText/context/InputAccessoriesProvider.tsx +3 -1
  303. package/src/Menu/Menu.style.ts +13 -12
  304. package/src/Menu/Menu.test.tsx +1 -1
  305. package/src/Menu/Menu.tsx +9 -4
  306. package/src/Menu/components/MenuOption/MenuOption.style.tsx +10 -9
  307. package/src/Menu/components/MenuOption/MenuOption.tsx +4 -2
  308. package/src/Menu/components/Overlay/Overlay.style.ts +10 -8
  309. package/src/Menu/components/Overlay/Overlay.tsx +3 -1
  310. package/src/Menu/utils.ts +2 -1
  311. package/src/ProgressBar/ProgressBar.style.ts +36 -35
  312. package/src/ProgressBar/ProgressBar.test.tsx +6 -20
  313. package/src/ProgressBar/ProgressBar.tsx +8 -4
  314. package/src/ProgressBar/ProgressBarInner.tsx +2 -1
  315. package/src/ProgressBar/ProgressBarStepped.tsx +10 -2
  316. package/src/ProgressBar/__snapshots__/ProgressBar.test.tsx.snap +2 -2
  317. package/src/Select/Select.style.ts +52 -48
  318. package/src/Select/Select.tsx +2 -1
  319. package/src/Select/components/SelectDefaultPicker/SelectDefaultPicker.tsx +2 -1
  320. package/src/Select/components/SelectPressable/SelectPressable.style.ts +7 -6
  321. package/src/Select/components/SelectPressable/SelectPressable.tsx +2 -2
  322. package/src/StatusLabel/StatusLabel.style.ts +29 -29
  323. package/src/StatusLabel/StatusLabel.tsx +9 -4
  324. package/src/StatusLabel/__snapshots__/StatusLabel.test.tsx.snap +7 -7
  325. package/src/Switch/Switch.styles.ts +20 -19
  326. package/src/Switch/Switch.tsx +2 -1
  327. package/src/Switch/components/BaseSwitch/BaseSwitch.test.tsx +75 -50
  328. package/src/Switch/components/BaseSwitch/BaseSwitch.tsx +6 -4
  329. package/src/Text/Text.test.tsx +20 -0
  330. package/src/Text/Text.tsx +11 -1
  331. package/src/Text/__snapshots__/Text.test.tsx.snap +2 -2
  332. package/src/TextList/TextList.style.ts +16 -15
  333. package/src/TextList/TextList.tsx +3 -1
  334. package/src/TextList/__snapshots__/TextList.test.tsx.snap +3 -0
  335. package/src/ThumbnailList/ThumbnailList.style.ts +49 -48
  336. package/src/ThumbnailList/ThumbnailList.tsx +2 -1
  337. package/src/ThumbnailList/__snapshots__/ThumbnailList.test.tsx.snap +1 -0
  338. package/src/ThumbnailList/types.ts +1 -1
  339. package/src/Toast/Toast.styles.ts +30 -29
  340. package/src/Toast/Toast.tsx +10 -6
  341. package/src/Typography/Typography.style.ts +26 -23
  342. package/src/Typography/Typography.test.tsx +14 -0
  343. package/src/Typography/Typography.tsx +34 -10
  344. package/src/Typography/__snapshots__/Typography.test.tsx.snap +29 -29
  345. package/src/Typography/index.ts +1 -0
  346. package/src/index.ts +1 -0
  347. package/src/utils/design/index.ts +5 -0
  348. package/src/utils/meta/meta.json +1 -0
  349. package/dist/src/InputText/context/InputAccessory.style.js +0 -16
  350. package/dist/types/src/InputText/context/InputAccessory.style.d.ts +0 -14
  351. package/src/Disclosure/__snapshots__/Disclosure.test.tsx.snap +0 -482
  352. package/src/InputText/context/InputAccessory.style.ts +0 -17
  353. package/src/Switch/components/BaseSwitch/__snapshots__/BaseSwitch.test.tsx.snap +0 -217
@@ -2,7 +2,7 @@ import React from "react";
2
2
  import { Platform } from "react-native";
3
3
  import { Switch } from "react-native-gesture-handler";
4
4
  import { useFormController } from "../../../hooks";
5
- import { tokens } from "../../../utils/design";
5
+ import { useAtlantisTheme } from "../../../AtlantisThemeContext";
6
6
 
7
7
  export interface BaseSwitchProps {
8
8
  /**
@@ -51,6 +51,8 @@ export function BaseSwitch({
51
51
 
52
52
  const internalValue = value ?? field.value;
53
53
 
54
+ const { tokens } = useAtlantisTheme();
55
+
54
56
  function getThumbColor() {
55
57
  if (Platform.OS === "android") {
56
58
  if (disabled) {
@@ -58,7 +60,7 @@ export function BaseSwitch({
58
60
  } else if (internalValue) {
59
61
  return tokens["color-interactive"];
60
62
  } else {
61
- return tokens["color-surface--background"];
63
+ return tokens["color-interactive--background"];
62
64
  }
63
65
  }
64
66
 
@@ -79,7 +81,7 @@ export function BaseSwitch({
79
81
  //iOS
80
82
  return {
81
83
  true: tokens["color-interactive"],
82
- false: tokens["color-surface--background"],
84
+ false: tokens["color-interactive--background"],
83
85
  };
84
86
  }
85
87
  }
@@ -96,7 +98,7 @@ export function BaseSwitch({
96
98
  disabled={disabled}
97
99
  thumbColor={getThumbColor()}
98
100
  trackColor={getTrackColors()}
99
- ios_backgroundColor={tokens["color-surface--background"]}
101
+ ios_backgroundColor={tokens["color-interactive--background"]}
100
102
  accessibilityLabel={accessibilityLabel}
101
103
  accessibilityRole={"switch"}
102
104
  accessibilityState={{
@@ -1,6 +1,7 @@
1
1
  import React from "react";
2
2
  import { render } from "@testing-library/react-native";
3
3
  import { Text } from ".";
4
+ import { tokens } from "../utils/design";
4
5
 
5
6
  it("renders text with no additional props", () => {
6
7
  const text = render(<Text>Test Text</Text>);
@@ -148,3 +149,22 @@ it("renders text with underline styling", () => {
148
149
 
149
150
  expect(text.toJSON()).toMatchSnapshot();
150
151
  });
152
+
153
+ describe("UNSAFE_style", () => {
154
+ it("applies custom styles via UNSAFE_style prop", () => {
155
+ const customStyle = {
156
+ textStyle: {
157
+ fontSize: 20,
158
+ color: tokens["color-blue--dark"],
159
+ },
160
+ };
161
+
162
+ const { getByRole } = render(
163
+ <Text UNSAFE_style={customStyle}>Test Text</Text>,
164
+ );
165
+ const textElement = getByRole("text");
166
+ expect(textElement.props.style).toContainEqual(
167
+ expect.objectContaining(customStyle.textStyle),
168
+ );
169
+ });
170
+ });
package/src/Text/Text.tsx CHANGED
@@ -11,8 +11,9 @@ import {
11
11
  TypographyProps,
12
12
  } from "../Typography";
13
13
  import { tokens } from "../utils/design";
14
+ import { TypographyUnsafeStyle } from "../Typography/Typography";
14
15
 
15
- interface TextProps
16
+ export interface TextProps
16
17
  extends Pick<TypographyProps<"base">, "maxFontScaleSize" | "selectable"> {
17
18
  /**
18
19
  * Visual hierarchy of the text
@@ -85,6 +86,13 @@ interface TextProps
85
86
  * of the TextInput
86
87
  */
87
88
  readonly hideFromScreenReader?: boolean;
89
+
90
+ /**
91
+ * **Use at your own risk:** Custom style for specific elements. This should only be used as a
92
+ * **last resort**. Using this may result in unexpected side effects.
93
+ * More information in the [Customizing components Guide](https://atlantis.getjobber.com/guides/customizing-components).
94
+ */
95
+ readonly UNSAFE_style?: TypographyUnsafeStyle;
88
96
  }
89
97
 
90
98
  export type TextLevel = "text" | "textSupporting";
@@ -125,6 +133,7 @@ export function Text({
125
133
  italic = false,
126
134
  hideFromScreenReader = false,
127
135
  maxFontScaleSize,
136
+ UNSAFE_style,
128
137
  underline,
129
138
  selectable,
130
139
  }: TextProps): JSX.Element {
@@ -133,6 +142,7 @@ export function Text({
133
142
  return (
134
143
  <Typography
135
144
  color={variation}
145
+ UNSAFE_style={UNSAFE_style}
136
146
  fontFamily="base"
137
147
  fontStyle={italic ? "italic" : "regular"}
138
148
  fontWeight={getFontWeight({ level, emphasis })}
@@ -459,7 +459,7 @@ exports[`renders text with subdued variation 1`] = `
459
459
  "fontFamily": "inter-regular",
460
460
  },
461
461
  {
462
- "color": "hsl(197, 15%, 45%)",
462
+ "color": "hsl(197, 15%, 43%)",
463
463
  },
464
464
  {
465
465
  "textAlign": "left",
@@ -577,7 +577,7 @@ exports[`renders text with underline styling 1`] = `
577
577
  "textDecorationStyle": "dashed",
578
578
  },
579
579
  {
580
- "textDecorationColor": "hsl(197, 15%, 45%)",
580
+ "textDecorationColor": "hsl(197, 15%, 43%)",
581
581
  "textDecorationLine": "underline",
582
582
  },
583
583
  ]
@@ -1,17 +1,18 @@
1
- import { StyleSheet } from "react-native";
2
- import { tokens } from "../utils/design";
1
+ import { buildThemedStyles } from "../AtlantisThemeContext";
3
2
 
4
- export const styles = StyleSheet.create({
5
- details: {
6
- width: "100%",
7
- flexDirection: "column",
8
- },
9
- detail: {
10
- flexDirection: "row",
11
- paddingLeft: tokens["space-small"],
12
- },
13
- detailText: {
14
- paddingLeft: tokens["space-small"],
15
- flex: 1,
16
- },
3
+ export const useStyles = buildThemedStyles(tokens => {
4
+ return {
5
+ details: {
6
+ width: "100%",
7
+ flexDirection: "column",
8
+ },
9
+ detail: {
10
+ flexDirection: "row",
11
+ paddingLeft: tokens["space-small"],
12
+ },
13
+ detailText: {
14
+ paddingLeft: tokens["space-small"],
15
+ flex: 1,
16
+ },
17
+ };
17
18
  });
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  import { View } from "react-native";
3
- import { styles } from "./TextList.style";
3
+ import { useStyles } from "./TextList.style";
4
4
  import { Content, Spacing } from "../Content";
5
5
  import { Text, TextLevel } from "../Text";
6
6
 
@@ -43,6 +43,8 @@ export function TextList({
43
43
  level = "text",
44
44
  spacing = "none",
45
45
  }: TextListProps): JSX.Element {
46
+ const styles = useStyles();
47
+
46
48
  return (
47
49
  <>
48
50
  {items && (
@@ -16,6 +16,7 @@ exports[`TextList when the bulletItems is provided displays the text list 1`] =
16
16
  {
17
17
  "padding": 0,
18
18
  },
19
+ undefined,
19
20
  ]
20
21
  }
21
22
  >
@@ -23,6 +24,7 @@ exports[`TextList when the bulletItems is provided displays the text list 1`] =
23
24
  style={
24
25
  [
25
26
  {},
27
+ undefined,
26
28
  ]
27
29
  }
28
30
  >
@@ -114,6 +116,7 @@ exports[`TextList when the bulletItems is provided displays the text list 1`] =
114
116
  {
115
117
  "padding": 0,
116
118
  },
119
+ undefined,
117
120
  ]
118
121
  }
119
122
  >
@@ -1,50 +1,51 @@
1
- import { StyleSheet } from "react-native";
2
- import { tokens } from "../utils/design";
1
+ import { buildThemedStyles } from "../AtlantisThemeContext";
3
2
 
4
- export const styles = StyleSheet.create({
5
- list: {
6
- display: "flex",
7
- flexDirection: "row",
8
- flexWrap: "wrap",
9
- maxHeight: (tokens["space-extravagant"] + tokens["space-smaller"]) * 2,
10
- overflow: "hidden",
11
- marginTop: tokens["space-smaller"],
12
- },
13
- maxDimensionsForThreeRows: {
14
- maxHeight: (tokens["space-extravagant"] + tokens["space-smaller"]) * 3,
15
- },
16
- thumbnail: {
17
- width: tokens["space-extravagant"],
18
- height: tokens["space-extravagant"],
19
- marginRight: tokens["space-smaller"],
20
- marginBottom: tokens["space-smaller"],
21
- borderRadius: tokens["radius-base"],
22
- borderColor: tokens["color-border"],
23
- borderWidth: tokens["border-base"],
24
- },
25
- centerThumbnailImage: {
26
- display: "flex",
27
- alignItems: "center",
28
- justifyContent: "center",
29
- },
30
- dimensionsThumbnailImage: {
31
- width: tokens["space-extravagant"],
32
- height: tokens["space-extravagant"],
33
- },
34
- thumbnailName: {
35
- position: "absolute",
36
- right: 0,
37
- bottom: 0,
38
- left: 0,
39
- paddingHorizontal: tokens["space-smaller"],
40
- paddingVertical: tokens["space-smallest"],
41
- borderTopColor: tokens["color-border"],
42
- borderTopWidth: tokens["space-minuscule"],
43
- },
44
- thumbnailIcon: {
45
- top: tokens["space-smaller"],
46
- display: "flex",
47
- alignItems: "center",
48
- justifyContent: "center",
49
- },
3
+ export const useStyles = buildThemedStyles(tokens => {
4
+ return {
5
+ list: {
6
+ display: "flex",
7
+ flexDirection: "row",
8
+ flexWrap: "wrap",
9
+ maxHeight: (tokens["space-extravagant"] + tokens["space-smaller"]) * 2,
10
+ overflow: "hidden",
11
+ marginTop: tokens["space-smaller"],
12
+ },
13
+ maxDimensionsForThreeRows: {
14
+ maxHeight: (tokens["space-extravagant"] + tokens["space-smaller"]) * 3,
15
+ },
16
+ thumbnail: {
17
+ width: tokens["space-extravagant"],
18
+ height: tokens["space-extravagant"],
19
+ marginRight: tokens["space-smaller"],
20
+ marginBottom: tokens["space-smaller"],
21
+ borderRadius: tokens["radius-base"],
22
+ borderColor: tokens["color-border"],
23
+ borderWidth: tokens["border-base"],
24
+ },
25
+ centerThumbnailImage: {
26
+ display: "flex",
27
+ alignItems: "center",
28
+ justifyContent: "center",
29
+ },
30
+ dimensionsThumbnailImage: {
31
+ width: tokens["space-extravagant"],
32
+ height: tokens["space-extravagant"],
33
+ },
34
+ thumbnailName: {
35
+ position: "absolute",
36
+ right: 0,
37
+ bottom: 0,
38
+ left: 0,
39
+ paddingHorizontal: tokens["space-smaller"],
40
+ paddingVertical: tokens["space-smallest"],
41
+ borderTopColor: tokens["color-border"],
42
+ borderTopWidth: tokens["space-minuscule"],
43
+ },
44
+ thumbnailIcon: {
45
+ top: tokens["space-smaller"],
46
+ display: "flex",
47
+ alignItems: "center",
48
+ justifyContent: "center",
49
+ },
50
+ };
50
51
  });
@@ -2,7 +2,7 @@ import React from "react";
2
2
  import { View } from "react-native";
3
3
  import isNil from "lodash/isNil";
4
4
  import { RowCount, ThumbnailListProps } from "./types";
5
- import { styles } from "./ThumbnailList.style";
5
+ import { useStyles } from "./ThumbnailList.style";
6
6
  import { File, FormatFile } from "../FormatFile";
7
7
 
8
8
  function isImage(file: File) {
@@ -26,6 +26,7 @@ export function ThumbnailList({
26
26
  createThumbnail,
27
27
  }: ThumbnailListProps): JSX.Element {
28
28
  const imageList = filterImages(files);
29
+ const styles = useStyles();
29
30
 
30
31
  return (
31
32
  <View
@@ -75,6 +75,7 @@ exports[`renders a thumbnail component with attachments 1`] = `
75
75
  "borderRadius": 8,
76
76
  "borderWidth": 1,
77
77
  "marginBottom": 8,
78
+ "overflow": "hidden",
78
79
  },
79
80
  {
80
81
  "height": 64,
@@ -17,5 +17,5 @@ export interface ThumbnailListProps {
17
17
  index: number;
18
18
  imageList: File[];
19
19
  }) => void;
20
- createThumbnail: CreateThumbnail;
20
+ createThumbnail?: CreateThumbnail;
21
21
  }
@@ -1,31 +1,32 @@
1
- import { StyleSheet } from "react-native";
2
- import { tokens } from "../utils/design";
1
+ import { buildThemedStyles } from "../AtlantisThemeContext";
3
2
 
4
- export const styles = StyleSheet.create({
5
- container: {
6
- flexDirection: "row",
7
- paddingHorizontal: tokens["space-base"],
8
- paddingBottom: tokens["space-base"],
9
- },
10
- toast: {
11
- flexDirection: "row",
12
- justifyContent: "space-between",
13
- width: "100%",
14
- maxWidth: 540,
15
- paddingVertical: tokens["space-small"],
16
- backgroundColor: tokens["color-blue"],
17
- borderRadius: 6,
18
- shadowOffset: { width: 0, height: 0 },
19
- shadowOpacity: 0.1,
20
- shadowRadius: 6,
21
- },
22
- toastMessage: {
23
- justifyContent: "center",
24
- paddingLeft: tokens["space-base"],
25
- paddingVertical: tokens["space-small"],
26
- flexShrink: 1,
27
- },
28
- toastIcon: {
29
- justifyContent: "center",
30
- },
3
+ export const useStyles = buildThemedStyles(tokens => {
4
+ return {
5
+ container: {
6
+ flexDirection: "row",
7
+ paddingHorizontal: tokens["space-base"],
8
+ paddingBottom: tokens["space-base"],
9
+ },
10
+ toast: {
11
+ flexDirection: "row",
12
+ justifyContent: "space-between",
13
+ width: "100%",
14
+ maxWidth: 540,
15
+ paddingVertical: tokens["space-small"],
16
+ backgroundColor: tokens["color-blue"],
17
+ borderRadius: 6,
18
+ shadowOffset: { width: 0, height: 0 },
19
+ shadowOpacity: 0.1,
20
+ shadowRadius: 6,
21
+ },
22
+ toastMessage: {
23
+ justifyContent: "center",
24
+ paddingLeft: tokens["space-base"],
25
+ paddingVertical: tokens["space-small"],
26
+ flexShrink: 1,
27
+ },
28
+ toastIcon: {
29
+ justifyContent: "center",
30
+ },
31
+ };
31
32
  });
@@ -6,11 +6,12 @@ import Toast, {
6
6
  } from "react-native-toast-message";
7
7
  import { AccessibilityInfo, TouchableOpacity, View } from "react-native";
8
8
  import { useSafeAreaInsets } from "react-native-safe-area-context";
9
- import { styles } from "./Toast.styles";
10
- import { tokens } from "../utils/design";
9
+ import { useStyles } from "./Toast.styles";
11
10
  import { Text } from "../Text";
12
11
  import { IconButton } from "../IconButton";
13
12
  import { useAtlantisI18n } from "../hooks/useAtlantisI18n";
13
+ import { useAtlantisTheme } from "../AtlantisThemeContext";
14
+ import { tokens as staticTokens } from "../utils/design";
14
15
 
15
16
  const MAX_TOAST_MESSAGE_LENGTH = 60;
16
17
  const ANNOUNCEMENT_DELAY = 100;
@@ -18,7 +19,9 @@ const ANNOUNCEMENT_DELAY = 100;
18
19
  function DefaultToast({ text1 }: ToastConfigParams<string>): JSX.Element {
19
20
  const { bottom } = useSafeAreaInsets();
20
21
  const { t } = useAtlantisI18n();
22
+ const styles = useStyles();
21
23
  const toastContainerStyles = [styles.container, { paddingBottom: bottom }];
24
+ const { tokens } = useAtlantisTheme();
22
25
 
23
26
  return (
24
27
  <View style={toastContainerStyles}>
@@ -113,12 +116,13 @@ export function showToast({
113
116
  }
114
117
 
115
118
  function getBottomTabsOffset(bottomTabsVisible: boolean) {
116
- const navBarHeight = tokens["space-largest"] + tokens["space-small"];
117
- const navBarBorderTopWidth = tokens["space-minuscule"];
119
+ const navBarHeight =
120
+ staticTokens["space-largest"] + staticTokens["space-small"];
121
+ const navBarBorderTopWidth = staticTokens["space-minuscule"];
118
122
 
119
123
  if (bottomTabsVisible) {
120
- return navBarHeight + navBarBorderTopWidth + tokens["space-base"];
124
+ return navBarHeight + navBarBorderTopWidth + staticTokens["space-base"];
121
125
  }
122
126
 
123
- return tokens["space-base"];
127
+ return staticTokens["space-base"];
124
128
  }
@@ -1,15 +1,20 @@
1
1
  import { Platform, StyleSheet, TextStyle } from "react-native";
2
2
  import { webFonts } from "./webFonts";
3
- import { tokens } from "../utils/design";
4
-
5
- const extravagantLineHeight = tokens["typography--lineHeight-extravagant"];
6
- const jumboLineHeight = tokens["typography--lineHeight-jumbo"];
7
- const largestLineHeight = tokens["typography--lineHeight-largest"];
8
- const largerLineHeight = tokens["typography--lineHeight-larger"];
9
- const largeLineHeight = tokens["typography--lineHeight-large"];
10
- const baseLineHeight = tokens["typography--lineHeight-base"];
11
- const tightLineHeight = tokens["typography--lineHeight-tight"];
12
- const minusculeLineHeight = tokens["typography--lineHeight-minuscule"];
3
+ import { tokens as staticTokens } from "../utils/design";
4
+ import {
5
+ AtlantisThemeContextValue,
6
+ buildThemedStyles,
7
+ } from "../AtlantisThemeContext";
8
+
9
+ const extravagantLineHeight =
10
+ staticTokens["typography--lineHeight-extravagant"];
11
+ const jumboLineHeight = staticTokens["typography--lineHeight-jumbo"];
12
+ const largestLineHeight = staticTokens["typography--lineHeight-largest"];
13
+ const largerLineHeight = staticTokens["typography--lineHeight-larger"];
14
+ const largeLineHeight = staticTokens["typography--lineHeight-large"];
15
+ const baseLineHeight = staticTokens["typography--lineHeight-base"];
16
+ const tightLineHeight = staticTokens["typography--lineHeight-tight"];
17
+ const minusculeLineHeight = staticTokens["typography--lineHeight-minuscule"];
13
18
 
14
19
  const deviceFonts = {
15
20
  baseRegularRegular: {
@@ -77,9 +82,11 @@ const fonts = Platform.select({
77
82
  });
78
83
 
79
84
  /**
80
- * Reusable typography tokens to ensure consistency for any client facing texts.
85
+ * Reusable typography styles to ensure consistency for any client facing texts.
81
86
  */
82
- export const typographyTokens: { [index: string]: TextStyle } = {
87
+ export const getTypographyStyles = (
88
+ tokens: AtlantisThemeContextValue["tokens"] | typeof staticTokens,
89
+ ): { [index: string]: TextStyle } => ({
83
90
  // This follows a pattern of
84
91
  // { fontFamily }{ fontStyle }{ fontWeight }
85
92
  ...fonts,
@@ -610,17 +617,13 @@ export const typographyTokens: { [index: string]: TextStyle } = {
610
617
  strikeThrough: {
611
618
  textDecorationLine: "line-through",
612
619
  },
613
- };
620
+ });
614
621
 
615
622
  /**
616
- * `StyleSheet` for Typography.tsx.
617
- *
618
- * If you find yourself needing to use what's inside this object on files other
619
- * than `<Typography />`, please import from `@jobber/components-native` instead.
620
- *
621
- * ```
622
- * import { typographyStyles } from "@jobber/components-native"
623
- * ```
623
+ * @deprecated Use useTypographyStyles instead
624
624
  */
625
- export const typographyStyles: { [index: string]: TextStyle } =
626
- StyleSheet.create(typographyTokens);
625
+ export const typographyStyles: Record<string, TextStyle> = StyleSheet.create(
626
+ getTypographyStyles(staticTokens),
627
+ );
628
+
629
+ export const useTypographyStyles = buildThemedStyles(getTypographyStyles);
@@ -225,6 +225,20 @@ it("renders text that is inaccessible", () => {
225
225
  );
226
226
  });
227
227
 
228
+ it("applies custom UNSAFE_style to text", () => {
229
+ const customStyle = { color: "red", fontSize: 20 };
230
+ const typography = render(
231
+ <Typography UNSAFE_style={{ textStyle: customStyle }}>
232
+ Test Text
233
+ </Typography>,
234
+ );
235
+ const textElement = typography.getByText("Test Text");
236
+
237
+ expect(textElement.props.style).toEqual(
238
+ expect.arrayContaining([expect.objectContaining(customStyle)]),
239
+ );
240
+ });
241
+
228
242
  describe("underline", () => {
229
243
  it.each(["solid", "double", "dotted", "dashed"] as const)(
230
244
  "renders text with %s underline",