@itcase/ui-react-native 1.10.83 → 1.10.84

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 (28) hide show
  1. package/demoApp/metro.config.js +31 -9
  2. package/demoApp/package-lock.json +2 -2
  3. package/demoApp/package.json +6 -5
  4. package/package.json +9 -9
  5. package/src/components/Avatar/stories/AvatarCount.stories.tsx +1 -1
  6. package/src/components/Avatar/stories/AvatarImage.stories.tsx +1 -1
  7. package/src/components/Avatar/stories/AvatarLetters.stories.tsx +1 -1
  8. package/src/components/Checkbox/Checkbox.tsx +1 -1
  9. package/src/components/Checkmark/Checkmark.tsx +1 -1
  10. package/src/components/Chips/stories/ChipsCheckLeft.stories.tsx +1 -1
  11. package/src/components/Chips/stories/ChipsCheckRight.stories.tsx +1 -1
  12. package/src/components/Chips/stories/ChipsClear.stories.tsx +1 -1
  13. package/src/components/Choice/stories/ChoiceStories.config.tsx +1 -1
  14. package/src/components/DatePicker/DatePicker.tsx +1 -1
  15. package/src/components/Drawer/Drawer.tsx +1 -1
  16. package/src/components/Icon/stories/Icon.stories.tsx +1 -1
  17. package/src/components/InputNumber/InputNumber.tsx +1 -1
  18. package/src/components/InputPassword/InputPassword.tsx +1 -1
  19. package/src/components/MenuItem/stories/MenuItem.stories.tsx +1 -1
  20. package/src/components/Search/Search.tsx +1 -1
  21. package/src/components/Segmented/stories/SegmentedStories.config.tsx +1 -1
  22. package/src/components/Select/Select.tsx +1 -1
  23. package/src/components/Tile/stories/TileIcon.stories.tsx +1 -1
  24. package/src/components/Warning/appearance/warningAccent.ts +1 -1
  25. package/src/components/Warning/appearance/warningError.ts +1 -1
  26. package/src/components/Warning/appearance/warningInfo.ts +1 -1
  27. package/src/components/Warning/appearance/warningSuccess.ts +1 -1
  28. package/src/components/Warning/appearance/warningWarning.ts +1 -1
@@ -26,7 +26,7 @@ const nodeModulesPaths = [
26
26
  path.join(repoRoot, 'node_modules'),
27
27
  ]
28
28
 
29
- const ICONS_DEFAULT_SVG_MODULE = '@itcase/icons-default/default/svg'
29
+ const ICONS_DEFAULT_MODULE = '@itcase/icons-default'
30
30
 
31
31
  function escapeRegExp(value) {
32
32
  return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
@@ -85,15 +85,35 @@ function resolveSemverPackageDirectory() {
85
85
  )
86
86
  }
87
87
 
88
- function resolveIconsDefaultSvg() {
88
+ /**
89
+ * `prop-types` requires `react-is`, but with hierarchical lookup off Metro
90
+ * never sees the nested copy under `prop-types/node_modules`.
91
+ */
92
+ function resolveReactIsPackageDirectory() {
93
+ const candidates = [
94
+ path.join(projectNodeModules, 'react-is'),
95
+ path.join(projectNodeModules, 'prop-types', 'node_modules', 'react-is'),
96
+ ...nodeModulesPaths.map((nodeModulesDirectory) =>
97
+ path.join(nodeModulesDirectory, 'react-is'),
98
+ ),
99
+ ]
100
+
101
+ return (
102
+ candidates.find((packageDirectory) =>
103
+ fs.existsSync(path.join(packageDirectory, 'package.json')),
104
+ ) || null
105
+ )
106
+ }
107
+
108
+ function resolveIconsDefaultNative() {
89
109
  const iconsDefaultMain = require.resolve('@itcase/icons-default', {
90
110
  paths: [projectRoot, repoRoot],
91
111
  })
92
112
  const iconsDefaultRoot = path.resolve(path.dirname(iconsDefaultMain), '../..')
93
113
 
94
- // ESM barrel uses `import Icon from './file.svg'` so svg-transformer
95
- // yields a component. CJS `require('.svg')` is `{ default: Component }`.
96
- return path.join(iconsDefaultRoot, 'dist/esm/svg/default.js')
114
+ // Package `import` is DOM SVGR. A wrapped resolveRequest can skip the
115
+ // `react-native` export and load that web bundle on iOS/Android.
116
+ return path.join(iconsDefaultRoot, 'dist/esm/native/default.js')
97
117
  }
98
118
 
99
119
  function resolveWorkspaceSourceFile(packageDirectory, moduleName, packageName) {
@@ -171,6 +191,7 @@ const reactNativeSvgDirectory = path.join(
171
191
  projectNodeModules,
172
192
  'react-native-svg',
173
193
  )
194
+ const reactIsPackageDirectory = resolveReactIsPackageDirectory()
174
195
  const semverPackageDirectory = resolveSemverPackageDirectory()
175
196
 
176
197
  const config = {
@@ -212,6 +233,7 @@ const config = {
212
233
  ? { 'react-native-svg': reactNativeSvgDirectory }
213
234
  : {}),
214
235
  ...extraPackageDirectories,
236
+ ...(reactIsPackageDirectory ? { 'react-is': reactIsPackageDirectory } : {}),
215
237
  ...(semverPackageDirectory ? { semver: semverPackageDirectory } : {}),
216
238
  },
217
239
  nodeModulesPaths: nodeModulesPaths,
@@ -258,11 +280,11 @@ configWithStorybook.resolver.resolveRequest = (
258
280
  moduleName,
259
281
  platform,
260
282
  ) => {
261
- if (moduleName === ICONS_DEFAULT_SVG_MODULE) {
262
- const iconsDefaultSvgPath = resolveToFile(resolveIconsDefaultSvg())
283
+ if (moduleName === ICONS_DEFAULT_MODULE) {
284
+ const iconsDefaultNativePath = resolveToFile(resolveIconsDefaultNative())
263
285
 
264
- if (iconsDefaultSvgPath) {
265
- return iconsDefaultSvgPath
286
+ if (iconsDefaultNativePath) {
287
+ return iconsDefaultNativePath
266
288
  }
267
289
  }
268
290
 
@@ -16,6 +16,7 @@
16
16
  "@react-native/new-app-screen": "0.87.0",
17
17
  "react": "19.2.3",
18
18
  "react-dom": "19.2.3",
19
+ "react-is": "^19.2.8",
19
20
  "react-native": "0.87.0",
20
21
  "react-native-linear-gradient": "2.8.3",
21
22
  "react-native-safe-area-context": "^5.5.2"
@@ -34976,8 +34977,7 @@
34976
34977
  "version": "19.2.8",
34977
34978
  "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.8.tgz",
34978
34979
  "integrity": "sha512-s5un28nYxKJw5gvUHyW5PCC28CvBqLu9r3cWgzHT4Vo/5fqqkFcdRYsGcKf50WMPpjjFZS5d76fn3YCo2njKwQ==",
34979
- "license": "MIT",
34980
- "peer": true
34980
+ "license": "MIT"
34981
34981
  },
34982
34982
  "node_modules/react-modal-sheet": {
34983
34983
  "version": "5.6.0",
@@ -20,24 +20,24 @@
20
20
  "react-native-worklets": "0.12.0"
21
21
  },
22
22
  "dependencies": {
23
+ "@gorhom/bottom-sheet": "^5.2.8",
23
24
  "@itcase/ui-core": "^1.10.74",
25
+ "@react-native-async-storage/async-storage": "^2.2.0",
24
26
  "@react-native-community/datetimepicker": "^8.6.0",
25
27
  "@react-native-community/slider": "5.2.0",
26
- "@gorhom/bottom-sheet": "^5.2.8",
27
- "@react-native-async-storage/async-storage": "^2.2.0",
28
28
  "@react-native/new-app-screen": "0.87.0",
29
- "react-native-safe-area-context": "^5.5.2",
30
29
  "react": "19.2.3",
31
30
  "react-dom": "19.2.3",
31
+ "react-is": "^19.2.8",
32
32
  "react-native": "0.87.0",
33
- "react-native-linear-gradient": "2.8.3"
33
+ "react-native-linear-gradient": "2.8.3",
34
+ "react-native-safe-area-context": "^5.5.2"
34
35
  },
35
36
  "devDependencies": {
36
37
  "@babel/core": "^7.25.2",
37
38
  "@babel/preset-env": "^7.25.3",
38
39
  "@babel/runtime": "^7.25.0",
39
40
  "@itcase/storybook-config": "^1.3.8",
40
- "@storybook/react-native-ui-lite": "10.5.4",
41
41
  "@react-native-community/cli": "20.2.0",
42
42
  "@react-native-community/cli-platform-android": "20.2.0",
43
43
  "@react-native-community/cli-platform-ios": "20.2.0",
@@ -45,6 +45,7 @@
45
45
  "@react-native/eslint-config": "0.87.0",
46
46
  "@react-native/metro-config": "0.87.0",
47
47
  "@react-native/typescript-config": "0.87.0",
48
+ "@storybook/react-native-ui-lite": "10.5.4",
48
49
  "@types/react": "^19.2.0",
49
50
  "react-native-gesture-handler": "2.32.0",
50
51
  "react-native-reanimated": "4.6.0-nightly-20260817-b15bb32ab",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itcase/ui-react-native",
3
- "version": "1.10.83",
3
+ "version": "1.10.84",
4
4
  "license": "MIT",
5
5
  "private": false,
6
6
  "main": "src/index.tsx",
@@ -20,10 +20,10 @@
20
20
  "react-native-android": "npm run android --prefix demoApp"
21
21
  },
22
22
  "dependencies": {
23
- "@itcase/icons-default": "^1.2.35",
23
+ "@itcase/icons-default": "^1.2.39",
24
24
  "@itcase/tokens-am": "^1.1.60",
25
25
  "@itcase/types-ui": "^1.1.98",
26
- "@itcase/ui-core": "^1.10.83",
26
+ "@itcase/ui-core": "^1.10.84",
27
27
  "react-native-linear-gradient": "2.8.3",
28
28
  "react-native-svg": "^15.15.5"
29
29
  },
@@ -32,17 +32,17 @@
32
32
  "react-native": "*"
33
33
  },
34
34
  "devDependencies": {
35
- "@itcase/storybook-config": "^1.3.9",
35
+ "@itcase/storybook-config": "^1.3.12",
36
36
  "@react-native/assets-registry": "0.87.0",
37
37
  "@react-native/typescript-config": "0.87.0",
38
38
  "@storybook/addon-ondevice-actions": "^10.5.4",
39
39
  "@storybook/addon-ondevice-backgrounds": "^10.5.4",
40
40
  "@storybook/addon-ondevice-controls": "^10.5.4",
41
- "@storybook/react": "^10.5.9",
41
+ "@storybook/react": "^10.5.10",
42
42
  "@storybook/react-native": "^10.5.4",
43
43
  "@storybook/react-native-ui-lite": "^10.5.4",
44
- "@storybook/react-native-web-vite": "^10.5.9",
45
- "@storybook/react-vite": "^10.5.9",
44
+ "@storybook/react-native-web-vite": "^10.5.10",
45
+ "@storybook/react-vite": "^10.5.10",
46
46
  "@types/react": "^18.3.12",
47
47
  "@typescript/native": "npm:typescript@^7.0.2",
48
48
  "react": "19.2.3",
@@ -50,9 +50,9 @@
50
50
  "react-native": "0.87.0",
51
51
  "react-native-svg-transformer": "^1.5.3",
52
52
  "react-native-web": "^0.21.2",
53
- "storybook": "^10.5.9",
53
+ "storybook": "^10.5.10",
54
54
  "typescript": "npm:@typescript/typescript6@^6.0.2",
55
55
  "vite": "^8.2.2"
56
56
  },
57
- "gitHead": "df641d2befc1abc64866c3034e61c28f156f0d6f"
57
+ "gitHead": "c79586937c6af8dfd80315c8abd5b0d086acbaab"
58
58
  }
@@ -1,6 +1,6 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react'
2
2
 
3
- import { icons24 } from '@itcase/icons-default/default/svg'
3
+ import { icons24 } from '@itcase/icons-default'
4
4
 
5
5
  import { Avatar } from '../Avatar'
6
6
  import { avatarStoryParameters } from './AvatarStories.config'
@@ -1,6 +1,6 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react'
2
2
 
3
- import { icons24 } from '@itcase/icons-default/default/svg'
3
+ import { icons24 } from '@itcase/icons-default'
4
4
 
5
5
  import image from '../../../images/manager.png'
6
6
  import { Avatar } from '../Avatar'
@@ -1,6 +1,6 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react'
2
2
 
3
- import { icons24 } from '@itcase/icons-default/default/svg'
3
+ import { icons24 } from '@itcase/icons-default'
4
4
 
5
5
  import { Avatar } from '../Avatar'
6
6
  import { avatarStoryParameters } from './AvatarStories.config'
@@ -1,7 +1,7 @@
1
1
  import { useMemo } from 'react'
2
2
  import { Pressable, View } from 'react-native'
3
3
 
4
- import { icons16 } from '@itcase/icons-default/default/svg'
4
+ import { icons16 } from '@itcase/icons-default'
5
5
 
6
6
  import { tokens } from '../../styles/tokens'
7
7
  import { Icon } from '../Icon'
@@ -1,7 +1,7 @@
1
1
  import React from 'react'
2
2
  import { TouchableOpacity, View } from 'react-native'
3
3
 
4
- import { icons40 } from '@itcase/icons-default/default/svg'
4
+ import { icons40 } from '@itcase/icons-default'
5
5
 
6
6
  import { Icon } from '../Icon'
7
7
  import type { CheckmarkProps } from './Checkmark.interface'
@@ -1,6 +1,6 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react'
2
2
 
3
- import { icons20 } from '@itcase/icons-default/default/svg'
3
+ import { icons20 } from '@itcase/icons-default'
4
4
 
5
5
  import { Chips } from '../Chips'
6
6
 
@@ -1,6 +1,6 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react'
2
2
 
3
- import { icons20 } from '@itcase/icons-default/default/svg'
3
+ import { icons20 } from '@itcase/icons-default'
4
4
 
5
5
  import { Chips } from '../Chips'
6
6
 
@@ -1,6 +1,6 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react'
2
2
 
3
- import { icons24 } from '@itcase/icons-default/default/svg'
3
+ import { icons24 } from '@itcase/icons-default'
4
4
 
5
5
  import { Chips } from '../Chips'
6
6
 
@@ -1,6 +1,6 @@
1
1
  import { useState } from 'react'
2
2
 
3
- import { icons24 } from '@itcase/icons-default/default/svg'
3
+ import { icons24 } from '@itcase/icons-default'
4
4
 
5
5
  import { Choice } from '../Choice'
6
6
  import type {
@@ -1,7 +1,7 @@
1
1
  import { useCallback, useMemo, useState } from 'react'
2
2
  import { Pressable, View } from 'react-native'
3
3
 
4
- import { icons24 } from '@itcase/icons-default/default/svg'
4
+ import { icons24 } from '@itcase/icons-default'
5
5
 
6
6
  import { tokens } from '../../styles/tokens'
7
7
  import { Group } from '../Group'
@@ -1,7 +1,7 @@
1
1
  import { useCallback, useMemo } from 'react'
2
2
  import { Modal, Pressable, View } from 'react-native'
3
3
 
4
- import { icons24 } from '@itcase/icons-default/default/svg'
4
+ import { icons24 } from '@itcase/icons-default'
5
5
 
6
6
  import { tokens } from '../../styles/tokens'
7
7
  import { Divider } from '../Divider'
@@ -1,6 +1,6 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react'
2
2
 
3
- import { icons24 } from '@itcase/icons-default/default/svg'
3
+ import { icons24 } from '@itcase/icons-default'
4
4
 
5
5
  import { Icon } from '../Icon'
6
6
 
@@ -1,7 +1,7 @@
1
1
  import { useCallback, useMemo } from 'react'
2
2
  import { Pressable, TextInput, View } from 'react-native'
3
3
 
4
- import { icons24 } from '@itcase/icons-default/default/svg'
4
+ import { icons24 } from '@itcase/icons-default'
5
5
 
6
6
  import { tokens } from '../../styles/tokens'
7
7
  import { Icon } from '../Icon'
@@ -1,7 +1,7 @@
1
1
  import { useCallback, useMemo, useState } from 'react'
2
2
  import { Pressable, TextInput, View } from 'react-native'
3
3
 
4
- import { icons24 } from '@itcase/icons-default/default/svg'
4
+ import { icons24 } from '@itcase/icons-default'
5
5
 
6
6
  import { tokens } from '../../styles/tokens'
7
7
  import { Icon } from '../Icon'
@@ -1,6 +1,6 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react'
2
2
 
3
- import { icons20 } from '@itcase/icons-default/default/svg'
3
+ import { icons20 } from '@itcase/icons-default'
4
4
 
5
5
  import { MenuItem } from '../MenuItem'
6
6
 
@@ -1,7 +1,7 @@
1
1
  import React, { useCallback } from 'react'
2
2
  import { TextInput, View } from 'react-native'
3
3
 
4
- import { icons16 } from '@itcase/icons-default/default/svg'
4
+ import { icons16 } from '@itcase/icons-default'
5
5
 
6
6
  import { tokens } from '../../styles/tokens'
7
7
  import { Icon } from '../Icon'
@@ -1,6 +1,6 @@
1
1
  import { useState } from 'react'
2
2
 
3
- import { icons16, icons20, icons24 } from '@itcase/icons-default/default/svg'
3
+ import { icons16, icons20, icons24 } from '@itcase/icons-default'
4
4
 
5
5
  import { Segmented } from '../Segmented'
6
6
  import type { Segment, SegmentedProps } from '../Segmented.interface'
@@ -1,7 +1,7 @@
1
1
  import { useCallback, useMemo, useState } from 'react'
2
2
  import { Modal, Pressable, ScrollView, View } from 'react-native'
3
3
 
4
- import { icons16 } from '@itcase/icons-default/default/svg'
4
+ import { icons16 } from '@itcase/icons-default'
5
5
 
6
6
  import { tokens } from '../../styles/tokens'
7
7
  import { Group } from '../Group'
@@ -1,6 +1,6 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react'
2
2
 
3
- import { icons24 } from '@itcase/icons-default/default/svg'
3
+ import { icons24 } from '@itcase/icons-default'
4
4
 
5
5
  import { Tile } from '../Tile'
6
6
 
@@ -1,4 +1,4 @@
1
- import { icons16 } from '@itcase/icons-default/default/svg'
1
+ import { icons16 } from '@itcase/icons-default'
2
2
 
3
3
  import type { WarningAppearance } from '../Warning.interface'
4
4
 
@@ -1,4 +1,4 @@
1
- import { icons16 } from '@itcase/icons-default/default/svg'
1
+ import { icons16 } from '@itcase/icons-default'
2
2
 
3
3
  import type { WarningAppearance } from '../Warning.interface'
4
4
 
@@ -1,4 +1,4 @@
1
- import { icons16 } from '@itcase/icons-default/default/svg'
1
+ import { icons16 } from '@itcase/icons-default'
2
2
 
3
3
  import type { WarningAppearance } from '../Warning.interface'
4
4
 
@@ -1,4 +1,4 @@
1
- import { icons16 } from '@itcase/icons-default/default/svg'
1
+ import { icons16 } from '@itcase/icons-default'
2
2
 
3
3
  import type { WarningAppearance } from '../Warning.interface'
4
4
 
@@ -1,4 +1,4 @@
1
- import { icons16 } from '@itcase/icons-default/default/svg'
1
+ import { icons16 } from '@itcase/icons-default'
2
2
 
3
3
  import type { WarningAppearance } from '../Warning.interface'
4
4