@economic/taco 1.25.2 → 1.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ButtonGroup/ButtonGroup.d.ts +5 -0
- package/dist/esm/packages/taco/src/components/ButtonGroup/ButtonGroup.js +46 -0
- package/dist/esm/packages/taco/src/components/ButtonGroup/ButtonGroup.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Combobox/useCombobox.js +1 -1
- package/dist/esm/packages/taco/src/components/Drawer/Drawer.js +1 -1
- package/dist/esm/packages/taco/src/components/Drawer/components/Content.js +2 -2
- package/dist/esm/packages/taco/src/components/Group/Group.js +1 -1
- package/dist/esm/packages/taco/src/components/Group/Group.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Header/components/AgreementSelector.js +20 -13
- package/dist/esm/packages/taco/src/components/Header/components/AgreementSelector.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Header/components/MenuButton.js +1 -1
- package/dist/esm/packages/taco/src/components/Header/components/MenuButton.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Header/components/PrimaryNavigation.js +1 -1
- package/dist/esm/packages/taco/src/components/Input/Input.js +1 -1
- package/dist/esm/packages/taco/src/components/Layout/components/Sidebar.js +26 -22
- package/dist/esm/packages/taco/src/components/Layout/components/Sidebar.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Listbox/ScrollableList.js +1 -1
- package/dist/esm/packages/taco/src/components/Listbox/useListbox.js +1 -1
- package/dist/esm/packages/taco/src/components/Listbox/useMultiListbox.js +1 -1
- package/dist/esm/packages/taco/src/components/Menu/Menu.js +2 -2
- package/dist/esm/packages/taco/src/components/Menu/components/Content.js +1 -1
- package/dist/esm/packages/taco/src/components/Menu/components/Header.js +1 -1
- package/dist/esm/packages/taco/src/components/Menu/components/Item.js +2 -2
- package/dist/esm/packages/taco/src/components/Menu/components/Item.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Menu/components/Link.js +1 -1
- package/dist/esm/packages/taco/src/components/Menu/components/Trigger.js +1 -1
- package/dist/esm/packages/taco/src/components/Select/useSelect.js +1 -1
- package/dist/esm/packages/taco/src/components/Select2/Select2.js +2 -2
- package/dist/esm/packages/taco/src/components/Select2/components/Edit.js +2 -2
- package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js +1 -1
- package/dist/esm/packages/taco/src/components/Table/components/WindowedTable.js +1 -1
- package/dist/esm/packages/taco/src/components/Table/hooks/useTableKeyboardNavigation.js +1 -1
- package/dist/esm/packages/taco/src/components/Table2/components/filters/FiltersButton.js +1 -1
- package/dist/esm/packages/taco/src/components/Table2/utilities/columns.js +1 -1
- package/dist/esm/packages/taco/src/hooks/useIntersectionObserver.js +48 -0
- package/dist/esm/packages/taco/src/hooks/useIntersectionObserver.js.map +1 -0
- package/dist/esm/packages/taco/src/index.js +6 -4
- package/dist/esm/packages/taco/src/index.js.map +1 -1
- package/dist/hooks/useIntersectionObserver.d.ts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/taco.cjs.development.js +843 -750
- package/dist/taco.cjs.development.js.map +1 -1
- package/dist/taco.cjs.production.min.js +1 -1
- package/dist/taco.cjs.production.min.js.map +1 -1
- package/package.json +2 -2
|
@@ -10,6 +10,9 @@ var cn = _interopDefault(require('classnames'));
|
|
|
10
10
|
var AlertDialogPrimitive = require('@radix-ui/react-alert-dialog');
|
|
11
11
|
var AccordionPrimitive = require('@radix-ui/react-accordion');
|
|
12
12
|
var TooltipPrimitive = require('@radix-ui/react-tooltip');
|
|
13
|
+
var DropdownMenuPrimitive = require('@radix-ui/react-dropdown-menu');
|
|
14
|
+
var reactUseControllableState = require('@radix-ui/react-use-controllable-state');
|
|
15
|
+
var RadioGroupPrimitive = require('@radix-ui/react-radio-group');
|
|
13
16
|
var ReactDayPicker = _interopDefault(require('react-day-picker'));
|
|
14
17
|
var CheckboxPrimitive = require('@radix-ui/react-checkbox');
|
|
15
18
|
var uuid = require('uuid');
|
|
@@ -21,10 +24,7 @@ var interactions = require('@react-aria/interactions');
|
|
|
21
24
|
var framerMotion = require('framer-motion');
|
|
22
25
|
var focus = require('@react-aria/focus');
|
|
23
26
|
var ScrollAreaPrimitive = require('@radix-ui/react-scroll-area');
|
|
24
|
-
var reactUseControllableState = require('@radix-ui/react-use-controllable-state');
|
|
25
27
|
var HoverCardPrimitive = require('@radix-ui/react-hover-card');
|
|
26
|
-
var DropdownMenuPrimitive = require('@radix-ui/react-dropdown-menu');
|
|
27
|
-
var RadioGroupPrimitive = require('@radix-ui/react-radio-group');
|
|
28
28
|
var reactTable = require('react-table');
|
|
29
29
|
var reactIntersectionObserver = require('react-intersection-observer');
|
|
30
30
|
var reactWindow = require('react-window');
|
|
@@ -3998,241 +3998,732 @@ const Button$1 = /*#__PURE__*/React.forwardRef(function Button(props, ref) {
|
|
|
3998
3998
|
}, button);
|
|
3999
3999
|
});
|
|
4000
4000
|
|
|
4001
|
-
|
|
4002
|
-
const
|
|
4003
|
-
|
|
4004
|
-
|
|
4005
|
-
|
|
4006
|
-
|
|
4007
|
-
|
|
4008
|
-
|
|
4009
|
-
|
|
4010
|
-
value = new Date()
|
|
4011
|
-
}) => {
|
|
4012
|
-
const {
|
|
4013
|
-
texts: {
|
|
4014
|
-
calendar: {
|
|
4015
|
-
actions,
|
|
4016
|
-
months
|
|
4001
|
+
// merges an external ref (optional) with an internal ref (required)
|
|
4002
|
+
const useMergedRef = ref => {
|
|
4003
|
+
const internalRef = React__default.useRef(null);
|
|
4004
|
+
React__default.useEffect(() => {
|
|
4005
|
+
if (ref) {
|
|
4006
|
+
if (typeof ref === 'function') {
|
|
4007
|
+
ref(internalRef.current);
|
|
4008
|
+
} else {
|
|
4009
|
+
ref.current = internalRef.current;
|
|
4017
4010
|
}
|
|
4018
4011
|
}
|
|
4019
|
-
}
|
|
4020
|
-
|
|
4021
|
-
|
|
4022
|
-
|
|
4023
|
-
|
|
4024
|
-
} = event.target.form;
|
|
4025
|
-
onMonthChange(new Date(year.value, month.value));
|
|
4026
|
-
};
|
|
4027
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
4028
|
-
className: "mb-2 flex items-center justify-between"
|
|
4029
|
-
}, /*#__PURE__*/React.createElement("form", {
|
|
4030
|
-
className: "inline-flex space-x-1"
|
|
4031
|
-
}, /*#__PURE__*/React.createElement("select", {
|
|
4032
|
-
className: "h-8 px-2",
|
|
4033
|
-
name: "month",
|
|
4034
|
-
onChange: handleChange,
|
|
4035
|
-
value: value.getMonth()
|
|
4036
|
-
}, months.map((month, i) => /*#__PURE__*/React.createElement("option", {
|
|
4037
|
-
key: month,
|
|
4038
|
-
value: i
|
|
4039
|
-
}, month))), /*#__PURE__*/React.createElement("select", {
|
|
4040
|
-
className: "h-8 px-2",
|
|
4041
|
-
name: "year",
|
|
4042
|
-
onChange: handleChange,
|
|
4043
|
-
value: value.getFullYear()
|
|
4044
|
-
}, years.map(year => /*#__PURE__*/React.createElement("option", {
|
|
4045
|
-
key: year,
|
|
4046
|
-
value: year
|
|
4047
|
-
}, String(year))))), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(IconButton, {
|
|
4048
|
-
appearance: "discrete",
|
|
4049
|
-
icon: "chevron-left",
|
|
4050
|
-
"aria-label": actions.previousMonth,
|
|
4051
|
-
onClick: () => onPreviousClick(),
|
|
4052
|
-
rounded: true
|
|
4053
|
-
}), /*#__PURE__*/React.createElement(IconButton, {
|
|
4054
|
-
appearance: "discrete",
|
|
4055
|
-
icon: "chevron-right",
|
|
4056
|
-
"aria-label": actions.nextMonth,
|
|
4057
|
-
onClick: () => onNextClick(),
|
|
4058
|
-
rounded: true
|
|
4059
|
-
})));
|
|
4060
|
-
});
|
|
4061
|
-
const Calendar$1 = /*#__PURE__*/React.forwardRef(function Calendar(props, ref) {
|
|
4012
|
+
}, [ref]);
|
|
4013
|
+
return internalRef;
|
|
4014
|
+
};
|
|
4015
|
+
|
|
4016
|
+
const Group = /*#__PURE__*/React.forwardRef(function Group(props, ref) {
|
|
4062
4017
|
const {
|
|
4063
|
-
|
|
4064
|
-
|
|
4065
|
-
disabledDays,
|
|
4018
|
+
as: Tag = 'span',
|
|
4019
|
+
orientation = 'horizontal',
|
|
4066
4020
|
...otherProps
|
|
4067
4021
|
} = props;
|
|
4068
|
-
const {
|
|
4069
|
-
|
|
4070
|
-
texts
|
|
4071
|
-
} = useLocalization();
|
|
4072
|
-
const [visibleMonth, setVisibleMonth] = React.useState(value !== null && value !== void 0 ? value : new Date());
|
|
4073
|
-
React.useEffect(() => {
|
|
4074
|
-
if (visibleMonth !== value) {
|
|
4075
|
-
setVisibleMonth(value !== null && value !== void 0 ? value : new Date());
|
|
4076
|
-
}
|
|
4077
|
-
}, [value]);
|
|
4078
|
-
const handleDayClick = (date, modifiers, event) => {
|
|
4079
|
-
if (modifiers.outside || modifiers.disabled) {
|
|
4080
|
-
return;
|
|
4081
|
-
}
|
|
4082
|
-
handleChange(date, event);
|
|
4083
|
-
};
|
|
4084
|
-
const handleCalendarClickToday = () => {
|
|
4085
|
-
const today = new Date();
|
|
4086
|
-
// set to midday to avoid UTC offset causing dates to be mismatched server side
|
|
4087
|
-
today.setHours(12);
|
|
4088
|
-
today.setMinutes(0);
|
|
4089
|
-
today.setSeconds(0);
|
|
4090
|
-
handleChange(today);
|
|
4091
|
-
};
|
|
4092
|
-
const className = cn('flex bg-white text-xs p-4', otherProps.className);
|
|
4093
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
4094
|
-
"data-taco": "calendar"
|
|
4095
|
-
}, /*#__PURE__*/React.createElement(ReactDayPicker, Object.assign({}, otherProps, {
|
|
4096
|
-
className: className,
|
|
4097
|
-
month: visibleMonth,
|
|
4098
|
-
selectedDays: value,
|
|
4099
|
-
locale: locale.substring(0, 2),
|
|
4100
|
-
firstDayOfWeek: 1,
|
|
4101
|
-
months: texts.calendar.months,
|
|
4102
|
-
weekdaysShort: texts.calendar.weekdaysShort,
|
|
4103
|
-
navbarElement: navProps => /*#__PURE__*/React.createElement(Navbar, Object.assign({}, navProps, {
|
|
4104
|
-
onMonthChange: setVisibleMonth,
|
|
4105
|
-
value: visibleMonth
|
|
4106
|
-
})),
|
|
4107
|
-
onDayClick: handleDayClick,
|
|
4108
|
-
onMonthChange: setVisibleMonth,
|
|
4109
|
-
onTodayButtonClick: handleCalendarClickToday,
|
|
4110
|
-
captionElement: () => null,
|
|
4111
|
-
todayButton: texts.calendar.actions.today,
|
|
4112
|
-
numberOfMonths: 1,
|
|
4113
|
-
ref: ref,
|
|
4114
|
-
disabledDays: disabledDays
|
|
4115
|
-
})));
|
|
4116
|
-
});
|
|
4117
|
-
|
|
4118
|
-
const Content$2 = /*#__PURE__*/React.forwardRef(function CardContent(externalProps, ref) {
|
|
4119
|
-
const {
|
|
4120
|
-
noPadding,
|
|
4121
|
-
...props
|
|
4122
|
-
} = externalProps;
|
|
4123
|
-
const className = cn('flex-grow overflow-auto', {
|
|
4124
|
-
'mx-4 mb-4': !noPadding
|
|
4022
|
+
const className = cn('flex gap-2', {
|
|
4023
|
+
'flex-col ': orientation === 'vertical'
|
|
4125
4024
|
}, props.className);
|
|
4126
|
-
return /*#__PURE__*/React.createElement(
|
|
4025
|
+
return /*#__PURE__*/React.createElement(Tag, Object.assign({}, otherProps, {
|
|
4127
4026
|
className: className,
|
|
4027
|
+
"data-taco": "group",
|
|
4128
4028
|
ref: ref
|
|
4129
4029
|
}));
|
|
4130
4030
|
});
|
|
4131
|
-
const Card = /*#__PURE__*/React.forwardRef(function Card(props, ref) {
|
|
4132
|
-
const {
|
|
4133
|
-
title,
|
|
4134
|
-
menu,
|
|
4135
|
-
children
|
|
4136
|
-
} = props;
|
|
4137
|
-
const className = cn('bg-white flex flex-col rounded-xl border border-solid border-radius-[12px] border-grey-300 hover:border-grey-500', props.className);
|
|
4138
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
4139
|
-
className: className,
|
|
4140
|
-
"data-taco": "card",
|
|
4141
|
-
ref: ref
|
|
4142
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
4143
|
-
className: "mx-4 mt-4 mb-2 flex"
|
|
4144
|
-
}, title && /*#__PURE__*/React.createElement("h4", {
|
|
4145
|
-
className: "mb-0 flex-grow text-left"
|
|
4146
|
-
}, title), menu ? /*#__PURE__*/React.createElement(IconButton, {
|
|
4147
|
-
icon: "ellipsis-horizontal",
|
|
4148
|
-
appearance: "discrete",
|
|
4149
|
-
menu: menu,
|
|
4150
|
-
className: "-mt-[4px]"
|
|
4151
|
-
}) : null), children);
|
|
4152
|
-
});
|
|
4153
|
-
Card.Content = Content$2;
|
|
4154
4031
|
|
|
4155
|
-
|
|
4156
|
-
const
|
|
4157
|
-
return
|
|
4032
|
+
const MenuContext = /*#__PURE__*/React.createContext(undefined);
|
|
4033
|
+
const useCurrentMenu = () => {
|
|
4034
|
+
return React.useContext(MenuContext);
|
|
4158
4035
|
};
|
|
4159
4036
|
|
|
4160
|
-
const
|
|
4037
|
+
const Content$2 = /*#__PURE__*/React.forwardRef(function MenuContent(props, ref) {
|
|
4038
|
+
const internalRef = useMergedRef(ref);
|
|
4039
|
+
const menu = useCurrentMenu();
|
|
4161
4040
|
const {
|
|
4162
|
-
|
|
4163
|
-
|
|
4164
|
-
|
|
4165
|
-
invalid,
|
|
4166
|
-
label,
|
|
4167
|
-
onChange,
|
|
4041
|
+
align = 'start',
|
|
4042
|
+
children,
|
|
4043
|
+
placement: side,
|
|
4168
4044
|
...otherProps
|
|
4169
4045
|
} = props;
|
|
4170
|
-
const
|
|
4171
|
-
|
|
4172
|
-
|
|
4173
|
-
{
|
|
4174
|
-
'border-grey-300 text-blue-500 hover:text-blue-300 focus:border-blue-500 focus:hover:border-blue-300': !props.disabled && !invalid,
|
|
4175
|
-
'border-grey-200 text-blue-300 cursor-not-allowed': props.disabled,
|
|
4176
|
-
'bg-[rgba(255,255,0,0.2)] disabled:bg-[rgba(255,255,0,0.075)]': highlighted,
|
|
4177
|
-
'border-red-500 text-red-500 hover:text-red-300 hover:border-red-300 focus:border-red-500 focus:hover:border-red-300': invalid && !props.disabled,
|
|
4178
|
-
'self-start': !!label
|
|
4179
|
-
}, props.className);
|
|
4180
|
-
let handleChange;
|
|
4181
|
-
if (onChange) {
|
|
4182
|
-
handleChange = checked => onChange(checked === 'indeterminate' ? false : checked);
|
|
4183
|
-
}
|
|
4184
|
-
let labelledByProps = null;
|
|
4185
|
-
if (label) {
|
|
4186
|
-
labelledByProps = {
|
|
4187
|
-
'aria-labelledby': `${id}-label`,
|
|
4188
|
-
id
|
|
4189
|
-
};
|
|
4190
|
-
}
|
|
4191
|
-
// the enter keyboard shortcut isn't supported by default, but we want it
|
|
4192
|
-
const handleKeyDown = event => {
|
|
4193
|
-
if (event.key === 'Enter') {
|
|
4194
|
-
event.currentTarget.click();
|
|
4195
|
-
}
|
|
4196
|
-
};
|
|
4197
|
-
const element = /*#__PURE__*/React.createElement(CheckboxPrimitive.Root, Object.assign({}, otherProps, labelledByProps, {
|
|
4198
|
-
"data-taco": "checkbox",
|
|
4199
|
-
checked: indeterminate ? 'indeterminate' : checked,
|
|
4046
|
+
const className = cn('border border-transparent rounded block outline-none p-1 yt-shadow wcag-white', props.className);
|
|
4047
|
+
return /*#__PURE__*/React.createElement(DropdownMenuPrimitive.Portal, null, /*#__PURE__*/React.createElement(DropdownMenuPrimitive.Content, Object.assign({}, otherProps, {
|
|
4048
|
+
align: align,
|
|
4200
4049
|
className: className,
|
|
4201
|
-
|
|
4202
|
-
|
|
4203
|
-
|
|
4204
|
-
|
|
4205
|
-
|
|
4206
|
-
|
|
4207
|
-
|
|
4208
|
-
|
|
4209
|
-
})));
|
|
4210
|
-
if (label) {
|
|
4211
|
-
const labelContainerClassName = cn('flex items-center cursor-pointer gap-2', {
|
|
4212
|
-
'cursor-not-allowed text-grey-300': props.disabled
|
|
4213
|
-
});
|
|
4214
|
-
return /*#__PURE__*/React.createElement("span", {
|
|
4215
|
-
className: labelContainerClassName
|
|
4216
|
-
}, element, /*#__PURE__*/React.createElement("label", {
|
|
4217
|
-
htmlFor: id,
|
|
4218
|
-
id: `${id}-label`
|
|
4219
|
-
}, label));
|
|
4220
|
-
}
|
|
4221
|
-
return element;
|
|
4050
|
+
"data-taco": "menu",
|
|
4051
|
+
side: side,
|
|
4052
|
+
sideOffset: 3,
|
|
4053
|
+
style: {
|
|
4054
|
+
minWidth: menu === null || menu === void 0 ? void 0 : menu.minWidth
|
|
4055
|
+
},
|
|
4056
|
+
ref: internalRef
|
|
4057
|
+
}), children));
|
|
4222
4058
|
});
|
|
4223
|
-
Checkbox.displayName = 'Checkbox';
|
|
4224
4059
|
|
|
4225
|
-
const
|
|
4226
|
-
|
|
4227
|
-
|
|
4228
|
-
|
|
4229
|
-
|
|
4230
|
-
|
|
4231
|
-
|
|
4232
|
-
|
|
4233
|
-
|
|
4234
|
-
|
|
4235
|
-
|
|
4060
|
+
const Icon$1 = ({
|
|
4061
|
+
name
|
|
4062
|
+
}) => /*#__PURE__*/React.createElement("span", {
|
|
4063
|
+
className: "absolute left-0 ml-1"
|
|
4064
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
4065
|
+
className: "-ml-px -mt-px !h-5 !w-5",
|
|
4066
|
+
name: name
|
|
4067
|
+
}));
|
|
4068
|
+
const useItemStyling = ({
|
|
4069
|
+
disabled,
|
|
4070
|
+
indented,
|
|
4071
|
+
className
|
|
4072
|
+
}) => {
|
|
4073
|
+
const menu = useCurrentMenu();
|
|
4074
|
+
React.useEffect(() => {
|
|
4075
|
+
if (indented && !(menu !== null && menu !== void 0 && menu.indented)) {
|
|
4076
|
+
menu === null || menu === void 0 ? void 0 : menu.registerIndentation();
|
|
4077
|
+
}
|
|
4078
|
+
}, [indented]);
|
|
4079
|
+
return cn('flex items-center justify-start h-8 pr-1.5 relative rounded w-full focus:outline-none group', {
|
|
4080
|
+
'pl-7': menu === null || menu === void 0 ? void 0 : menu.indented,
|
|
4081
|
+
'pl-1.5': !(menu !== null && menu !== void 0 && menu.indented),
|
|
4082
|
+
'cursor-pointer text-black hover:wcag-grey-200 data-[highlighted]:wcag-grey-200': !disabled,
|
|
4083
|
+
'cursor-not-allowed hover:bg-white text-grey-300': disabled
|
|
4084
|
+
}, className);
|
|
4085
|
+
};
|
|
4086
|
+
const Shortcut = props => {
|
|
4087
|
+
return /*#__PURE__*/React.createElement("span", Object.assign({}, props, {
|
|
4088
|
+
className: "text-grey-700 ml-auto pl-3"
|
|
4089
|
+
}));
|
|
4090
|
+
};
|
|
4091
|
+
const Item$1 = /*#__PURE__*/React.forwardRef(function MenuItem(props, ref) {
|
|
4092
|
+
var _props$disabled;
|
|
4093
|
+
const {
|
|
4094
|
+
dialog,
|
|
4095
|
+
icon,
|
|
4096
|
+
onClick,
|
|
4097
|
+
shortcut,
|
|
4098
|
+
...otherProps
|
|
4099
|
+
} = props;
|
|
4100
|
+
const menu = useCurrentMenu();
|
|
4101
|
+
const className = useItemStyling({
|
|
4102
|
+
disabled: props.disabled,
|
|
4103
|
+
indented: !!icon,
|
|
4104
|
+
className: props.className
|
|
4105
|
+
});
|
|
4106
|
+
const disabled = (_props$disabled = props.disabled) !== null && _props$disabled !== void 0 ? _props$disabled : props['aria-disabled'];
|
|
4107
|
+
let handleClick;
|
|
4108
|
+
// radix has a bug that does not disable clicks when disabled is set on items
|
|
4109
|
+
if (disabled) {
|
|
4110
|
+
handleClick = event => {
|
|
4111
|
+
event.preventDefault();
|
|
4112
|
+
event.stopPropagation();
|
|
4113
|
+
};
|
|
4114
|
+
}
|
|
4115
|
+
const handleSelect = event => {
|
|
4116
|
+
if (onClick) {
|
|
4117
|
+
onClick(event);
|
|
4118
|
+
}
|
|
4119
|
+
if (props['aria-haspopup'] || typeof dialog === 'function') {
|
|
4120
|
+
event.preventDefault();
|
|
4121
|
+
}
|
|
4122
|
+
};
|
|
4123
|
+
let button = /*#__PURE__*/React.createElement(DropdownMenuPrimitive.Item, Object.assign({}, otherProps, {
|
|
4124
|
+
className: className,
|
|
4125
|
+
onClick: handleClick,
|
|
4126
|
+
onSelect: handleSelect,
|
|
4127
|
+
ref: ref
|
|
4128
|
+
}), icon && /*#__PURE__*/React.createElement(Icon$1, {
|
|
4129
|
+
name: icon
|
|
4130
|
+
}), props.children, shortcut && /*#__PURE__*/React.createElement(Shortcut, null, shortcut));
|
|
4131
|
+
if (typeof dialog === 'function') {
|
|
4132
|
+
button = dialog({
|
|
4133
|
+
trigger: button,
|
|
4134
|
+
onClose: menu === null || menu === void 0 ? void 0 : menu.close
|
|
4135
|
+
});
|
|
4136
|
+
}
|
|
4137
|
+
return button;
|
|
4138
|
+
});
|
|
4139
|
+
|
|
4140
|
+
const Link = /*#__PURE__*/React.forwardRef(function MenuLink(props, ref) {
|
|
4141
|
+
const {
|
|
4142
|
+
href,
|
|
4143
|
+
icon,
|
|
4144
|
+
onClick,
|
|
4145
|
+
...otherProps
|
|
4146
|
+
} = props;
|
|
4147
|
+
const menu = useCurrentMenu();
|
|
4148
|
+
const className = useItemStyling({
|
|
4149
|
+
disabled: props.disabled,
|
|
4150
|
+
indented: !!icon,
|
|
4151
|
+
className: props.className
|
|
4152
|
+
});
|
|
4153
|
+
const handleClick = event => {
|
|
4154
|
+
onClick === null || onClick === void 0 ? void 0 : onClick(event);
|
|
4155
|
+
menu === null || menu === void 0 ? void 0 : menu.close();
|
|
4156
|
+
};
|
|
4157
|
+
return /*#__PURE__*/React.createElement(DropdownMenuPrimitive.Item, Object.assign({}, otherProps, {
|
|
4158
|
+
asChild: true,
|
|
4159
|
+
className: className,
|
|
4160
|
+
ref: ref,
|
|
4161
|
+
onClick: handleClick
|
|
4162
|
+
}), /*#__PURE__*/React.createElement("a", {
|
|
4163
|
+
href: href,
|
|
4164
|
+
target: "_blank"
|
|
4165
|
+
}, icon && /*#__PURE__*/React.createElement(Icon$1, {
|
|
4166
|
+
name: icon
|
|
4167
|
+
}), props.children));
|
|
4168
|
+
});
|
|
4169
|
+
|
|
4170
|
+
const Trigger$2 = /*#__PURE__*/React.forwardRef(function MenuTrigger(props, ref) {
|
|
4171
|
+
const menu = useCurrentMenu();
|
|
4172
|
+
const internalRef = useMergedRef(ref);
|
|
4173
|
+
React.useEffect(() => {
|
|
4174
|
+
if (internalRef.current) {
|
|
4175
|
+
menu === null || menu === void 0 ? void 0 : menu.setMinWidth(internalRef.current.getBoundingClientRect().width);
|
|
4176
|
+
}
|
|
4177
|
+
}, [internalRef]);
|
|
4178
|
+
return /*#__PURE__*/React.createElement(DropdownMenuPrimitive.Trigger, Object.assign({}, props, {
|
|
4179
|
+
asChild: true,
|
|
4180
|
+
ref: internalRef
|
|
4181
|
+
}));
|
|
4182
|
+
});
|
|
4183
|
+
|
|
4184
|
+
const Checkbox = /*#__PURE__*/React.forwardRef(function MenuCheckboxItem(props, ref) {
|
|
4185
|
+
const {
|
|
4186
|
+
checked,
|
|
4187
|
+
children,
|
|
4188
|
+
onChange,
|
|
4189
|
+
...otherProps
|
|
4190
|
+
} = props;
|
|
4191
|
+
const className = useItemStyling({
|
|
4192
|
+
disabled: props.disabled,
|
|
4193
|
+
indented: true,
|
|
4194
|
+
className: props.className
|
|
4195
|
+
});
|
|
4196
|
+
return /*#__PURE__*/React.createElement(DropdownMenuPrimitive.CheckboxItem, Object.assign({}, otherProps, {
|
|
4197
|
+
checked: checked,
|
|
4198
|
+
className: className,
|
|
4199
|
+
onCheckedChange: onChange,
|
|
4200
|
+
ref: ref
|
|
4201
|
+
}), /*#__PURE__*/React.createElement(DropdownMenuPrimitive.ItemIndicator, {
|
|
4202
|
+
className: "absolute left-0 ml-1.5"
|
|
4203
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
4204
|
+
name: "tick",
|
|
4205
|
+
className: "-ml-px !h-4 !w-4"
|
|
4206
|
+
})), children);
|
|
4207
|
+
});
|
|
4208
|
+
|
|
4209
|
+
const getRadioGroupItemValueAsString = value => String(value !== null && value !== void 0 ? value : '');
|
|
4210
|
+
const findByValue = (values, valueAsString) => values.find(value => getRadioGroupItemValueAsString(value) === valueAsString);
|
|
4211
|
+
const RadioGroupContext = /*#__PURE__*/React.createContext({
|
|
4212
|
+
disabled: false,
|
|
4213
|
+
invalid: false
|
|
4214
|
+
});
|
|
4215
|
+
const RadioGroupItem = /*#__PURE__*/React.forwardRef(function RadioGroupItem(props, ref) {
|
|
4216
|
+
const context = React.useContext(RadioGroupContext);
|
|
4217
|
+
const {
|
|
4218
|
+
children,
|
|
4219
|
+
value,
|
|
4220
|
+
...otherProps
|
|
4221
|
+
} = props;
|
|
4222
|
+
const isDisabled = context.disabled || props.disabled;
|
|
4223
|
+
const className = cn('flex flex-shrink-0 self-start items-center justify-center h-4 w-4 mt-[0.2rem] rounded-full bg-white border-2', {
|
|
4224
|
+
'border-grey-300 hover:border-4 focus:yt-focus aria-checked:bg-blue-500 aria-checked:border-blue-500 hover:aria-checked:border-blue-300': !isDisabled && !context.invalid,
|
|
4225
|
+
'border-grey-200 cursor-not-allowed aria-checked:bg-blue-300 aria-checked:border-blue-300 ': isDisabled,
|
|
4226
|
+
'border-red-500 hover:border-4 text-red-500 focus:border-red-500 focus:yt-focus-red aria-checked:bg-red-500 aria-checked:border-red': context.invalid && !isDisabled
|
|
4227
|
+
});
|
|
4228
|
+
const labelClassName = cn('flex items-center gap-2', {
|
|
4229
|
+
'cursor-pointer': !isDisabled,
|
|
4230
|
+
'cursor-not-allowed text-grey-300': isDisabled
|
|
4231
|
+
}, props.className);
|
|
4232
|
+
return /*#__PURE__*/React.createElement("label", {
|
|
4233
|
+
className: labelClassName
|
|
4234
|
+
}, /*#__PURE__*/React.createElement(RadioGroupPrimitive.Item, Object.assign({}, otherProps, {
|
|
4235
|
+
className: className,
|
|
4236
|
+
disabled: isDisabled,
|
|
4237
|
+
ref: ref,
|
|
4238
|
+
value: getRadioGroupItemValueAsString(value)
|
|
4239
|
+
}), /*#__PURE__*/React.createElement(RadioGroupPrimitive.Indicator, {
|
|
4240
|
+
className: "h-2 w-2 rounded-full bg-white"
|
|
4241
|
+
})), children);
|
|
4242
|
+
});
|
|
4243
|
+
const useRadioGroup = props => {
|
|
4244
|
+
const {
|
|
4245
|
+
children,
|
|
4246
|
+
defaultValue,
|
|
4247
|
+
disabled,
|
|
4248
|
+
invalid,
|
|
4249
|
+
onChange,
|
|
4250
|
+
orientation = 'vertical',
|
|
4251
|
+
value,
|
|
4252
|
+
...otherProps
|
|
4253
|
+
} = props;
|
|
4254
|
+
const values = React.useMemo(() => {
|
|
4255
|
+
const radioGroupItemValues = [];
|
|
4256
|
+
React.Children.forEach(children, child => {
|
|
4257
|
+
if ( /*#__PURE__*/React.isValidElement(child)) {
|
|
4258
|
+
radioGroupItemValues.push(child.props.value);
|
|
4259
|
+
}
|
|
4260
|
+
});
|
|
4261
|
+
return radioGroupItemValues;
|
|
4262
|
+
}, [children]);
|
|
4263
|
+
const context = React.useMemo(() => ({
|
|
4264
|
+
disabled: disabled !== null && disabled !== void 0 ? disabled : false,
|
|
4265
|
+
invalid: invalid !== null && invalid !== void 0 ? invalid : false
|
|
4266
|
+
}), [disabled, invalid]);
|
|
4267
|
+
let valueProps;
|
|
4268
|
+
if (onChange !== undefined) {
|
|
4269
|
+
const handleChange = value => onChange(findByValue(values, value));
|
|
4270
|
+
valueProps = {
|
|
4271
|
+
onValueChange: handleChange,
|
|
4272
|
+
value: value !== undefined ? getRadioGroupItemValueAsString(value) : undefined
|
|
4273
|
+
};
|
|
4274
|
+
} else {
|
|
4275
|
+
valueProps = {
|
|
4276
|
+
defaultValue: defaultValue !== undefined ? getRadioGroupItemValueAsString(defaultValue) : undefined
|
|
4277
|
+
};
|
|
4278
|
+
}
|
|
4279
|
+
return {
|
|
4280
|
+
context,
|
|
4281
|
+
props: {
|
|
4282
|
+
...otherProps,
|
|
4283
|
+
...valueProps,
|
|
4284
|
+
children,
|
|
4285
|
+
disabled,
|
|
4286
|
+
orientation
|
|
4287
|
+
}
|
|
4288
|
+
};
|
|
4289
|
+
};
|
|
4290
|
+
const RadioGroup = /*#__PURE__*/React.forwardRef(function RadioGroup(props, ref) {
|
|
4291
|
+
const {
|
|
4292
|
+
context,
|
|
4293
|
+
props: otherProps
|
|
4294
|
+
} = useRadioGroup(props);
|
|
4295
|
+
const className = cn('flex items-start gap-y-2', {
|
|
4296
|
+
'flex-wrap gap-x-4 ': otherProps.orientation === 'horizontal',
|
|
4297
|
+
'flex-col': otherProps.orientation === 'vertical'
|
|
4298
|
+
}, otherProps.className);
|
|
4299
|
+
return /*#__PURE__*/React.createElement(RadioGroupContext.Provider, {
|
|
4300
|
+
value: context
|
|
4301
|
+
}, /*#__PURE__*/React.createElement(RadioGroupPrimitive.Root, Object.assign({}, otherProps, {
|
|
4302
|
+
className: className,
|
|
4303
|
+
"data-taco": "radio-group",
|
|
4304
|
+
ref: ref
|
|
4305
|
+
})));
|
|
4306
|
+
});
|
|
4307
|
+
RadioGroup.Item = RadioGroupItem;
|
|
4308
|
+
|
|
4309
|
+
const RadioItem = props => {
|
|
4310
|
+
const context = React.useContext(MenuRadioGroupContext);
|
|
4311
|
+
const {
|
|
4312
|
+
children,
|
|
4313
|
+
value,
|
|
4314
|
+
...otherProps
|
|
4315
|
+
} = props;
|
|
4316
|
+
const disabled = context.disabled || props.disabled;
|
|
4317
|
+
const className = useItemStyling({
|
|
4318
|
+
disabled: disabled,
|
|
4319
|
+
indented: true,
|
|
4320
|
+
className: props.className
|
|
4321
|
+
});
|
|
4322
|
+
return /*#__PURE__*/React.createElement(DropdownMenuPrimitive.RadioItem, Object.assign({}, otherProps, {
|
|
4323
|
+
className: className,
|
|
4324
|
+
disabled: disabled,
|
|
4325
|
+
value: getRadioGroupItemValueAsString(value)
|
|
4326
|
+
}), /*#__PURE__*/React.createElement(DropdownMenuPrimitive.ItemIndicator, {
|
|
4327
|
+
className: "absolute left-0 ml-1.5"
|
|
4328
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
4329
|
+
className: "ml-1 flex h-1.5 w-1.5 rounded-full bg-current "
|
|
4330
|
+
})), children);
|
|
4331
|
+
};
|
|
4332
|
+
const MenuRadioGroupContext = /*#__PURE__*/React.createContext({
|
|
4333
|
+
disabled: false
|
|
4334
|
+
});
|
|
4335
|
+
const RadioGroup$1 = /*#__PURE__*/React.forwardRef(function MenuRadioItem(props, ref) {
|
|
4336
|
+
const {
|
|
4337
|
+
context,
|
|
4338
|
+
props: otherProps
|
|
4339
|
+
} = useRadioGroup(props);
|
|
4340
|
+
const className = cn('flex flex-col', props.className);
|
|
4341
|
+
return /*#__PURE__*/React.createElement(MenuRadioGroupContext.Provider, {
|
|
4342
|
+
value: context
|
|
4343
|
+
}, /*#__PURE__*/React.createElement(DropdownMenuPrimitive.RadioGroup, Object.assign({}, otherProps, {
|
|
4344
|
+
className: className,
|
|
4345
|
+
ref: ref
|
|
4346
|
+
})));
|
|
4347
|
+
});
|
|
4348
|
+
RadioGroup$1.Item = RadioItem;
|
|
4349
|
+
|
|
4350
|
+
const Separator = () => {
|
|
4351
|
+
return /*#__PURE__*/React.createElement(DropdownMenuPrimitive.Separator, {
|
|
4352
|
+
className: "bg-grey-300 my-1 h-px"
|
|
4353
|
+
});
|
|
4354
|
+
};
|
|
4355
|
+
|
|
4356
|
+
const Header = /*#__PURE__*/React.forwardRef(function MenuHeader(props, ref) {
|
|
4357
|
+
const menu = useCurrentMenu();
|
|
4358
|
+
const className = cn('flex items-center justify-start h-7 pr-1.5 text-xs text-grey-700', {
|
|
4359
|
+
'pl-7': menu === null || menu === void 0 ? void 0 : menu.indented,
|
|
4360
|
+
'pl-1.5': !(menu !== null && menu !== void 0 && menu.indented)
|
|
4361
|
+
}, props.className);
|
|
4362
|
+
return /*#__PURE__*/React.createElement(DropdownMenuPrimitive.Label, Object.assign({}, props, {
|
|
4363
|
+
className: className,
|
|
4364
|
+
ref: ref
|
|
4365
|
+
}));
|
|
4366
|
+
});
|
|
4367
|
+
|
|
4368
|
+
const Menu$1 = /*#__PURE__*/React.forwardRef(function Menu(externalProps, ref) {
|
|
4369
|
+
const {
|
|
4370
|
+
children,
|
|
4371
|
+
defaultOpen: defaultProp,
|
|
4372
|
+
onChange,
|
|
4373
|
+
open: prop,
|
|
4374
|
+
trigger,
|
|
4375
|
+
...props
|
|
4376
|
+
} = externalProps;
|
|
4377
|
+
const [indented, setIndented] = React.useState(false);
|
|
4378
|
+
const [minWidth, setMinWidth] = React.useState(undefined);
|
|
4379
|
+
const [open, setOpen] = reactUseControllableState.useControllableState({
|
|
4380
|
+
// uncontrolled
|
|
4381
|
+
defaultProp,
|
|
4382
|
+
// controlled
|
|
4383
|
+
onChange,
|
|
4384
|
+
prop
|
|
4385
|
+
});
|
|
4386
|
+
const context = React.useMemo(() => ({
|
|
4387
|
+
indented,
|
|
4388
|
+
registerIndentation: () => setIndented(true),
|
|
4389
|
+
minWidth,
|
|
4390
|
+
setMinWidth: width => setMinWidth(width),
|
|
4391
|
+
close: () => setOpen(false)
|
|
4392
|
+
}), [indented, minWidth]);
|
|
4393
|
+
return /*#__PURE__*/React.createElement(MenuContext.Provider, {
|
|
4394
|
+
value: context
|
|
4395
|
+
}, /*#__PURE__*/React.createElement(DropdownMenuPrimitive.Root, Object.assign({}, props, {
|
|
4396
|
+
modal: false,
|
|
4397
|
+
open: open,
|
|
4398
|
+
onOpenChange: setOpen
|
|
4399
|
+
}), trigger && /*#__PURE__*/React.createElement(Trigger$2, {
|
|
4400
|
+
ref: ref
|
|
4401
|
+
}, trigger), children));
|
|
4402
|
+
});
|
|
4403
|
+
Menu$1.Trigger = Trigger$2;
|
|
4404
|
+
Menu$1.Content = Content$2;
|
|
4405
|
+
Menu$1.Item = Item$1;
|
|
4406
|
+
Menu$1.Link = Link;
|
|
4407
|
+
Menu$1.Checkbox = Checkbox;
|
|
4408
|
+
Menu$1.Separator = Separator;
|
|
4409
|
+
Menu$1.Header = Header;
|
|
4410
|
+
Menu$1.RadioGroup = RadioGroup$1;
|
|
4411
|
+
|
|
4412
|
+
const useIntersectionObserver = (ref, offset) => {
|
|
4413
|
+
const [intersectedIndexes, setIntersectedIndexes] = React__default.useState({});
|
|
4414
|
+
const handleIntersection = (entries, observer) => {
|
|
4415
|
+
if (observer.root) {
|
|
4416
|
+
const children = Array.from(observer.root.children);
|
|
4417
|
+
const map = {};
|
|
4418
|
+
entries.forEach(entry => {
|
|
4419
|
+
// entries only contains the items being intersected not all children of the ref
|
|
4420
|
+
// so use root and the the entry being intersected to find its real index
|
|
4421
|
+
// on first mount this is different - all children are present
|
|
4422
|
+
map[children.indexOf(entry.target)] = entry.isIntersecting;
|
|
4423
|
+
});
|
|
4424
|
+
setIntersectedIndexes(prev => ({
|
|
4425
|
+
...prev,
|
|
4426
|
+
...map
|
|
4427
|
+
}));
|
|
4428
|
+
}
|
|
4429
|
+
};
|
|
4430
|
+
const intersectedChildIndex = React__default.useMemo(() => {
|
|
4431
|
+
const index = Object.values(intersectedIndexes).indexOf(false);
|
|
4432
|
+
return index > -1 ? index : undefined;
|
|
4433
|
+
}, [intersectedIndexes]);
|
|
4434
|
+
const hasRootMargin = intersectedChildIndex !== undefined && offset;
|
|
4435
|
+
React__default.useEffect(() => {
|
|
4436
|
+
const observer = new IntersectionObserver(handleIntersection, {
|
|
4437
|
+
root: ref.current,
|
|
4438
|
+
// offset the button, but only after the first item has been intersected
|
|
4439
|
+
rootMargin: hasRootMargin ? `0px -${offset}px 0px 0px` : undefined,
|
|
4440
|
+
threshold: 1
|
|
4441
|
+
});
|
|
4442
|
+
if (observer.root) {
|
|
4443
|
+
Array.from(observer.root.children).forEach(item => {
|
|
4444
|
+
if (item.getAttribute('data-intersection-observer') !== 'ignore') {
|
|
4445
|
+
observer.observe(item);
|
|
4446
|
+
}
|
|
4447
|
+
});
|
|
4448
|
+
}
|
|
4449
|
+
return () => {
|
|
4450
|
+
observer.disconnect();
|
|
4451
|
+
};
|
|
4452
|
+
}, [hasRootMargin]);
|
|
4453
|
+
return intersectedChildIndex;
|
|
4454
|
+
};
|
|
4455
|
+
|
|
4456
|
+
const sanitizeButtonPropsForMenuItem = props => {
|
|
4457
|
+
const {
|
|
4458
|
+
appearance: _1,
|
|
4459
|
+
drawer: _2,
|
|
4460
|
+
fluid: _3,
|
|
4461
|
+
hanger: _4,
|
|
4462
|
+
menu: _5,
|
|
4463
|
+
popover: _6,
|
|
4464
|
+
tooltip: _7,
|
|
4465
|
+
...attributes
|
|
4466
|
+
} = props;
|
|
4467
|
+
return attributes;
|
|
4468
|
+
};
|
|
4469
|
+
const OFFSET = 32 + 8;
|
|
4470
|
+
const ButtonGroup = /*#__PURE__*/React__default.forwardRef(function ButtonGroup(props, ref) {
|
|
4471
|
+
const internalRef = useMergedRef(ref);
|
|
4472
|
+
const intersectedChildIndex = useIntersectionObserver(internalRef, OFFSET);
|
|
4473
|
+
const children = React__default.Children.toArray(props.children);
|
|
4474
|
+
const hidden = intersectedChildIndex !== undefined ? children.slice(intersectedChildIndex) : [];
|
|
4475
|
+
return /*#__PURE__*/React__default.createElement(Group, Object.assign({}, props, {
|
|
4476
|
+
ref: internalRef
|
|
4477
|
+
}), children.map((child, index) => /*#__PURE__*/React__default.cloneElement(child, {
|
|
4478
|
+
className: cn(child.props.className, {
|
|
4479
|
+
visible: intersectedChildIndex === undefined || index < intersectedChildIndex,
|
|
4480
|
+
'invisible order-[100] pointer-events-none': intersectedChildIndex !== undefined && index >= intersectedChildIndex
|
|
4481
|
+
})
|
|
4482
|
+
})), hidden.length ? /*#__PURE__*/React__default.createElement(IconButton, {
|
|
4483
|
+
className: "sticky right-0 order-[99]",
|
|
4484
|
+
"data-intesection-observer": "ignore",
|
|
4485
|
+
icon: "more",
|
|
4486
|
+
menu: menuProps => /*#__PURE__*/React__default.createElement(Menu$1, Object.assign({}, menuProps), /*#__PURE__*/React__default.createElement(Menu$1.Content, null, hidden.map((button, index) => /*#__PURE__*/React__default.createElement(Menu$1.Item, Object.assign({
|
|
4487
|
+
key: index
|
|
4488
|
+
}, sanitizeButtonPropsForMenuItem(button.props))))))
|
|
4489
|
+
}) : null);
|
|
4490
|
+
});
|
|
4491
|
+
|
|
4492
|
+
const thisYear = /*#__PURE__*/new Date().getFullYear();
|
|
4493
|
+
const years = [];
|
|
4494
|
+
for (let i = thisYear - 50; i <= thisYear + 10; i += 1) {
|
|
4495
|
+
years.push(i);
|
|
4496
|
+
}
|
|
4497
|
+
const Navbar = /*#__PURE__*/React.memo(({
|
|
4498
|
+
onMonthChange,
|
|
4499
|
+
onNextClick,
|
|
4500
|
+
onPreviousClick,
|
|
4501
|
+
value = new Date()
|
|
4502
|
+
}) => {
|
|
4503
|
+
const {
|
|
4504
|
+
texts: {
|
|
4505
|
+
calendar: {
|
|
4506
|
+
actions,
|
|
4507
|
+
months
|
|
4508
|
+
}
|
|
4509
|
+
}
|
|
4510
|
+
} = useLocalization();
|
|
4511
|
+
const handleChange = function handleChange(event) {
|
|
4512
|
+
const {
|
|
4513
|
+
year,
|
|
4514
|
+
month
|
|
4515
|
+
} = event.target.form;
|
|
4516
|
+
onMonthChange(new Date(year.value, month.value));
|
|
4517
|
+
};
|
|
4518
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
4519
|
+
className: "mb-2 flex items-center justify-between"
|
|
4520
|
+
}, /*#__PURE__*/React.createElement("form", {
|
|
4521
|
+
className: "inline-flex space-x-1"
|
|
4522
|
+
}, /*#__PURE__*/React.createElement("select", {
|
|
4523
|
+
className: "h-8 px-2",
|
|
4524
|
+
name: "month",
|
|
4525
|
+
onChange: handleChange,
|
|
4526
|
+
value: value.getMonth()
|
|
4527
|
+
}, months.map((month, i) => /*#__PURE__*/React.createElement("option", {
|
|
4528
|
+
key: month,
|
|
4529
|
+
value: i
|
|
4530
|
+
}, month))), /*#__PURE__*/React.createElement("select", {
|
|
4531
|
+
className: "h-8 px-2",
|
|
4532
|
+
name: "year",
|
|
4533
|
+
onChange: handleChange,
|
|
4534
|
+
value: value.getFullYear()
|
|
4535
|
+
}, years.map(year => /*#__PURE__*/React.createElement("option", {
|
|
4536
|
+
key: year,
|
|
4537
|
+
value: year
|
|
4538
|
+
}, String(year))))), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(IconButton, {
|
|
4539
|
+
appearance: "discrete",
|
|
4540
|
+
icon: "chevron-left",
|
|
4541
|
+
"aria-label": actions.previousMonth,
|
|
4542
|
+
onClick: () => onPreviousClick(),
|
|
4543
|
+
rounded: true
|
|
4544
|
+
}), /*#__PURE__*/React.createElement(IconButton, {
|
|
4545
|
+
appearance: "discrete",
|
|
4546
|
+
icon: "chevron-right",
|
|
4547
|
+
"aria-label": actions.nextMonth,
|
|
4548
|
+
onClick: () => onNextClick(),
|
|
4549
|
+
rounded: true
|
|
4550
|
+
})));
|
|
4551
|
+
});
|
|
4552
|
+
const Calendar$1 = /*#__PURE__*/React.forwardRef(function Calendar(props, ref) {
|
|
4553
|
+
const {
|
|
4554
|
+
onChange: handleChange,
|
|
4555
|
+
value,
|
|
4556
|
+
disabledDays,
|
|
4557
|
+
...otherProps
|
|
4558
|
+
} = props;
|
|
4559
|
+
const {
|
|
4560
|
+
locale,
|
|
4561
|
+
texts
|
|
4562
|
+
} = useLocalization();
|
|
4563
|
+
const [visibleMonth, setVisibleMonth] = React.useState(value !== null && value !== void 0 ? value : new Date());
|
|
4564
|
+
React.useEffect(() => {
|
|
4565
|
+
if (visibleMonth !== value) {
|
|
4566
|
+
setVisibleMonth(value !== null && value !== void 0 ? value : new Date());
|
|
4567
|
+
}
|
|
4568
|
+
}, [value]);
|
|
4569
|
+
const handleDayClick = (date, modifiers, event) => {
|
|
4570
|
+
if (modifiers.outside || modifiers.disabled) {
|
|
4571
|
+
return;
|
|
4572
|
+
}
|
|
4573
|
+
handleChange(date, event);
|
|
4574
|
+
};
|
|
4575
|
+
const handleCalendarClickToday = () => {
|
|
4576
|
+
const today = new Date();
|
|
4577
|
+
// set to midday to avoid UTC offset causing dates to be mismatched server side
|
|
4578
|
+
today.setHours(12);
|
|
4579
|
+
today.setMinutes(0);
|
|
4580
|
+
today.setSeconds(0);
|
|
4581
|
+
handleChange(today);
|
|
4582
|
+
};
|
|
4583
|
+
const className = cn('flex bg-white text-xs p-4', otherProps.className);
|
|
4584
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
4585
|
+
"data-taco": "calendar"
|
|
4586
|
+
}, /*#__PURE__*/React.createElement(ReactDayPicker, Object.assign({}, otherProps, {
|
|
4587
|
+
className: className,
|
|
4588
|
+
month: visibleMonth,
|
|
4589
|
+
selectedDays: value,
|
|
4590
|
+
locale: locale.substring(0, 2),
|
|
4591
|
+
firstDayOfWeek: 1,
|
|
4592
|
+
months: texts.calendar.months,
|
|
4593
|
+
weekdaysShort: texts.calendar.weekdaysShort,
|
|
4594
|
+
navbarElement: navProps => /*#__PURE__*/React.createElement(Navbar, Object.assign({}, navProps, {
|
|
4595
|
+
onMonthChange: setVisibleMonth,
|
|
4596
|
+
value: visibleMonth
|
|
4597
|
+
})),
|
|
4598
|
+
onDayClick: handleDayClick,
|
|
4599
|
+
onMonthChange: setVisibleMonth,
|
|
4600
|
+
onTodayButtonClick: handleCalendarClickToday,
|
|
4601
|
+
captionElement: () => null,
|
|
4602
|
+
todayButton: texts.calendar.actions.today,
|
|
4603
|
+
numberOfMonths: 1,
|
|
4604
|
+
ref: ref,
|
|
4605
|
+
disabledDays: disabledDays
|
|
4606
|
+
})));
|
|
4607
|
+
});
|
|
4608
|
+
|
|
4609
|
+
const Content$3 = /*#__PURE__*/React.forwardRef(function CardContent(externalProps, ref) {
|
|
4610
|
+
const {
|
|
4611
|
+
noPadding,
|
|
4612
|
+
...props
|
|
4613
|
+
} = externalProps;
|
|
4614
|
+
const className = cn('flex-grow overflow-auto', {
|
|
4615
|
+
'mx-4 mb-4': !noPadding
|
|
4616
|
+
}, props.className);
|
|
4617
|
+
return /*#__PURE__*/React.createElement("div", Object.assign({}, props, {
|
|
4618
|
+
className: className,
|
|
4619
|
+
ref: ref
|
|
4620
|
+
}));
|
|
4621
|
+
});
|
|
4622
|
+
const Card = /*#__PURE__*/React.forwardRef(function Card(props, ref) {
|
|
4623
|
+
const {
|
|
4624
|
+
title,
|
|
4625
|
+
menu,
|
|
4626
|
+
children
|
|
4627
|
+
} = props;
|
|
4628
|
+
const className = cn('bg-white flex flex-col rounded-xl border border-solid border-radius-[12px] border-grey-300 hover:border-grey-500', props.className);
|
|
4629
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
4630
|
+
className: className,
|
|
4631
|
+
"data-taco": "card",
|
|
4632
|
+
ref: ref
|
|
4633
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
4634
|
+
className: "mx-4 mt-4 mb-2 flex"
|
|
4635
|
+
}, title && /*#__PURE__*/React.createElement("h4", {
|
|
4636
|
+
className: "mb-0 flex-grow text-left"
|
|
4637
|
+
}, title), menu ? /*#__PURE__*/React.createElement(IconButton, {
|
|
4638
|
+
icon: "ellipsis-horizontal",
|
|
4639
|
+
appearance: "discrete",
|
|
4640
|
+
menu: menu,
|
|
4641
|
+
className: "-mt-[4px]"
|
|
4642
|
+
}) : null), children);
|
|
4643
|
+
});
|
|
4644
|
+
Card.Content = Content$3;
|
|
4645
|
+
|
|
4646
|
+
// React 18 has this built-in, when we upgrade this hook should be removed and the uuid dependency should be removed
|
|
4647
|
+
const useId = nativeId => {
|
|
4648
|
+
return React__default.useMemo(() => nativeId !== null && nativeId !== void 0 ? nativeId : uuid.v4(), []);
|
|
4649
|
+
};
|
|
4650
|
+
|
|
4651
|
+
const Checkbox$1 = /*#__PURE__*/React.forwardRef(function Checkbox(props, ref) {
|
|
4652
|
+
const {
|
|
4653
|
+
checked,
|
|
4654
|
+
highlighted,
|
|
4655
|
+
indeterminate,
|
|
4656
|
+
invalid,
|
|
4657
|
+
label,
|
|
4658
|
+
onChange,
|
|
4659
|
+
...otherProps
|
|
4660
|
+
} = props;
|
|
4661
|
+
const id = useId(props.id);
|
|
4662
|
+
const className = cn('bg-white h-5 w-5 border rounded text-sm flex-shrink-0 mt-[0.1rem] focus:yt-focus',
|
|
4663
|
+
//hover:shadow-[0_0_0_1px_rgba(235,235,235,1)]
|
|
4664
|
+
{
|
|
4665
|
+
'border-grey-300 text-blue-500 hover:text-blue-300 focus:border-blue-500 focus:hover:border-blue-300': !props.disabled && !invalid,
|
|
4666
|
+
'border-grey-200 text-blue-300 cursor-not-allowed': props.disabled,
|
|
4667
|
+
'bg-[rgba(255,255,0,0.2)] disabled:bg-[rgba(255,255,0,0.075)]': highlighted,
|
|
4668
|
+
'border-red-500 text-red-500 hover:text-red-300 hover:border-red-300 focus:border-red-500 focus:hover:border-red-300': invalid && !props.disabled,
|
|
4669
|
+
'self-start': !!label
|
|
4670
|
+
}, props.className);
|
|
4671
|
+
let handleChange;
|
|
4672
|
+
if (onChange) {
|
|
4673
|
+
handleChange = checked => onChange(checked === 'indeterminate' ? false : checked);
|
|
4674
|
+
}
|
|
4675
|
+
let labelledByProps = null;
|
|
4676
|
+
if (label) {
|
|
4677
|
+
labelledByProps = {
|
|
4678
|
+
'aria-labelledby': `${id}-label`,
|
|
4679
|
+
id
|
|
4680
|
+
};
|
|
4681
|
+
}
|
|
4682
|
+
// the enter keyboard shortcut isn't supported by default, but we want it
|
|
4683
|
+
const handleKeyDown = event => {
|
|
4684
|
+
if (event.key === 'Enter') {
|
|
4685
|
+
event.currentTarget.click();
|
|
4686
|
+
}
|
|
4687
|
+
};
|
|
4688
|
+
const element = /*#__PURE__*/React.createElement(CheckboxPrimitive.Root, Object.assign({}, otherProps, labelledByProps, {
|
|
4689
|
+
"data-taco": "checkbox",
|
|
4690
|
+
checked: indeterminate ? 'indeterminate' : checked,
|
|
4691
|
+
className: className,
|
|
4692
|
+
onCheckedChange: handleChange,
|
|
4693
|
+
onKeyDown: handleKeyDown,
|
|
4694
|
+
ref: ref
|
|
4695
|
+
}), /*#__PURE__*/React.createElement(CheckboxPrimitive.Indicator, {
|
|
4696
|
+
className: "flex h-full w-full"
|
|
4697
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
4698
|
+
name: indeterminate ? 'line' : 'tick',
|
|
4699
|
+
className: "!h-full !w-full"
|
|
4700
|
+
})));
|
|
4701
|
+
if (label) {
|
|
4702
|
+
const labelContainerClassName = cn('flex items-center cursor-pointer gap-2', {
|
|
4703
|
+
'cursor-not-allowed text-grey-300': props.disabled
|
|
4704
|
+
});
|
|
4705
|
+
return /*#__PURE__*/React.createElement("span", {
|
|
4706
|
+
className: labelContainerClassName
|
|
4707
|
+
}, element, /*#__PURE__*/React.createElement("label", {
|
|
4708
|
+
htmlFor: id,
|
|
4709
|
+
id: `${id}-label`
|
|
4710
|
+
}, label));
|
|
4711
|
+
}
|
|
4712
|
+
return element;
|
|
4713
|
+
});
|
|
4714
|
+
Checkbox$1.displayName = 'Checkbox';
|
|
4715
|
+
|
|
4716
|
+
const getInputClasses = props => {
|
|
4717
|
+
const disabled = props.disabled || !!props['aria-disabled'];
|
|
4718
|
+
const readOnly = props.readOnly || !!props['aria-readonly'];
|
|
4719
|
+
const invalid = props.invalid || !!props['aria-invalid'];
|
|
4720
|
+
return cn('peer bg-white text-black text-sm border font-normal not-italic no-underline rounded flex items-center leading-6 px-2 relative w-full text-ellipsis transition-colors transition-opacity ease-in min-h-[theme(spacing.8)]', {
|
|
4721
|
+
// default
|
|
4722
|
+
'border-grey-300 focus:border-blue-300 focus:yt-focus': !invalid,
|
|
4723
|
+
'hover:shadow-[0_0_0.1rem_theme(colors.grey.500)] active:border-blue-700': !invalid && !disabled,
|
|
4724
|
+
// disabled
|
|
4725
|
+
'border-grey-200 text-opacity-25 cursor-not-allowed placeholder:text-grey-700': disabled,
|
|
4726
|
+
// highlighted
|
|
4236
4727
|
'bg-[rgba(255,255,0,0.075)]': props.highlighted && disabled,
|
|
4237
4728
|
'bg-[rgba(255,255,0,0.2)]': props.highlighted && !disabled,
|
|
4238
4729
|
// invalid
|
|
@@ -4285,29 +4776,14 @@ const useBoundingClientRectListener = (ref, dependencies) => {
|
|
|
4285
4776
|
// the consumer to rerender and that will cause the above hook to recalculate the dimensions
|
|
4286
4777
|
setVisibility(newRefElementVisibility);
|
|
4287
4778
|
}
|
|
4288
|
-
});
|
|
4289
|
-
React.useEffect(() => {
|
|
4290
|
-
if (dependencies) {
|
|
4291
|
-
var _ref$current2;
|
|
4292
|
-
setDimensions((_ref$current2 = ref.current) === null || _ref$current2 === void 0 ? void 0 : _ref$current2.getBoundingClientRect());
|
|
4293
|
-
}
|
|
4294
|
-
}, dependencies);
|
|
4295
|
-
return dimensions;
|
|
4296
|
-
};
|
|
4297
|
-
|
|
4298
|
-
// merges an external ref (optional) with an internal ref (required)
|
|
4299
|
-
const useMergedRef = ref => {
|
|
4300
|
-
const internalRef = React__default.useRef(null);
|
|
4301
|
-
React__default.useEffect(() => {
|
|
4302
|
-
if (ref) {
|
|
4303
|
-
if (typeof ref === 'function') {
|
|
4304
|
-
ref(internalRef.current);
|
|
4305
|
-
} else {
|
|
4306
|
-
ref.current = internalRef.current;
|
|
4307
|
-
}
|
|
4779
|
+
});
|
|
4780
|
+
React.useEffect(() => {
|
|
4781
|
+
if (dependencies) {
|
|
4782
|
+
var _ref$current2;
|
|
4783
|
+
setDimensions((_ref$current2 = ref.current) === null || _ref$current2 === void 0 ? void 0 : _ref$current2.getBoundingClientRect());
|
|
4308
4784
|
}
|
|
4309
|
-
},
|
|
4310
|
-
return
|
|
4785
|
+
}, dependencies);
|
|
4786
|
+
return dimensions;
|
|
4311
4787
|
};
|
|
4312
4788
|
|
|
4313
4789
|
const validSetSelectionRangeTypes = ['text', 'search', 'url', 'tel', 'password'];
|
|
@@ -4661,7 +5137,7 @@ const ScrollableList = /*#__PURE__*/React.forwardRef(function ScrollableList(pro
|
|
|
4661
5137
|
...optionProps
|
|
4662
5138
|
}) => /*#__PURE__*/React.createElement("li", Object.assign({}, optionProps), icon, /*#__PURE__*/React.createElement("span", {
|
|
4663
5139
|
className: "flex-grow truncate text-left"
|
|
4664
|
-
}, children), multiselect && /*#__PURE__*/React.createElement(Checkbox
|
|
5140
|
+
}, children), multiselect && /*#__PURE__*/React.createElement(Checkbox$1
|
|
4665
5141
|
// In multiselect variant, this checkbox only acts as visual representation of item being selected,
|
|
4666
5142
|
// so need to be taken out of screen reader scope.
|
|
4667
5143
|
, {
|
|
@@ -4727,7 +5203,7 @@ const getSelectedIndexesFromValue = (data, value) => {
|
|
|
4727
5203
|
if (typeof value !== 'string') return [];
|
|
4728
5204
|
return value.split(',').map(v => data.findIndex(o => String(o.value) === v)).filter(v => v !== -1);
|
|
4729
5205
|
};
|
|
4730
|
-
const findByValue = (data, value) => {
|
|
5206
|
+
const findByValue$1 = (data, value) => {
|
|
4731
5207
|
return data.find(option => getValue(option.value) === getValue(value));
|
|
4732
5208
|
};
|
|
4733
5209
|
const searchForString = (child, value, strategy = 'includes') => {
|
|
@@ -4938,7 +5414,7 @@ const useCombobox = ({
|
|
|
4938
5414
|
return;
|
|
4939
5415
|
}
|
|
4940
5416
|
if (onChange && event.target.value !== value) {
|
|
4941
|
-
const item = findByValue(flattenedData, event.target.value);
|
|
5417
|
+
const item = findByValue$1(flattenedData, event.target.value);
|
|
4942
5418
|
event.detail = sanitizeItem(item);
|
|
4943
5419
|
const parents = getOptionParents(flattenedData, item === null || item === void 0 ? void 0 : item.path);
|
|
4944
5420
|
if (parents !== null && parents.length > 0) {
|
|
@@ -5323,7 +5799,7 @@ const PopoverContext = /*#__PURE__*/React.createContext({
|
|
|
5323
5799
|
props: {},
|
|
5324
5800
|
ref: null
|
|
5325
5801
|
});
|
|
5326
|
-
const Trigger$
|
|
5802
|
+
const Trigger$3 = /*#__PURE__*/React.forwardRef(function PopoverAnchor(props, externalRef) {
|
|
5327
5803
|
var _props$children;
|
|
5328
5804
|
const {
|
|
5329
5805
|
ref: parentRef,
|
|
@@ -5352,7 +5828,7 @@ const RenderPropWrapper = /*#__PURE__*/React.forwardRef(function RenderPropWrapp
|
|
|
5352
5828
|
ref
|
|
5353
5829
|
});
|
|
5354
5830
|
});
|
|
5355
|
-
const Content$
|
|
5831
|
+
const Content$4 = /*#__PURE__*/React.forwardRef(function PopoverContent(props, ref) {
|
|
5356
5832
|
const {
|
|
5357
5833
|
placement: side,
|
|
5358
5834
|
...popoverContentProps
|
|
@@ -5401,10 +5877,10 @@ const Popover = /*#__PURE__*/React.forwardRef(function Popover(props, ref) {
|
|
|
5401
5877
|
modal: modal,
|
|
5402
5878
|
open: open,
|
|
5403
5879
|
onOpenChange: onChange
|
|
5404
|
-
}, trigger && /*#__PURE__*/React.createElement(Trigger$
|
|
5880
|
+
}, trigger && /*#__PURE__*/React.createElement(Trigger$3, null, trigger), children));
|
|
5405
5881
|
});
|
|
5406
|
-
Popover.Trigger = Trigger$
|
|
5407
|
-
Popover.Content = Content$
|
|
5882
|
+
Popover.Trigger = Trigger$3;
|
|
5883
|
+
Popover.Content = Content$4;
|
|
5408
5884
|
Popover.Close = Close$1;
|
|
5409
5885
|
Popover.Portal = PopoverPrimitive.Portal;
|
|
5410
5886
|
|
|
@@ -5494,7 +5970,7 @@ const useCurrentDialog = () => {
|
|
|
5494
5970
|
return React.useContext(DialogContext);
|
|
5495
5971
|
};
|
|
5496
5972
|
|
|
5497
|
-
const Trigger$
|
|
5973
|
+
const Trigger$4 = /*#__PURE__*/React.forwardRef(function DialogTrigger(props, externalRef) {
|
|
5498
5974
|
const {
|
|
5499
5975
|
ref: parentRef,
|
|
5500
5976
|
props: parentProps
|
|
@@ -5592,7 +6068,7 @@ const RenderPropWrapper$1 = /*#__PURE__*/React.forwardRef(function RenderPropWra
|
|
|
5592
6068
|
...renderProps
|
|
5593
6069
|
});
|
|
5594
6070
|
});
|
|
5595
|
-
const Content$
|
|
6071
|
+
const Content$5 = /*#__PURE__*/React.forwardRef(function DialogContent(props, ref) {
|
|
5596
6072
|
const dialog = useCurrentDialog();
|
|
5597
6073
|
const internalRef = useMergedRef(ref);
|
|
5598
6074
|
const {
|
|
@@ -5759,37 +6235,16 @@ const Dialog = /*#__PURE__*/React.forwardRef(function Dialog(props, ref) {
|
|
|
5759
6235
|
defaultOpen: defaultOpen,
|
|
5760
6236
|
open: open,
|
|
5761
6237
|
onOpenChange: onChange
|
|
5762
|
-
}, trigger && /*#__PURE__*/React.createElement(Trigger$
|
|
6238
|
+
}, trigger && /*#__PURE__*/React.createElement(Trigger$4, null, trigger), children));
|
|
5763
6239
|
});
|
|
5764
|
-
Dialog.Trigger = Trigger$
|
|
5765
|
-
Dialog.Content = Content$
|
|
6240
|
+
Dialog.Trigger = Trigger$4;
|
|
6241
|
+
Dialog.Content = Content$5;
|
|
5766
6242
|
Dialog.Title = Title$1;
|
|
5767
6243
|
Dialog.Footer = Footer$1;
|
|
5768
6244
|
Dialog.Extra = Extra;
|
|
5769
6245
|
Dialog.Drawer = DialogDrawer;
|
|
5770
6246
|
Dialog.Close = Close$2;
|
|
5771
6247
|
|
|
5772
|
-
const Group = /*#__PURE__*/React.forwardRef(function Group(props, ref) {
|
|
5773
|
-
const {
|
|
5774
|
-
as: Tag = 'span',
|
|
5775
|
-
orientation = 'horizontal',
|
|
5776
|
-
...otherProps
|
|
5777
|
-
} = props;
|
|
5778
|
-
const className = cn('flex ', 'gap-2', {
|
|
5779
|
-
'flex-col ': orientation === 'vertical'
|
|
5780
|
-
}, props.className);
|
|
5781
|
-
return /*#__PURE__*/React.createElement(Tag, Object.assign({}, otherProps, {
|
|
5782
|
-
className: className,
|
|
5783
|
-
"data-taco": "group",
|
|
5784
|
-
ref: ref
|
|
5785
|
-
}));
|
|
5786
|
-
});
|
|
5787
|
-
|
|
5788
|
-
const MenuContext = /*#__PURE__*/React.createContext(undefined);
|
|
5789
|
-
const useCurrentMenu = () => {
|
|
5790
|
-
return React.useContext(MenuContext);
|
|
5791
|
-
};
|
|
5792
|
-
|
|
5793
6248
|
/* eslint-disable @typescript-eslint/no-empty-function */
|
|
5794
6249
|
const DrawerContext = /*#__PURE__*/React.createContext({
|
|
5795
6250
|
closeOnEscape: true,
|
|
@@ -6143,7 +6598,7 @@ const DrawerContent = /*#__PURE__*/React__default.forwardRef(function Content(pr
|
|
|
6143
6598
|
ref: ref
|
|
6144
6599
|
}, content);
|
|
6145
6600
|
});
|
|
6146
|
-
const Content$
|
|
6601
|
+
const Content$6 = /*#__PURE__*/React__default.forwardRef(function Content(props, externalRef) {
|
|
6147
6602
|
const {
|
|
6148
6603
|
children
|
|
6149
6604
|
} = props;
|
|
@@ -6152,7 +6607,7 @@ const Content$5 = /*#__PURE__*/React__default.forwardRef(function Content(props,
|
|
|
6152
6607
|
}), children));
|
|
6153
6608
|
});
|
|
6154
6609
|
|
|
6155
|
-
const Trigger$
|
|
6610
|
+
const Trigger$5 = /*#__PURE__*/React.forwardRef(function DrawerTrigger(props, ref) {
|
|
6156
6611
|
return /*#__PURE__*/React.createElement(DialogPrimitive.Trigger, Object.assign({}, props, {
|
|
6157
6612
|
ref: ref,
|
|
6158
6613
|
asChild: true
|
|
@@ -6240,10 +6695,10 @@ const Drawer = /*#__PURE__*/React.forwardRef(function Drawer(props, ref) {
|
|
|
6240
6695
|
modal: variant === 'overlay' ? true : false,
|
|
6241
6696
|
open: open,
|
|
6242
6697
|
onOpenChange: setOpen
|
|
6243
|
-
}, trigger && /*#__PURE__*/React.createElement(Trigger$
|
|
6698
|
+
}, trigger && /*#__PURE__*/React.createElement(Trigger$5, null, trigger), children));
|
|
6244
6699
|
});
|
|
6245
|
-
Drawer.Trigger = Trigger$
|
|
6246
|
-
Drawer.Content = Content$
|
|
6700
|
+
Drawer.Trigger = Trigger$5;
|
|
6701
|
+
Drawer.Content = Content$6;
|
|
6247
6702
|
Drawer.InnerContent = InnerContent;
|
|
6248
6703
|
Drawer.Title = Title$2;
|
|
6249
6704
|
Drawer.Footer = Footer$2;
|
|
@@ -6321,7 +6776,7 @@ const Title$3 = /*#__PURE__*/React.forwardRef(function DialogTitle(props, ref) {
|
|
|
6321
6776
|
ref: ref
|
|
6322
6777
|
}));
|
|
6323
6778
|
});
|
|
6324
|
-
const Content$
|
|
6779
|
+
const Content$7 = /*#__PURE__*/React.forwardRef(function HangerContent(props, ref) {
|
|
6325
6780
|
const {
|
|
6326
6781
|
placement: side
|
|
6327
6782
|
} = props;
|
|
@@ -6380,7 +6835,7 @@ const Hanger = /*#__PURE__*/React.forwardRef(function Hanger(props, ref) {
|
|
|
6380
6835
|
}, anchor && /*#__PURE__*/React.createElement(Anchor, null, anchor), children));
|
|
6381
6836
|
});
|
|
6382
6837
|
Hanger.Anchor = Anchor;
|
|
6383
|
-
Hanger.Content = Content$
|
|
6838
|
+
Hanger.Content = Content$7;
|
|
6384
6839
|
Hanger.Title = Title$3;
|
|
6385
6840
|
|
|
6386
6841
|
const UnstyledArrow$1 = /*#__PURE__*/React.forwardRef(function HoverCardArrow(props, ref) {
|
|
@@ -6405,13 +6860,13 @@ const UnstyledArrow$1 = /*#__PURE__*/React.forwardRef(function HoverCardArrow(pr
|
|
|
6405
6860
|
})));
|
|
6406
6861
|
});
|
|
6407
6862
|
|
|
6408
|
-
const Trigger$
|
|
6863
|
+
const Trigger$6 = /*#__PURE__*/React.forwardRef(function HoverCardTrigger(props, ref) {
|
|
6409
6864
|
return /*#__PURE__*/React.createElement(HoverCardPrimitive.Trigger, Object.assign({}, props, {
|
|
6410
6865
|
asChild: true,
|
|
6411
6866
|
ref: ref
|
|
6412
6867
|
}));
|
|
6413
6868
|
});
|
|
6414
|
-
const Content$
|
|
6869
|
+
const Content$8 = /*#__PURE__*/React.forwardRef(function HoverCardContent(props, ref) {
|
|
6415
6870
|
const {
|
|
6416
6871
|
placement: side
|
|
6417
6872
|
} = props;
|
|
@@ -6431,8 +6886,8 @@ const HoverCard = props => {
|
|
|
6431
6886
|
openDelay: 300
|
|
6432
6887
|
}));
|
|
6433
6888
|
};
|
|
6434
|
-
HoverCard.Trigger = Trigger$
|
|
6435
|
-
HoverCard.Content = Content$
|
|
6889
|
+
HoverCard.Trigger = Trigger$6;
|
|
6890
|
+
HoverCard.Content = Content$8;
|
|
6436
6891
|
|
|
6437
6892
|
const SearchInput = /*#__PURE__*/React.forwardRef(function SearchInput({
|
|
6438
6893
|
onSearch,
|
|
@@ -6632,7 +7087,7 @@ const useListbox = ({
|
|
|
6632
7087
|
event.persist();
|
|
6633
7088
|
if (onChange) {
|
|
6634
7089
|
var _item$path$split, _item$path;
|
|
6635
|
-
const item = findByValue(data, event.target.value);
|
|
7090
|
+
const item = findByValue$1(data, event.target.value);
|
|
6636
7091
|
event.detail = sanitizeItem(item);
|
|
6637
7092
|
const indexes = (_item$path$split = item === null || item === void 0 ? void 0 : (_item$path = item.path) === null || _item$path === void 0 ? void 0 : _item$path.split('.')) !== null && _item$path$split !== void 0 ? _item$path$split : [];
|
|
6638
7093
|
if (indexes.length > 1) {
|
|
@@ -6803,7 +7258,7 @@ const useMultiListbox = ({
|
|
|
6803
7258
|
const detail = [];
|
|
6804
7259
|
const valuesArray = event.target.value.split(',');
|
|
6805
7260
|
valuesArray.forEach(val => {
|
|
6806
|
-
const item = findByValue(data, val);
|
|
7261
|
+
const item = findByValue$1(data, val);
|
|
6807
7262
|
if (item) {
|
|
6808
7263
|
detail.push(item);
|
|
6809
7264
|
}
|
|
@@ -6834,436 +7289,61 @@ const useMultiListbox = ({
|
|
|
6834
7289
|
name,
|
|
6835
7290
|
onChange: handleInputChange,
|
|
6836
7291
|
ref: inputRef,
|
|
6837
|
-
tabIndex: -1,
|
|
6838
|
-
value: value !== null && value !== void 0 ? value : ''
|
|
6839
|
-
};
|
|
6840
|
-
return {
|
|
6841
|
-
list,
|
|
6842
|
-
input
|
|
6843
|
-
};
|
|
6844
|
-
};
|
|
6845
|
-
|
|
6846
|
-
const Listbox = /*#__PURE__*/React.forwardRef(function Listbox(props, ref) {
|
|
6847
|
-
const {
|
|
6848
|
-
className: externalClassName,
|
|
6849
|
-
...otherProps
|
|
6850
|
-
} = props;
|
|
6851
|
-
const {
|
|
6852
|
-
list,
|
|
6853
|
-
input
|
|
6854
|
-
} = useListbox(otherProps, ref);
|
|
6855
|
-
const className = cn('bg-white inline-flex relative w-full', externalClassName);
|
|
6856
|
-
return /*#__PURE__*/React.createElement("span", {
|
|
6857
|
-
"data-taco": "listbox",
|
|
6858
|
-
className: className
|
|
6859
|
-
}, /*#__PURE__*/React.createElement(ScrollableList, Object.assign({}, list, {
|
|
6860
|
-
style: {
|
|
6861
|
-
...list.style,
|
|
6862
|
-
maxHeight: 'calc(12rem + 2px)' /* (6 * option height) + listbox border */
|
|
6863
|
-
}
|
|
6864
|
-
})), /*#__PURE__*/React.createElement("input", Object.assign({}, input, {
|
|
6865
|
-
className: "hidden",
|
|
6866
|
-
type: "text"
|
|
6867
|
-
})));
|
|
6868
|
-
});
|
|
6869
|
-
const MultiListbox = /*#__PURE__*/React.forwardRef(function Listbox(props, ref) {
|
|
6870
|
-
const {
|
|
6871
|
-
className: externalClassName,
|
|
6872
|
-
...otherProps
|
|
6873
|
-
} = props;
|
|
6874
|
-
const {
|
|
6875
|
-
list,
|
|
6876
|
-
input
|
|
6877
|
-
} = useMultiListbox(otherProps, ref);
|
|
6878
|
-
const className = cn('bg-white inline-flex relative w-full', externalClassName);
|
|
6879
|
-
return /*#__PURE__*/React.createElement("span", {
|
|
6880
|
-
"data-taco": "listbox",
|
|
6881
|
-
className: className
|
|
6882
|
-
}, /*#__PURE__*/React.createElement(ScrollableList, Object.assign({}, list, {
|
|
6883
|
-
style: {
|
|
6884
|
-
...list.style,
|
|
6885
|
-
maxHeight: 'calc(12rem + 2px + 2px)' /* (6 * option height) + listbox border + ALL_OPTIONS bottom border */
|
|
6886
|
-
}
|
|
6887
|
-
})), /*#__PURE__*/React.createElement("input", Object.assign({}, input, {
|
|
6888
|
-
className: "hidden",
|
|
6889
|
-
type: "text"
|
|
6890
|
-
})));
|
|
6891
|
-
});
|
|
6892
|
-
|
|
6893
|
-
const Content$8 = /*#__PURE__*/React.forwardRef(function MenuContent(props, ref) {
|
|
6894
|
-
const internalRef = useMergedRef(ref);
|
|
6895
|
-
const menu = useCurrentMenu();
|
|
6896
|
-
const {
|
|
6897
|
-
align = 'start',
|
|
6898
|
-
children,
|
|
6899
|
-
placement: side,
|
|
6900
|
-
...otherProps
|
|
6901
|
-
} = props;
|
|
6902
|
-
const className = cn('border border-transparent rounded block outline-none p-1 yt-shadow wcag-white', props.className);
|
|
6903
|
-
return /*#__PURE__*/React.createElement(DropdownMenuPrimitive.Portal, null, /*#__PURE__*/React.createElement(DropdownMenuPrimitive.Content, Object.assign({}, otherProps, {
|
|
6904
|
-
align: align,
|
|
6905
|
-
className: className,
|
|
6906
|
-
"data-taco": "menu",
|
|
6907
|
-
side: side,
|
|
6908
|
-
sideOffset: 3,
|
|
6909
|
-
style: {
|
|
6910
|
-
minWidth: menu === null || menu === void 0 ? void 0 : menu.minWidth
|
|
6911
|
-
},
|
|
6912
|
-
ref: internalRef
|
|
6913
|
-
}), children));
|
|
6914
|
-
});
|
|
6915
|
-
|
|
6916
|
-
const Icon$1 = ({
|
|
6917
|
-
name
|
|
6918
|
-
}) => /*#__PURE__*/React.createElement("span", {
|
|
6919
|
-
className: "absolute left-0 ml-1"
|
|
6920
|
-
}, /*#__PURE__*/React.createElement(Icon, {
|
|
6921
|
-
className: "-ml-px -mt-px !h-5 !w-5",
|
|
6922
|
-
name: name
|
|
6923
|
-
}));
|
|
6924
|
-
const useItemStyling = ({
|
|
6925
|
-
disabled,
|
|
6926
|
-
indented,
|
|
6927
|
-
className
|
|
6928
|
-
}) => {
|
|
6929
|
-
const menu = useCurrentMenu();
|
|
6930
|
-
React.useEffect(() => {
|
|
6931
|
-
if (indented && !(menu !== null && menu !== void 0 && menu.indented)) {
|
|
6932
|
-
menu === null || menu === void 0 ? void 0 : menu.registerIndentation();
|
|
6933
|
-
}
|
|
6934
|
-
}, [indented]);
|
|
6935
|
-
return cn('flex items-center justify-start h-8 pr-1.5 relative rounded w-full focus:outline-none group', {
|
|
6936
|
-
'pl-7': menu === null || menu === void 0 ? void 0 : menu.indented,
|
|
6937
|
-
'pl-1.5': !(menu !== null && menu !== void 0 && menu.indented),
|
|
6938
|
-
'cursor-pointer hover:wcag-grey-200 text-black': !disabled,
|
|
6939
|
-
'cursor-not-allowed hover:bg-white text-grey-300': disabled
|
|
6940
|
-
}, className);
|
|
6941
|
-
};
|
|
6942
|
-
const Shortcut = props => {
|
|
6943
|
-
return /*#__PURE__*/React.createElement("span", Object.assign({}, props, {
|
|
6944
|
-
className: "text-grey-700 ml-auto pl-3"
|
|
6945
|
-
}));
|
|
6946
|
-
};
|
|
6947
|
-
const Item$1 = /*#__PURE__*/React.forwardRef(function MenuItem(props, ref) {
|
|
6948
|
-
var _props$disabled;
|
|
6949
|
-
const {
|
|
6950
|
-
dialog,
|
|
6951
|
-
icon,
|
|
6952
|
-
onClick,
|
|
6953
|
-
shortcut,
|
|
6954
|
-
...otherProps
|
|
6955
|
-
} = props;
|
|
6956
|
-
const menu = useCurrentMenu();
|
|
6957
|
-
const className = useItemStyling({
|
|
6958
|
-
disabled: props.disabled,
|
|
6959
|
-
indented: !!icon,
|
|
6960
|
-
className: props.className
|
|
6961
|
-
});
|
|
6962
|
-
const disabled = (_props$disabled = props.disabled) !== null && _props$disabled !== void 0 ? _props$disabled : props['aria-disabled'];
|
|
6963
|
-
let handleClick;
|
|
6964
|
-
// radix has a bug that does not disable clicks when disabled is set on items
|
|
6965
|
-
if (disabled) {
|
|
6966
|
-
handleClick = event => {
|
|
6967
|
-
event.preventDefault();
|
|
6968
|
-
event.stopPropagation();
|
|
6969
|
-
};
|
|
6970
|
-
}
|
|
6971
|
-
const handleSelect = event => {
|
|
6972
|
-
if (onClick) {
|
|
6973
|
-
onClick(event);
|
|
6974
|
-
}
|
|
6975
|
-
if (props['aria-haspopup'] || typeof dialog === 'function') {
|
|
6976
|
-
event.preventDefault();
|
|
6977
|
-
}
|
|
6978
|
-
};
|
|
6979
|
-
let button = /*#__PURE__*/React.createElement(DropdownMenuPrimitive.Item, Object.assign({}, otherProps, {
|
|
6980
|
-
className: className,
|
|
6981
|
-
onClick: handleClick,
|
|
6982
|
-
onSelect: handleSelect,
|
|
6983
|
-
ref: ref
|
|
6984
|
-
}), icon && /*#__PURE__*/React.createElement(Icon$1, {
|
|
6985
|
-
name: icon
|
|
6986
|
-
}), props.children, shortcut && /*#__PURE__*/React.createElement(Shortcut, null, shortcut));
|
|
6987
|
-
if (typeof dialog === 'function') {
|
|
6988
|
-
button = dialog({
|
|
6989
|
-
trigger: button,
|
|
6990
|
-
onClose: menu === null || menu === void 0 ? void 0 : menu.close
|
|
6991
|
-
});
|
|
6992
|
-
}
|
|
6993
|
-
return button;
|
|
6994
|
-
});
|
|
6995
|
-
|
|
6996
|
-
const Link = /*#__PURE__*/React.forwardRef(function MenuLink(props, ref) {
|
|
6997
|
-
const {
|
|
6998
|
-
href,
|
|
6999
|
-
icon,
|
|
7000
|
-
onClick,
|
|
7001
|
-
...otherProps
|
|
7002
|
-
} = props;
|
|
7003
|
-
const menu = useCurrentMenu();
|
|
7004
|
-
const className = useItemStyling({
|
|
7005
|
-
disabled: props.disabled,
|
|
7006
|
-
indented: !!icon,
|
|
7007
|
-
className: props.className
|
|
7008
|
-
});
|
|
7009
|
-
const handleClick = event => {
|
|
7010
|
-
onClick === null || onClick === void 0 ? void 0 : onClick(event);
|
|
7011
|
-
menu === null || menu === void 0 ? void 0 : menu.close();
|
|
7012
|
-
};
|
|
7013
|
-
return /*#__PURE__*/React.createElement(DropdownMenuPrimitive.Item, Object.assign({}, otherProps, {
|
|
7014
|
-
asChild: true,
|
|
7015
|
-
className: className,
|
|
7016
|
-
ref: ref,
|
|
7017
|
-
onClick: handleClick
|
|
7018
|
-
}), /*#__PURE__*/React.createElement("a", {
|
|
7019
|
-
href: href,
|
|
7020
|
-
target: "_blank"
|
|
7021
|
-
}, icon && /*#__PURE__*/React.createElement(Icon$1, {
|
|
7022
|
-
name: icon
|
|
7023
|
-
}), props.children));
|
|
7024
|
-
});
|
|
7025
|
-
|
|
7026
|
-
const Trigger$6 = /*#__PURE__*/React.forwardRef(function MenuTrigger(props, ref) {
|
|
7027
|
-
const menu = useCurrentMenu();
|
|
7028
|
-
const internalRef = useMergedRef(ref);
|
|
7029
|
-
React.useEffect(() => {
|
|
7030
|
-
if (internalRef.current) {
|
|
7031
|
-
menu === null || menu === void 0 ? void 0 : menu.setMinWidth(internalRef.current.getBoundingClientRect().width);
|
|
7032
|
-
}
|
|
7033
|
-
}, [internalRef]);
|
|
7034
|
-
return /*#__PURE__*/React.createElement(DropdownMenuPrimitive.Trigger, Object.assign({}, props, {
|
|
7035
|
-
asChild: true,
|
|
7036
|
-
ref: internalRef
|
|
7037
|
-
}));
|
|
7038
|
-
});
|
|
7039
|
-
|
|
7040
|
-
const Checkbox$1 = /*#__PURE__*/React.forwardRef(function MenuCheckboxItem(props, ref) {
|
|
7041
|
-
const {
|
|
7042
|
-
checked,
|
|
7043
|
-
children,
|
|
7044
|
-
onChange,
|
|
7045
|
-
...otherProps
|
|
7046
|
-
} = props;
|
|
7047
|
-
const className = useItemStyling({
|
|
7048
|
-
disabled: props.disabled,
|
|
7049
|
-
indented: true,
|
|
7050
|
-
className: props.className
|
|
7051
|
-
});
|
|
7052
|
-
return /*#__PURE__*/React.createElement(DropdownMenuPrimitive.CheckboxItem, Object.assign({}, otherProps, {
|
|
7053
|
-
checked: checked,
|
|
7054
|
-
className: className,
|
|
7055
|
-
onCheckedChange: onChange,
|
|
7056
|
-
ref: ref
|
|
7057
|
-
}), /*#__PURE__*/React.createElement(DropdownMenuPrimitive.ItemIndicator, {
|
|
7058
|
-
className: "absolute left-0 ml-1.5"
|
|
7059
|
-
}, /*#__PURE__*/React.createElement(Icon, {
|
|
7060
|
-
name: "tick",
|
|
7061
|
-
className: "-ml-px !h-4 !w-4"
|
|
7062
|
-
})), children);
|
|
7063
|
-
});
|
|
7292
|
+
tabIndex: -1,
|
|
7293
|
+
value: value !== null && value !== void 0 ? value : ''
|
|
7294
|
+
};
|
|
7295
|
+
return {
|
|
7296
|
+
list,
|
|
7297
|
+
input
|
|
7298
|
+
};
|
|
7299
|
+
};
|
|
7064
7300
|
|
|
7065
|
-
const
|
|
7066
|
-
const findByValue$1 = (values, valueAsString) => values.find(value => getRadioGroupItemValueAsString(value) === valueAsString);
|
|
7067
|
-
const RadioGroupContext = /*#__PURE__*/React.createContext({
|
|
7068
|
-
disabled: false,
|
|
7069
|
-
invalid: false
|
|
7070
|
-
});
|
|
7071
|
-
const RadioGroupItem = /*#__PURE__*/React.forwardRef(function RadioGroupItem(props, ref) {
|
|
7072
|
-
const context = React.useContext(RadioGroupContext);
|
|
7301
|
+
const Listbox = /*#__PURE__*/React.forwardRef(function Listbox(props, ref) {
|
|
7073
7302
|
const {
|
|
7074
|
-
|
|
7075
|
-
value,
|
|
7303
|
+
className: externalClassName,
|
|
7076
7304
|
...otherProps
|
|
7077
7305
|
} = props;
|
|
7078
|
-
const isDisabled = context.disabled || props.disabled;
|
|
7079
|
-
const className = cn('flex flex-shrink-0 self-start items-center justify-center h-4 w-4 mt-[0.2rem] rounded-full bg-white border-2', {
|
|
7080
|
-
'border-grey-300 hover:border-4 focus:yt-focus aria-checked:bg-blue-500 aria-checked:border-blue-500 hover:aria-checked:border-blue-300': !isDisabled && !context.invalid,
|
|
7081
|
-
'border-grey-200 cursor-not-allowed aria-checked:bg-blue-300 aria-checked:border-blue-300 ': isDisabled,
|
|
7082
|
-
'border-red-500 hover:border-4 text-red-500 focus:border-red-500 focus:yt-focus-red aria-checked:bg-red-500 aria-checked:border-red': context.invalid && !isDisabled
|
|
7083
|
-
});
|
|
7084
|
-
const labelClassName = cn('flex items-center gap-2', {
|
|
7085
|
-
'cursor-pointer': !isDisabled,
|
|
7086
|
-
'cursor-not-allowed text-grey-300': isDisabled
|
|
7087
|
-
}, props.className);
|
|
7088
|
-
return /*#__PURE__*/React.createElement("label", {
|
|
7089
|
-
className: labelClassName
|
|
7090
|
-
}, /*#__PURE__*/React.createElement(RadioGroupPrimitive.Item, Object.assign({}, otherProps, {
|
|
7091
|
-
className: className,
|
|
7092
|
-
disabled: isDisabled,
|
|
7093
|
-
ref: ref,
|
|
7094
|
-
value: getRadioGroupItemValueAsString(value)
|
|
7095
|
-
}), /*#__PURE__*/React.createElement(RadioGroupPrimitive.Indicator, {
|
|
7096
|
-
className: "h-2 w-2 rounded-full bg-white"
|
|
7097
|
-
})), children);
|
|
7098
|
-
});
|
|
7099
|
-
const useRadioGroup = props => {
|
|
7100
7306
|
const {
|
|
7101
|
-
|
|
7102
|
-
|
|
7103
|
-
|
|
7104
|
-
|
|
7105
|
-
|
|
7106
|
-
|
|
7107
|
-
|
|
7108
|
-
|
|
7109
|
-
|
|
7110
|
-
|
|
7111
|
-
|
|
7112
|
-
React.Children.forEach(children, child => {
|
|
7113
|
-
if ( /*#__PURE__*/React.isValidElement(child)) {
|
|
7114
|
-
radioGroupItemValues.push(child.props.value);
|
|
7115
|
-
}
|
|
7116
|
-
});
|
|
7117
|
-
return radioGroupItemValues;
|
|
7118
|
-
}, [children]);
|
|
7119
|
-
const context = React.useMemo(() => ({
|
|
7120
|
-
disabled: disabled !== null && disabled !== void 0 ? disabled : false,
|
|
7121
|
-
invalid: invalid !== null && invalid !== void 0 ? invalid : false
|
|
7122
|
-
}), [disabled, invalid]);
|
|
7123
|
-
let valueProps;
|
|
7124
|
-
if (onChange !== undefined) {
|
|
7125
|
-
const handleChange = value => onChange(findByValue$1(values, value));
|
|
7126
|
-
valueProps = {
|
|
7127
|
-
onValueChange: handleChange,
|
|
7128
|
-
value: value !== undefined ? getRadioGroupItemValueAsString(value) : undefined
|
|
7129
|
-
};
|
|
7130
|
-
} else {
|
|
7131
|
-
valueProps = {
|
|
7132
|
-
defaultValue: defaultValue !== undefined ? getRadioGroupItemValueAsString(defaultValue) : undefined
|
|
7133
|
-
};
|
|
7134
|
-
}
|
|
7135
|
-
return {
|
|
7136
|
-
context,
|
|
7137
|
-
props: {
|
|
7138
|
-
...otherProps,
|
|
7139
|
-
...valueProps,
|
|
7140
|
-
children,
|
|
7141
|
-
disabled,
|
|
7142
|
-
orientation
|
|
7307
|
+
list,
|
|
7308
|
+
input
|
|
7309
|
+
} = useListbox(otherProps, ref);
|
|
7310
|
+
const className = cn('bg-white inline-flex relative w-full', externalClassName);
|
|
7311
|
+
return /*#__PURE__*/React.createElement("span", {
|
|
7312
|
+
"data-taco": "listbox",
|
|
7313
|
+
className: className
|
|
7314
|
+
}, /*#__PURE__*/React.createElement(ScrollableList, Object.assign({}, list, {
|
|
7315
|
+
style: {
|
|
7316
|
+
...list.style,
|
|
7317
|
+
maxHeight: 'calc(12rem + 2px)' /* (6 * option height) + listbox border */
|
|
7143
7318
|
}
|
|
7144
|
-
}
|
|
7145
|
-
|
|
7146
|
-
|
|
7147
|
-
const {
|
|
7148
|
-
context,
|
|
7149
|
-
props: otherProps
|
|
7150
|
-
} = useRadioGroup(props);
|
|
7151
|
-
const className = cn('flex items-start gap-y-2', {
|
|
7152
|
-
'flex-wrap gap-x-4 ': otherProps.orientation === 'horizontal',
|
|
7153
|
-
'flex-col': otherProps.orientation === 'vertical'
|
|
7154
|
-
}, otherProps.className);
|
|
7155
|
-
return /*#__PURE__*/React.createElement(RadioGroupContext.Provider, {
|
|
7156
|
-
value: context
|
|
7157
|
-
}, /*#__PURE__*/React.createElement(RadioGroupPrimitive.Root, Object.assign({}, otherProps, {
|
|
7158
|
-
className: className,
|
|
7159
|
-
"data-taco": "radio-group",
|
|
7160
|
-
ref: ref
|
|
7319
|
+
})), /*#__PURE__*/React.createElement("input", Object.assign({}, input, {
|
|
7320
|
+
className: "hidden",
|
|
7321
|
+
type: "text"
|
|
7161
7322
|
})));
|
|
7162
7323
|
});
|
|
7163
|
-
|
|
7164
|
-
|
|
7165
|
-
const RadioItem = props => {
|
|
7166
|
-
const context = React.useContext(MenuRadioGroupContext);
|
|
7324
|
+
const MultiListbox = /*#__PURE__*/React.forwardRef(function Listbox(props, ref) {
|
|
7167
7325
|
const {
|
|
7168
|
-
|
|
7169
|
-
value,
|
|
7326
|
+
className: externalClassName,
|
|
7170
7327
|
...otherProps
|
|
7171
7328
|
} = props;
|
|
7172
|
-
const disabled = context.disabled || props.disabled;
|
|
7173
|
-
const className = useItemStyling({
|
|
7174
|
-
disabled: disabled,
|
|
7175
|
-
indented: true,
|
|
7176
|
-
className: props.className
|
|
7177
|
-
});
|
|
7178
|
-
return /*#__PURE__*/React.createElement(DropdownMenuPrimitive.RadioItem, Object.assign({}, otherProps, {
|
|
7179
|
-
className: className,
|
|
7180
|
-
disabled: disabled,
|
|
7181
|
-
value: getRadioGroupItemValueAsString(value)
|
|
7182
|
-
}), /*#__PURE__*/React.createElement(DropdownMenuPrimitive.ItemIndicator, {
|
|
7183
|
-
className: "absolute left-0 ml-1.5"
|
|
7184
|
-
}, /*#__PURE__*/React.createElement("span", {
|
|
7185
|
-
className: "ml-1 flex h-1.5 w-1.5 rounded-full bg-current "
|
|
7186
|
-
})), children);
|
|
7187
|
-
};
|
|
7188
|
-
const MenuRadioGroupContext = /*#__PURE__*/React.createContext({
|
|
7189
|
-
disabled: false
|
|
7190
|
-
});
|
|
7191
|
-
const RadioGroup$1 = /*#__PURE__*/React.forwardRef(function MenuRadioItem(props, ref) {
|
|
7192
7329
|
const {
|
|
7193
|
-
|
|
7194
|
-
|
|
7195
|
-
} =
|
|
7196
|
-
const className = cn('flex
|
|
7197
|
-
return /*#__PURE__*/React.createElement(
|
|
7198
|
-
|
|
7199
|
-
|
|
7200
|
-
|
|
7201
|
-
|
|
7330
|
+
list,
|
|
7331
|
+
input
|
|
7332
|
+
} = useMultiListbox(otherProps, ref);
|
|
7333
|
+
const className = cn('bg-white inline-flex relative w-full', externalClassName);
|
|
7334
|
+
return /*#__PURE__*/React.createElement("span", {
|
|
7335
|
+
"data-taco": "listbox",
|
|
7336
|
+
className: className
|
|
7337
|
+
}, /*#__PURE__*/React.createElement(ScrollableList, Object.assign({}, list, {
|
|
7338
|
+
style: {
|
|
7339
|
+
...list.style,
|
|
7340
|
+
maxHeight: 'calc(12rem + 2px + 2px)' /* (6 * option height) + listbox border + ALL_OPTIONS bottom border */
|
|
7341
|
+
}
|
|
7342
|
+
})), /*#__PURE__*/React.createElement("input", Object.assign({}, input, {
|
|
7343
|
+
className: "hidden",
|
|
7344
|
+
type: "text"
|
|
7202
7345
|
})));
|
|
7203
7346
|
});
|
|
7204
|
-
RadioGroup$1.Item = RadioItem;
|
|
7205
|
-
|
|
7206
|
-
const Separator = () => {
|
|
7207
|
-
return /*#__PURE__*/React.createElement(DropdownMenuPrimitive.Separator, {
|
|
7208
|
-
className: "bg-grey-300 my-1 h-px"
|
|
7209
|
-
});
|
|
7210
|
-
};
|
|
7211
|
-
|
|
7212
|
-
const Header = /*#__PURE__*/React.forwardRef(function MenuHeader(props, ref) {
|
|
7213
|
-
const menu = useCurrentMenu();
|
|
7214
|
-
const className = cn('flex items-center justify-start h-7 pr-1.5 text-xs text-grey-700', {
|
|
7215
|
-
'pl-7': menu === null || menu === void 0 ? void 0 : menu.indented,
|
|
7216
|
-
'pl-1.5': !(menu !== null && menu !== void 0 && menu.indented)
|
|
7217
|
-
}, props.className);
|
|
7218
|
-
return /*#__PURE__*/React.createElement(DropdownMenuPrimitive.Label, Object.assign({}, props, {
|
|
7219
|
-
className: className,
|
|
7220
|
-
ref: ref
|
|
7221
|
-
}));
|
|
7222
|
-
});
|
|
7223
|
-
|
|
7224
|
-
const Menu$1 = /*#__PURE__*/React.forwardRef(function Menu(externalProps, ref) {
|
|
7225
|
-
const {
|
|
7226
|
-
children,
|
|
7227
|
-
defaultOpen: defaultProp,
|
|
7228
|
-
onChange,
|
|
7229
|
-
open: prop,
|
|
7230
|
-
trigger,
|
|
7231
|
-
...props
|
|
7232
|
-
} = externalProps;
|
|
7233
|
-
const [indented, setIndented] = React.useState(false);
|
|
7234
|
-
const [minWidth, setMinWidth] = React.useState(undefined);
|
|
7235
|
-
const [open, setOpen] = reactUseControllableState.useControllableState({
|
|
7236
|
-
// uncontrolled
|
|
7237
|
-
defaultProp,
|
|
7238
|
-
// controlled
|
|
7239
|
-
onChange,
|
|
7240
|
-
prop
|
|
7241
|
-
});
|
|
7242
|
-
const context = React.useMemo(() => ({
|
|
7243
|
-
indented,
|
|
7244
|
-
registerIndentation: () => setIndented(true),
|
|
7245
|
-
minWidth,
|
|
7246
|
-
setMinWidth: width => setMinWidth(width),
|
|
7247
|
-
close: () => setOpen(false)
|
|
7248
|
-
}), [indented, minWidth]);
|
|
7249
|
-
return /*#__PURE__*/React.createElement(MenuContext.Provider, {
|
|
7250
|
-
value: context
|
|
7251
|
-
}, /*#__PURE__*/React.createElement(DropdownMenuPrimitive.Root, Object.assign({}, props, {
|
|
7252
|
-
modal: false,
|
|
7253
|
-
open: open,
|
|
7254
|
-
onOpenChange: setOpen
|
|
7255
|
-
}), trigger && /*#__PURE__*/React.createElement(Trigger$6, {
|
|
7256
|
-
ref: ref
|
|
7257
|
-
}, trigger), children));
|
|
7258
|
-
});
|
|
7259
|
-
Menu$1.Trigger = Trigger$6;
|
|
7260
|
-
Menu$1.Content = Content$8;
|
|
7261
|
-
Menu$1.Item = Item$1;
|
|
7262
|
-
Menu$1.Link = Link;
|
|
7263
|
-
Menu$1.Checkbox = Checkbox$1;
|
|
7264
|
-
Menu$1.Separator = Separator;
|
|
7265
|
-
Menu$1.Header = Header;
|
|
7266
|
-
Menu$1.RadioGroup = RadioGroup$1;
|
|
7267
7347
|
|
|
7268
7348
|
const TreeviewItem = /*#__PURE__*/React__default.forwardRef(function TreeviewItem(props, ref) {
|
|
7269
7349
|
return /*#__PURE__*/React__default.createElement("a", Object.assign({}, props, {
|
|
@@ -7544,7 +7624,7 @@ const useSelect = ({
|
|
|
7544
7624
|
}, [open]);
|
|
7545
7625
|
React.useEffect(() => {
|
|
7546
7626
|
if (value === undefined) {
|
|
7547
|
-
if (defaultValue !== undefined && findByValue(flattenedData, defaultValue)) {
|
|
7627
|
+
if (defaultValue !== undefined && findByValue$1(flattenedData, defaultValue)) {
|
|
7548
7628
|
setInputValueByRef$1(inputRef.current, defaultValue);
|
|
7549
7629
|
} else {
|
|
7550
7630
|
if (emptyValue !== undefined) {
|
|
@@ -7554,7 +7634,7 @@ const useSelect = ({
|
|
|
7554
7634
|
}
|
|
7555
7635
|
}
|
|
7556
7636
|
} else {
|
|
7557
|
-
if (!multiselect && !findByValue(flattenedData, value)) {
|
|
7637
|
+
if (!multiselect && !findByValue$1(flattenedData, value)) {
|
|
7558
7638
|
if (emptyValue !== undefined) {
|
|
7559
7639
|
setInputValueByRef$1(inputRef.current, emptyValue);
|
|
7560
7640
|
} else if (data.length > 0) {
|
|
@@ -7613,11 +7693,11 @@ const useSelect = ({
|
|
|
7613
7693
|
text = texts.select.allOptionsSelected;
|
|
7614
7694
|
} else {
|
|
7615
7695
|
var _findByValue$text, _findByValue;
|
|
7616
|
-
text = (_findByValue$text = (_findByValue = findByValue(flattenedData, selectedValues[0])) === null || _findByValue === void 0 ? void 0 : _findByValue.text) !== null && _findByValue$text !== void 0 ? _findByValue$text : '';
|
|
7696
|
+
text = (_findByValue$text = (_findByValue = findByValue$1(flattenedData, selectedValues[0])) === null || _findByValue === void 0 ? void 0 : _findByValue.text) !== null && _findByValue$text !== void 0 ? _findByValue$text : '';
|
|
7617
7697
|
more = selectedValues.length > 1 ? selectedValues.length - 1 : 0;
|
|
7618
7698
|
}
|
|
7619
7699
|
} else {
|
|
7620
|
-
const item = findByValue(flattenedData, value);
|
|
7700
|
+
const item = findByValue$1(flattenedData, value);
|
|
7621
7701
|
if (item) {
|
|
7622
7702
|
text = item.icon ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.cloneElement(item.icon, {
|
|
7623
7703
|
className: cn(item.icon.props.className, 'mr-1 -mt-px')
|
|
@@ -7629,7 +7709,7 @@ const useSelect = ({
|
|
|
7629
7709
|
event.persist();
|
|
7630
7710
|
if (onChange) {
|
|
7631
7711
|
var _item$path$split, _item$path;
|
|
7632
|
-
const item = findByValue(flattenedData, event.target.value);
|
|
7712
|
+
const item = findByValue$1(flattenedData, event.target.value);
|
|
7633
7713
|
event.detail = sanitizeItem(item);
|
|
7634
7714
|
const indexes = (_item$path$split = item === null || item === void 0 ? void 0 : (_item$path = item.path) === null || _item$path === void 0 ? void 0 : _item$path.split('.')) !== null && _item$path$split !== void 0 ? _item$path$split : [];
|
|
7635
7715
|
if (indexes.length > 1) {
|
|
@@ -10124,7 +10204,7 @@ const useRowSelect = onSelectedRows => {
|
|
|
10124
10204
|
onSelectedRows({});
|
|
10125
10205
|
}
|
|
10126
10206
|
};
|
|
10127
|
-
return /*#__PURE__*/React__default.createElement(Checkbox, Object.assign({}, props, {
|
|
10207
|
+
return /*#__PURE__*/React__default.createElement(Checkbox$1, Object.assign({}, props, {
|
|
10128
10208
|
onChange: onChange
|
|
10129
10209
|
}));
|
|
10130
10210
|
},
|
|
@@ -10149,7 +10229,7 @@ const useRowSelect = onSelectedRows => {
|
|
|
10149
10229
|
}
|
|
10150
10230
|
lastSelectedSortedIndex.current = sortedIndex;
|
|
10151
10231
|
};
|
|
10152
|
-
return /*#__PURE__*/React__default.createElement(Checkbox, Object.assign({}, props, {
|
|
10232
|
+
return /*#__PURE__*/React__default.createElement(Checkbox$1, Object.assign({}, props, {
|
|
10153
10233
|
className: "!mt-2.5",
|
|
10154
10234
|
onClick: onClick,
|
|
10155
10235
|
// this is necessary to remove console spam from eslint
|
|
@@ -11239,7 +11319,7 @@ const SelectCell = /*#__PURE__*/React__default.memo(({
|
|
|
11239
11319
|
className: "ml-2",
|
|
11240
11320
|
keys: ['Space']
|
|
11241
11321
|
}))
|
|
11242
|
-
}, /*#__PURE__*/React__default.createElement(Checkbox, {
|
|
11322
|
+
}, /*#__PURE__*/React__default.createElement(Checkbox$1, {
|
|
11243
11323
|
"aria-label": isSelected ? texts.table2.columns.select.select : texts.table2.columns.select.deselect,
|
|
11244
11324
|
className: "hover:border-blue !mt-0",
|
|
11245
11325
|
checked: isSelected,
|
|
@@ -11260,7 +11340,7 @@ function createRowSelectionColumn(enableMultipleRowSelection, lastSelectedRowInd
|
|
|
11260
11340
|
className: "ml-2",
|
|
11261
11341
|
keys: ['Ctrl', 'A']
|
|
11262
11342
|
}))
|
|
11263
|
-
}, /*#__PURE__*/React__default.createElement(Checkbox, {
|
|
11343
|
+
}, /*#__PURE__*/React__default.createElement(Checkbox$1, {
|
|
11264
11344
|
"aria-label": table.getIsAllPageRowsSelected() ? texts.table2.columns.select.deselectAll : texts.table2.columns.select.selectAll,
|
|
11265
11345
|
className: "hover:border-blue !mt-0",
|
|
11266
11346
|
checked: table.getIsAllPageRowsSelected(),
|
|
@@ -13283,7 +13363,7 @@ const OrderableColumn = /*#__PURE__*/React__default.forwardRef((props, ref) => {
|
|
|
13283
13363
|
ref: ref
|
|
13284
13364
|
}), /*#__PURE__*/React__default.createElement("span", {
|
|
13285
13365
|
className: "pointer-events-none"
|
|
13286
|
-
}, icon, (_column$columnDef$hea = column.columnDef.header) !== null && _column$columnDef$hea !== void 0 ? _column$columnDef$hea : column.columnDef.id), column.getCanHide() ? /*#__PURE__*/React__default.createElement(Checkbox, {
|
|
13366
|
+
}, icon, (_column$columnDef$hea = column.columnDef.header) !== null && _column$columnDef$hea !== void 0 ? _column$columnDef$hea : column.columnDef.id), column.getCanHide() ? /*#__PURE__*/React__default.createElement(Checkbox$1, {
|
|
13287
13367
|
checked: column.getIsVisible(),
|
|
13288
13368
|
onChange: column.toggleVisibility
|
|
13289
13369
|
}) : null);
|
|
@@ -14952,7 +15032,7 @@ const SecondaryNavigation = /*#__PURE__*/React__default.forwardRef(function Seco
|
|
|
14952
15032
|
});
|
|
14953
15033
|
|
|
14954
15034
|
const MenuButton = /*#__PURE__*/React__default.forwardRef(function MenuButton(props, ref) {
|
|
14955
|
-
const className = cn(getButtonClasses$1(), 'ml-1 -mr-1 !bg-transparent hover:!bg-white/[.08] focus:!bg-white/[.08]] lg:hidden');
|
|
15035
|
+
const className = cn(getButtonClasses$1(), 'ml-1 -mr-1 !bg-transparent hover:!bg-white/[.08] focus:!bg-white/[.08]] lg:hidden z-[2]');
|
|
14956
15036
|
return /*#__PURE__*/React__default.createElement(IconButton, Object.assign({}, props, {
|
|
14957
15037
|
className: className,
|
|
14958
15038
|
"data-taco": "header-toggle-sidebar",
|
|
@@ -15136,18 +15216,25 @@ const filterBySearchValue = search => agreement => {
|
|
|
15136
15216
|
const isCurrentAgreement = (agreement, currentAgreement) => {
|
|
15137
15217
|
return agreement.number === currentAgreement.number && agreement.userId === currentAgreement.userId;
|
|
15138
15218
|
};
|
|
15139
|
-
const createAgreementButton = (agreement, fallbackImageSrc, onChangeAgreement, isCurrentAgreement = false) =>
|
|
15140
|
-
|
|
15141
|
-
|
|
15142
|
-
|
|
15143
|
-
|
|
15144
|
-
|
|
15145
|
-
|
|
15146
|
-
|
|
15147
|
-
|
|
15148
|
-
|
|
15149
|
-
|
|
15150
|
-
|
|
15219
|
+
const createAgreementButton = (agreement, fallbackImageSrc, onChangeAgreement, isCurrentAgreement = false) => {
|
|
15220
|
+
const handleKeyDown = event => {
|
|
15221
|
+
if (event.key === 'Enter') {
|
|
15222
|
+
onChangeAgreement(agreement);
|
|
15223
|
+
}
|
|
15224
|
+
};
|
|
15225
|
+
return /*#__PURE__*/React__default.createElement("button", {
|
|
15226
|
+
"aria-current": isCurrentAgreement ? 'true' : undefined,
|
|
15227
|
+
className: "focus:yt-focus-dark w-full rounded outline-none",
|
|
15228
|
+
"data-taco": "header-agreements-agreement",
|
|
15229
|
+
key: `${agreement.number}_${agreement.userId}`,
|
|
15230
|
+
onClick: () => onChangeAgreement(agreement),
|
|
15231
|
+
onKeyDown: handleKeyDown,
|
|
15232
|
+
tabIndex: 0
|
|
15233
|
+
}, /*#__PURE__*/React__default.createElement(AgreementDetails, Object.assign({}, agreement, {
|
|
15234
|
+
className: "h-14 bg-white/[0.08] xl:hover:bg-white/[0.16] [[aria-current='true']>&]:bg-white/[0.16]",
|
|
15235
|
+
fallbackImageSrc: fallbackImageSrc
|
|
15236
|
+
})));
|
|
15237
|
+
};
|
|
15151
15238
|
|
|
15152
15239
|
const Header$2 = /*#__PURE__*/React__default.forwardRef(function Header(props, ref) {
|
|
15153
15240
|
const className = cn('bg-blue-900 flex h-16 w-full shrink-0 items-center gap-4 pl-2', '[&>a:focus-visible]:yt-focus-dark [&>a]:px-2 [&>a]:rounded [&>a]:h-[calc(100%-14px)]',
|
|
@@ -15196,24 +15283,7 @@ const useMatchMedia = (query, defaultMatches = false) => {
|
|
|
15196
15283
|
|
|
15197
15284
|
const useIsLargeScreen = () => useMatchMedia('(min-width: 1024px)', window.innerWidth > 1024);
|
|
15198
15285
|
|
|
15199
|
-
const SidebarBackdrop = /*#__PURE__*/
|
|
15200
|
-
const internalRef = useMergedRef(ref);
|
|
15201
|
-
React__default.useEffect(() => {
|
|
15202
|
-
if (internalRef.current) {
|
|
15203
|
-
internalRef.current.style.opacity = '1'; // Trigger the animation
|
|
15204
|
-
}
|
|
15205
|
-
|
|
15206
|
-
return () => {
|
|
15207
|
-
if (internalRef.current) {
|
|
15208
|
-
internalRef.current.style.opacity = '0'; // Reset to the initial value
|
|
15209
|
-
}
|
|
15210
|
-
};
|
|
15211
|
-
}, []);
|
|
15212
|
-
return /*#__PURE__*/React__default.createElement(Backdrop, Object.assign({}, props, {
|
|
15213
|
-
className: "absolute z-[1] opacity-0 transition-opacity duration-300",
|
|
15214
|
-
ref: internalRef
|
|
15215
|
-
}));
|
|
15216
|
-
});
|
|
15286
|
+
const SidebarBackdrop = /*#__PURE__*/framerMotion.motion(Backdrop);
|
|
15217
15287
|
const Sidebar = /*#__PURE__*/React__default.forwardRef(function LayoutSidebar(props, ref) {
|
|
15218
15288
|
const {
|
|
15219
15289
|
children,
|
|
@@ -15247,10 +15317,21 @@ const Sidebar = /*#__PURE__*/React__default.forwardRef(function LayoutSidebar(pr
|
|
|
15247
15317
|
};
|
|
15248
15318
|
}, [isSmallScreen, sidebarOpen]);
|
|
15249
15319
|
const showBackdrop = isSmallScreen && sidebarOpen === true;
|
|
15320
|
+
const [ready, setReady] = React__default.useState(isSmallScreen);
|
|
15250
15321
|
const className = cn('bg-grey-50 h-full w-64 flex-shrink-0 flex-grow-0', {
|
|
15251
|
-
'
|
|
15322
|
+
'absolute z-10 aria-hidden:-translate-x-64 ': isSmallScreen,
|
|
15323
|
+
// prevent animation when crossing the boundary from large to small screen,
|
|
15324
|
+
// this prevents awkward animation in the edge case (resizing the browser, instead of starting at a given size)
|
|
15325
|
+
invisible: isSmallScreen && !ready,
|
|
15326
|
+
'transition-[transform] duration-300 visible': isSmallScreen && ready,
|
|
15252
15327
|
'border-r-2 border-black/[.08] ': !showBackdrop
|
|
15253
15328
|
}, props.className);
|
|
15329
|
+
React__default.useEffect(() => {
|
|
15330
|
+
// ensure state is updated in the next cpu tick so that the animation definitely doesn't run
|
|
15331
|
+
setTimeout(() => {
|
|
15332
|
+
setReady(isSmallScreen);
|
|
15333
|
+
}, 1);
|
|
15334
|
+
}, [isSmallScreen]);
|
|
15254
15335
|
const toggleSidebar = () => setSidebarOpen(open => !open);
|
|
15255
15336
|
const content = typeof children === 'function' ? children({
|
|
15256
15337
|
isLargeScreen,
|
|
@@ -15265,9 +15346,19 @@ const Sidebar = /*#__PURE__*/React__default.forwardRef(function LayoutSidebar(pr
|
|
|
15265
15346
|
"aria-hidden": !isVisible,
|
|
15266
15347
|
className: className,
|
|
15267
15348
|
ref: ref
|
|
15268
|
-
}), content), showBackdrop
|
|
15349
|
+
}), content), /*#__PURE__*/React__default.createElement(framerMotion.AnimatePresence, null, showBackdrop && /*#__PURE__*/React__default.createElement(SidebarBackdrop, {
|
|
15350
|
+
initial: {
|
|
15351
|
+
opacity: 0
|
|
15352
|
+
},
|
|
15353
|
+
animate: {
|
|
15354
|
+
opacity: 1
|
|
15355
|
+
},
|
|
15356
|
+
exit: {
|
|
15357
|
+
opacity: 0
|
|
15358
|
+
},
|
|
15359
|
+
className: "z-[1]",
|
|
15269
15360
|
onClick: () => setSidebarOpen(false)
|
|
15270
|
-
})
|
|
15361
|
+
})));
|
|
15271
15362
|
});
|
|
15272
15363
|
|
|
15273
15364
|
const Top = props => {
|
|
@@ -15497,9 +15588,10 @@ exports.BadgeIcon = BadgeIcon;
|
|
|
15497
15588
|
exports.Banner = Banner;
|
|
15498
15589
|
exports.Base = Base;
|
|
15499
15590
|
exports.Button = Button$1;
|
|
15591
|
+
exports.ButtonGroup = ButtonGroup;
|
|
15500
15592
|
exports.Calendar = Calendar$1;
|
|
15501
15593
|
exports.Card = Card;
|
|
15502
|
-
exports.Checkbox = Checkbox;
|
|
15594
|
+
exports.Checkbox = Checkbox$1;
|
|
15503
15595
|
exports.CollectionPrimitive = Collection;
|
|
15504
15596
|
exports.Combobox = Combobox;
|
|
15505
15597
|
exports.Datepicker = Datepicker;
|
|
@@ -15549,7 +15641,7 @@ exports.VisuallyHidden = VisuallyHidden;
|
|
|
15549
15641
|
exports.WindowedTable = WindowedTable;
|
|
15550
15642
|
exports.convertRowIndexPathToNumberArray = convertRowIndexPathToNumberArray;
|
|
15551
15643
|
exports.defaultLocalisationTexts = defaultLocalisationTexts;
|
|
15552
|
-
exports.findByValue = findByValue
|
|
15644
|
+
exports.findByValue = findByValue;
|
|
15553
15645
|
exports.format = format;
|
|
15554
15646
|
exports.getByRowIndexPath = getByRowIndexPath;
|
|
15555
15647
|
exports.getNavigationLinkClasses = getNavigationLinkClasses;
|
|
@@ -15567,6 +15659,7 @@ exports.setByRowIndexPath = setByRowIndexPath;
|
|
|
15567
15659
|
exports.useBoundaryOverflowDetection = useBoundaryOverflowDetection;
|
|
15568
15660
|
exports.useBoundingClientRectListener = useBoundingClientRectListener;
|
|
15569
15661
|
exports.useDropTarget = useDropTarget;
|
|
15662
|
+
exports.useIntersectionObserver = useIntersectionObserver;
|
|
15570
15663
|
exports.useIsLargeScreen = useIsLargeScreen;
|
|
15571
15664
|
exports.useListKeyboardNavigation = useListKeyboardNavigation;
|
|
15572
15665
|
exports.useListScrollTo = useListScrollTo;
|