@contentful/f36-datetime 4.48.0 → 4.48.1

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/dist/esm/index.js CHANGED
@@ -7,4 +7,5 @@ import L from 'dayjs/plugin/calendar.js';
7
7
  var W=Object.defineProperty,b=Object.defineProperties;var H=Object.getOwnPropertyDescriptors;var p=Object.getOwnPropertySymbols;var Y=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable;var P=(e,a,t)=>a in e?W(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,f=(e,a)=>{for(var t in a||(a={}))Y.call(a,t)&&P(e,t,a[t]);if(p)for(var t of p(a))v.call(a,t)&&P(e,t,a[t]);return e},D=(e,a)=>b(e,H(a));var s=(e,a)=>{var t={};for(var r in e)Y.call(e,r)&&a.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&p)for(var r of p(e))a.indexOf(r)<0&&v.call(e,r)&&(t[r]=e[r]);return t};o.extend(S);function T(e,a="full"){let t;switch(a){case"day":t="DD MMM YYYY";break;case"weekday":t="ddd, DD MMM";break;case"time":t="h:mm A";break;case"fullWithSeconds":t="ddd, DD MMM YYYY [at] h:mm:ss A";break;default:t="ddd, DD MMM YYYY [at] h:mm A";}return o(e).format(t)}function m(e,a="full"){let t;switch(a){case"day":t="YYYY-MM-DD";break;case"weekday":t="MM-DD";break;case"time":t="HH:mm:ss.SSS";break;default:t="YYYY-MM-DDTHH:mm:ss.SSS[Z]";}return o(e).utc().format(t)}o.extend(S);o.extend(A);o.extend(L);function i(e,a=new Date){return o(e).from(a)}function x(e,a=new Date){return o(e).isSame(a,"day")?i(e,a):o(e).calendar(a,{sameElse:"DD MMM YYYY"})}var F=(R,d)=>{var c=R,{date:e,format:a="full",testId:t="cf-ui-date-time"}=c,r=s(c,["date","format","testId"]);let n=m(e);return h.createElement("time",D(f({dateTime:n,"data-test-id":t},r),{ref:d}),T(e,a))},j=h.forwardRef(F);o.extend(S);o.extend(A);o.extend(L);var Z=(c,R)=>{var n=c,{date:e,baseDate:a,isRelativeToCurrentWeek:t=!1,testId:r="cf-ui-relative-date-time"}=n,d=s(n,["date","baseDate","isRelativeToCurrentWeek","testId"]);let g=new Date,y=a!=null?a:g,w=o(e),E=m(e),u;return t&&!w.isSame(y,"day")?u=x(e,y):u=i(e,y),h.createElement("time",D(f({dateTime:E,"data-test-id":r},d),{ref:R}),u)},q=h.forwardRef(Z);
8
8
 
9
9
  export { j as DateTime, q as RelativeDateTime, T as formatDateAndTime, m as formatMachineReadableDateTime, i as formatRelativeDateTime };
10
+ //# sourceMappingURL=out.js.map
10
11
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,99 @@
1
+ import React from 'react';
2
+ import { PropsWithHTMLElement, CommonProps } from '@contentful/f36-core';
3
+
4
+ declare type DateType = Date | string | number;
5
+ declare type DateFormat = 'fullWithSeconds' | 'full' | 'time' | 'day' | 'weekday';
6
+
7
+ interface DateTimeOwnProps extends CommonProps {
8
+ /**
9
+ * The date that will be displayed. It accepts a JS Date, an ISO8601 Timestamp string, or Unix Epoch Milliseconds number
10
+ */
11
+ date: DateType;
12
+ /**
13
+ * The format in which the date will be presented
14
+ *
15
+ * @default full
16
+ **/
17
+ format?: DateFormat;
18
+ }
19
+ declare type DateTimeProps = PropsWithHTMLElement<DateTimeOwnProps, 'time'>;
20
+ /**
21
+ * The DateTime component will format a date to a human friendly format and wrap it in a `<time>` tag
22
+ */
23
+ declare const DateTime: React.ForwardRefExoticComponent<Omit<Omit<Pick<React.DetailedHTMLProps<React.TimeHTMLAttributes<HTMLElement>, HTMLElement>, "key" | keyof React.TimeHTMLAttributes<HTMLElement>>, never>, keyof DateTimeOwnProps> & DateTimeOwnProps & React.RefAttributes<HTMLTimeElement>>;
24
+
25
+ interface RelativeDateTimeInternalProps extends CommonProps {
26
+ /**
27
+ * The date that will be displayed. It accepts a JS Date, an ISO8601 Timestamp string, or Unix Epoch Milliseconds number
28
+ */
29
+ date: DateType;
30
+ /**
31
+ * If a value is passed to baseDate, then the component will compare both dates and return the time between them.
32
+ * If no value is passed then the date will be compared to "now"
33
+ *
34
+ * @default "Now"
35
+ */
36
+ baseDate?: DateType;
37
+ /**
38
+ * Sets the date to be relative only if it is in the current week
39
+ * @default false
40
+ */
41
+ isRelativeToCurrentWeek?: boolean;
42
+ }
43
+ declare type RelativeDateTimeProps = PropsWithHTMLElement<RelativeDateTimeInternalProps, 'time'>;
44
+ /**
45
+ * The RelativeDateTime will show a `date` relative to "now" or to the `baseDate`
46
+ * (e.g. in a day, in one month, one month ago, etc).
47
+ */
48
+ declare const RelativeDateTime: React.ForwardRefExoticComponent<Omit<Omit<Pick<React.DetailedHTMLProps<React.TimeHTMLAttributes<HTMLElement>, HTMLElement>, "key" | keyof React.TimeHTMLAttributes<HTMLElement>>, never>, keyof RelativeDateTimeInternalProps> & RelativeDateTimeInternalProps & React.RefAttributes<HTMLTimeElement>>;
49
+
50
+ /**
51
+ * A funtion that will return a formatted date string. The format will dependend on the option
52
+ * passed in the second argument.
53
+ * By default, it will return a string with Forma 36’s "full" format (e.g. Tue, 17 Aug 2021 at 3:45 PM)
54
+ *
55
+ * @param {DateType} date - the date to be formatted
56
+ * @param {DateFormat} format - the desired format ("full", "day", "weekday", or "time")
57
+ * @returns a formatted date
58
+ *
59
+ * @example
60
+ * formatDateAndTime('2021-08-17T15:45:00') // returns "Tue, 17 Aug 2021 at 3:45 PM"
61
+ *
62
+ * @example
63
+ * formatDateAndTime('2021-08-17T15:45:00', 'day') // returns "17 Aug 2021"
64
+ */
65
+ declare function formatDateAndTime(date: DateType, format?: DateFormat): string;
66
+ /**
67
+ * A funtion that will return a machine-readable date string that should be passed to the `datetime` attribute of a `<time>` tag
68
+ * By default, it will return a string with "YYYY-MM-DDTHH:mm:ss.SSS[Z]" format
69
+ *
70
+ * @param {DateType} date - the date to be formatted
71
+ * @param {DateFormat} format - the desired format ("full", "day", "weekday", or "time")
72
+ * @returns a formatted date
73
+ *
74
+ * @example
75
+ * formatMachineReadableDateTime(date) // returns 2019-08-13T10:00:00.000Z
76
+ *
77
+ * @example
78
+ * formatMachineReadableDateTime(date, 'day') // returns 2019-08-13
79
+ */
80
+ declare function formatMachineReadableDateTime(date: DateType, format?: DateFormat): string;
81
+
82
+ /**
83
+ * A function that will return a string with how far a given date is in the past or future,
84
+ * using a baseDate as reference. If the baseDate is not passed, the function will use today as reference.
85
+ *
86
+ * @param {DateType} date - the date to be formatted
87
+ * @param {DateFormat} baseDate - the date that should be used as a reference (default is "today")
88
+ * @returns a relative date
89
+ *
90
+ * @example
91
+ * // Considering today as 18.08.2021
92
+ * formatRelativeDateTime('2021-08-17T15:45:00') // returns "a day ago"
93
+ *
94
+ * @example
95
+ * formatRelativeDateTime('2021-08-17T15:45:00', '2021-08-16') // returns "in a day"
96
+ */
97
+ declare function formatRelativeDateTime(date: DateType, baseDate?: DateType): string;
98
+
99
+ export { DateTime, DateTimeProps, RelativeDateTime, RelativeDateTimeProps, formatDateAndTime, formatMachineReadableDateTime, formatRelativeDateTime };
package/dist/index.js CHANGED
@@ -1,26 +1,25 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var h = require('react');
6
4
  var o = require('dayjs');
7
5
  var S = require('dayjs/plugin/utc.js');
8
6
  var A = require('dayjs/plugin/relativeTime.js');
9
7
  var L = require('dayjs/plugin/calendar.js');
10
8
 
11
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
9
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
10
 
13
- var h__default = /*#__PURE__*/_interopDefaultLegacy(h);
14
- var o__default = /*#__PURE__*/_interopDefaultLegacy(o);
15
- var S__default = /*#__PURE__*/_interopDefaultLegacy(S);
16
- var A__default = /*#__PURE__*/_interopDefaultLegacy(A);
17
- var L__default = /*#__PURE__*/_interopDefaultLegacy(L);
11
+ var h__default = /*#__PURE__*/_interopDefault(h);
12
+ var o__default = /*#__PURE__*/_interopDefault(o);
13
+ var S__default = /*#__PURE__*/_interopDefault(S);
14
+ var A__default = /*#__PURE__*/_interopDefault(A);
15
+ var L__default = /*#__PURE__*/_interopDefault(L);
18
16
 
19
- var W=Object.defineProperty,b=Object.defineProperties;var H=Object.getOwnPropertyDescriptors;var p=Object.getOwnPropertySymbols;var Y=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable;var P=(e,a,t)=>a in e?W(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,f=(e,a)=>{for(var t in a||(a={}))Y.call(a,t)&&P(e,t,a[t]);if(p)for(var t of p(a))v.call(a,t)&&P(e,t,a[t]);return e},D=(e,a)=>b(e,H(a));var s=(e,a)=>{var t={};for(var r in e)Y.call(e,r)&&a.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&p)for(var r of p(e))a.indexOf(r)<0&&v.call(e,r)&&(t[r]=e[r]);return t};o__default["default"].extend(S__default["default"]);function T(e,a="full"){let t;switch(a){case"day":t="DD MMM YYYY";break;case"weekday":t="ddd, DD MMM";break;case"time":t="h:mm A";break;case"fullWithSeconds":t="ddd, DD MMM YYYY [at] h:mm:ss A";break;default:t="ddd, DD MMM YYYY [at] h:mm A";}return o__default["default"](e).format(t)}function m(e,a="full"){let t;switch(a){case"day":t="YYYY-MM-DD";break;case"weekday":t="MM-DD";break;case"time":t="HH:mm:ss.SSS";break;default:t="YYYY-MM-DDTHH:mm:ss.SSS[Z]";}return o__default["default"](e).utc().format(t)}o__default["default"].extend(S__default["default"]);o__default["default"].extend(A__default["default"]);o__default["default"].extend(L__default["default"]);function i(e,a=new Date){return o__default["default"](e).from(a)}function x(e,a=new Date){return o__default["default"](e).isSame(a,"day")?i(e,a):o__default["default"](e).calendar(a,{sameElse:"DD MMM YYYY"})}var F=(R,d)=>{var c=R,{date:e,format:a="full",testId:t="cf-ui-date-time"}=c,r=s(c,["date","format","testId"]);let n=m(e);return h__default["default"].createElement("time",D(f({dateTime:n,"data-test-id":t},r),{ref:d}),T(e,a))},j=h__default["default"].forwardRef(F);o__default["default"].extend(S__default["default"]);o__default["default"].extend(A__default["default"]);o__default["default"].extend(L__default["default"]);var Z=(c,R)=>{var n=c,{date:e,baseDate:a,isRelativeToCurrentWeek:t=!1,testId:r="cf-ui-relative-date-time"}=n,d=s(n,["date","baseDate","isRelativeToCurrentWeek","testId"]);let g=new Date,y=a!=null?a:g,w=o__default["default"](e),E=m(e),u;return t&&!w.isSame(y,"day")?u=x(e,y):u=i(e,y),h__default["default"].createElement("time",D(f({dateTime:E,"data-test-id":r},d),{ref:R}),u)},q=h__default["default"].forwardRef(Z);
17
+ var W=Object.defineProperty,b=Object.defineProperties;var H=Object.getOwnPropertyDescriptors;var p=Object.getOwnPropertySymbols;var Y=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable;var P=(e,a,t)=>a in e?W(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,f=(e,a)=>{for(var t in a||(a={}))Y.call(a,t)&&P(e,t,a[t]);if(p)for(var t of p(a))v.call(a,t)&&P(e,t,a[t]);return e},D=(e,a)=>b(e,H(a));var s=(e,a)=>{var t={};for(var r in e)Y.call(e,r)&&a.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&p)for(var r of p(e))a.indexOf(r)<0&&v.call(e,r)&&(t[r]=e[r]);return t};o__default.default.extend(S__default.default);function T(e,a="full"){let t;switch(a){case"day":t="DD MMM YYYY";break;case"weekday":t="ddd, DD MMM";break;case"time":t="h:mm A";break;case"fullWithSeconds":t="ddd, DD MMM YYYY [at] h:mm:ss A";break;default:t="ddd, DD MMM YYYY [at] h:mm A";}return o__default.default(e).format(t)}function m(e,a="full"){let t;switch(a){case"day":t="YYYY-MM-DD";break;case"weekday":t="MM-DD";break;case"time":t="HH:mm:ss.SSS";break;default:t="YYYY-MM-DDTHH:mm:ss.SSS[Z]";}return o__default.default(e).utc().format(t)}o__default.default.extend(S__default.default);o__default.default.extend(A__default.default);o__default.default.extend(L__default.default);function i(e,a=new Date){return o__default.default(e).from(a)}function x(e,a=new Date){return o__default.default(e).isSame(a,"day")?i(e,a):o__default.default(e).calendar(a,{sameElse:"DD MMM YYYY"})}var F=(R,d)=>{var c=R,{date:e,format:a="full",testId:t="cf-ui-date-time"}=c,r=s(c,["date","format","testId"]);let n=m(e);return h__default.default.createElement("time",D(f({dateTime:n,"data-test-id":t},r),{ref:d}),T(e,a))},j=h__default.default.forwardRef(F);o__default.default.extend(S__default.default);o__default.default.extend(A__default.default);o__default.default.extend(L__default.default);var Z=(c,R)=>{var n=c,{date:e,baseDate:a,isRelativeToCurrentWeek:t=!1,testId:r="cf-ui-relative-date-time"}=n,d=s(n,["date","baseDate","isRelativeToCurrentWeek","testId"]);let g=new Date,y=a!=null?a:g,w=o__default.default(e),E=m(e),u;return t&&!w.isSame(y,"day")?u=x(e,y):u=i(e,y),h__default.default.createElement("time",D(f({dateTime:E,"data-test-id":r},d),{ref:R}),u)},q=h__default.default.forwardRef(Z);
20
18
 
21
19
  exports.DateTime = j;
22
20
  exports.RelativeDateTime = q;
23
21
  exports.formatDateAndTime = T;
24
22
  exports.formatMachineReadableDateTime = m;
25
23
  exports.formatRelativeDateTime = i;
24
+ //# sourceMappingURL=out.js.map
26
25
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@contentful/f36-datetime",
3
- "version": "4.48.0",
3
+ "version": "4.48.1",
4
4
  "description": "Forma 36: DateTime component",
5
5
  "scripts": {
6
6
  "build": "tsup"
7
7
  },
8
8
  "dependencies": {
9
- "@contentful/f36-core": "^4.48.0",
9
+ "@contentful/f36-core": "^4.48.1",
10
10
  "@contentful/f36-tokens": "^4.0.2",
11
11
  "dayjs": "^1.11.5",
12
12
  "emotion": "^10.0.17"