@clikvn/showroom-visualizer 0.3.0-dev-09 → 0.3.0-dev-11

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.
Files changed (93) hide show
  1. package/.claude/settings.local.json +19 -0
  2. package/DEVELOPMENT.md +120 -0
  3. package/EXAMPLES.md +967 -0
  4. package/README.md +137 -3
  5. package/SETUP_COMPLETE.md +149 -0
  6. package/dist/commons/SkinLayer/components/Button/index.d.ts +4 -4
  7. package/dist/commons/SkinLayer/components/Button/index.d.ts.map +1 -1
  8. package/dist/components/SkinLayer/DefaultLayout/index.d.ts +8 -0
  9. package/dist/components/SkinLayer/DefaultLayout/index.d.ts.map +1 -0
  10. package/dist/components/SkinLayer/Floorplan/Map.d.ts.map +1 -1
  11. package/dist/components/SkinLayer/Floorplan/Minimap/MiniMapMarker.d.ts.map +1 -1
  12. package/dist/components/SkinLayer/Floorplan/Minimap/index.d.ts.map +1 -1
  13. package/dist/components/SkinLayer/HotspotCategorySlideIn/index.d.ts.map +1 -1
  14. package/dist/components/SkinLayer/HotspotOverview/index.d.ts +1 -0
  15. package/dist/components/SkinLayer/HotspotOverview/index.d.ts.map +1 -1
  16. package/dist/components/SkinLayer/Layout/index.d.ts.map +1 -1
  17. package/dist/components/SkinLayer/PinActionButtons/index.d.ts +19 -0
  18. package/dist/components/SkinLayer/PinActionButtons/index.d.ts.map +1 -1
  19. package/dist/components/SkinLayer/PlayBar/index.d.ts +19 -1
  20. package/dist/components/SkinLayer/PlayBar/index.d.ts.map +1 -1
  21. package/dist/components/SkinLayer/PoiDetailSlideIn/Detail.d.ts +5 -0
  22. package/dist/components/SkinLayer/PoiDetailSlideIn/Detail.d.ts.map +1 -1
  23. package/dist/components/SkinLayer/PoiDetailSlideIn/TabsContent/index.d.ts +4 -0
  24. package/dist/components/SkinLayer/PoiDetailSlideIn/TabsContent/index.d.ts.map +1 -1
  25. package/dist/components/SkinLayer/PoiDetailSlideIn/index.d.ts +23 -1
  26. package/dist/components/SkinLayer/PoiDetailSlideIn/index.d.ts.map +1 -1
  27. package/dist/components/SkinLayer/SearchAndDiscoverySlideIn/DisplayActionPart/index.d.ts.map +1 -1
  28. package/dist/components/SkinLayer/SearchAndDiscoverySlideIn/HelpActionPart.d.ts.map +1 -1
  29. package/dist/components/SkinLayer/SearchAndDiscoverySlideIn/PoiInfoActionPart/index.d.ts.map +1 -1
  30. package/dist/components/SkinLayer/SearchAndDiscoverySlideIn/PromotionPart/index.d.ts.map +1 -1
  31. package/dist/components/SkinLayer/SearchAndDiscoverySlideIn/ScenariosPart/index.d.ts.map +1 -1
  32. package/dist/components/SkinLayer/SearchAndDiscoverySlideIn/TourInfoActionPart.d.ts.map +1 -1
  33. package/dist/components/SkinLayer/SearchAndDiscoverySlideIn/index.d.ts.map +1 -1
  34. package/dist/components/SkinLayer/index.d.ts +49 -0
  35. package/dist/components/SkinLayer/index.d.ts.map +1 -1
  36. package/dist/constants/SkinLayer/customLayoutPaths.d.ts +84 -0
  37. package/dist/constants/SkinLayer/customLayoutPaths.d.ts.map +1 -0
  38. package/dist/constants/SkinLayer/index.d.ts +1 -0
  39. package/dist/constants/SkinLayer/index.d.ts.map +1 -1
  40. package/dist/context/CustomLayoutContext.d.ts +20 -0
  41. package/dist/context/CustomLayoutContext.d.ts.map +1 -0
  42. package/dist/context/SwizzleContext.d.ts +21 -0
  43. package/dist/context/SwizzleContext.d.ts.map +1 -0
  44. package/dist/features/ShowroomVisualizer/VirtualTour.d.ts +5 -0
  45. package/dist/features/ShowroomVisualizer/VirtualTour.d.ts.map +1 -1
  46. package/dist/features/ShowroomVisualizer/VirtualTourContainer.d.ts +4 -3
  47. package/dist/features/ShowroomVisualizer/VirtualTourContainer.d.ts.map +1 -1
  48. package/dist/features/ShowroomVisualizer/index.d.ts +24 -3
  49. package/dist/features/ShowroomVisualizer/index.d.ts.map +1 -1
  50. package/dist/hooks/headless/index.d.ts +150 -0
  51. package/dist/hooks/headless/index.d.ts.map +1 -0
  52. package/dist/hooks/headless/useFloorplanControl.d.ts +18 -0
  53. package/dist/hooks/headless/useFloorplanControl.d.ts.map +1 -0
  54. package/dist/hooks/headless/usePOIInteraction.d.ts +23 -0
  55. package/dist/hooks/headless/usePOIInteraction.d.ts.map +1 -0
  56. package/dist/hooks/headless/useScenarioControl.d.ts +22 -0
  57. package/dist/hooks/headless/useScenarioControl.d.ts.map +1 -0
  58. package/dist/hooks/headless/useSceneNavigation.d.ts +26 -0
  59. package/dist/hooks/headless/useSceneNavigation.d.ts.map +1 -0
  60. package/dist/hooks/headless/useTourCore.d.ts +23 -0
  61. package/dist/hooks/headless/useTourCore.d.ts.map +1 -0
  62. package/dist/hooks/headless/useViewportControl.d.ts +22 -0
  63. package/dist/hooks/headless/useViewportControl.d.ts.map +1 -0
  64. package/dist/hooks/useToolConfig.d.ts.map +1 -1
  65. package/dist/index.d.ts +12 -0
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.html +110 -0
  68. package/dist/index.js +1 -0
  69. package/dist/register.d.ts +3 -0
  70. package/dist/register.d.ts.map +1 -1
  71. package/dist/types/SkinLayer/tool.type.d.ts +6 -0
  72. package/dist/types/SkinLayer/tool.type.d.ts.map +1 -1
  73. package/dist/types/SkinLayer/visualizer.type.d.ts +3 -0
  74. package/dist/types/SkinLayer/visualizer.type.d.ts.map +1 -1
  75. package/dist/types/custom-layout.d.ts +167 -0
  76. package/dist/types/custom-layout.d.ts.map +1 -0
  77. package/dist/types/swizzle.d.ts +59 -0
  78. package/dist/types/swizzle.d.ts.map +1 -0
  79. package/dist/web.js +1 -1
  80. package/example/CSS_HANDLING.md +141 -0
  81. package/example/FIXES_SUMMARY.md +121 -0
  82. package/example/PATH_ALIASES.md +103 -0
  83. package/example/README.md +64 -0
  84. package/example/index.html +13 -0
  85. package/example/package.json +25 -0
  86. package/example/postcss.config.cjs +6 -0
  87. package/example/tailwind.config.cjs +12 -0
  88. package/example/tsconfig.node.json +12 -0
  89. package/example/vite.config.ts +126 -0
  90. package/package.json +9 -1
  91. package/rollup.config.js +334 -4
  92. package/dist/utils/middleware/listenerWrapper.d.ts +0 -31
  93. package/dist/utils/middleware/listenerWrapper.d.ts.map +0 -1
@@ -1,4 +1,5 @@
1
1
  import { ActionMiddleware, ProductType, VirtualTourVisualizerType, VisualizerListenersType } from './types/SkinLayer';
2
+ import { CustomLayoutConfig } from './types/custom-layout';
2
3
  export declare class VisualizerUIComponent extends HTMLElement {
3
4
  elementId?: string;
4
5
  apiHost?: string;
@@ -16,6 +17,8 @@ export declare class VisualizerUIComponent extends HTMLElement {
16
17
  };
17
18
  listeners?: VisualizerListenersType;
18
19
  products?: ProductType[];
20
+ customLayout?: CustomLayoutConfig;
21
+ disableDefaultUI?: boolean;
19
22
  middleware?: ActionMiddleware;
20
23
  constructor();
21
24
  updateAttributes(attributes: VirtualTourVisualizerType): void;
@@ -1 +1 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAE3B,qBAAa,qBAAsB,SAAQ,WAAW;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,gBAAgB,CAAC;;IAO9B,gBAAgB,CAAC,UAAU,EAAE,yBAAyB;IAatD,iBAAiB;IAMjB,MAAM;CAgBP;AAED,eAAO,MAAM,qBAAqB,YAKjC,CAAC"}
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,qBAAa,qBAAsB,SAAQ,WAAW;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,gBAAgB,CAAC;;IAO9B,gBAAgB,CAAC,UAAU,EAAE,yBAAyB;IAetD,iBAAiB;IAMjB,MAAM;CAkBP;AAED,eAAO,MAAM,qBAAqB,YAKjC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { FloorplanControls, SceneNavigationControls, ScenarioControls, POIControls, ViewportControls } from 'hooks/headless';
1
2
  export type ToolType = {
2
3
  goToScene: (codeOrName: string, keepCurrentView?: boolean) => Promise<void>;
3
4
  goToProduct: (codeOrName: string, showDetails?: boolean) => Promise<boolean>;
@@ -34,6 +35,11 @@ export type ToolType = {
34
35
  registerValueListeners: (keys: string[]) => void;
35
36
  call: (action: string, args: any) => void;
36
37
  toggleHotspotOverview: (open: boolean) => void;
38
+ useFloorplanControl: () => FloorplanControls;
39
+ useSceneNavigation: () => SceneNavigationControls;
40
+ useScenarioControl: () => ScenarioControls;
41
+ usePOIInteraction: () => POIControls;
42
+ useViewportControl: () => ViewportControls;
37
43
  playScenes: (sceneCodesStr: string) => Promise<boolean>;
38
44
  };
39
45
  export type TourSwitchType = {
@@ -1 +1 @@
1
- {"version":3,"file":"tool.type.d.ts","sourceRoot":"","sources":["../../../src/types/SkinLayer/tool.type.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG;IACrB,SAAS,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,WAAW,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7E,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,YAAY,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,aAAa,EAAE,CAAC,GAAG,EAAE;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpB,WAAW,EAAE,MAAM;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,kBAAkB,EAAE,CAAC,IAAI,EAAE;QACzB,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpB,kBAAkB,EAAE,CAClB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,KAClD,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,cAAc,EAAE,CACd,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,KAClD,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAE9B,gBAAgB,EAAE,CAChB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,KACd,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,mBAAmB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC,sBAAsB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACjD,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAC1C,qBAAqB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,UAAU,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD,CAAC"}
1
+ {"version":3,"file":"tool.type.d.ts","sourceRoot":"","sources":["../../../src/types/SkinLayer/tool.type.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { CustomLayoutConfig } from 'types/custom-layout';
1
2
  import { VisualizerListenersType } from './listeners.type';
2
3
  import { OverrideConfigsType } from './overrideConfigs.type';
3
4
  import { ProductType } from './product.type';
@@ -11,6 +12,8 @@ export type VirtualTourVisualizerType = {
11
12
  config?: OverrideConfigsType;
12
13
  listeners?: VisualizerListenersType;
13
14
  products?: ProductType[];
15
+ disableDefaultUI?: boolean;
16
+ customLayout?: CustomLayoutConfig;
14
17
  middleware?: ActionMiddleware;
15
18
  };
16
19
  //# sourceMappingURL=visualizer.type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"visualizer.type.d.ts","sourceRoot":"","sources":["../../../src/types/SkinLayer/visualizer.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B,CAAC"}
1
+ {"version":3,"file":"visualizer.type.d.ts","sourceRoot":"","sources":["../../../src/types/SkinLayer/visualizer.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B,CAAC"}
@@ -0,0 +1,167 @@
1
+ import { ComponentType } from 'react';
2
+ /**
3
+ * Custom Layout Config - Cho phép override từng component thông qua cấu trúc object lồng nhau.
4
+ *
5
+ * @example
6
+ * ```tsx
7
+ * customLayout={{
8
+ * Floorplan: {
9
+ * Minimap: {
10
+ * Marker: CustomMarker,
11
+ * Polygon: CustomPolygon,
12
+ * },
13
+ * },
14
+ * }}
15
+ * ```
16
+ *
17
+ * @important Pass component functions, NOT React elements!
18
+ */
19
+ export type CustomLayoutComponent<T = any> = ComponentType<T>;
20
+ export type CustomLayoutNode = CustomLayoutComponent | {
21
+ [key: string]: CustomLayoutNode;
22
+ };
23
+ export type CustomLayoutConfig = {
24
+ [key: string]: CustomLayoutNode;
25
+ };
26
+ /**
27
+ * Resolve helper để tìm component theo path (ví dụ ['Floorplan', 'Minimap', 'Marker'])
28
+ */
29
+ export declare const resolveCustomLayoutComponent: (config: CustomLayoutConfig | undefined, path: string[]) => CustomLayoutComponent | undefined;
30
+ /**
31
+ * Registry document các component có thể custom layout
32
+ */
33
+ export declare const CUSTOM_LAYOUT_COMPONENTS: {
34
+ readonly Floorplan: {
35
+ readonly path: "src/components/SkinLayer/Floorplan/index.tsx";
36
+ readonly description: "Main Floorplan container with bottom sheet";
37
+ readonly children: {
38
+ readonly Map: {
39
+ readonly path: "src/components/SkinLayer/Floorplan/Map.tsx";
40
+ readonly description: "Floorplan map wrapper with controls";
41
+ };
42
+ readonly Minimap: {
43
+ readonly path: "src/components/SkinLayer/Floorplan/Minimap/index.tsx";
44
+ readonly description: "Interactive minimap with markers and polygons";
45
+ readonly children: {
46
+ readonly Marker: {
47
+ readonly path: "src/components/SkinLayer/Floorplan/Minimap/MiniMapMarker.tsx";
48
+ readonly description: "Individual marker on minimap";
49
+ };
50
+ readonly Polygon: {
51
+ readonly path: "src/components/SkinLayer/Floorplan/Minimap/MiniMapPolygons/index.tsx";
52
+ readonly description: "Polygon areas on minimap";
53
+ };
54
+ readonly Radar: {
55
+ readonly path: "src/components/SkinLayer/Floorplan/Minimap/index.tsx";
56
+ readonly description: "Radar element inside minimap";
57
+ };
58
+ };
59
+ };
60
+ };
61
+ };
62
+ readonly HotspotOverview: {
63
+ readonly path: "src/components/SkinLayer/HotspotOverview/index.tsx";
64
+ readonly description: "Hotspot overview panel shown near bottom-left";
65
+ };
66
+ readonly PinActions: {
67
+ readonly path: "src/components/SkinLayer/PinActionButtons/index.tsx";
68
+ readonly description: "Pin action buttons panel shown on the right side";
69
+ };
70
+ readonly SearchAndDiscoverySlideIn: {
71
+ readonly path: "src/components/SkinLayer/SearchAndDiscoverySlideIn/index.tsx";
72
+ readonly description: "Search and discovery slide-in panel shown on the right side";
73
+ readonly children: {
74
+ readonly TourInfoActionPart: {
75
+ readonly path: "src/components/SkinLayer/SearchAndDiscoverySlideIn/TourInfoActionPart.tsx";
76
+ readonly description: "Tour information section";
77
+ readonly children: {
78
+ readonly ContentItem: {
79
+ readonly path: "src/components/SkinLayer/SearchAndDiscoverySlideIn/ContentItem/index.tsx";
80
+ readonly description: "Individual content item in the tour info section";
81
+ };
82
+ };
83
+ };
84
+ readonly ScenarioPart: {
85
+ readonly path: "src/components/SkinLayer/SearchAndDiscoverySlideIn/ScenariosPart/index.tsx";
86
+ readonly description: "Scenarios section";
87
+ readonly children: {
88
+ readonly ScenarioItem: {
89
+ readonly path: "src/components/SkinLayer/SearchAndDiscoverySlideIn/ScenariosPart/Item.tsx";
90
+ readonly description: "Individual scenario item";
91
+ };
92
+ };
93
+ };
94
+ readonly PromotionPart: {
95
+ readonly path: "src/components/SkinLayer/SearchAndDiscoverySlideIn/PromotionPart/index.tsx";
96
+ readonly description: "Promotions section";
97
+ readonly children: {
98
+ readonly CardItem: {
99
+ readonly path: "src/commons/SkinLayer/components/CardItemGroup/Item/index.tsx";
100
+ readonly description: "Card item for promotions";
101
+ };
102
+ };
103
+ };
104
+ readonly PoiInfoActionPart: {
105
+ readonly path: "src/components/SkinLayer/SearchAndDiscoverySlideIn/PoiInfoActionPart/index.tsx";
106
+ readonly description: "Points of interest section";
107
+ readonly children: {
108
+ readonly ContentItem: {
109
+ readonly path: "src/components/SkinLayer/SearchAndDiscoverySlideIn/ContentItem/index.tsx";
110
+ readonly description: "Individual content item in the POI section";
111
+ };
112
+ };
113
+ };
114
+ readonly DisplayActionPart: {
115
+ readonly path: "src/components/SkinLayer/SearchAndDiscoverySlideIn/DisplayActionPart/index.tsx";
116
+ readonly description: "Display options section";
117
+ readonly children: {
118
+ readonly ContentItem: {
119
+ readonly path: "src/components/SkinLayer/SearchAndDiscoverySlideIn/ContentItem/index.tsx";
120
+ readonly description: "Individual content item in the display section";
121
+ };
122
+ readonly ContentItemLanguage: {
123
+ readonly path: "src/components/SkinLayer/SearchAndDiscoverySlideIn/ContentItemLanguage.tsx";
124
+ readonly description: "Language selection item";
125
+ };
126
+ };
127
+ };
128
+ readonly HelpActionPart: {
129
+ readonly path: "src/components/SkinLayer/SearchAndDiscoverySlideIn/HelpActionPart.tsx";
130
+ readonly description: "Help and support section";
131
+ readonly children: {
132
+ readonly ContentItem: {
133
+ readonly path: "src/components/SkinLayer/SearchAndDiscoverySlideIn/ContentItem/index.tsx";
134
+ readonly description: "Individual content item in the help section";
135
+ };
136
+ };
137
+ };
138
+ };
139
+ };
140
+ readonly HotspotCategorySlideIn: {
141
+ readonly path: "src/components/SkinLayer/HotspotCategorySlideIn/index.tsx";
142
+ readonly description: "Hotspot category slide-in panel for displaying category-based content";
143
+ readonly children: {
144
+ readonly ScenarioSlideIn: {
145
+ readonly path: "src/components/SkinLayer/HotspotCategorySlideIn/ScenarioSlideIn.tsx";
146
+ readonly description: "Scenario selection panel within hotspot categories";
147
+ };
148
+ readonly SpaceAndSceneSlideIn: {
149
+ readonly path: "src/components/SkinLayer/HotspotCategorySlideIn/SpaceAndSceneSlideIn.tsx";
150
+ readonly description: "Space and scene selection panel";
151
+ };
152
+ readonly FeatureSlideIn: {
153
+ readonly path: "src/components/SkinLayer/HotspotCategorySlideIn/FeatureSlideIn.tsx";
154
+ readonly description: "Feature showcase panel";
155
+ };
156
+ readonly ProductSlideIn: {
157
+ readonly path: "src/components/SkinLayer/HotspotCategorySlideIn/ProductSlideIn.tsx";
158
+ readonly description: "Product listing panel";
159
+ };
160
+ readonly PoiSlideIn: {
161
+ readonly path: "src/components/SkinLayer/HotspotCategorySlideIn/PoiSlideIn.tsx";
162
+ readonly description: "Points of interest panel";
163
+ };
164
+ };
165
+ };
166
+ };
167
+ //# sourceMappingURL=custom-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-layout.d.ts","sourceRoot":"","sources":["../../src/types/custom-layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,GAAG,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;AAE9D,MAAM,MAAM,gBAAgB,GACxB,qBAAqB,GACrB;IACE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAC;CACjC,CAAC;AAEN,MAAM,MAAM,kBAAkB,GAAG;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAC;CACjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B,GACvC,QAAQ,kBAAkB,GAAG,SAAS,EACtC,MAAM,MAAM,EAAE,KACb,qBAAqB,GAAG,SAgD1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqI3B,CAAC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Swizzle Config - Cho phép customize components theo nested path
3
+ * Giống như Docusaurus swizzle pattern
4
+ *
5
+ * @example
6
+ * ```tsx
7
+ * // ✅ ĐÚNG - Pass component function
8
+ * swizzle={{
9
+ * 'Floorplan.Minimap.Marker': CustomMarker,
10
+ * 'Floorplan.Minimap': CustomMinimap,
11
+ * }}
12
+ *
13
+ * // ❌ SAI - Không pass React element
14
+ * swizzle={{
15
+ * 'Floorplan.Minimap.Marker': <CustomMarker />, // ❌ Wrong!
16
+ * }}
17
+ * ```
18
+ *
19
+ * @important Pass component functions, NOT React elements!
20
+ */
21
+ export type SwizzleConfig = {
22
+ Floorplan?: any;
23
+ 'Floorplan.Map'?: any;
24
+ 'Floorplan.Minimap'?: any;
25
+ 'Floorplan.Minimap.Marker'?: any;
26
+ 'Floorplan.Minimap.Polygon'?: any;
27
+ 'Floorplan.Minimap.Radar'?: any;
28
+ };
29
+ /**
30
+ * Helper type để auto-complete swizzle paths
31
+ */
32
+ export type SwizzlePath = keyof SwizzleConfig;
33
+ /**
34
+ * Registry của tất cả components có thể swizzle
35
+ * Dùng để documentation và validation
36
+ */
37
+ export declare const SWIZZLEABLE_COMPONENTS: {
38
+ readonly Floorplan: {
39
+ readonly path: "src/components/SkinLayer/Floorplan/index.tsx";
40
+ readonly description: "Main Floorplan container with bottom sheet";
41
+ };
42
+ readonly 'Floorplan.Map': {
43
+ readonly path: "src/components/SkinLayer/Floorplan/Map.tsx";
44
+ readonly description: "Floorplan map wrapper with controls";
45
+ };
46
+ readonly 'Floorplan.Minimap': {
47
+ readonly path: "src/components/SkinLayer/Floorplan/Minimap/index.tsx";
48
+ readonly description: "Interactive minimap with markers and polygons";
49
+ };
50
+ readonly 'Floorplan.Minimap.Marker': {
51
+ readonly path: "src/components/SkinLayer/Floorplan/Minimap/MiniMapMarker.tsx";
52
+ readonly description: "Individual marker on minimap";
53
+ };
54
+ readonly 'Floorplan.Minimap.Polygon': {
55
+ readonly path: "src/components/SkinLayer/Floorplan/Minimap/MiniMapPolygons/index.tsx";
56
+ readonly description: "Polygon areas on minimap";
57
+ };
58
+ };
59
+ //# sourceMappingURL=swizzle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swizzle.d.ts","sourceRoot":"","sources":["../../src/types/swizzle.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,aAAa,GAAG;IAE1B,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,mBAAmB,CAAC,EAAE,GAAG,CAAC;IAC1B,0BAA0B,CAAC,EAAE,GAAG,CAAC;IACjC,2BAA2B,CAAC,EAAE,GAAG,CAAC;IAClC,yBAAyB,CAAC,EAAE,GAAG,CAAC;CAGjC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC;AAE9C;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;CAsBzB,CAAC"}