@heliguy-xyz/splat-viewer-react-ui 1.0.0-alpha.1

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 (100) hide show
  1. package/README.md +191 -0
  2. package/dist/components/SplatSceneViewer/SplatSceneViewer.d.ts +25 -0
  3. package/dist/components/SplatSceneViewer/SplatSceneViewer.d.ts.map +1 -0
  4. package/dist/components/SplatSceneViewer/index.d.ts +3 -0
  5. package/dist/components/SplatSceneViewer/index.d.ts.map +1 -0
  6. package/dist/components/ui/BoxCropModal.d.ts +12 -0
  7. package/dist/components/ui/BoxCropModal.d.ts.map +1 -0
  8. package/dist/components/ui/ColorPicker.d.ts +10 -0
  9. package/dist/components/ui/ColorPicker.d.ts.map +1 -0
  10. package/dist/components/ui/EmptyState.d.ts +8 -0
  11. package/dist/components/ui/EmptyState.d.ts.map +1 -0
  12. package/dist/components/ui/InfoRow.d.ts +8 -0
  13. package/dist/components/ui/InfoRow.d.ts.map +1 -0
  14. package/dist/components/ui/InfoSection.d.ts +9 -0
  15. package/dist/components/ui/InfoSection.d.ts.map +1 -0
  16. package/dist/components/ui/PropertiesPanel.d.ts +25 -0
  17. package/dist/components/ui/PropertiesPanel.d.ts.map +1 -0
  18. package/dist/components/ui/Select.d.ts +13 -0
  19. package/dist/components/ui/Select.d.ts.map +1 -0
  20. package/dist/components/ui/SliderControl.d.ts +12 -0
  21. package/dist/components/ui/SliderControl.d.ts.map +1 -0
  22. package/dist/components/ui/SphereCropModal.d.ts +10 -0
  23. package/dist/components/ui/SphereCropModal.d.ts.map +1 -0
  24. package/dist/components/ui/TabBar.d.ts +15 -0
  25. package/dist/components/ui/TabBar.d.ts.map +1 -0
  26. package/dist/components/ui/TimelinePanel.d.ts +12 -0
  27. package/dist/components/ui/TimelinePanel.d.ts.map +1 -0
  28. package/dist/components/ui/ToggleControl.d.ts +8 -0
  29. package/dist/components/ui/ToggleControl.d.ts.map +1 -0
  30. package/dist/components/ui/TransformControl.d.ts +15 -0
  31. package/dist/components/ui/TransformControl.d.ts.map +1 -0
  32. package/dist/components/ui/ViewerToolbar.d.ts +11 -0
  33. package/dist/components/ui/ViewerToolbar.d.ts.map +1 -0
  34. package/dist/components/ui/buttons/IconButton.d.ts +12 -0
  35. package/dist/components/ui/buttons/IconButton.d.ts.map +1 -0
  36. package/dist/components/ui/buttons/ToggleButtonGroup.d.ts +16 -0
  37. package/dist/components/ui/buttons/ToggleButtonGroup.d.ts.map +1 -0
  38. package/dist/components/ui/icons/AirplaneTilt.d.ts +9 -0
  39. package/dist/components/ui/icons/AirplaneTilt.d.ts.map +1 -0
  40. package/dist/components/ui/icons/ArrowCounterClockwise.d.ts +9 -0
  41. package/dist/components/ui/icons/ArrowCounterClockwise.d.ts.map +1 -0
  42. package/dist/components/ui/icons/ArrowLeft.d.ts +9 -0
  43. package/dist/components/ui/icons/ArrowLeft.d.ts.map +1 -0
  44. package/dist/components/ui/icons/ArrowsOut.d.ts +9 -0
  45. package/dist/components/ui/icons/ArrowsOut.d.ts.map +1 -0
  46. package/dist/components/ui/icons/ChatCircleText.d.ts +9 -0
  47. package/dist/components/ui/icons/ChatCircleText.d.ts.map +1 -0
  48. package/dist/components/ui/icons/Circle.d.ts +9 -0
  49. package/dist/components/ui/icons/Circle.d.ts.map +1 -0
  50. package/dist/components/ui/icons/Crop.d.ts +9 -0
  51. package/dist/components/ui/icons/Crop.d.ts.map +1 -0
  52. package/dist/components/ui/icons/Cube.d.ts +9 -0
  53. package/dist/components/ui/icons/Cube.d.ts.map +1 -0
  54. package/dist/components/ui/icons/DownloadSimple.d.ts +9 -0
  55. package/dist/components/ui/icons/DownloadSimple.d.ts.map +1 -0
  56. package/dist/components/ui/icons/Export.d.ts +9 -0
  57. package/dist/components/ui/icons/Export.d.ts.map +1 -0
  58. package/dist/components/ui/icons/Eye.d.ts +9 -0
  59. package/dist/components/ui/icons/Eye.d.ts.map +1 -0
  60. package/dist/components/ui/icons/EyeClosed.d.ts +9 -0
  61. package/dist/components/ui/icons/EyeClosed.d.ts.map +1 -0
  62. package/dist/components/ui/icons/Facebook.d.ts +9 -0
  63. package/dist/components/ui/icons/Facebook.d.ts.map +1 -0
  64. package/dist/components/ui/icons/HandPointing.d.ts +9 -0
  65. package/dist/components/ui/icons/HandPointing.d.ts.map +1 -0
  66. package/dist/components/ui/icons/Info.d.ts +9 -0
  67. package/dist/components/ui/icons/Info.d.ts.map +1 -0
  68. package/dist/components/ui/icons/Instagram.d.ts +9 -0
  69. package/dist/components/ui/icons/Instagram.d.ts.map +1 -0
  70. package/dist/components/ui/icons/Linkedin.d.ts +9 -0
  71. package/dist/components/ui/icons/Linkedin.d.ts.map +1 -0
  72. package/dist/components/ui/icons/MapPinSimpleArea.d.ts +9 -0
  73. package/dist/components/ui/icons/MapPinSimpleArea.d.ts.map +1 -0
  74. package/dist/components/ui/icons/PencilSimple.d.ts +9 -0
  75. package/dist/components/ui/icons/PencilSimple.d.ts.map +1 -0
  76. package/dist/components/ui/icons/Ruler.d.ts +9 -0
  77. package/dist/components/ui/icons/Ruler.d.ts.map +1 -0
  78. package/dist/components/ui/icons/Scissors.d.ts +9 -0
  79. package/dist/components/ui/icons/Scissors.d.ts.map +1 -0
  80. package/dist/components/ui/icons/ShareNetwork.d.ts +9 -0
  81. package/dist/components/ui/icons/ShareNetwork.d.ts.map +1 -0
  82. package/dist/components/ui/icons/Trash.d.ts +9 -0
  83. package/dist/components/ui/icons/Trash.d.ts.map +1 -0
  84. package/dist/components/ui/icons/Twitter.d.ts +9 -0
  85. package/dist/components/ui/icons/Twitter.d.ts.map +1 -0
  86. package/dist/components/ui/icons/VideoCamera.d.ts +9 -0
  87. package/dist/components/ui/icons/VideoCamera.d.ts.map +1 -0
  88. package/dist/hooks/useDebounce.d.ts +2 -0
  89. package/dist/hooks/useDebounce.d.ts.map +1 -0
  90. package/dist/index.d.ts +28 -0
  91. package/dist/index.d.ts.map +1 -0
  92. package/dist/index.esm.js +11 -0
  93. package/dist/index.esm.js.map +1 -0
  94. package/dist/index.js +11 -0
  95. package/dist/index.js.map +1 -0
  96. package/dist/types/index.d.ts +108 -0
  97. package/dist/types/index.d.ts.map +1 -0
  98. package/dist/types/scene.d.ts +29 -0
  99. package/dist/types/scene.d.ts.map +1 -0
  100. package/package.json +83 -0
package/README.md ADDED
@@ -0,0 +1,191 @@
1
+ # @heliguy-xyz/splat-viewer-react-ui
2
+
3
+ Full-featured React UI component for the 3D Gaussian Splat viewer with controls, model management, user permissions, and scene configuration.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @heliguy-xyz/splat-viewer-react-ui @heliguy-xyz/splat-viewer react react-dom
9
+ ```
10
+
11
+ ## Features
12
+
13
+ - 🎨 **Full UI Controls** - Complete control panel with camera, scene, and model management
14
+ - 👥 **User Permissions** - Granular control over user capabilities
15
+ - 📦 **Model Management** - Add, remove, transform, and organize multiple models
16
+ - 🎥 **Camera Controls** - Orbit and fly camera modes with intuitive controls
17
+ - ⚙️ **Scene Configuration** - Background, grid, FOV, and rendering settings
18
+ - 🎭 **Theming** - Dark, light, and auto themes
19
+ - 📐 **Flexible Layouts** - Sidebar, bottom panel, floating, or custom layouts
20
+ - 📱 **Responsive** - Works on desktop, tablet, and mobile devices
21
+
22
+ ## Usage
23
+
24
+ ```tsx
25
+ import React from 'react';
26
+ import { SplatViewerUI } from '@heliguy-xyz/splat-viewer-react-ui';
27
+ import '@heliguy-xyz/splat-viewer-react-ui/styles.css';
28
+
29
+ function App() {
30
+ const userRights = {
31
+ canAddModels: true,
32
+ canRemoveModels: true,
33
+ canTransform: true,
34
+ canChangeSettings: true,
35
+ canToggleCameraMode: true,
36
+ canEditSceneConfig: true,
37
+ };
38
+
39
+ return (
40
+ <SplatViewerUI
41
+ userRights={userRights}
42
+ initialModels={[
43
+ {
44
+ name: 'My Model',
45
+ url: '/path/to/model.splat',
46
+ },
47
+ ]}
48
+ sceneConfig={{
49
+ backgroundColor: '#1a1a1a',
50
+ showGrid: true,
51
+ showStats: true,
52
+ }}
53
+ showControls
54
+ showModelList
55
+ showTransformTools
56
+ layout="sidebar"
57
+ theme="dark"
58
+ onSceneReady={() => console.log('Scene ready!')}
59
+ onModelAdded={(id, info) => console.log('Model added:', id, info)}
60
+ onError={(error) => console.error('Error:', error)}
61
+ />
62
+ );
63
+ }
64
+ ```
65
+
66
+ ## Props
67
+
68
+ ### `SplatViewerUIProps`
69
+
70
+ | Prop | Type | Default | Description |
71
+ |------|------|---------|-------------|
72
+ | `userRights` | `UserRights` | **required** | User permissions for UI features |
73
+ | `initialModels` | `ModelConfig[]` | `[]` | Models to load on initialization |
74
+ | `sceneConfig` | `SceneConfig` | `{}` | Scene configuration options |
75
+ | `showControls` | `boolean` | `true` | Show control panel |
76
+ | `showModelList` | `boolean` | `true` | Show model list panel |
77
+ | `showTransformTools` | `boolean` | `true` | Show transform tools |
78
+ | `showCameraControls` | `boolean` | `true` | Show camera controls |
79
+ | `showSceneSettings` | `boolean` | `true` | Show scene settings |
80
+ | `layout` | `'sidebar' \| 'bottom-panel' \| 'floating' \| 'custom'` | `'sidebar'` | UI layout mode |
81
+ | `theme` | `'dark' \| 'light' \| 'auto'` | `'dark'` | Color theme |
82
+ | `width` | `string \| number` | `'100%'` | Viewer width |
83
+ | `height` | `string \| number` | `'100%'` | Viewer height |
84
+
85
+ ### Callbacks
86
+
87
+ - `onSceneReady()` - Called when the scene is initialized
88
+ - `onModelAdded(modelId, modelInfo)` - Called when a model is added
89
+ - `onModelRemoved(modelId)` - Called when a model is removed
90
+ - `onModelSelected(modelId)` - Called when a model is selected
91
+ - `onError(error)` - Called on errors
92
+ - `onCameraModeChange(mode)` - Called when camera mode changes
93
+ - `onSceneConfigChange(config)` - Called when scene config changes
94
+
95
+ ## User Rights
96
+
97
+ Control what users can do with the `userRights` prop:
98
+
99
+ ```tsx
100
+ const userRights = {
101
+ canAddModels: true, // Can upload/add new models
102
+ canRemoveModels: true, // Can delete models
103
+ canTransform: true, // Can move/rotate/scale models
104
+ canChangeSettings: true, // Can modify viewer settings
105
+ canToggleCameraMode: true, // Can switch between orbit/fly mode
106
+ canEditSceneConfig: true, // Can change background, grid, etc.
107
+ };
108
+ ```
109
+
110
+ ## Layouts
111
+
112
+ ### Sidebar Layout
113
+ ```tsx
114
+ <SplatViewerUI layout="sidebar" {...props} />
115
+ ```
116
+ Controls on the right side with vertical panels.
117
+
118
+ ### Bottom Panel Layout
119
+ ```tsx
120
+ <SplatViewerUI layout="bottom-panel" {...props} />
121
+ ```
122
+ Controls at the bottom with horizontal layout.
123
+
124
+ ### Floating Layout
125
+ ```tsx
126
+ <SplatViewerUI layout="floating" {...props} />
127
+ ```
128
+ Floating panels that can be positioned freely.
129
+
130
+ ### Custom Layout
131
+ ```tsx
132
+ <SplatViewerUI layout="custom" {...props} />
133
+ ```
134
+ Minimal UI - integrate your own custom controls.
135
+
136
+ ## Theming
137
+
138
+ ```tsx
139
+ // Dark theme (default)
140
+ <SplatViewerUI theme="dark" {...props} />
141
+
142
+ // Light theme
143
+ <SplatViewerUI theme="light" {...props} />
144
+
145
+ // Auto (follows system preference)
146
+ <SplatViewerUI theme="auto" {...props} />
147
+ ```
148
+
149
+ ## Styling Requirements
150
+
151
+ This package uses **Tailwind CSS** for styling. Your application must have Tailwind CSS configured.
152
+
153
+ Add the package path to your Tailwind content configuration:
154
+
155
+ ```js
156
+ // tailwind.config.js
157
+ module.exports = {
158
+ content: [
159
+ './src/**/*.{js,jsx,ts,tsx}',
160
+ './node_modules/@heliguy-xyz/splat-viewer-react-ui/**/*.{js,jsx,ts,tsx}',
161
+ ],
162
+ // ... rest of your config
163
+ };
164
+ ```
165
+
166
+ ## Development
167
+
168
+ This package is part of the `@heliguy-xyz/splat-viewer` monorepo.
169
+
170
+ ```bash
171
+ # Build
172
+ npm run build
173
+
174
+ # Development
175
+ npm run dev
176
+
177
+ # Lint
178
+ npm run lint
179
+ npm run lint:fix
180
+
181
+ # Type check
182
+ npm run type-check
183
+ ```
184
+
185
+ ## License
186
+
187
+ MIT © Heliguy
188
+
189
+ ## Related Packages
190
+
191
+ - [@heliguy-xyz/splat-viewer](https://www.npmjs.com/package/@heliguy-xyz/splat-viewer) - Core web component
@@ -0,0 +1,25 @@
1
+ import type { ModelTransform } from '../../types/scene';
2
+ type ModelInfo = any;
3
+ export interface ModelItem {
4
+ id: string;
5
+ name: string;
6
+ uploadedAt: string;
7
+ visible: boolean;
8
+ info?: ModelInfo;
9
+ }
10
+ export interface SplatSceneViewerProps {
11
+ viewOnly?: boolean;
12
+ className?: string;
13
+ models?: ModelItem[];
14
+ onReady?: () => void;
15
+ onError?: (error: Error) => void;
16
+ onShareClick?: () => void;
17
+ onModelImportOpen?: () => void;
18
+ onModelSelect?: (modelId: string | null) => void;
19
+ onSceneSettingsChange?: (settings: Record<string, any>) => void;
20
+ onModelTransformChange?: (modelId: string, transform: ModelTransform) => void;
21
+ uploadModel?: (file: File) => Promise<void>;
22
+ }
23
+ export declare function SplatSceneViewer({ viewOnly, className, models, onReady, onError, onShareClick, onModelImportOpen, onModelSelect, onSceneSettingsChange, onModelTransformChange, uploadModel, }: SplatSceneViewerProps): import("react/jsx-runtime").JSX.Element;
24
+ export {};
25
+ //# sourceMappingURL=SplatSceneViewer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SplatSceneViewer.d.ts","sourceRoot":"","sources":["../../../src/components/SplatSceneViewer/SplatSceneViewer.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAGvD,KAAK,SAAS,GAAG,GAAG,CAAA;AAIpB,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB;AAED,MAAM,WAAW,qBAAqB;IAEpC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAGlB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAA;IAGpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC9B,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IAChD,qBAAqB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAA;IAC/D,sBAAsB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,KAAK,IAAI,CAAA;IAG7E,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC5C;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,QAAgB,EAChB,SAAc,EACd,MAAW,EACX,OAAO,EACP,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,GACZ,EAAE,qBAAqB,2CAixCvB"}
@@ -0,0 +1,3 @@
1
+ export { SplatSceneViewer } from './SplatSceneViewer';
2
+ export type { SplatSceneViewerProps, ModelItem } from './SplatSceneViewer';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/SplatSceneViewer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,12 @@
1
+ interface BoxCropModalProps {
2
+ onSet: (sizeX: number, sizeY: number, sizeZ: number) => void;
3
+ onAdd: (sizeX: number, sizeY: number, sizeZ: number) => void;
4
+ onRemove: () => void;
5
+ onSizeChange?: (sizeX: number, sizeY: number, sizeZ: number) => void;
6
+ initialSizeX?: number;
7
+ initialSizeY?: number;
8
+ initialSizeZ?: number;
9
+ }
10
+ export default function BoxCropModal({ onSet, onAdd, onRemove, onSizeChange, initialSizeX, initialSizeY, initialSizeZ, }: Readonly<BoxCropModalProps>): import("react/jsx-runtime").JSX.Element;
11
+ export {};
12
+ //# sourceMappingURL=BoxCropModal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BoxCropModal.d.ts","sourceRoot":"","sources":["../../../src/components/ui/BoxCropModal.tsx"],"names":[],"mappings":"AAIA,UAAU,iBAAiB;IACzB,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,KAAK,EACL,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,YAAgB,EAChB,YAAgB,EAChB,YAAgB,GACjB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,2CAuH7B"}
@@ -0,0 +1,10 @@
1
+ import type { CSSProperties } from "react";
2
+ interface ColorPickerProps {
3
+ colors: string[];
4
+ selectedColor: string;
5
+ onChange: (color: string) => void;
6
+ getStyle?: (color: string, isSelected: boolean) => CSSProperties;
7
+ }
8
+ export default function ColorPicker({ colors, selectedColor, onChange, getStyle, }: Readonly<ColorPickerProps>): import("react/jsx-runtime").JSX.Element;
9
+ export {};
10
+ //# sourceMappingURL=ColorPicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorPicker.d.ts","sourceRoot":"","sources":["../../../src/components/ui/ColorPicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,KAAK,aAAa,CAAC;CAClE;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,MAAM,EACN,aAAa,EACb,QAAQ,EACR,QAAQ,GACT,EAAE,QAAQ,CAAC,gBAAgB,CAAC,2CAuB5B"}
@@ -0,0 +1,8 @@
1
+ import type { ReactNode } from "react";
2
+ interface EmptyStateProps {
3
+ icon: ReactNode;
4
+ message: string;
5
+ }
6
+ export default function EmptyState({ icon, message, }: Readonly<EmptyStateProps>): import("react/jsx-runtime").JSX.Element;
7
+ export {};
8
+ //# sourceMappingURL=EmptyState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../../src/components/ui/EmptyState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,UAAU,eAAe;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,OAAO,GACR,EAAE,QAAQ,CAAC,eAAe,CAAC,2CAS3B"}
@@ -0,0 +1,8 @@
1
+ interface InfoRowProps {
2
+ label: string;
3
+ value: string | number;
4
+ monospace?: boolean;
5
+ }
6
+ export default function InfoRow({ label, value, monospace, }: Readonly<InfoRowProps>): import("react/jsx-runtime").JSX.Element;
7
+ export {};
8
+ //# sourceMappingURL=InfoRow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InfoRow.d.ts","sourceRoot":"","sources":["../../../src/components/ui/InfoRow.tsx"],"names":[],"mappings":"AAAA,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAC9B,KAAK,EACL,KAAK,EACL,SAAiB,GAClB,EAAE,QAAQ,CAAC,YAAY,CAAC,2CAexB"}
@@ -0,0 +1,9 @@
1
+ import type { ReactNode } from "react";
2
+ interface InfoSectionProps {
3
+ title: string;
4
+ children: ReactNode;
5
+ withSeparator?: boolean;
6
+ }
7
+ export default function InfoSection({ title, children, withSeparator, }: Readonly<InfoSectionProps>): import("react/jsx-runtime").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=InfoSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InfoSection.d.ts","sourceRoot":"","sources":["../../../src/components/ui/InfoSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,KAAK,EACL,QAAQ,EACR,aAAqB,GACtB,EAAE,QAAQ,CAAC,gBAAgB,CAAC,2CAU5B"}
@@ -0,0 +1,25 @@
1
+ import type { TabType } from "./TabBar";
2
+ import type { ModelTransform } from "../../types/scene";
3
+ type ModelMetadata = any;
4
+ interface PropertiesPanelProps {
5
+ selectedModelId: string | null;
6
+ modelStats?: ModelMetadata | null;
7
+ onTabChange?: (tab: TabType) => void;
8
+ defaultTab?: TabType;
9
+ transform?: ModelTransform | null;
10
+ onPositionChange?: (axis: "x" | "y" | "z", value: number) => void;
11
+ onRotationChange?: (axis: "x" | "y" | "z", value: number) => void;
12
+ onScaleChange?: (axis: "x" | "y" | "z", value: number) => void;
13
+ onBackgroundColorChange?: (color: string) => void;
14
+ onFieldOfViewChange?: (value: number) => void;
15
+ onShBandsChange?: (value: number) => void;
16
+ onFlySpeedChange?: (value: number) => void;
17
+ onSkyboxToggle?: (enabled: boolean) => void;
18
+ onGridToggle?: (enabled: boolean) => void;
19
+ onBoundingBoxToggle?: (enabled: boolean) => void;
20
+ activeCropTool?: "box" | "sphere" | null;
21
+ onCropToolChange?: (tool: "box" | "sphere" | null) => void;
22
+ }
23
+ export default function PropertiesPanel({ selectedModelId, modelStats, onTabChange, defaultTab, transform, onPositionChange, onRotationChange, onScaleChange, onBackgroundColorChange, onFieldOfViewChange, onShBandsChange, onFlySpeedChange, onSkyboxToggle, onGridToggle, onBoundingBoxToggle, activeCropTool, onCropToolChange, }: Readonly<PropertiesPanelProps>): import("react/jsx-runtime").JSX.Element;
24
+ export {};
25
+ //# sourceMappingURL=PropertiesPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertiesPanel.d.ts","sourceRoot":"","sources":["../../../src/components/ui/PropertiesPanel.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAIxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD,KAAK,aAAa,GAAG,GAAG,CAAC;AA2CzB,UAAU,oBAAoB;IAC5B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IAClC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,cAAc,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;IACzC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC;CAC5D;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,eAAe,EACf,UAAiB,EACjB,WAAW,EACX,UAAmB,EACnB,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,cAAqB,EACrB,gBAAgB,GACjB,EAAE,QAAQ,CAAC,oBAAoB,CAAC,2CA+YhC"}
@@ -0,0 +1,13 @@
1
+ interface SelectOption {
2
+ value: string;
3
+ label: string;
4
+ }
5
+ interface SelectProps {
6
+ options: SelectOption[];
7
+ value: string;
8
+ onChange: (value: string) => void;
9
+ placeholder?: string;
10
+ }
11
+ export default function Select({ options, value, onChange, placeholder, }: Readonly<SelectProps>): import("react/jsx-runtime").JSX.Element;
12
+ export {};
13
+ //# sourceMappingURL=Select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/components/ui/Select.tsx"],"names":[],"mappings":"AAAA,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,WAAW;IACnB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC7B,OAAO,EACP,KAAK,EACL,QAAQ,EACR,WAAW,GACZ,EAAE,QAAQ,CAAC,WAAW,CAAC,2CAuCvB"}
@@ -0,0 +1,12 @@
1
+ interface SliderControlProps {
2
+ label: string;
3
+ value: number;
4
+ min?: number;
5
+ max?: number;
6
+ step?: number;
7
+ onChange: (value: number) => void;
8
+ debounceMs?: number;
9
+ }
10
+ export default function SliderControl({ label, value, min, max, step, onChange, debounceMs, }: Readonly<SliderControlProps>): import("react/jsx-runtime").JSX.Element;
11
+ export {};
12
+ //# sourceMappingURL=SliderControl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SliderControl.d.ts","sourceRoot":"","sources":["../../../src/components/ui/SliderControl.tsx"],"names":[],"mappings":"AAMA,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,KAAK,EACL,KAAK,EACL,GAAO,EACP,GAAS,EACT,IAAQ,EACR,QAAQ,EACR,UAAgB,GACjB,EAAE,QAAQ,CAAC,kBAAkB,CAAC,2CA8D9B"}
@@ -0,0 +1,10 @@
1
+ interface SphereCropModalProps {
2
+ onSet: (radius: number) => void;
3
+ onAdd: (radius: number) => void;
4
+ onRemove: () => void;
5
+ onRadiusChange?: (radius: number) => void;
6
+ initialRadius?: number;
7
+ }
8
+ export default function SphereCropModal({ onSet, onAdd, onRemove, onRadiusChange, initialRadius, }: Readonly<SphereCropModalProps>): import("react/jsx-runtime").JSX.Element;
9
+ export {};
10
+ //# sourceMappingURL=SphereCropModal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SphereCropModal.d.ts","sourceRoot":"","sources":["../../../src/components/ui/SphereCropModal.tsx"],"names":[],"mappings":"AAIA,UAAU,oBAAoB;IAC5B,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,KAAK,EACL,KAAK,EACL,QAAQ,EACR,cAAc,EACd,aAAiB,GAClB,EAAE,QAAQ,CAAC,oBAAoB,CAAC,2CA8FhC"}
@@ -0,0 +1,15 @@
1
+ import type { ReactNode } from "react";
2
+ export type TabType = "info" | "edit" | "scene";
3
+ interface Tab {
4
+ id: TabType;
5
+ label: string;
6
+ icon: ReactNode;
7
+ }
8
+ interface TabBarProps {
9
+ tabs: Tab[];
10
+ activeTab: TabType;
11
+ onTabChange: (tab: TabType) => void;
12
+ }
13
+ export default function TabBar({ tabs, activeTab, onTabChange, }: Readonly<TabBarProps>): import("react/jsx-runtime").JSX.Element;
14
+ export {};
15
+ //# sourceMappingURL=TabBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabBar.d.ts","sourceRoot":"","sources":["../../../src/components/ui/TabBar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEhD,UAAU,GAAG;IACX,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CACrC;AAED,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC7B,IAAI,EACJ,SAAS,EACT,WAAW,GACZ,EAAE,QAAQ,CAAC,WAAW,CAAC,2CAmBvB"}
@@ -0,0 +1,12 @@
1
+ type ModelInfo = any;
2
+ interface TimelinePanelProps {
3
+ models: ModelInfo[];
4
+ selectedModelId: string | null;
5
+ onSelectModel?: (modelId: string) => void;
6
+ onAddSheet?: () => void;
7
+ onToggleVisibility?: (modelId: string, visible: boolean) => void;
8
+ onRemoveModel?: (modelId: string) => void;
9
+ }
10
+ export default function TimelinePanel({ models, selectedModelId, onSelectModel, onAddSheet, onToggleVisibility, onRemoveModel, }: Readonly<TimelinePanelProps>): import("react/jsx-runtime").JSX.Element;
11
+ export {};
12
+ //# sourceMappingURL=TimelinePanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimelinePanel.d.ts","sourceRoot":"","sources":["../../../src/components/ui/TimelinePanel.tsx"],"names":[],"mappings":"AAUA,KAAK,SAAS,GAAG,GAAG,CAAC;AAErB,UAAU,kBAAkB;IAC1B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACjE,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,MAAM,EACN,eAAe,EACf,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,aAAa,GACd,EAAE,QAAQ,CAAC,kBAAkB,CAAC,2CA8I9B"}
@@ -0,0 +1,8 @@
1
+ interface ToggleControlProps {
2
+ label: string;
3
+ checked: boolean;
4
+ onChange: (checked: boolean) => void;
5
+ }
6
+ export default function ToggleControl({ label, checked, onChange, }: Readonly<ToggleControlProps>): import("react/jsx-runtime").JSX.Element;
7
+ export {};
8
+ //# sourceMappingURL=ToggleControl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToggleControl.d.ts","sourceRoot":"","sources":["../../../src/components/ui/ToggleControl.tsx"],"names":[],"mappings":"AAAA,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACtC;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,KAAK,EACL,OAAO,EACP,QAAQ,GACT,EAAE,QAAQ,CAAC,kBAAkB,CAAC,2CAwB9B"}
@@ -0,0 +1,15 @@
1
+ import type { ReactNode } from "react";
2
+ interface TransformValues {
3
+ x: number;
4
+ y: number;
5
+ z: number;
6
+ }
7
+ interface TransformControlProps {
8
+ label: string;
9
+ icon?: ReactNode;
10
+ values: TransformValues;
11
+ onChange: (values: TransformValues) => void;
12
+ }
13
+ export default function TransformControl({ label, icon, values, onChange, }: Readonly<TransformControlProps>): import("react/jsx-runtime").JSX.Element;
14
+ export {};
15
+ //# sourceMappingURL=TransformControl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransformControl.d.ts","sourceRoot":"","sources":["../../../src/components/ui/TransformControl.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAe,SAAS,EAAE,MAAM,OAAO,CAAC;AAGpD,UAAU,eAAe;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAQD,UAAU,qBAAqB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;CAC7C;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,KAAK,EACL,IAAI,EACJ,MAAM,EACN,QAAQ,GACT,EAAE,QAAQ,CAAC,qBAAqB,CAAC,2CA+EjC"}
@@ -0,0 +1,11 @@
1
+ import type { ReactNode } from "react";
2
+ export interface ViewerToolbarProps {
3
+ title: string;
4
+ onBack?: () => void;
5
+ leftSection?: ReactNode;
6
+ centerSection?: ReactNode;
7
+ rightSection?: ReactNode;
8
+ className?: string;
9
+ }
10
+ export default function ViewerToolbar({ title, onBack, leftSection, centerSection, rightSection, className, }: Readonly<ViewerToolbarProps>): import("react/jsx-runtime").JSX.Element;
11
+ //# sourceMappingURL=ViewerToolbar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewerToolbar.d.ts","sourceRoot":"","sources":["../../../src/components/ui/ViewerToolbar.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,KAAK,EACL,MAAM,EACN,WAAW,EACX,aAAa,EACb,YAAY,EACZ,SAAS,GACV,EAAE,QAAQ,CAAC,kBAAkB,CAAC,2CA4D9B"}
@@ -0,0 +1,12 @@
1
+ import type { ButtonHTMLAttributes, ReactNode } from "react";
2
+ type Size = "sm" | "md" | "lg";
3
+ type Variant = "default" | "ghost";
4
+ export interface IconButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "className"> {
5
+ icon: ReactNode;
6
+ size?: Size;
7
+ variant?: Variant;
8
+ active?: boolean;
9
+ }
10
+ export default function IconButton({ icon, size, variant, active, disabled, ...props }: Readonly<IconButtonProps>): import("react/jsx-runtime").JSX.Element;
11
+ export {};
12
+ //# sourceMappingURL=IconButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/buttons/IconButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE7D,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC/B,KAAK,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAEnC,MAAM,WAAW,eACf,SAAQ,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,WAAW,CAAC;IAClE,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA0BD,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,IAAW,EACX,OAAmB,EACnB,MAAc,EACd,QAAgB,EAChB,GAAG,KAAK,EACT,EAAE,QAAQ,CAAC,eAAe,CAAC,2CA2B3B"}
@@ -0,0 +1,16 @@
1
+ import type { ReactNode } from "react";
2
+ export interface ToggleButton {
3
+ value: string;
4
+ label: string;
5
+ icon?: ReactNode;
6
+ }
7
+ export interface ToggleButtonGroupProps {
8
+ buttons: ToggleButton[];
9
+ value: string;
10
+ onChange: (value: string) => void;
11
+ size?: "sm" | "md";
12
+ iconOnly?: boolean;
13
+ fullWidth?: boolean;
14
+ }
15
+ export default function ToggleButtonGroup({ buttons, value, onChange, size, iconOnly, fullWidth, }: Readonly<ToggleButtonGroupProps>): import("react/jsx-runtime").JSX.Element;
16
+ //# sourceMappingURL=ToggleButtonGroup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToggleButtonGroup.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/buttons/ToggleButtonGroup.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAiBD,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,OAAO,EACP,KAAK,EACL,QAAQ,EACR,IAAW,EACX,QAAgB,EAChB,SAAiB,GAClB,EAAE,QAAQ,CAAC,sBAAsB,CAAC,2CA6ClC"}
@@ -0,0 +1,9 @@
1
+ import type { SVGProps } from 'react';
2
+ interface SVGRProps {
3
+ size?: string;
4
+ title?: string;
5
+ titleId?: string;
6
+ }
7
+ declare const SvgAirplaneTilt: ({ size, title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => import("react/jsx-runtime").JSX.Element;
8
+ export default SvgAirplaneTilt;
9
+ //# sourceMappingURL=AirplaneTilt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AirplaneTilt.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/icons/AirplaneTilt.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,UAAU,SAAS;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,QAAA,MAAM,eAAe,GAAI,oCAKtB,QAAQ,CAAC,aAAa,CAAC,GAAG,SAAS,4CAqBrC,CAAC;AACF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { SVGProps } from 'react';
2
+ interface SVGRProps {
3
+ size?: string;
4
+ title?: string;
5
+ titleId?: string;
6
+ }
7
+ declare const SvgArrowCounterClockwise: ({ size, title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => import("react/jsx-runtime").JSX.Element;
8
+ export default SvgArrowCounterClockwise;
9
+ //# sourceMappingURL=ArrowCounterClockwise.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArrowCounterClockwise.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/icons/ArrowCounterClockwise.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,UAAU,SAAS;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,QAAA,MAAM,wBAAwB,GAAI,oCAK/B,QAAQ,CAAC,aAAa,CAAC,GAAG,SAAS,4CAqBrC,CAAC;AACF,eAAe,wBAAwB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { SVGProps } from 'react';
2
+ interface SVGRProps {
3
+ size?: string;
4
+ title?: string;
5
+ titleId?: string;
6
+ }
7
+ declare const SvgArrowLeft: ({ size, title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => import("react/jsx-runtime").JSX.Element;
8
+ export default SvgArrowLeft;
9
+ //# sourceMappingURL=ArrowLeft.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArrowLeft.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/icons/ArrowLeft.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,UAAU,SAAS;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,QAAA,MAAM,YAAY,GAAI,oCAKnB,QAAQ,CAAC,aAAa,CAAC,GAAG,SAAS,4CAqBrC,CAAC;AACF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { SVGProps } from 'react';
2
+ interface SVGRProps {
3
+ size?: string;
4
+ title?: string;
5
+ titleId?: string;
6
+ }
7
+ declare const SvgArrowsOut: ({ size, title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => import("react/jsx-runtime").JSX.Element;
8
+ export default SvgArrowsOut;
9
+ //# sourceMappingURL=ArrowsOut.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArrowsOut.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/icons/ArrowsOut.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,UAAU,SAAS;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,QAAA,MAAM,YAAY,GAAI,oCAKnB,QAAQ,CAAC,aAAa,CAAC,GAAG,SAAS,4CAqBrC,CAAC;AACF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { SVGProps } from 'react';
2
+ interface SVGRProps {
3
+ size?: string;
4
+ title?: string;
5
+ titleId?: string;
6
+ }
7
+ declare const SvgChatCircleText: ({ size, title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => import("react/jsx-runtime").JSX.Element;
8
+ export default SvgChatCircleText;
9
+ //# sourceMappingURL=ChatCircleText.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatCircleText.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/icons/ChatCircleText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,UAAU,SAAS;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,QAAA,MAAM,iBAAiB,GAAI,oCAKxB,QAAQ,CAAC,aAAa,CAAC,GAAG,SAAS,4CAqBrC,CAAC;AACF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { SVGProps } from "react";
2
+ interface SVGRProps {
3
+ size?: string;
4
+ title?: string;
5
+ titleId?: string;
6
+ }
7
+ declare const SvgCircle: ({ size, title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => import("react/jsx-runtime").JSX.Element;
8
+ export default SvgCircle;
9
+ //# sourceMappingURL=Circle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Circle.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/icons/Circle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEtC,UAAU,SAAS;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,QAAA,MAAM,SAAS,GAAI,oCAKhB,QAAQ,CAAC,aAAa,CAAC,GAAG,SAAS,4CAqBrC,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { SVGProps } from 'react';
2
+ interface SVGRProps {
3
+ size?: string;
4
+ title?: string;
5
+ titleId?: string;
6
+ }
7
+ declare const SvgCrop: ({ size, title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => import("react/jsx-runtime").JSX.Element;
8
+ export default SvgCrop;
9
+ //# sourceMappingURL=Crop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Crop.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/icons/Crop.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,UAAU,SAAS;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,QAAA,MAAM,OAAO,GAAI,oCAKd,QAAQ,CAAC,aAAa,CAAC,GAAG,SAAS,4CAqBrC,CAAC;AACF,eAAe,OAAO,CAAC"}