cozy-ui 114.0.0 → 115.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/.bundlemonrc CHANGED
@@ -10,8 +10,7 @@
10
10
  "maxPercentIncrease": 10
11
11
  },
12
12
  {
13
- "path": "transpiled/react/stylesheet.css",
14
- "maxPercentIncrease": 10
13
+ "path": "transpiled/react/stylesheet.css"
15
14
  }
16
15
  ],
17
16
  "groups": [
package/CHANGELOG.md CHANGED
@@ -1,3 +1,24 @@
1
+ # [115.0.0](https://github.com/cozy/cozy-ui/compare/v114.0.1...v115.0.0) (2024-12-19)
2
+
3
+
4
+ ### Features
5
+
6
+ * Upgrade date-fns to 2.30.0 ([a89c524](https://github.com/cozy/cozy-ui/commit/a89c524))
7
+
8
+
9
+ ### BREAKING CHANGES
10
+
11
+ * The date formatting function (`f` from `useI18n`) changes,
12
+ please refer to this doc.
13
+ https://date-fns.org/v2.30.0/docs/format
14
+
15
+ ## [114.0.1](https://github.com/cozy/cozy-ui/compare/v114.0.0...v114.0.1) (2024-12-16)
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * **Export:** Wasn't good for Alert and I18n ([4770b0a](https://github.com/cozy/cozy-ui/commit/4770b0a))
21
+
1
22
  # [114.0.0](https://github.com/cozy/cozy-ui/compare/v113.9.0...v114.0.0) (2024-12-12)
2
23
 
3
24
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cozy-ui",
3
- "version": "114.0.0",
3
+ "version": "115.0.0",
4
4
  "description": "Cozy apps UI SDK",
5
5
  "main": "./index.js",
6
6
  "bin": {
@@ -162,7 +162,7 @@
162
162
  "chart.js": "3.7.1",
163
163
  "classnames": "^2.2.5",
164
164
  "cozy-interapp": "^0.5.4",
165
- "date-fns": "^1.28.5",
165
+ "date-fns": "2.30.0",
166
166
  "filesize": "8.0.7",
167
167
  "hammerjs": "^2.0.8",
168
168
  "intersection-observer": "0.11.0",
@@ -22,7 +22,7 @@ const DumbHelloWorld = translate()(({ t, f, lang }) => (
22
22
  <div>
23
23
  {t('helloworld')}
24
24
  <br />
25
- {f('2020-01-06', 'DDD MMM')}
25
+ {f('2020-01-06', 'D LLL', { useAdditionalDayOfYearTokens: true })}
26
26
  <br />
27
27
  {lang}
28
28
  </div>
@@ -26,7 +26,7 @@ const MonthButton = ({ monthNum, onClick, isSelected }) => {
26
26
  )}
27
27
  onClick={handleClick}
28
28
  >
29
- {f(d, 'MMM')}
29
+ {f(d, 'LLL')}
30
30
  </button>
31
31
  )
32
32
  }
@@ -50,7 +50,7 @@ const DateMonthPicker = ({ initialValue, onSelect }) => {
50
50
 
51
51
  const handleClickMonth = month => {
52
52
  const d = new Date(year, month, 1)
53
- onSelect(format(d, 'YYYY-MM-DD'))
53
+ onSelect(format(d, 'yyyy-LL-dd'))
54
54
  }
55
55
  return (
56
56
  <div>
@@ -93,7 +93,7 @@ const dateMonthProp = function (props, propName, componentName) {
93
93
  '` supplied to' +
94
94
  ' `' +
95
95
  componentName +
96
- '`. Should be in the form YYYY-MM.'
96
+ '`. Should be in the form yyyy-LL.'
97
97
  )
98
98
  }
99
99
  }
@@ -51,7 +51,7 @@ const FilePickerBodyItem = ({
51
51
  const Input = multiple ? Checkbox : Radio
52
52
 
53
53
  const listItemSecondaryContent = isFile(item)
54
- ? `${f(item.updated_at, 'DD MMM YYYY')} - ${filesize(item.size, {
54
+ ? `${f(item.updated_at, 'dd LLL yyyy')} - ${filesize(item.size, {
55
55
  base: 10
56
56
  })}`
57
57
  : null
@@ -12,7 +12,7 @@ const SecondaryText = ({ secondary, file }) => {
12
12
  if (secondary) return secondary
13
13
 
14
14
  const date = file?.metadata?.datetime
15
- ? f(file?.metadata?.datetime, 'DD/MM/YYYY')
15
+ ? f(file?.metadata?.datetime, 'dd/LL/yyyy')
16
16
  : null
17
17
 
18
18
  return (
package/react/index.js CHANGED
@@ -6,7 +6,7 @@ export { default as Banner } from './Banner'
6
6
  export { default as ButtonAction } from './deprecated/ButtonAction'
7
7
  export { default as BottomDrawer } from './deprecated/BottomDrawer'
8
8
  export { default as BarButton } from './BarButton'
9
- export { default as I18n, translate, useI18n } from './I18n'
9
+ export { default as I18n, translate, useI18n } from './providers/I18n'
10
10
  export { default as Icon } from './Icon'
11
11
  export { default as Sprite } from './Icon/Sprite'
12
12
  export { default as Sidebar } from './Sidebar'
@@ -134,7 +134,7 @@ export { default as TimelineDot } from './TimelineDot'
134
134
  export { default as TimelineItem } from './TimelineItem'
135
135
  export { default as TimelineOppositeContent } from './TimelineOppositeContent'
136
136
  export { default as TimelineSeparator } from './TimelineSeparator'
137
- export { default as AlertProvider, useAlert } from './Alert'
137
+ export { default as AlertProvider, useAlert } from './providers/Alert'
138
138
  export { default as Modal } from './Modal'
139
139
  export { ListSkeleton, ListItemSkeleton } from './Skeletons'
140
140
  export { default as ActionsBar } from './ActionsBar'
@@ -1,5 +1,5 @@
1
- import distanceInWordsToNow from 'date-fns/distance_in_words_to_now'
2
1
  import format from 'date-fns/format'
2
+ import formatDistanceToNow from 'date-fns/formatDistanceToNow'
3
3
 
4
4
  import { DEFAULT_LANG } from '.'
5
5
 
@@ -29,10 +29,13 @@ export const provideDateFnsLocale = (userLang, defaultLang = DEFAULT_LANG) => {
29
29
 
30
30
  export const initFormat =
31
31
  (userLang, defaultLang = DEFAULT_LANG) =>
32
- (date, formatStr) => {
32
+ (date, formatStr, opts = {}) => {
33
33
  const locale = provideDateFnsLocale(userLang, defaultLang)
34
- return format(date, formatStr, { locale })
34
+ const ensureDate = date && typeof date === 'string' ? new Date(date) : date
35
+
36
+ return format(ensureDate, formatStr, { locale, ...opts })
35
37
  }
36
38
 
37
- export const formatLocallyDistanceToNow = date =>
38
- distanceInWordsToNow(date, { locale: locales[lang] })
39
+ export const formatLocallyDistanceToNow = date => {
40
+ return formatDistanceToNow(date, { locale: locales[lang] })
41
+ }
@@ -10,7 +10,7 @@ const DumbI18nHelloWorld = ({ t, f, lang }) => (
10
10
  <div>
11
11
  {t('helloworld')}
12
12
  <br />
13
- {f('2020-01-06', 'DDD MMM')}
13
+ {f('2020-01-06', 'D LLL', { useAdditionalDayOfYearTokens: true })}
14
14
  <br />
15
15
  {lang}
16
16
  </div>
@@ -36,7 +36,7 @@ var MonthButton = function MonthButton(_ref) {
36
36
  return /*#__PURE__*/React.createElement("button", {
37
37
  className: cx(styles.DateMonthPicker__MonthButton, isSelected ? styles['DateMonthPicker__MonthButton--selected'] : null),
38
38
  onClick: handleClick
39
- }, f(d, 'MMM'));
39
+ }, f(d, 'LLL'));
40
40
  };
41
41
 
42
42
  var useCounter = function useCounter(initialValue, min, max) {
@@ -75,7 +75,7 @@ var DateMonthPicker = function DateMonthPicker(_ref2) {
75
75
 
76
76
  var handleClickMonth = function handleClickMonth(month) {
77
77
  var d = new Date(year, month, 1);
78
- onSelect(format(d, 'YYYY-MM-DD'));
78
+ onSelect(format(d, 'yyyy-LL-dd'));
79
79
  };
80
80
 
81
81
  return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
@@ -108,7 +108,7 @@ var DateMonthPicker = function DateMonthPicker(_ref2) {
108
108
 
109
109
  var dateMonthProp = function dateMonthProp(props, propName, componentName) {
110
110
  if (!/^[0-9]{4}-[0-9]{2}$/.test(props[propName])) {
111
- return new Error('Invalid prop `' + propName + '` supplied to' + ' `' + componentName + '`. Should be in the form YYYY-MM.');
111
+ return new Error('Invalid prop `' + propName + '` supplied to' + ' `' + componentName + '`. Should be in the form yyyy-LL.');
112
112
  }
113
113
  };
114
114
 
@@ -50,7 +50,7 @@ var FilePickerBodyItem = function FilePickerBodyItem(_ref) {
50
50
 
51
51
  var hasChoice = isValidFile(item, itemTypesAccepted) || isValidFolder(item, itemTypesAccepted);
52
52
  var Input = multiple ? Checkbox : Radio;
53
- var listItemSecondaryContent = isFile(item) ? "".concat(f(item.updated_at, 'DD MMM YYYY'), " - ").concat(filesize(item.size, {
53
+ var listItemSecondaryContent = isFile(item) ? "".concat(f(item.updated_at, 'dd LLL yyyy'), " - ").concat(filesize(item.size, {
54
54
  base: 10
55
55
  })) : null;
56
56
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ListItem, {
@@ -14,7 +14,7 @@ var SecondaryText = function SecondaryText(_ref) {
14
14
  f = _useI18n.f;
15
15
 
16
16
  if (secondary) return secondary;
17
- var date = file !== null && file !== void 0 && (_file$metadata = file.metadata) !== null && _file$metadata !== void 0 && _file$metadata.datetime ? f(file === null || file === void 0 ? void 0 : (_file$metadata2 = file.metadata) === null || _file$metadata2 === void 0 ? void 0 : _file$metadata2.datetime, 'DD/MM/YYYY') : null;
17
+ var date = file !== null && file !== void 0 && (_file$metadata = file.metadata) !== null && _file$metadata !== void 0 && _file$metadata.datetime ? f(file === null || file === void 0 ? void 0 : (_file$metadata2 = file.metadata) === null || _file$metadata2 === void 0 ? void 0 : _file$metadata2.datetime, 'dd/LL/yyyy') : null;
18
18
  return /*#__PURE__*/React.createElement(React.Fragment, null, date ? date : '', (isExpired(file) || isExpiringSoon(file)) && /*#__PURE__*/React.createElement(React.Fragment, null, date ? ' · ' : '', /*#__PURE__*/React.createElement(ExpirationAnnotation, {
19
19
  file: file
20
20
  })));
@@ -6,7 +6,7 @@ export { default as Banner } from './Banner';
6
6
  export { default as ButtonAction } from './deprecated/ButtonAction';
7
7
  export { default as BottomDrawer } from './deprecated/BottomDrawer';
8
8
  export { default as BarButton } from './BarButton';
9
- export { default as I18n, translate, useI18n } from './I18n';
9
+ export { default as I18n, translate, useI18n } from './providers/I18n';
10
10
  export { default as Icon } from './Icon';
11
11
  export { default as Sprite } from './Icon/Sprite';
12
12
  export { default as Sidebar } from './Sidebar';
@@ -107,7 +107,7 @@ export { default as TimelineDot } from './TimelineDot';
107
107
  export { default as TimelineItem } from './TimelineItem';
108
108
  export { default as TimelineOppositeContent } from './TimelineOppositeContent';
109
109
  export { default as TimelineSeparator } from './TimelineSeparator';
110
- export { default as AlertProvider, useAlert } from './Alert';
110
+ export { default as AlertProvider, useAlert } from './providers/Alert';
111
111
  export { default as Modal } from './Modal';
112
112
  export { ListSkeleton, ListItemSkeleton } from './Skeletons';
113
113
  export { default as ActionsBar } from './ActionsBar';
@@ -1,5 +1,11 @@
1
- import distanceInWordsToNow from 'date-fns/distance_in_words_to_now';
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+
3
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
+
5
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
+
2
7
  import format from 'date-fns/format';
8
+ import formatDistanceToNow from 'date-fns/formatDistanceToNow';
3
9
  import { DEFAULT_LANG } from "cozy-ui/transpiled/react/providers/I18n";
4
10
  var locales = {};
5
11
  var lang = DEFAULT_LANG;
@@ -31,14 +37,16 @@ export var provideDateFnsLocale = function provideDateFnsLocale(userLang) {
31
37
  export var initFormat = function initFormat(userLang) {
32
38
  var defaultLang = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_LANG;
33
39
  return function (date, formatStr) {
40
+ var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
34
41
  var locale = provideDateFnsLocale(userLang, defaultLang);
35
- return format(date, formatStr, {
42
+ var ensureDate = date && typeof date === 'string' ? new Date(date) : date;
43
+ return format(ensureDate, formatStr, _objectSpread({
36
44
  locale: locale
37
- });
45
+ }, opts));
38
46
  };
39
47
  };
40
48
  export var formatLocallyDistanceToNow = function formatLocallyDistanceToNow(date) {
41
- return distanceInWordsToNow(date, {
49
+ return formatDistanceToNow(date, {
42
50
  locale: locales[lang]
43
51
  });
44
52
  };