@jamesodwyer/gds-figma-vite 2.0.9 → 2.0.10

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.
@@ -3,16 +3,56 @@
3
3
  > **IMPORTANT FOR AI AGENTS**: This is the entry point for AI-assisted design-to-code generation.
4
4
  > Read this entire document before generating any code.
5
5
 
6
- ## ⚠️ CRITICAL: Props That Cause Errors
6
+ ---
7
+
8
+ ## 🚫🚫🚫 STOP - READ THIS FIRST 🚫🚫🚫
9
+
10
+ ### BANNED PROPS - WILL CAUSE RUNTIME ERRORS
11
+
12
+ **The following props DO NOT EXIST and MUST NEVER be used:**
13
+
14
+ ```
15
+ ❌ BANNED: marginTop, marginBottom, marginLeft, marginRight
16
+ ❌ BANNED: paddingTop, paddingBottom, paddingLeft, paddingRight
17
+ ❌ BANNED: gap (on GDS components - only use on styled divs)
18
+ ```
19
+
20
+ **These props will cause this error in the console:**
7
21
 
8
- **DO NOT use these props - they cause React DOM warnings:**
22
+ ```
23
+ styled-components: it looks like an unknown prop "marginTop" is being sent through to the DOM
24
+ ```
9
25
 
10
- | DO NOT USE | USE INSTEAD |
11
- |------------|-------------|
12
- | `<InputField.Row marginTop="...">` | `<InputField.Row style={{ marginTop: '8px' }}>` |
13
- | `<Stack marginTop="...">` | `<Stack style={{ marginTop: '8px' }}>` |
26
+ ### CORRECT WAY TO ADD SPACING
14
27
 
15
- Always use inline `style` prop for margins instead of custom margin props.
28
+ Always use the `style` prop with inline styles:
29
+
30
+ ```tsx
31
+ // ✅ CORRECT - Use inline style prop
32
+ <InputField.Row style={{ marginTop: '8px' }}>
33
+ <div style={{ marginTop: '16px', marginBottom: '8px' }}>
34
+
35
+ // ❌ WRONG - These props DO NOT EXIST
36
+ <InputField.Row marginTop="club"> // WILL CAUSE ERROR
37
+ <InputField.Row marginTop="8px"> // WILL CAUSE ERROR
38
+ <Stack marginTop="16px"> // WILL CAUSE ERROR
39
+ ```
40
+
41
+ ### SPACING WITH STYLED-COMPONENTS
42
+
43
+ ```tsx
44
+ import styled from "styled-components";
45
+ import { spacing } from "@jamesodwyer/gds-figma-vite";
46
+
47
+ // ✅ CORRECT - Use spacing tokens in styled-components
48
+ const Container = styled.div`
49
+ margin-top: ${spacing.club}; // 8px
50
+ margin-bottom: ${spacing.auditorium}; // 16px
51
+ padding: ${spacing.arena}; // 32px
52
+ `;
53
+ ```
54
+
55
+ ---
16
56
 
17
57
  ## Package Information
18
58
 
@@ -25,15 +65,18 @@ Always use inline `style` prop for margins instead of custom margin props.
25
65
  All documentation is available in the `@jamesodwyer/gds-figma-vite` npm package under `guidelines/`:
26
66
 
27
67
  **Design Tokens** (in package: `@jamesodwyer/gds-figma-vite/guidelines/design-tokens/`):
68
+
28
69
  - `colors.md` - Color tokens and theme colors
29
70
  - `typography.md` - Text styles and font scales
30
71
  - `spacing.md` - Spacing tokens
31
72
  - `elevation.md` - Shadow/elevation tokens
32
73
 
33
74
  **Component Docs** (in package: `@jamesodwyer/gds-figma-vite/guidelines/components/`):
75
+
34
76
  - Individual `.md` file for each component (e.g., `Button.md`, `Modal.md`, `Card.md`)
35
77
 
36
78
  **Overviews** (in package: `@jamesodwyer/gds-figma-vite/guidelines/`):
79
+
37
80
  - `overview-components.md` - All available components
38
81
  - `overview-icons.md` - Icon system and usage
39
82
 
@@ -44,7 +87,7 @@ All documentation is available in the `@jamesodwyer/gds-figma-vite` npm package
44
87
  Every application using GDS **MUST** wrap components with `GdsProvider`:
45
88
 
46
89
  ```tsx
47
- import { GdsProvider, Button } from '@jamesodwyer/gds-figma-vite';
90
+ import { GdsProvider, Button } from "@jamesodwyer/gds-figma-vite";
48
91
 
49
92
  function App() {
50
93
  return (
@@ -57,19 +100,19 @@ function App() {
57
100
 
58
101
  ### GdsProvider Props
59
102
 
60
- | Prop | Type | Default | Description |
61
- |------|------|---------|-------------|
62
- | theme | 'TM' \| 'LN' | 'TM' | Brand theme to use |
63
- | includeGlobalStyles | boolean | true | Include global CSS styles |
64
- | children | ReactNode | required | Child components |
103
+ | Prop | Type | Default | Description |
104
+ | ------------------- | ------------ | -------- | ------------------------- |
105
+ | theme | 'TM' \| 'LN' | 'TM' | Brand theme to use |
106
+ | includeGlobalStyles | boolean | true | Include global CSS styles |
107
+ | children | ReactNode | required | Child components |
65
108
 
66
109
  ### Alternative Setup (Manual Control)
67
110
 
68
111
  If you need more control over the theme or global styles:
69
112
 
70
113
  ```tsx
71
- import { ThemeProvider, createGlobalStyle } from 'styled-components';
72
- import { TM, getGlobalStyles, Button } from '@jamesodwyer/gds-figma-vite';
114
+ import { ThemeProvider, createGlobalStyle } from "styled-components";
115
+ import { TM, getGlobalStyles, Button } from "@jamesodwyer/gds-figma-vite";
73
116
 
74
117
  const GlobalStyle = createGlobalStyle`
75
118
  ${getGlobalStyles()}
@@ -130,12 +173,12 @@ Many GDS components use the **compound component pattern**. Sub-components are a
130
173
 
131
174
  ### Components with Compound Sub-components
132
175
 
133
- | Component | Sub-components |
134
- |-----------|----------------|
135
- | Modal | `.Header`, `.Title`, `.Content`, `.Description`, `.Image`, `.CloseButton`, `.Actions` |
136
- | Card | `.Title`, `.Body` |
176
+ | Component | Sub-components |
177
+ | ---------- | ------------------------------------------------------------------------------------------------------------------ |
178
+ | Modal | `.Header`, `.Title`, `.Content`, `.Description`, `.Image`, `.CloseButton`, `.Actions` |
179
+ | Card | `.Title`, `.Body` |
137
180
  | InputField | `.Label`, `.Row`, `.Input`, `.Textarea`, `.Select`, `.Checkbox`, `.Radio`, `.StartIcon`, `.EndIcon`, `.Validation` |
138
- | Accordion | `.Item`, `.Toggle`, `.Content` |
181
+ | Accordion | `.Item`, `.Toggle`, `.Content` |
139
182
 
140
183
  ---
141
184
 
@@ -145,47 +188,39 @@ Many GDS components use the **compound component pattern**. Sub-components are a
145
188
 
146
189
  ### Components That DO NOT Exist
147
190
 
148
- | Non-Existent | Use Instead |
149
- |--------------|-------------|
150
- | `ButtonGroup` | Use `Stack` with `gap` prop, or a styled `div` with flexbox |
151
- | `CardContent` | Put content directly inside `Card.Body` |
152
- | `CardHeader` | Use `Card.Title` |
153
- | `CardActions` | Put buttons inside `Card.Body` |
154
- | `ModalDescription` | Use `Modal.Description` (compound component) |
155
- | `ModalHeader` | Use `Modal.Header` (compound component) |
156
- | `ModalBody` | Use `Modal.Content` (compound component) |
157
- | `ModalFooter` | Use `Modal.Actions` (compound component) |
158
- | `FormControl` | Use `InputField` compound component |
159
- | `FormLabel` | Use `InputField.Label` |
160
- | `FormHelperText` | Use `InputField.Validation` |
161
- | `Grid` | Use CSS Grid or styled `div` |
162
- | `Box` | Use styled `div` with spacing tokens |
163
- | `Container` | Use styled `div` with spacing tokens |
164
- | `Typography` | Use `TextStyle` component |
165
- | `Divider` | Use styled `hr` or `div` |
166
- | `IconButton` | Use `CircleButton` or `SquareButton` |
167
- | `Snackbar` | Use `Toast` |
168
- | `Dialog` | Use `Modal` |
169
- | `Drawer` | Use `SidePanel` |
170
- | `AppBar` | Use `Header` |
191
+ | Non-Existent | Use Instead |
192
+ | ------------------ | ------------------------------------------------------------------------ |
193
+ | `ButtonGroup` | Use a styled `div` with flexbox (see Layout Without ButtonGroup section) |
194
+ | `CardContent` | Put content directly inside `Card.Body` |
195
+ | `CardHeader` | Use `Card.Title` |
196
+ | `CardActions` | Put buttons inside `Card.Body` |
197
+ | `ModalDescription` | Use `Modal.Description` (compound component) |
198
+ | `ModalHeader` | Use `Modal.Header` (compound component) |
199
+ | `ModalBody` | Use `Modal.Content` (compound component) |
200
+ | `ModalFooter` | Use `Modal.Actions` (compound component) |
201
+ | `FormControl` | Use `InputField` compound component |
202
+ | `FormLabel` | Use `InputField.Label` |
203
+ | `FormHelperText` | Use `InputField.Validation` |
204
+ | `Grid` | Use CSS Grid or styled `div` |
205
+ | `Box` | Use styled `div` with spacing tokens |
206
+ | `Container` | Use styled `div` with spacing tokens |
207
+ | `Typography` | Use `TextStyle` component |
208
+ | `Divider` | Use styled `hr` or `div` |
209
+ | `IconButton` | Use `CircleButton` or `SquareButton` |
210
+ | `Snackbar` | Use `Toast` |
211
+ | `Dialog` | Use `Modal` |
212
+ | `Drawer` | Use `SidePanel` |
213
+ | `AppBar` | Use `Header` |
171
214
 
172
215
  ### Layout Without ButtonGroup
173
216
 
174
- Use `Stack` for horizontal button layouts:
217
+ **Use a styled div for button layouts** (Stack is not recommended for button groups):
175
218
 
176
219
  ```tsx
177
- import { Stack, Button } from '@jamesodwyer/gds-figma-vite';
178
-
179
- // For horizontal button group
180
- <Stack gap="club" style={{ display: 'flex', flexDirection: 'row' }}>
181
- <Button colorVariant="secondary">Cancel</Button>
182
- <Button colorVariant="primary">Confirm</Button>
183
- </Stack>
184
-
185
- // Or use a styled div
186
220
  import styled from 'styled-components';
187
- import { spacing } from '@jamesodwyer/gds-figma-vite';
221
+ import { spacing, Button } from '@jamesodwyer/gds-figma-vite';
188
222
 
223
+ // ✅ CORRECT - Use styled div with CSS gap
189
224
  const ButtonRow = styled.div`
190
225
  display: flex;
191
226
  gap: ${spacing.club};
@@ -195,6 +230,12 @@ const ButtonRow = styled.div`
195
230
  <Button colorVariant="secondary">Cancel</Button>
196
231
  <Button colorVariant="primary">Confirm</Button>
197
232
  </ButtonRow>
233
+
234
+ // ✅ ALSO CORRECT - Inline styles
235
+ <div style={{ display: 'flex', gap: '8px' }}>
236
+ <Button colorVariant="secondary">Cancel</Button>
237
+ <Button colorVariant="primary">Confirm</Button>
238
+ </div>
198
239
  ```
199
240
 
200
241
  ---
@@ -202,6 +243,7 @@ const ButtonRow = styled.div`
202
243
  ## IMPORTANT: Code Generation Rules
203
244
 
204
245
  ### DO:
246
+
205
247
  - Always wrap with `GdsProvider` or `ThemeProvider`
206
248
  - Use compound component syntax (`Modal.Header`, `Card.Body`, etc.)
207
249
  - Use semantic color tokens from theme (`theme.base.primary`, `theme.status.danger`)
@@ -212,6 +254,8 @@ const ButtonRow = styled.div`
212
254
  - Import components from `@jamesodwyer/gds-figma-vite`
213
255
 
214
256
  ### DO NOT:
257
+
258
+ - **🚫 NEVER use marginTop, marginBottom, paddingTop, etc. as props** - use `style={{ marginTop: '8px' }}`
215
259
  - **Never import sub-components separately** - use dot notation (`Modal.Header` not `ModalHeader`)
216
260
  - **Never use components that don't exist** - check the exports list above
217
261
  - Never hardcode hex color values - always use theme tokens
@@ -224,10 +268,10 @@ const ButtonRow = styled.div`
224
268
 
225
269
  ## Theme Selection
226
270
 
227
- | Theme | Brand | Primary Color | Usage |
228
- |-------|-------|--------------|-------|
229
- | TM | Ticketmaster | Blue (#024ddf) | Default, ticket sales |
230
- | LN | Live Nation | Red (#e21836) | Live Nation properties |
271
+ | Theme | Brand | Primary Color | Usage |
272
+ | ----- | ------------ | -------------- | ---------------------- |
273
+ | TM | Ticketmaster | Blue (#024ddf) | Default, ticket sales |
274
+ | LN | Live Nation | Red (#e21836) | Live Nation properties |
231
275
 
232
276
  ```tsx
233
277
  // Ticketmaster theme (default)
@@ -244,89 +288,97 @@ const ButtonRow = styled.div`
244
288
  > **For detailed component docs**: See `@jamesodwyer/gds-figma-vite/guidelines/components/[ComponentName].md`
245
289
 
246
290
  ### Layout Components
247
- | Component | Purpose |
248
- |-----------|---------|
249
- | `Stack` | Spacing utility for vertical/horizontal layouts |
250
- | `Card` | Content containers with `.Title` and `.Body` |
251
- | `Modal` | Overlay dialogs with `.Header`, `.Title`, `.Content`, `.Description`, `.Actions` |
252
- | `SidePanel` | Slide-in panels for supplementary content |
253
- | `Accordion` | Collapsible content sections with `.Item`, `.Toggle`, `.Content` |
254
- | `Header` | Page header with logo |
255
- | `Footer` | Page footer |
256
- | `BrandLogo` | Ticketmaster brand logo |
257
- | `ShareCard` | Social sharing card (beta) |
291
+
292
+ | Component | Purpose |
293
+ | ----------- | -------------------------------------------------------------------------------- |
294
+ | `Stack` | Spacing utility - ⚠️ Use styled `div` instead to avoid prop warnings |
295
+ | `Card` | Content containers with `.Title` and `.Body` |
296
+ | `Modal` | Overlay dialogs with `.Header`, `.Title`, `.Content`, `.Description`, `.Actions` |
297
+ | `SidePanel` | Slide-in panels for supplementary content |
298
+ | `Accordion` | Collapsible content sections with `.Item`, `.Toggle`, `.Content` |
299
+ | `Header` | Page header with logo |
300
+ | `Footer` | Page footer |
301
+ | `BrandLogo` | Ticketmaster brand logo |
302
+ | `ShareCard` | Social sharing card (beta) |
258
303
 
259
304
  ### Button Components
260
- | Component | Purpose |
261
- |-----------|---------|
262
- | `Button` | Primary action element (colorVariant: primary/secondary/tertiary) |
263
- | `CircleButton` | Circular icon button |
264
- | `SquareButton` | Square icon button |
265
- | `PillButton` | Pill-shaped filter/tag button |
266
- | `PaginationButton` | Load more button with progress |
305
+
306
+ | Component | Purpose |
307
+ | ------------------ | ----------------------------------------------------------------- |
308
+ | `Button` | Primary action element (colorVariant: primary/secondary/tertiary) |
309
+ | `CircleButton` | Circular icon button |
310
+ | `SquareButton` | Square icon button |
311
+ | `PillButton` | Pill-shaped filter/tag button |
312
+ | `PaginationButton` | Load more button with progress |
267
313
 
268
314
  ### Form Components
269
- | Component | Purpose |
270
- |-----------|---------|
271
- | `InputField` | Compound form input with `.Label`, `.Row`, `.Input`, `.Validation` |
272
- | `TextInput` | Single-line text input |
273
- | `TextArea` | Multi-line text input |
274
- | `TextAreaLimited` | Text area with character limit |
275
- | `PasswordInput` | Password input with toggle |
276
- | `Checkbox` | Boolean selection |
277
- | `RadioButton` | Single selection from options |
278
- | `ToggleSwitch` | On/off switch control |
279
- | `SelectInput` | Dropdown selection |
280
- | `PhoneNumber` | Phone input with country code |
281
- | `DateOfBirth` | Date of birth input |
282
- | `CountryPicker` | Country selection dropdown |
283
- | `DoubleRangeInput` | Dual-handle range slider |
284
- | `Stepper` | Increment/decrement control |
315
+
316
+ | Component | Purpose |
317
+ | ------------------ | ------------------------------------------------------------------ |
318
+ | `InputField` | Compound form input with `.Label`, `.Row`, `.Input`, `.Validation` |
319
+ | `TextInput` | Single-line text input |
320
+ | `TextArea` | Multi-line text input |
321
+ | `TextAreaLimited` | Text area with character limit |
322
+ | `PasswordInput` | Password input with toggle |
323
+ | `Checkbox` | Boolean selection |
324
+ | `RadioButton` | Single selection from options |
325
+ | `ToggleSwitch` | On/off switch control |
326
+ | `SelectInput` | Dropdown selection |
327
+ | `PhoneNumber` | Phone input with country code |
328
+ | `DateOfBirth` | Date of birth input |
329
+ | `CountryPicker` | Country selection dropdown |
330
+ | `DoubleRangeInput` | Dual-handle range slider |
331
+ | `Stepper` | Increment/decrement control |
285
332
 
286
333
  ### Feedback Components
287
- | Component | Purpose |
288
- |-----------|---------|
289
- | `Toast` | Temporary notifications |
290
- | `AlertBox` | Inline alert messages (status: info/success/warning/danger) |
291
- | `LoadingSpinner` | Loading indicator |
292
- | `Skeleton` | Loading placeholder |
293
- | `ErrorMessage` | Error display |
294
- | `SuccessMessage` | Success display |
295
- | `Badge` | Status badge/label |
296
- | `Tooltip` | Hover/click tooltip |
334
+
335
+ | Component | Purpose |
336
+ | ---------------- | ----------------------------------------------------------- |
337
+ | `Toast` | Temporary notifications |
338
+ | `AlertBox` | Inline alert messages (status: info/success/warning/danger) |
339
+ | `LoadingSpinner` | Loading indicator |
340
+ | `Skeleton` | Loading placeholder |
341
+ | `ErrorMessage` | Error display |
342
+ | `SuccessMessage` | Success display |
343
+ | `Badge` | Status badge/label |
344
+ | `Tooltip` | Hover/click tooltip |
297
345
 
298
346
  ### Typography Components
299
- | Component | Purpose |
300
- |-----------|---------|
301
- | `DisplayHeading` | Hero/display text (beta) |
302
- | `TitleHeading` | Page titles |
347
+
348
+ | Component | Purpose |
349
+ | ---------------- | ---------------------------- |
350
+ | `DisplayHeading` | Hero/display text (beta) |
351
+ | `TitleHeading` | Page titles |
303
352
  | `SectionHeading` | Section headers (deprecated) |
304
- | `TextStyle` | Pre-styled text components |
305
- | `Link` | Styled hyperlinks |
353
+ | `TextStyle` | Pre-styled text components |
354
+ | `Link` | Styled hyperlinks |
306
355
 
307
356
  ### Timer Components
308
- | Component | Purpose |
309
- |-----------|---------|
310
- | `Countdown` | Visual countdown display (beta) |
357
+
358
+ | Component | Purpose |
359
+ | ---------------- | -------------------------------- |
360
+ | `Countdown` | Visual countdown display (beta) |
311
361
  | `CountdownTimer` | Animated countdown with callback |
312
362
 
313
363
  ### Ticket Components
314
- | Component | Purpose |
315
- |-----------|---------|
316
- | `TicketCardv2` | Ticket card container |
317
- | `TicketTopSection` | Ticket header with seating |
318
- | `TicketDescription` | Ticket delivery info |
319
- | `TicketQuantity` | Ticket quantity display |
320
- | `SeatInfov2` | Seat location display |
321
- | `SimpleSeatInfo` | Simple seat display |
364
+
365
+ | Component | Purpose |
366
+ | ------------------- | -------------------------- |
367
+ | `TicketCardv2` | Ticket card container |
368
+ | `TicketTopSection` | Ticket header with seating |
369
+ | `TicketDescription` | Ticket delivery info |
370
+ | `TicketQuantity` | Ticket quantity display |
371
+ | `SeatInfov2` | Seat location display |
372
+ | `SimpleSeatInfo` | Simple seat display |
322
373
 
323
374
  ### Deprecated Components
324
- | Component | Replacement |
325
- |-----------|-------------|
326
- | `Toggle` | Use React state |
327
- | `AlertBoxLegacy` | `AlertBox` |
328
- | `TicketInfo` | `TicketTopSection` |
329
- | `SeatInfo` | `SeatInfov2` |
375
+
376
+ | Component | Replacement |
377
+ | ---------------- | ------------------ |
378
+ | `Toggle` | Use React state |
379
+ | `AlertBoxLegacy` | `AlertBox` |
380
+ | `TicketInfo` | `TicketTopSection` |
381
+ | `SeatInfo` | `SeatInfov2` |
330
382
 
331
383
  ---
332
384
 
@@ -340,10 +392,10 @@ import {
340
392
  Card,
341
393
  TitleHeading,
342
394
  TextStyle,
343
- Button
344
- } from '@jamesodwyer/gds-figma-vite';
345
- import styled from 'styled-components';
346
- import { spacing } from '@jamesodwyer/gds-figma-vite';
395
+ Button,
396
+ } from "@jamesodwyer/gds-figma-vite";
397
+ import styled from "styled-components";
398
+ import { spacing } from "@jamesodwyer/gds-figma-vite";
347
399
 
348
400
  const Container = styled.div`
349
401
  padding: ${spacing.arena};
@@ -371,9 +423,9 @@ function Page() {
371
423
  ### Form Example
372
424
 
373
425
  ```tsx
374
- import { GdsProvider, InputField, Button } from '@jamesodwyer/gds-figma-vite';
375
- import styled from 'styled-components';
376
- import { spacing } from '@jamesodwyer/gds-figma-vite';
426
+ import { GdsProvider, InputField, Button } from "@jamesodwyer/gds-figma-vite";
427
+ import styled from "styled-components";
428
+ import { spacing } from "@jamesodwyer/gds-figma-vite";
377
429
 
378
430
  const Form = styled.form`
379
431
  display: flex;
@@ -387,14 +439,14 @@ function LoginForm() {
387
439
  <Form>
388
440
  <InputField id="email">
389
441
  <InputField.Label>Email</InputField.Label>
390
- <InputField.Row style={{ marginTop: '8px' }}>
442
+ <InputField.Row style={{ marginTop: "8px" }}>
391
443
  <InputField.Input type="email" />
392
444
  </InputField.Row>
393
445
  </InputField>
394
446
 
395
447
  <InputField id="password">
396
448
  <InputField.Label>Password</InputField.Label>
397
- <InputField.Row style={{ marginTop: '8px' }}>
449
+ <InputField.Row style={{ marginTop: "8px" }}>
398
450
  <InputField.Input type="password" />
399
451
  </InputField.Row>
400
452
  </InputField>
@@ -411,8 +463,8 @@ function LoginForm() {
411
463
  ### Modal Example
412
464
 
413
465
  ```tsx
414
- import { useState } from 'react';
415
- import { GdsProvider, Modal, Button } from '@jamesodwyer/gds-figma-vite';
466
+ import { useState } from "react";
467
+ import { GdsProvider, Modal, Button } from "@jamesodwyer/gds-figma-vite";
416
468
 
417
469
  function ModalExample() {
418
470
  const [isOpen, setIsOpen] = useState(false);
@@ -432,9 +484,7 @@ function ModalExample() {
432
484
  <Modal.CloseButton label="Close" />
433
485
  </Modal.Header>
434
486
  <Modal.Content>
435
- <Modal.Description>
436
- This is the modal content.
437
- </Modal.Description>
487
+ <Modal.Description>This is the modal content.</Modal.Description>
438
488
  </Modal.Content>
439
489
  <Modal.Actions>
440
490
  <Button colorVariant="secondary" onClick={() => setIsOpen(false)}>
@@ -453,7 +503,12 @@ function ModalExample() {
453
503
  ### Using Icons
454
504
 
455
505
  ```tsx
456
- import { GdsProvider, Button, HeartIcon, CheckmarkIcon } from '@jamesodwyer/gds-figma-vite';
506
+ import {
507
+ GdsProvider,
508
+ Button,
509
+ HeartIcon,
510
+ CheckmarkIcon,
511
+ } from "@jamesodwyer/gds-figma-vite";
457
512
 
458
513
  function IconExample() {
459
514
  return (
@@ -479,18 +534,18 @@ function IconExample() {
479
534
 
480
535
  Use these spacing tokens instead of pixel values:
481
536
 
482
- | Token | Value | Use Case |
483
- |-------|-------|----------|
484
- | `spacing.lounge` | 4px | Tight spacing, icon gaps |
485
- | `spacing.club` | 8px | Small gaps between elements |
486
- | `spacing.hall` | 12px | Medium-small spacing |
487
- | `spacing.auditorium` | 16px | Standard spacing |
488
- | `spacing.theatre` | 20px | Medium spacing |
489
- | `spacing.amphitheatre` | 24px | Comfortable spacing |
490
- | `spacing.arena` | 32px | Large spacing |
491
- | `spacing.stadium` | 48px | Section spacing |
492
- | `spacing.dome` | 64px | Large section gaps |
493
- | `spacing.field` | 88px | Maximum spacing |
537
+ | Token | Value | Use Case |
538
+ | ---------------------- | ----- | --------------------------- |
539
+ | `spacing.lounge` | 4px | Tight spacing, icon gaps |
540
+ | `spacing.club` | 8px | Small gaps between elements |
541
+ | `spacing.hall` | 12px | Medium-small spacing |
542
+ | `spacing.auditorium` | 16px | Standard spacing |
543
+ | `spacing.theatre` | 20px | Medium spacing |
544
+ | `spacing.amphitheatre` | 24px | Comfortable spacing |
545
+ | `spacing.arena` | 32px | Large spacing |
546
+ | `spacing.stadium` | 48px | Section spacing |
547
+ | `spacing.dome` | 64px | Large section gaps |
548
+ | `spacing.field` | 88px | Maximum spacing |
494
549
 
495
550
  ---
496
551
 
@@ -498,16 +553,16 @@ Use these spacing tokens instead of pixel values:
498
553
 
499
554
  Use `textStyle` for consistent typography:
500
555
 
501
- | Style | Mobile | Desktop | Use Case |
502
- |-------|--------|---------|----------|
503
- | `textStyle.mauna` | 12px | 12px | Captions, small text |
504
- | `textStyle.everest` | 14px | 14px | Body text |
505
- | `textStyle.kilimanjaro` | 16px | 16px | Large body |
506
- | `textStyle.matterhorn` | 18px | 18px | Emphasis |
507
- | `textStyle.vinson` | 20px | 22px | Small headings |
508
- | `textStyle.blanc` | 24px | 28px | Section headings |
509
- | `textStyle.fiji` | 28px | 34px | Page titles |
510
- | `textStyle.rainier` | 32px | 40px | Large titles |
556
+ | Style | Mobile | Desktop | Use Case |
557
+ | ----------------------- | ------ | ------- | -------------------- |
558
+ | `textStyle.mauna` | 12px | 12px | Captions, small text |
559
+ | `textStyle.everest` | 14px | 14px | Body text |
560
+ | `textStyle.kilimanjaro` | 16px | 16px | Large body |
561
+ | `textStyle.matterhorn` | 18px | 18px | Emphasis |
562
+ | `textStyle.vinson` | 20px | 22px | Small headings |
563
+ | `textStyle.blanc` | 24px | 28px | Section headings |
564
+ | `textStyle.fiji` | 28px | 34px | Page titles |
565
+ | `textStyle.rainier` | 32px | 40px | Large titles |
511
566
 
512
567
  ---
513
568
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jamesodwyer/gds-figma-vite",
3
- "version": "2.0.9",
3
+ "version": "2.0.10",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },