@moving-walls/design-system 1.0.23 → 2.0.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/ui/AdvancedTable/index.d.ts +3 -0
- package/dist/components/ui/AdvancedTable/types.d.ts +51 -0
- package/dist/components/ui/AdvancedTable/useAdvancedTable.d.ts +27 -0
- package/dist/components/ui/AgGridTable/types.d.ts +2 -0
- package/dist/components/ui/Calendar/index.d.ts +3 -0
- package/dist/components/ui/Calendar/types.d.ts +14 -0
- package/dist/components/ui/Calendar/useCalendar.d.ts +26 -0
- package/dist/components/ui/CollapsibleInfoPanel.d.ts +12 -0
- package/dist/components/ui/DateRangePicker.d.ts +6 -1
- package/dist/components/ui/DesktopOnly.d.ts +8 -0
- package/dist/components/ui/DragDrop/DragDropZone.d.ts +14 -0
- package/dist/components/ui/DragDrop/FilePreview.d.ts +7 -0
- package/dist/components/ui/DragDrop/SortableList.d.ts +8 -0
- package/dist/components/ui/DragDrop/index.d.ts +9 -0
- package/dist/components/ui/DragDrop/types.d.ts +12 -0
- package/dist/components/ui/DragDrop/useDragDrop.d.ts +16 -0
- package/dist/components/ui/FocusScope.d.ts +14 -0
- package/dist/components/ui/MobileDataCard.d.ts +18 -0
- package/dist/components/ui/MobileOnly.d.ts +8 -0
- package/dist/components/ui/MobilePagination.d.ts +10 -0
- package/dist/components/ui/MobileToolbar.d.ts +12 -0
- package/dist/components/ui/ResponsiveStack.d.ts +14 -0
- package/dist/components/ui/ScheduleGrid.d.ts +6 -1
- package/dist/components/ui/TimeRangePicker.d.ts +8 -1
- package/dist/components/ui/VisuallyHidden.d.ts +10 -0
- package/dist/components/ui/index.d.ts +22 -0
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/useMediaQuery.d.ts +6 -0
- package/dist/hooks/useResponsiveSheet.d.ts +19 -0
- package/dist/index.esm.js +794 -32
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +803 -30
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +4 -2
package/dist/index.js
CHANGED
|
@@ -289,14 +289,17 @@ var Input = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
289
289
|
label = _a.label,
|
|
290
290
|
error = _a.error,
|
|
291
291
|
helpText = _a.helpText,
|
|
292
|
-
|
|
292
|
+
id = _a.id,
|
|
293
|
+
props = __rest$1(_a, ["className", "label", "error", "helpText", "id"]);
|
|
293
294
|
return require$$1.jsxs("div", {
|
|
294
295
|
className: "space-y-2",
|
|
295
296
|
children: [label && require$$1.jsx("label", {
|
|
297
|
+
htmlFor: id,
|
|
296
298
|
className: "block text-sm font-normal leading-none text-mw-neutral-700 dark:text-mw-neutral-300",
|
|
297
299
|
children: label
|
|
298
300
|
}), require$$1.jsx("input", Object.assign({
|
|
299
301
|
ref: ref,
|
|
302
|
+
id: id,
|
|
300
303
|
className: clsx('block w-full h-10 min-h-10 px-3 py-2 border rounded-md text-sm font-normal', 'focus:outline-none focus:ring-1 focus:ring-mw-primary-500 focus:border-transparent', 'disabled:opacity-50 disabled:cursor-not-allowed', error ? 'border-mw-error-300 text-mw-error-900 placeholder-mw-error-300 focus:ring-mw-error-500' : 'border-mw-neutral-100 dark:border-mw-neutral-600 text-mw-neutral-500 dark:text-white placeholder-mw-neutral-400', 'dark:bg-mw-neutral-800', className)
|
|
301
304
|
}, props)), error && require$$1.jsx("p", {
|
|
302
305
|
className: "text-sm text-mw-error-600 dark:text-mw-error-400",
|
|
@@ -316,7 +319,8 @@ var Textarea = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
316
319
|
helpText = _a.helpText,
|
|
317
320
|
_a$resize = _a.resize,
|
|
318
321
|
resize = _a$resize === void 0 ? 'vertical' : _a$resize,
|
|
319
|
-
|
|
322
|
+
id = _a.id,
|
|
323
|
+
props = __rest$1(_a, ["className", "label", "error", "helpText", "resize", "id"]);
|
|
320
324
|
var resizeClasses = {
|
|
321
325
|
none: 'resize-none',
|
|
322
326
|
vertical: 'resize-y',
|
|
@@ -326,10 +330,12 @@ var Textarea = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
326
330
|
return require$$1.jsxs("div", {
|
|
327
331
|
className: "space-y-2",
|
|
328
332
|
children: [label && require$$1.jsx("label", {
|
|
333
|
+
htmlFor: id,
|
|
329
334
|
className: "block text-sm font-medium text-mw-neutral-700 dark:text-mw-neutral-300",
|
|
330
335
|
children: label
|
|
331
336
|
}), require$$1.jsx("textarea", Object.assign({
|
|
332
337
|
ref: ref,
|
|
338
|
+
id: id,
|
|
333
339
|
className: clsx('block w-full px-3 py-2 border rounded-md shadow-sm min-h-[80px]', 'focus:outline-none focus:ring-2 focus:ring-mw-primary-500 focus:border-transparent', 'disabled:opacity-50 disabled:cursor-not-allowed', error ? 'border-mw-error-300 text-mw-error-900 placeholder-mw-error-300 focus:ring-mw-error-500' : 'border-mw-neutral-300 dark:border-mw-neutral-600 text-mw-neutral-900 dark:text-white placeholder-mw-neutral-400', 'dark:bg-mw-neutral-800', resizeClasses[resize], className)
|
|
334
340
|
}, props)), error && require$$1.jsx("p", {
|
|
335
341
|
className: "text-sm text-mw-error-600 dark:text-mw-error-400",
|
|
@@ -347,7 +353,8 @@ var Checkbox = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
347
353
|
label = _a.label,
|
|
348
354
|
description = _a.description,
|
|
349
355
|
error = _a.error,
|
|
350
|
-
|
|
356
|
+
id = _a.id,
|
|
357
|
+
props = __rest$1(_a, ["className", "label", "description", "error", "id"]);
|
|
351
358
|
return require$$1.jsxs("div", {
|
|
352
359
|
className: "space-y-2",
|
|
353
360
|
children: [require$$1.jsxs("div", {
|
|
@@ -355,10 +362,12 @@ var Checkbox = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
355
362
|
children: [require$$1.jsx("input", Object.assign({
|
|
356
363
|
type: "checkbox",
|
|
357
364
|
ref: ref,
|
|
365
|
+
id: id,
|
|
358
366
|
className: clsx('mt-0.5 h-4 w-4 rounded border-mw-neutral-100 dark:border-mw-neutral-600', 'accent-mw-primary-500 focus:ring-mw-primary-600 focus:ring-offset-2', 'disabled:opacity-50 disabled:cursor-not-allowed', error && 'border-mw-error-300 accent-mw-error-500 focus:ring-mw-error-500', className)
|
|
359
367
|
}, props)), (label || description) && require$$1.jsxs("div", {
|
|
360
368
|
className: "flex-1 min-w-0",
|
|
361
369
|
children: [label && require$$1.jsx("label", {
|
|
370
|
+
htmlFor: id,
|
|
362
371
|
className: "text-sm font-medium text-mw-neutral-500 dark:text-mw-neutral-300",
|
|
363
372
|
children: label
|
|
364
373
|
}), description && require$$1.jsx("p", {
|
|
@@ -378,7 +387,8 @@ var Radio$1 = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
378
387
|
label = _a.label,
|
|
379
388
|
description = _a.description,
|
|
380
389
|
error = _a.error,
|
|
381
|
-
|
|
390
|
+
id = _a.id,
|
|
391
|
+
props = __rest$1(_a, ["className", "label", "description", "error", "id"]);
|
|
382
392
|
return require$$1.jsxs("div", {
|
|
383
393
|
className: "space-y-2",
|
|
384
394
|
children: [require$$1.jsxs("div", {
|
|
@@ -386,10 +396,12 @@ var Radio$1 = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
386
396
|
children: [require$$1.jsx("input", Object.assign({
|
|
387
397
|
type: "radio",
|
|
388
398
|
ref: ref,
|
|
399
|
+
id: id,
|
|
389
400
|
className: clsx('mt-0.5 h-4 w-4 border-mw-neutral-100 dark:border-mw-neutral-600', 'accent-mw-primary-500 focus:ring-mw-primary-600 focus:ring-offset-2', 'disabled:opacity-50 disabled:cursor-not-allowed', error && 'border-mw-error-300 accent-mw-error-500 focus:ring-mw-error-500', className)
|
|
390
401
|
}, props)), (label || description) && require$$1.jsxs("div", {
|
|
391
402
|
className: "flex-1 min-w-0",
|
|
392
403
|
children: [label && require$$1.jsx("label", {
|
|
404
|
+
htmlFor: id,
|
|
393
405
|
className: "text-sm font-medium text-mw-neutral-500 dark:text-mw-neutral-300",
|
|
394
406
|
children: label
|
|
395
407
|
}), description && require$$1.jsx("p", {
|
|
@@ -31454,7 +31466,7 @@ var AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount";
|
|
|
31454
31466
|
var AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount";
|
|
31455
31467
|
var EVENT_OPTIONS = { bubbles: false, cancelable: true };
|
|
31456
31468
|
var FOCUS_SCOPE_NAME = "FocusScope";
|
|
31457
|
-
var FocusScope = React__namespace.forwardRef((props, forwardedRef) => {
|
|
31469
|
+
var FocusScope$1 = React__namespace.forwardRef((props, forwardedRef) => {
|
|
31458
31470
|
const { loop = false, trapped = false, onMountAutoFocus: onMountAutoFocusProp, onUnmountAutoFocus: onUnmountAutoFocusProp } = props, scopeProps = __rest$1(props, ["loop", "trapped", "onMountAutoFocus", "onUnmountAutoFocus"]);
|
|
31459
31471
|
const [container, setContainer] = React__namespace.useState(null);
|
|
31460
31472
|
const onMountAutoFocus = useCallbackRef$1(onMountAutoFocusProp);
|
|
@@ -31574,7 +31586,7 @@ var FocusScope = React__namespace.forwardRef((props, forwardedRef) => {
|
|
|
31574
31586
|
}, [loop, trapped, focusScope.paused]);
|
|
31575
31587
|
return /* @__PURE__ */ require$$1.jsx(Primitive.div, Object.assign(Object.assign({ tabIndex: -1 }, scopeProps), { ref: composedRefs, onKeyDown: handleKeyDown }));
|
|
31576
31588
|
});
|
|
31577
|
-
FocusScope.displayName = FOCUS_SCOPE_NAME;
|
|
31589
|
+
FocusScope$1.displayName = FOCUS_SCOPE_NAME;
|
|
31578
31590
|
function focusFirst(candidates, { select = false } = {}) {
|
|
31579
31591
|
const previouslyFocusedElement = document.activeElement;
|
|
31580
31592
|
for (const candidate of candidates) {
|
|
@@ -33926,10 +33938,10 @@ var VISUALLY_HIDDEN_STYLES = Object.freeze({
|
|
|
33926
33938
|
wordWrap: "normal"
|
|
33927
33939
|
});
|
|
33928
33940
|
var NAME = "VisuallyHidden";
|
|
33929
|
-
var VisuallyHidden = React__namespace.forwardRef((props, forwardedRef) => {
|
|
33941
|
+
var VisuallyHidden$1 = React__namespace.forwardRef((props, forwardedRef) => {
|
|
33930
33942
|
return /* @__PURE__ */ require$$1.jsx(Primitive.span, Object.assign(Object.assign({}, props), { ref: forwardedRef, style: Object.assign(Object.assign({}, VISUALLY_HIDDEN_STYLES), props.style) }));
|
|
33931
33943
|
});
|
|
33932
|
-
VisuallyHidden.displayName = NAME;
|
|
33944
|
+
VisuallyHidden$1.displayName = NAME;
|
|
33933
33945
|
|
|
33934
33946
|
var getDefaultParent = function (originalTarget) {
|
|
33935
33947
|
if (typeof document === 'undefined') {
|
|
@@ -35102,7 +35114,7 @@ var SelectContentImpl = React__namespace.forwardRef((props, forwardedRef) => {
|
|
|
35102
35114
|
position,
|
|
35103
35115
|
isPositioned,
|
|
35104
35116
|
searchRef,
|
|
35105
|
-
children: /* @__PURE__ */ require$$1.jsx(ReactRemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ require$$1.jsx(FocusScope, {
|
|
35117
|
+
children: /* @__PURE__ */ require$$1.jsx(ReactRemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ require$$1.jsx(FocusScope$1, {
|
|
35106
35118
|
asChild: true,
|
|
35107
35119
|
trapped: context.open,
|
|
35108
35120
|
onMountAutoFocus: (event) => {
|
|
@@ -36144,8 +36156,7 @@ var daysOfWeek = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
|
|
|
36144
36156
|
function DatePicker(_ref) {
|
|
36145
36157
|
var value = _ref.value,
|
|
36146
36158
|
onChange = _ref.onChange,
|
|
36147
|
-
|
|
36148
|
-
placeholder = _ref$placeholder === void 0 ? 'Select date' : _ref$placeholder,
|
|
36159
|
+
placeholder = _ref.placeholder,
|
|
36149
36160
|
_ref$disabled = _ref.disabled,
|
|
36150
36161
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
36151
36162
|
className = _ref.className,
|
|
@@ -36382,9 +36393,10 @@ function CalendarMonth(_ref) {
|
|
|
36382
36393
|
}
|
|
36383
36394
|
// Next month's leading days
|
|
36384
36395
|
var totalCells = Math.ceil(days.length / 7) * 7;
|
|
36385
|
-
|
|
36386
|
-
|
|
36387
|
-
|
|
36396
|
+
var nextMonthStart = days.length;
|
|
36397
|
+
for (var _i = nextMonthStart; _i < totalCells; _i++) {
|
|
36398
|
+
var nextDay = _i - nextMonthStart + 1;
|
|
36399
|
+
var _date2 = new Date(currentMonth.getFullYear(), currentMonth.getMonth() + 1, nextDay);
|
|
36388
36400
|
days.push({
|
|
36389
36401
|
date: _date2,
|
|
36390
36402
|
isCurrentMonth: false
|
|
@@ -36487,8 +36499,8 @@ function CalendarMonth(_ref) {
|
|
|
36487
36499
|
function DateRangePicker(_ref3) {
|
|
36488
36500
|
var value = _ref3.value,
|
|
36489
36501
|
onChange = _ref3.onChange,
|
|
36490
|
-
|
|
36491
|
-
|
|
36502
|
+
placeholder = _ref3.placeholder,
|
|
36503
|
+
labels = _ref3.labels,
|
|
36492
36504
|
_ref3$disabled = _ref3.disabled,
|
|
36493
36505
|
disabled = _ref3$disabled === void 0 ? false : _ref3$disabled;
|
|
36494
36506
|
_ref3.required;
|
|
@@ -36505,6 +36517,7 @@ function DateRangePicker(_ref3) {
|
|
|
36505
36517
|
presets = _ref3$presets === void 0 ? defaultPresets$1 : _ref3$presets,
|
|
36506
36518
|
_ref3$align = _ref3.align,
|
|
36507
36519
|
align = _ref3$align === void 0 ? 'left' : _ref3$align;
|
|
36520
|
+
var _a, _b;
|
|
36508
36521
|
var _useState = React.useState(false),
|
|
36509
36522
|
_useState2 = _slicedToArray(_useState, 2),
|
|
36510
36523
|
isOpen = _useState2[0],
|
|
@@ -36670,7 +36683,7 @@ function DateRangePicker(_ref3) {
|
|
|
36670
36683
|
className: "flex items-center justify-between px-3 py-2 border-t border-mw-neutral-200 dark:border-mw-neutral-700",
|
|
36671
36684
|
children: [require$$1.jsx("div", {
|
|
36672
36685
|
className: "text-[11px] text-mw-neutral-500 dark:text-mw-neutral-400",
|
|
36673
|
-
children: selectingStart ? 'Select start date' : 'Select end date'
|
|
36686
|
+
children: selectingStart ? (_a = labels === null || labels === void 0 ? void 0 : labels.selectStart) !== null && _a !== void 0 ? _a : 'Select start date' : (_b = labels === null || labels === void 0 ? void 0 : labels.selectEnd) !== null && _b !== void 0 ? _b : 'Select end date'
|
|
36674
36687
|
}), require$$1.jsxs("div", {
|
|
36675
36688
|
className: "flex gap-2 items-center",
|
|
36676
36689
|
children: [require$$1.jsx("button", {
|
|
@@ -36831,8 +36844,7 @@ function TimePicker(_ref2) {
|
|
|
36831
36844
|
label = _ref2.label,
|
|
36832
36845
|
error = _ref2.error,
|
|
36833
36846
|
helpText = _ref2.helpText,
|
|
36834
|
-
|
|
36835
|
-
placeholder = _ref2$placeholder === void 0 ? 'Select time' : _ref2$placeholder,
|
|
36847
|
+
placeholder = _ref2.placeholder,
|
|
36836
36848
|
className = _ref2.className,
|
|
36837
36849
|
_ref2$size = _ref2.size,
|
|
36838
36850
|
size = _ref2$size === void 0 ? 'md' : _ref2$size,
|
|
@@ -37198,8 +37210,7 @@ function TimeSelect(_ref) {
|
|
|
37198
37210
|
function TimeRangePicker(_ref2) {
|
|
37199
37211
|
var value = _ref2.value,
|
|
37200
37212
|
onChange = _ref2.onChange,
|
|
37201
|
-
|
|
37202
|
-
placeholder = _ref2$placeholder === void 0 ? 'Select time range' : _ref2$placeholder,
|
|
37213
|
+
placeholder = _ref2.placeholder,
|
|
37203
37214
|
_ref2$disabled = _ref2.disabled,
|
|
37204
37215
|
disabled = _ref2$disabled === void 0 ? false : _ref2$disabled;
|
|
37205
37216
|
_ref2.required;
|
|
@@ -37212,8 +37223,10 @@ function TimeRangePicker(_ref2) {
|
|
|
37212
37223
|
minTime = _ref2.minTime,
|
|
37213
37224
|
maxTime = _ref2.maxTime,
|
|
37214
37225
|
className = _ref2.className,
|
|
37226
|
+
labels = _ref2.labels,
|
|
37215
37227
|
_ref2$presets = _ref2.presets,
|
|
37216
37228
|
presets = _ref2$presets === void 0 ? defaultPresets : _ref2$presets;
|
|
37229
|
+
var _a, _b;
|
|
37217
37230
|
var _useState5 = React.useState(value || {
|
|
37218
37231
|
from: null,
|
|
37219
37232
|
to: null
|
|
@@ -37350,13 +37363,13 @@ function TimeRangePicker(_ref2) {
|
|
|
37350
37363
|
children: [require$$1.jsxs("div", {
|
|
37351
37364
|
children: [require$$1.jsx("label", {
|
|
37352
37365
|
className: "block text-sm font-medium mb-2 text-mw-neutral-900 dark:text-white",
|
|
37353
|
-
children:
|
|
37366
|
+
children: (_a = labels === null || labels === void 0 ? void 0 : labels.fromTime) !== null && _a !== void 0 ? _a : 'From Time'
|
|
37354
37367
|
}), require$$1.jsx(TimeSelect, {
|
|
37355
37368
|
value: selectedRange.from,
|
|
37356
37369
|
onChange: handleFromTimeChange,
|
|
37357
37370
|
options: timeOptions,
|
|
37358
37371
|
format: format,
|
|
37359
|
-
placeholder:
|
|
37372
|
+
placeholder: labels === null || labels === void 0 ? void 0 : labels.selectStart,
|
|
37360
37373
|
disabled: disabled,
|
|
37361
37374
|
minTime: minTime,
|
|
37362
37375
|
maxTime: selectedRange.to ? format === '12' ? convertTo24Hour(selectedRange.to) : selectedRange.to : maxTime
|
|
@@ -37364,13 +37377,13 @@ function TimeRangePicker(_ref2) {
|
|
|
37364
37377
|
}), require$$1.jsxs("div", {
|
|
37365
37378
|
children: [require$$1.jsx("label", {
|
|
37366
37379
|
className: "block text-sm font-medium mb-2 text-mw-neutral-900 dark:text-white",
|
|
37367
|
-
children:
|
|
37380
|
+
children: (_b = labels === null || labels === void 0 ? void 0 : labels.toTime) !== null && _b !== void 0 ? _b : 'To Time'
|
|
37368
37381
|
}), require$$1.jsx(TimeSelect, {
|
|
37369
37382
|
value: selectedRange.to,
|
|
37370
37383
|
onChange: handleToTimeChange,
|
|
37371
37384
|
options: timeOptions,
|
|
37372
37385
|
format: format,
|
|
37373
|
-
placeholder:
|
|
37386
|
+
placeholder: labels === null || labels === void 0 ? void 0 : labels.selectEnd,
|
|
37374
37387
|
disabled: disabled || !selectedRange.from,
|
|
37375
37388
|
minTime: selectedRange.from ? format === '12' ? convertTo24Hour(selectedRange.from) : selectedRange.from : minTime,
|
|
37376
37389
|
maxTime: maxTime
|
|
@@ -38699,8 +38712,7 @@ function MultiSelect(_ref) {
|
|
|
38699
38712
|
_ref$value = _ref.value,
|
|
38700
38713
|
value = _ref$value === void 0 ? [] : _ref$value,
|
|
38701
38714
|
onChange = _ref.onChange,
|
|
38702
|
-
|
|
38703
|
-
placeholder = _ref$placeholder === void 0 ? 'Select...' : _ref$placeholder,
|
|
38715
|
+
placeholder = _ref.placeholder,
|
|
38704
38716
|
label = _ref.label,
|
|
38705
38717
|
_ref$disabled = _ref.disabled,
|
|
38706
38718
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
@@ -39157,7 +39169,8 @@ function ScheduleGrid(_ref) {
|
|
|
39157
39169
|
_ref$presets = _ref.presets,
|
|
39158
39170
|
presets = _ref$presets === void 0 ? DEFAULT_PRESETS : _ref$presets,
|
|
39159
39171
|
_ref$showPresets = _ref.showPresets,
|
|
39160
|
-
showPresets = _ref$showPresets === void 0 ? true : _ref$showPresets
|
|
39172
|
+
showPresets = _ref$showPresets === void 0 ? true : _ref$showPresets,
|
|
39173
|
+
labels = _ref.labels;
|
|
39161
39174
|
var _useState = React.useState('custom'),
|
|
39162
39175
|
_useState2 = _slicedToArray(_useState, 2),
|
|
39163
39176
|
selectedPreset = _useState2[0],
|
|
@@ -39280,6 +39293,7 @@ function ScheduleGrid(_ref) {
|
|
|
39280
39293
|
onChange(newRules);
|
|
39281
39294
|
};
|
|
39282
39295
|
var renderHourGrid = function renderHourGrid(type, selectedHours) {
|
|
39296
|
+
var _a, _b;
|
|
39283
39297
|
var allSelected = selectedHours.size === 24;
|
|
39284
39298
|
var label = type === 'DEFAULT' ? 'Default Hours' : type === 'WEEKDAY' ? 'Weekday Hours (Mon-Fri)' : 'Weekend Hours (Sat-Sun)';
|
|
39285
39299
|
var isExpanded = expandedSection === type.toLowerCase();
|
|
@@ -39314,7 +39328,7 @@ function ScheduleGrid(_ref) {
|
|
|
39314
39328
|
return handleSelectAll(type);
|
|
39315
39329
|
},
|
|
39316
39330
|
className: "text-xs text-mw-primary-500 hover:text-mw-primary-600 font-medium",
|
|
39317
|
-
children: allSelected ? 'Deselect All' : 'Select All 24 Hours'
|
|
39331
|
+
children: allSelected ? (_a = labels === null || labels === void 0 ? void 0 : labels.deselectAll) !== null && _a !== void 0 ? _a : 'Deselect All' : (_b = labels === null || labels === void 0 ? void 0 : labels.selectAll) !== null && _b !== void 0 ? _b : 'Select All 24 Hours'
|
|
39318
39332
|
})
|
|
39319
39333
|
}), require$$1.jsx("div", {
|
|
39320
39334
|
className: "grid grid-cols-6 gap-1.5",
|
|
@@ -42924,6 +42938,221 @@ function AdvancedTable(_ref3) {
|
|
|
42924
42938
|
});
|
|
42925
42939
|
}
|
|
42926
42940
|
|
|
42941
|
+
function getCellValue(row, column) {
|
|
42942
|
+
if (column.accessorFn) return column.accessorFn(row);
|
|
42943
|
+
if (column.accessorKey) return row[column.accessorKey];
|
|
42944
|
+
return undefined;
|
|
42945
|
+
}
|
|
42946
|
+
function useAdvancedTable(_ref) {
|
|
42947
|
+
var data = _ref.data,
|
|
42948
|
+
columns = _ref.columns,
|
|
42949
|
+
_ref$initialState = _ref.initialState,
|
|
42950
|
+
initialState = _ref$initialState === void 0 ? {} : _ref$initialState,
|
|
42951
|
+
_ref$getRowId = _ref.getRowId,
|
|
42952
|
+
getRowId = _ref$getRowId === void 0 ? function (_row, index) {
|
|
42953
|
+
return index;
|
|
42954
|
+
} : _ref$getRowId;
|
|
42955
|
+
var _useState = React.useState(initialState.sorting || []),
|
|
42956
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
42957
|
+
sorting = _useState2[0],
|
|
42958
|
+
setSorting = _useState2[1];
|
|
42959
|
+
var _useState3 = React.useState(initialState.filters || []),
|
|
42960
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
42961
|
+
filters = _useState4[0],
|
|
42962
|
+
setFilters = _useState4[1];
|
|
42963
|
+
var _useState5 = React.useState(initialState.globalFilter || ''),
|
|
42964
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
42965
|
+
globalFilter = _useState6[0],
|
|
42966
|
+
setGlobalFilter = _useState6[1];
|
|
42967
|
+
var _useState7 = React.useState(initialState.columnVisibility || {}),
|
|
42968
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
42969
|
+
columnVisibility = _useState8[0],
|
|
42970
|
+
setColumnVisibility = _useState8[1];
|
|
42971
|
+
var _useState9 = React.useState(initialState.density || 'normal'),
|
|
42972
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
42973
|
+
density = _useState0[0],
|
|
42974
|
+
setDensity = _useState0[1];
|
|
42975
|
+
var _useState1 = React.useState(new Set()),
|
|
42976
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
42977
|
+
selectedRows = _useState10[0],
|
|
42978
|
+
setSelectedRows = _useState10[1];
|
|
42979
|
+
var visibleColumns = React.useMemo(function () {
|
|
42980
|
+
return columns.filter(function (col) {
|
|
42981
|
+
return columnVisibility[col.id] !== false && !col.hidden;
|
|
42982
|
+
});
|
|
42983
|
+
}, [columns, columnVisibility]);
|
|
42984
|
+
var toggleSort = React.useCallback(function (columnId) {
|
|
42985
|
+
setSorting(function (prev) {
|
|
42986
|
+
var existing = prev.find(function (s) {
|
|
42987
|
+
return s.columnId === columnId;
|
|
42988
|
+
});
|
|
42989
|
+
if (!existing) return [{
|
|
42990
|
+
columnId: columnId,
|
|
42991
|
+
direction: 'asc'
|
|
42992
|
+
}];
|
|
42993
|
+
if (existing.direction === 'asc') return [{
|
|
42994
|
+
columnId: columnId,
|
|
42995
|
+
direction: 'desc'
|
|
42996
|
+
}];
|
|
42997
|
+
return [];
|
|
42998
|
+
});
|
|
42999
|
+
}, []);
|
|
43000
|
+
var addFilter = React.useCallback(function (filter) {
|
|
43001
|
+
setFilters(function (prev) {
|
|
43002
|
+
var idx = prev.findIndex(function (f) {
|
|
43003
|
+
return f.columnId === filter.columnId;
|
|
43004
|
+
});
|
|
43005
|
+
if (idx >= 0) {
|
|
43006
|
+
var next = _toConsumableArray(prev);
|
|
43007
|
+
next[idx] = filter;
|
|
43008
|
+
return next;
|
|
43009
|
+
}
|
|
43010
|
+
return [].concat(_toConsumableArray(prev), [filter]);
|
|
43011
|
+
});
|
|
43012
|
+
}, []);
|
|
43013
|
+
var removeFilter = React.useCallback(function (columnId) {
|
|
43014
|
+
setFilters(function (prev) {
|
|
43015
|
+
return prev.filter(function (f) {
|
|
43016
|
+
return f.columnId !== columnId;
|
|
43017
|
+
});
|
|
43018
|
+
});
|
|
43019
|
+
}, []);
|
|
43020
|
+
var clearFilters = React.useCallback(function () {
|
|
43021
|
+
setFilters([]);
|
|
43022
|
+
setGlobalFilter('');
|
|
43023
|
+
}, []);
|
|
43024
|
+
var toggleColumnVisibility = React.useCallback(function (columnId) {
|
|
43025
|
+
setColumnVisibility(function (prev) {
|
|
43026
|
+
return Object.assign(Object.assign({}, prev), _defineProperty({}, columnId, prev[columnId] === false ? true : false));
|
|
43027
|
+
});
|
|
43028
|
+
}, []);
|
|
43029
|
+
var toggleRowSelection = React.useCallback(function (rowId) {
|
|
43030
|
+
setSelectedRows(function (prev) {
|
|
43031
|
+
var next = new Set(prev);
|
|
43032
|
+
if (next.has(rowId)) next["delete"](rowId);else next.add(rowId);
|
|
43033
|
+
return next;
|
|
43034
|
+
});
|
|
43035
|
+
}, []);
|
|
43036
|
+
var selectAllRows = React.useCallback(function () {
|
|
43037
|
+
setSelectedRows(new Set(data.map(function (row, i) {
|
|
43038
|
+
return getRowId(row, i);
|
|
43039
|
+
})));
|
|
43040
|
+
}, [data, getRowId]);
|
|
43041
|
+
var clearSelection = React.useCallback(function () {
|
|
43042
|
+
setSelectedRows(new Set());
|
|
43043
|
+
}, []);
|
|
43044
|
+
var processedData = React.useMemo(function () {
|
|
43045
|
+
var result = _toConsumableArray(data);
|
|
43046
|
+
// Apply global filter
|
|
43047
|
+
if (globalFilter) {
|
|
43048
|
+
var searchLower = globalFilter.toLowerCase();
|
|
43049
|
+
result = result.filter(function (row) {
|
|
43050
|
+
return columns.some(function (col) {
|
|
43051
|
+
if (!col.searchable && col.searchable !== undefined) return false;
|
|
43052
|
+
var value = getCellValue(row, col);
|
|
43053
|
+
return value != null && String(value).toLowerCase().includes(searchLower);
|
|
43054
|
+
});
|
|
43055
|
+
});
|
|
43056
|
+
}
|
|
43057
|
+
// Apply column filters
|
|
43058
|
+
var _iterator = _createForOfIteratorHelper(filters),
|
|
43059
|
+
_step;
|
|
43060
|
+
try {
|
|
43061
|
+
var _loop = function _loop() {
|
|
43062
|
+
var filter = _step.value;
|
|
43063
|
+
var column = columns.find(function (c) {
|
|
43064
|
+
return c.id === filter.columnId;
|
|
43065
|
+
});
|
|
43066
|
+
if (!column) return 1; // continue
|
|
43067
|
+
result = result.filter(function (row) {
|
|
43068
|
+
var value = getCellValue(row, column);
|
|
43069
|
+
if (value == null) return false;
|
|
43070
|
+
var strValue = String(value).toLowerCase();
|
|
43071
|
+
var filterValue = String(filter.value).toLowerCase();
|
|
43072
|
+
switch (filter.operator || 'contains') {
|
|
43073
|
+
case 'equals':
|
|
43074
|
+
return strValue === filterValue;
|
|
43075
|
+
case 'contains':
|
|
43076
|
+
return strValue.includes(filterValue);
|
|
43077
|
+
case 'startsWith':
|
|
43078
|
+
return strValue.startsWith(filterValue);
|
|
43079
|
+
case 'endsWith':
|
|
43080
|
+
return strValue.endsWith(filterValue);
|
|
43081
|
+
default:
|
|
43082
|
+
return strValue.includes(filterValue);
|
|
43083
|
+
}
|
|
43084
|
+
});
|
|
43085
|
+
};
|
|
43086
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
43087
|
+
if (_loop()) continue;
|
|
43088
|
+
}
|
|
43089
|
+
// Apply sorting
|
|
43090
|
+
} catch (err) {
|
|
43091
|
+
_iterator.e(err);
|
|
43092
|
+
} finally {
|
|
43093
|
+
_iterator.f();
|
|
43094
|
+
}
|
|
43095
|
+
if (sorting.length > 0) {
|
|
43096
|
+
var sort = sorting[0];
|
|
43097
|
+
var column = columns.find(function (c) {
|
|
43098
|
+
return c.id === sort.columnId;
|
|
43099
|
+
});
|
|
43100
|
+
if (column) {
|
|
43101
|
+
result.sort(function (a, b) {
|
|
43102
|
+
var aVal = getCellValue(a, column);
|
|
43103
|
+
var bVal = getCellValue(b, column);
|
|
43104
|
+
if (aVal == null && bVal == null) return 0;
|
|
43105
|
+
if (aVal == null) return 1;
|
|
43106
|
+
if (bVal == null) return -1;
|
|
43107
|
+
var cmp = String(aVal).localeCompare(String(bVal), undefined, {
|
|
43108
|
+
numeric: true
|
|
43109
|
+
});
|
|
43110
|
+
return sort.direction === 'desc' ? -cmp : cmp;
|
|
43111
|
+
});
|
|
43112
|
+
}
|
|
43113
|
+
}
|
|
43114
|
+
return result;
|
|
43115
|
+
}, [data, columns, sorting, filters, globalFilter]);
|
|
43116
|
+
var state = {
|
|
43117
|
+
sorting: sorting,
|
|
43118
|
+
filters: filters,
|
|
43119
|
+
globalFilter: globalFilter,
|
|
43120
|
+
columnVisibility: columnVisibility,
|
|
43121
|
+
columnOrder: columns.map(function (c) {
|
|
43122
|
+
return c.id;
|
|
43123
|
+
}),
|
|
43124
|
+
columnSizing: {},
|
|
43125
|
+
density: density,
|
|
43126
|
+
frozenColumns: {
|
|
43127
|
+
left: [],
|
|
43128
|
+
right: []
|
|
43129
|
+
}
|
|
43130
|
+
};
|
|
43131
|
+
return {
|
|
43132
|
+
// Data
|
|
43133
|
+
processedData: processedData,
|
|
43134
|
+
visibleColumns: visibleColumns,
|
|
43135
|
+
// State
|
|
43136
|
+
state: state,
|
|
43137
|
+
sorting: sorting,
|
|
43138
|
+
filters: filters,
|
|
43139
|
+
globalFilter: globalFilter,
|
|
43140
|
+
density: density,
|
|
43141
|
+
selectedRows: selectedRows,
|
|
43142
|
+
// Actions
|
|
43143
|
+
toggleSort: toggleSort,
|
|
43144
|
+
addFilter: addFilter,
|
|
43145
|
+
removeFilter: removeFilter,
|
|
43146
|
+
clearFilters: clearFilters,
|
|
43147
|
+
setGlobalFilter: setGlobalFilter,
|
|
43148
|
+
setDensity: setDensity,
|
|
43149
|
+
toggleColumnVisibility: toggleColumnVisibility,
|
|
43150
|
+
toggleRowSelection: toggleRowSelection,
|
|
43151
|
+
selectAllRows: selectAllRows,
|
|
43152
|
+
clearSelection: clearSelection
|
|
43153
|
+
};
|
|
43154
|
+
}
|
|
43155
|
+
|
|
42927
43156
|
var emptyStateIcons = {
|
|
42928
43157
|
noData: require$$1.jsx(Database, {
|
|
42929
43158
|
className: "w-12 h-12 text-mw-neutral-400"
|
|
@@ -47118,6 +47347,121 @@ function DayView(_ref4) {
|
|
|
47118
47347
|
});
|
|
47119
47348
|
}
|
|
47120
47349
|
|
|
47350
|
+
function useCalendar(_ref) {
|
|
47351
|
+
var value = _ref.value,
|
|
47352
|
+
_ref$events = _ref.events,
|
|
47353
|
+
events = _ref$events === void 0 ? [] : _ref$events,
|
|
47354
|
+
_ref$view = _ref.view,
|
|
47355
|
+
view = _ref$view === void 0 ? 'month' : _ref$view,
|
|
47356
|
+
onViewChange = _ref.onViewChange,
|
|
47357
|
+
onChange = _ref.onChange,
|
|
47358
|
+
_ref$hourFormat = _ref.hourFormat,
|
|
47359
|
+
hourFormat = _ref$hourFormat === void 0 ? 24 : _ref$hourFormat;
|
|
47360
|
+
var _useState = React.useState(value || new Date()),
|
|
47361
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
47362
|
+
currentDate = _useState2[0],
|
|
47363
|
+
setCurrentDate = _useState2[1];
|
|
47364
|
+
var _useState3 = React.useState(view),
|
|
47365
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
47366
|
+
currentView = _useState4[0],
|
|
47367
|
+
setCurrentView = _useState4[1];
|
|
47368
|
+
var today = new Date();
|
|
47369
|
+
var _useMemo = React.useMemo(function () {
|
|
47370
|
+
return {
|
|
47371
|
+
year: currentDate.getFullYear(),
|
|
47372
|
+
month: currentDate.getMonth()
|
|
47373
|
+
};
|
|
47374
|
+
}, [currentDate]),
|
|
47375
|
+
year = _useMemo.year,
|
|
47376
|
+
month = _useMemo.month;
|
|
47377
|
+
var handleViewChange = React.useCallback(function (newView) {
|
|
47378
|
+
setCurrentView(newView);
|
|
47379
|
+
onViewChange === null || onViewChange === void 0 ? void 0 : onViewChange(newView);
|
|
47380
|
+
}, [onViewChange]);
|
|
47381
|
+
var handleDateSelect = React.useCallback(function (date) {
|
|
47382
|
+
setCurrentDate(date);
|
|
47383
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(date);
|
|
47384
|
+
}, [onChange]);
|
|
47385
|
+
var navigateMonth = React.useCallback(function (delta) {
|
|
47386
|
+
setCurrentDate(function (prev) {
|
|
47387
|
+
return new Date(prev.getFullYear(), prev.getMonth() + delta, 1);
|
|
47388
|
+
});
|
|
47389
|
+
}, []);
|
|
47390
|
+
var navigateWeek = React.useCallback(function (delta) {
|
|
47391
|
+
setCurrentDate(function (prev) {
|
|
47392
|
+
var d = new Date(prev);
|
|
47393
|
+
d.setDate(d.getDate() + delta * 7);
|
|
47394
|
+
return d;
|
|
47395
|
+
});
|
|
47396
|
+
}, []);
|
|
47397
|
+
var navigateDay = React.useCallback(function (delta) {
|
|
47398
|
+
setCurrentDate(function (prev) {
|
|
47399
|
+
var d = new Date(prev);
|
|
47400
|
+
d.setDate(d.getDate() + delta);
|
|
47401
|
+
return d;
|
|
47402
|
+
});
|
|
47403
|
+
}, []);
|
|
47404
|
+
var goToToday = React.useCallback(function () {
|
|
47405
|
+
setCurrentDate(new Date());
|
|
47406
|
+
}, []);
|
|
47407
|
+
var getEventsForDate = React.useCallback(function (date) {
|
|
47408
|
+
return events.filter(function (event) {
|
|
47409
|
+
return event.date.toDateString() === date.toDateString();
|
|
47410
|
+
});
|
|
47411
|
+
}, [events]);
|
|
47412
|
+
var getEventsForTimeSlot = React.useCallback(function (date, timeSlot) {
|
|
47413
|
+
var dateEvents = getEventsForDate(date);
|
|
47414
|
+
return dateEvents.filter(function (event) {
|
|
47415
|
+
if (event.allDay) return false;
|
|
47416
|
+
if (!event.startTime) return false;
|
|
47417
|
+
var eventStart = event.startTime;
|
|
47418
|
+
return eventStart === timeSlot;
|
|
47419
|
+
});
|
|
47420
|
+
}, [getEventsForDate]);
|
|
47421
|
+
var formatTime = React.useCallback(function (time) {
|
|
47422
|
+
if (hourFormat === 12) {
|
|
47423
|
+
var _time$split$map = time.split(':').map(Number),
|
|
47424
|
+
_time$split$map2 = _slicedToArray(_time$split$map, 2),
|
|
47425
|
+
hours = _time$split$map2[0],
|
|
47426
|
+
minutes = _time$split$map2[1];
|
|
47427
|
+
var ampm = hours >= 12 ? 'PM' : 'AM';
|
|
47428
|
+
var displayHours = hours % 12 || 12;
|
|
47429
|
+
return "".concat(displayHours, ":").concat(minutes.toString().padStart(2, '0'), " ").concat(ampm);
|
|
47430
|
+
}
|
|
47431
|
+
return time;
|
|
47432
|
+
}, [hourFormat]);
|
|
47433
|
+
var getWeekDates = React.useCallback(function (date) {
|
|
47434
|
+
var startOfWeek = new Date(date);
|
|
47435
|
+
var day = startOfWeek.getDay();
|
|
47436
|
+
var diff = startOfWeek.getDate() - day + (day === 0 ? -6 : 1);
|
|
47437
|
+
startOfWeek.setDate(diff);
|
|
47438
|
+
var weekDates = [];
|
|
47439
|
+
for (var i = 0; i < 7; i++) {
|
|
47440
|
+
var weekDate = new Date(startOfWeek);
|
|
47441
|
+
weekDate.setDate(startOfWeek.getDate() + i);
|
|
47442
|
+
weekDates.push(weekDate);
|
|
47443
|
+
}
|
|
47444
|
+
return weekDates;
|
|
47445
|
+
}, []);
|
|
47446
|
+
return {
|
|
47447
|
+
currentDate: currentDate,
|
|
47448
|
+
currentView: currentView,
|
|
47449
|
+
today: today,
|
|
47450
|
+
year: year,
|
|
47451
|
+
month: month,
|
|
47452
|
+
handleViewChange: handleViewChange,
|
|
47453
|
+
handleDateSelect: handleDateSelect,
|
|
47454
|
+
navigateMonth: navigateMonth,
|
|
47455
|
+
navigateWeek: navigateWeek,
|
|
47456
|
+
navigateDay: navigateDay,
|
|
47457
|
+
goToToday: goToToday,
|
|
47458
|
+
getEventsForDate: getEventsForDate,
|
|
47459
|
+
getEventsForTimeSlot: getEventsForTimeSlot,
|
|
47460
|
+
formatTime: formatTime,
|
|
47461
|
+
getWeekDates: getWeekDates
|
|
47462
|
+
};
|
|
47463
|
+
}
|
|
47464
|
+
|
|
47121
47465
|
function cn$8() {
|
|
47122
47466
|
for (var _len = arguments.length, classes = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
47123
47467
|
classes[_key] = arguments[_key];
|
|
@@ -49571,7 +49915,8 @@ function AgGridTableInner(props) {
|
|
|
49571
49915
|
cacheBlockSize = props.cacheBlockSize,
|
|
49572
49916
|
footerData = props.footerData,
|
|
49573
49917
|
_props$pagination = props.pagination,
|
|
49574
|
-
pagination = _props$pagination === void 0 ? true : _props$pagination
|
|
49918
|
+
pagination = _props$pagination === void 0 ? true : _props$pagination,
|
|
49919
|
+
onBodyScrollEnd = props.onBodyScrollEnd;
|
|
49575
49920
|
var gridRef = React.useRef(null);
|
|
49576
49921
|
var apiRef = React.useRef(null);
|
|
49577
49922
|
var isSortFromExternalRef = React.useRef(false);
|
|
@@ -49739,6 +50084,9 @@ function AgGridTableInner(props) {
|
|
|
49739
50084
|
paginationPageSize: useGridPagination ? (_a = serverSideConfig === null || serverSideConfig === void 0 ? void 0 : serverSideConfig.pageSize) !== null && _a !== void 0 ? _a : 10 : undefined,
|
|
49740
50085
|
paginationPageSizeSelector: useGridPagination ? (_b = serverSideConfig === null || serverSideConfig === void 0 ? void 0 : serverSideConfig.pageSizeSelector) !== null && _b !== void 0 ? _b : DEFAULT_PAGE_SIZE_SELECTOR : undefined,
|
|
49741
50086
|
cacheBlockSize: cacheBlockSize,
|
|
50087
|
+
onBodyScrollEnd: onBodyScrollEnd ? function () {
|
|
50088
|
+
return onBodyScrollEnd();
|
|
50089
|
+
} : undefined,
|
|
49742
50090
|
pinnedBottomRowData: footerData === null || footerData === void 0 ? void 0 : footerData.map(function (row, i) {
|
|
49743
50091
|
return _typeof(row) === "object" && row !== null && !("id" in row) ? Object.assign(Object.assign({}, row), {
|
|
49744
50092
|
id: "pinned-bottom-".concat(i)
|
|
@@ -49757,6 +50105,420 @@ function AgGridTableInner(props) {
|
|
|
49757
50105
|
}
|
|
49758
50106
|
var AgGridTable = AgGridTableInner;
|
|
49759
50107
|
|
|
50108
|
+
/**
|
|
50109
|
+
* A mobile-optimized card for displaying a single data row.
|
|
50110
|
+
* Replaces AG Grid table rows on mobile viewports.
|
|
50111
|
+
* Minimum 44px touch target when clickable.
|
|
50112
|
+
*/
|
|
50113
|
+
var MobileDataCard = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
50114
|
+
var title = _a.title,
|
|
50115
|
+
subtitle = _a.subtitle,
|
|
50116
|
+
statusBadge = _a.statusBadge,
|
|
50117
|
+
fields = _a.fields,
|
|
50118
|
+
actions = _a.actions,
|
|
50119
|
+
onClick = _a.onClick,
|
|
50120
|
+
className = _a.className,
|
|
50121
|
+
props = __rest$1(_a, ["title", "subtitle", "statusBadge", "fields", "actions", "onClick", "className"]);
|
|
50122
|
+
return require$$1.jsxs("div", Object.assign({
|
|
50123
|
+
ref: ref,
|
|
50124
|
+
role: onClick ? 'button' : undefined,
|
|
50125
|
+
tabIndex: onClick ? 0 : undefined,
|
|
50126
|
+
onClick: onClick,
|
|
50127
|
+
onKeyDown: onClick ? function (e) {
|
|
50128
|
+
if (e.key === 'Enter') onClick();
|
|
50129
|
+
} : undefined,
|
|
50130
|
+
className: clsx('rounded-lg border border-mw-neutral-200 bg-white p-4', 'dark:border-mw-neutral-700 dark:bg-mw-neutral-800', onClick && 'cursor-pointer hover:border-mw-primary-300 dark:hover:border-mw-primary-600 min-h-[44px]', className)
|
|
50131
|
+
}, props, {
|
|
50132
|
+
children: [require$$1.jsxs("div", {
|
|
50133
|
+
className: "flex items-start justify-between gap-2",
|
|
50134
|
+
children: [require$$1.jsxs("div", {
|
|
50135
|
+
className: "flex-1 min-w-0",
|
|
50136
|
+
children: [require$$1.jsx("p", {
|
|
50137
|
+
className: "text-sm font-medium text-mw-neutral-900 dark:text-mw-neutral-100 truncate",
|
|
50138
|
+
children: title
|
|
50139
|
+
}), subtitle && require$$1.jsx("p", {
|
|
50140
|
+
className: "text-xs text-mw-neutral-500 dark:text-mw-neutral-400 mt-0.5",
|
|
50141
|
+
children: subtitle
|
|
50142
|
+
})]
|
|
50143
|
+
}), require$$1.jsxs("div", {
|
|
50144
|
+
className: "flex items-center gap-2 flex-shrink-0",
|
|
50145
|
+
children: [statusBadge, actions]
|
|
50146
|
+
})]
|
|
50147
|
+
}), fields.length > 0 && require$$1.jsx("div", {
|
|
50148
|
+
className: "grid grid-cols-2 gap-x-4 gap-y-2 mt-3",
|
|
50149
|
+
children: fields.map(function (_ref) {
|
|
50150
|
+
var label = _ref.label,
|
|
50151
|
+
value = _ref.value;
|
|
50152
|
+
return require$$1.jsxs("div", {
|
|
50153
|
+
children: [require$$1.jsx("p", {
|
|
50154
|
+
className: "text-xs text-mw-neutral-500 dark:text-mw-neutral-400",
|
|
50155
|
+
children: label
|
|
50156
|
+
}), require$$1.jsx("p", {
|
|
50157
|
+
className: "text-sm text-mw-neutral-900 dark:text-mw-neutral-100",
|
|
50158
|
+
children: value
|
|
50159
|
+
})]
|
|
50160
|
+
}, label);
|
|
50161
|
+
})
|
|
50162
|
+
})]
|
|
50163
|
+
}));
|
|
50164
|
+
}));
|
|
50165
|
+
MobileDataCard.displayName = 'MobileDataCard';
|
|
50166
|
+
|
|
50167
|
+
/**
|
|
50168
|
+
* Prev/Next pagination for mobile card lists.
|
|
50169
|
+
* Shows "Page X of Y" with disabled states at boundaries.
|
|
50170
|
+
*/
|
|
50171
|
+
var MobilePagination = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
50172
|
+
var page = _a.page,
|
|
50173
|
+
totalPages = _a.totalPages,
|
|
50174
|
+
onPageChange = _a.onPageChange,
|
|
50175
|
+
className = _a.className,
|
|
50176
|
+
props = __rest$1(_a, ["page", "totalPages", "onPageChange", "className"]);
|
|
50177
|
+
return require$$1.jsxs("div", Object.assign({
|
|
50178
|
+
ref: ref,
|
|
50179
|
+
className: clsx('flex items-center justify-between px-2 py-3', className)
|
|
50180
|
+
}, props, {
|
|
50181
|
+
children: [require$$1.jsx("button", {
|
|
50182
|
+
type: "button",
|
|
50183
|
+
"aria-label": "Previous page",
|
|
50184
|
+
disabled: page <= 1,
|
|
50185
|
+
onClick: function onClick() {
|
|
50186
|
+
return onPageChange(page - 1);
|
|
50187
|
+
},
|
|
50188
|
+
className: clsx('px-3 py-2 text-sm font-medium rounded-md min-h-[44px] min-w-[44px]', 'border border-mw-neutral-200 dark:border-mw-neutral-700', 'text-mw-neutral-700 dark:text-mw-neutral-300', 'enabled:hover:bg-mw-neutral-50 enabled:dark:hover:bg-mw-neutral-800', 'disabled:opacity-50 disabled:cursor-not-allowed'),
|
|
50189
|
+
children: "\u2190"
|
|
50190
|
+
}), require$$1.jsxs("span", {
|
|
50191
|
+
className: "text-sm text-mw-neutral-600 dark:text-mw-neutral-400",
|
|
50192
|
+
children: [page, " / ", totalPages]
|
|
50193
|
+
}), require$$1.jsx("button", {
|
|
50194
|
+
type: "button",
|
|
50195
|
+
"aria-label": "Next page",
|
|
50196
|
+
disabled: page >= totalPages,
|
|
50197
|
+
onClick: function onClick() {
|
|
50198
|
+
return onPageChange(page + 1);
|
|
50199
|
+
},
|
|
50200
|
+
className: clsx('px-3 py-2 text-sm font-medium rounded-md min-h-[44px] min-w-[44px]', 'border border-mw-neutral-200 dark:border-mw-neutral-700', 'text-mw-neutral-700 dark:text-mw-neutral-300', 'enabled:hover:bg-mw-neutral-50 enabled:dark:hover:bg-mw-neutral-800', 'disabled:opacity-50 disabled:cursor-not-allowed'),
|
|
50201
|
+
children: "\u2192"
|
|
50202
|
+
})]
|
|
50203
|
+
}));
|
|
50204
|
+
});
|
|
50205
|
+
MobilePagination.displayName = 'MobilePagination';
|
|
50206
|
+
|
|
50207
|
+
/**
|
|
50208
|
+
* A mobile-optimized toolbar with search input and optional filter button.
|
|
50209
|
+
* Filter button shows an active count badge when filters are applied.
|
|
50210
|
+
*/
|
|
50211
|
+
var MobileToolbar = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
50212
|
+
var searchValue = _a.searchValue,
|
|
50213
|
+
onSearchChange = _a.onSearchChange,
|
|
50214
|
+
_a$searchPlaceholder = _a.searchPlaceholder,
|
|
50215
|
+
searchPlaceholder = _a$searchPlaceholder === void 0 ? 'Search...' : _a$searchPlaceholder,
|
|
50216
|
+
onFilterClick = _a.onFilterClick,
|
|
50217
|
+
activeFilterCount = _a.activeFilterCount,
|
|
50218
|
+
className = _a.className,
|
|
50219
|
+
props = __rest$1(_a, ["searchValue", "onSearchChange", "searchPlaceholder", "onFilterClick", "activeFilterCount", "className"]);
|
|
50220
|
+
return require$$1.jsxs("div", Object.assign({
|
|
50221
|
+
ref: ref,
|
|
50222
|
+
className: clsx('flex items-center gap-2', className)
|
|
50223
|
+
}, props, {
|
|
50224
|
+
children: [require$$1.jsxs("div", {
|
|
50225
|
+
className: "relative flex-1",
|
|
50226
|
+
children: [require$$1.jsxs("svg", {
|
|
50227
|
+
className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-mw-neutral-400",
|
|
50228
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
50229
|
+
viewBox: "0 0 24 24",
|
|
50230
|
+
fill: "none",
|
|
50231
|
+
stroke: "currentColor",
|
|
50232
|
+
strokeWidth: "2",
|
|
50233
|
+
strokeLinecap: "round",
|
|
50234
|
+
strokeLinejoin: "round",
|
|
50235
|
+
"aria-hidden": "true",
|
|
50236
|
+
children: [require$$1.jsx("circle", {
|
|
50237
|
+
cx: "11",
|
|
50238
|
+
cy: "11",
|
|
50239
|
+
r: "8"
|
|
50240
|
+
}), require$$1.jsx("path", {
|
|
50241
|
+
d: "m21 21-4.3-4.3"
|
|
50242
|
+
})]
|
|
50243
|
+
}), require$$1.jsx("input", {
|
|
50244
|
+
type: "search",
|
|
50245
|
+
role: "searchbox",
|
|
50246
|
+
value: searchValue,
|
|
50247
|
+
onChange: function onChange(e) {
|
|
50248
|
+
return onSearchChange(e.target.value);
|
|
50249
|
+
},
|
|
50250
|
+
placeholder: searchPlaceholder,
|
|
50251
|
+
className: clsx('w-full h-11 pl-10 pr-4 text-sm rounded-lg', 'border border-mw-neutral-200 bg-white', 'dark:border-mw-neutral-700 dark:bg-mw-neutral-800', 'text-mw-neutral-900 dark:text-mw-neutral-100', 'placeholder:text-mw-neutral-400 dark:placeholder:text-mw-neutral-500', 'focus:outline-none focus:ring-2 focus:ring-mw-primary-500 focus:border-mw-primary-500')
|
|
50252
|
+
})]
|
|
50253
|
+
}), onFilterClick && require$$1.jsxs("button", {
|
|
50254
|
+
type: "button",
|
|
50255
|
+
"aria-label": "Filters",
|
|
50256
|
+
onClick: onFilterClick,
|
|
50257
|
+
className: clsx('relative flex items-center justify-center h-11 w-11 rounded-lg', 'border border-mw-neutral-200 bg-white', 'dark:border-mw-neutral-700 dark:bg-mw-neutral-800', 'text-mw-neutral-700 dark:text-mw-neutral-300', 'hover:bg-mw-neutral-50 dark:hover:bg-mw-neutral-700'),
|
|
50258
|
+
children: [require$$1.jsxs("svg", {
|
|
50259
|
+
className: "h-5 w-5",
|
|
50260
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
50261
|
+
viewBox: "0 0 24 24",
|
|
50262
|
+
fill: "none",
|
|
50263
|
+
stroke: "currentColor",
|
|
50264
|
+
strokeWidth: "2",
|
|
50265
|
+
strokeLinecap: "round",
|
|
50266
|
+
strokeLinejoin: "round",
|
|
50267
|
+
"aria-hidden": "true",
|
|
50268
|
+
children: [require$$1.jsx("line", {
|
|
50269
|
+
x1: "4",
|
|
50270
|
+
x2: "4",
|
|
50271
|
+
y1: "21",
|
|
50272
|
+
y2: "14"
|
|
50273
|
+
}), require$$1.jsx("line", {
|
|
50274
|
+
x1: "4",
|
|
50275
|
+
x2: "4",
|
|
50276
|
+
y1: "10",
|
|
50277
|
+
y2: "3"
|
|
50278
|
+
}), require$$1.jsx("line", {
|
|
50279
|
+
x1: "12",
|
|
50280
|
+
x2: "12",
|
|
50281
|
+
y1: "21",
|
|
50282
|
+
y2: "12"
|
|
50283
|
+
}), require$$1.jsx("line", {
|
|
50284
|
+
x1: "12",
|
|
50285
|
+
x2: "12",
|
|
50286
|
+
y1: "8",
|
|
50287
|
+
y2: "3"
|
|
50288
|
+
}), require$$1.jsx("line", {
|
|
50289
|
+
x1: "20",
|
|
50290
|
+
x2: "20",
|
|
50291
|
+
y1: "21",
|
|
50292
|
+
y2: "16"
|
|
50293
|
+
}), require$$1.jsx("line", {
|
|
50294
|
+
x1: "20",
|
|
50295
|
+
x2: "20",
|
|
50296
|
+
y1: "12",
|
|
50297
|
+
y2: "3"
|
|
50298
|
+
}), require$$1.jsx("line", {
|
|
50299
|
+
x1: "2",
|
|
50300
|
+
x2: "6",
|
|
50301
|
+
y1: "14",
|
|
50302
|
+
y2: "14"
|
|
50303
|
+
}), require$$1.jsx("line", {
|
|
50304
|
+
x1: "10",
|
|
50305
|
+
x2: "14",
|
|
50306
|
+
y1: "8",
|
|
50307
|
+
y2: "8"
|
|
50308
|
+
}), require$$1.jsx("line", {
|
|
50309
|
+
x1: "18",
|
|
50310
|
+
x2: "22",
|
|
50311
|
+
y1: "16",
|
|
50312
|
+
y2: "16"
|
|
50313
|
+
})]
|
|
50314
|
+
}), activeFilterCount != null && activeFilterCount > 0 && require$$1.jsx("span", {
|
|
50315
|
+
className: "absolute -top-1 -right-1 flex h-5 w-5 items-center justify-center rounded-full bg-mw-primary-500 text-[10px] font-bold text-white",
|
|
50316
|
+
children: activeFilterCount
|
|
50317
|
+
})]
|
|
50318
|
+
})]
|
|
50319
|
+
}));
|
|
50320
|
+
});
|
|
50321
|
+
MobileToolbar.displayName = 'MobileToolbar';
|
|
50322
|
+
|
|
50323
|
+
/**
|
|
50324
|
+
* Renders children only on mobile (hidden on md+ screens).
|
|
50325
|
+
* Uses CSS-based visibility — both layouts are in the DOM.
|
|
50326
|
+
*/
|
|
50327
|
+
var MobileOnly = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
50328
|
+
var children = _a.children,
|
|
50329
|
+
className = _a.className,
|
|
50330
|
+
props = __rest$1(_a, ["children", "className"]);
|
|
50331
|
+
return require$$1.jsx("div", Object.assign({
|
|
50332
|
+
ref: ref,
|
|
50333
|
+
className: clsx('md:hidden', className)
|
|
50334
|
+
}, props, {
|
|
50335
|
+
children: children
|
|
50336
|
+
}));
|
|
50337
|
+
});
|
|
50338
|
+
MobileOnly.displayName = 'MobileOnly';
|
|
50339
|
+
|
|
50340
|
+
/**
|
|
50341
|
+
* Renders children only on desktop (hidden below md breakpoint).
|
|
50342
|
+
* Uses CSS-based visibility — both layouts are in the DOM.
|
|
50343
|
+
*/
|
|
50344
|
+
var DesktopOnly = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
50345
|
+
var children = _a.children,
|
|
50346
|
+
className = _a.className,
|
|
50347
|
+
props = __rest$1(_a, ["children", "className"]);
|
|
50348
|
+
return require$$1.jsx("div", Object.assign({
|
|
50349
|
+
ref: ref,
|
|
50350
|
+
className: clsx('hidden md:block', className)
|
|
50351
|
+
}, props, {
|
|
50352
|
+
children: children
|
|
50353
|
+
}));
|
|
50354
|
+
});
|
|
50355
|
+
DesktopOnly.displayName = 'DesktopOnly';
|
|
50356
|
+
|
|
50357
|
+
var breakpointRowClass = {
|
|
50358
|
+
sm: 'sm:flex-row',
|
|
50359
|
+
md: 'md:flex-row',
|
|
50360
|
+
lg: 'lg:flex-row',
|
|
50361
|
+
xl: 'xl:flex-row'
|
|
50362
|
+
};
|
|
50363
|
+
/**
|
|
50364
|
+
* Stacks children vertically on mobile, horizontally on desktop.
|
|
50365
|
+
* Replaces the common `flex flex-col md:flex-row` pattern.
|
|
50366
|
+
*/
|
|
50367
|
+
var ResponsiveStack = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
50368
|
+
var _a$breakpoint = _a.breakpoint,
|
|
50369
|
+
breakpoint = _a$breakpoint === void 0 ? 'md' : _a$breakpoint,
|
|
50370
|
+
gap = _a.gap,
|
|
50371
|
+
_a$reverse = _a.reverse,
|
|
50372
|
+
reverse = _a$reverse === void 0 ? false : _a$reverse,
|
|
50373
|
+
children = _a.children,
|
|
50374
|
+
className = _a.className,
|
|
50375
|
+
props = __rest$1(_a, ["breakpoint", "gap", "reverse", "children", "className"]);
|
|
50376
|
+
return require$$1.jsx("div", Object.assign({
|
|
50377
|
+
ref: ref,
|
|
50378
|
+
className: clsx('flex', reverse ? 'flex-col-reverse' : 'flex-col', breakpointRowClass[breakpoint], gap != null && "gap-".concat(gap), className)
|
|
50379
|
+
}, props, {
|
|
50380
|
+
children: children
|
|
50381
|
+
}));
|
|
50382
|
+
});
|
|
50383
|
+
ResponsiveStack.displayName = 'ResponsiveStack';
|
|
50384
|
+
|
|
50385
|
+
/**
|
|
50386
|
+
* A collapsible panel for secondary information on mobile.
|
|
50387
|
+
* Wraps the design system Accordion for converting sidebar panels
|
|
50388
|
+
* (tips, insights, help text) into expandable sections.
|
|
50389
|
+
*/
|
|
50390
|
+
var CollapsibleInfoPanel = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
50391
|
+
var title = _a.title,
|
|
50392
|
+
icon = _a.icon,
|
|
50393
|
+
_a$defaultOpen = _a.defaultOpen,
|
|
50394
|
+
defaultOpen = _a$defaultOpen === void 0 ? false : _a$defaultOpen,
|
|
50395
|
+
children = _a.children,
|
|
50396
|
+
className = _a.className,
|
|
50397
|
+
props = __rest$1(_a, ["title", "icon", "defaultOpen", "children", "className"]);
|
|
50398
|
+
return require$$1.jsx("div", Object.assign({
|
|
50399
|
+
ref: ref,
|
|
50400
|
+
className: clsx(className)
|
|
50401
|
+
}, props, {
|
|
50402
|
+
children: require$$1.jsx(Accordion, {
|
|
50403
|
+
type: "single",
|
|
50404
|
+
defaultValue: defaultOpen ? 'panel' : undefined,
|
|
50405
|
+
children: require$$1.jsxs(AccordionItem, {
|
|
50406
|
+
value: "panel",
|
|
50407
|
+
children: [require$$1.jsxs(AccordionTrigger, {
|
|
50408
|
+
className: clsx('flex items-center gap-2 text-sm font-medium', 'text-mw-neutral-900 dark:text-mw-neutral-100'),
|
|
50409
|
+
children: [icon && require$$1.jsx("span", {
|
|
50410
|
+
className: "flex-shrink-0",
|
|
50411
|
+
children: icon
|
|
50412
|
+
}), title]
|
|
50413
|
+
}), require$$1.jsx(AccordionContent, {
|
|
50414
|
+
children: require$$1.jsx("div", {
|
|
50415
|
+
className: "pt-2",
|
|
50416
|
+
children: children
|
|
50417
|
+
})
|
|
50418
|
+
})]
|
|
50419
|
+
})
|
|
50420
|
+
})
|
|
50421
|
+
}));
|
|
50422
|
+
});
|
|
50423
|
+
CollapsibleInfoPanel.displayName = 'CollapsibleInfoPanel';
|
|
50424
|
+
|
|
50425
|
+
/**
|
|
50426
|
+
* Renders content that is visually hidden but accessible to screen readers.
|
|
50427
|
+
* Use this instead of ad-hoc `sr-only` classes for consistent accessibility.
|
|
50428
|
+
*/
|
|
50429
|
+
var VisuallyHidden = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
50430
|
+
var _a$as = _a.as,
|
|
50431
|
+
Component = _a$as === void 0 ? 'span' : _a$as,
|
|
50432
|
+
children = _a.children,
|
|
50433
|
+
style = _a.style,
|
|
50434
|
+
props = __rest$1(_a, ["as", "children", "style"]);
|
|
50435
|
+
return require$$1.jsx(Component, Object.assign({
|
|
50436
|
+
ref: ref,
|
|
50437
|
+
style: Object.assign({
|
|
50438
|
+
position: 'absolute',
|
|
50439
|
+
width: '1px',
|
|
50440
|
+
height: '1px',
|
|
50441
|
+
padding: 0,
|
|
50442
|
+
margin: '-1px',
|
|
50443
|
+
overflow: 'hidden',
|
|
50444
|
+
clip: 'rect(0, 0, 0, 0)',
|
|
50445
|
+
whiteSpace: 'nowrap',
|
|
50446
|
+
borderWidth: 0
|
|
50447
|
+
}, style)
|
|
50448
|
+
}, props, {
|
|
50449
|
+
children: children
|
|
50450
|
+
}));
|
|
50451
|
+
});
|
|
50452
|
+
VisuallyHidden.displayName = 'VisuallyHidden';
|
|
50453
|
+
|
|
50454
|
+
var FOCUSABLE_SELECTOR = 'button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"]):not([disabled])';
|
|
50455
|
+
/**
|
|
50456
|
+
* Traps keyboard focus within its children.
|
|
50457
|
+
* Use in modals, dialogs, and sheets to prevent focus from escaping.
|
|
50458
|
+
*/
|
|
50459
|
+
var FocusScope = /*#__PURE__*/React.forwardRef(function (_a, _ref) {
|
|
50460
|
+
var _a$trapped = _a.trapped,
|
|
50461
|
+
trapped = _a$trapped === void 0 ? false : _a$trapped,
|
|
50462
|
+
_a$autoFocus = _a.autoFocus,
|
|
50463
|
+
autoFocus = _a$autoFocus === void 0 ? false : _a$autoFocus,
|
|
50464
|
+
onEscape = _a.onEscape,
|
|
50465
|
+
children = _a.children,
|
|
50466
|
+
className = _a.className,
|
|
50467
|
+
props = __rest$1(_a, ["trapped", "autoFocus", "onEscape", "children", "className"]);
|
|
50468
|
+
var containerRef = React.useRef(null);
|
|
50469
|
+
var getFocusableElements = React.useCallback(function () {
|
|
50470
|
+
if (!containerRef.current) return [];
|
|
50471
|
+
return Array.from(containerRef.current.querySelectorAll(FOCUSABLE_SELECTOR));
|
|
50472
|
+
}, []);
|
|
50473
|
+
React.useEffect(function () {
|
|
50474
|
+
if (!autoFocus || !containerRef.current) return;
|
|
50475
|
+
var focusable = getFocusableElements();
|
|
50476
|
+
if (focusable.length > 0) {
|
|
50477
|
+
focusable[0].focus();
|
|
50478
|
+
}
|
|
50479
|
+
}, [autoFocus, getFocusableElements]);
|
|
50480
|
+
React.useEffect(function () {
|
|
50481
|
+
if (!trapped || !containerRef.current) return;
|
|
50482
|
+
var handleKeyDown = function handleKeyDown(e) {
|
|
50483
|
+
if (e.key === 'Escape' && onEscape) {
|
|
50484
|
+
onEscape();
|
|
50485
|
+
return;
|
|
50486
|
+
}
|
|
50487
|
+
if (e.key !== 'Tab') return;
|
|
50488
|
+
var focusable = getFocusableElements();
|
|
50489
|
+
if (focusable.length === 0) return;
|
|
50490
|
+
var first = focusable[0];
|
|
50491
|
+
var last = focusable[focusable.length - 1];
|
|
50492
|
+
if (e.shiftKey) {
|
|
50493
|
+
if (document.activeElement === first) {
|
|
50494
|
+
e.preventDefault();
|
|
50495
|
+
last.focus();
|
|
50496
|
+
}
|
|
50497
|
+
} else {
|
|
50498
|
+
if (document.activeElement === last) {
|
|
50499
|
+
e.preventDefault();
|
|
50500
|
+
first.focus();
|
|
50501
|
+
}
|
|
50502
|
+
}
|
|
50503
|
+
};
|
|
50504
|
+
var container = containerRef.current;
|
|
50505
|
+
container.addEventListener('keydown', handleKeyDown);
|
|
50506
|
+
return function () {
|
|
50507
|
+
return container.removeEventListener('keydown', handleKeyDown);
|
|
50508
|
+
};
|
|
50509
|
+
}, [trapped, onEscape, getFocusableElements]);
|
|
50510
|
+
return require$$1.jsx("div", Object.assign({
|
|
50511
|
+
ref: function ref(node) {
|
|
50512
|
+
containerRef.current = node;
|
|
50513
|
+
if (typeof _ref === 'function') _ref(node);else if (_ref) _ref.current = node;
|
|
50514
|
+
},
|
|
50515
|
+
className: clsx(className)
|
|
50516
|
+
}, props, {
|
|
50517
|
+
children: children
|
|
50518
|
+
}));
|
|
50519
|
+
});
|
|
50520
|
+
FocusScope.displayName = 'FocusScope';
|
|
50521
|
+
|
|
49760
50522
|
function PageHeader(_a) {
|
|
49761
50523
|
var title = _a.title,
|
|
49762
50524
|
description = _a.description,
|
|
@@ -57640,6 +58402,7 @@ exports.CodeSnippet = CodeSnippet;
|
|
|
57640
58402
|
exports.Collapsible = Collapsible;
|
|
57641
58403
|
exports.CollapsibleCode = CollapsibleCode;
|
|
57642
58404
|
exports.CollapsibleContent = CollapsibleContent;
|
|
58405
|
+
exports.CollapsibleInfoPanel = CollapsibleInfoPanel;
|
|
57643
58406
|
exports.CollapsibleTrigger = CollapsibleTrigger;
|
|
57644
58407
|
exports.ColumnCustomizationDrawer = ColumnCustomizationDrawer;
|
|
57645
58408
|
exports.Command = Command;
|
|
@@ -57653,6 +58416,7 @@ exports.DataGrid = DataGrid;
|
|
|
57653
58416
|
exports.DatePicker = DatePicker;
|
|
57654
58417
|
exports.DateRangePicker = DateRangePicker;
|
|
57655
58418
|
exports.DescriptionList = DescriptionList;
|
|
58419
|
+
exports.DesktopOnly = DesktopOnly;
|
|
57656
58420
|
exports.Dialog = Dialog;
|
|
57657
58421
|
exports.DialogContent = DialogContent;
|
|
57658
58422
|
exports.DialogDescription = DialogDescription;
|
|
@@ -57681,6 +58445,7 @@ exports.FileUpload = FileUpload;
|
|
|
57681
58445
|
exports.Filter = Filter;
|
|
57682
58446
|
exports.FlexContainer = FlexContainer;
|
|
57683
58447
|
exports.FloatingElement = FloatingElement;
|
|
58448
|
+
exports.FocusScope = FocusScope;
|
|
57684
58449
|
exports.Footer = Footer;
|
|
57685
58450
|
exports.Form = Form;
|
|
57686
58451
|
exports.FormActions = FormActions;
|
|
@@ -57722,6 +58487,10 @@ exports.MenuRadioItem = MenuRadioItem;
|
|
|
57722
58487
|
exports.MenuSeparator = MenuSeparator;
|
|
57723
58488
|
exports.MetricCard = MetricCard;
|
|
57724
58489
|
exports.MinusIcon = MinusIcon;
|
|
58490
|
+
exports.MobileDataCard = MobileDataCard;
|
|
58491
|
+
exports.MobileOnly = MobileOnly;
|
|
58492
|
+
exports.MobilePagination = MobilePagination;
|
|
58493
|
+
exports.MobileToolbar = MobileToolbar;
|
|
57725
58494
|
exports.Modal = Modal;
|
|
57726
58495
|
exports.ModalBody = ModalBody;
|
|
57727
58496
|
exports.ModalFooter = ModalFooter;
|
|
@@ -57754,6 +58523,7 @@ exports.RadioGroup = RadioGroup;
|
|
|
57754
58523
|
exports.RadioGroupItem = RadioGroupItem;
|
|
57755
58524
|
exports.Rating = Rating;
|
|
57756
58525
|
exports.ResponsiveContainer = ResponsiveContainer;
|
|
58526
|
+
exports.ResponsiveStack = ResponsiveStack;
|
|
57757
58527
|
exports.RichTextEditor = RichTextEditor;
|
|
57758
58528
|
exports.ScheduleGrid = ScheduleGrid;
|
|
57759
58529
|
exports.ScrollArea = ScrollArea;
|
|
@@ -57830,6 +58600,7 @@ exports.ToggleGroupItem = ToggleGroupItem;
|
|
|
57830
58600
|
exports.Tooltip = Tooltip;
|
|
57831
58601
|
exports.TreeView = TreeView;
|
|
57832
58602
|
exports.VideoThumbnail = VideoThumbnail;
|
|
58603
|
+
exports.VisuallyHidden = VisuallyHidden;
|
|
57833
58604
|
exports.borderRadius = borderRadius;
|
|
57834
58605
|
exports.borderWidth = borderWidth;
|
|
57835
58606
|
exports.breakpoints = breakpoints;
|
|
@@ -57849,6 +58620,8 @@ exports.shadows = shadows;
|
|
|
57849
58620
|
exports.spacing = spacing;
|
|
57850
58621
|
exports.tokens = tokens;
|
|
57851
58622
|
exports.typography = typography;
|
|
58623
|
+
exports.useAdvancedTable = useAdvancedTable;
|
|
58624
|
+
exports.useCalendar = useCalendar;
|
|
57852
58625
|
exports.useDragDrop = useDragDrop;
|
|
57853
58626
|
exports.useFormContext = useFormContext;
|
|
57854
58627
|
exports.useIconSearch = useIconSearch;
|