@nomiedge/registry 0.1.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/registry.json ADDED
@@ -0,0 +1,1060 @@
1
+ {
2
+ "version": "0.1.0",
3
+ "schemaVersion": 1,
4
+ "generatedAt": "2026-07-06T21:20:20.631Z",
5
+ "entries": [
6
+ {
7
+ "kind": "chart",
8
+ "name": "AreaChart",
9
+ "source": "packages/charts/src/charts/AreaChart.tsx",
10
+ "dependencies": [
11
+ "@nomiedge/motion"
12
+ ],
13
+ "props": [
14
+ {
15
+ "name": "data",
16
+ "type": "T[]",
17
+ "required": true
18
+ },
19
+ {
20
+ "name": "x",
21
+ "type": "string | number | symbol",
22
+ "required": true
23
+ },
24
+ {
25
+ "name": "series",
26
+ "type": "CartesianSeriesDescriptor<T>[]",
27
+ "required": true
28
+ },
29
+ {
30
+ "name": "ariaLabel",
31
+ "type": "string",
32
+ "required": true
33
+ },
34
+ {
35
+ "name": "height",
36
+ "type": "number",
37
+ "required": false,
38
+ "defaultValue": "240"
39
+ }
40
+ ]
41
+ },
42
+ {
43
+ "kind": "chart",
44
+ "name": "BarChart",
45
+ "source": "packages/charts/src/charts/BarChart.tsx",
46
+ "dependencies": [
47
+ "@nomiedge/tokens",
48
+ "@nomiedge/motion"
49
+ ],
50
+ "props": [
51
+ {
52
+ "name": "data",
53
+ "type": "T[]",
54
+ "required": true
55
+ },
56
+ {
57
+ "name": "x",
58
+ "type": "string | number | symbol",
59
+ "required": true
60
+ },
61
+ {
62
+ "name": "series",
63
+ "type": "CartesianSeriesDescriptor<T>[]",
64
+ "required": true
65
+ },
66
+ {
67
+ "name": "ariaLabel",
68
+ "type": "string",
69
+ "required": true
70
+ },
71
+ {
72
+ "name": "height",
73
+ "type": "number",
74
+ "required": false,
75
+ "defaultValue": "240"
76
+ }
77
+ ]
78
+ },
79
+ {
80
+ "kind": "chart",
81
+ "name": "ChartContainer",
82
+ "source": "packages/charts/src/primitives/ChartContainer.tsx",
83
+ "dependencies": [],
84
+ "props": [
85
+ {
86
+ "name": "height",
87
+ "type": "number",
88
+ "required": true
89
+ }
90
+ ]
91
+ },
92
+ {
93
+ "kind": "chart",
94
+ "name": "ChartTable",
95
+ "source": "packages/charts/src/a11y/ChartTable.tsx",
96
+ "dependencies": [],
97
+ "props": [
98
+ {
99
+ "name": "data",
100
+ "type": "T[]",
101
+ "required": true
102
+ },
103
+ {
104
+ "name": "columns",
105
+ "type": "ChartTableColumn<T>[]",
106
+ "required": true
107
+ },
108
+ {
109
+ "name": "caption",
110
+ "type": "string",
111
+ "required": true
112
+ }
113
+ ]
114
+ },
115
+ {
116
+ "kind": "chart",
117
+ "name": "LineChart",
118
+ "source": "packages/charts/src/charts/LineChart.tsx",
119
+ "dependencies": [
120
+ "@nomiedge/motion"
121
+ ],
122
+ "props": [
123
+ {
124
+ "name": "data",
125
+ "type": "T[]",
126
+ "required": true
127
+ },
128
+ {
129
+ "name": "x",
130
+ "type": "string | number | symbol",
131
+ "required": true
132
+ },
133
+ {
134
+ "name": "series",
135
+ "type": "CartesianSeriesDescriptor<T>[]",
136
+ "required": true
137
+ },
138
+ {
139
+ "name": "ariaLabel",
140
+ "type": "string",
141
+ "required": true
142
+ },
143
+ {
144
+ "name": "height",
145
+ "type": "number",
146
+ "required": false,
147
+ "defaultValue": "240"
148
+ }
149
+ ]
150
+ },
151
+ {
152
+ "kind": "chart",
153
+ "name": "RadialChart",
154
+ "source": "packages/charts/src/charts/RadialChart.tsx",
155
+ "dependencies": [
156
+ "@nomiedge/motion"
157
+ ],
158
+ "props": [
159
+ {
160
+ "name": "data",
161
+ "type": "T[]",
162
+ "required": true
163
+ },
164
+ {
165
+ "name": "series",
166
+ "type": "RadialSeriesDescriptor<T>[]",
167
+ "required": true
168
+ },
169
+ {
170
+ "name": "ariaLabel",
171
+ "type": "string",
172
+ "required": true
173
+ },
174
+ {
175
+ "name": "centerLabel",
176
+ "type": "string",
177
+ "required": false
178
+ },
179
+ {
180
+ "name": "height",
181
+ "type": "number",
182
+ "required": false,
183
+ "defaultValue": "240"
184
+ }
185
+ ]
186
+ },
187
+ {
188
+ "kind": "chart",
189
+ "name": "Sparkline",
190
+ "source": "packages/charts/src/charts/Sparkline.tsx",
191
+ "dependencies": [
192
+ "@nomiedge/motion"
193
+ ],
194
+ "props": [
195
+ {
196
+ "name": "data",
197
+ "type": "T[]",
198
+ "required": true
199
+ },
200
+ {
201
+ "name": "seriesKey",
202
+ "type": "string | number | symbol",
203
+ "required": true
204
+ },
205
+ {
206
+ "name": "ariaLabel",
207
+ "type": "string",
208
+ "required": true
209
+ },
210
+ {
211
+ "name": "height",
212
+ "type": "number",
213
+ "required": false,
214
+ "defaultValue": "32"
215
+ }
216
+ ]
217
+ },
218
+ {
219
+ "kind": "component",
220
+ "name": "Button",
221
+ "source": "packages/ui/src/button.tsx",
222
+ "dependencies": [],
223
+ "props": [
224
+ {
225
+ "name": "loading",
226
+ "type": "boolean",
227
+ "required": false,
228
+ "defaultValue": "false",
229
+ "description": "Shows a spinner in place of `leadingIcon`, disables the button, and sets `aria-busy`."
230
+ },
231
+ {
232
+ "name": "disabled",
233
+ "type": "boolean",
234
+ "required": false,
235
+ "defaultValue": "false",
236
+ "description": "Disables the button — a named prop instead of the raw HTML attribute so `loading` can also disable it without conflicting logic at every call site."
237
+ },
238
+ {
239
+ "name": "leadingIcon",
240
+ "type": "ReactNode",
241
+ "required": false,
242
+ "description": "Rendered before the label; replaced by the spinner when `loading` is true."
243
+ },
244
+ {
245
+ "name": "trailingIcon",
246
+ "type": "ReactNode",
247
+ "required": false,
248
+ "description": "Rendered after the label; hidden while `loading` is true."
249
+ },
250
+ {
251
+ "name": "asChild",
252
+ "type": "boolean",
253
+ "required": false,
254
+ "defaultValue": "false",
255
+ "description": "Renders the single child element with Button's classes merged in, instead of a `<button>` —\nfor cases like a download link or a Next.js `<Link>` that needs to look like a button\nwithout nesting an interactive element inside another (invalid HTML: `<a>` inside\n`<button>`). Incompatible with `loading`/`leadingIcon`/`trailingIcon`, which assume a\n`<button>`'s content model of multiple children Slot doesn't support (Slot merges props into\nexactly one child, it doesn't wrap several)."
256
+ },
257
+ {
258
+ "name": "variant",
259
+ "type": "\"primary\" | \"secondary\" | \"ghost\"",
260
+ "required": false
261
+ },
262
+ {
263
+ "name": "size",
264
+ "type": "\"sm\" | \"md\" | \"lg\"",
265
+ "required": false
266
+ }
267
+ ]
268
+ },
269
+ {
270
+ "kind": "component",
271
+ "name": "Card",
272
+ "source": "packages/ui/src/card.tsx",
273
+ "dependencies": [],
274
+ "props": [
275
+ {
276
+ "name": "elevated",
277
+ "type": "boolean",
278
+ "required": false,
279
+ "defaultValue": "false",
280
+ "description": "Adds `shadow.sm` — for a card that needs to lift above other content (e.g. inside a dropdown), not everyday page layout."
281
+ }
282
+ ]
283
+ },
284
+ {
285
+ "kind": "component",
286
+ "name": "CardContent",
287
+ "source": "packages/ui/src/card.tsx",
288
+ "dependencies": [],
289
+ "props": []
290
+ },
291
+ {
292
+ "kind": "component",
293
+ "name": "CardFooter",
294
+ "source": "packages/ui/src/card.tsx",
295
+ "dependencies": [],
296
+ "props": []
297
+ },
298
+ {
299
+ "kind": "component",
300
+ "name": "CardHeader",
301
+ "source": "packages/ui/src/card.tsx",
302
+ "dependencies": [],
303
+ "props": []
304
+ },
305
+ {
306
+ "kind": "component",
307
+ "name": "CardTitle",
308
+ "source": "packages/ui/src/card.tsx",
309
+ "dependencies": [],
310
+ "props": []
311
+ },
312
+ {
313
+ "kind": "component",
314
+ "name": "Dialog",
315
+ "source": "packages/ui/src/dialog.tsx",
316
+ "dependencies": [
317
+ "@nomiedge/motion",
318
+ "@nomiedge/tokens"
319
+ ],
320
+ "props": []
321
+ },
322
+ {
323
+ "kind": "component",
324
+ "name": "DialogClose",
325
+ "source": "packages/ui/src/dialog.tsx",
326
+ "dependencies": [
327
+ "@nomiedge/motion",
328
+ "@nomiedge/tokens"
329
+ ],
330
+ "props": [
331
+ {
332
+ "name": "asChild",
333
+ "type": "boolean",
334
+ "required": false
335
+ }
336
+ ]
337
+ },
338
+ {
339
+ "kind": "component",
340
+ "name": "DialogContent",
341
+ "source": "packages/ui/src/dialog.tsx",
342
+ "dependencies": [
343
+ "@nomiedge/motion",
344
+ "@nomiedge/tokens"
345
+ ],
346
+ "props": [
347
+ {
348
+ "name": "asChild",
349
+ "type": "boolean",
350
+ "required": false
351
+ }
352
+ ]
353
+ },
354
+ {
355
+ "kind": "component",
356
+ "name": "DialogDescription",
357
+ "source": "packages/ui/src/dialog.tsx",
358
+ "dependencies": [
359
+ "@nomiedge/motion",
360
+ "@nomiedge/tokens"
361
+ ],
362
+ "props": [
363
+ {
364
+ "name": "asChild",
365
+ "type": "boolean",
366
+ "required": false
367
+ }
368
+ ]
369
+ },
370
+ {
371
+ "kind": "component",
372
+ "name": "DialogFooter",
373
+ "source": "packages/ui/src/dialog.tsx",
374
+ "dependencies": [
375
+ "@nomiedge/motion",
376
+ "@nomiedge/tokens"
377
+ ],
378
+ "props": []
379
+ },
380
+ {
381
+ "kind": "component",
382
+ "name": "DialogHeader",
383
+ "source": "packages/ui/src/dialog.tsx",
384
+ "dependencies": [
385
+ "@nomiedge/motion",
386
+ "@nomiedge/tokens"
387
+ ],
388
+ "props": []
389
+ },
390
+ {
391
+ "kind": "component",
392
+ "name": "DialogOverlay",
393
+ "source": "packages/ui/src/dialog.tsx",
394
+ "dependencies": [
395
+ "@nomiedge/motion",
396
+ "@nomiedge/tokens"
397
+ ],
398
+ "props": [
399
+ {
400
+ "name": "asChild",
401
+ "type": "boolean",
402
+ "required": false
403
+ }
404
+ ]
405
+ },
406
+ {
407
+ "kind": "component",
408
+ "name": "DialogTitle",
409
+ "source": "packages/ui/src/dialog.tsx",
410
+ "dependencies": [
411
+ "@nomiedge/motion",
412
+ "@nomiedge/tokens"
413
+ ],
414
+ "props": [
415
+ {
416
+ "name": "asChild",
417
+ "type": "boolean",
418
+ "required": false
419
+ }
420
+ ]
421
+ },
422
+ {
423
+ "kind": "component",
424
+ "name": "DialogTrigger",
425
+ "source": "packages/ui/src/dialog.tsx",
426
+ "dependencies": [
427
+ "@nomiedge/motion",
428
+ "@nomiedge/tokens"
429
+ ],
430
+ "props": [
431
+ {
432
+ "name": "asChild",
433
+ "type": "boolean",
434
+ "required": false
435
+ }
436
+ ]
437
+ },
438
+ {
439
+ "kind": "component",
440
+ "name": "FocusLine",
441
+ "source": "packages/ui/src/focus-line.tsx",
442
+ "dependencies": [
443
+ "@nomiedge/motion",
444
+ "@nomiedge/tokens"
445
+ ],
446
+ "props": [
447
+ {
448
+ "name": "orientation",
449
+ "type": "\"horizontal\" | \"vertical\"",
450
+ "required": false,
451
+ "defaultValue": "horizontal",
452
+ "description": "Which axis the line runs along. Defaults to \"horizontal\"."
453
+ },
454
+ {
455
+ "name": "variant",
456
+ "type": "\"loading\" | \"separator\" | \"indicator\"",
457
+ "required": false,
458
+ "defaultValue": "indicator",
459
+ "description": "Which mode this line renders as — the three uses `38-focus-line.md` names, not options that overlap."
460
+ },
461
+ {
462
+ "name": "active",
463
+ "type": "boolean",
464
+ "required": false,
465
+ "defaultValue": "false",
466
+ "description": "Only meaningful for `variant=\"indicator\"` — whether the accent line is visible right now."
467
+ },
468
+ {
469
+ "name": "className",
470
+ "type": "string",
471
+ "required": false,
472
+ "description": "Merged onto the root element's class list."
473
+ }
474
+ ]
475
+ },
476
+ {
477
+ "kind": "component",
478
+ "name": "Input",
479
+ "source": "packages/ui/src/input.tsx",
480
+ "dependencies": [],
481
+ "props": []
482
+ },
483
+ {
484
+ "kind": "component",
485
+ "name": "Label",
486
+ "source": "packages/ui/src/label.tsx",
487
+ "dependencies": [],
488
+ "props": []
489
+ },
490
+ {
491
+ "kind": "component",
492
+ "name": "Logo",
493
+ "source": "packages/ui/src/logo.tsx",
494
+ "dependencies": [
495
+ "@nomiedge/logo"
496
+ ],
497
+ "props": [
498
+ {
499
+ "name": "size",
500
+ "type": "\"sm\" | \"md\" | \"lg\"",
501
+ "required": false,
502
+ "defaultValue": "md",
503
+ "description": "`sm` for compact contexts (a nav bar), `md` for general use, `lg` for hero/splash placement."
504
+ },
505
+ {
506
+ "name": "markOnly",
507
+ "type": "boolean",
508
+ "required": false,
509
+ "defaultValue": "false",
510
+ "description": "Mark only (no wordmark) — for icon-only placements like a collapsed sidebar rail."
511
+ },
512
+ {
513
+ "name": "orientation",
514
+ "type": "\"horizontal\" | \"stacked\"",
515
+ "required": false,
516
+ "defaultValue": "horizontal",
517
+ "description": "Mark beside the wordmark, or mark above it. Ignored when `markOnly` is true. Defaults to \"horizontal\"."
518
+ },
519
+ {
520
+ "name": "className",
521
+ "type": "string",
522
+ "required": false,
523
+ "description": "Merged onto the rendered element's class list."
524
+ }
525
+ ]
526
+ },
527
+ {
528
+ "kind": "component",
529
+ "name": "Sidebar",
530
+ "source": "packages/ui/src/sidebar.tsx",
531
+ "dependencies": [],
532
+ "props": []
533
+ },
534
+ {
535
+ "kind": "component",
536
+ "name": "SidebarFooter",
537
+ "source": "packages/ui/src/sidebar.tsx",
538
+ "dependencies": [],
539
+ "props": []
540
+ },
541
+ {
542
+ "kind": "component",
543
+ "name": "SidebarHeader",
544
+ "source": "packages/ui/src/sidebar.tsx",
545
+ "dependencies": [],
546
+ "props": []
547
+ },
548
+ {
549
+ "kind": "component",
550
+ "name": "SidebarNav",
551
+ "source": "packages/ui/src/sidebar.tsx",
552
+ "dependencies": [],
553
+ "props": []
554
+ },
555
+ {
556
+ "kind": "component",
557
+ "name": "SidebarNavItem",
558
+ "source": "packages/ui/src/sidebar.tsx",
559
+ "dependencies": [],
560
+ "props": [
561
+ {
562
+ "name": "active",
563
+ "type": "boolean",
564
+ "required": false,
565
+ "defaultValue": "false",
566
+ "description": "Marks this as the current page — shows the accent indicator line and sets `aria-current=\"page\"`."
567
+ }
568
+ ]
569
+ },
570
+ {
571
+ "kind": "component",
572
+ "name": "Tabs",
573
+ "source": "packages/ui/src/tabs.tsx",
574
+ "dependencies": [],
575
+ "props": [
576
+ {
577
+ "name": "asChild",
578
+ "type": "boolean",
579
+ "required": false
580
+ }
581
+ ]
582
+ },
583
+ {
584
+ "kind": "component",
585
+ "name": "TabsContent",
586
+ "source": "packages/ui/src/tabs.tsx",
587
+ "dependencies": [],
588
+ "props": [
589
+ {
590
+ "name": "asChild",
591
+ "type": "boolean",
592
+ "required": false
593
+ }
594
+ ]
595
+ },
596
+ {
597
+ "kind": "component",
598
+ "name": "TabsList",
599
+ "source": "packages/ui/src/tabs.tsx",
600
+ "dependencies": [],
601
+ "props": [
602
+ {
603
+ "name": "asChild",
604
+ "type": "boolean",
605
+ "required": false
606
+ }
607
+ ]
608
+ },
609
+ {
610
+ "kind": "component",
611
+ "name": "TabsTrigger",
612
+ "source": "packages/ui/src/tabs.tsx",
613
+ "dependencies": [],
614
+ "props": [
615
+ {
616
+ "name": "asChild",
617
+ "type": "boolean",
618
+ "required": false
619
+ }
620
+ ]
621
+ },
622
+ {
623
+ "kind": "component",
624
+ "name": "Textarea",
625
+ "source": "packages/ui/src/textarea.tsx",
626
+ "dependencies": [],
627
+ "props": []
628
+ },
629
+ {
630
+ "kind": "icon",
631
+ "name": "ArrowRight",
632
+ "source": "packages/icons/src/icons/arrow-right.tsx"
633
+ },
634
+ {
635
+ "kind": "icon",
636
+ "name": "Check",
637
+ "source": "packages/icons/src/icons/check.tsx"
638
+ },
639
+ {
640
+ "kind": "icon",
641
+ "name": "ChevronDown",
642
+ "source": "packages/icons/src/icons/chevron-down.tsx"
643
+ },
644
+ {
645
+ "kind": "icon",
646
+ "name": "Command",
647
+ "source": "packages/icons/src/icons/command.tsx"
648
+ },
649
+ {
650
+ "kind": "icon",
651
+ "name": "Copy",
652
+ "source": "packages/icons/src/icons/copy.tsx"
653
+ },
654
+ {
655
+ "kind": "icon",
656
+ "name": "Download",
657
+ "source": "packages/icons/src/icons/download.tsx"
658
+ },
659
+ {
660
+ "kind": "icon",
661
+ "name": "ExternalLink",
662
+ "source": "packages/icons/src/icons/external-link.tsx"
663
+ },
664
+ {
665
+ "kind": "icon",
666
+ "name": "Menu",
667
+ "source": "packages/icons/src/icons/menu.tsx"
668
+ },
669
+ {
670
+ "kind": "icon",
671
+ "name": "Moon",
672
+ "source": "packages/icons/src/icons/moon.tsx"
673
+ },
674
+ {
675
+ "kind": "icon",
676
+ "name": "Search",
677
+ "source": "packages/icons/src/icons/search.tsx"
678
+ },
679
+ {
680
+ "kind": "icon",
681
+ "name": "Sun",
682
+ "source": "packages/icons/src/icons/sun.tsx"
683
+ },
684
+ {
685
+ "kind": "icon",
686
+ "name": "X",
687
+ "source": "packages/icons/src/icons/x.tsx"
688
+ },
689
+ {
690
+ "kind": "motionPreset",
691
+ "name": "MotionConfig",
692
+ "source": "packages/motion/src/components/MotionConfig.tsx"
693
+ },
694
+ {
695
+ "kind": "motionPreset",
696
+ "name": "Transition",
697
+ "source": "packages/motion/src/components/Transition.tsx"
698
+ },
699
+ {
700
+ "kind": "motionPreset",
701
+ "name": "fade",
702
+ "source": "packages/motion/src/presets/fade.ts"
703
+ },
704
+ {
705
+ "kind": "motionPreset",
706
+ "name": "motionCssVars",
707
+ "source": "packages/motion/src/core/cssVars.ts"
708
+ },
709
+ {
710
+ "kind": "motionPreset",
711
+ "name": "scale",
712
+ "source": "packages/motion/src/presets/scale.ts"
713
+ },
714
+ {
715
+ "kind": "motionPreset",
716
+ "name": "slide",
717
+ "source": "packages/motion/src/presets/slide.ts"
718
+ },
719
+ {
720
+ "kind": "motionPreset",
721
+ "name": "strokeReveal",
722
+ "source": "packages/motion/src/presets/strokeReveal.ts"
723
+ },
724
+ {
725
+ "kind": "motionPreset",
726
+ "name": "transition",
727
+ "source": "packages/motion/src/core/transition.ts"
728
+ },
729
+ {
730
+ "kind": "motionPreset",
731
+ "name": "useMotionConfig",
732
+ "source": "packages/motion/src/components/MotionConfig.tsx"
733
+ },
734
+ {
735
+ "kind": "motionPreset",
736
+ "name": "useReducedMotion",
737
+ "source": "packages/motion/src/core/useReducedMotion.ts"
738
+ },
739
+ {
740
+ "kind": "pattern",
741
+ "name": "CommandPalette",
742
+ "source": "packages/patterns/src/command-palette/CommandPalette.tsx",
743
+ "dependencies": [
744
+ "@nomiedge/icons",
745
+ "@nomiedge/ui"
746
+ ],
747
+ "patternDependencies": [],
748
+ "props": [
749
+ {
750
+ "name": "items",
751
+ "type": "T[]",
752
+ "required": true
753
+ },
754
+ {
755
+ "name": "query",
756
+ "type": "string",
757
+ "required": true
758
+ },
759
+ {
760
+ "name": "onQueryChange",
761
+ "type": "(query: string) => void",
762
+ "required": true
763
+ },
764
+ {
765
+ "name": "onSelect",
766
+ "type": "(item: T) => void",
767
+ "required": true
768
+ },
769
+ {
770
+ "name": "renderItem",
771
+ "type": "(item: T) => ReactNode",
772
+ "required": true
773
+ },
774
+ {
775
+ "name": "getItemKey",
776
+ "type": "(item: T) => string",
777
+ "required": true
778
+ },
779
+ {
780
+ "name": "placeholder",
781
+ "type": "string",
782
+ "required": false,
783
+ "defaultValue": "Search..."
784
+ },
785
+ {
786
+ "name": "emptyMessage",
787
+ "type": "string",
788
+ "required": false,
789
+ "defaultValue": "No results."
790
+ },
791
+ {
792
+ "name": "triggerLabel",
793
+ "type": "string",
794
+ "required": false,
795
+ "defaultValue": "Search"
796
+ },
797
+ {
798
+ "name": "open",
799
+ "type": "boolean",
800
+ "required": true
801
+ },
802
+ {
803
+ "name": "onOpenChange",
804
+ "type": "(open: boolean) => void",
805
+ "required": true
806
+ }
807
+ ]
808
+ },
809
+ {
810
+ "kind": "pattern",
811
+ "name": "DataTable",
812
+ "source": "packages/patterns/src/data-table/DataTable.tsx",
813
+ "dependencies": [
814
+ "@nomiedge/ui"
815
+ ],
816
+ "patternDependencies": [
817
+ "EmptyState"
818
+ ],
819
+ "props": [
820
+ {
821
+ "name": "data",
822
+ "type": "T[]",
823
+ "required": true
824
+ },
825
+ {
826
+ "name": "columns",
827
+ "type": "Column<T>[]",
828
+ "required": true
829
+ },
830
+ {
831
+ "name": "emptyState",
832
+ "type": "{ title: string; description?: string; action?: ReactNode; }",
833
+ "required": false
834
+ },
835
+ {
836
+ "name": "getRowKey",
837
+ "type": "(row: T, index: number) => string",
838
+ "required": false
839
+ }
840
+ ]
841
+ },
842
+ {
843
+ "kind": "pattern",
844
+ "name": "EmptyState",
845
+ "source": "packages/patterns/src/empty-state/EmptyState.tsx",
846
+ "dependencies": [
847
+ "@nomiedge/ui"
848
+ ],
849
+ "patternDependencies": [],
850
+ "props": [
851
+ {
852
+ "name": "icon",
853
+ "type": "ReactNode",
854
+ "required": false
855
+ },
856
+ {
857
+ "name": "title",
858
+ "type": "string",
859
+ "required": true
860
+ },
861
+ {
862
+ "name": "description",
863
+ "type": "string",
864
+ "required": false
865
+ },
866
+ {
867
+ "name": "action",
868
+ "type": "ReactNode",
869
+ "required": false
870
+ },
871
+ {
872
+ "name": "className",
873
+ "type": "string",
874
+ "required": false
875
+ }
876
+ ]
877
+ },
878
+ {
879
+ "kind": "pattern",
880
+ "name": "PageHeader",
881
+ "source": "packages/patterns/src/page-header/PageHeader.tsx",
882
+ "dependencies": [
883
+ "@nomiedge/ui"
884
+ ],
885
+ "patternDependencies": [],
886
+ "props": [
887
+ {
888
+ "name": "title",
889
+ "type": "string",
890
+ "required": true
891
+ },
892
+ {
893
+ "name": "description",
894
+ "type": "string",
895
+ "required": false
896
+ },
897
+ {
898
+ "name": "actions",
899
+ "type": "ReactNode",
900
+ "required": false
901
+ },
902
+ {
903
+ "name": "as",
904
+ "type": "\"h1\" | \"h2\"",
905
+ "required": false,
906
+ "defaultValue": "h1",
907
+ "description": "Defaults to \"h1\" — a page header is normally the page's own top-level title. Set \"h2\" only\nwhen composing this mid-page, so the document's real heading hierarchy stays correct.\nMilestone 56 shipped a real heading-order a11y bug from a hardcoded heading level; this prop\nexists so this pattern can't repeat that mistake."
908
+ },
909
+ {
910
+ "name": "className",
911
+ "type": "string",
912
+ "required": false
913
+ }
914
+ ]
915
+ },
916
+ {
917
+ "kind": "pattern",
918
+ "name": "SettingsRow",
919
+ "source": "packages/patterns/src/settings-row/SettingsRow.tsx",
920
+ "dependencies": [
921
+ "@nomiedge/ui"
922
+ ],
923
+ "patternDependencies": [],
924
+ "props": [
925
+ {
926
+ "name": "label",
927
+ "type": "string",
928
+ "required": true
929
+ },
930
+ {
931
+ "name": "description",
932
+ "type": "string",
933
+ "required": false
934
+ },
935
+ {
936
+ "name": "children",
937
+ "type": "ReactElement<{ id?: string; }, string | JSXElementConstructor<any>>",
938
+ "required": true,
939
+ "description": "The control: Input, a toggle button, etc."
940
+ }
941
+ ]
942
+ },
943
+ {
944
+ "kind": "pattern",
945
+ "name": "StatCard",
946
+ "source": "packages/patterns/src/stat-card/StatCard.tsx",
947
+ "dependencies": [
948
+ "@nomiedge/ui"
949
+ ],
950
+ "patternDependencies": [],
951
+ "props": [
952
+ {
953
+ "name": "label",
954
+ "type": "string",
955
+ "required": true
956
+ },
957
+ {
958
+ "name": "value",
959
+ "type": "string | number",
960
+ "required": true
961
+ },
962
+ {
963
+ "name": "trend",
964
+ "type": "{ direction: \"up\" | \"down\" | \"flat\"; value: string; }",
965
+ "required": false
966
+ }
967
+ ]
968
+ },
969
+ {
970
+ "kind": "token",
971
+ "name": "accent",
972
+ "source": "packages/tokens/src/colors.ts"
973
+ },
974
+ {
975
+ "kind": "token",
976
+ "name": "breakpoints",
977
+ "source": "packages/tokens/src/breakpoints.ts"
978
+ },
979
+ {
980
+ "kind": "token",
981
+ "name": "chart",
982
+ "source": "packages/tokens/src/chart.ts"
983
+ },
984
+ {
985
+ "kind": "token",
986
+ "name": "color",
987
+ "source": "packages/tokens/src/colors.ts"
988
+ },
989
+ {
990
+ "kind": "token",
991
+ "name": "duration",
992
+ "source": "packages/tokens/src/motion.ts"
993
+ },
994
+ {
995
+ "kind": "token",
996
+ "name": "easing",
997
+ "source": "packages/tokens/src/motion.ts"
998
+ },
999
+ {
1000
+ "kind": "token",
1001
+ "name": "fontFamily",
1002
+ "source": "packages/tokens/src/typography.ts"
1003
+ },
1004
+ {
1005
+ "kind": "token",
1006
+ "name": "fontSize",
1007
+ "source": "packages/tokens/src/typography.ts"
1008
+ },
1009
+ {
1010
+ "kind": "token",
1011
+ "name": "fontWeight",
1012
+ "source": "packages/tokens/src/typography.ts"
1013
+ },
1014
+ {
1015
+ "kind": "token",
1016
+ "name": "icon",
1017
+ "source": "packages/tokens/src/icon.ts"
1018
+ },
1019
+ {
1020
+ "kind": "token",
1021
+ "name": "letterSpacing",
1022
+ "source": "packages/tokens/src/typography.ts"
1023
+ },
1024
+ {
1025
+ "kind": "token",
1026
+ "name": "lineHeight",
1027
+ "source": "packages/tokens/src/typography.ts"
1028
+ },
1029
+ {
1030
+ "kind": "token",
1031
+ "name": "neutral",
1032
+ "source": "packages/tokens/src/colors.ts"
1033
+ },
1034
+ {
1035
+ "kind": "token",
1036
+ "name": "radius",
1037
+ "source": "packages/tokens/src/radius.ts"
1038
+ },
1039
+ {
1040
+ "kind": "token",
1041
+ "name": "reducedMotionDuration",
1042
+ "source": "packages/tokens/src/motion.ts"
1043
+ },
1044
+ {
1045
+ "kind": "token",
1046
+ "name": "shadow",
1047
+ "source": "packages/tokens/src/shadow.ts"
1048
+ },
1049
+ {
1050
+ "kind": "token",
1051
+ "name": "spacing",
1052
+ "source": "packages/tokens/src/spacing.ts"
1053
+ },
1054
+ {
1055
+ "kind": "token",
1056
+ "name": "typography",
1057
+ "source": "packages/tokens/src/typography.ts"
1058
+ }
1059
+ ]
1060
+ }