@semcore/date-picker 4.57.0 → 4.57.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.
Files changed (59) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/lib/cjs/components/Calendar.js +24 -22
  3. package/lib/cjs/components/Calendar.js.map +1 -1
  4. package/lib/cjs/components/DateRangeComparatorAbstract.js +32 -30
  5. package/lib/cjs/components/DateRangeComparatorAbstract.js.map +1 -1
  6. package/lib/cjs/components/InputTrigger.js +32 -30
  7. package/lib/cjs/components/InputTrigger.js.map +1 -1
  8. package/lib/cjs/components/PickerAbstract.js +32 -30
  9. package/lib/cjs/components/PickerAbstract.js.map +1 -1
  10. package/lib/cjs/components/RangePickerAbstract.js +32 -30
  11. package/lib/cjs/components/RangePickerAbstract.js.map +1 -1
  12. package/lib/es6/components/Calendar.js +24 -22
  13. package/lib/es6/components/Calendar.js.map +1 -1
  14. package/lib/es6/components/DateRangeComparatorAbstract.js +32 -30
  15. package/lib/es6/components/DateRangeComparatorAbstract.js.map +1 -1
  16. package/lib/es6/components/InputTrigger.js +32 -30
  17. package/lib/es6/components/InputTrigger.js.map +1 -1
  18. package/lib/es6/components/PickerAbstract.js +32 -30
  19. package/lib/es6/components/PickerAbstract.js.map +1 -1
  20. package/lib/es6/components/RangePickerAbstract.js +32 -30
  21. package/lib/es6/components/RangePickerAbstract.js.map +1 -1
  22. package/lib/esm/DatePicker.mjs +114 -103
  23. package/lib/esm/DateRangeComparator.mjs +166 -149
  24. package/lib/esm/DateRangePicker.mjs +85 -77
  25. package/lib/esm/MonthDateRangeComparator.mjs +187 -169
  26. package/lib/esm/MonthPicker.mjs +78 -71
  27. package/lib/esm/MonthRangePicker.mjs +94 -85
  28. package/lib/esm/components/ButtonTrigger.mjs +16 -15
  29. package/lib/esm/components/Calendar.mjs +409 -287
  30. package/lib/esm/components/DateRangeComparatorAbstract.mjs +458 -330
  31. package/lib/esm/components/InputTrigger.mjs +762 -519
  32. package/lib/esm/components/PickerAbstract.mjs +196 -149
  33. package/lib/esm/components/RangePickerAbstract.mjs +310 -221
  34. package/lib/esm/components/index.mjs +127 -109
  35. package/lib/esm/index.mjs +13 -13
  36. package/lib/esm/style/calendar.shadow.css +259 -0
  37. package/lib/esm/style/date-picker.shadow.css +179 -0
  38. package/lib/esm/translations/__intergalactic-dynamic-locales.mjs +32 -32
  39. package/lib/esm/translations/de.json.mjs +83 -56
  40. package/lib/esm/translations/en.json.mjs +95 -64
  41. package/lib/esm/translations/es.json.mjs +83 -56
  42. package/lib/esm/translations/fr.json.mjs +83 -56
  43. package/lib/esm/translations/it.json.mjs +83 -56
  44. package/lib/esm/translations/ja.json.mjs +83 -56
  45. package/lib/esm/translations/ko.json.mjs +83 -56
  46. package/lib/esm/translations/nl.json.mjs +83 -56
  47. package/lib/esm/translations/pl.json.mjs +83 -56
  48. package/lib/esm/translations/pt.json.mjs +83 -56
  49. package/lib/esm/translations/ru.json.mjs +35 -24
  50. package/lib/esm/translations/sv.json.mjs +83 -56
  51. package/lib/esm/translations/tr.json.mjs +83 -56
  52. package/lib/esm/translations/vi.json.mjs +83 -56
  53. package/lib/esm/translations/zh.json.mjs +83 -56
  54. package/lib/esm/utils/cronTabScheduler.mjs +58 -52
  55. package/lib/esm/utils/datesIntersects.mjs +15 -11
  56. package/lib/esm/utils/formatDate.mjs +25 -18
  57. package/lib/esm/utils/includesDate.mjs +13 -9
  58. package/lib/esm/utils/shortDateRangeFormat.mjs +53 -31
  59. package/package.json +15 -15
@@ -1,130 +1,148 @@
1
- import L from "@babel/runtime/helpers/esm/extends";
2
- import j from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- import w from "@babel/runtime/helpers/esm/classCallCheck";
4
- import z from "@babel/runtime/helpers/esm/createClass";
5
- import B from "@babel/runtime/helpers/esm/assertThisInitialized";
6
- import b from "@babel/runtime/helpers/esm/inherits";
7
- import F from "@babel/runtime/helpers/esm/createSuper";
8
- import $ from "@babel/runtime/helpers/esm/defineProperty";
9
- import E from "@babel/runtime/helpers/esm/objectSpread2";
10
- import { assignProps as l, sstyled as y, Component as N } from "@semcore/core";
11
- import n from "react";
12
- import C from "dayjs";
13
- import T from "@semcore/dropdown";
14
- import { Box as _ } from "@semcore/flex-box";
15
- import f from "@semcore/button";
16
- import W from "@semcore/icon/ChevronLeft/m";
17
- import q from "@semcore/icon/ChevronRight/m";
18
- import { callAllEventHandlers as I } from "@semcore/utils/lib/assignProps";
19
- import G from "./ButtonTrigger.mjs";
20
- import u from "./InputTrigger.mjs";
21
- var J = ["value", "onClick", "onMouseEnter", "onMouseLeave"];
22
- function ce() {
23
- var e = arguments[0];
24
- return /* @__PURE__ */ n.createElement(T.Trigger, l({
25
- tag: G
26
- }, e));
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
4
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
5
+ import _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitialized";
6
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
7
+ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
8
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
9
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
10
+ import { assignProps, sstyled, Component } from "@semcore/core";
11
+ import React from "react";
12
+ import dayjs from "dayjs";
13
+ import Dropdown from "@semcore/dropdown";
14
+ import { Box } from "@semcore/flex-box";
15
+ import Button from "@semcore/button";
16
+ import ChevronLeft from "@semcore/icon/ChevronLeft/m";
17
+ import ChevronRight from "@semcore/icon/ChevronRight/m";
18
+ import { callAllEventHandlers } from "@semcore/utils/lib/assignProps";
19
+ import ButtonTrigger from "./ButtonTrigger.mjs";
20
+ import InputTrigger$1 from "./InputTrigger.mjs";
21
+ var _excluded = ["value", "onClick", "onMouseEnter", "onMouseLeave"];
22
+ function Trigger() {
23
+ var _ref = arguments[0];
24
+ return /* @__PURE__ */ React.createElement(Dropdown.Trigger, assignProps({
25
+ "tag": ButtonTrigger
26
+ }, _ref));
27
27
  }
28
- function p() {
29
- var e = arguments[0];
30
- return /* @__PURE__ */ n.createElement(T.Trigger, l({
31
- tag: u,
32
- __excludeProps: ["role", "aria-haspopup", "aria-expanded", "onChange", "value", "id"]
33
- }, e));
28
+ function InputTrigger() {
29
+ var _ref2 = arguments[0];
30
+ return /* @__PURE__ */ React.createElement(Dropdown.Trigger, assignProps({
31
+ "tag": InputTrigger$1,
32
+ "__excludeProps": ["role", "aria-haspopup", "aria-expanded", "onChange", "value", "id"]
33
+ }, _ref2));
34
34
  }
35
- p.Indicator = u.Indicator;
36
- p.MaskedInput = u.MaskedInput;
37
- p.Addon = u.Addon;
38
- p.SingleDateInput = u.SingleDateInput;
39
- p.DateRange = u.DateRange;
40
- p.DateRangeFromInput = u.DateRangeFromInput;
41
- p.DateRangeToInput = u.DateRangeToInput;
42
- function de(e) {
43
- var a = arguments[0], r, t = T.Popper;
44
- return r = y(e.styles), /* @__PURE__ */ n.createElement(t, r.cn("SPopper", E({}, l({
45
- role: "dialog"
46
- }, a))));
35
+ InputTrigger.Indicator = InputTrigger$1.Indicator;
36
+ InputTrigger.MaskedInput = InputTrigger$1.MaskedInput;
37
+ InputTrigger.Addon = InputTrigger$1.Addon;
38
+ InputTrigger.SingleDateInput = InputTrigger$1.SingleDateInput;
39
+ InputTrigger.DateRange = InputTrigger$1.DateRange;
40
+ InputTrigger.DateRangeFromInput = InputTrigger$1.DateRangeFromInput;
41
+ InputTrigger.DateRangeToInput = InputTrigger$1.DateRangeToInput;
42
+ function Popper(props) {
43
+ var _ref3 = arguments[0], _ref9;
44
+ var SPopper = Dropdown.Popper;
45
+ return _ref9 = sstyled(props.styles), /* @__PURE__ */ React.createElement(SPopper, _ref9.cn("SPopper", _objectSpread({}, assignProps({
46
+ "role": "dialog"
47
+ }, _ref3))));
47
48
  }
48
- function ge(e) {
49
- var a = arguments[0], r, t = _;
50
- return r = y(e.styles), /* @__PURE__ */ n.createElement(t, r.cn("SHeader", E({}, l({}, a))));
49
+ function Header(props) {
50
+ var _ref4 = arguments[0], _ref10;
51
+ var SHeader = Box;
52
+ return _ref10 = sstyled(props.styles), /* @__PURE__ */ React.createElement(SHeader, _ref10.cn("SHeader", _objectSpread({}, assignProps({}, _ref4))));
51
53
  }
52
- var he = function(a) {
53
- var r = arguments[0], t, c = a.Children, s = a.styles, i = _;
54
- return t = y(s), /* @__PURE__ */ n.createElement(i, t.cn("STitle", E({}, l({
54
+ var Title = function Title2(_ref13) {
55
+ var _ref5 = arguments[0], _ref11;
56
+ var Children = _ref13.Children, styles = _ref13.styles;
57
+ var STitle = Box;
58
+ return _ref11 = sstyled(styles), /* @__PURE__ */ React.createElement(STitle, _ref11.cn("STitle", _objectSpread({}, assignProps({
55
59
  "aria-live": "polite"
56
- }, r))), /* @__PURE__ */ n.createElement(c, t.cn("Children", {})));
60
+ }, _ref5))), /* @__PURE__ */ React.createElement(Children, _ref11.cn("Children", {})));
57
61
  };
58
- function fe(e) {
59
- var a = arguments[0];
60
- e.getI18nText;
61
- var r = e.children, t = e.Children;
62
- return /* @__PURE__ */ n.createElement(f, l({
63
- use: "tertiary",
64
- theme: "muted",
65
- size: "l"
66
- }, a), r ? /* @__PURE__ */ n.createElement(t, null) : /* @__PURE__ */ n.createElement(f.Addon, null, /* @__PURE__ */ n.createElement(W, null)));
62
+ function Prev(_ref14) {
63
+ var _ref6 = arguments[0];
64
+ _ref14.getI18nText;
65
+ var children = _ref14.children, Children = _ref14.Children;
66
+ return /* @__PURE__ */ React.createElement(Button, assignProps({
67
+ "use": "tertiary",
68
+ "theme": "muted",
69
+ "size": "l"
70
+ }, _ref6), children ? /* @__PURE__ */ React.createElement(Children, null) : /* @__PURE__ */ React.createElement(Button.Addon, null, /* @__PURE__ */ React.createElement(ChevronLeft, null)));
67
71
  }
68
- function ve(e) {
69
- var a = arguments[0];
70
- e.getI18nText;
71
- var r = e.children, t = e.Children;
72
- return /* @__PURE__ */ n.createElement(f, l({
73
- use: "tertiary",
74
- theme: "muted",
75
- size: "l"
76
- }, a), r ? /* @__PURE__ */ n.createElement(t, null) : /* @__PURE__ */ n.createElement(f.Addon, null, /* @__PURE__ */ n.createElement(q, null)));
72
+ function Next(_ref15) {
73
+ var _ref7 = arguments[0];
74
+ _ref15.getI18nText;
75
+ var children = _ref15.children, Children = _ref15.Children;
76
+ return /* @__PURE__ */ React.createElement(Button, assignProps({
77
+ "use": "tertiary",
78
+ "theme": "muted",
79
+ "size": "l"
80
+ }, _ref7), children ? /* @__PURE__ */ React.createElement(Children, null) : /* @__PURE__ */ React.createElement(Button.Addon, null, /* @__PURE__ */ React.createElement(ChevronRight, null)));
77
81
  }
78
- var Ce = /* @__PURE__ */ function(e) {
79
- b(r, e);
80
- var a = F(r);
81
- function r() {
82
- var t;
83
- w(this, r);
84
- for (var c = arguments.length, s = new Array(c), i = 0; i < c; i++)
85
- s[i] = arguments[i];
86
- return t = a.call.apply(a, [this].concat(s)), $(B(t), "getActiveControl", function() {
87
- var m = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], o = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : void 0;
88
- function d(g, P) {
89
- return C(g).isSame(C(P), "date");
82
+ var Period = /* @__PURE__ */ function(_Component) {
83
+ _inherits(Period2, _Component);
84
+ var _super = _createSuper(Period2);
85
+ function Period2() {
86
+ var _this;
87
+ _classCallCheck(this, Period2);
88
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
89
+ args[_key] = arguments[_key];
90
+ }
91
+ _this = _super.call.apply(_super, [this].concat(args));
92
+ _defineProperty(_assertThisInitialized(_this), "getActiveControl", function() {
93
+ var period = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
94
+ var value = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : void 0;
95
+ function compareMonth(monthOne, monthTwo) {
96
+ return dayjs(monthOne).isSame(dayjs(monthTwo), "date");
97
+ }
98
+ if (!period || !value) return false;
99
+ if (Array.isArray(value) && period.length !== value.length) return false;
100
+ if (Array.isArray(value)) {
101
+ return compareMonth(period[0], value[0]) && compareMonth(period[1], value[1]);
90
102
  }
91
- return !m || !o || Array.isArray(o) && m.length !== o.length ? !1 : Array.isArray(o) ? d(m[0], o[0]) && d(m[1], o[1]) : d(m[0], o);
92
- }), t;
103
+ return compareMonth(period[0], value);
104
+ });
105
+ return _this;
93
106
  }
94
- return z(r, [{
107
+ _createClass(Period2, [{
95
108
  key: "render",
96
- value: function() {
97
- var c = this.asProps, s, i = this, m = _, o = this.asProps, d = o.styles, g = o.value, P = o.onChange, A = o.periods, D = o.onHighlightedChange, S = o.onDisplayedPeriodChange;
98
- return s = y(d), /* @__PURE__ */ n.createElement(m, s.cn("SPeriod", E({}, l({}, c))), A.map(function(h, M) {
99
- var v = h.value, x = h.onClick, R = h.onMouseEnter, k = h.onMouseLeave, H = j(h, J);
100
- return /* @__PURE__ */ n.createElement(f, L({
101
- key: M,
109
+ value: function render() {
110
+ var _ref8 = this.asProps, _ref12, _this2 = this;
111
+ var SPeriod = Box;
112
+ var _this$asProps = this.asProps, styles = _this$asProps.styles, value = _this$asProps.value, onChange = _this$asProps.onChange, periods = _this$asProps.periods, onHighlightedChange = _this$asProps.onHighlightedChange, onDisplayedPeriodChange = _this$asProps.onDisplayedPeriodChange;
113
+ return _ref12 = sstyled(styles), /* @__PURE__ */ React.createElement(SPeriod, _ref12.cn("SPeriod", _objectSpread({}, assignProps({}, _ref8))), periods.map(function(_ref16, i) {
114
+ var period = _ref16.value, onClick = _ref16.onClick, onMouseEnter = _ref16.onMouseEnter, onMouseLeave = _ref16.onMouseLeave, other = _objectWithoutProperties(_ref16, _excluded);
115
+ return /* @__PURE__ */ React.createElement(Button, _extends({
116
+ key: i,
102
117
  use: "tertiary",
103
118
  theme: "muted",
104
119
  role: "option",
105
- styles: d,
106
- active: i.getActiveControl(v, g),
107
- onClick: I(x, function() {
108
- return P(v);
120
+ styles,
121
+ active: _this2.getActiveControl(period, value),
122
+ onClick: callAllEventHandlers(onClick, function() {
123
+ return onChange(period);
109
124
  }),
110
- onMouseEnter: I(R, function() {
111
- D(v), S(C(v[0]).toDate());
125
+ onMouseEnter: callAllEventHandlers(onMouseEnter, function() {
126
+ onHighlightedChange(period);
127
+ onDisplayedPeriodChange(dayjs(period[0]).toDate());
112
128
  }),
113
- onMouseLeave: I(k, function() {
114
- D([]), S(g[0] ? C(g[0]).toDate() : /* @__PURE__ */ new Date());
129
+ onMouseLeave: callAllEventHandlers(onMouseLeave, function() {
130
+ onHighlightedChange([]);
131
+ onDisplayedPeriodChange(value[0] ? dayjs(value[0]).toDate() : /* @__PURE__ */ new Date());
115
132
  })
116
- }, H));
133
+ }, other));
117
134
  }));
118
135
  }
119
- }]), r;
120
- }(N);
136
+ }]);
137
+ return Period2;
138
+ }(Component);
121
139
  export {
122
- ge as Header,
123
- p as InputTrigger,
124
- ve as Next,
125
- Ce as Period,
126
- de as Popper,
127
- fe as Prev,
128
- he as Title,
129
- ce as Trigger
140
+ Header,
141
+ InputTrigger,
142
+ Next,
143
+ Period,
144
+ Popper,
145
+ Prev,
146
+ Title,
147
+ Trigger
130
148
  };
package/lib/esm/index.mjs CHANGED
@@ -1,15 +1,15 @@
1
- import { default as t, DatePickerRoot as o } from "./DatePicker.mjs";
2
- import { default as f } from "./DateRangePicker.mjs";
3
- import { default as p } from "./DateRangeComparator.mjs";
4
- import { default as d } from "./MonthPicker.mjs";
5
- import { default as s } from "./MonthRangePicker.mjs";
6
- import { default as x } from "./MonthDateRangeComparator.mjs";
1
+ import { default as default2, DatePickerRoot } from "./DatePicker.mjs";
2
+ import { default as default3 } from "./DateRangePicker.mjs";
3
+ import { default as default4 } from "./DateRangeComparator.mjs";
4
+ import { default as default5 } from "./MonthPicker.mjs";
5
+ import { default as default6 } from "./MonthRangePicker.mjs";
6
+ import { default as default7 } from "./MonthDateRangeComparator.mjs";
7
7
  export {
8
- t as DatePicker,
9
- o as DatePickerRoot,
10
- p as DateRangeComparator,
11
- f as DateRangePicker,
12
- x as MonthDateRangeComparator,
13
- d as MonthPicker,
14
- s as MonthRangePicker
8
+ default2 as DatePicker,
9
+ DatePickerRoot,
10
+ default4 as DateRangeComparator,
11
+ default3 as DateRangePicker,
12
+ default7 as MonthDateRangeComparator,
13
+ default5 as MonthPicker,
14
+ default6 as MonthRangePicker
15
15
  };
@@ -0,0 +1,259 @@
1
+ SCalendar {
2
+ display: flex;
3
+ flex-direction: column;
4
+ }
5
+
6
+ SGridDays {
7
+ display: grid;
8
+ grid-template-columns: repeat(7, minmax(32px, auto));
9
+ grid-template-rows: repeat(auto-fit, minmax(32px, auto));
10
+ }
11
+
12
+ SGridMonths {
13
+ display: grid;
14
+ grid-row-gap: var(--intergalactic-spacing-2x, 8px);
15
+ grid-template-columns: repeat(3, minmax(60px, auto));
16
+ grid-template-rows: repeat(4, minmax(32px, auto));
17
+ }
18
+
19
+ SWeekDays {
20
+ display: grid;
21
+ grid-template-columns: repeat(7, minmax(32px, auto));
22
+ }
23
+
24
+ SWeekDay {
25
+ min-width: 32px;
26
+ min-height: 32px;
27
+ display: flex;
28
+ align-items: center;
29
+ justify-content: center;
30
+ color: var(--intergalactic-text-secondary, #6c6e79);
31
+ font-size: var(--intergalactic-fs-200, 14px);
32
+ font-weight: var(--intergalactic-regular, 400);
33
+ overflow: hidden;
34
+ }
35
+
36
+ SCalendarUnit {
37
+ font-family: inherit;
38
+ font-weight: normal;
39
+ line-height: normal;
40
+ text-decoration: none;
41
+ text-align: center;
42
+ vertical-align: middle;
43
+ border: 1px solid transparent;
44
+ color: var(--intergalactic-text-primary, #191b23);
45
+ box-shadow: none;
46
+ overflow: visible;
47
+ user-select: none;
48
+ touch-action: manipulation;
49
+ -webkit-tap-highlight-color: transparent;
50
+ background-color: var(--intergalactic-date-picker-cell, #ffffff);
51
+
52
+ align-items: center;
53
+ border-radius: var(--intergalactic-control-rounded, 6px);
54
+ box-sizing: border-box;
55
+ cursor: pointer;
56
+ display: flex;
57
+ font-size: var(--intergalactic-fs-200, 14px);
58
+ justify-content: center;
59
+ min-height: 32px;
60
+ min-width: 32px;
61
+ position: relative;
62
+ transition: color 0.15s, background 0.15s, box-shadow 0.15s, border-radius 0.15s 0.15s;
63
+ outline: none;
64
+ margin: 0;
65
+ margin-top: 4px;
66
+
67
+ &:hover {
68
+ color: var(--intergalactic-text-primary, #191b23);
69
+ background-color: var(--intergalactic-date-picker-cell-hover, #e0e1e9);
70
+ }
71
+ }
72
+
73
+ SCalendarUnit[today] {
74
+ &:before {
75
+ content: '';
76
+ position: absolute;
77
+ display: block;
78
+ top: 1px;
79
+ left: 1px;
80
+ border-radius: var(--intergalactic-control-rounded, 6px);
81
+ width: calc(100% - 2px);
82
+ height: calc(100% - 2px);
83
+ box-sizing: border-box;
84
+ border: 1px solid var(--intergalactic-date-picker-cell-current, #8a8e9b);
85
+ }
86
+ }
87
+
88
+ SCalendarUnit[today]SCalendarUnit[startSelected],
89
+ SCalendarUnit[today]SCalendarUnit[endSelected] {
90
+ &:before {
91
+ border-color: var(--intergalactic-border-secondary, #e0e1e9);
92
+ }
93
+ }
94
+
95
+ SCalendarUnit[selected] {
96
+ background-color: var(--intergalactic-date-picker-cell-range, #c4e5fe);
97
+ border-radius: 0;
98
+ transition: color 0.15s, background 0.15s, box-shadow 0.15s, border-radius 0s 0s;
99
+ color: var(--intergalactic-text-primary, #191b23);
100
+
101
+ &:hover {
102
+ background-color: var(--intergalactic-date-picker-cell-range-hover, #8ecdff);
103
+ }
104
+ }
105
+
106
+ SCalendarUnit[highlighted] {
107
+ background-color: var(--intergalactic-date-picker-cell-range-hover, #8ecdff);
108
+ border-radius: 0;
109
+ transition: color 0.15s, background 0.15s, box-shadow 0.15s, border-radius 0s 0s;
110
+ color: var(--intergalactic-text-primary, #191b23);
111
+
112
+ &:hover {
113
+ background-color: var(--intergalactic-date-picker-cell-range-hover, #8ecdff);
114
+ }
115
+ }
116
+
117
+ SCalendarUnit[startSelected] {
118
+ color: var(--intergalactic-text-primary-invert, #ffffff);
119
+ background-color: var(--intergalactic-date-picker-cell-active, #2bb3ff);
120
+
121
+ &:not([highlighted]) {
122
+ border-bottom-left-radius: var(--intergalactic-control-rounded, 6px);
123
+ border-bottom-right-radius: 0;
124
+ border-top-left-radius: var(--intergalactic-control-rounded, 6px);
125
+ border-top-right-radius: 0;
126
+ }
127
+
128
+ &:hover {
129
+ color: var(--intergalactic-text-primary-invert, #ffffff);
130
+ background-color: var(--intergalactic-date-picker-cell-active-hover, #008ff8);
131
+ }
132
+ }
133
+
134
+ SCalendarUnit[endSelected] {
135
+ background-color: var(--intergalactic-date-picker-cell-active, #2bb3ff);
136
+ color: var(--intergalactic-text-primary-invert, #ffffff);
137
+
138
+ &:not([highlighted]) {
139
+ border-bottom-left-radius: 0;
140
+ border-bottom-right-radius: var(--intergalactic-control-rounded, 6px);
141
+ border-top-left-radius: 0;
142
+ border-top-right-radius: var(--intergalactic-control-rounded, 6px);
143
+ }
144
+
145
+ &:hover {
146
+ color: var(--intergalactic-text-primary-invert, #ffffff);
147
+ background-color: var(--intergalactic-date-picker-cell-active-hover, #008ff8);
148
+ }
149
+ }
150
+
151
+ SCalendarUnit[startHighlighted]:not([selected]) {
152
+ border-bottom-left-radius: var(--intergalactic-control-rounded, 6px);
153
+ border-bottom-right-radius: 0;
154
+ border-top-left-radius: var(--intergalactic-control-rounded, 6px);
155
+ border-top-right-radius: 0;
156
+ }
157
+
158
+ SCalendarUnit[endHighlighted]:not([selected]) {
159
+ border-bottom-left-radius: 0;
160
+ border-bottom-right-radius: var(--intergalactic-control-rounded, 6px);
161
+ border-top-left-radius: 0;
162
+ border-top-right-radius: var(--intergalactic-control-rounded, 6px);
163
+ }
164
+
165
+ SCalendarUnit[startHighlighted]SCalendarUnit[endHighlighted] {
166
+ border-bottom-left-radius: var(--intergalactic-control-rounded, 6px);
167
+ border-bottom-right-radius: var(--intergalactic-control-rounded, 6px);
168
+ border-top-left-radius: var(--intergalactic-control-rounded, 6px);
169
+ border-top-right-radius: var(--intergalactic-control-rounded, 6px);
170
+ }
171
+
172
+ SCalendarUnit[startSelected]SCalendarUnit[endSelected] {
173
+ border-bottom-left-radius: var(--intergalactic-control-rounded, 6px);
174
+ border-bottom-right-radius: var(--intergalactic-control-rounded, 6px);
175
+ border-top-left-radius: var(--intergalactic-control-rounded, 6px);
176
+ border-top-right-radius: var(--intergalactic-control-rounded, 6px);
177
+ }
178
+
179
+ SCalendarUnit[compareHighlighted] {
180
+ border-top: 2px dashed var(--intergalactic-date-picker-cell-comparison-active, #8649e1);
181
+ border-bottom: 2px dashed var(--intergalactic-date-picker-cell-comparison-active, #8649e1);
182
+ border-radius: 0;
183
+ transition: none;
184
+ }
185
+
186
+
187
+ SCalendarUnit[compareStartHighlighted],
188
+ SCalendarUnit[compareEndHighlighted] {
189
+ border-left: 2px dashed var(--intergalactic-date-picker-cell-comparison-active, #8649e1);
190
+ border-right: 2px dashed var(--intergalactic-date-picker-cell-comparison-active, #8649e1);
191
+ }
192
+
193
+ SCalendarUnit[compareStart],
194
+ SCalendarUnit[compareEnd] {
195
+ border-radius: 0;
196
+ background-color: var(--intergalactic-date-picker-cell-comparison-active, #8649e1);
197
+ color: var(--intergalactic-text-primary-invert, #ffffff);
198
+
199
+ &:hover {
200
+ color: var(--intergalactic-text-primary-invert, #ffffff);
201
+ background-color: var(--intergalactic-date-picker-cell-comparison-active-hover, #5925ab);
202
+ }
203
+ }
204
+
205
+ SCalendarUnit[compareStartHighlighted] {
206
+ border-top-left-radius: var(--intergalactic-control-rounded, 6px);
207
+ border-bottom-left-radius: var(--intergalactic-control-rounded, 6px);
208
+ }
209
+
210
+ SCalendarUnit[compareEndHighlighted] {
211
+ border-top-right-radius: var(--intergalactic-control-rounded, 6px);
212
+ border-bottom-right-radius: var(--intergalactic-control-rounded, 6px);
213
+ }
214
+
215
+ SCalendarUnit[compareStart]:not([compareHighlighted]) {
216
+ border-top-left-radius: var(--intergalactic-control-rounded, 6px);
217
+ border-bottom-left-radius: var(--intergalactic-control-rounded, 6px);
218
+ }
219
+
220
+ SCalendarUnit[compareEnd]:not([compareHighlighted]) {
221
+ border-top-right-radius: var(--intergalactic-control-rounded, 6px);
222
+ border-bottom-right-radius: var(--intergalactic-control-rounded, 6px);
223
+ }
224
+
225
+ SCalendarUnit[outdated] {
226
+ opacity: 0.2;
227
+ }
228
+
229
+ SCalendarUnit[disabled] {
230
+ opacity: 0.4;
231
+ cursor: default;
232
+ pointer-events: none;
233
+ }
234
+
235
+ SCalendar:focus {
236
+ outline: none;
237
+ & SCalendarUnit[highlighted] {
238
+ z-index: 1;
239
+ box-shadow: var(
240
+ --intergalactic-keyboard-focus,
241
+ 0px 0px 0px 3px rgba(0, 143, 248, 0.5)
242
+ );
243
+ }
244
+ &:not(&:has(SCalendarUnit[highlighted])) {
245
+ box-shadow: var(
246
+ --intergalactic-keyboard-focus,
247
+ 0px 0px 0px 3px rgba(0, 143, 248, 0.5)
248
+ );
249
+ }
250
+ }
251
+
252
+ @media (prefers-reduced-motion) {
253
+
254
+ SCalendarUnit,
255
+ SCalendarUnit[selected],
256
+ SCalendarUnit[highlighted] {
257
+ transition: none;
258
+ }
259
+ }