@moving-walls/design-system 1.0.20 → 1.0.22
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 +126 -32
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +126 -32
- 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
|
@@ -36298,10 +36298,22 @@ var defaultPresets$1 = [{
|
|
|
36298
36298
|
function formatDate(date) {
|
|
36299
36299
|
var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'MM/dd/yyyy';
|
|
36300
36300
|
if (!date) return '';
|
|
36301
|
+
var monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
|
|
36301
36302
|
var month = String(date.getMonth() + 1).padStart(2, '0');
|
|
36303
|
+
var monthShort = monthNames[date.getMonth()];
|
|
36302
36304
|
var day = String(date.getDate()).padStart(2, '0');
|
|
36303
36305
|
var year = date.getFullYear();
|
|
36304
|
-
|
|
36306
|
+
// Use placeholders to avoid substring conflicts (MMM contains MM, yyyy contains yy)
|
|
36307
|
+
var result = format;
|
|
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;
|
|
36305
36317
|
}
|
|
36306
36318
|
function isSameDay(date1, date2) {
|
|
36307
36319
|
if (!date1 || !date2) return false;
|
|
@@ -36328,7 +36340,7 @@ function CalendarMonth(_ref) {
|
|
|
36328
36340
|
var weekDays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
|
|
36329
36341
|
var firstDayOfMonth = new Date(currentMonth.getFullYear(), currentMonth.getMonth(), 1);
|
|
36330
36342
|
var lastDayOfMonth = new Date(currentMonth.getFullYear(), currentMonth.getMonth() + 1, 0);
|
|
36331
|
-
var firstDayOfWeek = firstDayOfMonth.getDay();
|
|
36343
|
+
var firstDayOfWeek = (firstDayOfMonth.getDay() + 6) % 7; // Convert to Monday-start (Mon=0, Sun=6)
|
|
36332
36344
|
var daysInMonth = lastDayOfMonth.getDate();
|
|
36333
36345
|
var days = [];
|
|
36334
36346
|
// Previous month's trailing days
|
|
@@ -41284,9 +41296,7 @@ Table.Row = TableRow;
|
|
|
41284
41296
|
Table.Head = TableHead;
|
|
41285
41297
|
Table.Cell = TableCell;
|
|
41286
41298
|
|
|
41287
|
-
var
|
|
41288
|
-
delayDuration: 0
|
|
41289
|
-
});
|
|
41299
|
+
var PADDING = 8;
|
|
41290
41300
|
function Tooltip(_ref2) {
|
|
41291
41301
|
var content = _ref2.content,
|
|
41292
41302
|
children = _ref2.children,
|
|
@@ -41297,42 +41307,126 @@ function Tooltip(_ref2) {
|
|
|
41297
41307
|
_useState2 = _slicedToArray(_useState, 2),
|
|
41298
41308
|
isVisible = _useState2[0],
|
|
41299
41309
|
setIsVisible = _useState2[1];
|
|
41300
|
-
var
|
|
41301
|
-
|
|
41302
|
-
var
|
|
41303
|
-
|
|
41304
|
-
|
|
41305
|
-
|
|
41306
|
-
|
|
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
|
+
useLayoutEffect(function () {
|
|
41321
|
+
if (!isVisible || !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
|
+
// Calculate preferred position
|
|
41330
|
+
var calc = function calc(pos) {
|
|
41331
|
+
switch (pos) {
|
|
41332
|
+
case 'top':
|
|
41333
|
+
top = triggerRect.top - tooltipRect.height - PADDING;
|
|
41334
|
+
left = triggerRect.left + triggerRect.width / 2 - tooltipRect.width / 2;
|
|
41335
|
+
break;
|
|
41336
|
+
case 'bottom':
|
|
41337
|
+
top = triggerRect.bottom + PADDING;
|
|
41338
|
+
left = triggerRect.left + triggerRect.width / 2 - tooltipRect.width / 2;
|
|
41339
|
+
break;
|
|
41340
|
+
case 'left':
|
|
41341
|
+
top = triggerRect.top + triggerRect.height / 2 - tooltipRect.height / 2;
|
|
41342
|
+
left = triggerRect.left - tooltipRect.width - PADDING;
|
|
41343
|
+
break;
|
|
41344
|
+
case 'right':
|
|
41345
|
+
top = triggerRect.top + triggerRect.height / 2 - tooltipRect.height / 2;
|
|
41346
|
+
left = triggerRect.right + PADDING;
|
|
41347
|
+
break;
|
|
41348
|
+
}
|
|
41349
|
+
};
|
|
41350
|
+
calc(position);
|
|
41351
|
+
// Flip if overflowing viewport
|
|
41352
|
+
if (position === 'top' && top < PADDING) {
|
|
41353
|
+
resolved = 'bottom';
|
|
41354
|
+
calc('bottom');
|
|
41355
|
+
} else if (position === 'bottom' && top + tooltipRect.height > vh - PADDING) {
|
|
41356
|
+
resolved = 'top';
|
|
41357
|
+
calc('top');
|
|
41358
|
+
} else if (position === 'left' && left < PADDING) {
|
|
41359
|
+
resolved = 'right';
|
|
41360
|
+
calc('right');
|
|
41361
|
+
} else if (position === 'right' && left + tooltipRect.width > vw - PADDING) {
|
|
41362
|
+
resolved = 'left';
|
|
41363
|
+
calc('left');
|
|
41364
|
+
}
|
|
41365
|
+
// Clamp horizontal to stay within viewport
|
|
41366
|
+
if (left < PADDING) left = PADDING;
|
|
41367
|
+
if (left + tooltipRect.width > vw - PADDING) left = vw - PADDING - tooltipRect.width;
|
|
41368
|
+
// Clamp vertical
|
|
41369
|
+
if (top < PADDING) top = PADDING;
|
|
41370
|
+
if (top + tooltipRect.height > vh - PADDING) top = vh - PADDING - tooltipRect.height;
|
|
41371
|
+
setCoords({
|
|
41372
|
+
top: top,
|
|
41373
|
+
left: left
|
|
41374
|
+
});
|
|
41375
|
+
setResolvedPosition(resolved);
|
|
41376
|
+
}, [isVisible, position]);
|
|
41377
|
+
var show = useCallback(function () {
|
|
41378
|
+
return setIsVisible(true);
|
|
41379
|
+
}, []);
|
|
41380
|
+
var hide = useCallback(function () {
|
|
41381
|
+
setIsVisible(false);
|
|
41382
|
+
setCoords(null);
|
|
41383
|
+
}, []);
|
|
41384
|
+
// Arrow positioning relative to tooltip
|
|
41385
|
+
var arrowStyle = function arrowStyle() {
|
|
41386
|
+
if (!triggerRef.current || !tooltipRef.current || !coords) return {};
|
|
41387
|
+
var triggerRect = triggerRef.current.getBoundingClientRect();
|
|
41388
|
+
var tooltipRect = tooltipRef.current.getBoundingClientRect();
|
|
41389
|
+
if (resolvedPosition === 'top' || resolvedPosition === 'bottom') {
|
|
41390
|
+
var arrowLeft = triggerRect.left + triggerRect.width / 2 - coords.left - 4;
|
|
41391
|
+
return {
|
|
41392
|
+
left: Math.max(8, Math.min(arrowLeft, tooltipRect.width - 8))
|
|
41393
|
+
};
|
|
41394
|
+
}
|
|
41395
|
+
var arrowTop = triggerRect.top + triggerRect.height / 2 - coords.top - 4;
|
|
41396
|
+
return {
|
|
41397
|
+
top: Math.max(8, Math.min(arrowTop, tooltipRect.height - 8))
|
|
41398
|
+
};
|
|
41307
41399
|
};
|
|
41308
41400
|
var arrowClasses = {
|
|
41309
|
-
top: 'top-full
|
|
41310
|
-
bottom: 'bottom-full
|
|
41311
|
-
left: 'left-full
|
|
41312
|
-
right: 'right-full
|
|
41401
|
+
top: 'absolute top-full border-l-transparent border-r-transparent border-b-transparent border-t-white',
|
|
41402
|
+
bottom: 'absolute bottom-full border-l-transparent border-r-transparent border-t-transparent border-b-white',
|
|
41403
|
+
left: 'absolute left-full border-t-transparent border-b-transparent border-r-transparent border-l-white',
|
|
41404
|
+
right: 'absolute right-full border-t-transparent border-b-transparent border-l-transparent border-r-white'
|
|
41313
41405
|
};
|
|
41314
41406
|
return jsxs("div", {
|
|
41315
41407
|
className: "relative inline-block",
|
|
41408
|
+
ref: triggerRef,
|
|
41316
41409
|
children: [jsx("div", {
|
|
41317
|
-
onMouseEnter:
|
|
41318
|
-
|
|
41319
|
-
|
|
41320
|
-
|
|
41321
|
-
return setIsVisible(false);
|
|
41322
|
-
},
|
|
41323
|
-
onFocus: function onFocus() {
|
|
41324
|
-
return setIsVisible(true);
|
|
41325
|
-
},
|
|
41326
|
-
onBlur: function onBlur() {
|
|
41327
|
-
return setIsVisible(false);
|
|
41328
|
-
},
|
|
41410
|
+
onMouseEnter: show,
|
|
41411
|
+
onMouseLeave: hide,
|
|
41412
|
+
onFocus: show,
|
|
41413
|
+
onBlur: hide,
|
|
41329
41414
|
children: children
|
|
41330
|
-
}), isVisible && jsxs("div", {
|
|
41331
|
-
|
|
41415
|
+
}), isVisible && /*#__PURE__*/createPortal(jsxs("div", {
|
|
41416
|
+
ref: tooltipRef,
|
|
41417
|
+
style: coords ? {
|
|
41418
|
+
top: coords.top,
|
|
41419
|
+
left: coords.left
|
|
41420
|
+
} : {
|
|
41421
|
+
top: -9999,
|
|
41422
|
+
left: -9999
|
|
41423
|
+
},
|
|
41424
|
+
className: clsx('fixed z-[9999] px-2 py-1 text-sm text-mw-neutral-500 bg-white border border-mw-neutral-100 rounded-md shadow-sm max-w-xs whitespace-normal', className),
|
|
41332
41425
|
children: [content, jsx("div", {
|
|
41333
|
-
className: clsx('
|
|
41426
|
+
className: clsx('w-0 h-0 border-4', arrowClasses[resolvedPosition]),
|
|
41427
|
+
style: arrowStyle()
|
|
41334
41428
|
})]
|
|
41335
|
-
})]
|
|
41429
|
+
}), document.body)]
|
|
41336
41430
|
});
|
|
41337
41431
|
}
|
|
41338
41432
|
|