@pallasoft/ps-mobile-components 1.2.0 → 1.3.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 (159) hide show
  1. package/dist/components/ps-action-menu/ps-action-menu-avatar-entry.d.ts +5 -0
  2. package/dist/components/ps-action-menu/ps-action-menu-avatar-entry.js +16 -0
  3. package/dist/components/ps-action-menu/ps-action-menu-entries.js +4 -2
  4. package/dist/components/ps-action-menu/ps-action-menu-labelled.d.ts +2 -1
  5. package/dist/components/ps-action-menu/ps-action-menu-labelled.js +2 -2
  6. package/dist/components/ps-action-menu/ps-action-menu.android.js +1 -1
  7. package/dist/components/ps-action-menu/ps-action-menu.ios.js +10 -1
  8. package/dist/components/ps-action-menu/ps-menu-tile-canvas.d.ts +6 -0
  9. package/dist/components/ps-action-menu/ps-menu-tile-canvas.js +5 -0
  10. package/dist/components/ps-action-menu/ps-menu-tile-drawing.d.ts +6 -0
  11. package/dist/components/ps-action-menu/ps-menu-tile-drawing.js +34 -0
  12. package/dist/components/ps-app-lock-screen/index.d.ts +2 -0
  13. package/dist/components/ps-app-lock-screen/index.js +2 -0
  14. package/dist/components/ps-app-lock-screen/ps-app-lock-screen-props.d.ts +9 -0
  15. package/dist/components/ps-app-lock-screen/ps-app-lock-screen-props.js +1 -0
  16. package/dist/components/ps-app-lock-screen/ps-app-lock-screen.d.ts +2 -0
  17. package/dist/components/ps-app-lock-screen/ps-app-lock-screen.js +19 -0
  18. package/dist/components/ps-chip/ps-chip.js +1 -1
  19. package/dist/components/ps-form-sheet/ps-form-sheet-props.d.ts +2 -0
  20. package/dist/components/ps-form-sheet/ps-form-sheet.d.ts +1 -1
  21. package/dist/components/ps-form-sheet/ps-form-sheet.js +17 -7
  22. package/dist/components/ps-list/ps-list-context-menu.js +1 -1
  23. package/dist/components/ps-list/ps-list-link-menu-entry.d.ts +5 -0
  24. package/dist/components/ps-list/ps-list-link-menu-entry.js +11 -0
  25. package/dist/components/ps-list/ps-list-link-menu.d.ts +10 -0
  26. package/dist/components/ps-list/ps-list-link-menu.js +16 -0
  27. package/dist/components/ps-list/ps-list-link-row.js +1 -1
  28. package/dist/components/ps-list/ps-list-props.d.ts +3 -1
  29. package/dist/components/ps-list/ps-list-row-body.js +2 -4
  30. package/dist/components/ps-list/ps-list-row.d.ts +1 -1
  31. package/dist/components/ps-list/ps-list-row.js +3 -2
  32. package/dist/components/ps-mobile-theme-provider/ps-mobile-theme-provider-props.d.ts +4 -2
  33. package/dist/components/ps-mobile-theme-provider/ps-mobile-theme-provider.d.ts +1 -1
  34. package/dist/components/ps-mobile-theme-provider/ps-mobile-theme-provider.js +20 -10
  35. package/dist/components/ps-native-menu/ps-native-menu.android.js +1 -1
  36. package/dist/components/ps-option-picker/index.d.ts +2 -0
  37. package/dist/components/ps-option-picker/index.js +2 -0
  38. package/dist/components/ps-option-picker/ps-option-picker-props.d.ts +16 -0
  39. package/dist/components/ps-option-picker/ps-option-picker-props.js +1 -0
  40. package/dist/components/ps-option-picker/ps-option-picker.d.ts +2 -0
  41. package/dist/components/ps-option-picker/ps-option-picker.js +33 -0
  42. package/dist/components/ps-privacy-cover/index.d.ts +2 -0
  43. package/dist/components/ps-privacy-cover/index.js +2 -0
  44. package/dist/components/ps-privacy-cover/ps-privacy-cover-props.d.ts +4 -0
  45. package/dist/components/ps-privacy-cover/ps-privacy-cover-props.js +1 -0
  46. package/dist/components/ps-privacy-cover/ps-privacy-cover.d.ts +2 -0
  47. package/dist/components/ps-privacy-cover/ps-privacy-cover.js +17 -0
  48. package/dist/components/ps-search-select-field/index.d.ts +2 -0
  49. package/dist/components/ps-search-select-field/index.js +2 -0
  50. package/dist/components/ps-search-select-field/ps-search-select-field-props.d.ts +10 -0
  51. package/dist/components/ps-search-select-field/ps-search-select-field-props.js +1 -0
  52. package/dist/components/ps-search-select-field/ps-search-select-field.d.ts +2 -0
  53. package/dist/components/ps-search-select-field/ps-search-select-field.js +15 -0
  54. package/dist/components/ps-selection-mode/index.d.ts +2 -0
  55. package/dist/components/ps-selection-mode/index.js +2 -0
  56. package/dist/components/ps-selection-mode/ps-selection-mode-props.d.ts +13 -0
  57. package/dist/components/ps-selection-mode/ps-selection-mode-props.js +1 -0
  58. package/dist/components/ps-selection-mode/ps-selection-mode.d.ts +2 -0
  59. package/dist/components/ps-selection-mode/ps-selection-mode.js +28 -0
  60. package/dist/components/ps-sheet/ps-sheet-props.d.ts +4 -1
  61. package/dist/components/ps-sheet/ps-sheet.d.ts +1 -1
  62. package/dist/components/ps-sheet/ps-sheet.js +4 -5
  63. package/dist/components/ps-sheet-header/ps-sheet-header-props.d.ts +2 -0
  64. package/dist/components/ps-sheet-header/ps-sheet-header.d.ts +1 -1
  65. package/dist/components/ps-sheet-header/ps-sheet-header.js +2 -2
  66. package/dist/components/ps-sheet-page/ps-sheet-page-view.d.ts +8 -0
  67. package/dist/components/ps-sheet-page/ps-sheet-page-view.js +11 -0
  68. package/dist/components/ps-sheet-presenter/ps-sheet-presenter.ios.js +9 -2
  69. package/dist/components/ps-tab-bar-provider/index.d.ts +2 -0
  70. package/dist/components/ps-tab-bar-provider/index.js +2 -0
  71. package/dist/components/ps-tab-bar-provider/ps-tab-bar-provider-props.d.ts +4 -0
  72. package/dist/components/ps-tab-bar-provider/ps-tab-bar-provider-props.js +1 -0
  73. package/dist/components/ps-tab-bar-provider/ps-tab-bar-provider.d.ts +2 -0
  74. package/dist/components/ps-tab-bar-provider/ps-tab-bar-provider.js +8 -0
  75. package/dist/components/ps-tabs/ps-tabs.js +1 -1
  76. package/dist/components/ps-text-link/ps-text-link.js +1 -1
  77. package/dist/constants/ps-app-lock-config.d.ts +13 -0
  78. package/dist/constants/ps-app-lock-config.js +13 -0
  79. package/dist/constants/ps-app-lock-native-codes.d.ts +10 -0
  80. package/dist/constants/ps-app-lock-native-codes.js +10 -0
  81. package/dist/constants/ps-biometry-kind.d.ts +7 -0
  82. package/dist/constants/ps-biometry-kind.js +6 -0
  83. package/dist/constants/ps-list-config.d.ts +2 -0
  84. package/dist/constants/ps-list-config.js +2 -0
  85. package/dist/constants/ps-menu-tile-config.d.ts +9 -0
  86. package/dist/constants/ps-menu-tile-config.js +9 -0
  87. package/dist/constants/ps-mobile-control-config.d.ts +0 -12
  88. package/dist/constants/ps-mobile-control-config.js +0 -6
  89. package/dist/constants/ps-option-picker-config.d.ts +6 -0
  90. package/dist/constants/ps-option-picker-config.js +6 -0
  91. package/dist/constants/ps-sf-symbol-config.d.ts +92 -0
  92. package/dist/constants/ps-sf-symbol-config.js +92 -0
  93. package/dist/constants/ps-sheet-page-config.d.ts +4 -0
  94. package/dist/constants/ps-sheet-page-config.js +4 -0
  95. package/dist/contexts/ps-tab-bar-context.d.ts +2 -0
  96. package/dist/contexts/ps-tab-bar-context.js +5 -0
  97. package/dist/hooks/use-ps-app-lock.d.ts +3 -0
  98. package/dist/hooks/use-ps-app-lock.js +72 -0
  99. package/dist/hooks/use-ps-menu-tiles.d.ts +4 -0
  100. package/dist/hooks/use-ps-menu-tiles.js +8 -0
  101. package/dist/hooks/use-ps-tab-bar.d.ts +2 -0
  102. package/dist/hooks/use-ps-tab-bar.js +3 -0
  103. package/dist/index.d.ts +18 -0
  104. package/dist/index.js +18 -0
  105. package/dist/interfaces/ps-action-menu-header.d.ts +1 -0
  106. package/dist/interfaces/ps-app-lock-native.d.ts +13 -0
  107. package/dist/interfaces/ps-app-lock-native.js +1 -0
  108. package/dist/interfaces/ps-app-lock-prompt.d.ts +4 -0
  109. package/dist/interfaces/ps-app-lock-prompt.js +1 -0
  110. package/dist/interfaces/ps-menu-item.d.ts +2 -0
  111. package/dist/interfaces/ps-menu-tile-request.d.ts +7 -0
  112. package/dist/interfaces/ps-menu-tile-request.js +1 -0
  113. package/dist/interfaces/ps-menu-tile-shape.d.ts +1 -0
  114. package/dist/interfaces/ps-menu-tile-shape.js +1 -0
  115. package/dist/interfaces/ps-mobile-brand-colors.d.ts +5 -0
  116. package/dist/interfaces/ps-mobile-brand-colors.js +1 -0
  117. package/dist/interfaces/ps-mobile-brand-input.d.ts +7 -0
  118. package/dist/interfaces/ps-mobile-brand-input.js +1 -0
  119. package/dist/interfaces/ps-mobile-theme-input.d.ts +1 -1
  120. package/dist/interfaces/ps-mobile-theme.d.ts +32 -0
  121. package/dist/interfaces/ps-sheet-leading-kind.d.ts +1 -0
  122. package/dist/interfaces/ps-sheet-leading-kind.js +1 -0
  123. package/dist/interfaces/ps-sheet-page.d.ts +8 -0
  124. package/dist/interfaces/ps-sheet-page.js +1 -0
  125. package/dist/interfaces/ps-tab-bar-context-data.d.ts +4 -0
  126. package/dist/interfaces/ps-tab-bar-context-data.js +1 -0
  127. package/dist/interfaces/use-ps-app-lock-options.d.ts +6 -0
  128. package/dist/interfaces/use-ps-app-lock-options.js +1 -0
  129. package/dist/interfaces/use-ps-app-lock-result.d.ts +7 -0
  130. package/dist/interfaces/use-ps-app-lock-result.js +1 -0
  131. package/dist/services/ps-action-menu-service.d.ts +4 -0
  132. package/dist/services/ps-action-menu-service.js +25 -2
  133. package/dist/services/ps-app-lock-grace-service.d.ts +6 -0
  134. package/dist/services/ps-app-lock-grace-service.js +17 -0
  135. package/dist/services/ps-app-lock-service.d.ts +10 -0
  136. package/dist/services/ps-app-lock-service.js +84 -0
  137. package/dist/services/ps-badge-tone-service.js +3 -3
  138. package/dist/services/ps-button-style-service.js +2 -2
  139. package/dist/services/ps-context-menu-service.d.ts +1 -0
  140. package/dist/services/ps-context-menu-service.js +13 -0
  141. package/dist/services/ps-list-row-style-service.d.ts +4 -0
  142. package/dist/services/ps-list-row-style-service.js +11 -0
  143. package/dist/services/ps-menu-tile-service.d.ts +16 -0
  144. package/dist/services/ps-menu-tile-service.js +70 -0
  145. package/dist/services/ps-menu-tile-style-service.d.ts +4 -0
  146. package/dist/services/ps-menu-tile-style-service.js +5 -0
  147. package/dist/services/ps-mobile-brand-service.d.ts +5 -0
  148. package/dist/services/ps-mobile-brand-service.js +24 -0
  149. package/dist/services/ps-mobile-theme-service.d.ts +0 -2
  150. package/dist/services/ps-mobile-theme-service.js +64 -94
  151. package/dist/services/ps-option-picker-service.d.ts +8 -0
  152. package/dist/services/ps-option-picker-service.js +10 -0
  153. package/dist/services/ps-selection-service.d.ts +5 -0
  154. package/dist/services/ps-selection-service.js +13 -0
  155. package/dist/services/ps-sheet-service.d.ts +5 -0
  156. package/dist/services/ps-sheet-service.js +11 -0
  157. package/dist/services/ps-text-service.js +4 -4
  158. package/jest-setup.js +71 -0
  159. package/package.json +14 -2
package/jest-setup.js CHANGED
@@ -16,6 +16,8 @@ jest.mock('react-native-reanimated', () => {
16
16
  interpolate: (value, input, output) => output[0],
17
17
  withRepeat: (value) => value,
18
18
  FadeInUp: builder,
19
+ SlideInLeft: builder,
20
+ SlideInRight: builder,
19
21
  FadeOutUp: builder,
20
22
  useAnimatedProps: (props) => props(),
21
23
  useAnimatedStyle: (style) => style(),
@@ -57,3 +59,72 @@ jest.mock('@react-native-menu/menu', () => {
57
59
  React.createElement(View, { actions, onPressAction, testID }, children),
58
60
  };
59
61
  });
62
+
63
+ jest.mock('expo-router', () => {
64
+ const React = require('react');
65
+ const { View } = require('react-native');
66
+ const Link = ({ children, href }) =>
67
+ React.createElement(View, { href, testID: 'ps-list-link' }, children);
68
+ const Pass = ({ children }) => React.createElement(React.Fragment, null, children);
69
+ const MenuAction = ({ onPress, title }) =>
70
+ React.createElement(View, {
71
+ accessibilityLabel: title,
72
+ onPress,
73
+ testID: 'ps-list-link-action',
74
+ });
75
+
76
+ Link.Trigger = Pass;
77
+ Link.Preview = ({ children, style }) =>
78
+ children === undefined
79
+ ? null
80
+ : React.createElement(View, { style, testID: 'ps-list-link-preview' }, children);
81
+ const Menu = ({ children }) =>
82
+ React.createElement(
83
+ React.Fragment,
84
+ null,
85
+ React.Children.toArray(children).filter(
86
+ (child) =>
87
+ React.isValidElement(child) && (child.type === MenuAction || child.type === Menu)
88
+ )
89
+ );
90
+
91
+ Link.Menu = Menu;
92
+ Link.MenuAction = MenuAction;
93
+
94
+ const Stack = () => null;
95
+
96
+ Stack.Screen = ({ options }) =>
97
+ React.createElement(View, {
98
+ accessibilityLabel: options.title,
99
+ headerBackVisible: options.headerBackVisible,
100
+ testID: 'stack-screen',
101
+ });
102
+ Stack.Toolbar = ({ children, placement }) =>
103
+ React.createElement(View, { testID: `stack-toolbar-${placement}` }, children);
104
+ Stack.Toolbar.Button = ({ children, disabled, onPress }) =>
105
+ React.createElement(View, { accessibilityLabel: children, disabled, onPress });
106
+ Stack.Toolbar.Spacer = () => null;
107
+
108
+ return { __esModule: true, Link, Stack };
109
+ });
110
+
111
+ jest.mock(
112
+ 'expo-local-authentication',
113
+ () => ({
114
+ __esModule: true,
115
+ authenticateAsync: jest.fn(() => Promise.resolve({ success: true })),
116
+ getEnrolledLevelAsync: jest.fn(() => Promise.resolve(3)),
117
+ supportedAuthenticationTypesAsync: jest.fn(() => Promise.resolve([2])),
118
+ }),
119
+ { virtual: true }
120
+ );
121
+
122
+ jest.mock('expo', () => {
123
+ const actual = jest.requireActual('expo');
124
+
125
+ return {
126
+ ...actual,
127
+ requireOptionalNativeModule: (name) =>
128
+ name === 'ExpoLocalAuthentication' ? {} : actual.requireOptionalNativeModule(name),
129
+ };
130
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pallasoft/ps-mobile-components",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "private": false,
5
5
  "description": "Native iOS (SwiftUI) and Android (Jetpack Compose) Ps components for Pallasoft mobile apps",
6
6
  "main": "./dist/index.js",
@@ -34,7 +34,7 @@
34
34
  "test": "jest"
35
35
  },
36
36
  "dependencies": {
37
- "@pallasoft/ps-design-system": "^1.17.0",
37
+ "@pallasoft/ps-design-system": "^1.18.0",
38
38
  "@pallasoft/ps-icons": "^1.11.0",
39
39
  "@pallasoft/ps-utilities": "^2.27.0"
40
40
  },
@@ -44,6 +44,8 @@
44
44
  "expo": "~58.0.0",
45
45
  "expo-haptics": "~58.0.7",
46
46
  "expo-linear-gradient": "~58.0.3",
47
+ "expo-local-authentication": "~58.0.0",
48
+ "expo-router": "~58.0.0",
47
49
  "react": "^19.3.0",
48
50
  "react-native": "~0.88.0",
49
51
  "react-native-document-scanner-plugin": "^2.0.4",
@@ -55,6 +57,12 @@
55
57
  "peerDependenciesMeta": {
56
58
  "react-native-document-scanner-plugin": {
57
59
  "optional": true
60
+ },
61
+ "expo-local-authentication": {
62
+ "optional": true
63
+ },
64
+ "expo-router": {
65
+ "optional": true
58
66
  }
59
67
  },
60
68
  "devDependencies": {
@@ -67,6 +75,7 @@
67
75
  "@expo/ui": "~58.0.21",
68
76
  "@ianvs/prettier-plugin-sort-imports": "^4.7.0",
69
77
  "@react-native-menu/menu": "^2.0.0",
78
+ "@react-native/jest-preset": "^0.88.0",
70
79
  "@semantic-release/changelog": "^6.0.3",
71
80
  "@semantic-release/commit-analyzer": "^13.0.0",
72
81
  "@semantic-release/git": "^10.0.1",
@@ -88,6 +97,9 @@
88
97
  "expo": "~58.0.16",
89
98
  "expo-haptics": "~58.0.7",
90
99
  "expo-linear-gradient": "~58.0.3",
100
+ "expo-local-authentication": "~58.0.2",
101
+ "expo-router": "~58.0.24",
102
+ "hono": "^4.13.13",
91
103
  "husky": "^9.1.7",
92
104
  "jest": "^30.5.2",
93
105
  "jest-expo": "~58.0.11",