@vsn-ux/gaia-styles 0.6.0 → 0.6.2

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.
@@ -0,0 +1,316 @@
1
+ # Menu
2
+
3
+ ## Visual Structure
4
+
5
+ ```
6
+ ga-menu
7
+ ├── ga-menu__title (optional)
8
+ ├── ga-menu__item [--selected|--disabled|--active]
9
+ │ ├── ga-menu__item-icon (optional)
10
+ │ └── ga-menu__item-content
11
+ │ ├── ga-menu__item-title (optional)
12
+ │ │ ├── ga-menu__item-label
13
+ │ │ └── ga-menu__item-shortcut (optional)
14
+ │ └── ga-menu__item-description (optional)
15
+ └── ga-menu__separator (optional)
16
+ ```
17
+
18
+ ## Elements Hierarchy
19
+
20
+ ### Core Block
21
+
22
+ - `ga-menu` - Main container for the entire menu component
23
+
24
+ ### Mandatory Elements
25
+
26
+ - `ga-menu__title` - The heading/title of the menu section
27
+ - `ga-menu__item` - Individual clickable/interactive menu option
28
+ - `ga-menu__item-content` - Container for all text content within a menu item
29
+ - `ga-menu__item-label` - The primary text label identifying the menu action
30
+
31
+ ### Optional Elements
32
+
33
+ - `ga-menu__item-icon` - Icon displayed within a menu item for visual identification
34
+ - `ga-menu__item-title` - Wrapper that groups the label and shortcut when both are present
35
+ - `ga-menu__item-shortcut` - Visual representation of keyboard shortcut/hotkey
36
+ - `ga-menu__item-description` - Additional explanatory text providing context for the menu item
37
+ - `ga-menu__separator` - Horizontal divider that visually separates groups of related menu items
38
+
39
+ ### Modifiers
40
+
41
+ - `ga-menu__item--selected` - Indicates the currently selected menu item
42
+ - `ga-menu__item--disabled` - Styles the menu item as disabled/non-interactive
43
+ - `ga-menu__item--disabled ga-menu__item--selected` - Combined state for a selected but disabled item
44
+ - `ga-menu__item--active` - Indicates the menu item is currently active/focused through keyboard
45
+
46
+ ## Examples
47
+
48
+ ### Basic
49
+
50
+ ```html
51
+ <div class="ga-menu">
52
+ <button class="ga-menu__item">
53
+ <div class="ga-menu__item-content">
54
+ <div class="ga-menu__item-label">Copy</div>
55
+ </div>
56
+ </button>
57
+ <button class="ga-menu__item">
58
+ <div class="ga-menu__item-content">
59
+ <div class="ga-menu__item-label">Settings</div>
60
+ </div>
61
+ </button>
62
+ <button class="ga-menu__item">
63
+ <div class="ga-menu__item-content">
64
+ <div class="ga-menu__item-label">Delete</div>
65
+ </div>
66
+ </button>
67
+ <button class="ga-menu__item">
68
+ <div class="ga-menu__item-content">
69
+ <div class="ga-menu__item-label">Sign out</div>
70
+ </div>
71
+ </button>
72
+ </div>
73
+ ```
74
+
75
+ ### With Title
76
+
77
+ ```html
78
+ <div class="ga-menu">
79
+ <div class="ga-menu__title">My menu</div>
80
+ <button class="ga-menu__item">
81
+ <div class="ga-menu__item-content">
82
+ <div class="ga-menu__item-label">Copy</div>
83
+ </div>
84
+ </button>
85
+ <button class="ga-menu__item">
86
+ <div class="ga-menu__item-content">
87
+ <div class="ga-menu__item-label">Settings</div>
88
+ </div>
89
+ </button>
90
+ <button class="ga-menu__item">
91
+ <div class="ga-menu__item-content">
92
+ <div class="ga-menu__item-label">Delete</div>
93
+ </div>
94
+ </button>
95
+ <button class="ga-menu__item">
96
+ <div class="ga-menu__item-content">
97
+ <div class="ga-menu__item-label">Sign out</div>
98
+ </div>
99
+ </button>
100
+ </div>
101
+ ```
102
+
103
+ ### With Separator
104
+
105
+ ```html
106
+ <div class="ga-menu">
107
+ <div class="ga-menu__title">My menu</div>
108
+ <button class="ga-menu__item">
109
+ <div class="ga-menu__item-content">
110
+ <div class="ga-menu__item-label">Copy</div>
111
+ </div>
112
+ </button>
113
+ <button class="ga-menu__item">
114
+ <div class="ga-menu__item-content">
115
+ <div class="ga-menu__item-label">Settings</div>
116
+ </div>
117
+ </button>
118
+ <button class="ga-menu__item">
119
+ <div class="ga-menu__item-content">
120
+ <div class="ga-menu__item-label">Delete</div>
121
+ </div>
122
+ </button>
123
+ <div class="ga-menu__separator"></div>
124
+ <button class="ga-menu__item">
125
+ <div class="ga-menu__item-content">
126
+ <div class="ga-menu__item-label">Sign out</div>
127
+ </div>
128
+ </button>
129
+ </div>
130
+ ```
131
+
132
+ ### With Icons
133
+
134
+ ```html
135
+ <div class="ga-menu">
136
+ <div class="ga-menu__title">My menu</div>
137
+ <button class="ga-menu__item">
138
+ <!-- icon: copy, size=16, class="ga-menu__item-icon" -->
139
+ <div class="ga-menu__item-content">
140
+ <div class="ga-menu__item-label">Copy</div>
141
+ </div>
142
+ </button>
143
+ <button class="ga-menu__item">
144
+ <!-- icon: settings, size=16, class="ga-menu__item-icon" -->
145
+ <div class="ga-menu__item-content">
146
+ <div class="ga-menu__item-label">Settings</div>
147
+ </div>
148
+ </button>
149
+ <button class="ga-menu__item">
150
+ <!-- icon: trash2, size=16, class="ga-menu__item-icon" -->
151
+ <div class="ga-menu__item-content">
152
+ <div class="ga-menu__item-label">Delete</div>
153
+ </div>
154
+ </button>
155
+ <div class="ga-menu__separator"></div>
156
+ <button class="ga-menu__item">
157
+ <!-- icon: log-out, size=16, class="ga-menu__item-icon" -->
158
+ <div class="ga-menu__item-content">
159
+ <div class="ga-menu__item-label">Sign out</div>
160
+ </div>
161
+ </button>
162
+ </div>
163
+ ```
164
+
165
+ ### With Shortcut
166
+
167
+ ```html
168
+ <div class="ga-menu max-w-50">
169
+ <div class="ga-menu__title">My menu</div>
170
+ <button class="ga-menu__item">
171
+ <!-- icon: copy, size=16, class="ga-menu__item-icon" -->
172
+ <div class="ga-menu__item-content">
173
+ <div class="ga-menu__item-label">Copy</div>
174
+ </div>
175
+ </button>
176
+ <button class="ga-menu__item">
177
+ <!-- icon: settings, size=16, class="ga-menu__item-icon" -->
178
+ <div class="ga-menu__item-content">
179
+ <div class="ga-menu__item-title">
180
+ <div class="ga-menu__item-label">Settings</div>
181
+ <span class="ga-menu__item-shortcut">⌘ ⌥ S</span>
182
+ </div>
183
+ <div class="ga-menu__item-description">
184
+ Configure your account preferences and adjust application display
185
+ options
186
+ </div>
187
+ </div>
188
+ </button>
189
+ <button class="ga-menu__item">
190
+ <!-- icon: trash2, size=16, class="ga-menu__item-icon" -->
191
+ <div class="ga-menu__item-content">
192
+ <div class="ga-menu__item-label">Delete</div>
193
+ </div>
194
+ </button>
195
+ <div class="ga-menu__separator"></div>
196
+ <button class="ga-menu__item">
197
+ <!-- icon: log-out, size=16, class="ga-menu__item-icon" -->
198
+ <div class="ga-menu__item-content">
199
+ <div class="ga-menu__item-label">Sign out</div>
200
+ </div>
201
+ </button>
202
+ </div>
203
+ ```
204
+
205
+ ### With Description
206
+
207
+ ```html
208
+ <div class="ga-menu max-w-50">
209
+ <div class="ga-menu__title">My menu</div>
210
+ <button class="ga-menu__item">
211
+ <!-- icon: copy, size=16, class="ga-menu__item-icon" -->
212
+ <div class="ga-menu__item-content">
213
+ <div class="ga-menu__item-label">Copy</div>
214
+ </div>
215
+ </button>
216
+ <button class="ga-menu__item">
217
+ <!-- icon: settings, size=16, class="ga-menu__item-icon" -->
218
+ <div class="ga-menu__item-content">
219
+ <div class="ga-menu__item-label">Settings</div>
220
+ <div class="ga-menu__item-description">
221
+ Configure your account preferences and adjust application display
222
+ options
223
+ </div>
224
+ </div>
225
+ </button>
226
+ <button class="ga-menu__item">
227
+ <!-- icon: trash2, size=16, class="ga-menu__item-icon" -->
228
+ <div class="ga-menu__item-content">
229
+ <div class="ga-menu__item-label">Delete</div>
230
+ </div>
231
+ </button>
232
+ <div class="ga-menu__separator"></div>
233
+ <button class="ga-menu__item">
234
+ <!-- icon: log-out, size=16, class="ga-menu__item-icon" -->
235
+ <div class="ga-menu__item-content">
236
+ <div class="ga-menu__item-label">Sign out</div>
237
+ </div>
238
+ </button>
239
+ </div>
240
+ ```
241
+
242
+ ### With Sub Menu
243
+
244
+ ```html
245
+ <div class="ga-menu">
246
+ <div class="ga-menu__title">My menu</div>
247
+ <button class="ga-menu__item">
248
+ <!-- icon: copy, size=16, class="ga-menu__item-icon" -->
249
+ <div class="ga-menu__item-content">
250
+ <div class="ga-menu__item-label">Copy</div>
251
+ </div>
252
+ </button>
253
+ <button class="ga-menu__item">
254
+ <!-- icon: settings, size=16, class="ga-menu__item-icon" -->
255
+ <div class="ga-menu__item-content">
256
+ <div class="ga-menu__item-title">
257
+ <div class="ga-menu__item-label">Settings</div>
258
+ <!-- icon: chevron-right, size=16, class="ga-menu__item-icon" -->
259
+ </div>
260
+ </div>
261
+ </button>
262
+ <button class="ga-menu__item">
263
+ <!-- icon: trash2, size=16, class="ga-menu__item-icon" -->
264
+ <div class="ga-menu__item-content">
265
+ <div class="ga-menu__item-label">Delete</div>
266
+ </div>
267
+ </button>
268
+ <div class="ga-menu__separator"></div>
269
+ <button class="ga-menu__item">
270
+ <!-- icon: log-out, size=16, class="ga-menu__item-icon" -->
271
+ <div class="ga-menu__item-content">
272
+ <div class="ga-menu__item-label">Sign out</div>
273
+ </div>
274
+ </button>
275
+ </div>
276
+ ```
277
+
278
+ ### Statuses
279
+
280
+ ```html
281
+ <div class="ga-menu">
282
+ <button class="ga-menu__item">
283
+ <!-- icon: trash2, size=16, class="ga-menu__item-icon" -->
284
+ <div class="ga-menu__item-content">
285
+ <div class="ga-menu__item-label">Default</div>
286
+ </div>
287
+ </button>
288
+ <button class="ga-menu__item ga-menu__item--selected">
289
+ <!-- icon: trash2, size=16, class="ga-menu__item-icon" -->
290
+ <div class="ga-menu__item-content">
291
+ <div class="ga-menu__item-label">Selected</div>
292
+ </div>
293
+ </button>
294
+ <button class="ga-menu__item ga-menu__item--active">
295
+ <!-- icon: trash2, size=16, class="ga-menu__item-icon" -->
296
+ <div class="ga-menu__item-content">
297
+ <div class="ga-menu__item-label">Active (focused)</div>
298
+ </div>
299
+ </button>
300
+ <button class="ga-menu__item ga-menu__item--disabled" disabled="">
301
+ <!-- icon: trash2, size=16, class="ga-menu__item-icon" -->
302
+ <div class="ga-menu__item-content">
303
+ <div class="ga-menu__item-label">Disabled</div>
304
+ </div>
305
+ </button>
306
+ <button
307
+ class="ga-menu__item ga-menu__item--disabled ga-menu__item--selected"
308
+ disabled=""
309
+ >
310
+ <!-- icon: trash2, size=16, class="ga-menu__item-icon" -->
311
+ <div class="ga-menu__item-content">
312
+ <div class="ga-menu__item-label">Disabled Selected</div>
313
+ </div>
314
+ </button>
315
+ </div>
316
+ ```
@@ -0,0 +1,337 @@
1
+ # Modal
2
+
3
+ ## Visual Structure
4
+
5
+ ```
6
+ ga-modal__backdrop
7
+ ga-modal__container (optional)
8
+ └── ga-modal [--small|--medium|--large] [--danger|--warning|--success|--information]
9
+ ├── ga-modal__top-section [--scrollable]
10
+ │ ├── ga-modal__icon (optional)
11
+ │ ├── ga-modal__heading
12
+ │ │ ├── ga-modal__label (optional)
13
+ │ │ ├── ga-modal__title
14
+ │ │ └── ga-modal__description (optional)
15
+ │ └── ga-modal__close-icon (optional)
16
+ ├── ga-modal__content (optional)
17
+ └── ga-modal__actions
18
+ ```
19
+
20
+ ## Elements Hierarchy
21
+
22
+ ### Core Block
23
+
24
+ - `ga-modal` - Main container for the modal component
25
+
26
+ ### Mandatory Elements
27
+
28
+ - `ga-modal__backdrop` - Semi-transparent overlay that covers the screen behind the modal
29
+ - `ga-modal__top-section` - Upper section of the modal containing title and close button
30
+ - `ga-modal__heading` - Container for title and optional label text
31
+ - `ga-modal__title` - Main title text of the modal
32
+ - `ga-modal__actions` - Container for action buttons
33
+
34
+ ### Optional Elements
35
+
36
+ - `ga-modal__container` - Container used for modal positioning, can be omitted if positioning is handled manually by the framework
37
+ - `ga-modal__icon` - Icon that appears at the top of the modal (for status modals)
38
+ - `ga-modal__label` - Secondary text displayed above the title
39
+ - `ga-modal__close-icon` - Button for closing the modal
40
+ - `ga-modal__description` - Description of the modal
41
+ - `ga-modal__content` - Container for the main content area of the modal
42
+
43
+ ### Modifiers
44
+
45
+ - `ga-modal__top-section--scrollable` - Allows the modal's top section to shrink and enables vertical scrolling of description when content overflows. Note: This is necessary due to technical constraints, since the description and main content are rendered in separate containers, explicit scrolling must be enabled to prevent duplicate overflow behavior.
46
+
47
+ #### Size Variants
48
+
49
+ - `ga-modal--small` - Small-sized modal
50
+ - `ga-modal--medium` - Medium-sized modal
51
+ - `ga-modal--large` - Large-sized modal
52
+
53
+ #### Type Variants
54
+
55
+ - `ga-modal--danger` - Modal with danger/error styling
56
+ - `ga-modal--warning` - Modal with warning styling
57
+ - `ga-modal--success` - Modal with success styling
58
+ - `ga-modal--information` - Modal with information styling
59
+
60
+ ## Examples
61
+
62
+ ### Types
63
+
64
+ #### Default
65
+
66
+ ```html
67
+ <div class="ga-modal__backdrop"></div>
68
+ <div class="ga-modal__container">
69
+ <div class="ga-modal ga-modal--small">
70
+ <div class="ga-modal__top-section">
71
+ <div class="ga-modal__heading">
72
+ <h2 class="ga-modal__title">Title</h2>
73
+ <div class="ga-modal__description">Description</div>
74
+ </div>
75
+ <button
76
+ class="ga-button ga-button--icon-only ga-button--ghost ga-modal__close-icon"
77
+ >
78
+ <!-- icon: x, size=24 -->
79
+ </button>
80
+ </div>
81
+ <div class="ga-modal__actions">
82
+ <button class="ga-button ga-button--primary">Confirm</button>
83
+ <button class="ga-button ga-button--secondary">Cancel</button>
84
+ </div>
85
+ </div>
86
+ </div>
87
+ ```
88
+
89
+ #### Danger
90
+
91
+ ```html
92
+ <div class="ga-modal__backdrop"></div>
93
+ <div class="ga-modal__container">
94
+ <div class="ga-modal ga-modal--small ga-modal--danger">
95
+ <div class="ga-modal__top-section">
96
+ <div class="ga-modal__icon"><!-- icon: octagon-alert, size=48 --></div>
97
+ <div class="ga-modal__heading">
98
+ <h2 class="ga-modal__title">Title</h2>
99
+ <div class="ga-modal__description">Description</div>
100
+ </div>
101
+ <button
102
+ class="ga-button ga-button--icon-only ga-button--ghost ga-modal__close-icon"
103
+ >
104
+ <!-- icon: x, size=24 -->
105
+ </button>
106
+ </div>
107
+ <div class="ga-modal__actions">
108
+ <button class="ga-button ga-button--primary">Confirm</button>
109
+ <button class="ga-button ga-button--secondary">Cancel</button>
110
+ </div>
111
+ </div>
112
+ </div>
113
+ ```
114
+
115
+ #### Warning
116
+
117
+ ```html
118
+ <div class="ga-modal__backdrop"></div>
119
+ <div class="ga-modal__container">
120
+ <div class="ga-modal ga-modal--small ga-modal--warning">
121
+ <div class="ga-modal__top-section">
122
+ <div class="ga-modal__icon"><!-- icon: triangle-alert, size=48 --></div>
123
+ <div class="ga-modal__heading">
124
+ <h2 class="ga-modal__title">Title</h2>
125
+ <div class="ga-modal__description">Description</div>
126
+ </div>
127
+ <button
128
+ class="ga-button ga-button--icon-only ga-button--ghost ga-modal__close-icon"
129
+ >
130
+ <!-- icon: x, size=24 -->
131
+ </button>
132
+ </div>
133
+ <div class="ga-modal__actions">
134
+ <button class="ga-button ga-button--primary">Confirm</button>
135
+ <button class="ga-button ga-button--secondary">Cancel</button>
136
+ </div>
137
+ </div>
138
+ </div>
139
+ ```
140
+
141
+ #### Success
142
+
143
+ ```html
144
+ <div class="ga-modal__backdrop"></div>
145
+ <div class="ga-modal__container">
146
+ <div class="ga-modal ga-modal--small ga-modal--success">
147
+ <div class="ga-modal__top-section">
148
+ <div class="ga-modal__icon"><!-- icon: circle-check, size=48 --></div>
149
+ <div class="ga-modal__heading">
150
+ <h2 class="ga-modal__title">Title</h2>
151
+ <div class="ga-modal__description">Description</div>
152
+ </div>
153
+ <button
154
+ class="ga-button ga-button--icon-only ga-button--ghost ga-modal__close-icon"
155
+ >
156
+ <!-- icon: x, size=24 -->
157
+ </button>
158
+ </div>
159
+ <div class="ga-modal__actions">
160
+ <button class="ga-button ga-button--primary">Confirm</button>
161
+ <button class="ga-button ga-button--secondary">Cancel</button>
162
+ </div>
163
+ </div>
164
+ </div>
165
+ ```
166
+
167
+ #### Information
168
+
169
+ ```html
170
+ <div class="ga-modal__backdrop"></div>
171
+ <div class="ga-modal__container">
172
+ <div class="ga-modal ga-modal--small ga-modal--information">
173
+ <div class="ga-modal__top-section">
174
+ <div class="ga-modal__icon"><!-- icon: info, size=48 --></div>
175
+ <div class="ga-modal__heading">
176
+ <h2 class="ga-modal__title">Title</h2>
177
+ <div class="ga-modal__description">Description</div>
178
+ </div>
179
+ <button
180
+ class="ga-button ga-button--icon-only ga-button--ghost ga-modal__close-icon"
181
+ >
182
+ <!-- icon: x, size=24 -->
183
+ </button>
184
+ </div>
185
+ <div class="ga-modal__actions">
186
+ <button class="ga-button ga-button--primary">Confirm</button>
187
+ <button class="ga-button ga-button--secondary">Cancel</button>
188
+ </div>
189
+ </div>
190
+ </div>
191
+ ```
192
+
193
+ ### Sizes
194
+
195
+ #### Small
196
+
197
+ ```html
198
+ <div class="ga-modal__backdrop"></div>
199
+ <div class="ga-modal__container">
200
+ <div class="ga-modal ga-modal--small">
201
+ <div class="ga-modal__top-section">
202
+ <div class="ga-modal__heading">
203
+ <h2 class="ga-modal__title">Title</h2>
204
+ <div class="ga-modal__description">Description</div>
205
+ </div>
206
+ <button
207
+ class="ga-button ga-button--icon-only ga-button--ghost ga-modal__close-icon"
208
+ >
209
+ <!-- icon: x, size=24 -->
210
+ </button>
211
+ </div>
212
+ <div class="ga-modal__actions">
213
+ <button class="ga-button ga-button--primary">Confirm</button>
214
+ <button class="ga-button ga-button--secondary">Cancel</button>
215
+ </div>
216
+ </div>
217
+ </div>
218
+ ```
219
+
220
+ #### Medium
221
+
222
+ ```html
223
+ <div class="ga-modal__backdrop"></div>
224
+ <div class="ga-modal__container">
225
+ <div class="ga-modal ga-modal--medium">
226
+ <div class="ga-modal__top-section">
227
+ <div class="ga-modal__heading">
228
+ <h2 class="ga-modal__title">Title</h2>
229
+ <div class="ga-modal__description">Description</div>
230
+ </div>
231
+ <button
232
+ class="ga-button ga-button--icon-only ga-button--ghost ga-modal__close-icon"
233
+ >
234
+ <!-- icon: x, size=24 -->
235
+ </button>
236
+ </div>
237
+ <div class="ga-modal__actions">
238
+ <button class="ga-button ga-button--primary">Confirm</button>
239
+ <button class="ga-button ga-button--secondary">Cancel</button>
240
+ </div>
241
+ </div>
242
+ </div>
243
+ ```
244
+
245
+ #### Large
246
+
247
+ ```html
248
+ <div class="ga-modal__backdrop"></div>
249
+ <div class="ga-modal__container">
250
+ <div class="ga-modal ga-modal--large">
251
+ <div class="ga-modal__top-section">
252
+ <div class="ga-modal__heading">
253
+ <h2 class="ga-modal__title">Title</h2>
254
+ <div class="ga-modal__description">Description</div>
255
+ </div>
256
+ <button
257
+ class="ga-button ga-button--icon-only ga-button--ghost ga-modal__close-icon"
258
+ >
259
+ <!-- icon: x, size=24 -->
260
+ </button>
261
+ </div>
262
+ <div class="ga-modal__actions">
263
+ <button class="ga-button ga-button--primary">Confirm</button>
264
+ <button class="ga-button ga-button--secondary">Cancel</button>
265
+ </div>
266
+ </div>
267
+ </div>
268
+ ```
269
+
270
+ ### With Label
271
+
272
+ ```html
273
+ <div class="ga-modal__backdrop"></div>
274
+ <div class="ga-modal__container">
275
+ <div class="ga-modal ga-modal--small">
276
+ <div class="ga-modal__top-section">
277
+ <div class="ga-modal__heading">
278
+ <div class="ga-modal__label">Label</div>
279
+ <h2 class="ga-modal__title">Title</h2>
280
+ <div class="ga-modal__description">Description</div>
281
+ </div>
282
+ <button
283
+ class="ga-button ga-button--icon-only ga-button--ghost ga-modal__close-icon"
284
+ >
285
+ <!-- icon: x, size=24 -->
286
+ </button>
287
+ </div>
288
+ <div class="ga-modal__actions">
289
+ <button class="ga-button ga-button--primary">Confirm</button>
290
+ <button class="ga-button ga-button--secondary">Cancel</button>
291
+ </div>
292
+ </div>
293
+ </div>
294
+ ```
295
+
296
+ ### Full Example
297
+
298
+ ```html
299
+ <div class="ga-modal__backdrop"></div>
300
+ <div class="ga-modal__container">
301
+ <div class="ga-modal ga-modal--medium ga-modal--danger">
302
+ <div class="ga-modal__top-section">
303
+ <div class="ga-modal__icon"><!-- icon: octagon-alert, size=48 --></div>
304
+ <div class="ga-modal__heading">
305
+ <div class="ga-modal__label">Label</div>
306
+ <h2 class="ga-modal__title">Title</h2>
307
+ <div class="ga-modal__description">
308
+ The data could not be updated due to a server error. Please check your
309
+ internet connection and try again.
310
+ </div>
311
+ </div>
312
+ <button
313
+ class="ga-button ga-button--icon-only ga-button--ghost ga-modal__close-icon"
314
+ >
315
+ <!-- icon: x, size=24 -->
316
+ </button>
317
+ </div>
318
+ <div class="ga-modal__content">
319
+ <div class="ga-form-field">
320
+ <label class="ga-form-field__label" for="input2">
321
+ <span class="ga-form-field__label-text">Send invitation(s) to:</span>
322
+ </label>
323
+ <div class="ga-input">
324
+ <input id="input2" type="text" placeholder="user@domain.example" />
325
+ </div>
326
+ <div class="ga-form-field__info">
327
+ Please make sure no sensitive data is shared.
328
+ </div>
329
+ </div>
330
+ </div>
331
+ <div class="ga-modal__actions">
332
+ <button class="ga-button ga-button--primary">Accept</button>
333
+ <button class="ga-button ga-button--secondary">Decline</button>
334
+ </div>
335
+ </div>
336
+ </div>
337
+ ```