musae 0.5.4 → 0.5.6

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 (205) hide show
  1. package/dist/components/calendar/calendar.cjs +12 -9
  2. package/dist/components/calendar/calendar.mjs +11 -8
  3. package/dist/components/calendar/context.cjs +18 -0
  4. package/dist/components/calendar/context.d.ts +16 -0
  5. package/dist/components/calendar/context.mjs +18 -0
  6. package/dist/components/calendar/contribution.cjs +23 -18
  7. package/dist/components/calendar/contribution.mjs +23 -18
  8. package/dist/components/calendar/hooks.cjs +15 -17
  9. package/dist/components/calendar/hooks.d.ts +6 -2
  10. package/dist/components/calendar/hooks.mjs +15 -17
  11. package/dist/components/cascader/cascader.cjs +5 -5
  12. package/dist/components/cascader/cascader.mjs +5 -5
  13. package/dist/components/cascader/context.cjs +10 -0
  14. package/dist/components/cascader/context.d.ts +8 -0
  15. package/dist/components/cascader/context.mjs +10 -0
  16. package/dist/components/collapse/collapse.cjs +6 -6
  17. package/dist/components/collapse/collapse.mjs +6 -6
  18. package/dist/components/collapse/context.cjs +13 -1
  19. package/dist/components/collapse/context.d.ts +13 -1
  20. package/dist/components/collapse/context.mjs +13 -2
  21. package/dist/components/collapse/item.cjs +7 -10
  22. package/dist/components/collapse/item.mjs +7 -10
  23. package/dist/components/dialog/context.cjs +14 -0
  24. package/dist/components/dialog/context.d.ts +12 -0
  25. package/dist/components/dialog/context.mjs +14 -0
  26. package/dist/components/dialog/popup.cjs +10 -10
  27. package/dist/components/dialog/popup.mjs +9 -9
  28. package/dist/components/divider/context.cjs +10 -0
  29. package/dist/components/divider/context.d.ts +8 -0
  30. package/dist/components/divider/context.mjs +10 -0
  31. package/dist/components/divider/divider.cjs +6 -6
  32. package/dist/components/divider/divider.mjs +5 -5
  33. package/dist/components/drawer/context.cjs +13 -0
  34. package/dist/components/drawer/context.d.ts +11 -0
  35. package/dist/components/drawer/context.mjs +13 -0
  36. package/dist/components/drawer/popup.cjs +9 -9
  37. package/dist/components/drawer/popup.mjs +8 -8
  38. package/dist/components/empty/context.cjs +10 -0
  39. package/dist/components/empty/context.d.ts +8 -0
  40. package/dist/components/empty/context.mjs +10 -0
  41. package/dist/components/empty/empty.cjs +10 -7
  42. package/dist/components/empty/empty.d.ts +2 -1
  43. package/dist/components/empty/empty.mjs +10 -7
  44. package/dist/components/form/context.cjs +17 -4
  45. package/dist/components/form/context.d.ts +15 -3
  46. package/dist/components/form/context.mjs +16 -2
  47. package/dist/components/form/field/error.cjs +5 -5
  48. package/dist/components/form/field/error.mjs +5 -5
  49. package/dist/components/form/field/field.cjs +7 -7
  50. package/dist/components/form/field/field.mjs +6 -6
  51. package/dist/components/form/field/layout.cjs +8 -8
  52. package/dist/components/form/field/layout.mjs +7 -7
  53. package/dist/components/form/form.cjs +12 -7
  54. package/dist/components/form/form.mjs +11 -6
  55. package/dist/components/form/item.cjs +8 -8
  56. package/dist/components/form/item.mjs +6 -6
  57. package/dist/components/grid/col.cjs +9 -7
  58. package/dist/components/grid/col.d.ts +2 -2
  59. package/dist/components/grid/col.mjs +10 -8
  60. package/dist/components/grid/context.cjs +16 -0
  61. package/dist/components/grid/context.d.ts +14 -0
  62. package/dist/components/grid/context.mjs +15 -0
  63. package/dist/components/grid/index.d.ts +1 -1
  64. package/dist/components/grid/row.cjs +12 -8
  65. package/dist/components/grid/row.mjs +11 -7
  66. package/dist/components/guideline/context.d.ts +10 -0
  67. package/dist/components/icon/context.cjs +9 -0
  68. package/dist/components/icon/context.d.ts +7 -0
  69. package/dist/components/icon/context.mjs +9 -0
  70. package/dist/components/icon/icon.cjs +5 -5
  71. package/dist/components/icon/icon.mjs +4 -4
  72. package/dist/components/icon/icons/action/index.cjs +1 -21
  73. package/dist/components/icon/icons/action/index.d.ts +0 -19
  74. package/dist/components/icon/icons/action/index.mjs +16 -37
  75. package/dist/components/icon/icons/alert/index.cjs +1 -12
  76. package/dist/components/icon/icons/alert/index.d.ts +0 -10
  77. package/dist/components/icon/icons/alert/index.mjs +7 -19
  78. package/dist/components/icon/icons/content/index.cjs +1 -10
  79. package/dist/components/icon/icons/content/index.d.ts +0 -8
  80. package/dist/components/icon/icons/content/index.mjs +5 -15
  81. package/dist/components/icon/icons/editor/index.cjs +1 -15
  82. package/dist/components/icon/icons/editor/index.d.ts +0 -13
  83. package/dist/components/icon/icons/editor/index.mjs +10 -25
  84. package/dist/components/icon/icons/hardware/index.cjs +1 -11
  85. package/dist/components/icon/icons/hardware/index.d.ts +0 -9
  86. package/dist/components/icon/icons/hardware/index.mjs +6 -17
  87. package/dist/components/icon/icons/home/index.d.ts +0 -4
  88. package/dist/components/icon/icons/image/index.cjs +1 -16
  89. package/dist/components/icon/icons/image/index.d.ts +0 -14
  90. package/dist/components/icon/icons/image/index.mjs +11 -27
  91. package/dist/components/icon/icons/mock/index.cjs +1 -7
  92. package/dist/components/icon/icons/mock/index.d.ts +0 -5
  93. package/dist/components/icon/icons/mock/index.mjs +2 -9
  94. package/dist/components/icon/icons/navigation/index.cjs +1 -10
  95. package/dist/components/icon/icons/navigation/index.d.ts +0 -8
  96. package/dist/components/icon/icons/navigation/index.mjs +5 -15
  97. package/dist/components/icon/icons/toggle/index.cjs +1 -8
  98. package/dist/components/icon/icons/toggle/index.d.ts +0 -6
  99. package/dist/components/icon/icons/toggle/index.mjs +3 -11
  100. package/dist/components/image/context.cjs +9 -0
  101. package/dist/components/image/context.d.ts +7 -0
  102. package/dist/components/image/context.mjs +9 -0
  103. package/dist/components/image/image.cjs +13 -6
  104. package/dist/components/image/image.mjs +11 -4
  105. package/dist/components/input/context.cjs +12 -0
  106. package/dist/components/input/context.d.ts +10 -0
  107. package/dist/components/input/context.mjs +12 -0
  108. package/dist/components/input/input.cjs +6 -6
  109. package/dist/components/input/input.mjs +5 -5
  110. package/dist/components/loading/context.cjs +12 -0
  111. package/dist/components/loading/context.d.ts +10 -0
  112. package/dist/components/loading/context.mjs +12 -0
  113. package/dist/components/loading/loading.cjs +8 -8
  114. package/dist/components/loading/loading.mjs +7 -7
  115. package/dist/components/picker/context.cjs +7 -0
  116. package/dist/components/picker/context.d.ts +6 -0
  117. package/dist/components/picker/context.mjs +7 -1
  118. package/dist/components/picker/picker.cjs +5 -7
  119. package/dist/components/picker/picker.mjs +5 -7
  120. package/dist/components/popper/context.cjs +10 -0
  121. package/dist/components/popper/context.d.ts +8 -0
  122. package/dist/components/popper/context.mjs +10 -0
  123. package/dist/components/popper/dropdown.cjs +6 -6
  124. package/dist/components/popper/dropdown.mjs +5 -5
  125. package/dist/components/radio/context.cjs +9 -3
  126. package/dist/components/radio/context.d.ts +8 -2
  127. package/dist/components/radio/context.mjs +8 -1
  128. package/dist/components/radio/group.cjs +1 -1
  129. package/dist/components/radio/group.mjs +1 -1
  130. package/dist/components/radio/radio.cjs +4 -5
  131. package/dist/components/radio/radio.mjs +4 -5
  132. package/dist/components/rich-text-editor/context.d.ts +6 -6
  133. package/dist/components/rich-text-editor/index.cjs +37 -0
  134. package/dist/components/rich-text-editor/index.d.ts +15 -1
  135. package/dist/components/rich-text-editor/index.mjs +36 -0
  136. package/dist/components/rich-text-editor/plugins/toolbar/index.cjs +1 -1
  137. package/dist/components/rich-text-editor/plugins/toolbar/index.mjs +1 -1
  138. package/dist/components/rich-text-editor/rich-text-editor.mjs +1 -1
  139. package/dist/components/select/context.cjs +9 -0
  140. package/dist/components/select/context.d.ts +7 -0
  141. package/dist/components/select/context.mjs +9 -0
  142. package/dist/components/select/select.cjs +5 -5
  143. package/dist/components/select/select.mjs +4 -4
  144. package/dist/components/steps/context.cjs +18 -1
  145. package/dist/components/steps/context.d.ts +18 -1
  146. package/dist/components/steps/context.mjs +18 -2
  147. package/dist/components/steps/item.cjs +7 -9
  148. package/dist/components/steps/item.mjs +7 -9
  149. package/dist/components/steps/steps.cjs +7 -7
  150. package/dist/components/steps/steps.mjs +7 -7
  151. package/dist/components/table/body.cjs +5 -7
  152. package/dist/components/table/body.mjs +3 -5
  153. package/dist/components/table/context.cjs +9 -4
  154. package/dist/components/table/context.d.ts +12 -3
  155. package/dist/components/table/context.mjs +8 -2
  156. package/dist/components/table/header/cell.cjs +3 -3
  157. package/dist/components/table/header/cell.mjs +5 -5
  158. package/dist/components/table/header/header.cjs +3 -5
  159. package/dist/components/table/header/header.mjs +3 -5
  160. package/dist/components/table/hooks.cjs +5 -3
  161. package/dist/components/table/hooks.d.ts +6 -2
  162. package/dist/components/table/hooks.mjs +5 -3
  163. package/dist/components/table/table.cjs +7 -7
  164. package/dist/components/table/table.mjs +6 -6
  165. package/dist/components/tag/context.cjs +9 -0
  166. package/dist/components/tag/context.d.ts +7 -0
  167. package/dist/components/tag/context.mjs +9 -0
  168. package/dist/components/tag/tag.cjs +5 -5
  169. package/dist/components/tag/tag.mjs +4 -4
  170. package/dist/components/timeline/context.cjs +16 -1
  171. package/dist/components/timeline/context.d.ts +16 -1
  172. package/dist/components/timeline/context.mjs +16 -2
  173. package/dist/components/timeline/item.cjs +8 -10
  174. package/dist/components/timeline/item.mjs +8 -10
  175. package/dist/components/timeline/timeline.cjs +6 -6
  176. package/dist/components/timeline/timeline.mjs +7 -7
  177. package/dist/components/transfer/context.cjs +16 -1
  178. package/dist/components/transfer/context.d.ts +16 -1
  179. package/dist/components/transfer/context.mjs +16 -2
  180. package/dist/components/transfer/item.cjs +4 -4
  181. package/dist/components/transfer/item.mjs +5 -5
  182. package/dist/components/transfer/list.cjs +6 -8
  183. package/dist/components/transfer/list.mjs +6 -8
  184. package/dist/components/transfer/transfer.cjs +8 -8
  185. package/dist/components/transfer/transfer.mjs +8 -8
  186. package/dist/components/upload/context.cjs +12 -1
  187. package/dist/components/upload/context.d.ts +14 -2
  188. package/dist/components/upload/context.mjs +12 -2
  189. package/dist/components/upload/upload.cjs +9 -7
  190. package/dist/components/upload/upload.d.ts +1 -1
  191. package/dist/components/upload/upload.mjs +10 -8
  192. package/dist/components/upload/uploaded-item.cjs +3 -6
  193. package/dist/components/upload/uploaded-item.mjs +3 -6
  194. package/dist/components/upload/uploaded-list.cjs +3 -5
  195. package/dist/components/upload/uploaded-list.mjs +3 -5
  196. package/dist/hooks/use-class-names.d.ts +0 -141
  197. package/dist/index.cjs +2 -2
  198. package/dist/index.mjs +1 -1
  199. package/dist/types/empty.d.ts +7 -0
  200. package/dist/types/grid.d.ts +9 -3
  201. package/dist/types/upload.d.ts +3 -2
  202. package/dist/utils/class-name.cjs +1 -178
  203. package/dist/utils/class-name.d.ts +0 -412
  204. package/dist/utils/class-name.mjs +2 -179
  205. package/package.json +8 -1
@@ -3,13 +3,13 @@ Object.defineProperty(exports, '__esModule', { value: true });
3
3
  var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
4
4
  var React = require('react');
5
5
  var hooks = require('./hooks.cjs');
6
- var useClassNames = require('../../hooks/use-class-names.cjs');
7
- var className$1 = require('../../utils/class-name.cjs');
6
+ var useClassNames_component = require('../../hooks/use-class-names.component.cjs');
8
7
  var stylex = require('../../node_modules/.pnpm/@stylexjs_stylex@0.8.0/node_modules/@stylexjs/stylex/lib/es/stylex.cjs');
9
8
  var theme = require('../theme/theme.cjs');
10
9
  var className = require('@aiszlab/relax/class-name');
11
10
  var hooks$1 = require('../theme/hooks.cjs');
12
11
  var iconButton = require('../icon-button/icon-button.cjs');
12
+ var context = require('./context.cjs');
13
13
  var keyboardDoubleArrowLeft = require('../icon/icons/hardware/keyboard-double-arrow-left.cjs');
14
14
  var keyboardDoubleArrowRight = require('../icon/icons/hardware/keyboard-double-arrow-right.cjs');
15
15
  var keyboardArrowLeft = require('../icon/icons/hardware/keyboard-arrow-left.cjs');
@@ -34,11 +34,12 @@ var styles = {
34
34
  }
35
35
  };
36
36
  var Calendar = function Calendar(_ref) {
37
- var className$2 = _ref.className,
37
+ var className$1 = _ref.className,
38
38
  style = _ref.style,
39
39
  value = _ref.value,
40
40
  _onClick = _ref.onClick,
41
41
  _focusedAt = _ref.focusedAt;
42
+ var classNames = useClassNames_component.useClassNames(context.CLASS_NAMES);
42
43
  var _useValue = hooks.useValue({
43
44
  onClick: _onClick,
44
45
  value: value
@@ -56,10 +57,12 @@ var Calendar = function Calendar(_ref) {
56
57
  var dateCells = hooks.useDateCells({
57
58
  timespan: timespan,
58
59
  focusedAt: focusedAt,
59
- click: onClick
60
+ click: onClick,
61
+ classNames: classNames
62
+ });
63
+ var headCells = hooks.useHeadCells({
64
+ classNames: classNames
60
65
  });
61
- var headCells = hooks.useHeadCells();
62
- var classNames = useClassNames.useClassNames("calendar");
63
66
  var theme$1 = hooks$1.useTheme();
64
67
  var styled = {
65
68
  calendar: {
@@ -76,10 +79,10 @@ var Calendar = function Calendar(_ref) {
76
79
  }
77
80
  };
78
81
  return /*#__PURE__*/React.createElement("div", {
79
- className: className.stringify(styled.calendar.className, className$2),
82
+ className: className.stringify(classNames.calendar, styled.calendar.className, className$1),
80
83
  style: _objectSpread(_objectSpread({}, styled.calendar.style), style)
81
84
  }, /*#__PURE__*/React.createElement("header", {
82
- className: className.stringify(classNames[className$1.CalendarClassToken.Header], styled.header.className),
85
+ className: className.stringify(classNames.header, styled.header.className),
83
86
  style: styled.header.style
84
87
  }, /*#__PURE__*/React.createElement(iconButton.default, {
85
88
  variant: "text",
@@ -88,7 +91,7 @@ var Calendar = function Calendar(_ref) {
88
91
  variant: "text",
89
92
  onClick: toPrevMonth
90
93
  }, /*#__PURE__*/React.createElement(keyboardArrowLeft.default, null)), /*#__PURE__*/React.createElement("span", {
91
- className: className.stringify(classNames[className$1.CalendarClassToken.Heading], styled.heading.className),
94
+ className: className.stringify(classNames.heading, styled.heading.className),
92
95
  style: styled.heading.style
93
96
  }, focusedAt.format("YYYY-MM")), /*#__PURE__*/React.createElement(iconButton.default, {
94
97
  variant: "text",
@@ -1,13 +1,13 @@
1
1
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
2
  import React from 'react';
3
3
  import { useValue, useFocusedAt, useDateCells, useHeadCells } from './hooks.mjs';
4
- import { useClassNames } from '../../hooks/use-class-names.mjs';
5
- import { CalendarClassToken } from '../../utils/class-name.mjs';
4
+ import { useClassNames } from '../../hooks/use-class-names.component.mjs';
6
5
  import _stylex from '../../node_modules/.pnpm/@stylexjs_stylex@0.8.0/node_modules/@stylexjs/stylex/lib/es/stylex.mjs';
7
6
  import { typography } from '../theme/theme.mjs';
8
7
  import { stringify } from '@aiszlab/relax/class-name';
9
8
  import { useTheme } from '../theme/hooks.mjs';
10
9
  import IconButton from '../icon-button/icon-button.mjs';
10
+ import { CLASS_NAMES } from './context.mjs';
11
11
  import KeyboardDoubleArrowLeft from '../icon/icons/hardware/keyboard-double-arrow-left.mjs';
12
12
  import KeyboardDoubleArrowRight from '../icon/icons/hardware/keyboard-double-arrow-right.mjs';
13
13
  import KeyboardArrowLeft from '../icon/icons/hardware/keyboard-arrow-left.mjs';
@@ -37,6 +37,7 @@ var Calendar = function Calendar(_ref) {
37
37
  value = _ref.value,
38
38
  _onClick = _ref.onClick,
39
39
  _focusedAt = _ref.focusedAt;
40
+ var classNames = useClassNames(CLASS_NAMES);
40
41
  var _useValue = useValue({
41
42
  onClick: _onClick,
42
43
  value: value
@@ -54,10 +55,12 @@ var Calendar = function Calendar(_ref) {
54
55
  var dateCells = useDateCells({
55
56
  timespan: timespan,
56
57
  focusedAt: focusedAt,
57
- click: onClick
58
+ click: onClick,
59
+ classNames: classNames
60
+ });
61
+ var headCells = useHeadCells({
62
+ classNames: classNames
58
63
  });
59
- var headCells = useHeadCells();
60
- var classNames = useClassNames("calendar");
61
64
  var theme = useTheme();
62
65
  var styled = {
63
66
  calendar: {
@@ -74,10 +77,10 @@ var Calendar = function Calendar(_ref) {
74
77
  }
75
78
  };
76
79
  return /*#__PURE__*/React.createElement("div", {
77
- className: stringify(styled.calendar.className, className),
80
+ className: stringify(classNames.calendar, styled.calendar.className, className),
78
81
  style: _objectSpread(_objectSpread({}, styled.calendar.style), style)
79
82
  }, /*#__PURE__*/React.createElement("header", {
80
- className: stringify(classNames[CalendarClassToken.Header], styled.header.className),
83
+ className: stringify(classNames.header, styled.header.className),
81
84
  style: styled.header.style
82
85
  }, /*#__PURE__*/React.createElement(IconButton, {
83
86
  variant: "text",
@@ -86,7 +89,7 @@ var Calendar = function Calendar(_ref) {
86
89
  variant: "text",
87
90
  onClick: toPrevMonth
88
91
  }, /*#__PURE__*/React.createElement(KeyboardArrowLeft, null)), /*#__PURE__*/React.createElement("span", {
89
- className: stringify(classNames[CalendarClassToken.Heading], styled.heading.className),
92
+ className: stringify(classNames.heading, styled.heading.className),
90
93
  style: styled.heading.style
91
94
  }, focusedAt.format("YYYY-MM")), /*#__PURE__*/React.createElement(IconButton, {
92
95
  variant: "text",
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @description
3
+ * class names
4
+ */
5
+ var CLASS_NAMES = {
6
+ calendar: "calendar",
7
+ header: "calendar__header",
8
+ heading: "calendar__heading",
9
+ headCell: "calendar__head-cell",
10
+ dateCell: "calendar__date-cell",
11
+ dateCellSelected: "calendar__date-cell--selected",
12
+ dateCellInRange: "calendar__date--in-range",
13
+ dateCellRangeFrom: "calendar__date--range-from",
14
+ dateCellRangeTo: "calendar__date--range-to",
15
+ date: "calendar__date"
16
+ };
17
+
18
+ exports.CLASS_NAMES = CLASS_NAMES;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @description
3
+ * class names
4
+ */
5
+ export declare const CLASS_NAMES: {
6
+ readonly calendar: "calendar";
7
+ readonly header: "calendar__header";
8
+ readonly heading: "calendar__heading";
9
+ readonly headCell: "calendar__head-cell";
10
+ readonly dateCell: "calendar__date-cell";
11
+ readonly dateCellSelected: "calendar__date-cell--selected";
12
+ readonly dateCellInRange: "calendar__date--in-range";
13
+ readonly dateCellRangeFrom: "calendar__date--range-from";
14
+ readonly dateCellRangeTo: "calendar__date--range-to";
15
+ readonly date: "calendar__date";
16
+ };
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @description
3
+ * class names
4
+ */
5
+ var CLASS_NAMES = {
6
+ calendar: "calendar",
7
+ header: "calendar__header",
8
+ heading: "calendar__heading",
9
+ headCell: "calendar__head-cell",
10
+ dateCell: "calendar__date-cell",
11
+ dateCellSelected: "calendar__date-cell--selected",
12
+ dateCellInRange: "calendar__date--in-range",
13
+ dateCellRangeFrom: "calendar__date--range-from",
14
+ dateCellRangeTo: "calendar__date--range-to",
15
+ date: "calendar__date"
16
+ };
17
+
18
+ export { CLASS_NAMES };
@@ -235,19 +235,24 @@ var ContributionCalendar = function ContributionCalendar(_ref) {
235
235
  // how to get different levels
236
236
  // convert primary color into hsla color
237
237
  // use `s` change to get different levels
238
- var _hexToHsla = color.hexToHsla(theme$1.colors.primary),
239
- h = _hexToHsla[0];
240
- var _levels = Array.from({
241
- length: levels - 1
242
- }).map(function (_, index) {
243
- return gap * index;
244
- });
245
- var heatStep = Math.floor(100 / Math.max(_levels.length, 1));
246
- var _heats = Array.from({
247
- length: levels
248
- }).map(function (_, index) {
249
- return "hsl(".concat([h, index * heatStep + "%", "80%"].join(","), ")");
250
- });
238
+ var heats = React.useMemo(function () {
239
+ var _hexToHsla = color.hexToHsla(theme$1.colors.primary),
240
+ h = _hexToHsla[0];
241
+ var _levels = Array.from({
242
+ length: levels - 1
243
+ }).map(function (_, index) {
244
+ return gap * index;
245
+ });
246
+ var heatStep = Math.min(Math.floor(100 / Math.max(_levels.length, 1)), 10);
247
+ return Array.from({
248
+ length: levels
249
+ }).map(function (_, index) {
250
+ if (index === 0) {
251
+ return "hsl(".concat(h, ", 0%, 80%)");
252
+ }
253
+ return "hsl(".concat([h, 100 - (levels - 1 - index) * heatStep + "%", "80%"].join(","), ")");
254
+ });
255
+ }, [theme$1.colors.primary, levels, gap]);
251
256
  return /*#__PURE__*/React.createElement("div", {
252
257
  className: styled.scrollable.className,
253
258
  style: styled.scrollable.style
@@ -291,8 +296,8 @@ var ContributionCalendar = function ContributionCalendar(_ref) {
291
296
  length: columns
292
297
  }).map(function (_, column) {
293
298
  var _contributions$get;
294
- var gap = column * 7 + weekday;
295
- var _at = start.add(gap, "day");
299
+ // get cell date: `start` plus `x * 7 + y`
300
+ var _at = start.add(column * 7 + weekday, "day");
296
301
  if (column === 0 && _at.isBefore(from)) {
297
302
  return /*#__PURE__*/React.createElement("td", {
298
303
  key: column
@@ -305,14 +310,14 @@ var ContributionCalendar = function ContributionCalendar(_ref) {
305
310
  }
306
311
  var date = _at.format(FORMAT);
307
312
  var count = (_contributions$get = _contributions.get(date)) !== null && _contributions$get !== void 0 ? _contributions$get : 0;
308
- var levelAt = relax.clamp(Math.ceil(count / gap), 0, levels);
313
+ var levelAt = relax.clamp(Math.ceil(count / gap), 0, levels - 1);
309
314
  return /*#__PURE__*/React.createElement(tooltip.default, {
310
315
  key: column,
311
316
  title: relax.toFunction(locale.contribution)(count, date)
312
317
  }, /*#__PURE__*/React.createElement("td", {
313
318
  className: styled.cell.className,
314
319
  style: _objectSpread(_objectSpread({}, styled.cell.style), {}, {
315
- backgroundColor: _heats[levelAt]
320
+ backgroundColor: heats[levelAt]
316
321
  })
317
322
  }));
318
323
  }));
@@ -322,7 +327,7 @@ var ContributionCalendar = function ContributionCalendar(_ref) {
322
327
  }, /*#__PURE__*/React.createElement("div", {
323
328
  className: styled.levels.className,
324
329
  style: styled.levels.style
325
- }, /*#__PURE__*/React.createElement("span", null, locale.less), _heats.map(function (color) {
330
+ }, /*#__PURE__*/React.createElement("span", null, locale.less), heats.map(function (color) {
326
331
  return /*#__PURE__*/React.createElement("div", {
327
332
  className: styled.level.className,
328
333
  key: color,
@@ -233,19 +233,24 @@ var ContributionCalendar = function ContributionCalendar(_ref) {
233
233
  // how to get different levels
234
234
  // convert primary color into hsla color
235
235
  // use `s` change to get different levels
236
- var _hexToHsla = hexToHsla(theme.colors.primary),
237
- h = _hexToHsla[0];
238
- var _levels = Array.from({
239
- length: levels - 1
240
- }).map(function (_, index) {
241
- return gap * index;
242
- });
243
- var heatStep = Math.floor(100 / Math.max(_levels.length, 1));
244
- var _heats = Array.from({
245
- length: levels
246
- }).map(function (_, index) {
247
- return "hsl(".concat([h, index * heatStep + "%", "80%"].join(","), ")");
248
- });
236
+ var heats = useMemo(function () {
237
+ var _hexToHsla = hexToHsla(theme.colors.primary),
238
+ h = _hexToHsla[0];
239
+ var _levels = Array.from({
240
+ length: levels - 1
241
+ }).map(function (_, index) {
242
+ return gap * index;
243
+ });
244
+ var heatStep = Math.min(Math.floor(100 / Math.max(_levels.length, 1)), 10);
245
+ return Array.from({
246
+ length: levels
247
+ }).map(function (_, index) {
248
+ if (index === 0) {
249
+ return "hsl(".concat(h, ", 0%, 80%)");
250
+ }
251
+ return "hsl(".concat([h, 100 - (levels - 1 - index) * heatStep + "%", "80%"].join(","), ")");
252
+ });
253
+ }, [theme.colors.primary, levels, gap]);
249
254
  return /*#__PURE__*/React.createElement("div", {
250
255
  className: styled.scrollable.className,
251
256
  style: styled.scrollable.style
@@ -289,8 +294,8 @@ var ContributionCalendar = function ContributionCalendar(_ref) {
289
294
  length: columns
290
295
  }).map(function (_, column) {
291
296
  var _contributions$get;
292
- var gap = column * 7 + weekday;
293
- var _at = start.add(gap, "day");
297
+ // get cell date: `start` plus `x * 7 + y`
298
+ var _at = start.add(column * 7 + weekday, "day");
294
299
  if (column === 0 && _at.isBefore(from)) {
295
300
  return /*#__PURE__*/React.createElement("td", {
296
301
  key: column
@@ -303,14 +308,14 @@ var ContributionCalendar = function ContributionCalendar(_ref) {
303
308
  }
304
309
  var date = _at.format(FORMAT);
305
310
  var count = (_contributions$get = _contributions.get(date)) !== null && _contributions$get !== void 0 ? _contributions$get : 0;
306
- var levelAt = clamp(Math.ceil(count / gap), 0, levels);
311
+ var levelAt = clamp(Math.ceil(count / gap), 0, levels - 1);
307
312
  return /*#__PURE__*/React.createElement(Tooltip, {
308
313
  key: column,
309
314
  title: toFunction(locale.contribution)(count, date)
310
315
  }, /*#__PURE__*/React.createElement("td", {
311
316
  className: styled.cell.className,
312
317
  style: _objectSpread(_objectSpread({}, styled.cell.style), {}, {
313
- backgroundColor: _heats[levelAt]
318
+ backgroundColor: heats[levelAt]
314
319
  })
315
320
  }));
316
321
  }));
@@ -320,7 +325,7 @@ var ContributionCalendar = function ContributionCalendar(_ref) {
320
325
  }, /*#__PURE__*/React.createElement("div", {
321
326
  className: styled.levels.className,
322
327
  style: styled.levels.style
323
- }, /*#__PURE__*/React.createElement("span", null, locale.less), _heats.map(function (color) {
328
+ }, /*#__PURE__*/React.createElement("span", null, locale.less), heats.map(function (color) {
324
329
  return /*#__PURE__*/React.createElement("div", {
325
330
  className: styled.level.className,
326
331
  key: color,
@@ -3,8 +3,6 @@ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
3
3
  var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
4
4
  var dayjs = require('dayjs');
5
5
  var React = require('react');
6
- var useClassNames = require('../../hooks/use-class-names.cjs');
7
- var className$1 = require('../../utils/class-name.cjs');
8
6
  var relax = require('@aiszlab/relax');
9
7
  var timespan = require('../../utils/timespan.cjs');
10
8
  var className = require('@aiszlab/relax/class-name');
@@ -80,8 +78,8 @@ var styles = {
80
78
  * @description
81
79
  * head cells
82
80
  */
83
- var useHeadCells = function useHeadCells() {
84
- var classNames = useClassNames.useClassNames("calendar");
81
+ var useHeadCells = function useHeadCells(_ref) {
82
+ var classNames = _ref.classNames;
85
83
  var theme$1 = hooks.useTheme();
86
84
  return React.useMemo(function () {
87
85
  var _dayjs$Ls$dayjs$local;
@@ -91,7 +89,7 @@ var useHeadCells = function useHeadCells() {
91
89
  return (_dayjs$Ls$dayjs$local = dayjs.Ls[dayjs.locale()].weekdays) === null || _dayjs$Ls$dayjs$local === void 0 ? void 0 : _dayjs$Ls$dayjs$local.map(function (weekday, index) {
92
90
  return /*#__PURE__*/React.createElement("th", {
93
91
  key: index,
94
- className: className.stringify(classNames[className$1.CalendarClassToken.HeadCell], styled.className),
92
+ className: className.stringify(classNames.headCell, styled.className),
95
93
  style: styled.style
96
94
  }, weekday.charAt(0));
97
95
  });
@@ -101,11 +99,11 @@ var useHeadCells = function useHeadCells() {
101
99
  * @description
102
100
  * dates
103
101
  */
104
- var useDateCells = function useDateCells(_ref) {
105
- var timespan = _ref.timespan,
106
- focusedAt = _ref.focusedAt,
107
- click = _ref.click;
108
- var classNames = useClassNames.useClassNames("calendar");
102
+ var useDateCells = function useDateCells(_ref2) {
103
+ var timespan = _ref2.timespan,
104
+ focusedAt = _ref2.focusedAt,
105
+ click = _ref2.click,
106
+ classNames = _ref2.classNames;
109
107
  var theme$1 = hooks.useTheme();
110
108
  return React.useMemo(function () {
111
109
  var start = focusedAt.startOf("month");
@@ -133,14 +131,14 @@ var useDateCells = function useDateCells(_ref) {
133
131
  prev.at(prev.length - 1).push(/*#__PURE__*/React.createElement("td", {
134
132
  title: formatted,
135
133
  key: formatted,
136
- className: className.stringify(classNames[className$1.CalendarClassToken.DateCell], _objectSpread(_defineProperty({}, classNames[className$1.CalendarClassToken.DateCellSelected], isSelected), timespan.isRange && _defineProperty(_defineProperty(_defineProperty({}, classNames[className$1.CalendarClassToken.DateCellInRange], isBetween), classNames[className$1.CalendarClassToken.DateCellRangeFrom], isFrom), classNames[className$1.CalendarClassToken.DateCellRangeTo], isTo)), styled.cell.className),
134
+ className: className.stringify(classNames.dateCell, _objectSpread(_defineProperty({}, classNames.dateCellSelected, isSelected), timespan.isRange && _defineProperty(_defineProperty(_defineProperty({}, classNames.dateCellInRange, isBetween), classNames.dateCellRangeFrom, isFrom), classNames.dateCellRangeTo, isTo)), styled.cell.className),
137
135
  style: styled.cell.style,
138
136
  "aria-selected": isSelected,
139
137
  "aria-hidden": isDisabled
140
138
  }, /*#__PURE__*/React.createElement(iconButton.default, {
141
139
  variant: isSelected ? "filled" : "text",
142
140
  color: isSelected ? "primary" : "secondary",
143
- className: className.stringify(classNames[className$1.CalendarClassToken.Date], styled.trigger.className),
141
+ className: className.stringify(classNames.date, styled.trigger.className),
144
142
  style: styled.trigger.style,
145
143
  onClick: function onClick() {
146
144
  click(currentAt);
@@ -159,9 +157,9 @@ var useDateCells = function useDateCells(_ref) {
159
157
  * @description
160
158
  * time span
161
159
  */
162
- var useValue = function useValue(_ref3) {
163
- var _click = _ref3.onClick,
164
- value = _ref3.value;
160
+ var useValue = function useValue(_ref4) {
161
+ var _click = _ref4.onClick,
162
+ value = _ref4.value;
165
163
  /// change handler
166
164
  var onClick = React.useCallback(function (_value) {
167
165
  _click === null || _click === void 0 || _click(_value);
@@ -186,8 +184,8 @@ var useValue = function useValue(_ref3) {
186
184
  * @description
187
185
  * point at
188
186
  */
189
- var useFocusedAt = function useFocusedAt(_ref4) {
190
- var _focusedAt = _ref4.focusedAt;
187
+ var useFocusedAt = function useFocusedAt(_ref5) {
188
+ var _focusedAt = _ref5.focusedAt;
191
189
  var _useControlledState = relax.useControlledState(_focusedAt, {
192
190
  defaultState: dayjs()
193
191
  }),
@@ -2,19 +2,23 @@ import dayjs, { type Dayjs } from "dayjs";
2
2
  import React from "react";
3
3
  import { Timespan } from "../../utils/timespan";
4
4
  import type { CalendarProps } from "musae/types/calendar";
5
+ import type { CLASS_NAMES } from "./context";
5
6
  /**
6
7
  * @description
7
8
  * head cells
8
9
  */
9
- export declare const useHeadCells: () => React.JSX.Element[] | undefined;
10
+ export declare const useHeadCells: ({ classNames }: {
11
+ classNames: typeof CLASS_NAMES;
12
+ }) => React.JSX.Element[] | undefined;
10
13
  /**
11
14
  * @description
12
15
  * dates
13
16
  */
14
- export declare const useDateCells: ({ timespan, focusedAt, click, }: {
17
+ export declare const useDateCells: ({ timespan, focusedAt, click, classNames, }: {
15
18
  timespan: Timespan;
16
19
  focusedAt: Dayjs;
17
20
  click: Required<CalendarProps>["onClick"];
21
+ classNames: typeof CLASS_NAMES;
18
22
  }) => React.JSX.Element[];
19
23
  /**
20
24
  * @description
@@ -3,8 +3,6 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
3
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
4
4
  import dayjs from 'dayjs';
5
5
  import React, { useMemo, useCallback } from 'react';
6
- import { useClassNames } from '../../hooks/use-class-names.mjs';
7
- import { CalendarClassToken } from '../../utils/class-name.mjs';
8
6
  import { toArray, useControlledState } from '@aiszlab/relax';
9
7
  import { Timespan } from '../../utils/timespan.mjs';
10
8
  import { stringify } from '@aiszlab/relax/class-name';
@@ -80,8 +78,8 @@ var styles = {
80
78
  * @description
81
79
  * head cells
82
80
  */
83
- var useHeadCells = function useHeadCells() {
84
- var classNames = useClassNames("calendar");
81
+ var useHeadCells = function useHeadCells(_ref) {
82
+ var classNames = _ref.classNames;
85
83
  var theme = useTheme();
86
84
  return useMemo(function () {
87
85
  var _dayjs$Ls$dayjs$local;
@@ -91,7 +89,7 @@ var useHeadCells = function useHeadCells() {
91
89
  return (_dayjs$Ls$dayjs$local = dayjs.Ls[dayjs.locale()].weekdays) === null || _dayjs$Ls$dayjs$local === void 0 ? void 0 : _dayjs$Ls$dayjs$local.map(function (weekday, index) {
92
90
  return /*#__PURE__*/React.createElement("th", {
93
91
  key: index,
94
- className: stringify(classNames[CalendarClassToken.HeadCell], styled.className),
92
+ className: stringify(classNames.headCell, styled.className),
95
93
  style: styled.style
96
94
  }, weekday.charAt(0));
97
95
  });
@@ -101,11 +99,11 @@ var useHeadCells = function useHeadCells() {
101
99
  * @description
102
100
  * dates
103
101
  */
104
- var useDateCells = function useDateCells(_ref) {
105
- var timespan = _ref.timespan,
106
- focusedAt = _ref.focusedAt,
107
- click = _ref.click;
108
- var classNames = useClassNames("calendar");
102
+ var useDateCells = function useDateCells(_ref2) {
103
+ var timespan = _ref2.timespan,
104
+ focusedAt = _ref2.focusedAt,
105
+ click = _ref2.click,
106
+ classNames = _ref2.classNames;
109
107
  var theme = useTheme();
110
108
  return useMemo(function () {
111
109
  var start = focusedAt.startOf("month");
@@ -133,14 +131,14 @@ var useDateCells = function useDateCells(_ref) {
133
131
  prev.at(prev.length - 1).push(/*#__PURE__*/React.createElement("td", {
134
132
  title: formatted,
135
133
  key: formatted,
136
- className: stringify(classNames[CalendarClassToken.DateCell], _objectSpread(_defineProperty({}, classNames[CalendarClassToken.DateCellSelected], isSelected), timespan.isRange && _defineProperty(_defineProperty(_defineProperty({}, classNames[CalendarClassToken.DateCellInRange], isBetween), classNames[CalendarClassToken.DateCellRangeFrom], isFrom), classNames[CalendarClassToken.DateCellRangeTo], isTo)), styled.cell.className),
134
+ className: stringify(classNames.dateCell, _objectSpread(_defineProperty({}, classNames.dateCellSelected, isSelected), timespan.isRange && _defineProperty(_defineProperty(_defineProperty({}, classNames.dateCellInRange, isBetween), classNames.dateCellRangeFrom, isFrom), classNames.dateCellRangeTo, isTo)), styled.cell.className),
137
135
  style: styled.cell.style,
138
136
  "aria-selected": isSelected,
139
137
  "aria-hidden": isDisabled
140
138
  }, /*#__PURE__*/React.createElement(IconButton, {
141
139
  variant: isSelected ? "filled" : "text",
142
140
  color: isSelected ? "primary" : "secondary",
143
- className: stringify(classNames[CalendarClassToken.Date], styled.trigger.className),
141
+ className: stringify(classNames.date, styled.trigger.className),
144
142
  style: styled.trigger.style,
145
143
  onClick: function onClick() {
146
144
  click(currentAt);
@@ -159,9 +157,9 @@ var useDateCells = function useDateCells(_ref) {
159
157
  * @description
160
158
  * time span
161
159
  */
162
- var useValue = function useValue(_ref3) {
163
- var _click = _ref3.onClick,
164
- value = _ref3.value;
160
+ var useValue = function useValue(_ref4) {
161
+ var _click = _ref4.onClick,
162
+ value = _ref4.value;
165
163
  /// change handler
166
164
  var onClick = useCallback(function (_value) {
167
165
  _click === null || _click === void 0 || _click(_value);
@@ -186,8 +184,8 @@ var useValue = function useValue(_ref3) {
186
184
  * @description
187
185
  * point at
188
186
  */
189
- var useFocusedAt = function useFocusedAt(_ref4) {
190
- var _focusedAt = _ref4.focusedAt;
187
+ var useFocusedAt = function useFocusedAt(_ref5) {
188
+ var _focusedAt = _ref5.focusedAt;
191
189
  var _useControlledState = useControlledState(_focusedAt, {
192
190
  defaultState: dayjs()
193
191
  }),
@@ -8,9 +8,9 @@ var picker = require('../picker/picker.cjs');
8
8
  var tag = require('../tag/tag.cjs');
9
9
  var hooks = require('./hooks.cjs');
10
10
  var menu = require('../menu/menu.cjs');
11
- var useClassNames = require('../../hooks/use-class-names.cjs');
12
- var className$1 = require('../../utils/class-name.cjs');
11
+ var useClassNames_component = require('../../hooks/use-class-names.component.cjs');
13
12
  var className = require('@aiszlab/relax/class-name');
13
+ var context = require('./context.cjs');
14
14
 
15
15
  var _excluded = ["mode", "separator", "options", "complex"];
16
16
  var Cascader = function Cascader(_ref) {
@@ -26,7 +26,7 @@ var Cascader = function Cascader(_ref) {
26
26
  var _ref$current;
27
27
  return (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.close();
28
28
  }, []);
29
- var classNames = useClassNames.useClassNames("cascader");
29
+ var classNames = useClassNames_component.useClassNames(context.CLASS_NAMES);
30
30
  var _useOptions = hooks.useOptions([options]),
31
31
  readableOptions = _useOptions.readableOptions,
32
32
  readablePaths = _useOptions.readablePaths,
@@ -64,7 +64,7 @@ var Cascader = function Cascader(_ref) {
64
64
  className: "musaex-78zum5 musaex-1l2v28y musaex-1sq4p16"
65
65
  };
66
66
  return /*#__PURE__*/React.createElement("div", {
67
- className: className.stringify(classNames[className$1.CascaderClassToken.Options], styled.className),
67
+ className: className.stringify(classNames.options, styled.className),
68
68
  style: styled.style
69
69
  }, [presetedMenuItems].concat(_toConsumableArray(additionalMenusItems)).map(function (menuItems, index) {
70
70
  return /*#__PURE__*/React.createElement(menu.default, {
@@ -77,7 +77,7 @@ var Cascader = function Cascader(_ref) {
77
77
  return /*#__PURE__*/React.createElement(picker.default, {
78
78
  ref: ref,
79
79
  pickable: menus,
80
- className: classNames[className$1.CascaderClassToken.Cascader],
80
+ className: classNames.cascader,
81
81
  popupWidth: false
82
82
  }, inputed);
83
83
  };
@@ -6,9 +6,9 @@ import Picker from '../picker/picker.mjs';
6
6
  import Tag from '../tag/tag.mjs';
7
7
  import { useOptions, useValue } from './hooks.mjs';
8
8
  import Menu from '../menu/menu.mjs';
9
- import { useClassNames } from '../../hooks/use-class-names.mjs';
10
- import { CascaderClassToken } from '../../utils/class-name.mjs';
9
+ import { useClassNames } from '../../hooks/use-class-names.component.mjs';
11
10
  import { stringify } from '@aiszlab/relax/class-name';
11
+ import { CLASS_NAMES } from './context.mjs';
12
12
 
13
13
  var _excluded = ["mode", "separator", "options", "complex"];
14
14
  var Cascader = function Cascader(_ref) {
@@ -24,7 +24,7 @@ var Cascader = function Cascader(_ref) {
24
24
  var _ref$current;
25
25
  return (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.close();
26
26
  }, []);
27
- var classNames = useClassNames("cascader");
27
+ var classNames = useClassNames(CLASS_NAMES);
28
28
  var _useOptions = useOptions([options]),
29
29
  readableOptions = _useOptions.readableOptions,
30
30
  readablePaths = _useOptions.readablePaths,
@@ -62,7 +62,7 @@ var Cascader = function Cascader(_ref) {
62
62
  className: "musaex-78zum5 musaex-1l2v28y musaex-1sq4p16"
63
63
  };
64
64
  return /*#__PURE__*/React.createElement("div", {
65
- className: stringify(classNames[CascaderClassToken.Options], styled.className),
65
+ className: stringify(classNames.options, styled.className),
66
66
  style: styled.style
67
67
  }, [presetedMenuItems].concat(_toConsumableArray(additionalMenusItems)).map(function (menuItems, index) {
68
68
  return /*#__PURE__*/React.createElement(Menu, {
@@ -75,7 +75,7 @@ var Cascader = function Cascader(_ref) {
75
75
  return /*#__PURE__*/React.createElement(Picker, {
76
76
  ref: ref,
77
77
  pickable: menus,
78
- className: classNames[CascaderClassToken.Cascader],
78
+ className: classNames.cascader,
79
79
  popupWidth: false
80
80
  }, inputed);
81
81
  };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @description
3
+ * class names
4
+ */
5
+ var CLASS_NAMES = {
6
+ cascader: "cascader",
7
+ options: "cascader__options"
8
+ };
9
+
10
+ exports.CLASS_NAMES = CLASS_NAMES;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @description
3
+ * class names
4
+ */
5
+ export declare const CLASS_NAMES: {
6
+ readonly cascader: "cascader";
7
+ readonly options: "cascader__options";
8
+ };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @description
3
+ * class names
4
+ */
5
+ var CLASS_NAMES = {
6
+ cascader: "cascader",
7
+ options: "cascader__options"
8
+ };
9
+
10
+ export { CLASS_NAMES };