@strapi/design-system 1.6.5 → 1.7.0-alpha.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 (113) hide show
  1. package/README.md +55 -0
  2. package/dist/BaseButton/BaseButton.cjs +4 -4
  3. package/dist/BaseButton/BaseButton.js +18 -17
  4. package/dist/BaseLink/BaseLink.cjs +1 -3
  5. package/dist/BaseLink/BaseLink.js +14 -14
  6. package/dist/Combobox/Combobox.cjs +104 -1
  7. package/dist/Combobox/Combobox.js +348 -278
  8. package/dist/Combobox/ComboboxList.cjs +1 -1
  9. package/dist/Combobox/ComboboxList.js +7 -6
  10. package/dist/Combobox/ComboboxOption.cjs +1 -1
  11. package/dist/Combobox/ComboboxOption.js +3 -29
  12. package/dist/DatePicker/DatePicker.cjs +12 -1
  13. package/dist/DatePicker/DatePicker.js +79 -100
  14. package/dist/DatePicker/DatePickerCalendar.cjs +1 -1
  15. package/dist/DatePicker/DatePickerCalendar.js +124 -57
  16. package/dist/DatePicker/DatePickerTd.cjs +4 -4
  17. package/dist/DatePicker/DatePickerTd.js +42 -24
  18. package/dist/DatePicker/DatePickerTh.cjs +3 -3
  19. package/dist/DatePicker/DatePickerTh.js +29 -12
  20. package/dist/DatePicker/components.cjs +8 -6
  21. package/dist/DatePicker/components.js +15 -13
  22. package/dist/DatePicker/utils/getDayOfWeek.js +8 -8
  23. package/dist/DatePicker/utils/getMonths.cjs +1 -1
  24. package/dist/DatePicker/utils/getMonths.js +3 -3
  25. package/dist/DatePicker/utils/getYears.cjs +1 -1
  26. package/dist/DatePicker/utils/getYears.js +1 -1
  27. package/dist/DateTimePicker/DateTimePicker.cjs +1 -1
  28. package/dist/DateTimePicker/DateTimePicker.js +97 -104
  29. package/dist/DateTimePicker/parseDate.cjs +1 -1
  30. package/dist/DateTimePicker/parseDate.js +2 -1
  31. package/dist/Field/FieldHint.cjs +1 -1
  32. package/dist/Field/FieldHint.js +3 -3
  33. package/dist/Field/FieldLabel.cjs +5 -2
  34. package/dist/Field/FieldLabel.js +27 -27
  35. package/dist/IconButton/IconButton.cjs +4 -4
  36. package/dist/IconButton/IconButton.js +32 -30
  37. package/dist/NumberInput/NumberInput.cjs +2 -2
  38. package/dist/NumberInput/NumberInput.js +31 -31
  39. package/dist/RawTable/RawCell.cjs +1 -1
  40. package/dist/RawTable/RawCell.js +4 -1
  41. package/dist/Select/MultiSelect.cjs +30 -0
  42. package/dist/Select/MultiSelect.js +239 -0
  43. package/dist/Select/MultiSelectNested.cjs +3 -1
  44. package/dist/Select/MultiSelectNested.js +25 -12
  45. package/dist/Select/OptGroup.cjs +1 -1
  46. package/dist/Select/OptGroup.js +3 -22
  47. package/dist/Select/Option.cjs +1 -45
  48. package/dist/Select/Option.js +12 -100
  49. package/dist/Select/Select.cjs +1 -3
  50. package/dist/Select/Select.js +9 -205
  51. package/dist/Select/SelectList.cjs +1 -1
  52. package/dist/Select/SelectList.js +98 -80
  53. package/dist/Select/SelectParts.cjs +79 -0
  54. package/dist/Select/SelectParts.js +221 -0
  55. package/dist/Select/SingleSelect.cjs +1 -0
  56. package/dist/Select/SingleSelect.js +129 -0
  57. package/dist/Select/index.cjs +1 -1
  58. package/dist/Select/index.js +15 -10
  59. package/dist/TextButton/TextButton.cjs +6 -12
  60. package/dist/TextButton/TextButton.js +32 -46
  61. package/dist/TextInput/TextInput.cjs +1 -1
  62. package/dist/TextInput/TextInput.js +47 -46
  63. package/dist/TimePicker/TimePicker.cjs +5 -7
  64. package/dist/TimePicker/TimePicker.js +53 -103
  65. package/dist/helpers/objects.cjs +1 -1
  66. package/dist/helpers/objects.js +6 -22
  67. package/dist/hooks/useComposeRefs.cjs +1 -0
  68. package/dist/hooks/useComposeRefs.js +14 -0
  69. package/dist/hooks/useIntersection.cjs +1 -1
  70. package/dist/hooks/useIntersection.js +7 -7
  71. package/dist/index.cjs +1 -1
  72. package/dist/index.js +143 -138
  73. package/dist/themes/extendTheme.cjs +4 -4
  74. package/dist/themes/extendTheme.js +21 -13
  75. package/dist/themes/utils.cjs +6 -6
  76. package/dist/themes/utils.js +7 -6
  77. package/dist/v2/Link/Link.cjs +13 -11
  78. package/dist/v2/Link/Link.js +52 -37
  79. package/dist/v2/SimpleMenu/Menu.cjs +65 -0
  80. package/dist/v2/SimpleMenu/Menu.js +229 -0
  81. package/dist/v2/SimpleMenu/SimpleMenu.cjs +1 -33
  82. package/dist/v2/SimpleMenu/SimpleMenu.js +37 -176
  83. package/dist/v2/SimpleMenu/index.cjs +1 -1
  84. package/dist/v2/SimpleMenu/index.js +5 -3
  85. package/dist/v2/index.cjs +1 -1
  86. package/dist/v2/index.js +53 -51
  87. package/package.json +7 -19
  88. package/dist/Combobox/components.cjs +0 -53
  89. package/dist/Combobox/components.js +0 -64
  90. package/dist/Combobox/utils.cjs +0 -1
  91. package/dist/Combobox/utils.js +0 -78
  92. package/dist/DateTimePicker/DateTimePickerProps.cjs +0 -1
  93. package/dist/DateTimePicker/DateTimePickerProps.js +0 -40
  94. package/dist/DateTimePicker/__tests__/parseDate.test.cjs +0 -1
  95. package/dist/DateTimePicker/__tests__/parseDate.test.js +0 -8
  96. package/dist/Select/SelectButton.cjs +0 -19
  97. package/dist/Select/SelectButton.js +0 -67
  98. package/dist/Select/SelectTags.cjs +0 -6
  99. package/dist/Select/SelectTags.js +0 -38
  100. package/dist/Select/components.cjs +0 -39
  101. package/dist/Select/components.js +0 -48
  102. package/dist/Select/constants.cjs +0 -1
  103. package/dist/Select/constants.js +0 -8
  104. package/dist/Select/hooks/useButtonRef.cjs +0 -1
  105. package/dist/Select/hooks/useButtonRef.js +0 -13
  106. package/dist/Select/hooks/useListRef.cjs +0 -1
  107. package/dist/Select/hooks/useListRef.js +0 -18
  108. package/dist/Select/utils.cjs +0 -1
  109. package/dist/Select/utils.js +0 -17
  110. package/dist/helpers/arrays.cjs +0 -1
  111. package/dist/helpers/arrays.js +0 -6
  112. package/dist/v2/SimpleMenu/utils.cjs +0 -12
  113. package/dist/v2/SimpleMenu/utils.js +0 -15
@@ -1,31 +1,5 @@
1
- import t, { forwardRef as a } from "react";
2
- import o from "prop-types";
3
- import { OptionBox as d } from "./components.js";
4
- import { Typography as m } from "../Typography/Typography.js";
5
- const r = a(({ isSelected: e, children: p, ...i }, n) => /* @__PURE__ */ t.createElement(
6
- d,
7
- {
8
- hasRadius: !0,
9
- paddingLeft: 4,
10
- paddingRight: 4,
11
- paddingTop: 2,
12
- paddingBottom: 2,
13
- role: "option",
14
- background: "neutral0",
15
- isSelected: e,
16
- ref: n,
17
- ...i
18
- },
19
- /* @__PURE__ */ t.createElement(m, { textColor: e ? "primary600" : "neutral800", fontWeight: e ? "bold" : null }, p)
20
- ));
21
- r.defaultProps = {
22
- isSelected: !1
23
- };
24
- r.propTypes = {
25
- children: o.oneOfType([o.string, o.number]).isRequired,
26
- isSelected: o.bool
27
- };
28
- r.displayName = "ComboboxOption";
1
+ import { Option as o } from "./Combobox.js";
2
+ const p = o;
29
3
  export {
30
- r as ComboboxOption
4
+ p as ComboboxOption
31
5
  };
@@ -1 +1,12 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("react"),v=require("@strapi/icons"),z=require("prop-types"),u=require("./components.cjs"),I=require("./DatePickerCalendar.cjs"),C=require("./utils/formatDate.cjs"),S=require("../helpers/getDefaultLocale.cjs"),B=require("../TextInput/TextInput.cjs"),M=require("../themes/sizes.cjs"),h=t=>t&&typeof t=="object"&&"default"in t?t:{default:t},a=h(o),e=h(z),f=({ariaLabel:t,initialDate:k,selectedDate:n,onChange:P,label:i,locale:q,selectedDateLabel:y,onClear:d,clearLabel:R,disabled:l,id:j,minDate:E,maxDate:T,...x})=>{const[p,c]=o.useState(!1),r=o.useRef(null),D=o.useRef(null),m=q||S.getDefaultLocale(),b=n?C.formatDate(n,m):"",g=()=>{l||c(s=>!s)},L=()=>{l||(d(),D.current.focus())},O=s=>{P(s),c(!1)},_=()=>{c(!1)};return a.default.createElement(u.DatePickerWrapper,{bold:p},a.default.createElement(B.TextInput,{ref:r,onClick:g,onChange:()=>{},value:b,startAction:a.default.createElement(u.DatePickerButton,{ref:D,onClick:g,"aria-label":n?y(C.formatDate(n,m)):i||t,type:"button","aria-disabled":l},a.default.createElement(v.Calendar,{"aria-hidden":!0})),endAction:d&&b?a.default.createElement(u.IconBox,{as:"button",onClick:L,"aria-label":R,"aria-disabled":l},a.default.createElement(v.Cross,null)):void 0,"aria-autocomplete":"none",label:i,"aria-label":t,disabled:l,id:j,...x}),r.current&&r.current.inputWrapperRef&&p&&a.default.createElement(I.DatePickerCalendar,{selectedDate:n,initialDate:k,onChange:O,onEscape:_,popoverSource:r.current.inputWrapperRef,label:i||t,minDate:E,maxDate:T}))};f.defaultProps={ariaLabel:void 0,clearLabel:void 0,disabled:!1,id:void 0,label:void 0,locale:void 0,initialDate:new Date,minDate:void 0,maxDate:void 0,onClear:void 0,placeholder:void 0,selectedDate:void 0,size:"M"};f.propTypes={ariaLabel:e.default.string,clearLabel:e.default.string,disabled:e.default.bool,id:e.default.string,initialDate:e.default.instanceOf(Date),label:e.default.string,locale:e.default.string,maxDate:e.default.instanceOf(Date),minDate:e.default.instanceOf(Date),onChange:e.default.func.isRequired,onClear:e.default.func,placeholder:e.default.string,selectedDate:e.default.instanceOf(Date),selectedDateLabel:e.default.func.isRequired,size:e.default.oneOf(Object.keys(M.sizes.input))};exports.DatePicker=f;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("react/jsx-runtime"),p=require("react"),f=require("@strapi/icons"),k=require("styled-components"),P=require("./components.cjs"),R=require("./DatePickerCalendar.cjs"),T=require("./utils/formatDate.cjs");require("../Field/Field.cjs");require("../Field/FieldLabel.cjs");require("../Field/FieldInput.cjs");require("../Field/FieldContext.cjs");require("../Typography/Typography.cjs");const I=require("../Field/FieldAction.cjs"),S=require("../helpers/getDefaultLocale.cjs"),v=require("../TextInput/TextInput.cjs"),A=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},j=A(k),L=({ariaLabel:e,onClear:a,clearLabel:h="Clear",initialDate:D,locale:m,maxDate:q,minDate:x,onChange:s,selectedDate:i,disabled:n=!1,...y})=>{const[o,c]=p.useState(!1),r=p.useRef(null),u=m||S.getDefaultLocale(),d=i?T.formatDate(i,u):"",g=()=>{n||c(l=>!l)},C=()=>{n||a&&(a(),r.current.inputWrapperRef.current.focus())},F=l=>{s&&s(l),c(!1)},b=()=>{c(!1)};return t.jsxs(P.DatePickerWrapper,{bold:o,children:[t.jsx(v.TextInput,{ref:r,onClick:g,onChange:()=>{},value:d,startAction:t.jsx(W,{"aria-hidden":!0}),endAction:a&&d?t.jsx(I.FieldAction,{label:h,onClick:C,"aria-disabled":n||void 0,children:t.jsx(_,{})}):void 0,"aria-autocomplete":"none","aria-label":e,disabled:n,type:"text",...y}),r.current&&r.current.inputWrapperRef&&o&&t.jsx(R.DatePickerCalendar,{selectedDate:i,initialDate:D,onChange:F,onEscape:b,locale:u,popoverSource:r.current.inputWrapperRef,minDate:x,maxDate:q})]})},_=j.default(f.Cross)`
2
+ height: ${11/16}rem;
3
+ width: ${11/16}rem;
4
+
5
+ path {
6
+ fill: ${({theme:e})=>e.colors.neutral600};
7
+ }
8
+ `,W=j.default(f.Calendar)`
9
+ & > path {
10
+ fill: ${({theme:e})=>e.colors.neutral500};
11
+ }
12
+ `;exports.DatePicker=L;
@@ -1,110 +1,89 @@
1
- import t, { useState as B, useRef as D } from "react";
2
- import { Calendar as T, Cross as W } from "@strapi/icons";
3
- import e from "prop-types";
4
- import { DatePickerWrapper as q, DatePickerButton as A, IconBox as I } from "./components.js";
5
- import { DatePickerCalendar as S } from "./DatePickerCalendar.js";
6
- import { formatDate as b } from "./utils/formatDate.js";
7
- import { getDefaultLocale as V } from "../helpers/getDefaultLocale.js";
8
- import { TextInput as _ } from "../TextInput/TextInput.js";
9
- import { sizes as j } from "../themes/sizes.js";
10
- const v = ({
11
- ariaLabel: o,
12
- initialDate: g,
13
- selectedDate: a,
14
- onChange: C,
15
- label: i,
1
+ import { jsxs as R, jsx as r } from "react/jsx-runtime";
2
+ import { useState as S, useRef as W } from "react";
3
+ import { Cross as $, Calendar as v } from "@strapi/icons";
4
+ import m from "styled-components";
5
+ import { DatePickerWrapper as A } from "./components.js";
6
+ import { DatePickerCalendar as P } from "./DatePickerCalendar.js";
7
+ import { formatDate as j } from "./utils/formatDate.js";
8
+ import "../Field/Field.js";
9
+ import "../Field/FieldLabel.js";
10
+ import "../Field/FieldInput.js";
11
+ import "../Field/FieldContext.js";
12
+ import "../Typography/Typography.js";
13
+ import { FieldAction as E } from "../Field/FieldAction.js";
14
+ import { getDefaultLocale as I } from "../helpers/getDefaultLocale.js";
15
+ import { TextInput as V } from "../TextInput/TextInput.js";
16
+ const Y = ({
17
+ ariaLabel: e,
18
+ onClear: i,
19
+ clearLabel: u = "Clear",
20
+ initialDate: d,
16
21
  locale: h,
17
- selectedDateLabel: k,
18
- onClear: s,
19
- clearLabel: E,
20
- disabled: r,
21
- id: R,
22
- minDate: P,
23
- maxDate: O,
24
- ...x
22
+ maxDate: C,
23
+ minDate: D,
24
+ onChange: c,
25
+ selectedDate: a,
26
+ disabled: o = !1,
27
+ ...g
25
28
  }) => {
26
- const [f, l] = B(!1), n = D(null), p = D(null), u = h || V(), m = a ? b(a, u) : "", d = () => {
27
- r || l((c) => !c);
29
+ const [p, n] = S(!1), t = W(null), s = h || I(), f = a ? j(a, s) : "", x = () => {
30
+ o || n((l) => !l);
31
+ }, b = () => {
32
+ o || i && (i(), t.current.inputWrapperRef.current.focus());
33
+ }, k = (l) => {
34
+ c && c(l), n(!1);
28
35
  }, y = () => {
29
- r || (s(), p.current.focus());
30
- }, L = (c) => {
31
- C(c), l(!1);
32
- }, z = () => {
33
- l(!1);
36
+ n(!1);
34
37
  };
35
- return /* @__PURE__ */ t.createElement(q, { bold: f }, /* @__PURE__ */ t.createElement(
36
- _,
37
- {
38
- ref: n,
39
- onClick: d,
38
+ return R(A, {
39
+ bold: p,
40
+ children: [r(V, {
41
+ ref: t,
42
+ onClick: x,
40
43
  onChange: () => {
41
44
  },
42
- value: m,
43
- startAction: /* @__PURE__ */ t.createElement(
44
- A,
45
- {
46
- ref: p,
47
- onClick: d,
48
- "aria-label": a ? k(b(a, u)) : i || o,
49
- type: "button",
50
- "aria-disabled": r
51
- },
52
- /* @__PURE__ */ t.createElement(T, { "aria-hidden": !0 })
53
- ),
54
- endAction: s && m ? /* @__PURE__ */ t.createElement(I, { as: "button", onClick: y, "aria-label": E, "aria-disabled": r }, /* @__PURE__ */ t.createElement(W, null)) : void 0,
45
+ value: f,
46
+ startAction: r(F, {
47
+ "aria-hidden": !0
48
+ }),
49
+ endAction: i && f ? r(E, {
50
+ label: u,
51
+ onClick: b,
52
+ "aria-disabled": o || void 0,
53
+ children: r(w, {})
54
+ }) : void 0,
55
55
  "aria-autocomplete": "none",
56
- label: i,
57
- "aria-label": o,
58
- disabled: r,
59
- id: R,
60
- ...x
61
- }
62
- ), n.current && n.current.inputWrapperRef && f && /* @__PURE__ */ t.createElement(
63
- S,
64
- {
56
+ "aria-label": e,
57
+ disabled: o,
58
+ type: "text",
59
+ ...g
60
+ }), t.current && t.current.inputWrapperRef && p && r(P, {
65
61
  selectedDate: a,
66
- initialDate: g,
67
- onChange: L,
68
- onEscape: z,
69
- popoverSource: n.current.inputWrapperRef,
70
- label: i || o,
71
- minDate: P,
72
- maxDate: O
73
- }
74
- ));
75
- };
76
- v.defaultProps = {
77
- ariaLabel: void 0,
78
- clearLabel: void 0,
79
- disabled: !1,
80
- id: void 0,
81
- label: void 0,
82
- locale: void 0,
83
- initialDate: new Date(),
84
- minDate: void 0,
85
- maxDate: void 0,
86
- onClear: void 0,
87
- placeholder: void 0,
88
- selectedDate: void 0,
89
- size: "M"
90
- };
91
- v.propTypes = {
92
- ariaLabel: e.string,
93
- clearLabel: e.string,
94
- disabled: e.bool,
95
- id: e.string,
96
- initialDate: e.instanceOf(Date),
97
- label: e.string,
98
- locale: e.string,
99
- maxDate: e.instanceOf(Date),
100
- minDate: e.instanceOf(Date),
101
- onChange: e.func.isRequired,
102
- onClear: e.func,
103
- placeholder: e.string,
104
- selectedDate: e.instanceOf(Date),
105
- selectedDateLabel: e.func.isRequired,
106
- size: e.oneOf(Object.keys(j.input))
107
- };
62
+ initialDate: d,
63
+ onChange: k,
64
+ onEscape: y,
65
+ locale: s,
66
+ popoverSource: t.current.inputWrapperRef,
67
+ minDate: D,
68
+ maxDate: C
69
+ })]
70
+ });
71
+ }, w = m($)`
72
+ height: ${11 / 16}rem;
73
+ width: ${11 / 16}rem;
74
+
75
+ path {
76
+ fill: ${({
77
+ theme: e
78
+ }) => e.colors.neutral600};
79
+ }
80
+ `, F = m(v)`
81
+ & > path {
82
+ fill: ${({
83
+ theme: e
84
+ }) => e.colors.neutral500};
85
+ }
86
+ `;
108
87
  export {
109
- v as DatePicker
88
+ Y as DatePicker
110
89
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const f=require("react"),W=require("prop-types"),H=require("./components.cjs"),V=require("./DatePickerTd.cjs"),r=require("./DatePickerTh.cjs"),L=require("./utils/getDayOfWeek.cjs"),$=require("./utils/getMonths.cjs"),I=require("./utils/generateWeeks.cjs"),z=require("./utils/getYears.cjs"),A=require("./utils/formatDate.cjs"),d=require("../Box/Box.cjs"),G=require("../Flex/Flex.cjs"),J=require("../FocusTrap/FocusTrap.cjs"),K=require("../RawTable/RawTable.cjs");require("react/jsx-runtime");require("../RawTable/RawTableContext.cjs");const N=require("../RawTable/RawThead.cjs"),Q=require("../RawTable/RawTbody.cjs"),D=require("../RawTable/RawTr.cjs"),i=require("../SimpleMenu/SimpleMenu.cjs"),U=require("../VisuallyHidden/VisuallyHidden.cjs"),T=a=>a&&typeof a=="object"&&"default"in a?a:{default:a},e=T(f),l=T(W),m=({selectedDate:a,initialDate:g,popoverSource:E,onChange:R,label:h,minDate:k,maxDate:w,onEscape:q})=>{const[c,s]=f.useState(g),[p,y,j]=I.generateWeeks(c,a),{sun:P,mon:b,tue:x,wed:M,thu:C,fri:F,sat:O}=L.getDayOfWeek(),o=$.getMonths(),S=z.getYears(k,w);f.useEffect(()=>{a&&s(a)},[a]);const v=t=>{const n=new Date(c);n.setMonth(o.indexOf(t)),s(n)},B=t=>{const n=new Date(c);n.setFullYear(t),s(n)};return e.default.createElement(H.DatePickerPopover,{source:E,role:"dialog","aria-modal":"true","aria-label":h,spacing:4},e.default.createElement(J.FocusTrap,{onEscape:q},e.default.createElement(d.Box,{padding:4},e.default.createElement(d.Box,{paddingBottom:4,paddingLeft:2,paddingRight:2},e.default.createElement(G.Flex,null,e.default.createElement(i.SimpleMenu,{label:o[c.getMonth()]},o.map(t=>e.default.createElement(i.MenuItem,{key:t,onClick:()=>v(t)},t))),e.default.createElement(d.Box,{paddingLeft:2},e.default.createElement(i.SimpleMenu,{label:c.getFullYear()},S.map(t=>e.default.createElement(i.MenuItem,{key:t,onClick:()=>B(t)},t)))))),e.default.createElement(K.RawTable,{colCount:7,rowCount:p.length+1,initialCol:j,initialRow:y,role:"grid"},e.default.createElement(N.RawThead,null,e.default.createElement(D.RawTr,{"aria-rowindex":1},e.default.createElement(r.DatePickerTh,null,P),e.default.createElement(r.DatePickerTh,null,b),e.default.createElement(r.DatePickerTh,null,x),e.default.createElement(r.DatePickerTh,null,M),e.default.createElement(r.DatePickerTh,null,C),e.default.createElement(r.DatePickerTh,null,F),e.default.createElement(r.DatePickerTh,null,O))),e.default.createElement(Q.RawTbody,null,p.map((t,n)=>e.default.createElement(D.RawTr,{key:n},t.map(({date:u,outsideMonth:Y,isSelected:_})=>e.default.createElement(V.DatePickerTd,{key:`${u.getFullYear()}-${u.getMonth()+1}-${u.getDate()}`,outsideMonth:Y,onSelectDay:()=>R(u),isSelected:_},e.default.createElement("span",{"aria-hidden":!0},u.getDate()),e.default.createElement(U.VisuallyHidden,null,e.default.createElement("span",null,A.formatDate(u))))))))))))};m.defaultProps={selectedDate:void 0,initialDate:new Date,minDate:void 0,maxDate:void 0};m.propTypes={initialDate:l.default.instanceOf(Date),label:l.default.string.isRequired,maxDate:l.default.instanceOf(Date),minDate:l.default.instanceOf(Date),onChange:l.default.func.isRequired,onEscape:l.default.func.isRequired,popoverSource:l.default.shape({current:(typeof Element>"u"?l.default.any:l.default.instanceOf(Element)).isRequired}).isRequired,selectedDate:l.default.instanceOf(Date)};exports.DatePickerCalendar=m;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),T=require("react"),L=require("./components.cjs"),O=require("./DatePickerTd.cjs"),a=require("./DatePickerTh.cjs"),H=require("./utils/getDayOfWeek.cjs"),V=require("./utils/getMonths.cjs"),$=require("./utils/generateWeeks.cjs"),E=require("./utils/getYears.cjs"),I=require("./utils/formatDate.cjs"),h=require("../Box/Box.cjs"),_=require("../Flex/Flex.cjs"),z=require("../FocusTrap/FocusTrap.cjs"),A=require("../helpers/getDefaultLocale.cjs"),G=require("../RawTable/RawTable.cjs");require("../RawTable/RawTableContext.cjs");const J=require("../RawTable/RawThead.cjs"),K=require("../RawTable/RawTbody.cjs"),g=require("../RawTable/RawTr.cjs"),i=require("../SimpleMenu/SimpleMenu.cjs"),N=require("../VisuallyHidden/VisuallyHidden.cjs"),Q=({onEscape:s,popoverSource:l,...o})=>e.jsx(L.DatePickerPopover,{source:l,role:"dialog","aria-modal":"true",spacing:4,children:e.jsx(z.FocusTrap,{onEscape:s,children:e.jsx(D,{...o})})}),D=({selectedDate:s,initialDate:l=new Date,locale:o,onChange:j,minDate:p,maxDate:w})=>{const[c,d]=T.useState(l),[x,k,R]=$.generateWeeks(c,s),{sun:m,mon:q,tue:P,wed:f,thu:M,fri:b,sat:C}=H.getDayOfWeek(),u=V.getMonths(),y=E.getYears(p,w),F=o||A.getDefaultLocale();T.useEffect(()=>{s&&d(s)},[s]);const S=t=>{const r=new Date(c);r.setMonth(u.indexOf(t)),d(r)},B=t=>{const r=new Date(c);r.setFullYear(t),d(r)},Y=t=>()=>{j&&j(t)};return e.jsxs(h.Box,{padding:4,children:[e.jsx(h.Box,{paddingBottom:4,paddingLeft:2,paddingRight:2,children:e.jsxs(_.Flex,{children:[e.jsx(i.SimpleMenu,{label:u[c.getMonth()],children:u.map(t=>e.jsx(i.MenuItem,{onClick:()=>S(t),children:t},t))}),e.jsx(h.Box,{paddingLeft:2,children:e.jsx(i.SimpleMenu,{label:c.getFullYear(),children:y.map(t=>e.jsx(i.MenuItem,{onClick:()=>B(t),children:t},t))})})]})}),e.jsxs(G.RawTable,{colCount:7,rowCount:x.length+1,initialCol:R,initialRow:k,role:"grid",children:[e.jsx(J.RawThead,{children:e.jsxs(g.RawTr,{"aria-rowindex":1,children:[e.jsx(a.DatePickerTh,{children:m}),e.jsx(a.DatePickerTh,{children:q}),e.jsx(a.DatePickerTh,{children:P}),e.jsx(a.DatePickerTh,{children:f}),e.jsx(a.DatePickerTh,{children:M}),e.jsx(a.DatePickerTh,{children:b}),e.jsx(a.DatePickerTh,{children:C})]})}),e.jsx(K.RawTbody,{children:x.map((t,r)=>e.jsx(g.RawTr,{children:t.map(({date:n,outsideMonth:W,isSelected:v})=>e.jsxs(O.DatePickerTd,{outsideMonth:W,onSelectDay:Y(n),isSelected:v,children:[e.jsx("span",{"aria-hidden":!0,children:n.getDate()}),e.jsx(N.VisuallyHidden,{children:e.jsx("span",{children:I.formatDate(n,F)})})]},`${n.getFullYear()}-${n.getMonth()+1}-${n.getDate()}`))},r))})]})]})};exports.DatePickerCalendar=Q;exports.DatePickerCalendarContent=D;
@@ -1,75 +1,142 @@
1
- import e, { useState as L, useEffect as W } from "react";
2
- import a from "prop-types";
3
- import { DatePickerPopover as _ } from "./components.js";
1
+ import { jsx as e, jsxs as l } from "react/jsx-runtime";
2
+ import { useState as E, useEffect as O } from "react";
3
+ import { DatePickerPopover as W } from "./components.js";
4
4
  import { DatePickerTd as H } from "./DatePickerTd.js";
5
- import { DatePickerTh as r } from "./DatePickerTh.js";
5
+ import { DatePickerTh as t } from "./DatePickerTh.js";
6
6
  import { getDayOfWeek as I } from "./utils/getDayOfWeek.js";
7
7
  import { getMonths as V } from "./utils/getMonths.js";
8
- import { generateWeeks as j } from "./utils/generateWeeks.js";
8
+ import { generateWeeks as q } from "./utils/generateWeeks.js";
9
9
  import { getYears as z } from "./utils/getYears.js";
10
10
  import { formatDate as A } from "./utils/formatDate.js";
11
11
  import { Box as p } from "../Box/Box.js";
12
12
  import { Flex as G } from "../Flex/Flex.js";
13
13
  import { FocusTrap as J } from "../FocusTrap/FocusTrap.js";
14
- import { RawTable as K } from "../RawTable/RawTable.js";
15
- import "react/jsx-runtime";
14
+ import { getDefaultLocale as K } from "../helpers/getDefaultLocale.js";
15
+ import { RawTable as N } from "../RawTable/RawTable.js";
16
16
  import "../RawTable/RawTableContext.js";
17
- import { RawThead as N } from "../RawTable/RawThead.js";
18
- import { RawTbody as Q } from "../RawTable/RawTbody.js";
19
- import { RawTr as s } from "../RawTable/RawTr.js";
20
- import { SimpleMenu as f, MenuItem as d } from "../SimpleMenu/SimpleMenu.js";
21
- import { VisuallyHidden as U } from "../VisuallyHidden/VisuallyHidden.js";
22
- const E = ({
17
+ import { RawThead as Q } from "../RawTable/RawThead.js";
18
+ import { RawTbody as U } from "../RawTable/RawTbody.js";
19
+ import { RawTr as u } from "../RawTable/RawTr.js";
20
+ import { SimpleMenu as g, MenuItem as D } from "../SimpleMenu/SimpleMenu.js";
21
+ import { VisuallyHidden as X } from "../VisuallyHidden/VisuallyHidden.js";
22
+ const Ce = ({
23
+ onEscape: i,
24
+ popoverSource: c,
25
+ ...d
26
+ }) => e(W, {
27
+ source: c,
28
+ role: "dialog",
29
+ "aria-modal": "true",
30
+ spacing: 4,
31
+ children: e(J, {
32
+ onEscape: i,
33
+ children: e(Z, {
34
+ ...d
35
+ })
36
+ })
37
+ }), Z = ({
23
38
  selectedDate: i,
24
- initialDate: g,
25
- popoverSource: D,
26
- onChange: h,
27
- label: k,
39
+ initialDate: c = new Date(),
40
+ locale: d,
41
+ onChange: s,
28
42
  minDate: w,
29
- maxDate: R,
30
- onEscape: y
43
+ maxDate: k
31
44
  }) => {
32
- const [l, m] = L(g), [u, C, T] = j(l, i), { sun: v, mon: x, tue: M, wed: O, thu: P, fri: b, sat: q } = I(), c = V(), F = z(w, R);
33
- W(() => {
45
+ const [a, m] = E(c), [f, C, M] = q(a, i), {
46
+ sun: x,
47
+ mon: R,
48
+ tue: T,
49
+ wed: P,
50
+ thu: F,
51
+ fri: S,
52
+ sat: Y
53
+ } = I(), h = V(), b = z(w, k), y = d || K();
54
+ O(() => {
34
55
  i && m(i);
35
56
  }, [i]);
36
- const Y = (t) => {
37
- const n = new Date(l);
38
- n.setMonth(c.indexOf(t)), m(n);
39
- }, S = (t) => {
40
- const n = new Date(l);
41
- n.setFullYear(t), m(n);
57
+ const v = (r) => {
58
+ const o = new Date(a);
59
+ o.setMonth(h.indexOf(r)), m(o);
60
+ }, L = (r) => {
61
+ const o = new Date(a);
62
+ o.setFullYear(r), m(o);
63
+ }, $ = (r) => () => {
64
+ s && s(r);
42
65
  };
43
- return /* @__PURE__ */ e.createElement(_, { source: D, role: "dialog", "aria-modal": "true", "aria-label": k, spacing: 4 }, /* @__PURE__ */ e.createElement(J, { onEscape: y }, /* @__PURE__ */ e.createElement(p, { padding: 4 }, /* @__PURE__ */ e.createElement(p, { paddingBottom: 4, paddingLeft: 2, paddingRight: 2 }, /* @__PURE__ */ e.createElement(G, null, /* @__PURE__ */ e.createElement(f, { label: c[l.getMonth()] }, c.map((t) => /* @__PURE__ */ e.createElement(d, { key: t, onClick: () => Y(t) }, t))), /* @__PURE__ */ e.createElement(p, { paddingLeft: 2 }, /* @__PURE__ */ e.createElement(f, { label: l.getFullYear() }, F.map((t) => /* @__PURE__ */ e.createElement(d, { key: t, onClick: () => S(t) }, t)))))), /* @__PURE__ */ e.createElement(K, { colCount: 7, rowCount: u.length + 1, initialCol: T, initialRow: C, role: "grid" }, /* @__PURE__ */ e.createElement(N, null, /* @__PURE__ */ e.createElement(s, { "aria-rowindex": 1 }, /* @__PURE__ */ e.createElement(r, null, v), /* @__PURE__ */ e.createElement(r, null, x), /* @__PURE__ */ e.createElement(r, null, M), /* @__PURE__ */ e.createElement(r, null, O), /* @__PURE__ */ e.createElement(r, null, P), /* @__PURE__ */ e.createElement(r, null, b), /* @__PURE__ */ e.createElement(r, null, q))), /* @__PURE__ */ e.createElement(Q, null, u.map((t, n) => /* @__PURE__ */ e.createElement(s, { key: n }, t.map(({ date: o, outsideMonth: $, isSelected: B }) => /* @__PURE__ */ e.createElement(
44
- H,
45
- {
46
- key: `${o.getFullYear()}-${o.getMonth() + 1}-${o.getDate()}`,
47
- outsideMonth: $,
48
- onSelectDay: () => h(o),
49
- isSelected: B
50
- },
51
- /* @__PURE__ */ e.createElement("span", { "aria-hidden": !0 }, o.getDate()),
52
- /* @__PURE__ */ e.createElement(U, null, /* @__PURE__ */ e.createElement("span", null, A(o)))
53
- )))))))));
54
- };
55
- E.defaultProps = {
56
- selectedDate: void 0,
57
- initialDate: new Date(),
58
- minDate: void 0,
59
- maxDate: void 0
60
- };
61
- E.propTypes = {
62
- initialDate: a.instanceOf(Date),
63
- label: a.string.isRequired,
64
- maxDate: a.instanceOf(Date),
65
- minDate: a.instanceOf(Date),
66
- onChange: a.func.isRequired,
67
- onEscape: a.func.isRequired,
68
- popoverSource: a.shape({
69
- current: (typeof Element > "u" ? a.any : a.instanceOf(Element)).isRequired
70
- }).isRequired,
71
- selectedDate: a.instanceOf(Date)
66
+ return l(p, {
67
+ padding: 4,
68
+ children: [e(p, {
69
+ paddingBottom: 4,
70
+ paddingLeft: 2,
71
+ paddingRight: 2,
72
+ children: l(G, {
73
+ children: [e(g, {
74
+ label: h[a.getMonth()],
75
+ children: h.map((r) => e(D, {
76
+ onClick: () => v(r),
77
+ children: r
78
+ }, r))
79
+ }), e(p, {
80
+ paddingLeft: 2,
81
+ children: e(g, {
82
+ label: a.getFullYear(),
83
+ children: b.map((r) => e(D, {
84
+ onClick: () => L(r),
85
+ children: r
86
+ }, r))
87
+ })
88
+ })]
89
+ })
90
+ }), l(N, {
91
+ colCount: 7,
92
+ rowCount: f.length + 1,
93
+ initialCol: M,
94
+ initialRow: C,
95
+ role: "grid",
96
+ children: [e(Q, {
97
+ children: l(u, {
98
+ "aria-rowindex": 1,
99
+ children: [e(t, {
100
+ children: x
101
+ }), e(t, {
102
+ children: R
103
+ }), e(t, {
104
+ children: T
105
+ }), e(t, {
106
+ children: P
107
+ }), e(t, {
108
+ children: F
109
+ }), e(t, {
110
+ children: S
111
+ }), e(t, {
112
+ children: Y
113
+ })]
114
+ })
115
+ }), e(U, {
116
+ children: f.map((r, o) => e(u, {
117
+ children: r.map(({
118
+ date: n,
119
+ outsideMonth: j,
120
+ isSelected: B
121
+ }) => l(H, {
122
+ outsideMonth: j,
123
+ onSelectDay: $(n),
124
+ isSelected: B,
125
+ children: [e("span", {
126
+ "aria-hidden": !0,
127
+ children: n.getDate()
128
+ }), e(X, {
129
+ children: e("span", {
130
+ children: A(n, y)
131
+ })
132
+ })]
133
+ }, `${n.getFullYear()}-${n.getMonth() + 1}-${n.getDate()}`))
134
+ }, o))
135
+ })]
136
+ })]
137
+ });
72
138
  };
73
139
  export {
74
- E as DatePickerCalendar
140
+ Ce as DatePickerCalendar,
141
+ Z as DatePickerCalendarContent
75
142
  };
@@ -1,6 +1,6 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const d=require("react"),p=require("prop-types"),f=require("styled-components");require("react/jsx-runtime");require("../RawTable/RawTableContext.cjs");const y=require("../RawTable/RawCell.cjs");require("../Box/Box.cjs");const i=require("../Typography/Typography.cjs"),n=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},l=n(d),t=n(p),b=n(f),T=b.default.button`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("react/jsx-runtime"),s=require("styled-components");require("react");require("../RawTable/RawTableContext.cjs");const u=require("../RawTable/RawCell.cjs");require("../Box/Box.cjs");const l=require("../Typography/Typography.cjs"),c=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},d=c(s),p=d.default.button`
2
2
  border: none;
3
- background: ${({theme:e,isSelected:r})=>r?e.colors.primary100:e.colors.neutral0};
3
+ background: ${({theme:e,$isSelected:r})=>r?e.colors.primary100:e.colors.neutral0};
4
4
  height: ${32/16}rem;
5
5
  text-align: center;
6
6
  width: ${32/16}rem;
@@ -13,7 +13,7 @@
13
13
  background: ${({theme:e})=>e.colors.primary100};
14
14
  }
15
15
 
16
- &:hover > ${i.Typography} {
16
+ &:hover > ${l.Typography} {
17
17
  color: ${({theme:e})=>e.colors.primary600};
18
18
  }
19
- `,u=({children:e,outsideMonth:r,onSelectDay:s,isSelected:o,...c})=>{let a="neutral900";return o?a="primary600":r&&(a="neutral600"),l.default.createElement(y.RawTd,{...c},l.default.createElement(T,{tabIndex:-1,onClick:s,isSelected:o,type:"button"},l.default.createElement(i.Typography,{variant:"pi",textColor:a,fontWeight:o?"bold":null},e)))};u.defaultProps={isSelected:!1,outsideMonth:!1};u.propTypes={children:t.default.node.isRequired,isSelected:t.default.bool,onSelectDay:t.default.func.isRequired,outsideMonth:t.default.bool};exports.DatePickerTd=u;
19
+ `,y=({children:e,outsideMonth:r=!1,onSelectDay:n,isSelected:t=!1,...i})=>{let o="neutral900";return t?o="primary600":r&&(o="neutral600"),a.jsx(u.RawTd,{...i,children:a.jsx(p,{tabIndex:-1,onClick:n,$isSelected:t,type:"button",children:a.jsx(l.Typography,{variant:"pi",textColor:o,fontWeight:t?"bold":void 0,children:e})})})};exports.DatePickerTd=y;
@@ -1,43 +1,61 @@
1
- import l from "react";
2
- import o from "prop-types";
3
- import c from "styled-components";
4
- import "react/jsx-runtime";
1
+ import { jsx as i } from "react/jsx-runtime";
2
+ import p from "styled-components";
3
+ import "react";
5
4
  import "../RawTable/RawTableContext.js";
6
- import { RawTd as m } from "../RawTable/RawCell.js";
5
+ import { RawTd as c } from "../RawTable/RawCell.js";
7
6
  import "../Box/Box.js";
8
7
  import { Typography as n } from "../Typography/Typography.js";
9
- const s = c.button`
8
+ const d = p.button`
10
9
  border: none;
11
- background: ${({ theme: e, isSelected: r }) => r ? e.colors.primary100 : e.colors.neutral0};
10
+ background: ${({
11
+ theme: r,
12
+ $isSelected: o
13
+ }) => o ? r.colors.primary100 : r.colors.neutral0};
12
14
  height: ${32 / 16}rem;
13
15
  text-align: center;
14
16
  width: ${32 / 16}rem;
15
- border-radius: ${({ theme: e }) => e.borderRadius};
17
+ border-radius: ${({
18
+ theme: r
19
+ }) => r.borderRadius};
16
20
 
17
21
  // Trick to prevent the outline from overflowing because of the general outline-offset
18
22
  outline-offset: -2px;
19
23
 
20
24
  &:hover {
21
- background: ${({ theme: e }) => e.colors.primary100};
25
+ background: ${({
26
+ theme: r
27
+ }) => r.colors.primary100};
22
28
  }
23
29
 
24
30
  &:hover > ${n} {
25
- color: ${({ theme: e }) => e.colors.primary600};
31
+ color: ${({
32
+ theme: r
33
+ }) => r.colors.primary600};
26
34
  }
27
- `, a = ({ children: e, outsideMonth: r, onSelectDay: p, isSelected: t, ...u }) => {
28
- let i = "neutral900";
29
- return t ? i = "primary600" : r && (i = "neutral600"), /* @__PURE__ */ l.createElement(m, { ...u }, /* @__PURE__ */ l.createElement(s, { tabIndex: -1, onClick: p, isSelected: t, type: "button" }, /* @__PURE__ */ l.createElement(n, { variant: "pi", textColor: i, fontWeight: t ? "bold" : null }, e)));
30
- };
31
- a.defaultProps = {
32
- isSelected: !1,
33
- outsideMonth: !1
34
- };
35
- a.propTypes = {
36
- children: o.node.isRequired,
37
- isSelected: o.bool,
38
- onSelectDay: o.func.isRequired,
39
- outsideMonth: o.bool
35
+ `, y = ({
36
+ children: r,
37
+ outsideMonth: o = !1,
38
+ onSelectDay: l,
39
+ isSelected: e = !1,
40
+ ...a
41
+ }) => {
42
+ let t = "neutral900";
43
+ return e ? t = "primary600" : o && (t = "neutral600"), i(c, {
44
+ ...a,
45
+ children: i(d, {
46
+ tabIndex: -1,
47
+ onClick: l,
48
+ $isSelected: e,
49
+ type: "button",
50
+ children: i(n, {
51
+ variant: "pi",
52
+ textColor: t,
53
+ fontWeight: e ? "bold" : void 0,
54
+ children: r
55
+ })
56
+ })
57
+ });
40
58
  };
41
59
  export {
42
- a as DatePickerTd
60
+ y as DatePickerTd
43
61
  };
@@ -1,9 +1,9 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("react"),i=require("prop-types"),s=require("styled-components"),u=require("../Flex/Flex.cjs");require("react/jsx-runtime");require("../RawTable/RawTableContext.cjs");const c=require("../RawTable/RawCell.cjs");require("../Box/Box.cjs");const d=require("../Typography/Typography.cjs"),p=require("../VisuallyHidden/VisuallyHidden.cjs"),r=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},t=r(n),f=r(i),a=r(s),y=a.default(c.RawTh)`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("react/jsx-runtime"),a=require("styled-components"),o=require("../Flex/Flex.cjs");require("react");require("../RawTable/RawTableContext.cjs");const s=require("../RawTable/RawCell.cjs");require("../Box/Box.cjs");const l=require("../Typography/Typography.cjs"),n=require("../VisuallyHidden/VisuallyHidden.cjs"),u=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},r=u(a),c=r.default(s.RawTh)`
2
2
  // Trick to prevent the outline from overflowing because of the general outline-offset
3
3
  outline-offset: -2px;
4
4
  border-radius: ${({theme:e})=>e.borderRadius};
5
5
  text-transform: capitalize;
6
- `,T=a.default(u.Flex)`
6
+ `,d=r.default(o.Flex)`
7
7
  height: ${24/16}rem;
8
8
  width: ${32/16}rem;
9
- `,l=({children:e,...o})=>t.default.createElement(y,{...o},t.default.createElement(T,{justifyContent:"center"},t.default.createElement(d.Typography,{variant:"pi",fontWeight:"bold",color:"neutral800","aria-hidden":!0},e.substr(0,2)),t.default.createElement(p.VisuallyHidden,null,t.default.createElement("span",null,e))));l.propTypes={children:f.default.string.isRequired};exports.DatePickerTh=l;
9
+ `,h=({children:e,...i})=>t.jsx(c,{...i,children:t.jsxs(d,{justifyContent:"center",children:[t.jsx(l.Typography,{variant:"pi",fontWeight:"bold",color:"neutral800","aria-hidden":!0,children:e.substr(0,2)}),t.jsx(n.VisuallyHidden,{children:t.jsx("span",{children:e})})]})});exports.DatePickerTh=h;