@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.esm.js
CHANGED
|
@@ -36303,15 +36303,17 @@ function formatDate(date) {
|
|
|
36303
36303
|
var monthShort = monthNames[date.getMonth()];
|
|
36304
36304
|
var day = String(date.getDate()).padStart(2, '0');
|
|
36305
36305
|
var year = date.getFullYear();
|
|
36306
|
-
//
|
|
36307
|
-
// (e.g. 'MMM' contains 'MM', so naive chaining can break)
|
|
36306
|
+
// Use placeholders to avoid substring conflicts (MMM contains MM, yyyy contains yy)
|
|
36308
36307
|
var result = format;
|
|
36309
|
-
|
|
36310
|
-
|
|
36311
|
-
|
|
36312
|
-
|
|
36313
|
-
|
|
36314
|
-
|
|
36308
|
+
result = result.replace('MMM', '\x01');
|
|
36309
|
+
result = result.replace('MM', '\x02');
|
|
36310
|
+
result = result.replace('dd', '\x03');
|
|
36311
|
+
result = result.replace('yyyy', '\x04');
|
|
36312
|
+
result = result.replace('\x01', monthShort);
|
|
36313
|
+
result = result.replace('\x02', month);
|
|
36314
|
+
result = result.replace('\x03', day);
|
|
36315
|
+
result = result.replace('\x04', String(year));
|
|
36316
|
+
return result;
|
|
36315
36317
|
}
|
|
36316
36318
|
function isSameDay(date1, date2) {
|
|
36317
36319
|
if (!date1 || !date2) return false;
|
|
@@ -36338,7 +36340,7 @@ function CalendarMonth(_ref) {
|
|
|
36338
36340
|
var weekDays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
|
|
36339
36341
|
var firstDayOfMonth = new Date(currentMonth.getFullYear(), currentMonth.getMonth(), 1);
|
|
36340
36342
|
var lastDayOfMonth = new Date(currentMonth.getFullYear(), currentMonth.getMonth() + 1, 0);
|
|
36341
|
-
var firstDayOfWeek = firstDayOfMonth.getDay();
|
|
36343
|
+
var firstDayOfWeek = (firstDayOfMonth.getDay() + 6) % 7; // Convert to Monday-start (Mon=0, Sun=6)
|
|
36342
36344
|
var daysInMonth = lastDayOfMonth.getDate();
|
|
36343
36345
|
var days = [];
|
|
36344
36346
|
// Previous month's trailing days
|
|
@@ -41294,9 +41296,7 @@ Table.Row = TableRow;
|
|
|
41294
41296
|
Table.Head = TableHead;
|
|
41295
41297
|
Table.Cell = TableCell;
|
|
41296
41298
|
|
|
41297
|
-
var
|
|
41298
|
-
delayDuration: 0
|
|
41299
|
-
});
|
|
41299
|
+
var PADDING = 8;
|
|
41300
41300
|
function Tooltip(_ref2) {
|
|
41301
41301
|
var content = _ref2.content,
|
|
41302
41302
|
children = _ref2.children,
|
|
@@ -41307,42 +41307,134 @@ function Tooltip(_ref2) {
|
|
|
41307
41307
|
_useState2 = _slicedToArray(_useState, 2),
|
|
41308
41308
|
isVisible = _useState2[0],
|
|
41309
41309
|
setIsVisible = _useState2[1];
|
|
41310
|
-
var
|
|
41311
|
-
|
|
41312
|
-
var
|
|
41313
|
-
|
|
41314
|
-
|
|
41315
|
-
|
|
41316
|
-
|
|
41310
|
+
var triggerRef = useRef(null);
|
|
41311
|
+
var tooltipRef = useRef(null);
|
|
41312
|
+
var _useState3 = useState(null),
|
|
41313
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
41314
|
+
coords = _useState4[0],
|
|
41315
|
+
setCoords = _useState4[1];
|
|
41316
|
+
var _useState5 = useState(position),
|
|
41317
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
41318
|
+
resolvedPosition = _useState6[0],
|
|
41319
|
+
setResolvedPosition = _useState6[1];
|
|
41320
|
+
var recalculate = useCallback(function () {
|
|
41321
|
+
if (!triggerRef.current || !tooltipRef.current) return;
|
|
41322
|
+
var triggerRect = triggerRef.current.getBoundingClientRect();
|
|
41323
|
+
var tooltipRect = tooltipRef.current.getBoundingClientRect();
|
|
41324
|
+
var vw = window.innerWidth;
|
|
41325
|
+
var vh = window.innerHeight;
|
|
41326
|
+
var top = 0;
|
|
41327
|
+
var left = 0;
|
|
41328
|
+
var resolved = position;
|
|
41329
|
+
var calc = function calc(pos) {
|
|
41330
|
+
switch (pos) {
|
|
41331
|
+
case 'top':
|
|
41332
|
+
top = triggerRect.top - tooltipRect.height - PADDING;
|
|
41333
|
+
left = triggerRect.left + triggerRect.width / 2 - tooltipRect.width / 2;
|
|
41334
|
+
break;
|
|
41335
|
+
case 'bottom':
|
|
41336
|
+
top = triggerRect.bottom + PADDING;
|
|
41337
|
+
left = triggerRect.left + triggerRect.width / 2 - tooltipRect.width / 2;
|
|
41338
|
+
break;
|
|
41339
|
+
case 'left':
|
|
41340
|
+
top = triggerRect.top + triggerRect.height / 2 - tooltipRect.height / 2;
|
|
41341
|
+
left = triggerRect.left - tooltipRect.width - PADDING;
|
|
41342
|
+
break;
|
|
41343
|
+
case 'right':
|
|
41344
|
+
top = triggerRect.top + triggerRect.height / 2 - tooltipRect.height / 2;
|
|
41345
|
+
left = triggerRect.right + PADDING;
|
|
41346
|
+
break;
|
|
41347
|
+
}
|
|
41348
|
+
};
|
|
41349
|
+
calc(position);
|
|
41350
|
+
if (position === 'top' && top < PADDING) {
|
|
41351
|
+
resolved = 'bottom';
|
|
41352
|
+
calc('bottom');
|
|
41353
|
+
} else if (position === 'bottom' && top + tooltipRect.height > vh - PADDING) {
|
|
41354
|
+
resolved = 'top';
|
|
41355
|
+
calc('top');
|
|
41356
|
+
} else if (position === 'left' && left < PADDING) {
|
|
41357
|
+
resolved = 'right';
|
|
41358
|
+
calc('right');
|
|
41359
|
+
} else if (position === 'right' && left + tooltipRect.width > vw - PADDING) {
|
|
41360
|
+
resolved = 'left';
|
|
41361
|
+
calc('left');
|
|
41362
|
+
}
|
|
41363
|
+
if (left < PADDING) left = PADDING;
|
|
41364
|
+
if (left + tooltipRect.width > vw - PADDING) left = vw - PADDING - tooltipRect.width;
|
|
41365
|
+
if (top < PADDING) top = PADDING;
|
|
41366
|
+
if (top + tooltipRect.height > vh - PADDING) top = vh - PADDING - tooltipRect.height;
|
|
41367
|
+
setCoords({
|
|
41368
|
+
top: top,
|
|
41369
|
+
left: left
|
|
41370
|
+
});
|
|
41371
|
+
setResolvedPosition(resolved);
|
|
41372
|
+
}, [position]);
|
|
41373
|
+
// Recalculate on visibility change
|
|
41374
|
+
useLayoutEffect(function () {
|
|
41375
|
+
if (!isVisible) return;
|
|
41376
|
+
recalculate();
|
|
41377
|
+
}, [isVisible, recalculate]);
|
|
41378
|
+
// Use callback ref to recalculate once the portal element is mounted in the DOM
|
|
41379
|
+
var tooltipCallbackRef = useCallback(function (node) {
|
|
41380
|
+
tooltipRef.current = node;
|
|
41381
|
+
if (node && isVisible) recalculate();
|
|
41382
|
+
}, [isVisible, recalculate]);
|
|
41383
|
+
var show = useCallback(function () {
|
|
41384
|
+
if (content != null && content !== '') setIsVisible(true);
|
|
41385
|
+
}, [content]);
|
|
41386
|
+
var hide = useCallback(function () {
|
|
41387
|
+
setIsVisible(false);
|
|
41388
|
+
setCoords(null);
|
|
41389
|
+
}, []);
|
|
41390
|
+
// Arrow positioning relative to tooltip
|
|
41391
|
+
var arrowStyle = function arrowStyle() {
|
|
41392
|
+
if (!triggerRef.current || !tooltipRef.current || !coords) return {};
|
|
41393
|
+
var triggerRect = triggerRef.current.getBoundingClientRect();
|
|
41394
|
+
var tooltipRect = tooltipRef.current.getBoundingClientRect();
|
|
41395
|
+
if (resolvedPosition === 'top' || resolvedPosition === 'bottom') {
|
|
41396
|
+
var arrowLeft = triggerRect.left + triggerRect.width / 2 - coords.left - 4;
|
|
41397
|
+
return {
|
|
41398
|
+
left: Math.max(8, Math.min(arrowLeft, tooltipRect.width - 8))
|
|
41399
|
+
};
|
|
41400
|
+
}
|
|
41401
|
+
var arrowTop = triggerRect.top + triggerRect.height / 2 - coords.top - 4;
|
|
41402
|
+
return {
|
|
41403
|
+
top: Math.max(8, Math.min(arrowTop, tooltipRect.height - 8))
|
|
41404
|
+
};
|
|
41317
41405
|
};
|
|
41318
41406
|
var arrowClasses = {
|
|
41319
|
-
top: 'top-full
|
|
41320
|
-
bottom: 'bottom-full
|
|
41321
|
-
left: 'left-full
|
|
41322
|
-
right: 'right-full
|
|
41407
|
+
top: 'absolute top-full border-l-transparent border-r-transparent border-b-transparent border-t-white',
|
|
41408
|
+
bottom: 'absolute bottom-full border-l-transparent border-r-transparent border-t-transparent border-b-white',
|
|
41409
|
+
left: 'absolute left-full border-t-transparent border-b-transparent border-r-transparent border-l-white',
|
|
41410
|
+
right: 'absolute right-full border-t-transparent border-b-transparent border-l-transparent border-r-white'
|
|
41323
41411
|
};
|
|
41324
41412
|
return jsxs("div", {
|
|
41325
41413
|
className: "relative inline-block",
|
|
41414
|
+
ref: triggerRef,
|
|
41326
41415
|
children: [jsx("div", {
|
|
41327
|
-
onMouseEnter:
|
|
41328
|
-
|
|
41329
|
-
|
|
41330
|
-
|
|
41331
|
-
return setIsVisible(false);
|
|
41332
|
-
},
|
|
41333
|
-
onFocus: function onFocus() {
|
|
41334
|
-
return setIsVisible(true);
|
|
41335
|
-
},
|
|
41336
|
-
onBlur: function onBlur() {
|
|
41337
|
-
return setIsVisible(false);
|
|
41338
|
-
},
|
|
41416
|
+
onMouseEnter: show,
|
|
41417
|
+
onMouseLeave: hide,
|
|
41418
|
+
onFocus: show,
|
|
41419
|
+
onBlur: hide,
|
|
41339
41420
|
children: children
|
|
41340
|
-
}), isVisible && jsxs("div", {
|
|
41341
|
-
|
|
41421
|
+
}), isVisible && content != null && content !== '' && /*#__PURE__*/createPortal(jsxs("div", {
|
|
41422
|
+
ref: tooltipCallbackRef,
|
|
41423
|
+
style: coords ? {
|
|
41424
|
+
top: coords.top,
|
|
41425
|
+
left: coords.left,
|
|
41426
|
+
zIndex: 999999
|
|
41427
|
+
} : {
|
|
41428
|
+
top: -9999,
|
|
41429
|
+
left: -9999,
|
|
41430
|
+
zIndex: 999999
|
|
41431
|
+
},
|
|
41432
|
+
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),
|
|
41342
41433
|
children: [content, jsx("div", {
|
|
41343
|
-
className: clsx('
|
|
41434
|
+
className: clsx('w-0 h-0 border-4', arrowClasses[resolvedPosition]),
|
|
41435
|
+
style: arrowStyle()
|
|
41344
41436
|
})]
|
|
41345
|
-
})]
|
|
41437
|
+
}), document.body)]
|
|
41346
41438
|
});
|
|
41347
41439
|
}
|
|
41348
41440
|
|