cozy-ui-plus 4.6.0 → 5.0.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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,21 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [5.0.0](https://github.com/cozy/cozy-libs/compare/cozy-ui-plus@4.6.0...cozy-ui-plus@5.0.0) (2026-02-23)
7
+
8
+ ### Bug Fixes
9
+
10
+ - **cozy-ui-plus:** Adjust mobile style of flags items in TextFieldPhone ([9cdd431](https://github.com/cozy/cozy-libs/commit/9cdd431c536d6629a9bc4acd1b097d7772a46538))
11
+
12
+ ### Features
13
+
14
+ - **cozy-ui-plus:** Create own FlagImage to show country flags ([1a1ccaf](https://github.com/cozy/cozy-libs/commit/1a1ccaf40c8671e3af6607a031be04477a7abee5))
15
+ - **cozy-ui-plus:** Upgrade packages ([e859c05](https://github.com/cozy/cozy-libs/commit/e859c053e13b145f00a1ca75ff39668eb3974cde))
16
+
17
+ ### BREAKING CHANGES
18
+
19
+ - **cozy-ui-plus:** You must have `cozy-client >= 60.21.3`
20
+
6
21
  # [4.6.0](https://github.com/cozy/cozy-libs/compare/cozy-ui-plus@4.5.1...cozy-ui-plus@4.6.0) (2026-02-19)
7
22
 
8
23
  ### Features
@@ -15,16 +15,20 @@ require("react-international-phone/style.css");
15
15
 
16
16
  var _BottomSheet = _interopRequireWildcard(require("cozy-ui/transpiled/react/BottomSheet"));
17
17
 
18
+ var _List = _interopRequireDefault(require("cozy-ui/transpiled/react/List"));
19
+
20
+ var _ListItem = _interopRequireDefault(require("cozy-ui/transpiled/react/ListItem"));
21
+
18
22
  var _ListItemIcon = _interopRequireDefault(require("cozy-ui/transpiled/react/ListItemIcon"));
19
23
 
20
24
  var _ListItemText = _interopRequireDefault(require("cozy-ui/transpiled/react/ListItemText"));
21
25
 
22
- var _MenuItem = _interopRequireDefault(require("cozy-ui/transpiled/react/MenuItem"));
23
-
24
26
  var _Typography = _interopRequireDefault(require("cozy-ui/transpiled/react/Typography"));
25
27
 
26
28
  var _ButtonBase = _interopRequireDefault(require("./ButtonBase"));
27
29
 
30
+ var _FlagImage = _interopRequireDefault(require("./FlagImage"));
31
+
28
32
  var _reactInternationalPhone = require("react-international-phone");
29
33
 
30
34
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -44,35 +48,37 @@ var FlagBottomSheet = function FlagBottomSheet(_ref) {
44
48
  onClick: function onClick() {
45
49
  return setOpen(true);
46
50
  }
47
- }, /*#__PURE__*/_react.default.createElement(_reactInternationalPhone.FlagImage, {
51
+ }, /*#__PURE__*/_react.default.createElement(_FlagImage.default, {
48
52
  iso2: value
49
53
  })), open && /*#__PURE__*/_react.default.createElement(_BottomSheet.default, {
50
54
  backdrop: true,
51
55
  onClose: function onClose() {
52
56
  return setOpen(false);
53
57
  }
54
- }, /*#__PURE__*/_react.default.createElement(_BottomSheet.BottomSheetItem, null, _reactInternationalPhone.defaultCountries.map(function (c) {
58
+ }, /*#__PURE__*/_react.default.createElement(_BottomSheet.BottomSheetItem, {
59
+ disableGutters: true
60
+ }, /*#__PURE__*/_react.default.createElement(_List.default, null, _reactInternationalPhone.defaultCountries.map(function (c) {
55
61
  var _parseCountry = (0, _reactInternationalPhone.parseCountry)(c),
56
62
  iso2 = _parseCountry.iso2,
57
63
  name = _parseCountry.name,
58
64
  dialCode = _parseCountry.dialCode;
59
65
 
60
- return /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
66
+ return /*#__PURE__*/_react.default.createElement(_ListItem.default, {
61
67
  key: iso2,
62
68
  value: iso2,
69
+ button: true,
63
70
  onClick: function onClick() {
64
71
  setCountry(iso2);
65
72
  setOpen(false);
66
73
  }
67
- }, /*#__PURE__*/_react.default.createElement(_ListItemIcon.default, null, /*#__PURE__*/_react.default.createElement(_reactInternationalPhone.FlagImage, {
74
+ }, /*#__PURE__*/_react.default.createElement(_ListItemIcon.default, null, /*#__PURE__*/_react.default.createElement(_FlagImage.default, {
68
75
  iso2: iso2
69
76
  })), /*#__PURE__*/_react.default.createElement(_ListItemText.default, {
70
77
  primary: name
71
78
  }), /*#__PURE__*/_react.default.createElement(_Typography.default, {
72
- className: "u-mr-half",
73
79
  align: "right"
74
80
  }, "+", dialCode));
75
- }))));
81
+ })))));
76
82
  };
77
83
 
78
84
  var _default = FlagBottomSheet;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
+
14
+ var _react = _interopRequireDefault(require("react"));
15
+
16
+ var _countries = require("cozy-client/dist/models/country/countries");
17
+
18
+ var _Typography = _interopRequireDefault(require("cozy-ui/transpiled/react/Typography"));
19
+
20
+ var _excluded = ["iso2"];
21
+
22
+ var FlagImage = function FlagImage(_ref) {
23
+ var iso2 = _ref.iso2,
24
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
25
+ var flagEmoji = (0, _countries.getEmojiByCountry)(iso2);
26
+ return /*#__PURE__*/_react.default.createElement(_Typography.default, (0, _extends2.default)({}, props, {
27
+ variant: "h3"
28
+ }), flagEmoji);
29
+ };
30
+
31
+ var _default = FlagImage;
32
+ exports.default = _default;
@@ -9,7 +9,7 @@ exports.default = void 0;
9
9
 
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
 
12
- require("react-international-phone/style.css");
12
+ var _reactInternationalPhone = require("react-international-phone");
13
13
 
14
14
  var _ListItemIcon = _interopRequireDefault(require("cozy-ui/transpiled/react/ListItemIcon"));
15
15
 
@@ -23,7 +23,7 @@ var _Typography = _interopRequireDefault(require("cozy-ui/transpiled/react/Typog
23
23
 
24
24
  var _CustomInput = _interopRequireDefault(require("./CustomInput"));
25
25
 
26
- var _reactInternationalPhone = require("react-international-phone");
26
+ var _FlagImage = _interopRequireDefault(require("./FlagImage"));
27
27
 
28
28
  var FlagMenu = function FlagMenu(_ref) {
29
29
  var value = _ref.value,
@@ -41,12 +41,9 @@ var FlagMenu = function FlagMenu(_ref) {
41
41
  },
42
42
  value: value,
43
43
  renderValue: function renderValue(v) {
44
- return /*#__PURE__*/_react.default.createElement(_reactInternationalPhone.FlagImage, {
45
- iso2: v,
46
- style: {
47
- verticalAlign: 'bottom',
48
- marginLeft: '0.5rem'
49
- }
44
+ return /*#__PURE__*/_react.default.createElement(_FlagImage.default, {
45
+ className: "u-ml-half",
46
+ iso2: v
50
47
  });
51
48
  },
52
49
  onChange: function onChange(e) {
@@ -61,7 +58,7 @@ var FlagMenu = function FlagMenu(_ref) {
61
58
  return /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
62
59
  key: iso2,
63
60
  value: iso2
64
- }, /*#__PURE__*/_react.default.createElement(_ListItemIcon.default, null, /*#__PURE__*/_react.default.createElement(_reactInternationalPhone.FlagImage, {
61
+ }, /*#__PURE__*/_react.default.createElement(_ListItemIcon.default, null, /*#__PURE__*/_react.default.createElement(_FlagImage.default, {
65
62
  iso2: iso2
66
63
  })), /*#__PURE__*/_react.default.createElement(_ListItemText.default, {
67
64
  primary: name
@@ -0,0 +1,5 @@
1
+ export default FlagImage;
2
+ declare function FlagImage({ iso2, ...props }: {
3
+ [x: string]: any;
4
+ iso2: any;
5
+ }): JSX.Element;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cozy-ui-plus",
3
- "version": "4.6.0",
3
+ "version": "5.0.0",
4
4
  "description": "Cozy-ui-plus is an extension of cozy-ui and provides components based on cozy-client",
5
5
  "main": "dist/index.js",
6
6
  "license": "MIT",
@@ -32,11 +32,11 @@
32
32
  "@typescript-eslint/parser": "5.54.0",
33
33
  "babel-plugin-inline-json-import": "0.3.2",
34
34
  "babel-preset-cozy-app": "^2.8.3",
35
- "cozy-client": "^60.5.0",
35
+ "cozy-client": "^60.21.3",
36
36
  "cozy-device-helper": "2.0.0",
37
37
  "cozy-intent": "^2.30.2",
38
38
  "cozy-logger": "^1.17.0",
39
- "cozy-stack-client": "^60.1.0",
39
+ "cozy-stack-client": "^60.21.1",
40
40
  "cozy-ui": "^135.0.0",
41
41
  "jest": "26.6.3",
42
42
  "jest-canvas-mock": "2.3.1",
@@ -64,7 +64,7 @@
64
64
  "rooks": "7.14.1"
65
65
  },
66
66
  "peerDependencies": {
67
- "cozy-client": ">=60.5.0",
67
+ "cozy-client": ">=60.21.3",
68
68
  "cozy-device-helper": ">=2.0.0",
69
69
  "cozy-intent": ">=2.30.0",
70
70
  "cozy-logger": ">=1.17.0",
@@ -73,5 +73,5 @@
73
73
  "react-dom": "^16 || ^17 || ^18",
74
74
  "twake-i18n": ">=0.3.0"
75
75
  },
76
- "gitHead": "8a5f3cb0c64efb15a79cb856927dba5513a94623"
76
+ "gitHead": "773752426c7e3d6ce69400c6c320c67648d8d207"
77
77
  }
@@ -4,18 +4,16 @@ import 'react-international-phone/style.css'
4
4
  import BottomSheet, {
5
5
  BottomSheetItem
6
6
  } from 'cozy-ui/transpiled/react/BottomSheet'
7
+ import List from 'cozy-ui/transpiled/react/List'
8
+ import ListItem from 'cozy-ui/transpiled/react/ListItem'
7
9
  import ListItemIcon from 'cozy-ui/transpiled/react/ListItemIcon'
8
10
  import ListItemText from 'cozy-ui/transpiled/react/ListItemText'
9
- import MenuItem from 'cozy-ui/transpiled/react/MenuItem'
10
11
  import Typography from 'cozy-ui/transpiled/react/Typography'
11
12
 
12
13
  import ButtonBase from './ButtonBase'
14
+ import FlagImage from './FlagImage'
13
15
 
14
- import {
15
- defaultCountries,
16
- FlagImage,
17
- parseCountry
18
- } from 'react-international-phone'
16
+ import { defaultCountries, parseCountry } from 'react-international-phone'
19
17
 
20
18
  const FlagBottomSheet = ({ value, setCountry }) => {
21
19
  const [open, setOpen] = useState(false)
@@ -28,28 +26,29 @@ const FlagBottomSheet = ({ value, setCountry }) => {
28
26
 
29
27
  {open && (
30
28
  <BottomSheet backdrop onClose={() => setOpen(false)}>
31
- <BottomSheetItem>
32
- {defaultCountries.map(c => {
33
- const { iso2, name, dialCode } = parseCountry(c)
34
- return (
35
- <MenuItem
36
- key={iso2}
37
- value={iso2}
38
- onClick={() => {
39
- setCountry(iso2)
40
- setOpen(false)
41
- }}
42
- >
43
- <ListItemIcon>
44
- <FlagImage iso2={iso2} />
45
- </ListItemIcon>
46
- <ListItemText primary={name} />
47
- <Typography className="u-mr-half" align="right">
48
- +{dialCode}
49
- </Typography>
50
- </MenuItem>
51
- )
52
- })}
29
+ <BottomSheetItem disableGutters>
30
+ <List>
31
+ {defaultCountries.map(c => {
32
+ const { iso2, name, dialCode } = parseCountry(c)
33
+ return (
34
+ <ListItem
35
+ key={iso2}
36
+ value={iso2}
37
+ button
38
+ onClick={() => {
39
+ setCountry(iso2)
40
+ setOpen(false)
41
+ }}
42
+ >
43
+ <ListItemIcon>
44
+ <FlagImage iso2={iso2} />
45
+ </ListItemIcon>
46
+ <ListItemText primary={name} />
47
+ <Typography align="right">+{dialCode}</Typography>
48
+ </ListItem>
49
+ )
50
+ })}
51
+ </List>
53
52
  </BottomSheetItem>
54
53
  </BottomSheet>
55
54
  )}
@@ -0,0 +1,16 @@
1
+ import React from 'react'
2
+
3
+ import { getEmojiByCountry } from 'cozy-client/dist/models/country/countries'
4
+ import Typography from 'cozy-ui/transpiled/react/Typography'
5
+
6
+ const FlagImage = ({ iso2, ...props }) => {
7
+ const flagEmoji = getEmojiByCountry(iso2)
8
+
9
+ return (
10
+ <Typography {...props} variant="h3">
11
+ {flagEmoji}
12
+ </Typography>
13
+ )
14
+ }
15
+
16
+ export default FlagImage
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import 'react-international-phone/style.css'
2
+ import { defaultCountries, parseCountry } from 'react-international-phone'
3
3
 
4
4
  import ListItemIcon from 'cozy-ui/transpiled/react/ListItemIcon'
5
5
  import ListItemText from 'cozy-ui/transpiled/react/ListItemText'
@@ -8,12 +8,7 @@ import Select from 'cozy-ui/transpiled/react/Select'
8
8
  import Typography from 'cozy-ui/transpiled/react/Typography'
9
9
 
10
10
  import CustomInput from './CustomInput'
11
-
12
- import {
13
- defaultCountries,
14
- FlagImage,
15
- parseCountry
16
- } from 'react-international-phone'
11
+ import FlagImage from './FlagImage'
17
12
 
18
13
  const FlagMenu = ({ value, setCountry }) => {
19
14
  return (
@@ -29,12 +24,7 @@ const FlagMenu = ({ value, setCountry }) => {
29
24
  }
30
25
  }}
31
26
  value={value}
32
- renderValue={v => (
33
- <FlagImage
34
- iso2={v}
35
- style={{ verticalAlign: 'bottom', marginLeft: '0.5rem' }}
36
- />
37
- )}
27
+ renderValue={v => <FlagImage className="u-ml-half" iso2={v} />}
38
28
  onChange={e => setCountry(e.target.value)}
39
29
  >
40
30
  {defaultCountries.map(c => {
@@ -110,7 +110,7 @@ describe('Paywall', () => {
110
110
  })
111
111
  fireEvent.click(actionButton)
112
112
  expect(openSpy).toBeCalledWith(
113
- 'http://mycozy.cloud/cozy/instances/123/premium',
113
+ 'http://mycozy.cloud/cozy/instances/123/premium?lang=en',
114
114
  '_self'
115
115
  )
116
116
  })
@@ -220,7 +220,7 @@ describe('Paywall', () => {
220
220
  })
221
221
  fireEvent.click(actionButton)
222
222
  expect(openSpy).toBeCalledWith(
223
- 'http://mycozy.cloud/cozy/instances/123/premium',
223
+ 'http://mycozy.cloud/cozy/instances/123/premium?lang=en',
224
224
  '_self'
225
225
  )
226
226
  })