@moving-walls/design-system 1.0.21 → 1.0.23
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/index.esm.js +131 -39
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +131 -39
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -36323,15 +36323,17 @@ function formatDate(date) {
|
|
|
36323
36323
|
var monthShort = monthNames[date.getMonth()];
|
|
36324
36324
|
var day = String(date.getDate()).padStart(2, '0');
|
|
36325
36325
|
var year = date.getFullYear();
|
|
36326
|
-
//
|
|
36327
|
-
// (e.g. 'MMM' contains 'MM', so naive chaining can break)
|
|
36326
|
+
// Use placeholders to avoid substring conflicts (MMM contains MM, yyyy contains yy)
|
|
36328
36327
|
var result = format;
|
|
36329
|
-
|
|
36330
|
-
|
|
36331
|
-
|
|
36332
|
-
|
|
36333
|
-
|
|
36334
|
-
|
|
36328
|
+
result = result.replace('MMM', '\x01');
|
|
36329
|
+
result = result.replace('MM', '\x02');
|
|
36330
|
+
result = result.replace('dd', '\x03');
|
|
36331
|
+
result = result.replace('yyyy', '\x04');
|
|
36332
|
+
result = result.replace('\x01', monthShort);
|
|
36333
|
+
result = result.replace('\x02', month);
|
|
36334
|
+
result = result.replace('\x03', day);
|
|
36335
|
+
result = result.replace('\x04', String(year));
|
|
36336
|
+
return result;
|
|
36335
36337
|
}
|
|
36336
36338
|
function isSameDay(date1, date2) {
|
|
36337
36339
|
if (!date1 || !date2) return false;
|
|
@@ -36358,7 +36360,7 @@ function CalendarMonth(_ref) {
|
|
|
36358
36360
|
var weekDays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
|
|
36359
36361
|
var firstDayOfMonth = new Date(currentMonth.getFullYear(), currentMonth.getMonth(), 1);
|
|
36360
36362
|
var lastDayOfMonth = new Date(currentMonth.getFullYear(), currentMonth.getMonth() + 1, 0);
|
|
36361
|
-
var firstDayOfWeek = firstDayOfMonth.getDay();
|
|
36363
|
+
var firstDayOfWeek = (firstDayOfMonth.getDay() + 6) % 7; // Convert to Monday-start (Mon=0, Sun=6)
|
|
36362
36364
|
var daysInMonth = lastDayOfMonth.getDate();
|
|
36363
36365
|
var days = [];
|
|
36364
36366
|
// Previous month's trailing days
|
|
@@ -41314,9 +41316,7 @@ Table.Row = TableRow;
|
|
|
41314
41316
|
Table.Head = TableHead;
|
|
41315
41317
|
Table.Cell = TableCell;
|
|
41316
41318
|
|
|
41317
|
-
var
|
|
41318
|
-
delayDuration: 0
|
|
41319
|
-
});
|
|
41319
|
+
var PADDING = 8;
|
|
41320
41320
|
function Tooltip(_ref2) {
|
|
41321
41321
|
var content = _ref2.content,
|
|
41322
41322
|
children = _ref2.children,
|
|
@@ -41327,42 +41327,134 @@ function Tooltip(_ref2) {
|
|
|
41327
41327
|
_useState2 = _slicedToArray(_useState, 2),
|
|
41328
41328
|
isVisible = _useState2[0],
|
|
41329
41329
|
setIsVisible = _useState2[1];
|
|
41330
|
-
var
|
|
41331
|
-
|
|
41332
|
-
var
|
|
41333
|
-
|
|
41334
|
-
|
|
41335
|
-
|
|
41336
|
-
|
|
41330
|
+
var triggerRef = React.useRef(null);
|
|
41331
|
+
var tooltipRef = React.useRef(null);
|
|
41332
|
+
var _useState3 = React.useState(null),
|
|
41333
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
41334
|
+
coords = _useState4[0],
|
|
41335
|
+
setCoords = _useState4[1];
|
|
41336
|
+
var _useState5 = React.useState(position),
|
|
41337
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
41338
|
+
resolvedPosition = _useState6[0],
|
|
41339
|
+
setResolvedPosition = _useState6[1];
|
|
41340
|
+
var recalculate = React.useCallback(function () {
|
|
41341
|
+
if (!triggerRef.current || !tooltipRef.current) return;
|
|
41342
|
+
var triggerRect = triggerRef.current.getBoundingClientRect();
|
|
41343
|
+
var tooltipRect = tooltipRef.current.getBoundingClientRect();
|
|
41344
|
+
var vw = window.innerWidth;
|
|
41345
|
+
var vh = window.innerHeight;
|
|
41346
|
+
var top = 0;
|
|
41347
|
+
var left = 0;
|
|
41348
|
+
var resolved = position;
|
|
41349
|
+
var calc = function calc(pos) {
|
|
41350
|
+
switch (pos) {
|
|
41351
|
+
case 'top':
|
|
41352
|
+
top = triggerRect.top - tooltipRect.height - PADDING;
|
|
41353
|
+
left = triggerRect.left + triggerRect.width / 2 - tooltipRect.width / 2;
|
|
41354
|
+
break;
|
|
41355
|
+
case 'bottom':
|
|
41356
|
+
top = triggerRect.bottom + PADDING;
|
|
41357
|
+
left = triggerRect.left + triggerRect.width / 2 - tooltipRect.width / 2;
|
|
41358
|
+
break;
|
|
41359
|
+
case 'left':
|
|
41360
|
+
top = triggerRect.top + triggerRect.height / 2 - tooltipRect.height / 2;
|
|
41361
|
+
left = triggerRect.left - tooltipRect.width - PADDING;
|
|
41362
|
+
break;
|
|
41363
|
+
case 'right':
|
|
41364
|
+
top = triggerRect.top + triggerRect.height / 2 - tooltipRect.height / 2;
|
|
41365
|
+
left = triggerRect.right + PADDING;
|
|
41366
|
+
break;
|
|
41367
|
+
}
|
|
41368
|
+
};
|
|
41369
|
+
calc(position);
|
|
41370
|
+
if (position === 'top' && top < PADDING) {
|
|
41371
|
+
resolved = 'bottom';
|
|
41372
|
+
calc('bottom');
|
|
41373
|
+
} else if (position === 'bottom' && top + tooltipRect.height > vh - PADDING) {
|
|
41374
|
+
resolved = 'top';
|
|
41375
|
+
calc('top');
|
|
41376
|
+
} else if (position === 'left' && left < PADDING) {
|
|
41377
|
+
resolved = 'right';
|
|
41378
|
+
calc('right');
|
|
41379
|
+
} else if (position === 'right' && left + tooltipRect.width > vw - PADDING) {
|
|
41380
|
+
resolved = 'left';
|
|
41381
|
+
calc('left');
|
|
41382
|
+
}
|
|
41383
|
+
if (left < PADDING) left = PADDING;
|
|
41384
|
+
if (left + tooltipRect.width > vw - PADDING) left = vw - PADDING - tooltipRect.width;
|
|
41385
|
+
if (top < PADDING) top = PADDING;
|
|
41386
|
+
if (top + tooltipRect.height > vh - PADDING) top = vh - PADDING - tooltipRect.height;
|
|
41387
|
+
setCoords({
|
|
41388
|
+
top: top,
|
|
41389
|
+
left: left
|
|
41390
|
+
});
|
|
41391
|
+
setResolvedPosition(resolved);
|
|
41392
|
+
}, [position]);
|
|
41393
|
+
// Recalculate on visibility change
|
|
41394
|
+
React.useLayoutEffect(function () {
|
|
41395
|
+
if (!isVisible) return;
|
|
41396
|
+
recalculate();
|
|
41397
|
+
}, [isVisible, recalculate]);
|
|
41398
|
+
// Use callback ref to recalculate once the portal element is mounted in the DOM
|
|
41399
|
+
var tooltipCallbackRef = React.useCallback(function (node) {
|
|
41400
|
+
tooltipRef.current = node;
|
|
41401
|
+
if (node && isVisible) recalculate();
|
|
41402
|
+
}, [isVisible, recalculate]);
|
|
41403
|
+
var show = React.useCallback(function () {
|
|
41404
|
+
if (content != null && content !== '') setIsVisible(true);
|
|
41405
|
+
}, [content]);
|
|
41406
|
+
var hide = React.useCallback(function () {
|
|
41407
|
+
setIsVisible(false);
|
|
41408
|
+
setCoords(null);
|
|
41409
|
+
}, []);
|
|
41410
|
+
// Arrow positioning relative to tooltip
|
|
41411
|
+
var arrowStyle = function arrowStyle() {
|
|
41412
|
+
if (!triggerRef.current || !tooltipRef.current || !coords) return {};
|
|
41413
|
+
var triggerRect = triggerRef.current.getBoundingClientRect();
|
|
41414
|
+
var tooltipRect = tooltipRef.current.getBoundingClientRect();
|
|
41415
|
+
if (resolvedPosition === 'top' || resolvedPosition === 'bottom') {
|
|
41416
|
+
var arrowLeft = triggerRect.left + triggerRect.width / 2 - coords.left - 4;
|
|
41417
|
+
return {
|
|
41418
|
+
left: Math.max(8, Math.min(arrowLeft, tooltipRect.width - 8))
|
|
41419
|
+
};
|
|
41420
|
+
}
|
|
41421
|
+
var arrowTop = triggerRect.top + triggerRect.height / 2 - coords.top - 4;
|
|
41422
|
+
return {
|
|
41423
|
+
top: Math.max(8, Math.min(arrowTop, tooltipRect.height - 8))
|
|
41424
|
+
};
|
|
41337
41425
|
};
|
|
41338
41426
|
var arrowClasses = {
|
|
41339
|
-
top: 'top-full
|
|
41340
|
-
bottom: 'bottom-full
|
|
41341
|
-
left: 'left-full
|
|
41342
|
-
right: 'right-full
|
|
41427
|
+
top: 'absolute top-full border-l-transparent border-r-transparent border-b-transparent border-t-white',
|
|
41428
|
+
bottom: 'absolute bottom-full border-l-transparent border-r-transparent border-t-transparent border-b-white',
|
|
41429
|
+
left: 'absolute left-full border-t-transparent border-b-transparent border-r-transparent border-l-white',
|
|
41430
|
+
right: 'absolute right-full border-t-transparent border-b-transparent border-l-transparent border-r-white'
|
|
41343
41431
|
};
|
|
41344
41432
|
return require$$1.jsxs("div", {
|
|
41345
41433
|
className: "relative inline-block",
|
|
41434
|
+
ref: triggerRef,
|
|
41346
41435
|
children: [require$$1.jsx("div", {
|
|
41347
|
-
onMouseEnter:
|
|
41348
|
-
|
|
41349
|
-
|
|
41350
|
-
|
|
41351
|
-
return setIsVisible(false);
|
|
41352
|
-
},
|
|
41353
|
-
onFocus: function onFocus() {
|
|
41354
|
-
return setIsVisible(true);
|
|
41355
|
-
},
|
|
41356
|
-
onBlur: function onBlur() {
|
|
41357
|
-
return setIsVisible(false);
|
|
41358
|
-
},
|
|
41436
|
+
onMouseEnter: show,
|
|
41437
|
+
onMouseLeave: hide,
|
|
41438
|
+
onFocus: show,
|
|
41439
|
+
onBlur: hide,
|
|
41359
41440
|
children: children
|
|
41360
|
-
}), isVisible && require$$1.jsxs("div", {
|
|
41361
|
-
|
|
41441
|
+
}), isVisible && content != null && content !== '' && /*#__PURE__*/ReactDOM.createPortal(require$$1.jsxs("div", {
|
|
41442
|
+
ref: tooltipCallbackRef,
|
|
41443
|
+
style: coords ? {
|
|
41444
|
+
top: coords.top,
|
|
41445
|
+
left: coords.left,
|
|
41446
|
+
zIndex: 999999
|
|
41447
|
+
} : {
|
|
41448
|
+
top: -9999,
|
|
41449
|
+
left: -9999,
|
|
41450
|
+
zIndex: 999999
|
|
41451
|
+
},
|
|
41452
|
+
className: clsx('fixed px-2 py-1 text-sm text-mw-neutral-500 bg-white border border-mw-neutral-100 rounded-md shadow-sm max-w-sm whitespace-normal', className),
|
|
41362
41453
|
children: [content, require$$1.jsx("div", {
|
|
41363
|
-
className: clsx('
|
|
41454
|
+
className: clsx('w-0 h-0 border-4', arrowClasses[resolvedPosition]),
|
|
41455
|
+
style: arrowStyle()
|
|
41364
41456
|
})]
|
|
41365
|
-
})]
|
|
41457
|
+
}), document.body)]
|
|
41366
41458
|
});
|
|
41367
41459
|
}
|
|
41368
41460
|
|