@hunterchen/canvas 0.6.0 → 0.8.0

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 (39) hide show
  1. package/README.md +239 -9
  2. package/dist/components/canvas/backgrounds.d.ts +4 -4
  3. package/dist/components/canvas/backgrounds.d.ts.map +1 -1
  4. package/dist/components/canvas/backgrounds.js +7 -7
  5. package/dist/components/canvas/backgrounds.js.map +1 -1
  6. package/dist/components/canvas/canvas.d.ts +5 -1
  7. package/dist/components/canvas/canvas.d.ts.map +1 -1
  8. package/dist/components/canvas/canvas.js +16 -16
  9. package/dist/components/canvas/canvas.js.map +1 -1
  10. package/dist/components/canvas/navbar/index.d.ts +4 -2
  11. package/dist/components/canvas/navbar/index.d.ts.map +1 -1
  12. package/dist/components/canvas/navbar/index.js +56 -11
  13. package/dist/components/canvas/navbar/index.js.map +1 -1
  14. package/dist/components/canvas/navbar/single-button.d.ts +10 -1
  15. package/dist/components/canvas/navbar/single-button.d.ts.map +1 -1
  16. package/dist/components/canvas/navbar/single-button.js +95 -15
  17. package/dist/components/canvas/navbar/single-button.js.map +1 -1
  18. package/dist/index.d.ts +1 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/lib/canvas.d.ts.map +1 -1
  21. package/dist/lib/canvas.js +3 -3
  22. package/dist/lib/canvas.js.map +1 -1
  23. package/dist/lib/constants.d.ts +2 -2
  24. package/dist/lib/constants.d.ts.map +1 -1
  25. package/dist/lib/constants.js +2 -2
  26. package/dist/lib/constants.js.map +1 -1
  27. package/dist/styles.css +1 -1
  28. package/dist/types/index.d.ts +69 -0
  29. package/dist/types/index.d.ts.map +1 -1
  30. package/package.json +4 -1
  31. package/src/components/canvas/backgrounds.tsx +7 -7
  32. package/src/components/canvas/canvas.tsx +30 -15
  33. package/src/components/canvas/navbar/index.tsx +91 -15
  34. package/src/components/canvas/navbar/single-button.tsx +210 -56
  35. package/src/index.ts +5 -0
  36. package/src/lib/canvas.ts +4 -4
  37. package/src/lib/constants.ts +2 -2
  38. package/src/styles.css +15 -13
  39. package/src/types/index.ts +91 -0
package/src/styles.css CHANGED
@@ -4,19 +4,21 @@
4
4
 
5
5
  @layer base {
6
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;
7
+ /* Neutral gray palette (default) */
8
+ --canvas-beige: #f5f5f5;
9
+ --canvas-coral: #d4d4d4;
10
+ --canvas-lilac: #e5e5e5;
11
+ --canvas-salmon: #a3a3a3;
12
+ --canvas-heavy: #171717;
13
+ --canvas-emphasis: #262626;
14
+ --canvas-active: #525252;
15
+ --canvas-tinted: #a3a3a3;
16
+ --canvas-medium: #737373;
17
+ --canvas-light: #a3a3a3;
18
+ --canvas-faint-lilac: #fafafa;
19
+ --canvas-offwhite: #ffffff;
20
+ --canvas-highlight: #f5f5f5;
21
+ --canvas-pushed: #e5e5e5;
20
22
  --canvas-border-light: 0 0% 89%;
21
23
  }
22
24
  }
@@ -97,3 +97,94 @@ export interface ToolbarConfig {
97
97
  /** Format for scale. Default: '1.00x' */
98
98
  scaleFormat?: (scale: number) => string;
99
99
  }
100
+
101
+ /**
102
+ * Preset positions for the navbar
103
+ */
104
+ export type NavbarPosition = 'top' | 'bottom' | 'left' | 'right';
105
+
106
+ /**
107
+ * Display modes for navbar items
108
+ */
109
+ export type NavbarDisplayMode =
110
+ | 'icons' // Icons only, label shows on expand (default)
111
+ | 'labels' // Labels only, no icons
112
+ | 'icons-labels' // Always show both icon and label
113
+ | 'compact'; // Icons only, no expansion - just highlight
114
+
115
+ /**
116
+ * Tooltip configuration for navbar buttons
117
+ */
118
+ export interface NavbarTooltipConfig {
119
+ /** Disable tooltips entirely. Default: false */
120
+ disabled?: boolean;
121
+ /** Additional className for tooltip */
122
+ className?: string;
123
+ /** Inline styles for tooltip */
124
+ style?: React.CSSProperties;
125
+ /** Delay before showing tooltip in ms. Default: 100 */
126
+ delay?: number;
127
+ }
128
+
129
+ /**
130
+ * Button styling configuration for navbar
131
+ */
132
+ export interface NavbarButtonConfig {
133
+ /** Additional className for all buttons */
134
+ className?: string;
135
+ /** Inline styles for all buttons */
136
+ style?: React.CSSProperties;
137
+ /** Active/pushed state className */
138
+ activeClassName?: string;
139
+ /** Active state inline styles */
140
+ activeStyle?: React.CSSProperties;
141
+ /** Hover state className */
142
+ hoverClassName?: string;
143
+ /** Hover state inline styles */
144
+ hoverStyle?: React.CSSProperties;
145
+ /** Icon className */
146
+ iconClassName?: string;
147
+ /** Icon size in pixels. Default: 20 */
148
+ iconSize?: number;
149
+ /** Label className */
150
+ labelClassName?: string;
151
+ /** Label inline styles */
152
+ labelStyle?: React.CSSProperties;
153
+ }
154
+
155
+ /**
156
+ * Configuration options for the canvas navbar
157
+ */
158
+ export interface NavbarConfig {
159
+ // === Visibility ===
160
+ /** Hide the navbar entirely. Default: false */
161
+ hidden?: boolean;
162
+
163
+ // === Display Mode ===
164
+ /** How to display items. Default: 'icons' */
165
+ display?: NavbarDisplayMode;
166
+
167
+ // === Positioning ===
168
+ /** Preset position. Default: 'bottom' */
169
+ position?: NavbarPosition;
170
+
171
+ // === Container Styling ===
172
+ /** Additional className for the navbar container */
173
+ className?: string;
174
+ /** Inline styles for the navbar container */
175
+ style?: React.CSSProperties;
176
+
177
+ // === Button Configuration ===
178
+ /** Button styling options */
179
+ buttonConfig?: NavbarButtonConfig;
180
+
181
+ // === Tooltip Configuration ===
182
+ /** Tooltip options */
183
+ tooltipConfig?: NavbarTooltipConfig;
184
+
185
+ // === Spacing ===
186
+ /** Gap between buttons in pixels. Default: 4 */
187
+ gap?: number;
188
+ /** Padding inside the navbar in pixels. Default: 4 */
189
+ padding?: number;
190
+ }