@neurodyn/react-room-viewer 0.0.15 → 0.0.17

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.ts CHANGED
@@ -273,9 +273,11 @@ declare const resources: {
273
273
 
274
274
  export declare function RoomViewer({ type, src, tinuuid, name, language, width, height, dimensionUnit, displayUnit, apiKey, source, widgetSession, className, ...props }: RoomViewerProps & React_2.ComponentProps<'div'>): JSX.Element;
275
275
 
276
- export declare function RoomViewerDialog({ type, src, tinuuid, width, height, dimensionUnit, displayUnit, name, language, apiKey, source, widgetSession, open, defaultOpen, onOpenChange, ...props }: RoomViewerDialogProps): JSX.Element;
276
+ export declare function RoomViewerDialog({ type, src, tinuuid, width, height, dimensionUnit, displayUnit, name, language, apiKey, source, widgetSession, disableClose, open, defaultOpen, onOpenChange, ...props }: RoomViewerDialogProps): JSX.Element;
277
277
 
278
278
  declare interface RoomViewerDialogProps extends Omit<RoomViewerRootProps, 'showDialogCloseButton' | 'viewerSurface' | 'dialogPortalContainer' | 'viewerDialogOpen' | 'onViewerDialogOpenChange'>, Omit<DialogProps, 'children' | 'modal'> {
279
+ /** Hide close controls and prevent user dismissal for rugs and flooring. Defaults to false. */
280
+ disableClose?: boolean;
279
281
  /** The controlled open state of the dialog. */
280
282
  open?: boolean;
281
283
  /** The open state of the dialog when it is initially rendered. */
package/dist/index.js CHANGED
@@ -11799,6 +11799,7 @@ function MaterialSummaryCard({ actionLabel, actionClassName, actionPlacement, cl
11799
11799
  });
11800
11800
  return /*#__PURE__*/ jsxs("div", {
11801
11801
  className: className,
11802
+ "data-neurodyn-room-viewer-product": "",
11802
11803
  "data-testid": testId,
11803
11804
  children: [
11804
11805
  /*#__PURE__*/ jsx_runtime_jsx("div", {
@@ -11974,6 +11975,7 @@ function FloorSceneChrome({ actions, canShowAr, companyName, hasActiveError, mat
11974
11975
  type: "button",
11975
11976
  variant: "secondary",
11976
11977
  "aria-label": t('floor.scene.share'),
11978
+ "data-neurodyn-room-viewer-share": "",
11977
11979
  disabled: !canShare || isSharing,
11978
11980
  onClick: handleShare,
11979
11981
  className: "size-10 rounded-full px-0 lg:h-9 lg:w-auto lg:rounded-xl lg:px-3.5",
@@ -11991,6 +11993,7 @@ function FloorSceneChrome({ actions, canShowAr, companyName, hasActiveError, mat
11991
11993
  type: "button",
11992
11994
  variant: "secondary",
11993
11995
  "aria-label": t('floor.scene.download'),
11996
+ "data-neurodyn-room-viewer-download": "",
11994
11997
  disabled: isDownloading,
11995
11998
  onClick: handleDownload,
11996
11999
  className: "size-10 rounded-full px-0 lg:h-9 lg:w-auto lg:rounded-xl lg:px-3.5",
@@ -12056,6 +12059,7 @@ function FloorSceneChrome({ actions, canShowAr, companyName, hasActiveError, mat
12056
12059
  /*#__PURE__*/ jsxs("div", {
12057
12060
  className: "flex h-24 w-[254px] items-center gap-4 overflow-hidden rounded-2xl bg-background-containers p-4 text-left text-text-dark shadow-[var(--shadow-login)]",
12058
12061
  "data-testid": "floor-room-card",
12062
+ "data-neurodyn-room-viewer-room": "",
12059
12063
  children: [
12060
12064
  /*#__PURE__*/ jsx_runtime_jsx("img", {
12061
12065
  src: room.imageUrl,
@@ -12087,6 +12091,7 @@ function FloorSceneChrome({ actions, canShowAr, companyName, hasActiveError, mat
12087
12091
  canShowAr && /*#__PURE__*/ jsxs("div", {
12088
12092
  className: "pointer-events-auto flex h-24 w-[280px] items-center gap-4 overflow-hidden rounded-2xl bg-background-containers p-4 text-text-dark shadow-[var(--shadow-login)]",
12089
12093
  "data-testid": "floor-ar-card",
12094
+ "data-neurodyn-room-viewer-try-at-home": "",
12090
12095
  children: [
12091
12096
  /*#__PURE__*/ jsx_runtime_jsx("img", {
12092
12097
  src: room.imageUrl,
@@ -12136,6 +12141,7 @@ function FloorSceneChrome({ actions, canShowAr, companyName, hasActiveError, mat
12136
12141
  /*#__PURE__*/ jsxs("div", {
12137
12142
  className: "flex h-[72px] items-center justify-between gap-3 overflow-hidden rounded-2xl bg-background-containers p-4 text-left text-text-dark shadow-[var(--shadow-login)]",
12138
12143
  "data-testid": "floor-tablet-room-card",
12144
+ "data-neurodyn-room-viewer-room": "",
12139
12145
  children: [
12140
12146
  /*#__PURE__*/ jsxs("span", {
12141
12147
  className: "flex min-w-0 items-center gap-2",
@@ -12173,6 +12179,7 @@ function FloorSceneChrome({ actions, canShowAr, companyName, hasActiveError, mat
12173
12179
  }),
12174
12180
  canShowAr && /*#__PURE__*/ jsx_runtime_jsx(AR, {
12175
12181
  className: "w-full",
12182
+ "data-neurodyn-room-viewer-try-at-home": "",
12176
12183
  buttonLabel: t('floor.scene.tryAtHome'),
12177
12184
  buttonLeadingIcon: /*#__PURE__*/ jsx_runtime_jsx(Vizbl, {
12178
12185
  className: "size-5"
@@ -12209,6 +12216,7 @@ function FloorSceneChrome({ actions, canShowAr, companyName, hasActiveError, mat
12209
12216
  children: [
12210
12217
  /*#__PURE__*/ jsxs("div", {
12211
12218
  className: "flex w-full items-center justify-between gap-3 rounded-full bg-background-containers text-left",
12219
+ "data-neurodyn-room-viewer-room": "",
12212
12220
  children: [
12213
12221
  /*#__PURE__*/ jsxs("span", {
12214
12222
  className: "flex min-w-0 items-center gap-2",
@@ -12246,6 +12254,7 @@ function FloorSceneChrome({ actions, canShowAr, companyName, hasActiveError, mat
12246
12254
  }),
12247
12255
  canShowAr && /*#__PURE__*/ jsx_runtime_jsx(AR, {
12248
12256
  className: "w-full",
12257
+ "data-neurodyn-room-viewer-try-at-home": "",
12249
12258
  buttonLabel: t('floor.scene.tryAtHome'),
12250
12259
  buttonLeadingIcon: /*#__PURE__*/ jsx_runtime_jsx(Vizbl, {
12251
12260
  className: "size-6"
@@ -12437,7 +12446,7 @@ function InteriorSelectionScreen(props) {
12437
12446
  })
12438
12447
  });
12439
12448
  }
12440
- function InteriorSelectionDialog({ open, portalContainer, onOpenChange, ...entryProps }) {
12449
+ function InteriorSelectionDialog({ open, showCloseButton = true, portalContainer, onOpenChange, ...entryProps }) {
12441
12450
  const { t } = useTranslation();
12442
12451
  return /*#__PURE__*/ jsx_runtime_jsx(Dialog, {
12443
12452
  open: open,
@@ -12458,7 +12467,7 @@ function InteriorSelectionDialog({ open, portalContainer, onOpenChange, ...entry
12458
12467
  }),
12459
12468
  /*#__PURE__*/ jsx_runtime_jsx(InteriorSelectionEntry, {
12460
12469
  ...entryProps,
12461
- showCloseButton: true
12470
+ showCloseButton: showCloseButton
12462
12471
  })
12463
12472
  ]
12464
12473
  })
@@ -13647,6 +13656,7 @@ function FloorViewerLayout({ showDialogCloseButton = false }) {
13647
13656
  if (!floorController.interiorSelection.shouldRender) return null;
13648
13657
  if ('dialog' === floorController.interiorSelection.presentation) return /*#__PURE__*/ jsx_runtime_jsx(InteriorSelectionDialog, {
13649
13658
  open: floorController.interiorSelection.open,
13659
+ showCloseButton: showDialogCloseButton || floorController.scene.shouldRender,
13650
13660
  portalContainer: activeDialogPortalContainer,
13651
13661
  rooms: floorController.sourceRooms,
13652
13662
  customRooms: floorController.customRooms,
@@ -13700,6 +13710,7 @@ function FloorViewerLayout({ showDialogCloseButton = false }) {
13700
13710
  const floorViewerRoot = /*#__PURE__*/ jsxs("div", {
13701
13711
  ref: setContainerRef,
13702
13712
  className: "relative grid size-full grid-rows-[minmax(0,1fr)_auto] overflow-hidden text-foreground sm:block",
13713
+ "data-neurodyn-room-viewer-container": "",
13703
13714
  "data-testid": "floor-viewer-root",
13704
13715
  children: [
13705
13716
  isViewerAccessPending ? /*#__PURE__*/ jsx_runtime_jsx("div", {
@@ -14727,9 +14738,10 @@ configureApiClient({
14727
14738
  configureNodeApiClient({
14728
14739
  baseURL: config_env.NODE_API_BASE_URL
14729
14740
  });
14730
- function RoomViewerDialog({ type, src, tinuuid, width, height, dimensionUnit, displayUnit, name, language, apiKey, source, widgetSession, open, defaultOpen, onOpenChange, ...props }) {
14741
+ function RoomViewerDialog({ type, src, tinuuid, width, height, dimensionUnit, displayUnit, name, language, apiKey, source, widgetSession, disableClose = false, open, defaultOpen, onOpenChange, ...props }) {
14731
14742
  const [themeRoot, setThemeRoot] = useState(null);
14732
14743
  const placement = resolveResourcePlacement(normalizeResourceType(type));
14744
+ const isCloseDisabled = 'floor' === placement && disableClose;
14733
14745
  const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen ?? false);
14734
14746
  const dialogOpen = open ?? uncontrolledOpen;
14735
14747
  const [hasRenderedDialogContent, setHasRenderedDialogContent] = useState(dialogOpen);
@@ -14740,6 +14752,7 @@ function RoomViewerDialog({ type, src, tinuuid, width, height, dimensionUnit, di
14740
14752
  dialogOpen
14741
14753
  ]);
14742
14754
  function handleOpenChange(nextOpen) {
14755
+ if (!nextOpen && isCloseDisabled) return;
14743
14756
  if (void 0 === open) setUncontrolledOpen(nextOpen);
14744
14757
  onOpenChange?.(nextOpen);
14745
14758
  }
@@ -14756,7 +14769,7 @@ function RoomViewerDialog({ type, src, tinuuid, width, height, dimensionUnit, di
14756
14769
  apiKey: apiKey,
14757
14770
  source: source,
14758
14771
  widgetSession: widgetSession,
14759
- showDialogCloseButton: true,
14772
+ showDialogCloseButton: !isCloseDisabled,
14760
14773
  viewerSurface: "dialog",
14761
14774
  dialogPortalContainer: themeRoot,
14762
14775
  viewerDialogOpen: dialogOpen,
@@ -14768,6 +14781,7 @@ function RoomViewerDialog({ type, src, tinuuid, width, height, dimensionUnit, di
14768
14781
  children: fontsinline.A
14769
14782
  }), document.head),
14770
14783
  /*#__PURE__*/ createPortal(/*#__PURE__*/ jsxs(react_shadow.div, {
14784
+ "data-neurodyn-room-viewer-root": "",
14771
14785
  style: {
14772
14786
  display: 'block',
14773
14787
  letterSpacing: 'normal',
@@ -14835,6 +14849,7 @@ function RoomViewer({ type, src, tinuuid, name, language, width, height, dimensi
14835
14849
  width: '100%'
14836
14850
  },
14837
14851
  ...props,
14852
+ "data-neurodyn-room-viewer-root": "",
14838
14853
  children: [
14839
14854
  /*#__PURE__*/ jsx_runtime_jsx("style", {
14840
14855
  children: shadowRootCssText
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@neurodyn/react-room-viewer",
3
3
  "type": "module",
4
- "version": "0.0.15",
4
+ "version": "0.0.17",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },