@procore/core-react 12.30.0 → 12.32.0

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 (267) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/AnchorNavigation/AnchorNavigation.styles.js +3 -3
  3. package/dist/Avatar/Avatar.js +20 -12
  4. package/dist/Avatar/Avatar.js.map +1 -1
  5. package/dist/Avatar/Avatar.styles.js +5 -5
  6. package/dist/AvatarStack/AvatarStack.styles.d.ts +76 -76
  7. package/dist/AvatarStack/AvatarStack.styles.js +7 -7
  8. package/dist/Badge/Badge.styles.js +2 -2
  9. package/dist/BadgePill/BadgePill.styles.js +4 -4
  10. package/dist/Banner/Banner.styles.js +10 -10
  11. package/dist/Box/Box.styles.js +1 -1
  12. package/dist/Breadcrumbs/Breadcrumbs.styles.js +4 -4
  13. package/dist/Button/Button.styles.js +5 -5
  14. package/dist/Calendar/Calendar.styles.js +8 -8
  15. package/dist/Card/Card.styles.js +1 -1
  16. package/dist/Checkbox/Checkbox.styles.js +6 -6
  17. package/dist/Checkbox/CheckboxTooltip.js +1 -1
  18. package/dist/ComponentLifecycle.stories.mdx +130 -0
  19. package/dist/ContactItem/ContactItem.styles.js +5 -5
  20. package/dist/Content/Content.styles.js +2 -2
  21. package/dist/DateInput/DateInput.js +28 -0
  22. package/dist/DateInput/DateInput.js.map +1 -1
  23. package/dist/DateInput/DateInput.styles.js +6 -6
  24. package/dist/DetailPage/DetailPage.js +1 -1
  25. package/dist/DetailPage/DetailPage.js.map +1 -1
  26. package/dist/DetailPage/DetailPage.styles.js +7 -7
  27. package/dist/Dropdown/Dropdown.styles.js +3 -3
  28. package/dist/DropdownFlyout/DropdownFlyout.js +7 -2
  29. package/dist/DropdownFlyout/DropdownFlyout.js.map +1 -1
  30. package/dist/DropdownFlyout/DropdownFlyout.styles.js +4 -4
  31. package/dist/Dropzone/Dropzone.js +1 -1
  32. package/dist/Dropzone/Dropzone.styles.js +9 -9
  33. package/dist/EmptyState/EmptyState.styles.js +6 -6
  34. package/dist/Field/Field.styles.js +3 -3
  35. package/dist/FileList/FileList.styles.js +4 -4
  36. package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
  37. package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
  38. package/dist/FileSelect/FileSelect.styles.js +2 -2
  39. package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
  40. package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
  41. package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
  42. package/dist/FileSelect/LocalSource/LocalSource.styles.js +4 -4
  43. package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
  44. package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.d.ts +1 -1
  45. package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
  46. package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
  47. package/dist/FileToken/FileToken.styles.js +4 -4
  48. package/dist/FilterToken/FilterToken.styles.js +5 -5
  49. package/dist/FlexList/FlexList.styles.js +1 -1
  50. package/dist/Form/Form.js +10 -5
  51. package/dist/Form/Form.js.map +1 -1
  52. package/dist/Form/Form.styles.js +14 -14
  53. package/dist/Form/Form.types.d.ts +2 -0
  54. package/dist/Form/Form.types.js.map +1 -1
  55. package/dist/Form/StyledFormikForm.styles.d.ts +2 -2
  56. package/dist/Form/StyledFormikForm.styles.js +2 -2
  57. package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
  58. package/dist/Grid/Grid.styles.js +2 -2
  59. package/dist/GroupSelect/GroupSelect.styles.js +1 -1
  60. package/dist/Input/Input.styles.js +1 -1
  61. package/dist/Link/Link.styles.js +1 -1
  62. package/dist/ListPage/ListPage.styles.js +8 -8
  63. package/dist/Loader/Loader.styles.js +2 -2
  64. package/dist/MenuImperative/MenuImperative.d.ts +1 -16
  65. package/dist/MenuImperative/MenuImperative.js +1 -0
  66. package/dist/MenuImperative/MenuImperative.js.map +1 -1
  67. package/dist/MenuImperative/MenuImperative.styles.js +10 -10
  68. package/dist/MenuImperative/MenuImperative.types.d.ts +14 -0
  69. package/dist/MenuImperative/MenuImperative.types.js.map +1 -1
  70. package/dist/MenuImperative/index.d.ts +46 -3
  71. package/dist/MenuImperative/index.js +31 -2
  72. package/dist/MenuImperative/index.js.map +1 -1
  73. package/dist/Modal/Modal.js +5 -2
  74. package/dist/Modal/Modal.js.map +1 -1
  75. package/dist/Modal/Modal.styles.js +13 -13
  76. package/dist/MultiSelect/MultiSelect.styles.d.ts +1 -1
  77. package/dist/MultiSelect/MultiSelect.styles.js +6 -6
  78. package/dist/NextMenu/NextMenu.styles.js +3 -3
  79. package/dist/NextTile/NextTile.js +119 -45
  80. package/dist/NextTile/NextTile.js.map +1 -1
  81. package/dist/Notation/Notation.js +1 -1
  82. package/dist/NumberInput/NumberInput.styles.js +7 -7
  83. package/dist/Overlay/OverlayArrow.styles.js +1 -1
  84. package/dist/OverlayTrigger/a11yPresets.d.ts +6 -6
  85. package/dist/PageLayout/PageLayout.styles.d.ts +1 -1
  86. package/dist/PageLayout/PageLayout.styles.js +16 -16
  87. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +1 -1
  88. package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
  89. package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
  90. package/dist/PageTemplate/PageTemplate/PageTemplate.styles.js +3 -3
  91. package/dist/PageTemplate/PageTemplate/PageTemplateCard.d.ts +3 -5
  92. package/dist/PageTemplate/PageTemplate/PageTemplateCard.js.map +1 -1
  93. package/dist/Pagination/Pagination.styles.js +5 -5
  94. package/dist/Panel/Panel.styles.js +11 -11
  95. package/dist/Pill/Pill.styles.js +3 -3
  96. package/dist/PillSelect/PillSelect.styles.js +4 -4
  97. package/dist/Popover/Popover.styles.js +2 -2
  98. package/dist/Portal/Portal.styles.js +1 -1
  99. package/dist/ProgressBar/ProgressBar.styles.js +2 -2
  100. package/dist/RadioButton/RadioButton.styles.js +3 -3
  101. package/dist/Required/Required.styles.js +3 -3
  102. package/dist/Search/Search.styles.js +5 -5
  103. package/dist/Section/Section.styles.js +7 -7
  104. package/dist/SegmentedController/SegmentedController.js +86 -25
  105. package/dist/SegmentedController/SegmentedController.js.map +1 -1
  106. package/dist/SegmentedController/SegmentedController.styles.js +4 -4
  107. package/dist/Select/Select.js +6 -3
  108. package/dist/Select/Select.js.map +1 -1
  109. package/dist/Select/Select.styles.js +7 -7
  110. package/dist/Semantic/Semantic.styles.d.ts +78 -78
  111. package/dist/Semantic/Semantic.styles.js +9 -9
  112. package/dist/Slider/Slider.styles.js +5 -5
  113. package/dist/Spinner/Spinner.styles.js +7 -7
  114. package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
  115. package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
  116. package/dist/SuperSelect/SuperSelect.styles.js +38 -38
  117. package/dist/Switch/Switch.styles.js +4 -4
  118. package/dist/Table/Table.styles.js +28 -28
  119. package/dist/TableShelf/TableShelf.styles.js +5 -5
  120. package/dist/Tabs/Tabs.js +19 -13
  121. package/dist/Tabs/Tabs.js.map +1 -1
  122. package/dist/Tabs/Tabs.styles.js +15 -15
  123. package/dist/Tearsheet/Tearsheet.styles.js +5 -5
  124. package/dist/TextArea/TextArea.styles.js +1 -1
  125. package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
  126. package/dist/Thumbnail/Thumbnail.hooks.d.ts +68 -68
  127. package/dist/Thumbnail/Thumbnail.styles.js +17 -17
  128. package/dist/ThumbnailGrid/ThumbnailGrid.styles.d.ts +1 -1
  129. package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
  130. package/dist/TieredSelect/TieredSelect.styles.d.ts +4 -4
  131. package/dist/TieredSelect/TieredSelect.styles.js +9 -9
  132. package/dist/Tile/Tile.styles.js +8 -8
  133. package/dist/Title/Title.styles.js +7 -7
  134. package/dist/Toast/Toast.styles.js +3 -3
  135. package/dist/ToggleButton/ToggleButton.styles.js +1 -1
  136. package/dist/Token/Token.styles.js +3 -3
  137. package/dist/ToolHeader/ToolHeader.styles.js +6 -6
  138. package/dist/ToolLandingPage/ToolLandingPage.js +14 -7
  139. package/dist/ToolLandingPage/ToolLandingPage.js.map +1 -1
  140. package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
  141. package/dist/ToolLandingPage/ToolLandingPage.types.d.ts +29 -0
  142. package/dist/ToolLandingPage/ToolLandingPage.types.js.map +1 -1
  143. package/dist/Tooltip/Tooltip.styles.js +2 -2
  144. package/dist/Tree/Tree.styles.js +9 -9
  145. package/dist/Typeahead/Typeahead.styles.js +3 -3
  146. package/dist/Typography/Typography.styles.js +1 -1
  147. package/dist/Typography/Typography.table.story.js +2 -2
  148. package/dist/UNSAFE_TEMPLATES_index.d.ts +15 -0
  149. package/dist/UNSAFE_TEMPLATES_index.js +9 -0
  150. package/dist/UNSAFE_TEMPLATES_index.js.map +1 -0
  151. package/dist/_hooks/I18n.d.ts +1206 -15
  152. package/dist/_hooks/I18n.js +11 -1
  153. package/dist/_hooks/I18n.js.map +1 -1
  154. package/dist/_hooks/getI18nProviderLocale.js +1 -1
  155. package/dist/_hooks/getI18nProviderLocale.js.map +1 -1
  156. package/dist/_locales/de-DE.json +4 -3
  157. package/dist/_locales/en-AU.json +3 -2
  158. package/dist/_locales/en-CA.json +3 -2
  159. package/dist/_locales/en-GB.json +3 -2
  160. package/dist/_locales/en.json +2 -1
  161. package/dist/_locales/es-ES.json +3 -2
  162. package/dist/_locales/es.json +6 -5
  163. package/dist/_locales/fr-CA.json +4 -3
  164. package/dist/_locales/fr-FR.json +4 -3
  165. package/dist/_locales/is-IS.json +4 -3
  166. package/dist/_locales/it-IT.json +49 -48
  167. package/dist/_locales/ja-JP.json +3 -2
  168. package/dist/_locales/nb-NO.json +1 -0
  169. package/dist/_locales/pl-PL.json +3 -2
  170. package/dist/_locales/pseudo.json +2 -1
  171. package/dist/_locales/pt-BR.json +4 -3
  172. package/dist/_locales/pt-PT.json +91 -90
  173. package/dist/_locales/th-TH.json +6 -5
  174. package/dist/_locales/zh-SG.json +3 -2
  175. package/dist/_locales/zh-TW.json +8 -7
  176. package/dist/_storyHelpers_/components/Deprecation.styles.js +1 -1
  177. package/dist/_storyHelpers_/components/StoryGrid.js +3 -3
  178. package/dist/_storyHelpers_/constants.js +1 -1
  179. package/dist/_storyHelpers_/constants.js.map +1 -1
  180. package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +3 -3
  181. package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
  182. package/dist/_typedoc/AvatarStack/AvatarStack.types.json +24 -24
  183. package/dist/_typedoc/Badge/Badge.types.json +6 -6
  184. package/dist/_typedoc/Banner/Banner.types.json +13 -13
  185. package/dist/_typedoc/Box/Box.types.json +72 -72
  186. package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +10 -10
  187. package/dist/_typedoc/Button/Button.types.json +15 -15
  188. package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
  189. package/dist/_typedoc/Card/Card.types.json +6 -6
  190. package/dist/_typedoc/Checkbox/Checkbox.types.json +8 -8
  191. package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
  192. package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
  193. package/dist/_typedoc/DateSelect/DateSelect.types.json +13 -13
  194. package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
  195. package/dist/_typedoc/Dropdown/Dropdown.types.json +39 -39
  196. package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +30 -30
  197. package/dist/_typedoc/Dropzone/Dropzone.types.json +44 -44
  198. package/dist/_typedoc/EmptyState/EmptyState.types.json +16 -16
  199. package/dist/_typedoc/FileList/FileList.types.json +9 -9
  200. package/dist/_typedoc/FileSelect/FileSelect.types.json +27 -27
  201. package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
  202. package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
  203. package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +9 -9
  204. package/dist/_typedoc/Flex/Flex.types.json +27 -27
  205. package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
  206. package/dist/_typedoc/Form/Form.types.json +825 -815
  207. package/dist/_typedoc/GhostPlaceholder/GhostPlaceholder.types.json +12 -12
  208. package/dist/_typedoc/Grid/Grid.types.json +8 -8
  209. package/dist/_typedoc/GroupSelect/GroupSelect.types.json +52 -52
  210. package/dist/_typedoc/Input/Input.types.json +2 -2
  211. package/dist/_typedoc/Link/Link.types.json +1 -1
  212. package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
  213. package/dist/_typedoc/Menu/Menu.types.json +62 -62
  214. package/dist/_typedoc/MenuImperative/MenuImperative.types.json +116 -74
  215. package/dist/_typedoc/Modal/Modal.types.json +46 -46
  216. package/dist/_typedoc/MultiSelect/MultiSelect.types.json +31 -31
  217. package/dist/_typedoc/NextTile/NextTile.types.json +32 -32
  218. package/dist/_typedoc/Notation/Notation.types.json +4 -4
  219. package/dist/_typedoc/NumberInput/NumberInput.types.json +54 -54
  220. package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +32 -32
  221. package/dist/_typedoc/PageLayout/PageLayout.types.json +26 -26
  222. package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
  223. package/dist/_typedoc/Panel/Panel.types.json +30 -30
  224. package/dist/_typedoc/Pill/Pill.types.json +2 -2
  225. package/dist/_typedoc/PillSelect/PillSelect.types.json +49 -49
  226. package/dist/_typedoc/Popover/Popover.types.json +15 -15
  227. package/dist/_typedoc/ProgressBar/ProgressBar.types.json +7 -7
  228. package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
  229. package/dist/_typedoc/Required/Required.types.json +5 -5
  230. package/dist/_typedoc/Search/Search.types.json +18 -18
  231. package/dist/_typedoc/Section/Section.types.json +15 -15
  232. package/dist/_typedoc/SegmentedController/SegmentedController.types.json +21 -21
  233. package/dist/_typedoc/Select/Select.types.json +62 -62
  234. package/dist/_typedoc/SettingsPage/SettingsPage.types.json +10 -10
  235. package/dist/_typedoc/Slider/Slider.types.json +6 -6
  236. package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
  237. package/dist/_typedoc/SplitViewCard/SplitViewCard.types.json +14 -14
  238. package/dist/_typedoc/Table/Table.types.json +101 -101
  239. package/dist/_typedoc/Tabs/Tabs.types.json +20 -20
  240. package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
  241. package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
  242. package/dist/_typedoc/TextEditor/TextEditor.types.json +9 -9
  243. package/dist/_typedoc/TextEditorOutput/TextEditorOutput.types.json +4 -4
  244. package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
  245. package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +42 -42
  246. package/dist/_typedoc/TieredSelect/TieredSelect.types.json +28 -28
  247. package/dist/_typedoc/Tile/Tile.types.json +8 -8
  248. package/dist/_typedoc/Title/Title.types.json +3 -3
  249. package/dist/_typedoc/Toast/Toast.types.json +4 -4
  250. package/dist/_typedoc/ToggleButton/ToggleButton.types.json +4 -4
  251. package/dist/_typedoc/Token/Token.types.json +7 -7
  252. package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
  253. package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +19 -8
  254. package/dist/_typedoc/Tooltip/Tooltip.types.json +13 -13
  255. package/dist/_typedoc/Tree/Tree.types.json +88 -88
  256. package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
  257. package/dist/_typedoc/Typography/Typography.types.json +9 -9
  258. package/dist/_typedoc/_utils/types.json +3 -3
  259. package/dist/_typedoc/deprecations.json +1 -1
  260. package/dist/_utils/CalendarHelpers.js +6 -2
  261. package/dist/_utils/CalendarHelpers.js.map +1 -1
  262. package/dist/_utils/TinyMCE.js +5 -1
  263. package/dist/_utils/TinyMCE.js.map +1 -1
  264. package/dist/index.d.ts +6 -0
  265. package/dist/index.js +6 -0
  266. package/dist/index.js.map +1 -1
  267. package/package.json +16 -15
@@ -27,14 +27,20 @@ import es from '../_locales/es.json';
27
27
  import frCA from '../_locales/fr-CA.json';
28
28
  import frFR from '../_locales/fr-FR.json';
29
29
  import isIS from '../_locales/is-IS.json';
30
+ import itIT from '../_locales/it-IT.json';
30
31
  import jaJP from '../_locales/ja-JP.json';
32
+ import nbNO from '../_locales/nb-NO.json';
31
33
  import plPL from '../_locales/pl-PL.json';
32
34
  import pseudo from '../_locales/pseudo.json';
33
35
  import ptBR from '../_locales/pt-BR.json';
36
+ import ptPT from '../_locales/pt-PT.json';
34
37
  import thTH from '../_locales/th-TH.json';
35
38
  import zhSG from '../_locales/zh-SG.json';
39
+ import zhTW from '../_locales/zh-TW.json';
36
40
  import { OVERWRITE_LOCALE_MAP } from './getI18nProviderLocale';
37
41
 
42
+ // Incase of error, Make sure I18njsConfig['locale'] has the same locales as Locale
43
+
38
44
  /**
39
45
  * @deprecated this type will no longer be supported from core-i18n-js,
40
46
  * to have a type safe Locale use TmsSupportedLocale or AllLocales from [Globalization toolkit](https://github.com/procore/globalization-toolkit)
@@ -58,7 +64,11 @@ export var coreTranslations = {
58
64
  'pt-BR': ptBR,
59
65
  'th-TH': thTH,
60
66
  'zh-SG': zhSG,
61
- 'pl-PL': plPL
67
+ 'pl-PL': plPL,
68
+ 'nb-NO': nbNO,
69
+ 'zh-TW': zhTW,
70
+ 'it-IT': itIT,
71
+ 'pt-PT': ptPT
62
72
  };
63
73
  var FALLBACK_LOCALE_MAP = _objectSpread({
64
74
  'es-ES': 'es',
@@ -1 +1 @@
1
- {"version":3,"file":"I18n.js","names":["getFallbackList","isCDNFeatureFlagEnabled","useRequestTranslations","createI18njs","R","React","deDE","enAU","enCA","enGB","en","esES","es","frCA","frFR","isIS","jaJP","plPL","pseudo","ptBR","thTH","zhSG","OVERWRITE_LOCALE_MAP","coreTranslations","FALLBACK_LOCALE_MAP","_objectSpread","getTranslationFallbacks","locale","setTranslationFallbacks","I18n","isCDNEnabled","locales","fallbacks","filter","concat","_toConsumableArray","useI18n","_ref","_ref$translations","translations","_translations","enableCDN","i18nContext","useContext","I18nContext","coreCDNTranslations","type","absolute_file_path","oldTranslations","mergeDeepLeft","I18nWithFallbacks","createContext","I18nProvider","_ref2","children","props","_objectWithoutProperties","_excluded","createElement","Provider","value","useI18nContext","ctx"],"sources":["../../src/_hooks/I18n.tsx"],"sourcesContent":["import {\n getFallbackList,\n isCDNFeatureFlagEnabled,\n useRequestTranslations,\n} from '@procore/cdn-translations'\nimport type { I18njs, I18njsConfig } from '@procore/core-i18n-js'\nimport { createI18njs } from '@procore/core-i18n-js'\nimport * as R from 'ramda'\nimport React, { type PropsWithChildren } from 'react'\nimport deDE from '../_locales/de-DE.json'\nimport enAU from '../_locales/en-AU.json'\nimport enCA from '../_locales/en-CA.json'\nimport enGB from '../_locales/en-GB.json'\nimport en from '../_locales/en.json'\nimport esES from '../_locales/es-ES.json'\nimport es from '../_locales/es.json'\nimport frCA from '../_locales/fr-CA.json'\nimport frFR from '../_locales/fr-FR.json'\nimport isIS from '../_locales/is-IS.json'\nimport jaJP from '../_locales/ja-JP.json'\nimport plPL from '../_locales/pl-PL.json'\nimport pseudo from '../_locales/pseudo.json'\nimport ptBR from '../_locales/pt-BR.json'\nimport thTH from '../_locales/th-TH.json'\nimport zhSG from '../_locales/zh-SG.json'\nimport { OVERWRITE_LOCALE_MAP } from './getI18nProviderLocale'\n\ntype I18nConfig = Omit<I18njsConfig, 'I18n'>\n\ntype I18nWithCDNFlag = I18njs & {\n enableCDN?: boolean\n}\n\n/**\n * @deprecated this type will no longer be supported from core-i18n-js,\n * to have a type safe Locale use TmsSupportedLocale or AllLocales from [Globalization toolkit](https://github.com/procore/globalization-toolkit)\n * @deprecatedSince 12.10.0\n */\nexport type Locale =\n | 'de-DE'\n | 'en-AE'\n | 'en-AU'\n | 'en-CA'\n | 'en-GB'\n | 'en-SG'\n | 'en'\n | 'es-ES'\n | 'es'\n | 'fr-CA'\n | 'fr-FR'\n | 'is-IS'\n | 'ja-JP'\n | 'pt-BR'\n | 'th-TH'\n | 'zh-SG'\n | 'pseudo'\n | 'pl-PL'\n\n/* Set up core translations */\nexport const coreTranslations = {\n 'de-DE': deDE,\n en,\n 'en-AU': enAU,\n 'en-CA': enCA,\n 'en-GB': enGB,\n es,\n 'es-ES': esES,\n 'fr-CA': frCA,\n 'fr-FR': frFR,\n 'is-IS': isIS,\n 'ja-JP': jaJP,\n pseudo,\n 'pt-BR': ptBR,\n 'th-TH': thTH,\n 'zh-SG': zhSG,\n 'pl-PL': plPL,\n} as const\n\nconst FALLBACK_LOCALE_MAP: Record<string, Locale> = {\n 'es-ES': 'es',\n 'fr-FR': 'fr-CA',\n ...OVERWRITE_LOCALE_MAP,\n}\n\nfunction getTranslationFallbacks(locale: string): Locale[] {\n if (FALLBACK_LOCALE_MAP[locale]) {\n return [FALLBACK_LOCALE_MAP[locale], 'en']\n }\n\n return ['en']\n}\n\nfunction setTranslationFallbacks(\n I18n: I18nWithCDNFlag,\n isCDNEnabled: boolean | undefined\n) {\n if (isCDNEnabled === true) {\n I18n.locales[I18n.locale] = function () {\n return getFallbackList(I18n.locale)\n }\n } else {\n I18n.locales[I18n.locale] = function () {\n const fallbacks = getTranslationFallbacks(I18n.locale).filter(\n (locale) => locale !== I18n.locale\n )\n return [I18n.locale, ...fallbacks]\n }\n }\n\n return I18n\n}\n\ntype UseI18n = I18nConfig & {\n enableCDN?: boolean\n}\n\n/**\n * Hook to create I18n object.\n * @param {UseI18n} props - The I18n configuration.\n * @param {string} props.locale - The locale to use.\n * @param {Record<string, string>} props.translations - The translations to use.\n * @param {boolean} props.enableCDN - Whether to pull core-react translations from the CDN or not, by default it follows the value passed down through the parent I18nProvider.\n * @returns {I18nWithCDNFlag} The I18n object.\n */\nexport function useI18n({\n locale,\n translations: _translations = {},\n enableCDN,\n}: UseI18n): I18nWithCDNFlag {\n const i18nContext: I18nWithCDNFlag | undefined = React.useContext(I18nContext)\n\n const isCDNEnabled = isCDNFeatureFlagEnabled(i18nContext, enableCDN)\n\n const coreCDNTranslations = useRequestTranslations(\n {\n locale: locale ?? 'en',\n type: 'file',\n absolute_file_path: (locale) =>\n `core/packages/core-react/src/_locales/${locale}.json`,\n },\n { en, pseudo },\n {\n oldTranslations: coreTranslations,\n enableCDN: isCDNEnabled,\n }\n )\n\n const translations = R.mergeDeepLeft(\n _translations,\n coreCDNTranslations.translations\n )\n\n const I18n = createI18njs({\n locale,\n translations,\n })\n\n const I18nWithFallbacks = setTranslationFallbacks(I18n, isCDNEnabled)\n\n I18nWithFallbacks.enableCDN = isCDNEnabled\n\n return I18nWithFallbacks\n}\n\nexport const I18nContext: React.Context<I18nWithCDNFlag> = React.createContext(\n createI18njs({\n locale: 'en',\n translations: { en: coreTranslations.en },\n })\n)\n\n/**\n * Provider to wrap the application with the I18n context.\n * @param {PropsWithChildren<UseI18n>} props - The I18n configuration.\n * @param {React.ReactNode} props.children - The children to render.\n * @param {UseI18n} props.locale - The locale to use.\n * @param {Record<string, string>} props.translations - The translations to use.\n * @param {boolean} props.enableCDN - Whether to pull core-react translations from the CDN or not, by default it follows the value passed down through the parent I18nProvider.\n * @returns {React.ReactNode} The I18n context instance.\n */\nexport function I18nProvider({\n children,\n ...props\n}: PropsWithChildren<UseI18n>) {\n return (\n <I18nContext.Provider value={useI18n(props)}>\n {children}\n </I18nContext.Provider>\n )\n}\n\n// Base type of user provider translations type\ntype DeepStringRecord = {\n [key: string]: string | DeepStringRecord\n}\n\ntype PluralizationForm = {\n zero?: string\n one: string\n other: string\n}\n\n// Type to get nested key paths with dot notation\ntype DotPrefix<T extends string> = T extends '' ? '' : `.${T}`\ntype DotNestedKeys<T> = (\n T extends string\n ? ''\n : T extends DeepStringRecord\n ? {\n [K in keyof T]: K extends string\n ? T[K] extends PluralizationForm\n ? `${K}`\n : T[K] extends DeepStringRecord\n ? `${K}${DotPrefix<DotNestedKeys<T[K]>>}`\n : `${K}`\n : never\n }[keyof T]\n : ''\n) extends infer D\n ? Extract<D, string>\n : never\n\n// Type to get the literal string type from a path\ntype StringLiteralPathValue<\n T,\n P extends string\n> = P extends `${infer K}.${infer Rest}`\n ? K extends keyof T\n ? T[K] extends PluralizationForm\n ? T[K]\n : T[K] extends DeepStringRecord\n ? StringLiteralPathValue<T[K], Rest>\n : never\n : never\n : P extends keyof T\n ? T[P] extends PluralizationForm\n ? T[P]\n : T[P] extends string\n ? T[P]\n : never\n : never\n\n// Check if a string has any interpolation variables\ntype HasInterpolation<T extends string> =\n T extends `${string}%{${string}}${string}` ? true : false\n\n// Extract interpolation variables from a string\ntype ExtractInterpolationVars<T extends string> =\n T extends `${infer _Before}%{${infer Param}}${infer After}`\n ? Param | ExtractInterpolationVars<After>\n : never\n\n// always allowed values in the interpolation object (remove [key: string]: any in favor of our strong types)\ntype ExplicitTranslateOptions = {\n [K in keyof I18n.TranslateOptions as string extends K\n ? never\n : K]: I18n.TranslateOptions[K]\n}\n\ntype InterpolationParams<T extends string> = HasInterpolation<T> extends true\n ? {\n [K in ExtractInterpolationVars<T>]: string\n } & {\n [K in keyof ExplicitTranslateOptions]?: ExplicitTranslateOptions[K]\n }\n : never\n\ntype PluralizationParams<T extends PluralizationForm> = {\n count: number\n} & (\n | (T['zero'] extends string\n ? { count: 0 } & { [K in ExtractInterpolationVars<T['zero']>]: string }\n : {})\n | (T['one'] extends string\n ? { count: 1 } & { [K in ExtractInterpolationVars<T['one']>]: string }\n : {})\n | (T['other'] extends string\n ? { count: number } & {\n [K in ExtractInterpolationVars<T['other']>]: string\n }\n : {})\n) & {\n [K in keyof ExplicitTranslateOptions]?: ExplicitTranslateOptions[K]\n }\n\ntype InterpolationOrPluralizationParams<T> = T extends PluralizationForm\n ? [PluralizationParams<T>]\n : T extends string\n ? InterpolationParams<T> extends never\n ? [ExplicitTranslateOptions?]\n : [InterpolationParams<T>]\n : [ExplicitTranslateOptions?]\n\ntype TypedTranslate<Translations> = <P extends DotNestedKeys<Translations>>(\n path: P,\n ...args: InterpolationOrPluralizationParams<\n StringLiteralPathValue<Translations, P>\n >\n) => StringLiteralPathValue<Translations, P>\n\ntype I18njsWithTypedTranslate<Translations> = Omit<\n I18nWithCDNFlag,\n 't' | 'translate'\n> & {\n t: TypedTranslate<Translations>\n translate: TypedTranslate<Translations>\n}\n\nexport function useI18nContext<\n Translations extends DeepStringRecord | undefined = undefined\n>(): Translations extends undefined\n ? I18nWithCDNFlag\n : I18njsWithTypedTranslate<NonNullable<Translations>>\n// overload for when no generic is provided\nexport function useI18nContext(): I18nWithCDNFlag\n\n/**\n * Hook to access the I18n context.\n *\n * @template Translations - An optional generic to provide type safety for translations.\n * If specified, it enables typed access to the `t` and `translate` methods of the I18n instance.\n * These methods will have type safe access to both the tranlsation scope as well as the interpolation variables.\n * If not specified, the default I18nWithCDN instance is returned.\n *\n * @returns {I18nWithCDNFlag | I18njsWithTypedTranslate<Translations>} The I18n context instance,\n * either with or without typed translations based on the provided generic.\n */\nexport function useI18nContext<\n Translations extends DeepStringRecord | undefined = undefined\n>() {\n const ctx = React.useContext(I18nContext)\n\n if (!ctx) {\n // TODO investigate a way to do warnings that won't annoy people\n // we probably need to introduce a build system to have nice dev warnings\n // console.warn()\n }\n\n // Cast to typing if user has provided a type\n return ctx as Translations extends undefined\n ? I18nWithCDNFlag\n : I18njsWithTypedTranslate<NonNullable<Translations>>\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"I18n.js","names":["getFallbackList","isCDNFeatureFlagEnabled","useRequestTranslations","createI18njs","R","React","deDE","enAU","enCA","enGB","en","esES","es","frCA","frFR","isIS","itIT","jaJP","nbNO","plPL","pseudo","ptBR","ptPT","thTH","zhSG","zhTW","OVERWRITE_LOCALE_MAP","coreTranslations","FALLBACK_LOCALE_MAP","_objectSpread","getTranslationFallbacks","locale","setTranslationFallbacks","I18n","isCDNEnabled","locales","fallbacks","filter","concat","_toConsumableArray","useI18n","_ref","_ref$translations","translations","_translations","enableCDN","i18nContext","useContext","I18nContext","coreCDNTranslations","type","absolute_file_path","oldTranslations","mergeDeepLeft","I18nWithFallbacks","createContext","I18nProvider","_ref2","children","props","_objectWithoutProperties","_excluded","createElement","Provider","value","useI18nContext","ctx"],"sources":["../../src/_hooks/I18n.tsx"],"sourcesContent":["import {\n getFallbackList,\n isCDNFeatureFlagEnabled,\n useRequestTranslations,\n} from '@procore/cdn-translations'\nimport type { I18njs, I18njsConfig } from '@procore/core-i18n-js'\nimport { createI18njs } from '@procore/core-i18n-js'\nimport * as R from 'ramda'\nimport React, { type PropsWithChildren } from 'react'\nimport deDE from '../_locales/de-DE.json'\nimport enAU from '../_locales/en-AU.json'\nimport enCA from '../_locales/en-CA.json'\nimport enGB from '../_locales/en-GB.json'\nimport en from '../_locales/en.json'\nimport esES from '../_locales/es-ES.json'\nimport es from '../_locales/es.json'\nimport frCA from '../_locales/fr-CA.json'\nimport frFR from '../_locales/fr-FR.json'\nimport isIS from '../_locales/is-IS.json'\nimport itIT from '../_locales/it-IT.json'\nimport jaJP from '../_locales/ja-JP.json'\nimport nbNO from '../_locales/nb-NO.json'\nimport plPL from '../_locales/pl-PL.json'\nimport pseudo from '../_locales/pseudo.json'\nimport ptBR from '../_locales/pt-BR.json'\nimport ptPT from '../_locales/pt-PT.json'\nimport thTH from '../_locales/th-TH.json'\nimport zhSG from '../_locales/zh-SG.json'\nimport zhTW from '../_locales/zh-TW.json'\nimport { OVERWRITE_LOCALE_MAP } from './getI18nProviderLocale'\n\ntype AssertExtends<T, U extends T> = U\n\n// Incase of error, Make sure I18njsConfig['locale'] has the same locales as Locale\ntype _ = AssertExtends<I18njsConfig['locale'], Locale>\n\ntype I18nConfig = Omit<I18njsConfig, 'I18n'>\n\ntype I18nWithCDNFlag = I18njs & {\n enableCDN?: boolean\n}\n\n/**\n * @deprecated this type will no longer be supported from core-i18n-js,\n * to have a type safe Locale use TmsSupportedLocale or AllLocales from [Globalization toolkit](https://github.com/procore/globalization-toolkit)\n * @deprecatedSince 12.10.0\n */\nexport type Locale =\n | 'de-DE'\n | 'en-AE'\n | 'en-AU'\n | 'en-CA'\n | 'en-GB'\n | 'en-SG'\n | 'en'\n | 'es-ES'\n | 'es'\n | 'fr-CA'\n | 'fr-FR'\n | 'is-IS'\n | 'ja-JP'\n | 'pt-BR'\n | 'th-TH'\n | 'zh-SG'\n | 'pseudo'\n | 'pl-PL'\n | 'nb-NO'\n | 'zh-TW'\n | 'it-IT'\n | 'pt-PT'\n\n/* Set up core translations */\nexport const coreTranslations = {\n 'de-DE': deDE,\n en,\n 'en-AU': enAU,\n 'en-CA': enCA,\n 'en-GB': enGB,\n es,\n 'es-ES': esES,\n 'fr-CA': frCA,\n 'fr-FR': frFR,\n 'is-IS': isIS,\n 'ja-JP': jaJP,\n pseudo,\n 'pt-BR': ptBR,\n 'th-TH': thTH,\n 'zh-SG': zhSG,\n 'pl-PL': plPL,\n 'nb-NO': nbNO,\n 'zh-TW': zhTW,\n 'it-IT': itIT,\n 'pt-PT': ptPT,\n} as const\n\nconst FALLBACK_LOCALE_MAP: Record<string, Locale> = {\n 'es-ES': 'es',\n 'fr-FR': 'fr-CA',\n ...OVERWRITE_LOCALE_MAP,\n}\n\nfunction getTranslationFallbacks(locale: string): Locale[] {\n if (FALLBACK_LOCALE_MAP[locale]) {\n return [FALLBACK_LOCALE_MAP[locale], 'en']\n }\n\n return ['en']\n}\n\nfunction setTranslationFallbacks(\n I18n: I18nWithCDNFlag,\n isCDNEnabled: boolean | undefined\n) {\n if (isCDNEnabled === true) {\n I18n.locales[I18n.locale] = function () {\n return getFallbackList(I18n.locale)\n }\n } else {\n I18n.locales[I18n.locale] = function () {\n const fallbacks = getTranslationFallbacks(I18n.locale).filter(\n (locale) => locale !== I18n.locale\n )\n return [I18n.locale, ...fallbacks]\n }\n }\n\n return I18n\n}\n\ntype UseI18n = I18nConfig & {\n enableCDN?: boolean\n}\n\n/**\n * Hook to create I18n object.\n * @param {UseI18n} props - The I18n configuration.\n * @param {string} props.locale - The locale to use.\n * @param {Record<string, string>} props.translations - The translations to use.\n * @param {boolean} props.enableCDN - Whether to pull core-react translations from the CDN or not, by default it follows the value passed down through the parent I18nProvider.\n * @returns {I18nWithCDNFlag} The I18n object.\n */\nexport function useI18n({\n locale,\n translations: _translations = {},\n enableCDN,\n}: UseI18n): I18nWithCDNFlag {\n const i18nContext: I18nWithCDNFlag | undefined = React.useContext(I18nContext)\n\n const isCDNEnabled = isCDNFeatureFlagEnabled(i18nContext, enableCDN)\n\n const coreCDNTranslations = useRequestTranslations(\n {\n locale: locale ?? 'en',\n type: 'file',\n absolute_file_path: (locale) =>\n `core/packages/core-react/src/_locales/${locale}.json`,\n },\n { en, pseudo },\n {\n oldTranslations: coreTranslations,\n enableCDN: isCDNEnabled,\n }\n )\n\n const translations = R.mergeDeepLeft(\n _translations,\n coreCDNTranslations.translations\n )\n\n const I18n = createI18njs({\n locale,\n translations,\n })\n\n const I18nWithFallbacks = setTranslationFallbacks(I18n, isCDNEnabled)\n\n I18nWithFallbacks.enableCDN = isCDNEnabled\n\n return I18nWithFallbacks\n}\n\nexport const I18nContext: React.Context<I18nWithCDNFlag> = React.createContext(\n createI18njs({\n locale: 'en',\n translations: { en: coreTranslations.en },\n })\n)\n\n/**\n * Provider to wrap the application with the I18n context.\n * @param {PropsWithChildren<UseI18n>} props - The I18n configuration.\n * @param {React.ReactNode} props.children - The children to render.\n * @param {UseI18n} props.locale - The locale to use.\n * @param {Record<string, string>} props.translations - The translations to use.\n * @param {boolean} props.enableCDN - Whether to pull core-react translations from the CDN or not, by default it follows the value passed down through the parent I18nProvider.\n * @returns {React.ReactNode} The I18n context instance.\n */\nexport function I18nProvider({\n children,\n ...props\n}: PropsWithChildren<UseI18n>) {\n return (\n <I18nContext.Provider value={useI18n(props)}>\n {children}\n </I18nContext.Provider>\n )\n}\n\n// Base type of user provider translations type\ntype DeepStringRecord = {\n [key: string]: string | DeepStringRecord\n}\n\ntype PluralizationForm = {\n zero?: string\n one: string\n other: string\n}\n\n// Type to get nested key paths with dot notation\ntype DotPrefix<T extends string> = T extends '' ? '' : `.${T}`\ntype DotNestedKeys<T> = (\n T extends string\n ? ''\n : T extends DeepStringRecord\n ? {\n [K in keyof T]: K extends string\n ? T[K] extends PluralizationForm\n ? `${K}`\n : T[K] extends DeepStringRecord\n ? `${K}${DotPrefix<DotNestedKeys<T[K]>>}`\n : `${K}`\n : never\n }[keyof T]\n : ''\n) extends infer D\n ? Extract<D, string>\n : never\n\n// Type to get the literal string type from a path\ntype StringLiteralPathValue<\n T,\n P extends string\n> = P extends `${infer K}.${infer Rest}`\n ? K extends keyof T\n ? T[K] extends PluralizationForm\n ? T[K]\n : T[K] extends DeepStringRecord\n ? StringLiteralPathValue<T[K], Rest>\n : never\n : never\n : P extends keyof T\n ? T[P] extends PluralizationForm\n ? T[P]\n : T[P] extends string\n ? T[P]\n : never\n : never\n\n// Check if a string has any interpolation variables\ntype HasInterpolation<T extends string> =\n T extends `${string}%{${string}}${string}` ? true : false\n\n// Extract interpolation variables from a string\ntype ExtractInterpolationVars<T extends string> =\n T extends `${infer _Before}%{${infer Param}}${infer After}`\n ? Param | ExtractInterpolationVars<After>\n : never\n\n// always allowed values in the interpolation object (remove [key: string]: any in favor of our strong types)\ntype ExplicitTranslateOptions = {\n [K in keyof I18n.TranslateOptions as string extends K\n ? never\n : K]: I18n.TranslateOptions[K]\n}\n\ntype InterpolationParams<T extends string> = HasInterpolation<T> extends true\n ? {\n [K in ExtractInterpolationVars<T>]: string\n } & {\n [K in keyof ExplicitTranslateOptions]?: ExplicitTranslateOptions[K]\n }\n : never\n\ntype PluralizationParams<T extends PluralizationForm> = {\n count: number\n} & (\n | (T['zero'] extends string\n ? { count: 0 } & { [K in ExtractInterpolationVars<T['zero']>]: string }\n : {})\n | (T['one'] extends string\n ? { count: 1 } & { [K in ExtractInterpolationVars<T['one']>]: string }\n : {})\n | (T['other'] extends string\n ? { count: number } & {\n [K in ExtractInterpolationVars<T['other']>]: string\n }\n : {})\n) & {\n [K in keyof ExplicitTranslateOptions]?: ExplicitTranslateOptions[K]\n }\n\ntype InterpolationOrPluralizationParams<T> = T extends PluralizationForm\n ? [PluralizationParams<T>]\n : T extends string\n ? InterpolationParams<T> extends never\n ? [ExplicitTranslateOptions?]\n : [InterpolationParams<T>]\n : [ExplicitTranslateOptions?]\n\ntype TypedTranslate<Translations> = <P extends DotNestedKeys<Translations>>(\n path: P,\n ...args: InterpolationOrPluralizationParams<\n StringLiteralPathValue<Translations, P>\n >\n) => StringLiteralPathValue<Translations, P>\n\ntype I18njsWithTypedTranslate<Translations> = Omit<\n I18nWithCDNFlag,\n 't' | 'translate'\n> & {\n t: TypedTranslate<Translations>\n translate: TypedTranslate<Translations>\n}\n\nexport function useI18nContext<\n Translations extends DeepStringRecord | undefined = undefined\n>(): Translations extends undefined\n ? I18nWithCDNFlag\n : I18njsWithTypedTranslate<NonNullable<Translations>>\n// overload for when no generic is provided\nexport function useI18nContext(): I18nWithCDNFlag\n\n/**\n * Hook to access the I18n context.\n *\n * @template Translations - An optional generic to provide type safety for translations.\n * If specified, it enables typed access to the `t` and `translate` methods of the I18n instance.\n * These methods will have type safe access to both the tranlsation scope as well as the interpolation variables.\n * If not specified, the default I18nWithCDN instance is returned.\n *\n * @returns {I18nWithCDNFlag | I18njsWithTypedTranslate<Translations>} The I18n context instance,\n * either with or without typed translations based on the provided generic.\n */\nexport function useI18nContext<\n Translations extends DeepStringRecord | undefined = undefined\n>() {\n const ctx = React.useContext(I18nContext)\n\n if (!ctx) {\n // TODO investigate a way to do warnings that won't annoy people\n // we probably need to introduce a build system to have nice dev warnings\n // console.warn()\n }\n\n // Cast to typing if user has provided a type\n return ctx as Translations extends undefined\n ? I18nWithCDNFlag\n : I18njsWithTypedTranslate<NonNullable<Translations>>\n}\n"],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * @deprecatedSince 12.10.0
5
5
  */
6
6
  // TODO breaking change requiring a new minimum version of the peerDep, replace with GTK imports
7
- var SUPPORTED_LOCALES = ['de-DE', 'en-AU', 'en-CA', 'en-GB', 'en', 'es-ES', 'es', 'fr-CA', 'fr-FR', 'is-IS', 'ja-JP', 'pl-PL', 'pseudo', 'pt-BR', 'th-TH', 'zh-SG'];
7
+ var SUPPORTED_LOCALES = ['de-DE', 'en-AU', 'en-CA', 'en-GB', 'en', 'es-ES', 'es', 'fr-CA', 'fr-FR', 'is-IS', 'ja-JP', 'pl-PL', 'pseudo', 'pt-BR', 'th-TH', 'zh-SG', 'zh-TW', 'it-IT', 'pt-PT', 'nb-NO'];
8
8
  /*
9
9
  all locales that should directly use a different locale. Any other unsupported locale will fallback to 'en'
10
10
  this should match https://github.com/procore/procore/blob/d0515461046b8d018c8fa8ede1ca8b7aa2fcacf8/config/application.rb#L234C1-L240C7
@@ -1 +1 @@
1
- {"version":3,"file":"getI18nProviderLocale.js","names":["SUPPORTED_LOCALES","OVERWRITE_LOCALE_MAP","getI18nProviderLocale","envLocale","includes"],"sources":["../../src/_hooks/getI18nProviderLocale.ts"],"sourcesContent":["import type { Locale } from './I18n'\n\n// All and only locales that will receive Smartling translations and can be directly fed into <I18nProvider>\n/**\n * @deprecated you can use TMS_SUPPORTED_LOCALE from [Globalization toolkit](https://github.com/procore/globalization-toolkit)\n * @deprecatedSince 12.10.0\n */\n// TODO breaking change requiring a new minimum version of the peerDep, replace with GTK imports\nconst SUPPORTED_LOCALES: Locale[] = [\n 'de-DE',\n 'en-AU',\n 'en-CA',\n 'en-GB',\n 'en',\n 'es-ES',\n 'es',\n 'fr-CA',\n 'fr-FR',\n 'is-IS',\n 'ja-JP',\n 'pl-PL',\n 'pseudo',\n 'pt-BR',\n 'th-TH',\n 'zh-SG',\n]\n/*\n all locales that should directly use a different locale. Any other unsupported locale will fallback to 'en'\n this should match https://github.com/procore/procore/blob/d0515461046b8d018c8fa8ede1ca8b7aa2fcacf8/config/application.rb#L234C1-L240C7\n for any locales that are not listed in SUPPORTED_LOCALES\n*/\n/**\n * @deprecated you can use OVERWRITE_LOCALE_MAP from [Globalization toolkit](https://github.com/procore/globalization-toolkit)\n * @deprecatedSince 12.10.0\n */\nexport const OVERWRITE_LOCALE_MAP: Record<string, Locale> = {\n 'en-AE': 'en-GB',\n 'en-SG': 'en-GB',\n 'es-419': 'es',\n} as const\n\n/**\n * @deprecatedSince 12.10.0\n * @deprecated you can use getOverrideLocale from [Globalization toolkit](https://procore.github.io/globalization-toolkit/#md:getoverridelocale-function)\n * Returns the locale that should be used for the I18nProvider based on the environment locale\n * @param envLocale - the locale from the environment\n * @returns the locale that should be used for the I18nProvider\n */\nexport function getI18nProviderLocale(envLocale: string): Locale {\n if (SUPPORTED_LOCALES.includes(envLocale as Locale)) {\n return envLocale as Locale\n }\n if (OVERWRITE_LOCALE_MAP[envLocale]) {\n return OVERWRITE_LOCALE_MAP[envLocale]\n }\n\n return 'en'\n}\n"],"mappings":"AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMA,iBAA2B,GAAG,CAClC,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,QAAQ,EACR,OAAO,EACP,OAAO,EACP,OAAO,CACR;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,oBAA4C,GAAG;EAC1D,OAAO,EAAE,OAAO;EAChB,OAAO,EAAE,OAAO;EAChB,QAAQ,EAAE;AACZ,CAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAACC,SAAiB,EAAU;EAC/D,IAAIH,iBAAiB,CAACI,QAAQ,CAACD,SAAmB,CAAC,EAAE;IACnD,OAAOA,SAAS;EAClB;EACA,IAAIF,oBAAoB,CAACE,SAAS,CAAC,EAAE;IACnC,OAAOF,oBAAoB,CAACE,SAAS,CAAC;EACxC;EAEA,OAAO,IAAI;AACb"}
1
+ {"version":3,"file":"getI18nProviderLocale.js","names":["SUPPORTED_LOCALES","OVERWRITE_LOCALE_MAP","getI18nProviderLocale","envLocale","includes"],"sources":["../../src/_hooks/getI18nProviderLocale.ts"],"sourcesContent":["import type { Locale } from './I18n'\n\n// All and only locales that will receive Smartling translations and can be directly fed into <I18nProvider>\n/**\n * @deprecated you can use TMS_SUPPORTED_LOCALE from [Globalization toolkit](https://github.com/procore/globalization-toolkit)\n * @deprecatedSince 12.10.0\n */\n// TODO breaking change requiring a new minimum version of the peerDep, replace with GTK imports\nconst SUPPORTED_LOCALES: Locale[] = [\n 'de-DE',\n 'en-AU',\n 'en-CA',\n 'en-GB',\n 'en',\n 'es-ES',\n 'es',\n 'fr-CA',\n 'fr-FR',\n 'is-IS',\n 'ja-JP',\n 'pl-PL',\n 'pseudo',\n 'pt-BR',\n 'th-TH',\n 'zh-SG',\n 'zh-TW',\n 'it-IT',\n 'pt-PT',\n 'nb-NO',\n]\n/*\n all locales that should directly use a different locale. Any other unsupported locale will fallback to 'en'\n this should match https://github.com/procore/procore/blob/d0515461046b8d018c8fa8ede1ca8b7aa2fcacf8/config/application.rb#L234C1-L240C7\n for any locales that are not listed in SUPPORTED_LOCALES\n*/\n/**\n * @deprecated you can use OVERWRITE_LOCALE_MAP from [Globalization toolkit](https://github.com/procore/globalization-toolkit)\n * @deprecatedSince 12.10.0\n */\nexport const OVERWRITE_LOCALE_MAP: Record<string, Locale> = {\n 'en-AE': 'en-GB',\n 'en-SG': 'en-GB',\n 'es-419': 'es',\n} as const\n\n/**\n * @deprecatedSince 12.10.0\n * @deprecated you can use getOverrideLocale from [Globalization toolkit](https://procore.github.io/globalization-toolkit/#md:getoverridelocale-function)\n * Returns the locale that should be used for the I18nProvider based on the environment locale\n * @param envLocale - the locale from the environment\n * @returns the locale that should be used for the I18nProvider\n */\nexport function getI18nProviderLocale(envLocale: string): Locale {\n if (SUPPORTED_LOCALES.includes(envLocale as Locale)) {\n return envLocale as Locale\n }\n if (OVERWRITE_LOCALE_MAP[envLocale]) {\n return OVERWRITE_LOCALE_MAP[envLocale]\n }\n\n return 'en'\n}\n"],"mappings":"AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMA,iBAA2B,GAAG,CAClC,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,QAAQ,EACR,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,CACR;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,oBAA4C,GAAG;EAC1D,OAAO,EAAE,OAAO;EAChB,OAAO,EAAE,OAAO;EAChB,QAAQ,EAAE;AACZ,CAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAACC,SAAiB,EAAU;EAC/D,IAAIH,iBAAiB,CAACI,QAAQ,CAACD,SAAmB,CAAC,EAAE;IACnD,OAAOA,SAAS;EAClB;EACA,IAAIF,oBAAoB,CAACE,SAAS,CAAC,EAAE;IACnC,OAAOF,oBAAoB,CAACE,SAAS,CAAC;EACxC;EAEA,OAAO,IAAI;AACb"}
@@ -105,7 +105,7 @@
105
105
  "itemAdded" : "Das verknüpfte Element wurde erfolgreich verlinkt.",
106
106
  "itemAdditionFailed" : "Leider konnte das Element nicht angehängt werden. Bitte versuchen Sie es erneut.",
107
107
  "itemRemoved" : "Das verlinkte Element wurde erfolgreich entfernt.",
108
- "requestError" : "Es ist leider ein Fehler aufgetreten. Bitte versuchen Sie es erneut."
108
+ "requestError" : "Entschuldigung, da ist etwas schief gelaufen. Bitte versuchen Sie es erneut."
109
109
  }
110
110
  }
111
111
  },
@@ -299,7 +299,8 @@
299
299
  "select" : {
300
300
  "clear" : "Feld löschen",
301
301
  "search" : "Suchen",
302
- "selectAll" : "Alle auswählen"
302
+ "selectAll" : "Alle auswählen",
303
+ "noResult" : "Keine Ergebnisse"
303
304
  },
304
305
  "splitViewCard" : {
305
306
  "a11y" : {
@@ -377,4 +378,4 @@
377
378
  }
378
379
  }
379
380
  }
380
- }
381
+ }
@@ -299,7 +299,8 @@
299
299
  "select" : {
300
300
  "clear" : "Delete field",
301
301
  "search" : "Search",
302
- "selectAll" : "Select all"
302
+ "selectAll" : "Select all",
303
+ "noResult" : "No results"
303
304
  },
304
305
  "splitViewCard" : {
305
306
  "a11y" : {
@@ -377,4 +378,4 @@
377
378
  }
378
379
  }
379
380
  }
380
- }
381
+ }
@@ -299,7 +299,8 @@
299
299
  "select" : {
300
300
  "clear" : "Delete field",
301
301
  "search" : "Search",
302
- "selectAll" : "Select all"
302
+ "selectAll" : "Select all",
303
+ "noResult" : "No results"
303
304
  },
304
305
  "splitViewCard" : {
305
306
  "a11y" : {
@@ -377,4 +378,4 @@
377
378
  }
378
379
  }
379
380
  }
380
- }
381
+ }
@@ -299,7 +299,8 @@
299
299
  "select" : {
300
300
  "clear" : "Delete field",
301
301
  "search" : "Search",
302
- "selectAll" : "Select all"
302
+ "selectAll" : "Select all",
303
+ "noResult" : "No results"
303
304
  },
304
305
  "splitViewCard" : {
305
306
  "a11y" : {
@@ -377,4 +378,4 @@
377
378
  }
378
379
  }
379
380
  }
380
- }
381
+ }
@@ -299,7 +299,8 @@
299
299
  "select": {
300
300
  "clear": "Delete field",
301
301
  "search": "Search",
302
- "selectAll": "Select All"
302
+ "selectAll": "Select All",
303
+ "noResult": "No results"
303
304
  },
304
305
  "splitViewCard": {
305
306
  "a11y": {
@@ -299,7 +299,8 @@
299
299
  "select" : {
300
300
  "clear" : "Eliminar campo",
301
301
  "search" : "Buscar",
302
- "selectAll" : "Seleccionar todo"
302
+ "selectAll" : "Seleccionar todo",
303
+ "noResult" : "No hay resultados"
303
304
  },
304
305
  "splitViewCard" : {
305
306
  "a11y" : {
@@ -377,4 +378,4 @@
377
378
  }
378
379
  }
379
380
  }
380
- }
381
+ }
@@ -54,7 +54,7 @@
54
54
  "composeNewEmail" : "Escribir correo electrónico",
55
55
  "startNewCommunication" : "Para iniciar una comunicación nueva asociada con este ítem, envíe un correo electrónico a",
56
56
  "emptyStateTitle" : "Envíe un correo electrónico para comenzar",
57
- "emptyStateDescription" : "Cuando usted y su equipo envíen correos electrónicos sobre este ítem, puede hacer referencia a ellos aquí.",
57
+ "emptyStateDescription" : "Cuando usted y su equipo envíen correos electrónicos sobre este ítem, puede consultarlos aquí.",
58
58
  "reply" : "Responder",
59
59
  "cancel" : "Cancelar",
60
60
  "subject" : "Asunto",
@@ -105,7 +105,7 @@
105
105
  "itemAdded" : "El ítem relacionado se vinculó correctamente.",
106
106
  "itemAdditionFailed" : "Lo sentimos, no se pudo adjuntar el ítem. Inténtelo de nuevo.",
107
107
  "itemRemoved" : "El ítem relacionado se eliminó correctamente.",
108
- "requestError" : "Se produjo un error. Vuelva a intentarlo."
108
+ "requestError" : "Se produjo un error. Inténtelo de nuevo."
109
109
  }
110
110
  }
111
111
  },
@@ -203,7 +203,7 @@
203
203
  "standaloneMaxFileSizeError" : "Uno o más de sus archivos exceden el tamaño máximo de archivo de {{sizeInMegabytes}} MB. Intente cargar un archivo más pequeño.",
204
204
  "standaloneZeroFileSizeError" : "Uno o más de sus archivos son archivos vacíos (0 bytes) y no se pueden cargar. Intente cargar un archivo más grande.",
205
205
  "uploadTotalProgress" : {
206
- "withFailed" : "Progreso total: {{totalProgress}}%. Cargado {{uploaded}} de {{total}}. Error {{failed}}.",
206
+ "withFailed" : "Progreso total: {{totalProgress}} %. Cargado {{uploaded}} de {{total}}. Error {{failed}}.",
207
207
  "withoutFailed" : "Progreso total: {{totalProgress}}%. Cargado {{uploaded}} de {{total}}."
208
208
  }
209
209
  },
@@ -299,7 +299,8 @@
299
299
  "select" : {
300
300
  "clear" : "Eliminar campo",
301
301
  "search" : "Buscar",
302
- "selectAll" : "Seleccionar todo"
302
+ "selectAll" : "Seleccionar todo",
303
+ "noResult" : "No hay resultados"
303
304
  },
304
305
  "splitViewCard" : {
305
306
  "a11y" : {
@@ -377,4 +378,4 @@
377
378
  }
378
379
  }
379
380
  }
380
- }
381
+ }
@@ -105,7 +105,7 @@
105
105
  "itemAdded" : "L'item apparenté a été lié avec succès.",
106
106
  "itemAdditionFailed" : "Désolé, l'item n'a pas pu être associé. Veuillez réessayer.",
107
107
  "itemRemoved" : "L'item apparenté a été supprimé avec succès.",
108
- "requestError" : "Désolé, une erreur s'est produite. Veuillez réessayer."
108
+ "requestError" : "Désolé, un problème est survenu. Veuillez réessayer."
109
109
  }
110
110
  }
111
111
  },
@@ -299,7 +299,8 @@
299
299
  "select" : {
300
300
  "clear" : "Supprimer le champ",
301
301
  "search" : "Rechercher",
302
- "selectAll" : "Sélectionner tout"
302
+ "selectAll" : "Sélectionner tout",
303
+ "noResult" : "Aucun résultat"
303
304
  },
304
305
  "splitViewCard" : {
305
306
  "a11y" : {
@@ -377,4 +378,4 @@
377
378
  }
378
379
  }
379
380
  }
380
- }
381
+ }
@@ -105,7 +105,7 @@
105
105
  "itemAdded" : "L'élément lié a été lié avec succès.",
106
106
  "itemAdditionFailed" : "Désolé, l'élément n'a pas pu être associé. Veuillez réessayer.",
107
107
  "itemRemoved" : "L'élément lié a été supprimé avec succès.",
108
- "requestError" : "Désolé, un problème est survenu. Veuillez réessayer."
108
+ "requestError" : "Désolé, une erreur s'est produite. Veuillez réessayer."
109
109
  }
110
110
  }
111
111
  },
@@ -299,7 +299,8 @@
299
299
  "select" : {
300
300
  "clear" : "Supprimer le champ",
301
301
  "search" : "Rechercher",
302
- "selectAll" : "Tout sélectionner"
302
+ "selectAll" : "Tout sélectionner",
303
+ "noResult" : "Aucun résultat"
303
304
  },
304
305
  "splitViewCard" : {
305
306
  "a11y" : {
@@ -377,4 +378,4 @@
377
378
  }
378
379
  }
379
380
  }
380
- }
381
+ }
@@ -105,7 +105,7 @@
105
105
  "itemAdded" : "Tengd atriði var tengd.",
106
106
  "itemAdditionFailed" : "Því miður var ekki hægt að festa hlutinn. Vinsamlegast reyndu aftur.",
107
107
  "itemRemoved" : "Tengd atriði var fjarlægð.",
108
- "requestError" : "Afsakið, eitthvað fór úrskeiðis. Vinsamlegast reyndu aftur."
108
+ "requestError" : "Afsakið, eitthvað fór úrskeiðis. Vinsamlegast reynið aftur."
109
109
  }
110
110
  }
111
111
  },
@@ -299,7 +299,8 @@
299
299
  "select" : {
300
300
  "clear" : "Eyða reit",
301
301
  "search" : "Leitaðu",
302
- "selectAll" : "Velja allt"
302
+ "selectAll" : "Velja allt",
303
+ "noResult" : "Engar niðurstöður"
303
304
  },
304
305
  "splitViewCard" : {
305
306
  "a11y" : {
@@ -377,4 +378,4 @@
377
378
  }
378
379
  }
379
380
  }
380
- }
381
+ }