@react-fabric/date 1.0.0-beta.9 → 1.0.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 (139) hide show
  1. package/README.md +2 -9
  2. package/{src/components/Date.module.css → css/_date.css} +5 -5
  3. package/{src/superdate/SuperDate.module.css → css/styles.css} +2 -8
  4. package/dist/cjs/components/DateCell.js +5 -7
  5. package/dist/cjs/components/DateHeader.js +27 -20
  6. package/dist/cjs/components/DatePage.js +10 -12
  7. package/dist/cjs/components/DecadePage.js +3 -3
  8. package/dist/cjs/components/MonthPage.js +3 -3
  9. package/dist/cjs/components/TimeSliders.js +36 -35
  10. package/dist/cjs/components/YearPage.js +3 -3
  11. package/dist/cjs/display/DateDisplay.js +25 -8
  12. package/dist/cjs/display/DateDuration.js +155 -0
  13. package/dist/cjs/hijri/DateConverter.js +154 -0
  14. package/dist/cjs/hijri/FormatDate.js +116 -0
  15. package/dist/cjs/hijri/HijriDate.js +531 -0
  16. package/dist/cjs/hijri/StringDateParser.js +74 -0
  17. package/dist/cjs/hijri/index.js +15 -1025
  18. package/dist/cjs/hijri/initializer.js +113 -0
  19. package/dist/cjs/hijri/locales.js +19 -0
  20. package/dist/cjs/hijri/safe.js +17 -0
  21. package/dist/cjs/i18n/ar/date.json.js +213 -0
  22. package/dist/cjs/i18n/en/date.json.js +83 -0
  23. package/dist/cjs/i18n/index.js +4 -10
  24. package/dist/cjs/index.js +41 -2
  25. package/dist/cjs/panels/BasePanel.js +6 -5
  26. package/dist/cjs/panels/DatePanel.js +45 -21
  27. package/dist/cjs/{superdate → panels}/EventPanel.js +28 -12
  28. package/dist/cjs/panels/RangePanel.js +49 -19
  29. package/dist/cjs/utils/dateUtil.js +3 -5
  30. package/dist/esm/components/DateCell.js +6 -8
  31. package/dist/esm/components/DateHeader.js +28 -21
  32. package/dist/esm/components/DatePage.js +11 -13
  33. package/dist/esm/components/DecadePage.js +3 -3
  34. package/dist/esm/components/MonthPage.js +3 -3
  35. package/dist/esm/components/TimeSliders.js +38 -37
  36. package/dist/esm/components/YearPage.js +3 -3
  37. package/dist/esm/display/DateDisplay.js +26 -9
  38. package/dist/esm/display/DateDuration.js +155 -0
  39. package/dist/esm/hijri/DateConverter.js +152 -0
  40. package/dist/esm/hijri/FormatDate.js +113 -0
  41. package/dist/esm/hijri/HijriDate.js +528 -0
  42. package/dist/esm/hijri/StringDateParser.js +74 -0
  43. package/dist/esm/hijri/index.js +15 -1025
  44. package/dist/esm/hijri/initializer.js +113 -0
  45. package/dist/esm/hijri/locales.js +18 -0
  46. package/dist/esm/hijri/safe.js +14 -0
  47. package/dist/esm/i18n/ar/date.json.js +209 -0
  48. package/dist/esm/i18n/en/date.json.js +79 -0
  49. package/dist/esm/i18n/index.js +2 -8
  50. package/dist/esm/index.js +36 -1
  51. package/dist/esm/panels/BasePanel.js +6 -5
  52. package/dist/esm/panels/DatePanel.js +48 -24
  53. package/dist/esm/{superdate → panels}/EventPanel.js +29 -13
  54. package/dist/esm/panels/RangePanel.js +52 -22
  55. package/dist/esm/utils/dateUtil.js +4 -6
  56. package/dist/types/components/DateCell.d.ts +1 -1
  57. package/dist/types/components/DateHeader.d.ts +1 -1
  58. package/dist/types/components/DatePage.d.ts +1 -1
  59. package/dist/types/components/DecadePage.d.ts +1 -1
  60. package/dist/types/components/MonthPage.d.ts +1 -1
  61. package/dist/types/components/TimeSliders.d.ts +1 -1
  62. package/dist/types/components/YearPage.d.ts +1 -1
  63. package/dist/types/display/DateDisplay.d.ts +17 -4
  64. package/dist/types/display/DateDuration.d.ts +25 -0
  65. package/dist/types/hijri/DateConverter.d.ts +13 -0
  66. package/dist/types/hijri/FormatDate.d.ts +19 -0
  67. package/dist/types/hijri/HijriDate.d.ts +214 -0
  68. package/dist/types/hijri/StringDateParser.d.ts +11 -0
  69. package/dist/types/hijri/index.d.ts +2 -2
  70. package/dist/types/hijri/initializer.d.ts +129 -0
  71. package/dist/types/hijri/locales.d.ts +19 -0
  72. package/dist/types/hijri/safe.d.ts +3 -0
  73. package/dist/types/index.d.ts +32 -1
  74. package/dist/types/panels/BasePanel.d.ts +1 -1
  75. package/dist/types/panels/DatePanel.d.ts +22 -1
  76. package/dist/types/panels/EventPanel.d.ts +17 -0
  77. package/dist/types/panels/RangePanel.d.ts +19 -1
  78. package/dist/types/types/index.d.ts +8 -40
  79. package/package.json +14 -21
  80. package/src/components/DateCell.tsx +20 -75
  81. package/src/components/DateHeader.tsx +27 -78
  82. package/src/components/DatePage.tsx +11 -36
  83. package/src/components/DecadePage.tsx +2 -2
  84. package/src/components/MonthPage.tsx +2 -2
  85. package/src/components/TimeSliders.tsx +20 -60
  86. package/src/components/YearPage.tsx +2 -2
  87. package/src/display/DateDisplay.tsx +26 -38
  88. package/src/display/DateDuration.tsx +170 -0
  89. package/src/hijri/DateConverter.js +175 -0
  90. package/src/hijri/FormatDate.js +134 -0
  91. package/src/hijri/HijriDate.js +477 -0
  92. package/src/hijri/StringDateParser.js +68 -0
  93. package/src/hijri/index.js +16 -1535
  94. package/src/hijri/initializer.js +96 -0
  95. package/src/hijri/locales.js +109 -0
  96. package/src/hijri/safe.js +16 -0
  97. package/src/i18n/ar/date.json +203 -0
  98. package/src/i18n/en/date.json +73 -0
  99. package/src/i18n/index.ts +2 -5
  100. package/src/index.ts +29 -18
  101. package/src/panels/BasePanel.tsx +7 -10
  102. package/src/panels/DatePanel.tsx +41 -33
  103. package/src/{superdate → panels}/EventPanel.tsx +52 -53
  104. package/src/panels/RangePanel.tsx +54 -60
  105. package/src/types/index.ts +8 -43
  106. package/src/utils/dateUtil.ts +26 -82
  107. package/dist/cjs/components/Date.module.css +0 -1
  108. package/dist/cjs/i18n/ar.json.js +0 -25
  109. package/dist/cjs/i18n/en.json.js +0 -21
  110. package/dist/cjs/i18n/superdate/ar.json.js +0 -86
  111. package/dist/cjs/i18n/superdate/en.json.js +0 -93
  112. package/dist/cjs/superdate/QuickSelect.js +0 -134
  113. package/dist/cjs/superdate/RelativeInput.js +0 -79
  114. package/dist/cjs/superdate/RelativePanel.js +0 -91
  115. package/dist/cjs/superdate/SuperDate.module.css +0 -1
  116. package/dist/cjs/superdate/Superdate.js +0 -177
  117. package/dist/esm/components/Date.module.css +0 -1
  118. package/dist/esm/i18n/ar.json.js +0 -21
  119. package/dist/esm/i18n/en.json.js +0 -18
  120. package/dist/esm/i18n/superdate/ar.json.js +0 -79
  121. package/dist/esm/i18n/superdate/en.json.js +0 -85
  122. package/dist/esm/superdate/QuickSelect.js +0 -134
  123. package/dist/esm/superdate/RelativeInput.js +0 -79
  124. package/dist/esm/superdate/RelativePanel.js +0 -91
  125. package/dist/esm/superdate/SuperDate.module.css +0 -1
  126. package/dist/esm/superdate/Superdate.js +0 -176
  127. package/dist/types/superdate/EventPanel.d.ts +0 -4
  128. package/dist/types/superdate/QuickSelect.d.ts +0 -1
  129. package/dist/types/superdate/RelativeInput.d.ts +0 -1
  130. package/dist/types/superdate/RelativePanel.d.ts +0 -1
  131. package/dist/types/superdate/Superdate.d.ts +0 -17
  132. package/src/i18n/ar.json +0 -14
  133. package/src/i18n/en.json +0 -13
  134. package/src/i18n/superdate/ar.json +0 -70
  135. package/src/i18n/superdate/en.json +0 -75
  136. package/src/superdate/QuickSelect.tsx +0 -121
  137. package/src/superdate/RelativeInput.tsx +0 -64
  138. package/src/superdate/RelativePanel.tsx +0 -103
  139. package/src/superdate/Superdate.tsx +0 -198
package/README.md CHANGED
@@ -1,10 +1,3 @@
1
- # React-Fabric Date Module
1
+ # React-Fabric Date panel Module
2
2
 
3
- #### Install
4
-
5
- ```bash
6
- # Using
7
- yarn add @react-fabric/date
8
- ```
9
-
10
- #### Usage
3
+ > INTERNAL ONLY
@@ -21,12 +21,12 @@
21
21
  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
22
  */
23
23
 
24
- @layer comp {
25
- .dateHeader {
26
- box-shadow: 0 -1px 0 theme(colors.tint.200/50%) inset;
24
+ @layer components {
25
+ .fabric-dateHeader {
26
+ box-shadow: 0 -1px 0 --alpha(var(--color-tint-200) / 50%) inset;
27
27
  }
28
28
 
29
- .timeSlider {
29
+ .fabric-date-timeSlider {
30
30
  height: 11.25rem;
31
31
 
32
32
  &::before,
@@ -34,7 +34,7 @@
34
34
  content: "";
35
35
  z-index: 10;
36
36
  display: block;
37
- box-shadow: 0 0 3rem 0.25rem theme(colors.tint.600);
37
+ box-shadow: 0 0 3rem 0.25rem var(--color-tint-600);
38
38
  }
39
39
 
40
40
  &::before {
@@ -4,7 +4,7 @@
4
4
  *
5
5
  *
6
6
  * The MIT License (MIT)
7
- * Copyright (c) 2024 Adarsh Pastakia
7
+ * Copyright (c) 2025 Adarsh Pastakia
8
8
  *
9
9
  * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
10
10
  * and associated documentation files (the "Software"), to deal in the Software without restriction,
@@ -21,10 +21,4 @@
21
21
  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
22
  */
23
23
 
24
- @layer comp {
25
- .superDate {
26
- &:root {
27
- font-size: 10px;
28
- }
29
- }
30
- }
24
+ @import "./_date.css";
@@ -3,7 +3,6 @@
3
3
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
4
4
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
5
5
  var utilities = require('@react-fabric/utilities');
6
- var classNames = require('classnames');
7
6
  var dateFns = require('date-fns');
8
7
  var i18next = require('i18next');
9
8
  var react = require('react');
@@ -12,9 +11,8 @@ var dateUtil = require('../utils/dateUtil.js');
12
11
  var jsxRuntime = require('react/jsx-runtime');
13
12
 
14
13
  var _excluded = ["date", "isMuted"];
15
- var DateCell = function DateCell(_ref) {
16
- var _ref$date = _ref.date,
17
- date = _ref$date === void 0 ? new Date() : _ref$date,
14
+ function DateCell(_ref) {
15
+ var date = _ref.date,
18
16
  _ref$isMuted = _ref.isMuted,
19
17
  isMuted = _ref$isMuted === void 0 ? false : _ref$isMuted,
20
18
  props = _objectWithoutProperties(_ref, _excluded);
@@ -32,7 +30,7 @@ var DateCell = function DateCell(_ref) {
32
30
  }, [date]);
33
31
  var isSelected = react.useMemo(function () {
34
32
  return selected && !utilities.isArray(selected) && dateFns.isSameDay(date, selected);
35
- }, [date, page, selected]);
33
+ }, [date, selected]);
36
34
  var isMarked = react.useMemo(function () {
37
35
  switch (page) {
38
36
  case index.PageType.MONTH:
@@ -81,7 +79,7 @@ var DateCell = function DateCell(_ref) {
81
79
  }, [date, dateDisabled, isSelected]);
82
80
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
83
81
  role: "none",
84
- className: classNames("p-1 m-px text-sm text-center rounded", className, !isDisabled && isMuted && "text-tint-500", (isToday || isMarked) && "underline underline-offset-4 text-primary-700", (!!isSelected || isHilightEdge) && "bg-primary-400 text-white", isHilightEdge === "start" && "rounded-e-none", isHilightEdge === "end" && "rounded-s-none", isHilight && "bg-primary-50 rounded-none", !isDisabled && "cursor-pointer hover:bg-primary-100 hover:text-primary-700", isDisabled && "text-tint-100 cursor-not-allowed"),
82
+ className: utilities.cn("p-1 m-px text-sm text-center rounded", className, !isDisabled && isMuted && "text-tint-500", (isToday || isMarked) && "underline underline-offset-4 text-primary-700", (!!isSelected || isHilightEdge) && "bg-primary-400 text-white", isHilightEdge === "start" && "rounded-e-none", isHilightEdge === "end" && "rounded-s-none", isHilight && "bg-primary-50 rounded-none", !isDisabled && "cursor-pointer hover:bg-primary-100 hover:text-primary-700", isDisabled && "text-tint-100 cursor-not-allowed"),
85
83
  onFocus: function onFocus() {
86
84
  return hilight && page === index.PageType.DATE && (mouseOver === null || mouseOver === void 0 ? void 0 : mouseOver(date));
87
85
  },
@@ -93,6 +91,6 @@ var DateCell = function DateCell(_ref) {
93
91
  },
94
92
  children: [page === index.PageType.DATE && dateUtil.DateUtil.format(date, "d", i18next.language, isHijri), page === index.PageType.MONTH && dateUtil.DateUtil.format(date, "MMM", i18next.language, isHijri), page === index.PageType.YEAR && dateUtil.DateUtil.format(date, "yyyy", i18next.language, isHijri), page === index.PageType.DECADE && "".concat(dateUtil.DateUtil.format(dateUtil.DateUtil.startOfDecade(date, isHijri), "yyyy", i18next.language, isHijri), "-").concat(dateUtil.DateUtil.format(dateUtil.DateUtil.endOfDecade(date, isHijri), "yy", i18next.language, isHijri))]
95
93
  });
96
- };
94
+ }
97
95
 
98
96
  exports.DateCell = DateCell;
@@ -2,7 +2,7 @@
2
2
 
3
3
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
4
4
  var core = require('@react-fabric/core');
5
- var classNames = require('classnames');
5
+ var utilities = require('@react-fabric/utilities');
6
6
  var dateFns = require('date-fns');
7
7
  var i18next = require('i18next');
8
8
  var react = require('react');
@@ -10,10 +10,9 @@ var index = require('../types/index.js');
10
10
  var dateUtil = require('../utils/dateUtil.js');
11
11
  var jsxRuntime = require('react/jsx-runtime');
12
12
 
13
- var DateHeader = function DateHeader(props) {
13
+ function DateHeader(props) {
14
14
  var page = props.page,
15
- _props$pageDate = props.pageDate,
16
- pageDate = _props$pageDate === void 0 ? new Date() : _props$pageDate,
15
+ pageDate = props.pageDate,
17
16
  changePage = props.changePage,
18
17
  changePageDate = props.changePageDate,
19
18
  hideNext = props.hideNext,
@@ -33,7 +32,7 @@ var DateHeader = function DateHeader(props) {
33
32
  case index.PageType.DECADE:
34
33
  return "".concat(dateUtil.DateUtil.format(dateUtil.DateUtil.startOfCentury(pageDate, isHijri), "yyyy", i18next.language, isHijri), " - ").concat(dateUtil.DateUtil.format(dateUtil.DateUtil.endOfCentury(pageDate, isHijri), "yyyy", i18next.language, isHijri));
35
34
  }
36
- }, [i18next.language, isHijri, page, pageDate]);
35
+ }, [isHijri, page, pageDate]);
37
36
  var _useMemo = react.useMemo(function () {
38
37
  if (page === index.PageType.DATE) {
39
38
  var dateBefore = dateFns.addDays(dateUtil.DateUtil.startOfYear(pageDate, isHijri), -1);
@@ -82,27 +81,31 @@ var DateHeader = function DateHeader(props) {
82
81
  previousPage = _useMemo4[0],
83
82
  nextPage = _useMemo4[1];
84
83
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
85
- className: "flex flex-nowrap items-center area-head",
84
+ className: "flex flex-nowrap items-center area-header",
86
85
  "data-page": page,
87
86
  children: [startPage !== undefined && /*#__PURE__*/jsxRuntime.jsx(core.Button, {
88
- icon: core.CoreIcons.chevronsLeft,
89
- rtlFlip: true,
87
+ icon: {
88
+ icon: "icon-[mdi--chevron-double-left]",
89
+ rtlFlip: true
90
+ },
90
91
  size: "sm",
91
92
  variant: "link",
92
93
  "aria-label": "start",
93
94
  disabled: !startPage,
94
- className: classNames(hidePrevious && "invisible"),
95
+ className: utilities.cn(hidePrevious && "invisible"),
95
96
  onClick: function onClick() {
96
97
  return startPage && (changePageDate === null || changePageDate === void 0 ? void 0 : changePageDate(startPage));
97
98
  }
98
99
  }), /*#__PURE__*/jsxRuntime.jsx(core.Button, {
99
- icon: core.CoreIcons.chevronLeft,
100
- rtlFlip: true,
100
+ icon: {
101
+ icon: "icon-[mdi--chevron-left]",
102
+ rtlFlip: true
103
+ },
101
104
  size: "sm",
102
105
  variant: "link",
103
106
  "aria-label": "prev",
104
107
  disabled: !previousPage,
105
- className: classNames(hidePrevious && "invisible"),
108
+ className: utilities.cn(hidePrevious && "invisible"),
106
109
  onClick: function onClick() {
107
110
  return previousPage && (changePageDate === null || changePageDate === void 0 ? void 0 : changePageDate(previousPage));
108
111
  }
@@ -111,32 +114,36 @@ var DateHeader = function DateHeader(props) {
111
114
  onClick: function onClick() {
112
115
  return changePage(page + 1);
113
116
  },
114
- className: classNames("flex-1 px-2 py-1 text-primary-600 text-center text-sm font-medium truncate", page === index.PageType.DECADE ? "pointer-events-none" : "cursor-pointer"),
117
+ className: utilities.cn("flex-1 px-2 py-1 text-primary-600 text-center text-sm font-medium truncate", page === index.PageType.DECADE ? "pointer-events-none" : "cursor-pointer"),
115
118
  children: headLabel
116
119
  }), /*#__PURE__*/jsxRuntime.jsx(core.Button, {
117
- icon: core.CoreIcons.chevronRight,
118
- rtlFlip: true,
120
+ icon: {
121
+ icon: "icon-[mdi--chevron-right]",
122
+ rtlFlip: true
123
+ },
119
124
  size: "sm",
120
125
  variant: "link",
121
126
  "aria-label": "next",
122
127
  disabled: !nextPage,
123
- className: classNames(hideNext && "invisible"),
128
+ className: utilities.cn(hideNext && "invisible"),
124
129
  onClick: function onClick() {
125
130
  return nextPage && (changePageDate === null || changePageDate === void 0 ? void 0 : changePageDate(nextPage));
126
131
  }
127
132
  }), endPage !== undefined && /*#__PURE__*/jsxRuntime.jsx(core.Button, {
128
- icon: core.CoreIcons.chevronsRight,
129
- rtlFlip: true,
133
+ icon: {
134
+ icon: "icon-[mdi--chevron-double-right]",
135
+ rtlFlip: true
136
+ },
130
137
  size: "sm",
131
138
  variant: "link",
132
139
  "aria-label": "end",
133
140
  disabled: !endPage,
134
- className: classNames(hideNext && "invisible"),
141
+ className: utilities.cn(hideNext && "invisible"),
135
142
  onClick: function onClick() {
136
143
  return endPage && (changePageDate === null || changePageDate === void 0 ? void 0 : changePageDate(endPage));
137
144
  }
138
145
  })]
139
146
  });
140
- };
147
+ }
141
148
 
142
149
  exports.DateHeader = DateHeader;
@@ -2,22 +2,21 @@
2
2
 
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
4
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
5
+ var utilities = require('@react-fabric/utilities');
5
6
  var dateFns = require('date-fns');
6
7
  var i18next = require('i18next');
7
8
  var react = require('react');
9
+ var index = require('../types/index.js');
8
10
  var dateUtil = require('../utils/dateUtil.js');
9
11
  var DateCell = require('./DateCell.js');
10
- var classNames = require('classnames');
11
- var index = require('../types/index.js');
12
- var Date_module = require('./Date.module.css');
13
12
  var jsxRuntime = require('react/jsx-runtime');
14
13
 
15
14
  var _excluded = ["pageDate", "isHijri"];
16
15
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
17
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
16
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
18
17
  var rows = [0, 1, 2, 3, 4, 5];
19
18
  var cols = [0, 1, 2, 3, 4, 5, 6];
20
- var DatePage = function DatePage(_ref) {
19
+ function DatePage(_ref) {
21
20
  var pageDate = _ref.pageDate,
22
21
  isHijri = _ref.isHijri,
23
22
  props = _objectWithoutProperties(_ref, _excluded);
@@ -27,13 +26,13 @@ var DatePage = function DatePage(_ref) {
27
26
  return dateUtil.DateUtil.addDays(first, (current < 3 ? -7 : 0) + current * -1, isHijri);
28
27
  }, [isHijri, pageDate]);
29
28
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
30
- className: classNames("grid grid-cols-8 area-content", props.page !== index.PageType.DATE && "invisible"),
29
+ className: utilities.cn("grid grid-cols-8 area-content", props.page !== index.PageType.DATE && "invisible"),
31
30
  children: [/*#__PURE__*/jsxRuntime.jsx("div", {
32
- className: classNames(Date_module.dateHeader, "px-1 text-center bg-tint-50 h-7")
31
+ className: utilities.cn("fabric-dateHeader", "px-1 text-center bg-tint-50 h-7")
33
32
  }), cols.map(function (col) {
34
33
  var dt = dateUtil.DateUtil.addDays(startDate, col, isHijri);
35
34
  return /*#__PURE__*/jsxRuntime.jsx("div", {
36
- className: classNames(Date_module.dateHeader, "font-medium text-sm p-1 mx-px text-center text-muted bg-tint-50 h-7"),
35
+ className: utilities.cn("fabric-dateHeader", "font-medium text-sm p-1 mx-px text-center text-muted bg-tint-50 h-7"),
37
36
  children: dateUtil.DateUtil.format(dt, "eeeeee", i18next.language, isHijri)
38
37
  }, dt.toISOString());
39
38
  }), rows.map(function (row) {
@@ -43,17 +42,16 @@ var DatePage = function DatePage(_ref) {
43
42
  children: dateUtil.DateUtil.getWeek(dateUtil.DateUtil.addDays(startDate, row * 7, isHijri), i18next.language, isHijri)
44
43
  }, row), cols.map(function (col) {
45
44
  var dt = dateUtil.DateUtil.addDays(startDate, row * 7 + col, isHijri);
46
- return /*#__PURE__*/react.createElement(DateCell.DateCell, _objectSpread(_objectSpread({}, props), {}, {
45
+ return /*#__PURE__*/jsxRuntime.jsx(DateCell.DateCell, _objectSpread(_objectSpread({}, props), {}, {
47
46
  date: dt,
48
47
  page: index.PageType.DATE,
49
48
  isHijri: isHijri,
50
- key: dt.toISOString(),
51
49
  isMuted: !dateUtil.DateUtil.isSameMonth(dt, pageDate, isHijri)
52
- }));
50
+ }), dt.toISOString());
53
51
  })]
54
52
  }, row);
55
53
  })]
56
54
  });
57
- };
55
+ }
58
56
 
59
57
  exports.DatePage = DatePage;
@@ -9,9 +9,9 @@ var jsxRuntime = require('react/jsx-runtime');
9
9
 
10
10
  var _excluded = ["pageDate", "isHijri"];
11
11
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
13
  var cols = [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
14
- var DecadePage = function DecadePage(_ref) {
14
+ function DecadePage(_ref) {
15
15
  var pageDate = _ref.pageDate,
16
16
  isHijri = _ref.isHijri,
17
17
  props = _objectWithoutProperties(_ref, _excluded);
@@ -29,6 +29,6 @@ var DecadePage = function DecadePage(_ref) {
29
29
  }, props), col);
30
30
  })
31
31
  });
32
- };
32
+ }
33
33
 
34
34
  exports.DecadePage = DecadePage;
@@ -9,9 +9,9 @@ var jsxRuntime = require('react/jsx-runtime');
9
9
 
10
10
  var _excluded = ["pageDate", "isHijri"];
11
11
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
13
  var cols = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
14
- var MonthPage = function MonthPage(_ref) {
14
+ function MonthPage(_ref) {
15
15
  var pageDate = _ref.pageDate,
16
16
  isHijri = _ref.isHijri,
17
17
  props = _objectWithoutProperties(_ref, _excluded);
@@ -28,6 +28,6 @@ var MonthPage = function MonthPage(_ref) {
28
28
  }, props), col);
29
29
  })
30
30
  });
31
- };
31
+ }
32
32
 
33
33
  exports.MonthPage = MonthPage;
@@ -2,12 +2,11 @@
2
2
 
3
3
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
4
4
  var core = require('@react-fabric/core');
5
- var classNames = require('classnames');
5
+ var utilities = require('@react-fabric/utilities');
6
6
  var react = require('react');
7
- var Date_module = require('./Date.module.css');
8
7
  var jsxRuntime = require('react/jsx-runtime');
9
8
 
10
- var TimeSlider = function TimeSlider(_ref) {
9
+ function TimeSlider(_ref) {
11
10
  var _ref$hour = _ref.hour,
12
11
  hour = _ref$hour === void 0 ? 0 : _ref$hour,
13
12
  _ref$minute = _ref.minute,
@@ -15,28 +14,24 @@ var TimeSlider = function TimeSlider(_ref) {
15
14
  onTimeChange = _ref.onTimeChange;
16
15
  var hourRef = react.useRef(null);
17
16
  var minuteRef = react.useRef(null);
18
- var _useState = react.useState(hour),
19
- _useState2 = _slicedToArray(_useState, 2),
20
- h = _useState2[0],
21
- setH = _useState2[1];
22
- var _useState3 = react.useState(minute),
23
- _useState4 = _slicedToArray(_useState3, 2),
24
- m = _useState4[0],
25
- setM = _useState4[1];
26
- react.useEffect(function () {
27
- var _hourRef$current;
28
- setH(hour);
29
- (_hourRef$current = hourRef.current) === null || _hourRef$current === void 0 || (_hourRef$current = _hourRef$current.children.item(hour + 1)) === null || _hourRef$current === void 0 || _hourRef$current.scrollIntoView({
30
- block: "center"
31
- });
32
- }, [hour]);
33
- react.useEffect(function () {
34
- var _minuteRef$current;
35
- setM(minute);
36
- (_minuteRef$current = minuteRef.current) === null || _minuteRef$current === void 0 || (_minuteRef$current = _minuteRef$current.children.item(minute + 1)) === null || _minuteRef$current === void 0 || _minuteRef$current.scrollIntoView({
37
- block: "center"
38
- });
39
- }, [minute]);
17
+ var _usePropState = core.usePropState(hour, function (hr) {
18
+ var _hourRef$current;
19
+ return (_hourRef$current = hourRef.current) === null || _hourRef$current === void 0 || (_hourRef$current = _hourRef$current.children.item(hr + 1)) === null || _hourRef$current === void 0 ? void 0 : _hourRef$current.scrollIntoView({
20
+ block: "center"
21
+ });
22
+ }),
23
+ _usePropState2 = _slicedToArray(_usePropState, 2),
24
+ h = _usePropState2[0],
25
+ setH = _usePropState2[1];
26
+ var _usePropState3 = core.usePropState(minute, function (mn) {
27
+ var _minuteRef$current;
28
+ return (_minuteRef$current = minuteRef.current) === null || _minuteRef$current === void 0 || (_minuteRef$current = _minuteRef$current.children.item(mn + 1)) === null || _minuteRef$current === void 0 ? void 0 : _minuteRef$current.scrollIntoView({
29
+ block: "center"
30
+ });
31
+ }),
32
+ _usePropState4 = _slicedToArray(_usePropState3, 2),
33
+ m = _usePropState4[0],
34
+ setM = _usePropState4[1];
40
35
  var fireChange = core.useDebounce(onTimeChange, [onTimeChange]);
41
36
  var calculateTime = react.useCallback(function () {
42
37
  var _hourRef$current$scro, _hourRef$current2, _offsetHeight, _hourRef$current3, _minuteRef$current$sc, _minuteRef$current2, _offsetHeight2, _minuteRef$current3;
@@ -52,22 +47,22 @@ var TimeSlider = function TimeSlider(_ref) {
52
47
  hour: hour,
53
48
  minute: minute
54
49
  });
55
- }, [onTimeChange]);
50
+ }, [fireChange, setH, setM]);
56
51
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
57
- className: classNames("area-[time] flex flex-col flex-nowrap border-s border-s-tint-50 overflow-hidden bg-base"),
52
+ className: utilities.cn("area-[time] flex flex-col flex-nowrap border-s border-s-tint-50 overflow-hidden bg-default"),
58
53
  children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
59
54
  className: "flex",
60
55
  children: [/*#__PURE__*/jsxRuntime.jsx("div", {
61
- className: classNames(Date_module.dateHeader, "flex-1 font-medium text-muted text-sm p-1 mx-px text-center bg-tint-50"),
56
+ className: utilities.cn("fabric-dateHeader", "flex-1 font-medium text-muted text-sm p-1 mx-px text-center bg-tint-50"),
62
57
  children: "H"
63
58
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
64
- className: classNames(Date_module.dateHeader, "flex-1 font-medium text-muted text-sm p-1 mx-px text-center bg-tint-50"),
59
+ className: utilities.cn("fabric-dateHeader", "flex-1 font-medium text-muted text-sm p-1 mx-px text-center bg-tint-50"),
65
60
  children: "M"
66
61
  })]
67
62
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
68
- className: "flex flex-1 flex-nowrap overflow-hidden relative",
63
+ className: "flex flex-1 flex-nowrap items-stretch overflow-hidden relative",
69
64
  children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
70
- className: classNames("flex-1 overflow-auto scroll-hide snap-y snap-mandatory", Date_module.timeSlider),
65
+ className: utilities.cn("flex-1 overflow-auto scroll-hide snap-y snap-mandatory", "fabric-date-timeSlider"),
71
66
  onScroll: calculateTime,
72
67
  ref: hourRef,
73
68
  children: [/*#__PURE__*/jsxRuntime.jsx("div", {
@@ -75,7 +70,10 @@ var TimeSlider = function TimeSlider(_ref) {
75
70
  }), Array(24).fill(0).map(function (_, i) {
76
71
  return /*#__PURE__*/jsxRuntime.jsx("div", {
77
72
  role: "none",
78
- className: classNames("ps-2 pe-1 snap-center outline outline-muted", i === h && "font-medium text-primary-600"),
73
+ className: utilities.cn("ps-2 pe-1 snap-center outline outline-muted", i === h && "font-medium text-primary-600")
74
+ // eslint-disable-next-line @eslint-react/no-array-index-key
75
+ ,
76
+
79
77
  "data-skew": i === h - 5 || i === h + 5 ? 5 : i === h - 4 || i === h + 4 ? 4 : i === h - 3 || i === h + 3 ? 3 : i === h - 2 || i === h + 2 ? 2 : i === h - 1 || i === h + 1 ? 1 : undefined,
80
78
  "data-selected": i === h,
81
79
  onClick: function onClick(e) {
@@ -92,7 +90,7 @@ var TimeSlider = function TimeSlider(_ref) {
92
90
  className: "w-full"
93
91
  })]
94
92
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
95
- className: classNames("flex-1 overflow-auto scroll-hide snap-y snap-mandatory", Date_module.timeSlider),
93
+ className: utilities.cn("flex-1 overflow-auto scroll-hide snap-y snap-mandatory", "fabric-date-timeSlider"),
96
94
  onScroll: calculateTime,
97
95
  ref: minuteRef,
98
96
  children: [/*#__PURE__*/jsxRuntime.jsx("div", {
@@ -100,7 +98,10 @@ var TimeSlider = function TimeSlider(_ref) {
100
98
  }), Array(60).fill(0).map(function (_, i) {
101
99
  return /*#__PURE__*/jsxRuntime.jsx("div", {
102
100
  role: "none",
103
- className: classNames("ps-1 pe-2 snap-center outline outline-muted", i === m && "font-medium text-primary-600"),
101
+ className: utilities.cn("ps-1 pe-2 snap-center outline outline-muted", i === m && "font-medium text-primary-600")
102
+ // eslint-disable-next-line @eslint-react/no-array-index-key
103
+ ,
104
+
104
105
  "data-skew": i === m - 5 || i === m + 5 ? 5 : i === m - 4 || i === m + 4 ? 4 : i === m - 3 || i === m + 3 ? 3 : i === m - 2 || i === m + 2 ? 2 : i === m - 1 || i === m + 1 ? 1 : undefined,
105
106
  "data-selected": i === m,
106
107
  onClick: function onClick(e) {
@@ -126,6 +127,6 @@ var TimeSlider = function TimeSlider(_ref) {
126
127
  })]
127
128
  })]
128
129
  });
129
- };
130
+ }
130
131
 
131
132
  exports.TimeSlider = TimeSlider;
@@ -9,9 +9,9 @@ var jsxRuntime = require('react/jsx-runtime');
9
9
 
10
10
  var _excluded = ["pageDate", "isHijri"];
11
11
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
13
  var cols = [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
14
- var YearPage = function YearPage(_ref) {
14
+ function YearPage(_ref) {
15
15
  var pageDate = _ref.pageDate,
16
16
  isHijri = _ref.isHijri,
17
17
  props = _objectWithoutProperties(_ref, _excluded);
@@ -29,6 +29,6 @@ var YearPage = function YearPage(_ref) {
29
29
  }, props), col);
30
30
  })
31
31
  });
32
- };
32
+ }
33
33
 
34
34
  exports.YearPage = YearPage;
@@ -3,33 +3,50 @@
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
4
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
5
5
  var core = require('@react-fabric/core');
6
+ var utilities = require('@react-fabric/utilities');
6
7
  var dateUtil = require('../utils/dateUtil.js');
7
8
  var jsxRuntime = require('react/jsx-runtime');
8
9
 
9
- var _excluded = ["date", "className", "format", "children"];
10
+ var _excluded = ["date", "className", "format", "children", "showAlternateDate"];
10
11
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12
- var DateDisplay = function DateDisplay(_ref) {
12
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
+ /**
14
+ * DateDisplay component to display a formatted gregorian or hijri date with optional tooltip and dropdown.
15
+ * It uses the current calendar and locale from the global context.
16
+ * It formats the date using the provided format or a default format.
17
+ * If `showAlternateDate` is true, it shows a tooltip with the formatted date.
18
+ * If `children` are provided, it wraps the date in a dropdown.
19
+ *
20
+ * @example
21
+ * ```jsx
22
+ * <DateDisplay date={new Date()} />
23
+ * ```
24
+ */
25
+ function DateDisplay(_ref) {
13
26
  var date = _ref.date,
14
27
  className = _ref.className,
15
28
  _ref$format = _ref.format,
16
29
  format = _ref$format === void 0 ? "eee, PPpp" : _ref$format,
17
30
  children = _ref.children,
31
+ showAlternateDate = _ref.showAlternateDate,
18
32
  aria = _objectWithoutProperties(_ref, _excluded);
19
- var _useGlobals = core.useGlobals(),
20
- currentCalendar = _useGlobals.currentCalendar,
21
- currentLocale = _useGlobals.currentLocale;
33
+ var _useApplicationContex = core.useApplicationContext(),
34
+ currentCalendar = _useApplicationContex.currentCalendar,
35
+ currentLocale = _useApplicationContex.currentLocale;
22
36
  var dtLabel = /*#__PURE__*/jsxRuntime.jsx(core.Tooltip, {
37
+ disabled: !showAlternateDate,
23
38
  content: dateUtil.DateUtil.format(date, format, currentLocale, currentCalendar !== "hijri"),
24
39
  children: /*#__PURE__*/jsxRuntime.jsx("span", _objectSpread(_objectSpread({
25
- className: className
40
+ className: utilities.cn(className, !!children && "underline decoration-dotted cursor-pointer")
26
41
  }, aria), {}, {
27
42
  children: dateUtil.DateUtil.format(date, format, currentLocale, currentCalendar === "hijri")
28
43
  }))
29
44
  });
30
45
  return children ? /*#__PURE__*/jsxRuntime.jsxs(core.Dropdown, {
46
+ showArrow: true,
47
+ closeOnClick: true,
31
48
  children: [dtLabel, children]
32
49
  }) : dtLabel;
33
- };
50
+ }
34
51
 
35
52
  exports.DateDisplay = DateDisplay;