@scripso-homepad/ui 0.4.28 → 0.4.29

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.
@@ -29434,6 +29434,7 @@ function AppHeader({
29434
29434
  notificationsIcon,
29435
29435
  searchIcon,
29436
29436
  buildingChevronIcon,
29437
+ actions,
29437
29438
  buildingSelectDisabled = false,
29438
29439
  searchDisabled = false,
29439
29440
  notificationsDisabled = false,
@@ -29451,6 +29452,7 @@ function AppHeader({
29451
29452
  children: [
29452
29453
  /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "truncate typography-title text-slate-blue", children: title }),
29453
29454
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-3", children: [
29455
+ actions,
29454
29456
  hasBuildingSelect ? /* @__PURE__ */ jsxRuntime.jsx(
29455
29457
  BuildingSelect,
29456
29458
  {
@@ -31312,23 +31314,36 @@ function Drawer({
31312
31314
  }) {
31313
31315
  const [isPresent, setIsPresent] = react.useState(open);
31314
31316
  const [isAnimatedIn, setIsAnimatedIn] = react.useState(false);
31317
+ const [isTransformSettled, setIsTransformSettled] = react.useState(open);
31315
31318
  react.useEffect(() => {
31316
31319
  if (open) {
31317
31320
  setIsPresent(true);
31318
- const frame = window.requestAnimationFrame(() => {
31321
+ setIsTransformSettled(false);
31322
+ const frame2 = window.requestAnimationFrame(() => {
31319
31323
  window.requestAnimationFrame(() => {
31320
31324
  setIsAnimatedIn(true);
31321
31325
  });
31322
31326
  });
31327
+ const settleTimeout = window.setTimeout(() => {
31328
+ setIsTransformSettled(true);
31329
+ }, DRAWER_TRANSITION_MS);
31323
31330
  return () => {
31324
- window.cancelAnimationFrame(frame);
31331
+ window.cancelAnimationFrame(frame2);
31332
+ window.clearTimeout(settleTimeout);
31325
31333
  };
31326
31334
  }
31327
- setIsAnimatedIn(false);
31335
+ setIsTransformSettled(false);
31336
+ setIsAnimatedIn(true);
31337
+ const frame = window.requestAnimationFrame(() => {
31338
+ window.requestAnimationFrame(() => {
31339
+ setIsAnimatedIn(false);
31340
+ });
31341
+ });
31328
31342
  const timeout = window.setTimeout(() => {
31329
31343
  setIsPresent(false);
31330
31344
  }, DRAWER_TRANSITION_MS);
31331
31345
  return () => {
31346
+ window.cancelAnimationFrame(frame);
31332
31347
  window.clearTimeout(timeout);
31333
31348
  };
31334
31349
  }, [open]);
@@ -31377,8 +31392,10 @@ function Drawer({
31377
31392
  "aria-labelledby": "homepad-drawer-title",
31378
31393
  ...subtitle ? { "aria-describedby": "homepad-drawer-subtitle" } : {},
31379
31394
  className: cn(
31380
- "relative z-10 flex h-[calc(100dvh-16px)] min-h-0 flex-col overflow-hidden rounded-[16px] bg-white shadow-2xl transition-transform duration-300 ease-in-out will-change-transform max-md:h-dvh max-md:rounded-none",
31381
- isAnimatedIn ? "translate-x-0" : "translate-x-full",
31395
+ "relative z-10 flex h-[calc(100dvh-16px)] min-h-0 flex-col overflow-hidden rounded-[16px] bg-white shadow-2xl transition-transform duration-300 ease-in-out max-md:h-dvh max-md:rounded-none",
31396
+ // Keep GPU transform only while animating — settled translate-x-0 blurs text.
31397
+ !isTransformSettled && "will-change-transform",
31398
+ isAnimatedIn ? isTransformSettled ? "transform-none" : "translate-x-0" : "translate-x-full",
31382
31399
  widthClassName,
31383
31400
  className
31384
31401
  ),
@@ -31735,7 +31752,7 @@ function ConfirmModal({
31735
31752
  "aria-labelledby": "homepad-confirm-modal-title",
31736
31753
  "aria-describedby": "homepad-confirm-modal-description",
31737
31754
  className: cn(
31738
- "flex w-full max-w-md flex-col gap-8 rounded-2xl bg-white p-4 opacity-100 md:p-6",
31755
+ "flex w-full max-w-md flex-col gap-8 rounded-3xl bg-white p-6 opacity-100 md:p-8",
31739
31756
  containerClassName
31740
31757
  ),
31741
31758
  onClick: (event) => {