@hunterchen/canvas 0.1.2 → 0.1.3
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/README.md +184 -198
- package/dist/components/canvas/navbar/index.js +1 -1
- package/dist/components/canvas/navbar/index.js.map +1 -1
- package/dist/components/canvas/navbar/single-button.js +4 -4
- package/dist/components/canvas/navbar/single-button.js.map +1 -1
- package/dist/components/canvas/toolbar.js +1 -1
- package/dist/components/canvas/toolbar.js.map +1 -1
- package/dist/components/canvas/wrapper.js +3 -3
- package/dist/components/canvas/wrapper.js.map +1 -1
- package/dist/styles.css +1 -0
- package/package.json +10 -7
- package/src/components/canvas/navbar/index.tsx +1 -1
- package/src/components/canvas/navbar/single-button.tsx +7 -7
- package/src/components/canvas/toolbar.tsx +2 -2
- package/src/components/canvas/wrapper.tsx +3 -3
- package/src/styles.css +22 -0
- package/dist/lib/copy.d.ts +0 -2
- package/dist/lib/copy.d.ts.map +0 -1
- package/dist/lib/copy.js +0 -20
- package/dist/lib/copy.js.map +0 -1
- package/dist/lib/utils.d.ts +0 -4
- package/dist/lib/utils.d.ts.map +0 -1
- package/dist/lib/utils.js +0 -14
- package/dist/lib/utils.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,242 +1,228 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
This project contains the interactive canvas component cloned from the [Hack Western 12 Website]('https://github.com/hackwestern/hackwestern')
|
|
4
|
-
|
|
5
|
-
### 1. Core Canvas Components
|
|
6
|
-
Copy all files from `hackwestern/src/components/canvas/` to `canvas/src/components/canvas/`:
|
|
7
|
-
- `canvas.tsx` - Main canvas component with pan/zoom functionality
|
|
8
|
-
- `wrapper.tsx` - Animated wrapper for canvas initialization ß
|
|
9
|
-
- `component.tsx` - Canvas component renderer with visibility optimization
|
|
10
|
-
- `draggable.tsx` - Draggable elements (images and generic)
|
|
11
|
-
- `toolbar.tsx` - Coordinate/zoom display toolbar
|
|
12
|
-
- `navbar/index.tsx` - Navigation buttons
|
|
13
|
-
- `navbar/single-button.tsx` - Individual nav button component
|
|
14
|
-
- `offest.tsx` - Offset positioning component
|
|
15
|
-
- `reset.tsx` - Reset view button
|
|
16
|
-
|
|
17
|
-
### 2. Context & State Management
|
|
18
|
-
Copy from `hackwestern/src/contexts/`:
|
|
19
|
-
- `CanvasContext.tsx` - Canvas state context provider
|
|
20
|
-
|
|
21
|
-
### 3. Utility Libraries
|
|
22
|
-
Copy from `hackwestern/src/lib/`:
|
|
23
|
-
- `canvas.ts` - Canvas utility functions (pan, zoom, coordinates)
|
|
24
|
-
- `utils.ts` - General utility functions (cn, etc.)
|
|
25
|
-
- `copy.ts` - Clipboard copy utility
|
|
26
|
-
|
|
27
|
-
### 4. Custom Hooks
|
|
28
|
-
Copy from `hackwestern/src/hooks/`:
|
|
29
|
-
- `useWindowDimensions.ts` - Window size tracking
|
|
30
|
-
- `usePerformanceMode.ts` - Performance optimization
|
|
31
|
-
|
|
32
|
-
### 5. Utils
|
|
33
|
-
Copy from `hackwestern/src/utils/`:
|
|
34
|
-
- `performance.ts` - Performance detection utilities
|
|
35
|
-
|
|
36
|
-
### 6. Constants
|
|
37
|
-
Copy from `hackwestern/src/constants/`:
|
|
38
|
-
- `canvas.ts` - Canvas section coordinates and enums
|
|
39
|
-
|
|
40
|
-
### 7. Assets (Public folder)
|
|
41
|
-
Copy from `hackwestern/public/` to `canvas/public/`:
|
|
42
|
-
- `horse.svg` - Logo
|
|
43
|
-
- `customcursor.svg` - Custom cursor
|
|
44
|
-
- `dragme.svg` - Drag indicator
|
|
45
|
-
- `hackwesterntitle.svg` - Title graphic
|
|
46
|
-
|
|
47
|
-
### 8. Styles
|
|
48
|
-
Copy from `hackwestern/src/`:
|
|
49
|
-
- Create `globals.css` with necessary CSS variables and styles
|
|
50
|
-
|
|
51
|
-
## Installation Steps
|
|
52
|
-
|
|
53
|
-
1. Navigate to the canvas folder:
|
|
54
|
-
```bash
|
|
55
|
-
cd /Users/hunterchen/Documents/GitHub/canvas
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
2. Install dependencies:
|
|
59
|
-
```bash
|
|
60
|
-
npm install
|
|
61
|
-
```
|
|
1
|
+
# @hunterchen/canvas
|
|
62
2
|
|
|
63
|
-
|
|
3
|
+
A React-based canvas library for creating pannable, zoomable, and interactive canvas experiences. Originally developed for the [Hack Western 12 Website](https://github.com/hackwestern/hackwestern).
|
|
64
4
|
|
|
65
|
-
|
|
66
|
-
- Change `~/` to `@/`
|
|
67
|
-
- Update any absolute imports to relative imports as needed
|
|
5
|
+
## Installation
|
|
68
6
|
|
|
69
|
-
|
|
7
|
+
Install the package via npm:
|
|
70
8
|
|
|
71
|
-
Already included in package.json:
|
|
72
|
-
- `next` - Next.js framework
|
|
73
|
-
- `react` & `react-dom` - React library
|
|
74
|
-
- `framer-motion` - Animation library
|
|
75
|
-
- `lucide-react` - Icons
|
|
76
|
-
|
|
77
|
-
Additional dependencies you may need to install:
|
|
78
9
|
```bash
|
|
79
|
-
npm install @
|
|
10
|
+
npm install @hunterchen/canvas
|
|
80
11
|
```
|
|
81
12
|
|
|
82
|
-
|
|
13
|
+
### Required Peer Dependencies
|
|
14
|
+
|
|
15
|
+
This library requires the following peer dependencies (these are **not** installed automatically):
|
|
16
|
+
|
|
83
17
|
```bash
|
|
84
|
-
npm install
|
|
18
|
+
npm install react react-dom framer-motion
|
|
85
19
|
```
|
|
86
20
|
|
|
87
|
-
|
|
21
|
+
### Important: Import Styles
|
|
88
22
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
23
|
+
**You must import the compiled CSS file in your application's entry point.** The library uses pre-compiled Tailwind CSS, so you don't need to install or configure Tailwind yourself.
|
|
24
|
+
|
|
25
|
+
> **Note:** The library uses the `canvas-` prefix for all custom CSS classes and variables to minimize conflicts with your project. Custom colors like `canvas-heavy`, `canvas-medium`, `canvas-offwhite`, fonts like `canvas-figtree`, and utilities like `canvas-backface-hidden` are scoped to avoid naming collisions. You can safely use Tailwind CSS in your own project alongside this library.
|
|
26
|
+
|
|
27
|
+
In your main application file (e.g., `App.tsx`, `_app.tsx`, `main.tsx`, or `index.tsx`):
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
import '@hunterchen/canvas/styles.css';
|
|
93
31
|
```
|
|
94
32
|
|
|
95
|
-
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
theme: {
|
|
104
|
-
extend: {
|
|
105
|
-
colors: {
|
|
106
|
-
beige: "var(--beige)",
|
|
107
|
-
coral: "var(--coral)",
|
|
108
|
-
lilac: "var(--lilac)",
|
|
109
|
-
salmon: "var(--salmon)",
|
|
110
|
-
heavy: "var(--heavy)",
|
|
111
|
-
emphasis: "var(--emphasis)",
|
|
112
|
-
medium: "var(--medium)",
|
|
113
|
-
light: "var(--light)",
|
|
114
|
-
offwhite: "var(--offwhite)",
|
|
115
|
-
highlight: "var(--highlight)",
|
|
116
|
-
},
|
|
117
|
-
fontFamily: {
|
|
118
|
-
'mono': ['JetBrains Mono', 'monospace'],
|
|
119
|
-
'sans': ['Figtree', 'sans-serif'],
|
|
120
|
-
},
|
|
121
|
-
},
|
|
122
|
-
},
|
|
123
|
-
plugins: [],
|
|
33
|
+
For Next.js:
|
|
34
|
+
```typescript
|
|
35
|
+
// pages/_app.tsx
|
|
36
|
+
import '@hunterchen/canvas/styles.css';
|
|
37
|
+
import type { AppProps } from 'next/app';
|
|
38
|
+
|
|
39
|
+
export default function App({ Component, pageProps }: AppProps) {
|
|
40
|
+
return <Component {...pageProps} />;
|
|
124
41
|
}
|
|
125
42
|
```
|
|
126
43
|
|
|
127
|
-
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
@
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
--light: #c3b8cb;
|
|
142
|
-
--offwhite: #fdfcfd;
|
|
143
|
-
--highlight: #f5f2f7;
|
|
144
|
-
}
|
|
44
|
+
For Vite/React:
|
|
45
|
+
```typescript
|
|
46
|
+
// main.tsx or App.tsx
|
|
47
|
+
import '@hunterchen/canvas/styles.css';
|
|
48
|
+
import React from 'react';
|
|
49
|
+
import ReactDOM from 'react-dom/client';
|
|
50
|
+
import App from './App';
|
|
51
|
+
|
|
52
|
+
ReactDOM.createRoot(document.getElementById('root')!).render(
|
|
53
|
+
<React.StrictMode>
|
|
54
|
+
<App />
|
|
55
|
+
</React.StrictMode>
|
|
56
|
+
);
|
|
57
|
+
```
|
|
145
58
|
|
|
146
|
-
|
|
147
|
-
margin: 0;
|
|
148
|
-
padding: 0;
|
|
149
|
-
font-family: 'Figtree', sans-serif;
|
|
150
|
-
}
|
|
59
|
+
## Quick Start
|
|
151
60
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
}
|
|
61
|
+
```tsx
|
|
62
|
+
import { Canvas, CanvasProvider } from '@hunterchen/canvas';
|
|
155
63
|
|
|
156
|
-
|
|
157
|
-
|
|
64
|
+
function App() {
|
|
65
|
+
return (
|
|
66
|
+
<CanvasProvider>
|
|
67
|
+
<Canvas>
|
|
68
|
+
{/* Your canvas content here */}
|
|
69
|
+
</Canvas>
|
|
70
|
+
</CanvasProvider>
|
|
71
|
+
);
|
|
158
72
|
}
|
|
159
73
|
```
|
|
160
74
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
75
|
+
## Usage Examples
|
|
76
|
+
|
|
77
|
+
### Basic Canvas with Draggable Elements
|
|
78
|
+
|
|
79
|
+
```tsx
|
|
80
|
+
import {
|
|
81
|
+
Canvas,
|
|
82
|
+
CanvasProvider,
|
|
83
|
+
Draggable,
|
|
84
|
+
CanvasToolbar,
|
|
85
|
+
CanvasNavbar
|
|
86
|
+
} from '@hunterchen/canvas';
|
|
87
|
+
|
|
88
|
+
function MyCanvas() {
|
|
89
|
+
return (
|
|
90
|
+
<CanvasProvider>
|
|
91
|
+
<Canvas>
|
|
92
|
+
<CanvasToolbar />
|
|
93
|
+
<CanvasNavbar />
|
|
94
|
+
<Draggable initialX={100} initialY={100}>
|
|
95
|
+
<div>Drag me!</div>
|
|
96
|
+
</Draggable>
|
|
97
|
+
</Canvas>
|
|
98
|
+
</CanvasProvider>
|
|
99
|
+
);
|
|
168
100
|
}
|
|
169
101
|
```
|
|
170
102
|
|
|
171
|
-
##
|
|
103
|
+
## Development
|
|
104
|
+
|
|
105
|
+
To build the library from source:
|
|
172
106
|
|
|
173
|
-
1. Start the development server:
|
|
174
107
|
```bash
|
|
175
|
-
|
|
176
|
-
|
|
108
|
+
# Install dependencies
|
|
109
|
+
npm install
|
|
177
110
|
|
|
178
|
-
|
|
111
|
+
# Build the library
|
|
112
|
+
npm run build
|
|
113
|
+
|
|
114
|
+
# Run type checking
|
|
115
|
+
npm run type-check
|
|
116
|
+
```
|
|
179
117
|
|
|
180
118
|
## Key Features
|
|
181
119
|
|
|
182
120
|
- **Pan & Zoom**: Click and drag to pan, pinch/scroll to zoom
|
|
183
|
-
- **Draggable Elements**:
|
|
121
|
+
- **Draggable Elements**: Built-in support for draggable components
|
|
184
122
|
- **Performance Optimized**: Adaptive rendering based on device capabilities
|
|
185
123
|
- **Responsive**: Works on desktop and mobile (desktop recommended)
|
|
124
|
+
- **Pre-compiled CSS**: No Tailwind configuration needed in your project
|
|
125
|
+
- **TypeScript Support**: Full type definitions included
|
|
126
|
+
|
|
127
|
+
## Available Exports
|
|
128
|
+
|
|
129
|
+
### Components
|
|
130
|
+
- `Canvas` - Main canvas component with pan/zoom functionality
|
|
131
|
+
- `CanvasWrapper` - Animated wrapper for canvas initialization
|
|
132
|
+
- `CanvasComponent` - Canvas component renderer with visibility optimization
|
|
133
|
+
- `Draggable`, `DraggableImage` - Draggable elements
|
|
134
|
+
- `CanvasToolbar` - Coordinate/zoom display toolbar
|
|
135
|
+
- `CanvasNavbar` - Navigation buttons
|
|
136
|
+
|
|
137
|
+
### Contexts
|
|
138
|
+
- `CanvasProvider` - Canvas state context provider
|
|
139
|
+
- `useCanvasContext` - Hook to access canvas context
|
|
140
|
+
- `PerformanceProvider` - Performance optimization context
|
|
141
|
+
- `usePerformanceMode`, `usePerformance` - Performance-related hooks
|
|
142
|
+
|
|
143
|
+
### Hooks
|
|
144
|
+
- `useWindowDimensions` - Window size tracking
|
|
145
|
+
- `usePerformanceModeLegacy` - Legacy performance optimization
|
|
146
|
+
|
|
147
|
+
### Utilities
|
|
148
|
+
- Canvas utility functions (pan, zoom, coordinates)
|
|
149
|
+
- Performance detection utilities
|
|
150
|
+
- Constants and types
|
|
151
|
+
|
|
152
|
+
## API Reference
|
|
153
|
+
|
|
154
|
+
### Canvas Props
|
|
155
|
+
|
|
156
|
+
The `Canvas` component accepts standard React props and renders an interactive canvas with pan/zoom capabilities.
|
|
157
|
+
|
|
158
|
+
### Draggable Props
|
|
159
|
+
|
|
160
|
+
```tsx
|
|
161
|
+
interface DraggableProps {
|
|
162
|
+
initialX?: number;
|
|
163
|
+
initialY?: number;
|
|
164
|
+
children: React.ReactNode;
|
|
165
|
+
}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### CanvasContext
|
|
169
|
+
|
|
170
|
+
Access canvas state using `useCanvasContext()`:
|
|
171
|
+
```tsx
|
|
172
|
+
const { x, y, scale } = useCanvasContext();
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## Library Structure
|
|
176
|
+
|
|
177
|
+
```
|
|
178
|
+
@hunterchen/canvas/
|
|
179
|
+
├── dist/
|
|
180
|
+
│ ├── styles.css # Pre-compiled Tailwind CSS (import this!)
|
|
181
|
+
│ ├── index.js # Main entry point
|
|
182
|
+
│ ├── index.d.ts # TypeScript definitions
|
|
183
|
+
│ ├── components/ # Canvas components
|
|
184
|
+
│ ├── contexts/ # React contexts
|
|
185
|
+
│ ├── hooks/ # Custom hooks
|
|
186
|
+
│ └── lib/ # Utility functions
|
|
187
|
+
└── src/
|
|
188
|
+
├── components/
|
|
189
|
+
├── contexts/
|
|
190
|
+
├── hooks/
|
|
191
|
+
├── lib/
|
|
192
|
+
└── styles.css # Source CSS file
|
|
193
|
+
```
|
|
186
194
|
|
|
187
195
|
## Troubleshooting
|
|
188
196
|
|
|
189
|
-
|
|
197
|
+
### Styles Not Working
|
|
190
198
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
199
|
+
Make sure you've imported the CSS file:
|
|
200
|
+
```typescript
|
|
201
|
+
import '@hunterchen/canvas/styles.css';
|
|
202
|
+
```
|
|
195
203
|
|
|
196
|
-
|
|
204
|
+
### TypeScript Errors
|
|
197
205
|
|
|
206
|
+
Ensure you have the required peer dependencies installed:
|
|
207
|
+
```bash
|
|
208
|
+
npm install react react-dom framer-motion
|
|
198
209
|
```
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
│ │ ├── wrapper.tsx
|
|
210
|
-
│ │ ├── component.tsx
|
|
211
|
-
│ │ ├── draggable.tsx
|
|
212
|
-
│ │ ├── toolbar.tsx
|
|
213
|
-
│ │ └── navbar/
|
|
214
|
-
│ ├── contexts/
|
|
215
|
-
│ │ └── CanvasContext.tsx
|
|
216
|
-
│ ├── hooks/
|
|
217
|
-
│ │ ├── useWindowDimensions.ts
|
|
218
|
-
│ │ ├── usePerformanceMode.ts
|
|
219
|
-
│ │ └── use-toast.ts
|
|
220
|
-
│ ├── lib/
|
|
221
|
-
│ │ ├── canvas.ts
|
|
222
|
-
│ │ ├── utils.ts
|
|
223
|
-
│ │ └── copy.ts
|
|
224
|
-
│ ├── constants/
|
|
225
|
-
│ │ └── canvas.ts
|
|
226
|
-
│ ├── pages/
|
|
227
|
-
│ │ ├── _app.tsx
|
|
228
|
-
│ │ └── index.tsx
|
|
229
|
-
│ └── styles/
|
|
230
|
-
│ └── globals.css
|
|
231
|
-
├── package.json
|
|
232
|
-
├── tsconfig.json
|
|
233
|
-
├── next.config.js
|
|
234
|
-
└── tailwind.config.js
|
|
210
|
+
|
|
211
|
+
### Missing Types
|
|
212
|
+
|
|
213
|
+
The library includes full TypeScript definitions. If you're having issues, make sure your `tsconfig.json` includes:
|
|
214
|
+
```json
|
|
215
|
+
{
|
|
216
|
+
"compilerOptions": {
|
|
217
|
+
"moduleResolution": "node"
|
|
218
|
+
}
|
|
219
|
+
}
|
|
235
220
|
```
|
|
236
221
|
|
|
237
|
-
##
|
|
222
|
+
## License
|
|
223
|
+
|
|
224
|
+
MIT
|
|
225
|
+
|
|
226
|
+
## Contributing
|
|
238
227
|
|
|
239
|
-
|
|
240
|
-
- Performance mode automatically adjusts based on device capabilities
|
|
241
|
-
- All coordinates and configurations are in `constants/canvas.ts`
|
|
242
|
-
- The canvas size is 6000x4000px with configurable sections
|
|
228
|
+
This library was extracted from the [Hack Western 12 Website](https://github.com/hackwestern/hackwestern). Contributions are welcome!
|
|
@@ -101,6 +101,6 @@ export default function Navbar({ panToOffset, onReset, coordinates, sections, ho
|
|
|
101
101
|
display: "flex",
|
|
102
102
|
justifyContent: "center",
|
|
103
103
|
alignItems: "center",
|
|
104
|
-
}, children: _jsx("div", { className: "px-4 md:px-8", children: _jsx(motion.div, { className: "flex select-none items-center justify-center gap-1 rounded-[10px] border-[1px] border-border bg-offwhite p-1 shadow-[0_6px_12px_rgba(0,0,0,0.10)]", children: _jsxs("div", { className: "flex items-center gap-1", children: [_jsx(SingleButton, { label: "Home", icon: "Home", onClick: () => handlePan(CanvasSection.Home), isPushed: expandedButton === CanvasSection.Home, onDebouncedClick: handleDebouncedClick }), _jsx(SingleButton, { label: "About", icon: "Info", onClick: () => handlePan(CanvasSection.About), isPushed: expandedButton === CanvasSection.About, onDebouncedClick: handleDebouncedClick }), _jsx(SingleButton, { label: "Projects", icon: "LayoutDashboard", onClick: () => handlePan(CanvasSection.Projects), isPushed: expandedButton === CanvasSection.Projects, onDebouncedClick: handleDebouncedClick }), _jsx(SingleButton, { label: "Sponsors", icon: "Handshake", onClick: () => handlePan(CanvasSection.Sponsors), isPushed: expandedButton === CanvasSection.Sponsors, onDebouncedClick: handleDebouncedClick }), _jsx(SingleButton, { label: "FAQ", icon: "HelpCircle", onClick: () => handlePan(CanvasSection.FAQ), isPushed: expandedButton === CanvasSection.FAQ, onDebouncedClick: handleDebouncedClick }), _jsx(SingleButton, { label: "Team", icon: "Users", onClick: () => handlePan(CanvasSection.Team), isPushed: expandedButton === CanvasSection.Team, onDebouncedClick: handleDebouncedClick })] }) }) }) }));
|
|
104
|
+
}, children: _jsx("div", { className: "px-4 md:px-8", children: _jsx(motion.div, { className: "flex select-none items-center justify-center gap-1 rounded-[10px] border-[1px] border-border bg-canvas-offwhite p-1 shadow-[0_6px_12px_rgba(0,0,0,0.10)]", children: _jsxs("div", { className: "flex items-center gap-1", children: [_jsx(SingleButton, { label: "Home", icon: "Home", onClick: () => handlePan(CanvasSection.Home), isPushed: expandedButton === CanvasSection.Home, onDebouncedClick: handleDebouncedClick }), _jsx(SingleButton, { label: "About", icon: "Info", onClick: () => handlePan(CanvasSection.About), isPushed: expandedButton === CanvasSection.About, onDebouncedClick: handleDebouncedClick }), _jsx(SingleButton, { label: "Projects", icon: "LayoutDashboard", onClick: () => handlePan(CanvasSection.Projects), isPushed: expandedButton === CanvasSection.Projects, onDebouncedClick: handleDebouncedClick }), _jsx(SingleButton, { label: "Sponsors", icon: "Handshake", onClick: () => handlePan(CanvasSection.Sponsors), isPushed: expandedButton === CanvasSection.Sponsors, onDebouncedClick: handleDebouncedClick }), _jsx(SingleButton, { label: "FAQ", icon: "HelpCircle", onClick: () => handlePan(CanvasSection.FAQ), isPushed: expandedButton === CanvasSection.FAQ, onDebouncedClick: handleDebouncedClick }), _jsx(SingleButton, { label: "Team", icon: "Users", onClick: () => handlePan(CanvasSection.Team), isPushed: expandedButton === CanvasSection.Team, onDebouncedClick: handleDebouncedClick })] }) }) }) }));
|
|
105
105
|
}
|
|
106
106
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/canvas/navbar/index.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/canvas/navbar/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -56,16 +56,16 @@ export default function SingleButton({ label, icon, customIcon, onClick, isPushe
|
|
|
56
56
|
}
|
|
57
57
|
};
|
|
58
58
|
const displayLabel = copiedEmail ? "Email copied!" : label;
|
|
59
|
-
return (_jsx(motion.button, { "aria-label": label, className: `relative flex items-center rounded-md p-2 text-medium transition-colors duration-200 ${isPushed ? "bg-[#EEE2FB]" : isHovered ? "bg-highlight" : ""}`, onClick: handleClick, onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), whileTap: { scale: 0.95 }, transition: {
|
|
59
|
+
return (_jsx(motion.button, { "aria-label": label, className: `relative flex items-center rounded-md p-2 text-canvas-medium transition-colors duration-200 ${isPushed ? "bg-[#EEE2FB]" : isHovered ? "bg-canvas-highlight" : ""}`, onClick: handleClick, onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), whileTap: { scale: 0.95 }, transition: {
|
|
60
60
|
type: "spring",
|
|
61
61
|
stiffness: 400,
|
|
62
62
|
damping: 25,
|
|
63
|
-
}, children: isPushed ? (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("div", { children: Icon ? (_jsx(Icon, { className: `h-5 w-5 flex-shrink-0 ${isPushed ? "text-emphasis" : "text-medium"}` })) : CustomIcon ? (_jsx(CustomIcon, { className: `h-5 w-5 flex-shrink-0 ${isPushed ? "text-white" : "text-medium"}` })) : null }), _jsx(motion.span, { initial: { opacity: 0, width: 0 }, animate: { opacity: 1, width: "auto" }, exit: { opacity: 0, width: 0 }, transition: {
|
|
63
|
+
}, children: isPushed ? (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("div", { children: Icon ? (_jsx(Icon, { className: `h-5 w-5 flex-shrink-0 ${isPushed ? "text-canvas-emphasis" : "text-canvas-medium"}` })) : CustomIcon ? (_jsx(CustomIcon, { className: `h-5 w-5 flex-shrink-0 ${isPushed ? "text-white" : "text-canvas-medium"}` })) : null }), _jsx(motion.span, { initial: { opacity: 0, width: 0 }, animate: { opacity: 1, width: "auto" }, exit: { opacity: 0, width: 0 }, transition: {
|
|
64
64
|
duration: 0.1,
|
|
65
65
|
ease: "easeInOut",
|
|
66
|
-
}, className: "overflow-hidden whitespace-nowrap font-figtree text-sm font-medium text-emphasis", children: displayLabel })] })) : (_jsxs("div", { children: [Icon ? (_jsx(Icon, { className: `h-5 w-5 flex-shrink-0 ${isPushed ? "text-white" : "text-medium"}` })) : CustomIcon ? (_jsx(CustomIcon, { className: `h-5 w-5 flex-shrink-0 ${isPushed ? "text-white" : "text-medium"}` })) : null, _jsx(AnimatePresence, { children: showTag && !isPushed && (_jsx(motion.div, { initial: { opacity: 0, y: 5, scale: 0.9, x: "-50%" }, animate: { opacity: 1, y: 0, scale: 1, x: "-50%" }, exit: { opacity: 0, y: 5, scale: 0.9, x: "-50%" }, transition: {
|
|
66
|
+
}, className: "overflow-hidden whitespace-nowrap font-canvas-figtree text-sm font-medium text-canvas-emphasis", children: displayLabel })] })) : (_jsxs("div", { children: [Icon ? (_jsx(Icon, { className: `h-5 w-5 flex-shrink-0 ${isPushed ? "text-white" : "text-canvas-medium"}` })) : CustomIcon ? (_jsx(CustomIcon, { className: `h-5 w-5 flex-shrink-0 ${isPushed ? "text-white" : "text-canvas-medium"}` })) : null, _jsx(AnimatePresence, { children: showTag && !isPushed && (_jsx(motion.div, { initial: { opacity: 0, y: 5, scale: 0.9, x: "-50%" }, animate: { opacity: 1, y: 0, scale: 1, x: "-50%" }, exit: { opacity: 0, y: 5, scale: 0.9, x: "-50%" }, transition: {
|
|
67
67
|
duration: 0.05,
|
|
68
68
|
ease: "easeOut",
|
|
69
|
-
}, className: "pointer-events-none absolute -top-10 left-1/2 z-50", children: _jsx("div", { className: "rounded-sm bg-gradient-to-t from-black/10 to-transparent px-[1px] pb-[2.5px] pt-[1px]", children: _jsx("div", { className: "whitespace-nowrap rounded-sm bg-offwhite px-2 py-1 font-figtree text-sm text-medium", children: displayLabel }) }) })) })] })) }));
|
|
69
|
+
}, className: "pointer-events-none absolute -top-10 left-1/2 z-50", children: _jsx("div", { className: "rounded-sm bg-gradient-to-t from-black/10 to-transparent px-[1px] pb-[2.5px] pt-[1px]", children: _jsx("div", { className: "whitespace-nowrap rounded-sm bg-canvas-offwhite px-2 py-1 font-canvas-figtree text-sm text-canvas-medium", children: displayLabel }) }) })) })] })) }));
|
|
70
70
|
}
|
|
71
71
|
//# sourceMappingURL=single-button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"single-button.js","sourceRoot":"","sources":["../../../../src/components/canvas/navbar/single-button.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,KAAK,WAAW,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAexD,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,KAAK,EACL,IAAI,EACJ,UAAU,EACV,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,YAAY,EACZ,gBAAgB,GACE;IAClB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAE,WAAW,CAAC,IAAI,CAA4B,CAAC,CAAC,CAAC,IAAI,CAAC;IACzE,MAAM,UAAU,GAAG,UAAU,CAAC;IAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC;IAErB,+CAA+C;IAC/C,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IAED,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAyB,CAAC;QAE9B,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC1B,UAAU,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC,EAAE,QAAQ,CAAC,CAAC;QACf,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;QAED,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,KAAK,CAAC,CAAC;QAClB,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,2CAA2C;IAC3C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAChC,cAAc,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QAED,OAAO,EAAE,EAAE,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,IAAI,gBAAgB,EAAE,CAAC;YACrB,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,YAAY,EAAE,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC;IAE3D,OAAO,CACL,KAAC,MAAM,CAAC,MAAM,kBACA,KAAK,EACjB,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"single-button.js","sourceRoot":"","sources":["../../../../src/components/canvas/navbar/single-button.tsx"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ const Toolbar = ({ homeCoordinates = { x: 0, y: 0 } }) => {
|
|
|
22
22
|
? 0
|
|
23
23
|
: 1);
|
|
24
24
|
const handlePointerDown = (e) => e.stopPropagation();
|
|
25
|
-
return (_jsx(motion.div, { className: "absolute left-4 top-6 z-[1000] cursor-default select-none rounded-[10px] border border-border bg-offwhite p-2 font-mono text-xs text-heavy shadow-[0_6px_12px_rgba(0,0,0,0.10)] sm:top-4 md:text-sm", onPointerDown: handlePointerDown, "data-toolbar-button": true, style: { opacity }, children: hasMounted ? (_jsxs(_Fragment, { children: ["(", _jsx(motion.span, { children: displayX }), ",", " ", _jsx(motion.span, { children: displayY }), ")", _jsx("span", { className: "text-light", children: " |" }), " ", _jsx(motion.span, { children: displayScale }), "x"] })) : (_jsx("span", { style: { opacity: 0 }, children: "(0, 0) | 1.00x" })) }));
|
|
25
|
+
return (_jsx(motion.div, { className: "absolute left-4 top-6 z-[1000] cursor-default select-none rounded-[10px] border border-border bg-canvas-offwhite p-2 font-mono text-xs text-canvas-heavy shadow-[0_6px_12px_rgba(0,0,0,0.10)] sm:top-4 md:text-sm", onPointerDown: handlePointerDown, "data-toolbar-button": true, style: { opacity }, children: hasMounted ? (_jsxs(_Fragment, { children: ["(", _jsx(motion.span, { children: displayX }), ",", " ", _jsx(motion.span, { children: displayY }), ")", _jsx("span", { className: "text-canvas-light", children: " |" }), " ", _jsx(motion.span, { children: displayScale }), "x"] })) : (_jsx("span", { style: { opacity: 0 }, children: "(0, 0) | 1.00x" })) }));
|
|
26
26
|
};
|
|
27
27
|
export default Toolbar;
|
|
28
28
|
//# sourceMappingURL=toolbar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolbar.js","sourceRoot":"","sources":["../../../src/components/canvas/toolbar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAc,YAAY,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EACL,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAM7B,MAAM,OAAO,GAAG,CAAC,EAAE,eAAe,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAgB,EAAE,EAAE;IACrE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAC3C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,SAAS,CAAC,GAAG,EAAE;QACb,aAAa,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,uBAAuB;IACvB,MAAM,KAAK,GAAG,YAAY,CACxB,CAAC,CAAC,EAAE,KAAK,CAAC,EACV,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAE,EAAa,GAAI,EAAa,CAAC,GAAG,eAAe,CAAC,CAAC,CACrE,CAAC;IACF,MAAM,KAAK,GAAG,YAAY,CACxB,CAAC,CAAC,EAAE,KAAK,CAAC,EACV,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAE,EAAa,GAAI,EAAa,CAAC,GAAG,eAAe,CAAC,CAAC,CACrE,CAAC;IAEF,yBAAyB;IACzB,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtE,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9D,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CACnE,IAAI,CAAC,GAAG,CAAC,EAAY,CAAC,GAAG,uBAAuB;QAC9C,IAAI,CAAC,GAAG,CAAC,EAAY,CAAC,GAAG,uBAAuB;QAChD,IAAI,CAAC,GAAG,CAAE,EAAa,GAAG,CAAC,CAAC,GAAG,yBAAyB;QACxD,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,CAAC,CACN,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,CAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IAEzE,OAAO,CACL,KAAC,MAAM,CAAC,GAAG,IACT,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"toolbar.js","sourceRoot":"","sources":["../../../src/components/canvas/toolbar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -9,8 +9,8 @@ export { GROW_TRANSITION as growTransition } from "../../lib/constants";
|
|
|
9
9
|
* Default intro content (Hack Western branding)
|
|
10
10
|
* Positioned in the upper third of the screen
|
|
11
11
|
*/
|
|
12
|
-
const DefaultIntroContent = () => (_jsxs("div", { className: "absolute left-1/2 top-24 flex -translate-x-1/2 flex-col items-center text-center", children: [_jsx(Image, { src: "/horse.svg", alt: "Hack Western Logo", width: 64, height: 64, className: "mb-4" }), _jsx("div", { className: "font-jetbrains-mono font-semibold text-[#543C5AB2]", children: "HACK WESTERN 12" })] }));
|
|
13
|
-
export const CanvasWrapper = ({ children, introProgress, onIntroGrowComplete, skipIntro = false, introContent, loadingText = "LOADING CANVAS", introBackgroundGradient = "linear-gradient(to top, #FEB6AF 0%, var(--salmon) 15%, var(--beige) 50%)", canvasBoxGradient = "radial-gradient(130.38% 95% at 50.03% 97.25%, #EFB8A0 0%, #EAD2DF 48.09%, #EFE3E1 100%)", growTransition = GROW_TRANSITION, blurTransition = BLUR_TRANSITION, }) => {
|
|
12
|
+
const DefaultIntroContent = () => (_jsxs("div", { className: "absolute left-1/2 top-24 flex -translate-x-1/2 flex-col items-center text-center", children: [_jsx(Image, { src: "/horse.svg", alt: "Hack Western Logo", width: 64, height: 64, className: "mb-4" }), _jsx("div", { className: "font-canvas-jetbrains-mono font-semibold text-[#543C5AB2]", children: "HACK WESTERN 12" })] }));
|
|
13
|
+
export const CanvasWrapper = ({ children, introProgress, onIntroGrowComplete, skipIntro = false, introContent, loadingText = "LOADING CANVAS", introBackgroundGradient = "linear-gradient(to top, #FEB6AF 0%, var(--canvas-salmon) 15%, var(--canvas-beige) 50%)", canvasBoxGradient = "radial-gradient(130.38% 95% at 50.03% 97.25%, #EFB8A0 0%, #EAD2DF 48.09%, #EFE3E1 100%)", growTransition = GROW_TRANSITION, blurTransition = BLUR_TRANSITION, }) => {
|
|
14
14
|
const [dimensions, setDimensions] = useState(null);
|
|
15
15
|
const [dots, setDots] = useState("..");
|
|
16
16
|
const [stage1NotFinished, setStage1NotFinished] = useState(true);
|
|
@@ -102,6 +102,6 @@ export const CanvasWrapper = ({ children, introProgress, onIntroGrowComplete, sk
|
|
|
102
102
|
setStage1NotFinished(false);
|
|
103
103
|
onIntroGrowComplete?.();
|
|
104
104
|
}
|
|
105
|
-
}, className: "absolute left-1/2 top-1/2 z-10 origin-center -translate-x-1/2 -translate-y-1/2 overflow-hidden rounded-lg shadow-[0_20px_40px_rgba(103,86,86,0.15)]", children: _jsx("div", { className: "h-full w-full", children: children }) })] })), stage1NotFinished && loadingText && (_jsxs("div", { className: "absolute bottom-24 left-1/2 -translate-x-1/2 text-center font-jetbrains-mono font-semibold text-[#543C5AB2]", children: [loadingText, dots] }))] }));
|
|
105
|
+
}, className: "absolute left-1/2 top-1/2 z-10 origin-center -translate-x-1/2 -translate-y-1/2 overflow-hidden rounded-lg shadow-[0_20px_40px_rgba(103,86,86,0.15)]", children: _jsx("div", { className: "h-full w-full", children: children }) })] })), stage1NotFinished && loadingText && (_jsxs("div", { className: "absolute bottom-24 left-1/2 -translate-x-1/2 text-center font-canvas-jetbrains-mono font-semibold text-[#543C5AB2]", children: [loadingText, dots] }))] }));
|
|
106
106
|
};
|
|
107
107
|
//# sourceMappingURL=wrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../../src/components/canvas/wrapper.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAqD,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAkB,MAAM,OAAO,CAAC;AACpE,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAE7B,uCAAuC;AACvC,OAAO,EAAE,eAAe,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AA0BxE;;;GAGG;AACH,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,CAChC,eAAK,SAAS,EAAC,kFAAkF,aAC/F,KAAC,KAAK,IACJ,GAAG,EAAC,YAAY,EAChB,GAAG,EAAC,mBAAmB,EACvB,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,SAAS,EAAC,MAAM,GAChB,EACF,cAAK,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../../src/components/canvas/wrapper.tsx"],"names":[],"mappings":"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"}
|
package/dist/styles.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--canvas-beige:#f7f1e5;--canvas-coral:#ffb5a7;--canvas-lilac:#d9c8e6;--canvas-salmon:#ffa585;--canvas-heavy:#3c204c;--canvas-emphasis:#513b7a;--canvas-active:#8f57ad;--canvas-tinted:#c9a7db;--canvas-medium:#776780;--canvas-light:#c3b8cb;--canvas-faint-lilac:#f5f2f7;--canvas-offwhite:#fdfcfd;--canvas-highlight:#f5f2f7;--canvas-border-light:0 0% 89%}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.-top-10{top:-2.5rem}.bottom-12{bottom:3rem}.bottom-24{bottom:6rem}.bottom-4{bottom:1rem}.left-1\/2{left:50%}.left-4{left:1rem}.top-1\/2{top:50%}.top-24{top:6rem}.top-6{top:1.5rem}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[1000\]{z-index:1000}.m-auto{margin:auto}.mb-4{margin-bottom:1rem}.block{display:block}.flex{display:flex}.hidden{display:none}.h-5{height:1.25rem}.h-auto{height:auto}.h-full{height:100%}.w-5{width:1.25rem}.w-full{width:100%}.flex-shrink-0{flex-shrink:0}.grow{flex-grow:1}.origin-center{transform-origin:center}.origin-top-left{transform-origin:top left}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-\[url\(\'\/customcursor\.svg\'\)\2c auto\]{cursor:url(/customcursor.svg),auto}.cursor-default{cursor:default}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-\[10px\]{border-radius:10px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.border,.border-\[1px\]{border-width:1px}.border-border{border-color:hsl(var(--border))}.bg-\[\#EEE2FB\]{--tw-bg-opacity:1;background-color:rgb(238 226 251/var(--tw-bg-opacity,1))}.bg-canvas-highlight{background-color:var(--canvas-highlight)}.bg-canvas-offwhite{background-color:var(--canvas-offwhite)}.bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.bg-\[radial-gradient\(\#776780_1\.5px\2c transparent_1px\)\]{background-image:radial-gradient(#776780 1.5px,transparent 0)}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.bg-none{background-image:none}.from-black\/10{--tw-gradient-from:rgba(0,0,0,.1) var(--tw-gradient-from-position);--tw-gradient-to:transparent var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-\[1px\]{padding-left:1px;padding-right:1px}.py-1{padding-top:.25rem;padding-bottom:.25rem}.pb-\[2\.5px\]{padding-bottom:2.5px}.pt-\[1px\]{padding-top:1px}.text-center{text-align:center}.font-canvas-figtree{font-family:var(--font-figtree)}.font-canvas-jetbrains-mono{font-family:var(--font-jetbrainsmono)}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-\[\#543C5AB2\]{color:#543c5ab2}.text-canvas-emphasis{color:var(--canvas-emphasis)}.text-canvas-heavy{color:var(--canvas-heavy)}.text-canvas-light{color:var(--canvas-light)}.text-canvas-medium{color:var(--canvas-medium)}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.opacity-100{opacity:1}.opacity-35{opacity:.35}.opacity-60{opacity:.6}.shadow-\[0_20px_40px_rgba\(103\2c 86\2c 86\2c 0\.15\)\]{--tw-shadow:0 20px 40px hsla(0,9%,37%,.15);--tw-shadow-colored:0 20px 40px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_6px_12px_rgba\(0\2c 0\2c 0\2c 0\.10\)\]{--tw-shadow:0 6px 12px rgba(0,0,0,.1);--tw-shadow-colored:0 6px 12px var(--tw-shadow-color)}.shadow-\[0_6px_12px_rgba\(0\2c 0\2c 0\2c 0\.10\)\],.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.blur{--tw-blur:blur(8px)}.blur,.drop-shadow{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.duration-200{animation-duration:.2s}.running{animation-play-state:running}.\[background-size\:22px_22px\]{background-size:22px 22px}.hover\:bg-gray-600:hover{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}@media (min-width:640px){.sm\:top-4{top:1rem}}@media (min-width:768px){.md\:bottom-4{bottom:1rem}.md\:inline{display:inline}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hunterchen/canvas",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "A React-based canvas library for creating pannable, zoomable, and interactive canvas experiences.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"types": "./dist/index.d.ts",
|
|
16
16
|
"default": "./dist/index.js"
|
|
17
17
|
},
|
|
18
|
+
"./styles.css": "./dist/styles.css",
|
|
18
19
|
"./components": {
|
|
19
20
|
"types": "./dist/components/index.d.ts",
|
|
20
21
|
"default": "./dist/components/index.js"
|
|
@@ -33,10 +34,11 @@
|
|
|
33
34
|
}
|
|
34
35
|
},
|
|
35
36
|
"scripts": {
|
|
36
|
-
"build": "
|
|
37
|
+
"build": "npm run clean && npm run build:css && npm run build:ts",
|
|
38
|
+
"build:css": "tailwindcss -i ./src/styles.css -o ./dist/styles.css --minify",
|
|
39
|
+
"build:ts": "tsc",
|
|
37
40
|
"type-check": "tsc --noEmit",
|
|
38
|
-
"clean": "rm -rf dist"
|
|
39
|
-
"publish": "npm run build && npm run type-check && npm publish"
|
|
41
|
+
"clean": "rm -rf dist"
|
|
40
42
|
},
|
|
41
43
|
"peerDependencies": {
|
|
42
44
|
"framer-motion": "^11.0.0 || ^12.0.0",
|
|
@@ -44,14 +46,15 @@
|
|
|
44
46
|
"react-dom": "^18.0.0 || ^19.0.0"
|
|
45
47
|
},
|
|
46
48
|
"dependencies": {
|
|
47
|
-
"lucide-react": "^0.483.0"
|
|
48
|
-
"next": "^16.1.1",
|
|
49
|
-
"tailwindcss": "^3.4.19"
|
|
49
|
+
"lucide-react": "^0.483.0"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@types/node": "^25.0.6",
|
|
53
53
|
"@types/react": "19.0.12",
|
|
54
54
|
"@types/react-dom": "19.0.4",
|
|
55
|
+
"next": "^16.1.1",
|
|
56
|
+
"tailwindcss": "^3.4.19",
|
|
57
|
+
"tailwindcss-animate": "^1.0.7",
|
|
55
58
|
"typescript": "^5.8.2"
|
|
56
59
|
}
|
|
57
60
|
}
|
|
@@ -161,7 +161,7 @@ export default function Navbar({
|
|
|
161
161
|
>
|
|
162
162
|
{/* padding to prevent edge bug */}
|
|
163
163
|
<div className="px-4 md:px-8">
|
|
164
|
-
<motion.div className="flex select-none items-center justify-center gap-1 rounded-[10px] border-[1px] border-border bg-offwhite p-1 shadow-[0_6px_12px_rgba(0,0,0,0.10)]">
|
|
164
|
+
<motion.div className="flex select-none items-center justify-center gap-1 rounded-[10px] border-[1px] border-border bg-canvas-offwhite p-1 shadow-[0_6px_12px_rgba(0,0,0,0.10)]">
|
|
165
165
|
<div className="flex items-center gap-1">
|
|
166
166
|
<SingleButton
|
|
167
167
|
label="Home"
|
|
@@ -90,7 +90,7 @@ export default function SingleButton({
|
|
|
90
90
|
return (
|
|
91
91
|
<motion.button
|
|
92
92
|
aria-label={label}
|
|
93
|
-
className={`relative flex items-center rounded-md p-2 text-medium transition-colors duration-200 ${isPushed ? "bg-[#EEE2FB]" : isHovered ? "bg-highlight" : ""
|
|
93
|
+
className={`relative flex items-center rounded-md p-2 text-canvas-medium transition-colors duration-200 ${isPushed ? "bg-[#EEE2FB]" : isHovered ? "bg-canvas-highlight" : ""
|
|
94
94
|
}`}
|
|
95
95
|
onClick={handleClick}
|
|
96
96
|
onMouseEnter={() => setIsHovered(true)}
|
|
@@ -107,11 +107,11 @@ export default function SingleButton({
|
|
|
107
107
|
<div>
|
|
108
108
|
{Icon ? (
|
|
109
109
|
<Icon
|
|
110
|
-
className={`h-5 w-5 flex-shrink-0 ${isPushed ? "text-emphasis" : "text-medium"}`}
|
|
110
|
+
className={`h-5 w-5 flex-shrink-0 ${isPushed ? "text-canvas-emphasis" : "text-canvas-medium"}`}
|
|
111
111
|
/>
|
|
112
112
|
) : CustomIcon ? (
|
|
113
113
|
<CustomIcon
|
|
114
|
-
className={`h-5 w-5 flex-shrink-0 ${isPushed ? "text-white" : "text-medium"
|
|
114
|
+
className={`h-5 w-5 flex-shrink-0 ${isPushed ? "text-white" : "text-canvas-medium"
|
|
115
115
|
}`}
|
|
116
116
|
/>
|
|
117
117
|
) : null}
|
|
@@ -124,7 +124,7 @@ export default function SingleButton({
|
|
|
124
124
|
duration: 0.1,
|
|
125
125
|
ease: "easeInOut",
|
|
126
126
|
}}
|
|
127
|
-
className="overflow-hidden whitespace-nowrap font-figtree text-sm font-medium text-emphasis"
|
|
127
|
+
className="overflow-hidden whitespace-nowrap font-canvas-figtree text-sm font-medium text-canvas-emphasis"
|
|
128
128
|
>
|
|
129
129
|
{displayLabel}
|
|
130
130
|
</motion.span>
|
|
@@ -133,12 +133,12 @@ export default function SingleButton({
|
|
|
133
133
|
<div>
|
|
134
134
|
{Icon ? (
|
|
135
135
|
<Icon
|
|
136
|
-
className={`h-5 w-5 flex-shrink-0 ${isPushed ? "text-white" : "text-medium"
|
|
136
|
+
className={`h-5 w-5 flex-shrink-0 ${isPushed ? "text-white" : "text-canvas-medium"
|
|
137
137
|
}`}
|
|
138
138
|
/>
|
|
139
139
|
) : CustomIcon ? (
|
|
140
140
|
<CustomIcon
|
|
141
|
-
className={`h-5 w-5 flex-shrink-0 ${isPushed ? "text-white" : "text-medium"
|
|
141
|
+
className={`h-5 w-5 flex-shrink-0 ${isPushed ? "text-white" : "text-canvas-medium"
|
|
142
142
|
}`}
|
|
143
143
|
/>
|
|
144
144
|
) : null}
|
|
@@ -155,7 +155,7 @@ export default function SingleButton({
|
|
|
155
155
|
className="pointer-events-none absolute -top-10 left-1/2 z-50"
|
|
156
156
|
>
|
|
157
157
|
<div className="rounded-sm bg-gradient-to-t from-black/10 to-transparent px-[1px] pb-[2.5px] pt-[1px]">
|
|
158
|
-
<div className="whitespace-nowrap rounded-sm bg-offwhite px-2 py-1 font-figtree text-sm text-medium">
|
|
158
|
+
<div className="whitespace-nowrap rounded-sm bg-canvas-offwhite px-2 py-1 font-canvas-figtree text-sm text-canvas-medium">
|
|
159
159
|
{displayLabel}
|
|
160
160
|
</div>
|
|
161
161
|
</div>
|
|
@@ -45,7 +45,7 @@ const Toolbar = ({ homeCoordinates = { x: 0, y: 0 } }: ToolbarProps) => {
|
|
|
45
45
|
|
|
46
46
|
return (
|
|
47
47
|
<motion.div
|
|
48
|
-
className="absolute left-4 top-6 z-[1000] cursor-default select-none rounded-[10px] border border-border bg-offwhite p-2 font-mono text-xs text-heavy shadow-[0_6px_12px_rgba(0,0,0,0.10)] sm:top-4 md:text-sm"
|
|
48
|
+
className="absolute left-4 top-6 z-[1000] cursor-default select-none rounded-[10px] border border-border bg-canvas-offwhite p-2 font-mono text-xs text-canvas-heavy shadow-[0_6px_12px_rgba(0,0,0,0.10)] sm:top-4 md:text-sm"
|
|
49
49
|
onPointerDown={handlePointerDown}
|
|
50
50
|
data-toolbar-button
|
|
51
51
|
style={{ opacity }}
|
|
@@ -54,7 +54,7 @@ const Toolbar = ({ homeCoordinates = { x: 0, y: 0 } }: ToolbarProps) => {
|
|
|
54
54
|
<>
|
|
55
55
|
(<motion.span>{displayX}</motion.span>,{" "}
|
|
56
56
|
<motion.span>{displayY}</motion.span>)
|
|
57
|
-
<span className="text-light"> |</span>{" "}
|
|
57
|
+
<span className="text-canvas-light"> |</span>{" "}
|
|
58
58
|
<motion.span>{displayScale}</motion.span>x
|
|
59
59
|
</>
|
|
60
60
|
) : (
|
|
@@ -48,7 +48,7 @@ const DefaultIntroContent = () => (
|
|
|
48
48
|
height={64}
|
|
49
49
|
className="mb-4"
|
|
50
50
|
/>
|
|
51
|
-
<div className="font-jetbrains-mono font-semibold text-[#543C5AB2]">
|
|
51
|
+
<div className="font-canvas-jetbrains-mono font-semibold text-[#543C5AB2]">
|
|
52
52
|
HACK WESTERN 12
|
|
53
53
|
</div>
|
|
54
54
|
</div>
|
|
@@ -61,7 +61,7 @@ export const CanvasWrapper = ({
|
|
|
61
61
|
skipIntro = false,
|
|
62
62
|
introContent,
|
|
63
63
|
loadingText = "LOADING CANVAS",
|
|
64
|
-
introBackgroundGradient = "linear-gradient(to top, #FEB6AF 0%, var(--salmon) 15%, var(--beige) 50%)",
|
|
64
|
+
introBackgroundGradient = "linear-gradient(to top, #FEB6AF 0%, var(--canvas-salmon) 15%, var(--canvas-beige) 50%)",
|
|
65
65
|
canvasBoxGradient = "radial-gradient(130.38% 95% at 50.03% 97.25%, #EFB8A0 0%, #EAD2DF 48.09%, #EFE3E1 100%)",
|
|
66
66
|
growTransition = GROW_TRANSITION,
|
|
67
67
|
blurTransition = BLUR_TRANSITION,
|
|
@@ -210,7 +210,7 @@ export const CanvasWrapper = ({
|
|
|
210
210
|
</>
|
|
211
211
|
)}
|
|
212
212
|
{stage1NotFinished && loadingText && (
|
|
213
|
-
<div className="absolute bottom-24 left-1/2 -translate-x-1/2 text-center font-jetbrains-mono font-semibold text-[#543C5AB2]">
|
|
213
|
+
<div className="absolute bottom-24 left-1/2 -translate-x-1/2 text-center font-canvas-jetbrains-mono font-semibold text-[#543C5AB2]">
|
|
214
214
|
{loadingText}{dots}
|
|
215
215
|
</div>
|
|
216
216
|
)}
|
package/src/styles.css
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
@tailwind base;
|
|
2
|
+
@tailwind components;
|
|
3
|
+
@tailwind utilities;
|
|
4
|
+
|
|
5
|
+
@layer base {
|
|
6
|
+
:root {
|
|
7
|
+
--canvas-beige: #f7f1e5;
|
|
8
|
+
--canvas-coral: #ffb5a7;
|
|
9
|
+
--canvas-lilac: #d9c8e6;
|
|
10
|
+
--canvas-salmon: #ffa585;
|
|
11
|
+
--canvas-heavy: #3c204c;
|
|
12
|
+
--canvas-emphasis: #513b7a;
|
|
13
|
+
--canvas-active: #8f57ad;
|
|
14
|
+
--canvas-tinted: #c9a7db;
|
|
15
|
+
--canvas-medium: #776780;
|
|
16
|
+
--canvas-light: #c3b8cb;
|
|
17
|
+
--canvas-faint-lilac: #f5f2f7;
|
|
18
|
+
--canvas-offwhite: #fdfcfd;
|
|
19
|
+
--canvas-highlight: #f5f2f7;
|
|
20
|
+
--canvas-border-light: 0 0% 89%;
|
|
21
|
+
}
|
|
22
|
+
}
|
package/dist/lib/copy.d.ts
DELETED
package/dist/lib/copy.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"copy.d.ts","sourceRoot":"","sources":["../../src/lib/copy.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,OAAO,CAiB5D,CAAC"}
|
package/dist/lib/copy.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
export const copyText = async (text) => {
|
|
2
|
-
try {
|
|
3
|
-
if (navigator.clipboard?.writeText && window.isSecureContext) {
|
|
4
|
-
await navigator.clipboard.writeText(text);
|
|
5
|
-
return true;
|
|
6
|
-
}
|
|
7
|
-
// fallback: execCommand
|
|
8
|
-
const ta = document.createElement("textarea");
|
|
9
|
-
ta.value = text;
|
|
10
|
-
document.body.appendChild(ta);
|
|
11
|
-
ta.select();
|
|
12
|
-
const ok = document.execCommand("copy");
|
|
13
|
-
document.body.removeChild(ta);
|
|
14
|
-
return ok;
|
|
15
|
-
}
|
|
16
|
-
catch {
|
|
17
|
-
return false;
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
//# sourceMappingURL=copy.js.map
|
package/dist/lib/copy.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"copy.js","sourceRoot":"","sources":["../../src/lib/copy.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,IAAY,EAAoB,EAAE;IAC/D,IAAI,CAAC;QACH,IAAI,SAAS,CAAC,SAAS,EAAE,SAAS,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YAC7D,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,wBAAwB;QACxB,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC9C,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC9B,EAAE,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACxC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC9B,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC"}
|
package/dist/lib/utils.d.ts
DELETED
package/dist/lib/utils.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,MAAM,CAAC;AAG7C,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,EAC7D,EAAE,EAAE,CAAC,EACL,IAAI,SAAK,GAOU,CAAC,CACrB"}
|
package/dist/lib/utils.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { clsx } from "clsx";
|
|
2
|
-
import { twMerge } from "tailwind-merge";
|
|
3
|
-
export function cn(...inputs) {
|
|
4
|
-
return twMerge(clsx(inputs));
|
|
5
|
-
}
|
|
6
|
-
export function debounce(cb, wait = 20) {
|
|
7
|
-
let h = 0;
|
|
8
|
-
const callable = (...args) => {
|
|
9
|
-
clearTimeout(h);
|
|
10
|
-
h = setTimeout(() => cb(...args), wait);
|
|
11
|
-
};
|
|
12
|
-
return callable;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=utils.js.map
|
package/dist/lib/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,IAAI,EAAE,MAAM,MAAM,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,MAAM,UAAU,EAAE,CAAC,GAAG,MAAoB;IACxC,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,EAAK,EACL,IAAI,GAAG,EAAE;IAET,IAAI,CAAC,GAA4B,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;QACtC,YAAY,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC,CAAC;IACF,OAAO,QAAa,CAAC;AACvB,CAAC"}
|