@veritone-ce/design-system 2.3.3 → 2.3.5

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 (67) hide show
  1. package/dist/cjs/Badge/index.js +5 -2
  2. package/dist/cjs/Badge/styles.module.scss.js +1 -1
  3. package/dist/cjs/Button/index.js +13 -8
  4. package/dist/cjs/Checkbox/index.js +18 -7
  5. package/dist/cjs/Checkbox/styles.module.scss.js +1 -1
  6. package/dist/cjs/Chip/styles.module.scss.js +1 -1
  7. package/dist/cjs/DatePicker/Calendar.js +150 -0
  8. package/dist/cjs/DatePicker/DateField.js +30 -0
  9. package/dist/cjs/DatePicker/index.js +122 -0
  10. package/dist/cjs/DatePicker/styles.module.scss.js +7 -0
  11. package/dist/cjs/DateRangePicker/index.js +41 -0
  12. package/dist/cjs/DateRangePicker/styles.module.scss.js +7 -0
  13. package/dist/cjs/Drawer/styles.module.scss.js +1 -1
  14. package/dist/cjs/FormControl/styles.module.scss.js +1 -1
  15. package/dist/cjs/Input/styles.module.scss.js +1 -1
  16. package/dist/cjs/Menu/controlled.js +36 -20
  17. package/dist/cjs/RadioButton/index.js +17 -8
  18. package/dist/cjs/RadioButton/styles.module.scss.js +1 -1
  19. package/dist/cjs/Select/styles.module.scss.js +1 -1
  20. package/dist/cjs/Textarea/styles.module.scss.js +1 -1
  21. package/dist/cjs/Tooltip/index.js +20 -6
  22. package/dist/cjs/Tooltip/styles.module.scss.js +1 -1
  23. package/dist/cjs/Typography/index.js +1 -1
  24. package/dist/cjs/index.js +26 -22
  25. package/dist/cjs/styles/defaultTheme.js +1 -1
  26. package/dist/cjs/styles.css +14 -12
  27. package/dist/esm/Badge/index.js +5 -2
  28. package/dist/esm/Badge/styles.module.scss.js +1 -1
  29. package/dist/esm/Button/index.js +13 -8
  30. package/dist/esm/Checkbox/index.js +18 -7
  31. package/dist/esm/Checkbox/styles.module.scss.js +1 -1
  32. package/dist/esm/Chip/styles.module.scss.js +1 -1
  33. package/dist/esm/DatePicker/Calendar.js +146 -0
  34. package/dist/esm/DatePicker/DateField.js +26 -0
  35. package/dist/esm/DatePicker/index.js +118 -0
  36. package/dist/esm/DatePicker/styles.module.scss.js +3 -0
  37. package/dist/esm/DateRangePicker/index.js +37 -0
  38. package/dist/esm/DateRangePicker/styles.module.scss.js +3 -0
  39. package/dist/esm/Drawer/styles.module.scss.js +1 -1
  40. package/dist/esm/FormControl/styles.module.scss.js +1 -1
  41. package/dist/esm/Input/styles.module.scss.js +1 -1
  42. package/dist/esm/Menu/controlled.js +37 -21
  43. package/dist/esm/RadioButton/index.js +17 -8
  44. package/dist/esm/RadioButton/styles.module.scss.js +1 -1
  45. package/dist/esm/Select/styles.module.scss.js +1 -1
  46. package/dist/esm/Textarea/styles.module.scss.js +1 -1
  47. package/dist/esm/Tooltip/index.js +21 -7
  48. package/dist/esm/Tooltip/styles.module.scss.js +1 -1
  49. package/dist/esm/Typography/index.js +1 -1
  50. package/dist/esm/index.js +2 -0
  51. package/dist/esm/styles/defaultTheme.js +1 -1
  52. package/dist/esm/styles.css +14 -12
  53. package/dist/types/Badge/index.d.ts +4 -1
  54. package/dist/types/Button/index.d.ts +14 -7
  55. package/dist/types/Checkbox/index.d.ts +12 -4
  56. package/dist/types/DatePicker/Calendar.d.ts +7 -0
  57. package/dist/types/DatePicker/DateField.d.ts +3 -0
  58. package/dist/types/DatePicker/index.d.ts +17 -0
  59. package/dist/types/DateRangePicker/index.d.ts +16 -0
  60. package/dist/types/Dialog/components.d.ts +14 -4
  61. package/dist/types/Drawer/components.d.ts +14 -4
  62. package/dist/types/Input/index.d.ts +12 -2
  63. package/dist/types/Menu/controlled.d.ts +2 -0
  64. package/dist/types/RadioButton/index.d.ts +11 -6
  65. package/dist/types/Textarea/index.d.ts +11 -2
  66. package/dist/types/index.d.ts +4 -0
  67. package/package.json +5 -3
@@ -18,8 +18,11 @@ var index = require('../Typography/index.js');
18
18
 
19
19
  function Badge({
20
20
  palette = defaultTheme.defaultThemeCssVariableUsages.palette.indicator.info.base,
21
+ variant = "primary",
22
+ disabled = false,
21
23
  ...props
22
24
  }) {
25
+ const variantCn = styles_module.default[`variant-${variant}`];
23
26
  return /* @__PURE__ */ jsxRuntime.jsxs(
24
27
  "span",
25
28
  {
@@ -27,10 +30,10 @@ function Badge({
27
30
  className: cx.cx(styles_module.default["badge-anchor"], props.className),
28
31
  children: [
29
32
  props.children,
30
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles_module.default["badge-wrapper"], children: /* @__PURE__ */ jsxRuntime.jsx(
33
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles_module.default["badge-wrapper"], "data-disabled": disabled, children: /* @__PURE__ */ jsxRuntime.jsx(
31
34
  "div",
32
35
  {
33
- className: styles_module.default["badge"],
36
+ className: cx.cx(styles_module.default["badge"], variantCn),
34
37
  style: {
35
38
  ...{
36
39
  "--vt-ce-badge-palette-base-surface": palette.surface,
@@ -2,6 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var modules_efc4e723 = {"badge-anchor":"vt_ce_Badge_badgeAnchor__aa089fbb","badge-wrapper":"vt_ce_Badge_badgeWrapper__aa089fbb","badge":"vt_ce_Badge_badge__aa089fbb","badge-text":"vt_ce_Badge_badgeText__aa089fbb"};
5
+ var modules_efc4e723 = {"badge-anchor":"vt_ce_Badge_badgeAnchor__05d729fb","badge-wrapper":"vt_ce_Badge_badgeWrapper__05d729fb","badge":"vt_ce_Badge_badge__05d729fb","badge-text":"vt_ce_Badge_badgeText__05d729fb","variant-primary":"vt_ce_Badge_variantPrimary__05d729fb","variant-secondary":"vt_ce_Badge_variantSecondary__05d729fb"};
6
6
 
7
7
  exports.default = modules_efc4e723;
@@ -24,20 +24,25 @@ const Button = React.forwardRef(
24
24
  disabled = false,
25
25
  loading = false,
26
26
  active = false,
27
+ startIcon,
28
+ endIcon,
29
+ children,
30
+ "data-testid": dataTestId,
31
+ style,
32
+ className,
27
33
  ...props
28
34
  }, ref) => {
29
35
  const variantCn = styles_module.default[variant];
30
36
  return /* @__PURE__ */ jsxRuntime.jsxs(
31
37
  "button",
32
38
  {
39
+ ...props,
33
40
  ref,
34
- type: props.type,
35
41
  "data-size": size,
36
42
  "data-loading": loading,
37
43
  "data-active": active,
38
44
  disabled: loading || disabled,
39
- onClick: props.onClick,
40
- "data-testid": props["data-testid"],
45
+ "data-testid": dataTestId,
41
46
  style: {
42
47
  ...{
43
48
  "--vt-ce-button-palette-base-surface": palette.base.surface,
@@ -47,15 +52,15 @@ const Button = React.forwardRef(
47
52
  "--vt-ce-button-palette-disabled-surface": palette.disabled.surface,
48
53
  "--vt-ce-button-palette-disabled-on": palette.disabled.on
49
54
  },
50
- ...props.style
55
+ ...style
51
56
  },
52
- className: cx.cx(styles_module.default["button"], variantCn, props.className),
57
+ className: cx.cx(styles_module.default["button"], variantCn, className),
53
58
  children: [
54
59
  loading && /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles_module.default["loading-container"], children: /* @__PURE__ */ jsxRuntime.jsx(index.default, { size: "1.4em" }) }),
55
60
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: styles_module.default["inner-container"], children: [
56
- props.startIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles_module.default["button-icon"], children: props.startIcon }),
57
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: props.children }),
58
- props.endIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles_module.default["button-icon"], children: props.endIcon })
61
+ startIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles_module.default["button-icon"], children: startIcon }),
62
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children }),
63
+ endIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles_module.default["button-icon"], children: endIcon })
59
64
  ] })
60
65
  ]
61
66
  }
@@ -17,7 +17,17 @@ require('../Box/index.js');
17
17
  require('../styles/styled.js');
18
18
 
19
19
  const Checkbox = React.forwardRef(
20
- ({ checked = false, indeterminate = false, disabled = false, ...props }, ref) => {
20
+ ({
21
+ defaultChecked,
22
+ checked,
23
+ label,
24
+ indeterminate = false,
25
+ disabled = false,
26
+ "data-testid": dataTestId,
27
+ style,
28
+ className,
29
+ ...props
30
+ }, ref) => {
21
31
  const inputRef = React.useRef(null);
22
32
  const forkedRef = material.useForkRef(inputRef, ref);
23
33
  React.useEffect(() => {
@@ -31,32 +41,33 @@ const Checkbox = React.forwardRef(
31
41
  {
32
42
  role: "checkbox",
33
43
  "aria-labelledby": labelId,
34
- "aria-checked": indeterminate ? "mixed" : checked,
44
+ "aria-checked": indeterminate ? "mixed" : checked ?? defaultChecked,
35
45
  "aria-disabled": disabled,
36
46
  onClick: (e) => {
37
47
  inputRef.current?.click();
38
48
  e.stopPropagation();
39
49
  e.preventDefault();
40
50
  },
41
- "data-testid": props["data-testid"],
42
- style: props.style,
43
- className: cx.cx(styles_module.default["checkbox"], props.className),
51
+ "data-testid": dataTestId,
52
+ style,
53
+ className: cx.cx(styles_module.default["checkbox"], className),
44
54
  children: [
45
55
  /* @__PURE__ */ jsxRuntime.jsxs("label", { className: styles_module.default["passthrough-label-container"], children: [
46
56
  /* @__PURE__ */ jsxRuntime.jsx(
47
57
  "input",
48
58
  {
59
+ ...props,
49
60
  type: "checkbox",
50
61
  ref: forkedRef,
62
+ defaultChecked,
51
63
  checked,
52
64
  disabled,
53
- onChange: props.onChange,
54
65
  className: styles_module.default["invisible-checkbox"]
55
66
  }
56
67
  ),
57
68
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles_module.default["icon-container"], children: indeterminate ? /* @__PURE__ */ jsxRuntime.jsx(IndeterminateIcon, {}) : checked ? /* @__PURE__ */ jsxRuntime.jsx(CheckedIcon, {}) : /* @__PURE__ */ jsxRuntime.jsx(UncheckedIcon, {}) })
58
69
  ] }),
59
- props.label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles_module.default["visible-label"], id: labelId, children: props.label })
70
+ label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles_module.default["visible-label"], id: labelId, children: label })
60
71
  ]
61
72
  }
62
73
  );
@@ -2,6 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var modules_efc4e723 = {"checkbox":"vt_ce_Checkbox_checkbox__cc119886","checkbox-svg-path":"vt_ce_Checkbox_checkboxSvgPath__cc119886","passthrough-label-container":"vt_ce_Checkbox_passthroughLabelContainer__cc119886","invisible-checkbox":"vt_ce_Checkbox_invisibleCheckbox__cc119886","visible-label":"vt_ce_Checkbox_visibleLabel__cc119886","icon-container":"vt_ce_Checkbox_iconContainer__cc119886"};
5
+ var modules_efc4e723 = {"checkbox":"vt_ce_Checkbox_checkbox__0355033d","checkbox-svg-path":"vt_ce_Checkbox_checkboxSvgPath__0355033d","passthrough-label-container":"vt_ce_Checkbox_passthroughLabelContainer__0355033d","invisible-checkbox":"vt_ce_Checkbox_invisibleCheckbox__0355033d","visible-label":"vt_ce_Checkbox_visibleLabel__0355033d","icon-container":"vt_ce_Checkbox_iconContainer__0355033d"};
6
6
 
7
7
  exports.default = modules_efc4e723;
@@ -2,6 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var modules_efc4e723 = {"chip":"vt_ce_Chip_chip__323b4046","chip-text":"vt_ce_Chip_chipText__323b4046","button-icon":"vt_ce_Chip_buttonIcon__323b4046"};
5
+ var modules_efc4e723 = {"chip":"vt_ce_Chip_chip__8d6b791d","chip-text":"vt_ce_Chip_chipText__8d6b791d","button-icon":"vt_ce_Chip_buttonIcon__8d6b791d"};
6
6
 
7
7
  exports.default = modules_efc4e723;
@@ -0,0 +1,150 @@
1
+ 'use strict';
2
+ 'use client';
3
+ 'use strict';
4
+
5
+ Object.defineProperty(exports, '__esModule', { value: true });
6
+
7
+ var jsxRuntime = require('react/jsx-runtime');
8
+ var React = require('react');
9
+ var reactAria = require('react-aria');
10
+ var reactStately = require('react-stately');
11
+ var date = require('@internationalized/date');
12
+ var index = require('../Button/index.js');
13
+ var index$1 = require('../IconButton/index.js');
14
+ var wrappers = require('../Icon/wrappers.js');
15
+ require('../Icon/factory.js');
16
+ var iconsMaterial = require('@mui/icons-material');
17
+ var styles_module = require('./styles.module.scss.js');
18
+ require('color2k');
19
+ require('../styles/css-vars.js');
20
+ var defaultTheme = require('../styles/defaultTheme.js');
21
+ require('@mui/system');
22
+ require('../Box/index.js');
23
+ require('../styles/styled.js');
24
+
25
+ const ArrowUpDownIcon = wrappers.adaptMuiSvgIcon(iconsMaterial.ArrowDropUp);
26
+ const ArrowBackIcon = wrappers.adaptMuiSvgIcon(iconsMaterial.ArrowBackIosNew);
27
+ const ArrowForwardIcon = wrappers.adaptMuiSvgIcon(iconsMaterial.ArrowForwardIos);
28
+ function Calendar({
29
+ changeYear: propsChangeYear,
30
+ ...props
31
+ }) {
32
+ const { locale } = reactAria.useLocale();
33
+ const [yearPickerIsOpen, setYearPickerIsOpen] = React.useState(false);
34
+ const state = reactStately.useCalendarState({
35
+ ...props,
36
+ locale,
37
+ createCalendar: date.createCalendar
38
+ });
39
+ const { calendarProps, prevButtonProps, nextButtonProps, title } = reactAria.useCalendar(props, state);
40
+ const changeYear = (year) => {
41
+ propsChangeYear(year);
42
+ setYearPickerIsOpen(false);
43
+ };
44
+ const handlePrevButtonClick = (e) => {
45
+ prevButtonProps.onPress?.(e);
46
+ };
47
+ const handleNextButtonClick = (e) => {
48
+ nextButtonProps.onPress?.(e);
49
+ };
50
+ const toggleYearPicker = () => {
51
+ setYearPickerIsOpen(!yearPickerIsOpen);
52
+ };
53
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ...calendarProps, className: styles_module.default.calendarBox, children: [
54
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles_module.default.calendarHeader, children: [
55
+ /* @__PURE__ */ jsxRuntime.jsx(
56
+ index.default,
57
+ {
58
+ variant: "tertiary",
59
+ palette: defaultTheme.defaultThemeCssVariableUsages.palette.action.text,
60
+ endIcon: /* @__PURE__ */ jsxRuntime.jsx(
61
+ ArrowUpDownIcon,
62
+ {
63
+ style: !yearPickerIsOpen ? {
64
+ transform: "rotate(180deg)",
65
+ transition: "0.3s ease"
66
+ } : { transition: "0.3s ease" }
67
+ }
68
+ ),
69
+ onClick: () => toggleYearPicker(),
70
+ children: title
71
+ }
72
+ ),
73
+ !yearPickerIsOpen && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles_module.default.monthPickerArrowButtonsWrapper, children: [
74
+ /* @__PURE__ */ jsxRuntime.jsx(index$1.default, { onClick: (e) => handlePrevButtonClick(e), children: /* @__PURE__ */ jsxRuntime.jsx(ArrowBackIcon, { size: "small" }) }),
75
+ /* @__PURE__ */ jsxRuntime.jsx(index$1.default, { onClick: (e) => handleNextButtonClick(e), children: /* @__PURE__ */ jsxRuntime.jsx(ArrowForwardIcon, { size: "small" }) })
76
+ ] })
77
+ ] }),
78
+ yearPickerIsOpen ? /* @__PURE__ */ jsxRuntime.jsx(YearPicker, { changeYear, activeYear: state.value?.year }) : /* @__PURE__ */ jsxRuntime.jsx(CalendarGrid, { state })
79
+ ] });
80
+ }
81
+ function CalendarGrid({
82
+ state,
83
+ startDate,
84
+ endDate,
85
+ weekdayStyle
86
+ }) {
87
+ const { locale } = reactAria.useLocale();
88
+ const { gridProps, headerProps, weekDays } = reactAria.useCalendarGrid(
89
+ { startDate, endDate, weekdayStyle },
90
+ state
91
+ );
92
+ const weeksInMonth = date.getWeeksInMonth(state.visibleRange.start, locale);
93
+ return /* @__PURE__ */ jsxRuntime.jsxs("table", { className: styles_module.default.calendarGrid, ...gridProps, children: [
94
+ /* @__PURE__ */ jsxRuntime.jsx("thead", { ...headerProps, children: /* @__PURE__ */ jsxRuntime.jsx("tr", { children: weekDays.map((day, index) => /* @__PURE__ */ jsxRuntime.jsx("th", { className: styles_module.default.weekdayHeader, children: day }, index)) }) }),
95
+ /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: [...new Array(Math.max(weeksInMonth, 6)).keys()].map((weekIndex) => /* @__PURE__ */ jsxRuntime.jsx("tr", { children: state.getDatesInWeek(weekIndex).map(
96
+ (date, i) => date ? /* @__PURE__ */ jsxRuntime.jsx(CalendarCell, { state, date }, i) : /* @__PURE__ */ jsxRuntime.jsx("td", {}, i)
97
+ ) }, weekIndex)) })
98
+ ] });
99
+ }
100
+ function CalendarCell({ state, date }) {
101
+ const ref = React.useRef(null);
102
+ const {
103
+ cellProps,
104
+ buttonProps,
105
+ isSelected,
106
+ isOutsideVisibleRange,
107
+ isDisabled,
108
+ formattedDate
109
+ } = reactAria.useCalendarCell({ date }, state, ref);
110
+ return /* @__PURE__ */ jsxRuntime.jsx("td", { ...cellProps, children: /* @__PURE__ */ jsxRuntime.jsx(
111
+ index.default,
112
+ {
113
+ ...buttonProps,
114
+ ref,
115
+ size: "small",
116
+ variant: !isSelected ? "tertiary" : "secondary",
117
+ active: isSelected,
118
+ disabled: isDisabled,
119
+ className: styles_module.default.calendarCellBtn,
120
+ style: isOutsideVisibleRange ? { display: "none" } : {},
121
+ children: formattedDate
122
+ }
123
+ ) });
124
+ }
125
+ const currentYear = (/* @__PURE__ */ new Date()).getFullYear();
126
+ const years = Array.from(
127
+ { length: currentYear + 1 - 1900 },
128
+ (_, i) => currentYear - i
129
+ );
130
+ function YearPicker({
131
+ changeYear,
132
+ activeYear
133
+ }) {
134
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles_module.default.yearPickerLayout, children: years.map((year, index$1) => /* @__PURE__ */ jsxRuntime.jsx(
135
+ index.default,
136
+ {
137
+ variant: "secondary",
138
+ size: "small",
139
+ active: year === activeYear,
140
+ className: styles_module.default.yearPillButton,
141
+ onClick: () => {
142
+ changeYear(year);
143
+ },
144
+ children: year
145
+ },
146
+ index$1
147
+ )) });
148
+ }
149
+
150
+ exports.default = Calendar;
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var jsxRuntime = require('react/jsx-runtime');
7
+ var React = require('react');
8
+ var reactAria = require('react-aria');
9
+ var reactStately = require('react-stately');
10
+ var date = require('@internationalized/date');
11
+ var styles_module = require('./styles.module.scss.js');
12
+
13
+ function DateField(props) {
14
+ const ref = React.useRef(null);
15
+ const { locale } = reactAria.useLocale();
16
+ const state = reactStately.useDateFieldState({
17
+ ...props,
18
+ locale,
19
+ createCalendar: date.createCalendar
20
+ });
21
+ const { fieldProps } = reactAria.useDateField(props, state, ref);
22
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ...fieldProps, ref, className: styles_module.default.reactAriaDateInput, children: state.segments.map((segment, i) => /* @__PURE__ */ jsxRuntime.jsx(DateSegmentItem, { segment, state }, i)) });
23
+ }
24
+ function DateSegmentItem({ segment, state }) {
25
+ const ref = React.useRef(null);
26
+ const { segmentProps } = reactAria.useDateSegment(segment, state, ref);
27
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ...segmentProps, ref, children: segment.text });
28
+ }
29
+
30
+ exports.default = DateField;
@@ -0,0 +1,122 @@
1
+ 'use strict';
2
+ 'use client';
3
+ 'use strict';
4
+
5
+ Object.defineProperty(exports, '__esModule', { value: true });
6
+
7
+ var jsxRuntime = require('react/jsx-runtime');
8
+ var React = require('react');
9
+ var react = require('@floating-ui/react');
10
+ var reactAria = require('react-aria');
11
+ var reactStately = require('react-stately');
12
+ var date = require('@internationalized/date');
13
+ var Calendar = require('./Calendar.js');
14
+ var DateField = require('./DateField.js');
15
+ var index = require('../IconButton/index.js');
16
+ var wrappers = require('../Icon/wrappers.js');
17
+ require('../Icon/factory.js');
18
+ var iconsMaterial = require('@mui/icons-material');
19
+ var styles_module = require('./styles.module.scss.js');
20
+ var portal = require('../styles/portal.js');
21
+ var context = require('../FormControl/context.js');
22
+
23
+ const CalendarTodayOutlinedIcon = wrappers.adaptMuiSvgIcon(iconsMaterial.CalendarTodayOutlined);
24
+ function DatePicker({
25
+ placement = "bottom-start",
26
+ ...props
27
+ }) {
28
+ const ctx = context.useFormControlContext();
29
+ const disabled = props.disabled ?? ctx.disabled;
30
+ const error = props.error ?? ctx.error;
31
+ const formatProps = {
32
+ label: "Date Picker",
33
+ // TODO: perhaps get from context?
34
+ value: props.value ? date.parseDate(props.value) : void 0,
35
+ shouldForceLeadingZeros: props.shouldForceLeadingZeros,
36
+ defaultValue: props.defaultValue ? date.parseDate(props.defaultValue) : void 0,
37
+ onChange: (newValue) => {
38
+ props.onChange?.(newValue.toString());
39
+ }
40
+ };
41
+ const ref = React.useRef(null);
42
+ const state = reactStately.useDatePickerState(formatProps);
43
+ const {
44
+ groupProps,
45
+ /*labelProps,*/
46
+ fieldProps,
47
+ buttonProps,
48
+ calendarProps
49
+ } = reactAria.useDatePicker(formatProps, state, ref);
50
+ const { refs, floatingStyles, context: context$1 } = react.useFloating({
51
+ // ensure floating ui state is up to date with date picker state
52
+ open: state.isOpen,
53
+ // any floating-ui native stuff will trigger this, rippling up to date picker state
54
+ onOpenChange: (open) => {
55
+ open ? state.setOpen(open) : state.close();
56
+ },
57
+ placement
58
+ });
59
+ const role = react.useRole(context$1);
60
+ const dismiss = react.useDismiss(context$1);
61
+ const { getReferenceProps, getFloatingProps } = react.useInteractions([
62
+ dismiss,
63
+ role
64
+ ]);
65
+ const changeYear = (year) => {
66
+ const currentMonthSelected = state.dateValue?.month ?? 1;
67
+ const currentDaySelected = state.dateValue?.day ?? 1;
68
+ state.setDateValue(
69
+ date.parseDate(
70
+ `${year}-${currentMonthSelected.toString().length === 1 ? "0" + currentMonthSelected : currentMonthSelected}-${currentDaySelected.toString().length === 1 ? "0" + currentDaySelected : currentDaySelected}`
71
+ )
72
+ );
73
+ };
74
+ return /* @__PURE__ */ jsxRuntime.jsxs(
75
+ "div",
76
+ {
77
+ ...getReferenceProps(),
78
+ ref: refs.setReference,
79
+ "data-testid": props["data-testid"],
80
+ className: styles_module.default.reactAriaDatePicker,
81
+ children: [
82
+ /* @__PURE__ */ jsxRuntime.jsxs(
83
+ "div",
84
+ {
85
+ ...groupProps,
86
+ ref,
87
+ "data-disabled": disabled,
88
+ "data-focused": state.isOpen,
89
+ "data-error": error,
90
+ className: styles_module.default.reactAriaGroup,
91
+ children: [
92
+ /* @__PURE__ */ jsxRuntime.jsx(DateField.default, { ...fieldProps }),
93
+ /* @__PURE__ */ jsxRuntime.jsx(
94
+ index.default,
95
+ {
96
+ ...buttonProps,
97
+ disabled,
98
+ onClick: () => context$1.onOpenChange(!context$1.open),
99
+ className: styles_module.default.reactAriaButton,
100
+ children: /* @__PURE__ */ jsxRuntime.jsx(CalendarTodayOutlinedIcon, {})
101
+ }
102
+ )
103
+ ]
104
+ }
105
+ ),
106
+ context$1.open && /* @__PURE__ */ jsxRuntime.jsx(react.FloatingPortal, { root: props.portalEl, children: /* @__PURE__ */ jsxRuntime.jsx(react.FloatingFocusManager, { context: context$1, modal: false, children: /* @__PURE__ */ jsxRuntime.jsx(portal.PortalThemeRelay, { children: /* @__PURE__ */ jsxRuntime.jsx(
107
+ "div",
108
+ {
109
+ ref: refs.setFloating,
110
+ style: {
111
+ ...floatingStyles
112
+ },
113
+ ...getFloatingProps(),
114
+ children: /* @__PURE__ */ jsxRuntime.jsx(Calendar.default, { ...calendarProps, changeYear })
115
+ }
116
+ ) }) }) })
117
+ ]
118
+ }
119
+ );
120
+ }
121
+
122
+ exports.default = DatePicker;
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var modules_efc4e723 = {"reactAriaDatePicker":"vt_ce_DatePicker_reactAriaDatePicker__c88815e1","reactAriaGroup":"vt_ce_DatePicker_reactAriaGroup__c88815e1","reactAriaButton":"vt_ce_DatePicker_reactAriaButton__c88815e1","reactAriaDateInput":"vt_ce_DatePicker_reactAriaDateInput__c88815e1","calendarBox":"vt_ce_DatePicker_calendarBox__c88815e1","calendarHeader":"vt_ce_DatePicker_calendarHeader__c88815e1","monthPickerArrowButtonsWrapper":"vt_ce_DatePicker_monthPickerArrowButtonsWrapper__c88815e1","yearPickerLayout":"vt_ce_DatePicker_yearPickerLayout__c88815e1","yearPillButton":"vt_ce_DatePicker_yearPillButton__c88815e1","calendarGrid":"vt_ce_DatePicker_calendarGrid__c88815e1","weekdayHeader":"vt_ce_DatePicker_weekdayHeader__c88815e1","calendarCellBtn":"vt_ce_DatePicker_calendarCellBtn__c88815e1"};
6
+
7
+ exports.default = modules_efc4e723;
@@ -0,0 +1,41 @@
1
+ 'use strict';
2
+ 'use client';
3
+ 'use strict';
4
+
5
+ Object.defineProperty(exports, '__esModule', { value: true });
6
+
7
+ var jsxRuntime = require('react/jsx-runtime');
8
+ var index$1 = require('../DatePicker/index.js');
9
+ var styles_module = require('./styles.module.scss.js');
10
+ var index = require('../FormControl/index.js');
11
+ var context = require('../FormControl/context.js');
12
+
13
+ function DateRangePicker({
14
+ startDate,
15
+ endDate,
16
+ portalEl
17
+ }) {
18
+ const ctx = context.useFormControlContext();
19
+ return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: styles_module.default.dateRangePickerWrapper, children: [
20
+ /* @__PURE__ */ jsxRuntime.jsx(
21
+ index.default,
22
+ {
23
+ disabled: ctx.disabled,
24
+ error: ctx.error,
25
+ ...startDate.control,
26
+ children: /* @__PURE__ */ jsxRuntime.jsx(index$1.default, { ...startDate.props, portalEl })
27
+ }
28
+ ),
29
+ /* @__PURE__ */ jsxRuntime.jsx(
30
+ index.default,
31
+ {
32
+ disabled: ctx.disabled,
33
+ error: ctx.error,
34
+ ...endDate.control,
35
+ children: /* @__PURE__ */ jsxRuntime.jsx(index$1.default, { ...endDate.props, portalEl })
36
+ }
37
+ )
38
+ ] });
39
+ }
40
+
41
+ exports.default = DateRangePicker;
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var modules_efc4e723 = {"dateRangePickerWrapper":"vt_ce_DateRangePicker_dateRangePickerWrapper__8b44f64e"};
6
+
7
+ exports.default = modules_efc4e723;
@@ -2,6 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var modules_efc4e723 = {"drawer-overlay":"vt_ce_Drawer_drawerOverlay__923c77c9","drawer-overlay-enabled":"vt_ce_Drawer_drawerOverlayEnabled__923c77c9","drawer-overlay-strategy-fixed":"vt_ce_Drawer_drawerOverlayStrategyFixed__923c77c9","drawer-overlay-strategy-absolute":"vt_ce_Drawer_drawerOverlayStrategyAbsolute__923c77c9","drawer-overlay-placement-start":"vt_ce_Drawer_drawerOverlayPlacementStart__923c77c9","drawer":"vt_ce_Drawer_drawer__923c77c9","drawer-overlay-placement-end":"vt_ce_Drawer_drawerOverlayPlacementEnd__923c77c9","drawer-wrapper":"vt_ce_Drawer_drawerWrapper__923c77c9","drawer-start":"vt_ce_Drawer_drawerStart__923c77c9","drawer-end":"vt_ce_Drawer_drawerEnd__923c77c9","drawer-content":"vt_ce_Drawer_drawerContent__923c77c9","drawer-title-container":"vt_ce_Drawer_drawerTitleContainer__923c77c9","drawer-title":"vt_ce_Drawer_drawerTitle__923c77c9","drawer-title-actions":"vt_ce_Drawer_drawerTitleActions__923c77c9","drawer-typography":"vt_ce_Drawer_drawerTypography__923c77c9","drawer-actions":"vt_ce_Drawer_drawerActions__923c77c9"};
5
+ var modules_efc4e723 = {"drawer-overlay":"vt_ce_Drawer_drawerOverlay__8f34504f","drawer-overlay-enabled":"vt_ce_Drawer_drawerOverlayEnabled__8f34504f","drawer-overlay-strategy-fixed":"vt_ce_Drawer_drawerOverlayStrategyFixed__8f34504f","drawer-overlay-strategy-absolute":"vt_ce_Drawer_drawerOverlayStrategyAbsolute__8f34504f","drawer-overlay-placement-start":"vt_ce_Drawer_drawerOverlayPlacementStart__8f34504f","drawer":"vt_ce_Drawer_drawer__8f34504f","drawer-overlay-placement-end":"vt_ce_Drawer_drawerOverlayPlacementEnd__8f34504f","drawer-wrapper":"vt_ce_Drawer_drawerWrapper__8f34504f","drawer-start":"vt_ce_Drawer_drawerStart__8f34504f","drawer-end":"vt_ce_Drawer_drawerEnd__8f34504f","drawer-content":"vt_ce_Drawer_drawerContent__8f34504f","drawer-title-container":"vt_ce_Drawer_drawerTitleContainer__8f34504f","drawer-title":"vt_ce_Drawer_drawerTitle__8f34504f","drawer-title-actions":"vt_ce_Drawer_drawerTitleActions__8f34504f","drawer-typography":"vt_ce_Drawer_drawerTypography__8f34504f","drawer-actions":"vt_ce_Drawer_drawerActions__8f34504f"};
6
6
 
7
7
  exports.default = modules_efc4e723;
@@ -2,6 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var modules_efc4e723 = {"form-control":"vt_ce_FormControl_formControl__8c1edd74","placement-block-start":"vt_ce_FormControl_placementBlockStart__8c1edd74","label":"vt_ce_FormControl_label__8c1edd74","placement-inline-start":"vt_ce_FormControl_placementInlineStart__8c1edd74","placement-inline-end":"vt_ce_FormControl_placementInlineEnd__8c1edd74","inner-control":"vt_ce_FormControl_innerControl__8c1edd74","help-label":"vt_ce_FormControl_helpLabel__8c1edd74","error-label":"vt_ce_FormControl_errorLabel__8c1edd74"};
5
+ var modules_efc4e723 = {"form-control":"vt_ce_FormControl_formControl__876f6d27","placement-block-start":"vt_ce_FormControl_placementBlockStart__876f6d27","label":"vt_ce_FormControl_label__876f6d27","placement-inline-start":"vt_ce_FormControl_placementInlineStart__876f6d27","placement-inline-end":"vt_ce_FormControl_placementInlineEnd__876f6d27","inner-control":"vt_ce_FormControl_innerControl__876f6d27","help-label":"vt_ce_FormControl_helpLabel__876f6d27","error-label":"vt_ce_FormControl_errorLabel__876f6d27"};
6
6
 
7
7
  exports.default = modules_efc4e723;
@@ -2,6 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var modules_efc4e723 = {"input":"vt_ce_Input_input__a83b3209","inner-input":"vt_ce_Input_innerInput__a83b3209","input-icon":"vt_ce_Input_inputIcon__a83b3209"};
5
+ var modules_efc4e723 = {"input":"vt_ce_Input_input__81e6382e","inner-input":"vt_ce_Input_innerInput__81e6382e","input-icon":"vt_ce_Input_inputIcon__81e6382e"};
6
6
 
7
7
  exports.default = modules_efc4e723;
@@ -89,7 +89,14 @@ function Menu({
89
89
  listNavigation,
90
90
  typeahead
91
91
  ]);
92
- return /* @__PURE__ */ jsxRuntime.jsx(react.FloatingList, { elementsRef, labelsRef, children: isOpen && /* @__PURE__ */ jsxRuntime.jsx(react.FloatingPortal, { root: props.portalEl, children: /* @__PURE__ */ jsxRuntime.jsx(
92
+ const { isMounted, styles: transitionStyles } = react.useTransitionStyles(context, {
93
+ duration: 112,
94
+ initial: {
95
+ opacity: 0,
96
+ transform: `scale(95%)`
97
+ }
98
+ });
99
+ return /* @__PURE__ */ jsxRuntime.jsx(react.FloatingList, { elementsRef, labelsRef, children: isMounted && /* @__PURE__ */ jsxRuntime.jsx(react.FloatingPortal, { root: props.portalEl, children: /* @__PURE__ */ jsxRuntime.jsx(
93
100
  react.FloatingFocusManager,
94
101
  {
95
102
  context,
@@ -104,32 +111,41 @@ function Menu({
104
111
  tabIndex: 0,
105
112
  "aria-labelledby": anchor?.id || props.anchorId,
106
113
  style: {
107
- ...floatingStyles,
108
- ...props.style
114
+ ...floatingStyles
109
115
  },
110
116
  ...getFloatingProps(),
111
- className: cx.cx(styles_module.default["menu"], className),
112
- children: options.map((option, i) => /* @__PURE__ */ jsxRuntime.jsx(
113
- MenuItem,
117
+ children: /* @__PURE__ */ jsxRuntime.jsx(
118
+ "div",
114
119
  {
115
- role: "menuitem",
116
- isActive: i === activeIndex,
117
- ...getItemProps({
118
- onClick(event) {
119
- option.onSelect(event);
120
- }
121
- }),
122
- label: option.label,
123
- icon: option.icon
124
- },
125
- i
126
- ))
120
+ style: {
121
+ ...transitionStyles,
122
+ ...props.style
123
+ },
124
+ className: cx.cx(styles_module.default["menu"], className),
125
+ children: options.map((option, i) => /* @__PURE__ */ jsxRuntime.jsx(
126
+ MenuItem,
127
+ {
128
+ role: "menuitem",
129
+ isActive: i === activeIndex,
130
+ ...getItemProps({
131
+ onClick(event) {
132
+ option.onSelect(event);
133
+ }
134
+ }),
135
+ render: option.render,
136
+ label: option.label,
137
+ icon: option.icon
138
+ },
139
+ i
140
+ ))
141
+ }
142
+ )
127
143
  }
128
144
  ) })
129
145
  }
130
146
  ) }) });
131
147
  }
132
- const MenuItem = React.forwardRef(({ label, disabled, isActive, ...props }, forwardedRef) => {
148
+ const MenuItem = React.forwardRef(({ label, render, disabled, isActive, ...props }, forwardedRef) => {
133
149
  const item = react.useListItem({ label: disabled ? null : label });
134
150
  return /* @__PURE__ */ jsxRuntime.jsxs(
135
151
  "button",
@@ -143,7 +159,7 @@ const MenuItem = React.forwardRef(({ label, disabled, isActive, ...props }, forw
143
159
  disabled,
144
160
  children: [
145
161
  props.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles_module.default["option-icon"], children: props.icon }),
146
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles_module.default["option-label"], children: label })
162
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles_module.default["option-label"], children: render ?? label })
147
163
  ]
148
164
  }
149
165
  );