@tailor-platform/app-shell 1.16.0 → 1.17.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.
- package/dist/app-shell-core.css +1 -1
- package/dist/app-shell.d.ts +692 -106
- package/dist/app-shell.js +6294 -4939
- package/dist/{appshell-B0wh5Lq0.js → appshell-CahhZy7v.js} +316 -297
- package/dist/semantic-contrast.test.ts +154 -0
- package/dist/style-entry.d.ts +117 -82
- package/dist/testing.d.ts +122 -85
- package/dist/testing.js +1 -1
- package/dist/theme-bridge.test.ts +101 -1
- package/dist/theme.bridge.css +91 -0
- package/dist/theme.css +6 -1
- package/dist/themes/_template.css +7 -1
- package/dist/themes/bloom.css +0 -6
- package/dist/themes/cream.css +0 -6
- package/dist/themes/default.css +389 -69
- package/dist/vite-plugin.d.ts +117 -82
- package/package.json +1 -1
- package/skills/app-shell-patterns/SKILL.md +7 -5
- package/skills/app-shell-patterns/references/api/define-module.md +2 -2
- package/skills/app-shell-patterns/references/api/define-resource.md +2 -2
- package/skills/app-shell-patterns/references/api/use-app-shell-config.md +53 -47
- package/skills/app-shell-patterns/references/api/use-app-shell-data.md +30 -26
- package/skills/app-shell-patterns/references/api/use-app-shell.md +37 -30
- package/skills/app-shell-patterns/references/api/use-toast.md +28 -31
- package/skills/app-shell-patterns/references/components/app-shell.md +4 -4
- package/skills/app-shell-patterns/references/components/card.md +79 -7
- package/skills/app-shell-patterns/references/components/data-table.md +267 -52
- package/skills/app-shell-patterns/references/components/date-picker.md +32 -21
- package/skills/app-shell-patterns/references/components/filter-rail.md +165 -0
- package/skills/app-shell-patterns/references/components/sidebar-group.md +6 -0
- package/skills/app-shell-patterns/references/components/sidebar-section.md +114 -0
- package/skills/app-shell-patterns/references/concepts/custom-components.md +1 -1
- package/skills/app-shell-patterns/references/concepts/file-based-routing.md +7 -1
- package/skills/app-shell-patterns/references/concepts/graphql.md +20 -14
- package/skills/app-shell-patterns/references/concepts/routing-navigation.md +41 -3
- package/skills/app-shell-patterns/references/concepts/sidebar-navigation.md +32 -0
- package/skills/app-shell-patterns/references/concepts/styling-theming.md +255 -58
- package/skills/app-shell-patterns/references/migrations.md +21 -0
- package/skills/app-shell-patterns/references/pages/document-detail.md +6 -6
- package/skills/app-shell-patterns/references/patterns/form-modal.md +26 -20
- package/skills/app-shell-patterns/references/patterns/interaction-multi-select.md +129 -118
- package/skills/app-shell-patterns/references/patterns/list-dense-scan.md +2 -2
package/dist/vite-plugin.d.ts
CHANGED
|
@@ -41,12 +41,12 @@ declare namespace Root {
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
|
|
44
|
-
declare namespace
|
|
44
|
+
declare namespace Image {
|
|
45
45
|
var displayName: string;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
|
|
49
|
-
declare namespace
|
|
49
|
+
declare namespace Fallback {
|
|
50
50
|
var displayName: string;
|
|
51
51
|
}
|
|
52
52
|
|
|
@@ -56,32 +56,37 @@ declare namespace Root {
|
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
|
|
59
|
-
declare namespace
|
|
59
|
+
declare namespace Header {
|
|
60
60
|
var displayName: string;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
|
|
64
|
-
declare namespace
|
|
64
|
+
declare namespace Body {
|
|
65
65
|
var displayName: string;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
|
|
69
|
-
declare namespace
|
|
69
|
+
declare namespace Footer {
|
|
70
70
|
var displayName: string;
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
|
|
74
|
-
declare namespace
|
|
74
|
+
declare namespace Row {
|
|
75
75
|
var displayName: string;
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
|
|
79
|
-
declare namespace
|
|
79
|
+
declare namespace Head {
|
|
80
80
|
var displayName: string;
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
|
|
84
|
-
declare namespace
|
|
84
|
+
declare namespace Cell {
|
|
85
|
+
var displayName: string;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
declare namespace Caption {
|
|
85
90
|
var displayName: string;
|
|
86
91
|
}
|
|
87
92
|
|
|
@@ -96,47 +101,47 @@ declare namespace Header {
|
|
|
96
101
|
}
|
|
97
102
|
|
|
98
103
|
|
|
99
|
-
declare namespace
|
|
104
|
+
declare namespace Content {
|
|
100
105
|
var displayName: string;
|
|
101
106
|
}
|
|
102
107
|
|
|
103
108
|
|
|
104
|
-
declare namespace
|
|
109
|
+
declare namespace Root {
|
|
105
110
|
var displayName: string;
|
|
106
111
|
}
|
|
107
112
|
|
|
108
113
|
|
|
109
|
-
declare namespace
|
|
114
|
+
declare namespace Trigger {
|
|
110
115
|
var displayName: string;
|
|
111
116
|
}
|
|
112
117
|
|
|
113
118
|
|
|
114
|
-
declare namespace
|
|
119
|
+
declare namespace Close {
|
|
115
120
|
var displayName: string;
|
|
116
121
|
}
|
|
117
122
|
|
|
118
123
|
|
|
119
|
-
declare namespace
|
|
124
|
+
declare namespace Content {
|
|
120
125
|
var displayName: string;
|
|
121
126
|
}
|
|
122
127
|
|
|
123
128
|
|
|
124
|
-
declare namespace
|
|
129
|
+
declare namespace Header {
|
|
125
130
|
var displayName: string;
|
|
126
131
|
}
|
|
127
132
|
|
|
128
133
|
|
|
129
|
-
declare namespace
|
|
134
|
+
declare namespace Footer {
|
|
130
135
|
var displayName: string;
|
|
131
136
|
}
|
|
132
137
|
|
|
133
138
|
|
|
134
|
-
declare namespace
|
|
139
|
+
declare namespace Title {
|
|
135
140
|
var displayName: string;
|
|
136
141
|
}
|
|
137
142
|
|
|
138
143
|
|
|
139
|
-
declare namespace
|
|
144
|
+
declare namespace Description {
|
|
140
145
|
var displayName: string;
|
|
141
146
|
}
|
|
142
147
|
|
|
@@ -146,192 +151,197 @@ declare namespace Root {
|
|
|
146
151
|
}
|
|
147
152
|
|
|
148
153
|
|
|
149
|
-
declare namespace
|
|
154
|
+
declare namespace Legend {
|
|
150
155
|
var displayName: string;
|
|
151
156
|
}
|
|
152
157
|
|
|
153
158
|
|
|
154
|
-
declare namespace
|
|
159
|
+
declare namespace ComboboxRoot {
|
|
155
160
|
var displayName: string;
|
|
156
161
|
}
|
|
157
162
|
|
|
158
163
|
|
|
159
|
-
declare namespace
|
|
164
|
+
declare namespace ComboboxInput {
|
|
160
165
|
var displayName: string;
|
|
161
166
|
}
|
|
162
167
|
|
|
163
168
|
|
|
164
|
-
declare namespace
|
|
169
|
+
declare namespace ComboboxTrigger {
|
|
165
170
|
var displayName: string;
|
|
166
171
|
}
|
|
167
172
|
|
|
168
173
|
|
|
169
|
-
declare namespace
|
|
174
|
+
declare namespace ComboboxInputGroup {
|
|
170
175
|
var displayName: string;
|
|
171
176
|
}
|
|
172
177
|
|
|
173
178
|
|
|
174
|
-
declare namespace
|
|
179
|
+
declare namespace ComboboxContent {
|
|
175
180
|
var displayName: string;
|
|
176
181
|
}
|
|
177
182
|
|
|
178
183
|
|
|
179
|
-
declare namespace
|
|
184
|
+
declare namespace ComboboxList {
|
|
180
185
|
var displayName: string;
|
|
181
186
|
}
|
|
182
187
|
|
|
183
188
|
|
|
184
|
-
declare namespace
|
|
189
|
+
declare namespace ComboboxItem {
|
|
185
190
|
var displayName: string;
|
|
186
191
|
}
|
|
187
192
|
|
|
188
193
|
|
|
189
|
-
declare namespace
|
|
194
|
+
declare namespace ComboboxEmpty {
|
|
190
195
|
var displayName: string;
|
|
191
196
|
}
|
|
192
197
|
|
|
193
198
|
|
|
194
|
-
declare namespace
|
|
199
|
+
declare namespace ComboboxGroup {
|
|
195
200
|
var displayName: string;
|
|
196
201
|
}
|
|
197
202
|
|
|
198
203
|
|
|
199
|
-
declare namespace
|
|
204
|
+
declare namespace ComboboxGroupLabel {
|
|
200
205
|
var displayName: string;
|
|
201
206
|
}
|
|
202
207
|
|
|
203
208
|
|
|
204
|
-
declare namespace
|
|
209
|
+
declare namespace ComboboxClear {
|
|
205
210
|
var displayName: string;
|
|
206
211
|
}
|
|
207
212
|
|
|
208
213
|
|
|
209
|
-
declare namespace
|
|
214
|
+
declare namespace ComboboxChips {
|
|
210
215
|
var displayName: string;
|
|
211
216
|
}
|
|
212
217
|
|
|
213
218
|
|
|
214
|
-
declare namespace
|
|
219
|
+
declare namespace ComboboxChip {
|
|
215
220
|
var displayName: string;
|
|
216
221
|
}
|
|
217
222
|
|
|
218
223
|
|
|
219
|
-
declare namespace
|
|
224
|
+
declare namespace ComboboxChipRemove {
|
|
220
225
|
var displayName: string;
|
|
221
226
|
}
|
|
222
227
|
|
|
223
228
|
|
|
224
|
-
declare namespace
|
|
229
|
+
declare namespace ComboboxValue {
|
|
225
230
|
var displayName: string;
|
|
226
231
|
}
|
|
227
232
|
|
|
228
233
|
|
|
229
|
-
declare namespace
|
|
234
|
+
declare namespace ComboboxStatus {
|
|
230
235
|
var displayName: string;
|
|
231
236
|
}
|
|
232
237
|
|
|
233
238
|
|
|
234
|
-
declare namespace
|
|
239
|
+
declare namespace ComboboxCollection {
|
|
235
240
|
var displayName: string;
|
|
236
241
|
}
|
|
237
242
|
|
|
238
243
|
|
|
239
|
-
declare namespace
|
|
244
|
+
declare namespace Root {
|
|
240
245
|
var displayName: string;
|
|
241
246
|
}
|
|
242
247
|
|
|
243
248
|
|
|
244
|
-
declare namespace
|
|
249
|
+
declare namespace Label {
|
|
245
250
|
var displayName: string;
|
|
246
251
|
}
|
|
247
252
|
|
|
248
253
|
|
|
249
|
-
declare namespace
|
|
254
|
+
declare namespace Control {
|
|
250
255
|
var displayName: string;
|
|
251
256
|
}
|
|
252
257
|
|
|
253
258
|
|
|
254
|
-
declare namespace
|
|
259
|
+
declare namespace Description {
|
|
255
260
|
var displayName: string;
|
|
256
261
|
}
|
|
257
262
|
|
|
258
263
|
|
|
259
|
-
declare namespace
|
|
264
|
+
declare namespace Error {
|
|
260
265
|
var displayName: string;
|
|
261
266
|
}
|
|
262
267
|
|
|
263
268
|
|
|
264
|
-
declare namespace
|
|
269
|
+
declare namespace Validity {
|
|
265
270
|
var displayName: string;
|
|
266
271
|
}
|
|
267
272
|
|
|
268
273
|
|
|
269
|
-
declare namespace
|
|
274
|
+
declare namespace Root {
|
|
270
275
|
var displayName: string;
|
|
271
276
|
}
|
|
272
277
|
|
|
273
278
|
|
|
274
|
-
declare namespace
|
|
279
|
+
declare namespace Trigger {
|
|
275
280
|
var displayName: string;
|
|
276
281
|
}
|
|
277
282
|
|
|
278
283
|
|
|
279
|
-
declare namespace
|
|
284
|
+
declare namespace Content {
|
|
280
285
|
var displayName: string;
|
|
281
286
|
}
|
|
282
287
|
|
|
283
288
|
|
|
284
|
-
declare namespace
|
|
289
|
+
declare namespace Item {
|
|
285
290
|
var displayName: string;
|
|
286
291
|
}
|
|
287
292
|
|
|
288
293
|
|
|
289
|
-
declare namespace
|
|
294
|
+
declare namespace LinkItem {
|
|
290
295
|
var displayName: string;
|
|
291
296
|
}
|
|
292
297
|
|
|
293
298
|
|
|
294
|
-
declare namespace
|
|
299
|
+
declare namespace CheckboxItem {
|
|
295
300
|
var displayName: string;
|
|
296
301
|
}
|
|
297
302
|
|
|
298
303
|
|
|
299
|
-
declare namespace
|
|
304
|
+
declare namespace CheckboxItemIndicator {
|
|
300
305
|
var displayName: string;
|
|
301
306
|
}
|
|
302
307
|
|
|
303
308
|
|
|
304
|
-
declare namespace
|
|
309
|
+
declare namespace RadioItem {
|
|
305
310
|
var displayName: string;
|
|
306
311
|
}
|
|
307
312
|
|
|
308
313
|
|
|
309
|
-
declare namespace
|
|
314
|
+
declare namespace RadioItemIndicator {
|
|
310
315
|
var displayName: string;
|
|
311
316
|
}
|
|
312
317
|
|
|
313
318
|
|
|
314
|
-
declare namespace
|
|
319
|
+
declare namespace RadioGroup {
|
|
315
320
|
var displayName: string;
|
|
316
321
|
}
|
|
317
322
|
|
|
318
323
|
|
|
319
|
-
declare namespace
|
|
324
|
+
declare namespace Group {
|
|
320
325
|
var displayName: string;
|
|
321
326
|
}
|
|
322
327
|
|
|
323
328
|
|
|
324
|
-
declare namespace
|
|
329
|
+
declare namespace GroupLabel {
|
|
325
330
|
var displayName: string;
|
|
326
331
|
}
|
|
327
332
|
|
|
328
333
|
|
|
329
|
-
declare namespace
|
|
334
|
+
declare namespace MenuSeparator {
|
|
330
335
|
var displayName: string;
|
|
331
336
|
}
|
|
332
337
|
|
|
333
338
|
|
|
334
|
-
declare namespace
|
|
339
|
+
declare namespace SubmenuRoot {
|
|
340
|
+
var displayName: string;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
|
|
344
|
+
declare namespace SubmenuTrigger {
|
|
335
345
|
var displayName: string;
|
|
336
346
|
}
|
|
337
347
|
|
|
@@ -356,47 +366,62 @@ declare namespace Separator {
|
|
|
356
366
|
}
|
|
357
367
|
|
|
358
368
|
|
|
359
|
-
declare namespace
|
|
369
|
+
declare namespace Root {
|
|
360
370
|
var displayName: string;
|
|
361
371
|
}
|
|
362
372
|
|
|
363
373
|
|
|
364
|
-
declare namespace
|
|
374
|
+
declare namespace Trigger {
|
|
365
375
|
var displayName: string;
|
|
366
376
|
}
|
|
367
377
|
|
|
368
378
|
|
|
369
|
-
declare namespace
|
|
379
|
+
declare namespace Close {
|
|
370
380
|
var displayName: string;
|
|
371
381
|
}
|
|
372
382
|
|
|
373
383
|
|
|
374
|
-
declare namespace
|
|
384
|
+
declare namespace Content {
|
|
375
385
|
var displayName: string;
|
|
376
386
|
}
|
|
377
387
|
|
|
378
388
|
|
|
379
|
-
declare namespace
|
|
389
|
+
declare namespace Header {
|
|
380
390
|
var displayName: string;
|
|
381
391
|
}
|
|
382
392
|
|
|
383
393
|
|
|
384
|
-
declare namespace
|
|
394
|
+
declare namespace Footer {
|
|
385
395
|
var displayName: string;
|
|
386
396
|
}
|
|
387
397
|
|
|
388
398
|
|
|
389
|
-
declare namespace
|
|
399
|
+
declare namespace Title {
|
|
390
400
|
var displayName: string;
|
|
391
401
|
}
|
|
392
402
|
|
|
393
403
|
|
|
394
|
-
declare namespace
|
|
404
|
+
declare namespace Description {
|
|
395
405
|
var displayName: string;
|
|
396
406
|
}
|
|
397
407
|
|
|
398
408
|
|
|
399
|
-
declare namespace
|
|
409
|
+
declare namespace Root {
|
|
410
|
+
var displayName: string;
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
|
|
414
|
+
declare namespace List {
|
|
415
|
+
var displayName: string;
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
declare namespace Tab {
|
|
420
|
+
var displayName: string;
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
|
|
424
|
+
declare namespace Panel {
|
|
400
425
|
var displayName: string;
|
|
401
426
|
}
|
|
402
427
|
|
|
@@ -406,97 +431,107 @@ declare namespace Root {
|
|
|
406
431
|
}
|
|
407
432
|
|
|
408
433
|
|
|
434
|
+
declare namespace Title {
|
|
435
|
+
var displayName: string;
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
|
|
439
|
+
declare namespace Description {
|
|
440
|
+
var displayName: string;
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
|
|
409
444
|
declare namespace Trigger {
|
|
410
445
|
var displayName: string;
|
|
411
446
|
}
|
|
412
447
|
|
|
413
448
|
|
|
414
|
-
declare namespace
|
|
449
|
+
declare namespace Settings {
|
|
415
450
|
var displayName: string;
|
|
416
451
|
}
|
|
417
452
|
|
|
418
453
|
|
|
419
|
-
declare namespace
|
|
454
|
+
declare namespace Provider {
|
|
420
455
|
var displayName: string;
|
|
421
456
|
}
|
|
422
457
|
|
|
423
458
|
|
|
424
|
-
declare namespace
|
|
459
|
+
declare namespace Root {
|
|
425
460
|
var displayName: string;
|
|
426
461
|
}
|
|
427
462
|
|
|
428
463
|
|
|
429
|
-
declare namespace
|
|
464
|
+
declare namespace Header {
|
|
430
465
|
var displayName: string;
|
|
431
466
|
}
|
|
432
467
|
|
|
433
468
|
|
|
434
|
-
declare namespace
|
|
469
|
+
declare namespace ClearAll {
|
|
435
470
|
var displayName: string;
|
|
436
471
|
}
|
|
437
472
|
|
|
438
473
|
|
|
439
|
-
declare namespace
|
|
474
|
+
declare namespace Sections {
|
|
440
475
|
var displayName: string;
|
|
441
476
|
}
|
|
442
477
|
|
|
443
478
|
|
|
444
|
-
declare namespace
|
|
479
|
+
declare namespace Provider {
|
|
445
480
|
var displayName: string;
|
|
446
481
|
}
|
|
447
482
|
|
|
448
483
|
|
|
449
|
-
declare namespace
|
|
484
|
+
declare namespace Root {
|
|
450
485
|
var displayName: string;
|
|
451
486
|
}
|
|
452
487
|
|
|
453
488
|
|
|
454
|
-
declare namespace
|
|
489
|
+
declare namespace Trigger {
|
|
455
490
|
var displayName: string;
|
|
456
491
|
}
|
|
457
492
|
|
|
458
493
|
|
|
459
|
-
declare namespace
|
|
494
|
+
declare namespace Content {
|
|
460
495
|
var displayName: string;
|
|
461
496
|
}
|
|
462
497
|
|
|
463
498
|
|
|
464
|
-
declare namespace
|
|
499
|
+
declare namespace SelectRoot {
|
|
465
500
|
var displayName: string;
|
|
466
501
|
}
|
|
467
502
|
|
|
468
503
|
|
|
469
|
-
declare namespace
|
|
504
|
+
declare namespace SelectTrigger {
|
|
470
505
|
var displayName: string;
|
|
471
506
|
}
|
|
472
507
|
|
|
473
508
|
|
|
474
|
-
declare namespace
|
|
509
|
+
declare namespace SelectValue {
|
|
475
510
|
var displayName: string;
|
|
476
511
|
}
|
|
477
512
|
|
|
478
513
|
|
|
479
|
-
declare namespace
|
|
514
|
+
declare namespace SelectContent {
|
|
480
515
|
var displayName: string;
|
|
481
516
|
}
|
|
482
517
|
|
|
483
518
|
|
|
484
|
-
declare namespace
|
|
519
|
+
declare namespace SelectItem {
|
|
485
520
|
var displayName: string;
|
|
486
521
|
}
|
|
487
522
|
|
|
488
523
|
|
|
489
|
-
declare namespace
|
|
524
|
+
declare namespace SelectGroup {
|
|
490
525
|
var displayName: string;
|
|
491
526
|
}
|
|
492
527
|
|
|
493
528
|
|
|
494
|
-
declare namespace
|
|
529
|
+
declare namespace SelectGroupLabel {
|
|
495
530
|
var displayName: string;
|
|
496
531
|
}
|
|
497
532
|
|
|
498
533
|
|
|
499
|
-
declare namespace
|
|
534
|
+
declare namespace SelectSeparator {
|
|
500
535
|
var displayName: string;
|
|
501
536
|
}
|
|
502
537
|
|
package/package.json
CHANGED
|
@@ -59,6 +59,7 @@ Every AppShell component, its API surface, and usage guidance. Read the entry fo
|
|
|
59
59
|
| [DescriptionCard](references/components/description-card.md) | Display structured key-value information in a responsive grid layout with automatic field rendering |
|
|
60
60
|
| [Dialog](references/components/dialog.md) | Modal dialog with a compound component API |
|
|
61
61
|
| [DocumentProgressCard](references/components/document-progress-card.md) | Generic card visualising a document's lifecycle state — optional percentage, stacked progress bar, and status legend |
|
|
62
|
+
| [FilterRail](references/components/filter-rail.md) | An always-visible faceted filter rail with user layout settings, driven by the same CollectionControl as DataTable |
|
|
62
63
|
| [Form, Field, and Fieldset](references/components/form.md) | Components for building validated forms with automatic accessibility wiring, validation state management, and optional React Hook Form integration |
|
|
63
64
|
| [GlobalHeaderLayout](references/components/global-header-layout.md) | Opinionated layout with an app-wide header above the whole shell and a sidebar that collapses to a persistent icon rail |
|
|
64
65
|
| [Grid](references/components/grid.md) | Generic CSS-Grid layout primitive for equal or custom-width columns with responsive reflow, auto-fit, and spanning |
|
|
@@ -71,6 +72,7 @@ Every AppShell component, its API surface, and usage guidance. Read the entry fo
|
|
|
71
72
|
| [SidebarGroup](references/components/sidebar-group.md) | Collapsible group component for organizing sidebar navigation items with icons and nested structure |
|
|
72
73
|
| [SidebarItem](references/components/sidebar-item.md) | Individual navigation item for customizing sidebar with icons, active states, and external links |
|
|
73
74
|
| [SidebarLayout](references/components/sidebar-layout.md) | Default AppShell layout with a built-in sidebar, content header, optional app-wide top bar, and an escape-hatch body slot |
|
|
75
|
+
| [SidebarSection](references/components/sidebar-section.md) | Static, non-collapsible heading for grouping flat sidebar navigation items |
|
|
74
76
|
| [Spinner](references/components/spinner.md) | Lightweight loading indicator component with accessible defaults and preset sizes |
|
|
75
77
|
| [Table](references/components/table.md) | Semantic HTML table with pre-styled sub-components |
|
|
76
78
|
| [Tabs](references/components/tabs.md) | Tab navigation with a compound component API |
|
|
@@ -134,11 +136,11 @@ A page is the shape of a whole screen — the outer choice, made before picking
|
|
|
134
136
|
|
|
135
137
|
### interaction
|
|
136
138
|
|
|
137
|
-
| Slug | Name | Description
|
|
138
|
-
| ----------------------------------------------------------------------------- | ------------ |
|
|
139
|
-
| [`interaction/confirm`](references/patterns/interaction-confirm.md) | Confirm | Confirmation dialog before destructive or irreversible actions
|
|
140
|
-
| [`interaction/multi-select`](references/patterns/interaction-multi-select.md) | Multi Select |
|
|
141
|
-
| [`interaction/toast`](references/patterns/interaction-toast.md) | Toast | Lightweight feedback after mutations — success or error notifications
|
|
139
|
+
| Slug | Name | Description |
|
|
140
|
+
| ----------------------------------------------------------------------------- | ------------ | --------------------------------------------------------------------------------------- |
|
|
141
|
+
| [`interaction/confirm`](references/patterns/interaction-confirm.md) | Confirm | Confirmation dialog before destructive or irreversible actions |
|
|
142
|
+
| [`interaction/multi-select`](references/patterns/interaction-multi-select.md) | Multi Select | Bulk operations on selected DataTable rows, from a bar that takes over the table footer |
|
|
143
|
+
| [`interaction/toast`](references/patterns/interaction-toast.md) | Toast | Lightweight feedback after mutations — success or error notifications |
|
|
142
144
|
|
|
143
145
|
### list
|
|
144
146
|
|
|
@@ -70,8 +70,8 @@ defineModule({
|
|
|
70
70
|
|
|
71
71
|
**meta.breadcrumbTitle**
|
|
72
72
|
|
|
73
|
-
- **Type:** `string | ((segment: string) =>
|
|
74
|
-
- **Description:** Custom breadcrumb segment title override
|
|
73
|
+
- **Type:** `string | ((segment: string) => LocalizedString)`
|
|
74
|
+
- **Description:** Custom breadcrumb segment title override. Pass `labels.t(key)` directly for localization: `breadcrumbTitle: labels.t("dashboard")`. Other callbacks receive the URL segment and may return a `LocalizedString`, resolved using the current locale. The existing `() => labels.t(key)` form remains supported; handwritten locale functions must be returned from an outer callback. When omitted, the breadcrumb uses the localized `meta.title`.
|
|
75
75
|
|
|
76
76
|
### `guards`
|
|
77
77
|
|
|
@@ -65,8 +65,8 @@ defineResource({
|
|
|
65
65
|
|
|
66
66
|
**meta.breadcrumbTitle**
|
|
67
67
|
|
|
68
|
-
- **Type:** `string | ((segment: string) =>
|
|
69
|
-
- **Description:** Custom breadcrumb segment title
|
|
68
|
+
- **Type:** `string | ((segment: string) => LocalizedString)`
|
|
69
|
+
- **Description:** Custom breadcrumb segment title. Pass `labels.t(key)` directly for localization: `breadcrumbTitle: labels.t("orders")`. Other callbacks receive the URL segment and may return a `LocalizedString`, for example `breadcrumbTitle: (segment) => labels.t("order", { id: segment })` for a dynamic label. AppShell resolves it using the current locale. The existing `() => labels.t(key)` form remains supported; handwritten locale functions must be returned from an outer callback. When omitted, the breadcrumb uses the localized `meta.title`.
|
|
70
70
|
|
|
71
71
|
### `subResources`
|
|
72
72
|
|