@sincpro/mobile-ui 3.0.1 → 3.1.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 (308) hide show
  1. package/dist/Actions/Actions.Button.d.ts +6 -6
  2. package/dist/Actions/Actions.Button.js +650 -180
  3. package/dist/Actions/Actions.Dock.d.ts +1 -1
  4. package/dist/Actions/Actions.Dock.js +297 -18
  5. package/dist/Actions/Actions.FAB.js +100 -12
  6. package/dist/Actions/Actions.FilterButton.d.ts +17 -0
  7. package/dist/Actions/Actions.FilterButton.js +263 -33
  8. package/dist/Actions/Actions.IconButton.d.ts +1 -0
  9. package/dist/Actions/Actions.IconButton.js +196 -33
  10. package/dist/Actions/index.js +13 -13
  11. package/dist/Dialog/Confirmation.context.js +82 -16
  12. package/dist/Dialog/Dialog.ActionSheet.js +200 -41
  13. package/dist/Dialog/Dialog.Confirmation.js +168 -31
  14. package/dist/Dialog/Dialog.EditValue.js +449 -61
  15. package/dist/Dialog/Dialog.Sheet.d.ts +7 -3
  16. package/dist/Dialog/Dialog.Sheet.js +231 -15
  17. package/dist/Dialog/OverlayHost.d.ts +23 -0
  18. package/dist/Dialog/OverlayHost.js +196 -0
  19. package/dist/Dialog/SheetSurface.d.ts +24 -0
  20. package/dist/Dialog/SheetSurface.js +441 -0
  21. package/dist/Dialog/dialog-actions.d.ts +17 -0
  22. package/dist/Dialog/dialog-actions.js +59 -0
  23. package/dist/Dialog/index.d.ts +4 -1
  24. package/dist/Dialog/index.js +8 -7
  25. package/dist/Dialog/overlay.store.d.ts +24 -0
  26. package/dist/Dialog/overlay.store.js +59 -0
  27. package/dist/Dialog/requestConfirmation.js +20 -10
  28. package/dist/Display/Display.Accordion.js +185 -13
  29. package/dist/Display/Display.AmountSummary.js +206 -15
  30. package/dist/Display/Display.Avatar.js +93 -31
  31. package/dist/Display/Display.AvatarGroup.js +132 -17
  32. package/dist/Display/Display.Badge.d.ts +18 -2
  33. package/dist/Display/Display.Badge.js +117 -49
  34. package/dist/Display/Display.Card.js +163 -26
  35. package/dist/Display/Display.Carousel.js +459 -105
  36. package/dist/Display/Display.Chip.d.ts +4 -1
  37. package/dist/Display/Display.Chip.js +165 -31
  38. package/dist/Display/Display.CircleButton.d.ts +1 -0
  39. package/dist/Display/Display.CircleButton.js +86 -27
  40. package/dist/Display/Display.CopyableText.js +289 -66
  41. package/dist/Display/Display.CountRecords.js +60 -3
  42. package/dist/Display/Display.DataTable.js +123 -13
  43. package/dist/Display/Display.Date.js +243 -33
  44. package/dist/Display/Display.Divider.d.ts +10 -10
  45. package/dist/Display/Display.Divider.js +67 -20
  46. package/dist/Display/Display.ExpoImage.js +97 -8
  47. package/dist/Display/Display.GradientSurface.d.ts +9 -4
  48. package/dist/Display/Display.GradientSurface.js +196 -46
  49. package/dist/Display/Display.Icon.js +129 -15
  50. package/dist/Display/Display.IconBadge.js +95 -25
  51. package/dist/Display/Display.Image.d.ts +7 -1
  52. package/dist/Display/Display.Image.js +344 -39
  53. package/dist/Display/Display.KeyValue.js +90 -5
  54. package/dist/Display/Display.ListGroup.js +181 -9
  55. package/dist/Display/Display.ListItem.js +324 -28
  56. package/dist/Display/Display.Logo.js +84 -29
  57. package/dist/Display/Display.MediaCard.js +125 -4
  58. package/dist/Display/Display.MediaEmbed.d.ts +0 -5
  59. package/dist/Display/Display.MediaEmbed.js +170 -26
  60. package/dist/Display/Display.MenuButton.d.ts +2 -2
  61. package/dist/Display/Display.MenuButton.js +380 -94
  62. package/dist/Display/Display.MenuCard.js +122 -18
  63. package/dist/Display/Display.MenuGrid.js +43 -3
  64. package/dist/Display/Display.Monetary.js +90 -5
  65. package/dist/Display/Display.Pattern.js +306 -47
  66. package/dist/Display/Display.PriceTag.js +117 -14
  67. package/dist/Display/Display.ProductCard.js +154 -4
  68. package/dist/Display/Display.Rating.js +92 -11
  69. package/dist/Display/Display.SearchHistory.js +132 -6
  70. package/dist/Display/Display.SectionHeader.d.ts +5 -1
  71. package/dist/Display/Display.SectionHeader.js +125 -12
  72. package/dist/Display/Display.Stat.js +62 -3
  73. package/dist/Display/Display.StatCard.js +131 -7
  74. package/dist/Display/Display.StatusBadge.d.ts +29 -0
  75. package/dist/Display/Display.StatusBadge.js +68 -0
  76. package/dist/Display/Display.StatusDot.js +93 -18
  77. package/dist/Display/Display.Story.js +285 -35
  78. package/dist/Display/Display.StoryTray.js +354 -34
  79. package/dist/Display/Display.StoryViewer.js +571 -72
  80. package/dist/Display/Display.SwipeableRow.js +141 -20
  81. package/dist/Display/Display.Tag.d.ts +4 -1
  82. package/dist/Display/Display.Tag.js +66 -4
  83. package/dist/Display/Display.Timeline.js +102 -13
  84. package/dist/Display/Display.Tooltip.js +122 -26
  85. package/dist/Display/chevron.d.ts +6 -0
  86. package/dist/Display/chevron.js +32 -0
  87. package/dist/Display/count-badge.d.ts +21 -0
  88. package/dist/Display/count-badge.js +124 -0
  89. package/dist/Display/group-title.d.ts +10 -0
  90. package/dist/Display/group-title.js +53 -0
  91. package/dist/Display/icon-font.d.ts +3 -0
  92. package/dist/Display/icon-font.ios.d.ts +3 -0
  93. package/dist/Display/icon-font.ios.js +4 -0
  94. package/dist/Display/icon-font.js +7 -0
  95. package/dist/Display/icon-glyphs.d.ts +2 -0
  96. package/dist/Display/icon-glyphs.js +87 -0
  97. package/dist/Display/icon-map.d.ts +5 -1
  98. package/dist/Display/icon-map.js +340 -84
  99. package/dist/Display/icon-registry.d.ts +21 -0
  100. package/dist/Display/icon-registry.js +21 -0
  101. package/dist/Display/index.d.ts +6 -1
  102. package/dist/Display/index.js +53 -48
  103. package/dist/Display/pill.d.ts +16 -0
  104. package/dist/Display/pill.js +47 -0
  105. package/dist/Feedback/ErrorBoundary.js +35 -23
  106. package/dist/Feedback/Feedback.Banner.js +202 -24
  107. package/dist/Feedback/Feedback.DomainSplashScreen.js +246 -70
  108. package/dist/Feedback/Feedback.Empty.js +54 -3
  109. package/dist/Feedback/Feedback.EmptyState.js +114 -5
  110. package/dist/Feedback/Feedback.Error.d.ts +1 -1
  111. package/dist/Feedback/Feedback.Error.js +130 -5
  112. package/dist/Feedback/Feedback.Loading.d.ts +1 -1
  113. package/dist/Feedback/Feedback.Loading.js +70 -3
  114. package/dist/Feedback/Feedback.PermissionCard.js +161 -5
  115. package/dist/Feedback/Feedback.Progress.js +199 -41
  116. package/dist/Feedback/Feedback.ProgressCircle.js +184 -12
  117. package/dist/Feedback/Feedback.Skeleton.js +149 -36
  118. package/dist/Feedback/Feedback.Spinner.js +407 -79
  119. package/dist/Feedback/Feedback.Splash.js +240 -33
  120. package/dist/Feedback/Feedback.State.d.ts +17 -0
  121. package/dist/Feedback/Feedback.State.js +104 -0
  122. package/dist/Feedback/Toast.context.js +883 -167
  123. package/dist/Feedback/index.d.ts +3 -0
  124. package/dist/Feedback/index.js +15 -13
  125. package/dist/Form/Form.Checkbox.js +212 -22
  126. package/dist/Form/Form.ControlledCheckbox.d.ts +1 -1
  127. package/dist/Form/Form.ControlledCheckbox.js +46 -4
  128. package/dist/Form/Form.ControlledDropdown.d.ts +1 -1
  129. package/dist/Form/Form.ControlledDropdown.js +62 -4
  130. package/dist/Form/Form.ControlledInput.d.ts +4 -3
  131. package/dist/Form/Form.ControlledInput.js +72 -4
  132. package/dist/Form/Form.ControlledMonetaryInput.d.ts +6 -3
  133. package/dist/Form/Form.ControlledMonetaryInput.js +50 -4
  134. package/dist/Form/Form.ControlledRadioButton.d.ts +2 -2
  135. package/dist/Form/Form.ControlledRadioButton.js +45 -4
  136. package/dist/Form/Form.DatePicker.js +505 -107
  137. package/dist/Form/Form.Dropdown.js +303 -52
  138. package/dist/Form/Form.ErrorSummary.js +236 -44
  139. package/dist/Form/Form.Field.d.ts +24 -0
  140. package/dist/Form/Form.Field.js +55 -0
  141. package/dist/Form/Form.FractionalQuantityInput.js +508 -96
  142. package/dist/Form/Form.Input.d.ts +17 -3
  143. package/dist/Form/Form.Input.js +478 -29
  144. package/dist/Form/Form.KeyboardForm.d.ts +22 -8
  145. package/dist/Form/Form.KeyboardForm.js +83 -8
  146. package/dist/Form/Form.KeyboardToolbarHost.d.ts +14 -0
  147. package/dist/Form/Form.KeyboardToolbarHost.js +182 -0
  148. package/dist/Form/Form.MonetaryInput.js +164 -17
  149. package/dist/Form/Form.PickerField.d.ts +31 -0
  150. package/dist/Form/Form.PickerField.js +562 -0
  151. package/dist/Form/Form.PinInput.js +150 -15
  152. package/dist/Form/Form.QuantitySelector.js +229 -25
  153. package/dist/Form/Form.RadioButton.js +132 -24
  154. package/dist/Form/Form.Select.js +487 -56
  155. package/dist/Form/Form.Slider.js +133 -10
  156. package/dist/Form/Form.Switch.js +99 -4
  157. package/dist/Form/index.d.ts +11 -6
  158. package/dist/Form/index.js +26 -27
  159. package/dist/Form/input-text.d.ts +7 -0
  160. package/dist/Form/input-text.js +18 -0
  161. package/dist/Navigation/Navigation.AppBar.d.ts +3 -4
  162. package/dist/Navigation/Navigation.AppBar.js +535 -99
  163. package/dist/Navigation/Navigation.BottomNav.js +363 -98
  164. package/dist/Navigation/Navigation.CollapsingHeader.d.ts +28 -13
  165. package/dist/Navigation/Navigation.CollapsingHeader.js +369 -36
  166. package/dist/Navigation/Navigation.FloatingBar.js +71 -11
  167. package/dist/Navigation/Navigation.Menu.js +309 -95
  168. package/dist/Navigation/Navigation.MenuSection.js +80 -11
  169. package/dist/Navigation/Navigation.RowItem.d.ts +4 -2
  170. package/dist/Navigation/Navigation.RowItem.js +93 -8
  171. package/dist/Navigation/Navigation.Search.js +241 -27
  172. package/dist/Navigation/Navigation.SearchBar.d.ts +7 -1
  173. package/dist/Navigation/Navigation.SearchBar.js +218 -29
  174. package/dist/Navigation/Navigation.SearchSuggestions.js +77 -3
  175. package/dist/Navigation/Navigation.SegmentedControl.js +152 -14
  176. package/dist/Navigation/Navigation.Steps.js +105 -11
  177. package/dist/Navigation/Navigation.Tabs.js +449 -41
  178. package/dist/Navigation/index.d.ts +9 -4
  179. package/dist/Navigation/index.js +13 -13
  180. package/dist/Typography/Typography.Heading.js +33 -3
  181. package/dist/Typography/Typography.SelectableText.js +95 -7
  182. package/dist/Typography/Typography.Text.d.ts +4 -2
  183. package/dist/Typography/Typography.Text.js +217 -7
  184. package/dist/Typography/index.js +3 -3
  185. package/dist/branding.js +29 -13
  186. package/dist/icons/AddItemIcon.js +76 -2
  187. package/dist/icons/ArrangeCircle.js +82 -2
  188. package/dist/icons/ArrowDownIcon.js +63 -3
  189. package/dist/icons/ArrowUpIcon.js +63 -3
  190. package/dist/icons/BoxIcon.js +64 -2
  191. package/dist/icons/BoxTimeIcon.js +63 -2
  192. package/dist/icons/CalendarIcon.js +145 -2
  193. package/dist/icons/CardIcon.js +80 -2
  194. package/dist/icons/CashierIcon.js +39 -2
  195. package/dist/icons/CreditIcon.js +76 -3
  196. package/dist/icons/DuoIcon.js +75 -2
  197. package/dist/icons/HomeIcon.js +39 -2
  198. package/dist/icons/HomeIconOutlined.js +53 -2
  199. package/dist/icons/LogoIcon.js +87 -2
  200. package/dist/icons/MoneyReceiveIcon.js +86 -2
  201. package/dist/icons/PinIcon.js +39 -2
  202. package/dist/icons/ProfileIcon.js +47 -2
  203. package/dist/icons/SettingsIcon.js +114 -2
  204. package/dist/icons/SinpeIcon.js +60 -2
  205. package/dist/icons/ToggleOffIcon.js +53 -2
  206. package/dist/icons/WalletMoneyIcon.js +81 -2
  207. package/dist/index.d.ts +1 -0
  208. package/dist/index.js +8 -2
  209. package/dist/layouts/AuthContainer.d.ts +4 -5
  210. package/dist/layouts/AuthContainer.js +231 -7
  211. package/dist/layouts/BottomInset.js +4 -1
  212. package/dist/layouts/Container.d.ts +2 -2
  213. package/dist/layouts/Container.js +45 -3
  214. package/dist/layouts/GradientContainer.js +37 -5
  215. package/dist/layouts/PlainLayout.js +19 -3
  216. package/dist/layouts/ScrollContainer.d.ts +14 -9
  217. package/dist/layouts/ScrollContainer.js +125 -4
  218. package/dist/layouts/edges.d.ts +2 -0
  219. package/dist/layouts/edges.js +1 -0
  220. package/dist/primitives/AspectRatio.js +75 -3
  221. package/dist/primitives/Box.js +45 -3
  222. package/dist/primitives/Pressable.js +95 -5
  223. package/dist/primitives/Row.js +84 -13
  224. package/dist/primitives/Spacer.js +42 -5
  225. package/dist/primitives/Stack.js +66 -7
  226. package/dist/primitives/index.js +1 -1
  227. package/dist/theme/active.js +20 -18
  228. package/dist/theme/build.js +118 -87
  229. package/dist/theme/color.js +87 -87
  230. package/dist/theme/components/ThemedActivityIndicator.d.ts +2 -15
  231. package/dist/theme/components/ThemedActivityIndicator.js +35 -3
  232. package/dist/theme/components/index.js +1 -0
  233. package/dist/theme/contrast.js +32 -33
  234. package/dist/theme/css-vars.js +71 -75
  235. package/dist/theme/dark.js +116 -97
  236. package/dist/theme/default.js +116 -97
  237. package/dist/theme/define.js +16 -12
  238. package/dist/theme/index.d.ts +1 -0
  239. package/dist/theme/index.js +7 -6
  240. package/dist/theme/on-dark-surface.d.ts +12 -0
  241. package/dist/theme/on-dark-surface.js +13 -0
  242. package/dist/theme/theme.js +1 -0
  243. package/dist/theme/tw.js +3 -1
  244. package/dist/theme/types.js +0 -18
  245. package/dist/theme/typography.d.ts +1 -1
  246. package/dist/theme/typography.js +337 -303
  247. package/dist/theme/useTheme.js +12 -3
  248. package/dist/theme/useThemeVars.d.ts +9 -0
  249. package/dist/theme/useThemeVars.js +23 -0
  250. package/dist/theme/validate.js +175 -166
  251. package/dist/tokens/index.js +1 -1
  252. package/dist/tokens/motion.js +30 -13
  253. package/dist/utils/async.d.ts +14 -0
  254. package/dist/utils/async.js +22 -0
  255. package/dist/utils/criteria.js +66 -85
  256. package/dist/utils/date.d.ts +8 -2
  257. package/dist/utils/date.js +63 -50
  258. package/dist/utils/image.js +8 -8
  259. package/dist/utils/intl.d.ts +1 -0
  260. package/dist/utils/intl.js +13 -0
  261. package/dist/utils/keys.js +3 -5
  262. package/dist/utils/monetary.d.ts +1 -0
  263. package/dist/utils/monetary.js +28 -24
  264. package/dist/utils/progress.js +2 -3
  265. package/dist/utils/quantity.js +25 -26
  266. package/dist/utils/reorder.js +11 -20
  267. package/dist/utils/search.d.ts +4 -0
  268. package/dist/utils/search.js +12 -0
  269. package/dist/utils/serializer.js +38 -38
  270. package/dist/utils/useReducedMotion.js +32 -30
  271. package/dist/views/AppSplashView.js +117 -3
  272. package/dist/views/AuthFormView.d.ts +4 -5
  273. package/dist/views/AuthFormView.js +119 -11
  274. package/dist/views/FormViewV2.context.js +75 -23
  275. package/dist/views/FormViewV2.d.ts +4 -5
  276. package/dist/views/FormViewV2.js +658 -92
  277. package/dist/views/ListViewV2.context.js +91 -47
  278. package/dist/views/ListViewV2.d.ts +84 -43
  279. package/dist/views/ListViewV2.js +1350 -200
  280. package/dist/views/Wizard/Wizard.context.js +248 -84
  281. package/dist/views/Wizard/Wizard.js +260 -67
  282. package/dist/views/types/IListView.js +34 -31
  283. package/dist/widgets/CollectionOptions.js +557 -138
  284. package/dist/widgets/FilterBar.js +159 -7
  285. package/dist/widgets/FilterBuilder.js +375 -102
  286. package/dist/widgets/JSONViewer.js +275 -129
  287. package/dist/widgets/PromoBanner.js +336 -42
  288. package/dist/widgets/PromoModal.d.ts +2 -2
  289. package/dist/widgets/PromoModal.js +389 -62
  290. package/dist/widgets/QueryChoice.js +150 -8
  291. package/dist/widgets/QuickActions.js +120 -31
  292. package/dist/widgets/ReorderableList.js +399 -128
  293. package/dist/widgets/TimeZoneSelectorModal.js +458 -51
  294. package/dist/widgets/index.js +3 -3
  295. package/package.json +6 -1
  296. package/tailwind.preset.js +7 -5
  297. package/dist/Form/Form.InputField.d.ts +0 -10
  298. package/dist/Form/Form.InputField.js +0 -38
  299. package/dist/Form/Form.KeyboardToolbar.d.ts +0 -22
  300. package/dist/Form/Form.KeyboardToolbar.js +0 -66
  301. package/dist/Form/Form.PasswordInput.d.ts +0 -9
  302. package/dist/Form/Form.PasswordInput.js +0 -17
  303. package/dist/Form/Form.TextInput.d.ts +0 -8
  304. package/dist/Form/Form.TextInput.js +0 -8
  305. package/dist/primitives/BaseButton.d.ts +0 -150
  306. package/dist/primitives/BaseButton.js +0 -229
  307. package/dist/utils/useSheetTranslation.d.ts +0 -5
  308. package/dist/utils/useSheetTranslation.js +0 -23
@@ -1,86 +1,342 @@
1
1
  export const ICON_MAP = {
2
- add: { sf: "plus", md: "add" },
3
- "add-circle": { sf: "plus.circle.fill", md: "add_circle" },
4
- archive: { sf: "archivebox", md: "archive" },
5
- back: { sf: "chevron.left", md: "arrow_back" },
6
- bicycle: { sf: "bicycle", md: "directions_bike" },
7
- book: { sf: "book", md: "book" },
8
- bookmark: { sf: "bookmark.fill", md: "bookmark" },
9
- "bookmark-empty": { sf: "bookmark", md: "bookmark_border" },
10
- calendar: { sf: "calendar", md: "calendar_month" },
11
- camera: { sf: "camera", md: "camera_alt" },
12
- card: { sf: "creditcard", md: "credit_card" },
13
- cart: { sf: "cart", md: "shopping_cart" },
14
- cash: { sf: "banknote", md: "payments" },
15
- check: { sf: "checkmark", md: "check" },
16
- circle: { sf: "circle", md: "radio_button_unchecked" },
17
- close: { sf: "xmark", md: "close" },
18
- collapse: { sf: "chevron.up", md: "expand_less" },
19
- copy: { sf: "doc.on.doc", md: "content_copy" },
20
- "dark-mode": { sf: "moon", md: "dark_mode" },
21
- database: { sf: "externaldrive", md: "database" },
22
- delete: { sf: "trash", md: "delete" },
23
- dismiss: { sf: "xmark.circle.fill", md: "cancel" },
24
- document: { sf: "doc.text", md: "description" },
25
- down: { sf: "arrow.down", md: "arrow_downward" },
26
- download: { sf: "arrow.down.to.line", md: "download" },
27
- "download-cloud": { sf: "icloud.and.arrow.down", md: "cloud_download" },
28
- edit: { sf: "pencil", md: "edit" },
29
- empty: { sf: "tray", md: "inbox" },
30
- error: { sf: "exclamationmark.circle.fill", md: "error" },
31
- expand: { sf: "chevron.down", md: "expand_more" },
32
- filter: { sf: "slider.horizontal.3", md: "tune" },
33
- folder: { sf: "folder", md: "folder" },
34
- grid: { sf: "square.grid.2x2", md: "grid_view" },
35
- help: { sf: "questionmark.circle", md: "help" },
36
- hidden: { sf: "eye.slash", md: "visibility_off" },
37
- home: { sf: "house.fill", md: "home" },
38
- image: { sf: "photo", md: "image" },
39
- inbox: { sf: "tray", md: "inbox" },
40
- info: { sf: "info.circle.fill", md: "info" },
41
- link: { sf: "link", md: "link" },
42
- list: { sf: "list.bullet", md: "list" },
43
- location: { sf: "mappin", md: "location_on" },
44
- "location-disabled": { sf: "location.slash", md: "location_off" },
45
- lock: { sf: "lock", md: "lock" },
46
- logout: { sf: "rectangle.portrait.and.arrow.right", md: "logout" },
47
- mail: { sf: "envelope", md: "mail" },
48
- map: { sf: "map", md: "map" },
49
- menu: { sf: "line.3.horizontal", md: "menu" },
50
- more: { sf: "ellipsis", md: "more_horiz" },
51
- "more-vertical": { sf: "ellipsis", md: "more_vert" },
52
- mute: { sf: "speaker.slash.fill", md: "volume_off" },
53
- next: { sf: "chevron.right", md: "chevron_right" },
54
- notifications: { sf: "bell", md: "notifications" },
55
- package: { sf: "shippingbox", md: "inventory_2" },
56
- pause: { sf: "pause.fill", md: "pause" },
57
- people: { sf: "person.2", md: "group" },
58
- play: { sf: "play.fill", md: "play_arrow" },
59
- printer: { sf: "printer", md: "print" },
60
- profile: { sf: "person", md: "person" },
61
- "profile-circle": { sf: "person.crop.circle", md: "account_circle" },
62
- rating: { sf: "star.fill", md: "star" },
63
- "rating-empty": { sf: "star", md: "star_border" },
64
- receipt: { sf: "receipt", md: "receipt_long" },
65
- remove: { sf: "minus", md: "remove" },
66
- reorder: { sf: "line.3.horizontal", md: "drag_handle" },
67
- save: { sf: "square.and.arrow.down", md: "save" },
68
- search: { sf: "magnifyingglass", md: "search" },
69
- "search-empty": { sf: "doc.text.magnifyingglass", md: "search_off" },
70
- server: { sf: "server.rack", md: "dns" },
71
- settings: { sf: "gearshape", md: "settings" },
72
- share: { sf: "square.and.arrow.up", md: "share" },
73
- stop: { sf: "hand.raised.fill", md: "front_hand" },
74
- success: { sf: "checkmark.circle.fill", md: "check_circle" },
75
- sync: { sf: "arrow.triangle.2.circlepath", md: "sync" },
76
- time: { sf: "clock", md: "schedule" },
77
- unlink: { sf: "link", md: "link_off" },
78
- up: { sf: "arrow.up", md: "arrow_upward" },
79
- upload: { sf: "arrow.up.to.line", md: "upload" },
80
- "upload-cloud": { sf: "icloud.and.arrow.up", md: "cloud_upload" },
81
- visibility: { sf: "eye", md: "visibility" },
82
- volume: { sf: "speaker.wave.2.fill", md: "volume_up" },
83
- wallet: { sf: "wallet.bifold", md: "wallet" },
84
- warning: { sf: "exclamationmark.triangle.fill", md: "warning" },
85
- wifi: { sf: "wifi", md: "wifi" },
2
+ add: {
3
+ sf: "plus",
4
+ md: "add"
5
+ },
6
+ "add-circle": {
7
+ sf: "plus.circle.fill",
8
+ md: "add_circle"
9
+ },
10
+ archive: {
11
+ sf: "archivebox",
12
+ md: "archive"
13
+ },
14
+ back: {
15
+ sf: "chevron.left",
16
+ md: "arrow_back"
17
+ },
18
+ bicycle: {
19
+ sf: "bicycle",
20
+ md: "directions_bike"
21
+ },
22
+ book: {
23
+ sf: "book",
24
+ md: "book"
25
+ },
26
+ bookmark: {
27
+ sf: "bookmark.fill",
28
+ md: "bookmark"
29
+ },
30
+ "bookmark-empty": {
31
+ sf: "bookmark",
32
+ md: "bookmark_border"
33
+ },
34
+ calendar: {
35
+ sf: "calendar",
36
+ md: "calendar_month"
37
+ },
38
+ camera: {
39
+ sf: "camera",
40
+ md: "camera_alt"
41
+ },
42
+ card: {
43
+ sf: "creditcard",
44
+ md: "credit_card"
45
+ },
46
+ cart: {
47
+ sf: "cart",
48
+ md: "shopping_cart"
49
+ },
50
+ cash: {
51
+ sf: "banknote",
52
+ md: "payments"
53
+ },
54
+ check: {
55
+ sf: "checkmark",
56
+ md: "check"
57
+ },
58
+ circle: {
59
+ sf: "circle",
60
+ md: "radio_button_unchecked"
61
+ },
62
+ close: {
63
+ sf: "xmark",
64
+ md: "close"
65
+ },
66
+ collapse: {
67
+ sf: "chevron.up",
68
+ md: "expand_less"
69
+ },
70
+ copy: {
71
+ sf: "doc.on.doc",
72
+ md: "content_copy"
73
+ },
74
+ "dark-mode": {
75
+ sf: "moon",
76
+ md: "dark_mode"
77
+ },
78
+ database: {
79
+ sf: "externaldrive",
80
+ md: "database"
81
+ },
82
+ delete: {
83
+ sf: "trash",
84
+ md: "delete"
85
+ },
86
+ dismiss: {
87
+ sf: "xmark.circle.fill",
88
+ md: "cancel"
89
+ },
90
+ document: {
91
+ sf: "doc.text",
92
+ md: "description"
93
+ },
94
+ down: {
95
+ sf: "arrow.down",
96
+ md: "arrow_downward"
97
+ },
98
+ download: {
99
+ sf: "arrow.down.to.line",
100
+ md: "download"
101
+ },
102
+ "download-cloud": {
103
+ sf: "icloud.and.arrow.down",
104
+ md: "cloud_download"
105
+ },
106
+ edit: {
107
+ sf: "pencil",
108
+ md: "edit"
109
+ },
110
+ empty: {
111
+ sf: "tray",
112
+ md: "inbox"
113
+ },
114
+ error: {
115
+ sf: "exclamationmark.circle.fill",
116
+ md: "error"
117
+ },
118
+ expand: {
119
+ sf: "chevron.down",
120
+ md: "expand_more"
121
+ },
122
+ filter: {
123
+ sf: "slider.horizontal.3",
124
+ md: "tune"
125
+ },
126
+ folder: {
127
+ sf: "folder",
128
+ md: "folder"
129
+ },
130
+ grid: {
131
+ sf: "square.grid.2x2",
132
+ md: "grid_view"
133
+ },
134
+ help: {
135
+ sf: "questionmark.circle",
136
+ md: "help"
137
+ },
138
+ hidden: {
139
+ sf: "eye.slash",
140
+ md: "visibility_off"
141
+ },
142
+ home: {
143
+ sf: "house.fill",
144
+ md: "home"
145
+ },
146
+ image: {
147
+ sf: "photo",
148
+ md: "image"
149
+ },
150
+ inbox: {
151
+ sf: "tray",
152
+ md: "inbox"
153
+ },
154
+ info: {
155
+ sf: "info.circle.fill",
156
+ md: "info"
157
+ },
158
+ link: {
159
+ sf: "link",
160
+ md: "link"
161
+ },
162
+ list: {
163
+ sf: "list.bullet",
164
+ md: "list"
165
+ },
166
+ location: {
167
+ sf: "mappin",
168
+ md: "location_on"
169
+ },
170
+ "location-disabled": {
171
+ sf: "location.slash",
172
+ md: "location_off"
173
+ },
174
+ lock: {
175
+ sf: "lock",
176
+ md: "lock"
177
+ },
178
+ logout: {
179
+ sf: "rectangle.portrait.and.arrow.right",
180
+ md: "logout"
181
+ },
182
+ mail: {
183
+ sf: "envelope",
184
+ md: "mail"
185
+ },
186
+ map: {
187
+ sf: "map",
188
+ md: "map"
189
+ },
190
+ menu: {
191
+ sf: "line.3.horizontal",
192
+ md: "menu"
193
+ },
194
+ more: {
195
+ sf: "ellipsis",
196
+ md: "more_horiz"
197
+ },
198
+ "more-vertical": {
199
+ sf: "ellipsis",
200
+ md: "more_vert"
201
+ },
202
+ mute: {
203
+ sf: "speaker.slash.fill",
204
+ md: "volume_off"
205
+ },
206
+ next: {
207
+ sf: "chevron.right",
208
+ md: "chevron_right"
209
+ },
210
+ notifications: {
211
+ sf: "bell",
212
+ md: "notifications"
213
+ },
214
+ package: {
215
+ sf: "shippingbox",
216
+ md: "inventory_2"
217
+ },
218
+ pause: {
219
+ sf: "pause.fill",
220
+ md: "pause"
221
+ },
222
+ people: {
223
+ sf: "person.2",
224
+ md: "group"
225
+ },
226
+ play: {
227
+ sf: "play.fill",
228
+ md: "play_arrow"
229
+ },
230
+ printer: {
231
+ sf: "printer",
232
+ md: "print"
233
+ },
234
+ profile: {
235
+ sf: "person",
236
+ md: "person"
237
+ },
238
+ "profile-circle": {
239
+ sf: "person.crop.circle",
240
+ md: "account_circle"
241
+ },
242
+ rating: {
243
+ sf: "star.fill",
244
+ md: "star"
245
+ },
246
+ "rating-empty": {
247
+ sf: "star",
248
+ md: "star_border"
249
+ },
250
+ receipt: {
251
+ sf: "receipt",
252
+ md: "receipt_long"
253
+ },
254
+ remove: {
255
+ sf: "minus",
256
+ md: "remove"
257
+ },
258
+ reorder: {
259
+ sf: "line.3.horizontal",
260
+ md: "drag_handle"
261
+ },
262
+ save: {
263
+ sf: "square.and.arrow.down",
264
+ md: "save"
265
+ },
266
+ search: {
267
+ sf: "magnifyingglass",
268
+ md: "search"
269
+ },
270
+ "search-empty": {
271
+ sf: "doc.text.magnifyingglass",
272
+ md: "search_off"
273
+ },
274
+ server: {
275
+ sf: "server.rack",
276
+ md: "dns"
277
+ },
278
+ settings: {
279
+ sf: "gearshape",
280
+ md: "settings"
281
+ },
282
+ share: {
283
+ sf: "square.and.arrow.up",
284
+ md: "share"
285
+ },
286
+ stop: {
287
+ sf: "hand.raised.fill",
288
+ md: "front_hand"
289
+ },
290
+ success: {
291
+ sf: "checkmark.circle.fill",
292
+ md: "check_circle"
293
+ },
294
+ sync: {
295
+ sf: "arrow.triangle.2.circlepath",
296
+ md: "sync"
297
+ },
298
+ time: {
299
+ sf: "clock",
300
+ md: "schedule"
301
+ },
302
+ unlink: {
303
+ sf: "link",
304
+ md: "link_off"
305
+ },
306
+ up: {
307
+ sf: "arrow.up",
308
+ md: "arrow_upward"
309
+ },
310
+ upload: {
311
+ sf: "arrow.up.to.line",
312
+ md: "upload"
313
+ },
314
+ "upload-cloud": {
315
+ sf: "icloud.and.arrow.up",
316
+ md: "cloud_upload"
317
+ },
318
+ visibility: {
319
+ sf: "eye",
320
+ md: "visibility"
321
+ },
322
+ volume: {
323
+ sf: "speaker.wave.2.fill",
324
+ md: "volume_up"
325
+ },
326
+ wallet: {
327
+ sf: "wallet.bifold",
328
+ md: "wallet"
329
+ },
330
+ warning: {
331
+ sf: "exclamationmark.triangle.fill",
332
+ md: "warning"
333
+ },
334
+ wifi: {
335
+ sf: "wifi",
336
+ md: "wifi"
337
+ }
86
338
  };
339
+
340
+ /** Built-in semantic names plus the ones an app registers with `registerIcons`. */
341
+
342
+ export const ICON_NAMES = Object.keys(ICON_MAP);
@@ -0,0 +1,21 @@
1
+ import type { ReactNode } from "react";
2
+ import type { ColorValue } from "react-native";
3
+ /**
4
+ * Apps add their own icons (brand SVGs, product glyphs) by name:
5
+ *
6
+ * declare module "./icon-registry.js" {
7
+ * interface CustomIconRegistry { odoo: true }
8
+ * }
9
+ * registerIcons({ odoo: ({ size, color }) => <OdooLogo color={color} size={size} /> });
10
+ *
11
+ * Then `<Display.Icon name="odoo" />` works like any built-in icon.
12
+ */
13
+ export interface CustomIconRegistry {
14
+ }
15
+ export type CustomIconName = Extract<keyof CustomIconRegistry, string>;
16
+ export type CustomIconRenderer = (props: {
17
+ size: number;
18
+ color: ColorValue;
19
+ }) => ReactNode;
20
+ export declare function registerIcons(icons: Partial<Record<CustomIconName, CustomIconRenderer>>): void;
21
+ export declare function customIconRenderer(name: string): CustomIconRenderer | undefined;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Apps add their own icons (brand SVGs, product glyphs) by name:
3
+ *
4
+ * declare module "./icon-registry.js" {
5
+ * interface CustomIconRegistry { odoo: true }
6
+ * }
7
+ * registerIcons({ odoo: ({ size, color }) => <OdooLogo color={color} size={size} /> });
8
+ *
9
+ * Then `<Display.Icon name="odoo" />` works like any built-in icon.
10
+ */
11
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
12
+
13
+ const renderers = new Map();
14
+ export function registerIcons(icons) {
15
+ for (const [name, renderer] of Object.entries(icons)) {
16
+ if (renderer) renderers.set(name, renderer);
17
+ }
18
+ }
19
+ export function customIconRenderer(name) {
20
+ return renderers.get(name);
21
+ }
@@ -29,6 +29,7 @@ import SearchHistory from "./Display.SearchHistory.js";
29
29
  import SectionHeader from "./Display.SectionHeader.js";
30
30
  import Stat from "./Display.Stat.js";
31
31
  import StatCard from "./Display.StatCard.js";
32
+ import StatusBadge from "./Display.StatusBadge.js";
32
33
  import StatusDot from "./Display.StatusDot.js";
33
34
  import Story from "./Display.Story.js";
34
35
  import StoryTray from "./Display.StoryTray.js";
@@ -38,6 +39,7 @@ import Tag from "./Display.Tag.js";
38
39
  import Timeline from "./Display.Timeline.js";
39
40
  import Tooltip from "./Display.Tooltip.js";
40
41
  export declare const Display: {
42
+ StatusBadge: typeof StatusBadge;
41
43
  AmountSummary: {
42
44
  Root: ({ children, currencySymbol, variant, className, testID, }: import("./Display.AmountSummary.js").AmountSummaryRootProps) => import("react").JSX.Element;
43
45
  Row: ({ label, value, currencySymbol, prefix, className, labelClassName, valueClassName, testID, }: import("./Display.AmountSummary.js").AmountSummaryRowProps) => import("react").JSX.Element;
@@ -112,5 +114,8 @@ export type { ListGroupProps } from "./Display.ListGroup.js";
112
114
  export type { ListItemProps } from "./Display.ListItem.js";
113
115
  export type { MenuCardProps } from "./Display.MenuCard.js";
114
116
  export type { MenuGridItem } from "./Display.MenuGrid.js";
115
- export { ICON_MAP, type IconDefinition, type IconName, } from "./icon-map.js";
117
+ export { defineStatuses, resolveStatus, type StatusBadgeProps, type StatusDefinition, type StatusMap, type StatusTone, } from "./Display.StatusBadge.js";
118
+ export { ICON_FONT_FAMILY, ICON_FONTS } from "./icon-font.js";
119
+ export { type BuiltInIconName, ICON_NAMES, type IconName, } from "./icon-map.js";
120
+ export { type CustomIconRegistry, type CustomIconRenderer, registerIcons, } from "./icon-registry.js";
116
121
  export default Display;
@@ -2,7 +2,7 @@ import Accordion from "./Display.Accordion.js";
2
2
  import AmountSummary from "./Display.AmountSummary.js";
3
3
  import Avatar from "./Display.Avatar.js";
4
4
  import AvatarGroup from "./Display.AvatarGroup.js";
5
- import Badge, { BadgeVariants, } from "./Display.Badge.js";
5
+ import Badge, { BadgeVariants } from "./Display.Badge.js";
6
6
  import Card from "./Display.Card.js";
7
7
  import Carousel from "./Display.Carousel.js";
8
8
  import Chip from "./Display.Chip.js";
@@ -35,6 +35,7 @@ import SearchHistory from "./Display.SearchHistory.js";
35
35
  import SectionHeader from "./Display.SectionHeader.js";
36
36
  import Stat from "./Display.Stat.js";
37
37
  import StatCard from "./Display.StatCard.js";
38
+ import StatusBadge from "./Display.StatusBadge.js";
38
39
  import StatusDot from "./Display.StatusDot.js";
39
40
  import Story from "./Display.Story.js";
40
41
  import StoryTray from "./Display.StoryTray.js";
@@ -44,53 +45,57 @@ import Tag from "./Display.Tag.js";
44
45
  import Timeline from "./Display.Timeline.js";
45
46
  import Tooltip from "./Display.Tooltip.js";
46
47
  export const Display = {
47
- AmountSummary,
48
- Badge,
49
- BadgeVariants,
50
- Accordion,
51
- Avatar,
52
- AvatarGroup,
53
- Card,
54
- Carousel,
55
- Chip,
56
- Tag,
57
- Image: DisplayImage,
58
- ExpoImage,
59
- MediaCard,
60
- MediaEmbed,
61
- Story,
62
- StoryTray,
63
- StoryViewer,
64
- ListItem,
65
- ListGroup,
66
- KeyValue,
67
- DataTable,
68
- Stat,
69
- StatCard,
70
- StatusDot,
71
- PriceTag,
72
- ProductCard,
73
- Timeline,
74
- SearchHistory,
75
- SectionHeader,
76
- Rating,
77
- SwipeableRow,
78
- Tooltip,
79
- IconBadge,
80
- CopyableText,
81
- Date,
82
- Divider,
83
- GradientSurface,
84
- Icon,
85
- CountRecords,
86
- Logo,
87
- CircleButton,
88
- MenuButton,
89
- MenuCard,
90
- MenuGrid,
91
- Monetary,
92
- Pattern,
48
+ StatusBadge,
49
+ AmountSummary,
50
+ Badge,
51
+ BadgeVariants,
52
+ Accordion,
53
+ Avatar,
54
+ AvatarGroup,
55
+ Card,
56
+ Carousel,
57
+ Chip,
58
+ Tag,
59
+ Image: DisplayImage,
60
+ ExpoImage,
61
+ MediaCard,
62
+ MediaEmbed,
63
+ Story,
64
+ StoryTray,
65
+ StoryViewer,
66
+ ListItem,
67
+ ListGroup,
68
+ KeyValue,
69
+ DataTable,
70
+ Stat,
71
+ StatCard,
72
+ StatusDot,
73
+ PriceTag,
74
+ ProductCard,
75
+ Timeline,
76
+ SearchHistory,
77
+ SectionHeader,
78
+ Rating,
79
+ SwipeableRow,
80
+ Tooltip,
81
+ IconBadge,
82
+ CopyableText,
83
+ Date,
84
+ Divider,
85
+ GradientSurface,
86
+ Icon,
87
+ CountRecords,
88
+ Logo,
89
+ CircleButton,
90
+ MenuButton,
91
+ MenuCard,
92
+ MenuGrid,
93
+ Monetary,
94
+ Pattern
93
95
  };
94
96
  export { BadgeVariants };
95
- export { ICON_MAP, } from "./icon-map.js";
97
+ export { defineStatuses, resolveStatus } from "./Display.StatusBadge.js";
98
+ export { ICON_FONT_FAMILY, ICON_FONTS } from "./icon-font.js";
99
+ export { ICON_NAMES } from "./icon-map.js";
100
+ export { registerIcons } from "./icon-registry.js";
96
101
  export default Display;
@@ -0,0 +1,16 @@
1
+ import type { typographyVariants } from "../theme/typography.js";
2
+ import type { ReactNode } from "react";
3
+ export interface PillLabelProps {
4
+ children: ReactNode;
5
+ /** Ink of the pill, e.g. `text-success`. */
6
+ className: string;
7
+ /** Status pills (`Badge`) are semibold; chips and tags are medium. */
8
+ semibold?: boolean;
9
+ /** A typography variant instead of the pill metrics, e.g. `caption` for denser lists. */
10
+ variant?: keyof typeof typographyVariants;
11
+ }
12
+ /**
13
+ * The label every pill of the DS shares (badges, chips, tags): one size, one line,
14
+ * and the configured DS font instead of a className font that the app never loads.
15
+ */
16
+ export declare function PillLabel({ children, className, semibold, variant, }: PillLabelProps): import("react").JSX.Element;
@@ -0,0 +1,47 @@
1
+ import { c as _c } from "react/compiler-runtime";
2
+ import { Typography } from "../Typography/index.js";
3
+ import { StyleSheet } from "react-native";
4
+ import { jsx as _jsx } from "nativewind/jsx-runtime";
5
+ const metrics = StyleSheet.create({
6
+ // 12 reads at a glance and keeps the pill 28 points tall (16 line height + padding).
7
+ label: {
8
+ fontSize: 12,
9
+ lineHeight: 16
10
+ }
11
+ });
12
+ /**
13
+ * The label every pill of the DS shares (badges, chips, tags): one size, one line,
14
+ * and the configured DS font instead of a className font that the app never loads.
15
+ */
16
+ export function PillLabel(t0) {
17
+ const $ = _c(6);
18
+ const {
19
+ children,
20
+ className,
21
+ semibold: t1,
22
+ variant
23
+ } = t0;
24
+ const semibold = t1 === undefined ? false : t1;
25
+ const t2 = variant ? undefined : metrics.label;
26
+ const t3 = variant ?? "labelSmall";
27
+ let t4;
28
+ if ($[0] !== children || $[1] !== className || $[2] !== semibold || $[3] !== t2 || $[4] !== t3) {
29
+ t4 = _jsx(Typography.Text, {
30
+ className: className,
31
+ numberOfLines: 1,
32
+ semibold: semibold,
33
+ style: t2,
34
+ variant: t3,
35
+ children: children
36
+ });
37
+ $[0] = children;
38
+ $[1] = className;
39
+ $[2] = semibold;
40
+ $[3] = t2;
41
+ $[4] = t3;
42
+ $[5] = t4;
43
+ } else {
44
+ t4 = $[5];
45
+ }
46
+ return t4;
47
+ }