@mondrianai/runyourai-design-system 0.0.27 → 0.0.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.
package/dist/index.d.mts CHANGED
@@ -635,6 +635,15 @@ interface ModalProps {
635
635
  open?: boolean;
636
636
  /** controlled 모드에서 열림 상태 변경 콜백 */
637
637
  onOpenChange?: (open: boolean) => void;
638
+ /**
639
+ * 포커스·배경 상호작용 격리 여부 (기본: true).
640
+ * 외부 SDK가 별도 포털/iframe을 열면 false로 설정한다. 외부 포커스/클릭으로
641
+ * 원본 콘텐츠를 닫지 않으며, 딤 클릭은 closeOnOverlayClick을 따른다.
642
+ * SDK가 초기 포커스를, 소비 앱이 SDK 종료 후 포커스 복구를 담당한다.
643
+ * false에서는 배경의 키보드 상호작용도 소비 앱이 별도로 차단해야 한다.
644
+ * 열린 동안 값을 변경하면 콘텐츠가 재마운트되므로 고정해서 사용한다.
645
+ */
646
+ modal?: boolean;
638
647
  /**
639
648
  * footer 버튼 렌더 방식
640
649
  * confirm — 취소 + default(검정) 확인 버튼
@@ -664,10 +673,17 @@ interface ModalProps {
664
673
  onCancel?: () => void;
665
674
  /** 오버레이 클릭 시 닫기 (기본: true) */
666
675
  closeOnOverlayClick?: boolean;
676
+ /** 모달 오버레이에 추가할 className (예: 외부 포털보다 낮은 stacking level 지정) */
677
+ overlayClassName?: string;
667
678
  /** 모달 패널에 추가할 className */
668
679
  className?: string;
669
680
  }
670
- declare function Modal({ id, trigger, open: openProp, onOpenChange, variant, title, description, showCloseButton, children, cancelButtonProps, confirmButtonProps, onConfirm, onCancel, closeOnOverlayClick, className, }: ModalProps): react_jsx_runtime.JSX.Element;
681
+ /**
682
+ * 앱의 확인/입력 다이얼로그를 렌더링한다. 기본은 모달이며, 외부 SDK 연동 시
683
+ * modal=false로 모달 격리를 해제하고 SDK를 소유한 원본 콘텐츠를 유지한다.
684
+ * 외부 포털과 stacking level을 조율할 때는 className과 overlayClassName을 함께 사용한다.
685
+ */
686
+ declare function Modal({ id, trigger, open: openProp, onOpenChange, modal, variant, title, description, showCloseButton, children, cancelButtonProps, confirmButtonProps, onConfirm, onCancel, closeOnOverlayClick, overlayClassName, className, }: ModalProps): react_jsx_runtime.JSX.Element;
671
687
 
672
688
  declare const Menubar: React$1.ForwardRefExoticComponent<Omit<Menubar$1.MenubarProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
673
689
  declare const MenubarMenu: {
package/dist/index.d.ts CHANGED
@@ -635,6 +635,15 @@ interface ModalProps {
635
635
  open?: boolean;
636
636
  /** controlled 모드에서 열림 상태 변경 콜백 */
637
637
  onOpenChange?: (open: boolean) => void;
638
+ /**
639
+ * 포커스·배경 상호작용 격리 여부 (기본: true).
640
+ * 외부 SDK가 별도 포털/iframe을 열면 false로 설정한다. 외부 포커스/클릭으로
641
+ * 원본 콘텐츠를 닫지 않으며, 딤 클릭은 closeOnOverlayClick을 따른다.
642
+ * SDK가 초기 포커스를, 소비 앱이 SDK 종료 후 포커스 복구를 담당한다.
643
+ * false에서는 배경의 키보드 상호작용도 소비 앱이 별도로 차단해야 한다.
644
+ * 열린 동안 값을 변경하면 콘텐츠가 재마운트되므로 고정해서 사용한다.
645
+ */
646
+ modal?: boolean;
638
647
  /**
639
648
  * footer 버튼 렌더 방식
640
649
  * confirm — 취소 + default(검정) 확인 버튼
@@ -664,10 +673,17 @@ interface ModalProps {
664
673
  onCancel?: () => void;
665
674
  /** 오버레이 클릭 시 닫기 (기본: true) */
666
675
  closeOnOverlayClick?: boolean;
676
+ /** 모달 오버레이에 추가할 className (예: 외부 포털보다 낮은 stacking level 지정) */
677
+ overlayClassName?: string;
667
678
  /** 모달 패널에 추가할 className */
668
679
  className?: string;
669
680
  }
670
- declare function Modal({ id, trigger, open: openProp, onOpenChange, variant, title, description, showCloseButton, children, cancelButtonProps, confirmButtonProps, onConfirm, onCancel, closeOnOverlayClick, className, }: ModalProps): react_jsx_runtime.JSX.Element;
681
+ /**
682
+ * 앱의 확인/입력 다이얼로그를 렌더링한다. 기본은 모달이며, 외부 SDK 연동 시
683
+ * modal=false로 모달 격리를 해제하고 SDK를 소유한 원본 콘텐츠를 유지한다.
684
+ * 외부 포털과 stacking level을 조율할 때는 className과 overlayClassName을 함께 사용한다.
685
+ */
686
+ declare function Modal({ id, trigger, open: openProp, onOpenChange, modal, variant, title, description, showCloseButton, children, cancelButtonProps, confirmButtonProps, onConfirm, onCancel, closeOnOverlayClick, overlayClassName, className, }: ModalProps): react_jsx_runtime.JSX.Element;
671
687
 
672
688
  declare const Menubar: React$1.ForwardRefExoticComponent<Omit<Menubar$1.MenubarProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
673
689
  declare const MenubarMenu: {
package/dist/index.js CHANGED
@@ -1054,7 +1054,7 @@ function AvatarGroup({ avatars, size = "md", className }) {
1054
1054
 
1055
1055
  // src/components/ui/badge.tsx
1056
1056
  var import_jsx_runtime7 = require("react/jsx-runtime");
1057
- var TEXT_BADGE_BASE = "inline-flex w-fit shrink-0 items-center justify-center gap-1 rounded-full px-2.5 py-1 text-sm font-medium leading-5 tracking-tight whitespace-nowrap";
1057
+ var TEXT_BADGE_BASE = "inline-flex h-7 w-fit shrink-0 items-center justify-center gap-1 rounded-full px-2.5 py-1 text-sm font-medium leading-5 tracking-tight whitespace-nowrap";
1058
1058
  var BADGE_ICON_BASE = "size-4";
1059
1059
  var BADGE_VARIANT_STYLES = {
1060
1060
  default: "bg-primary text-primary-foreground",
@@ -4398,6 +4398,7 @@ function Modal({
4398
4398
  trigger,
4399
4399
  open: openProp,
4400
4400
  onOpenChange,
4401
+ modal = true,
4401
4402
  variant = "confirm",
4402
4403
  title,
4403
4404
  description,
@@ -4408,6 +4409,7 @@ function Modal({
4408
4409
  onConfirm,
4409
4410
  onCancel,
4410
4411
  closeOnOverlayClick = true,
4412
+ overlayClassName,
4411
4413
  className
4412
4414
  }) {
4413
4415
  const {
@@ -4430,6 +4432,7 @@ function Modal({
4430
4432
  const [openState, setOpenState] = React19.useState(false);
4431
4433
  const open = isControlled ? openProp : openState;
4432
4434
  const [loading, setLoading] = React19.useState(false);
4435
+ const Overlay = modal ? import_radix_ui12.Dialog.Overlay : "div";
4433
4436
  const setOpen = React19.useCallback(
4434
4437
  (next) => {
4435
4438
  if (!isControlled) setOpenState(next);
@@ -4472,17 +4475,25 @@ function Modal({
4472
4475
  );
4473
4476
  return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
4474
4477
  trigger == null ? void 0 : trigger(() => setOpen(true)),
4475
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_radix_ui12.Dialog.Root, { open, onOpenChange: handleRootOpenChange, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_radix_ui12.Dialog.Portal, { children: [
4478
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_radix_ui12.Dialog.Root, { open, onOpenChange: handleRootOpenChange, modal, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_radix_ui12.Dialog.Portal, { children: [
4476
4479
  /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4477
- import_radix_ui12.Dialog.Overlay,
4478
- {
4480
+ Overlay,
4481
+ __spreadProps(__spreadValues({}, !modal ? {
4482
+ "data-state": open ? "open" : "closed",
4483
+ "aria-hidden": true
4484
+ } : {}), {
4485
+ onClick: !modal ? (event) => {
4486
+ event.stopPropagation();
4487
+ if (open && closeOnOverlayClick) handleClose();
4488
+ } : void 0,
4479
4489
  className: cn(
4480
4490
  "fixed inset-0 z-50 bg-black/[0.32]",
4481
4491
  "data-[state=open]:animate-in data-[state=closed]:animate-out",
4482
4492
  "data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0",
4483
- "duration-200 data-[state=closed]:duration-150"
4493
+ "duration-200 data-[state=closed]:duration-150",
4494
+ overlayClassName
4484
4495
  )
4485
- }
4496
+ })
4486
4497
  ),
4487
4498
  /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
4488
4499
  import_radix_ui12.Dialog.Content,
@@ -4493,6 +4504,10 @@ function Modal({
4493
4504
  if (loadingRef.current) e.preventDefault();
4494
4505
  },
4495
4506
  onInteractOutside: (e) => {
4507
+ if (!modal) {
4508
+ e.preventDefault();
4509
+ return;
4510
+ }
4496
4511
  if (!closeOnOverlayClick || loadingRef.current) e.preventDefault();
4497
4512
  },
4498
4513
  className: cn(
@@ -4742,7 +4757,8 @@ function NumberBadge({
4742
4757
  className: cn(
4743
4758
  NUMBER_BADGE_BASE,
4744
4759
  sizeClass,
4745
- "tracking-tight",
4760
+ // Figma(665:2024): outline_number 만 tracking-normal, 나머지는 tracking-tight
4761
+ variant === "outline" ? "tracking-normal" : "tracking-tight",
4746
4762
  BADGE_VARIANT_STYLES[variant],
4747
4763
  className
4748
4764
  ),