@redsift/ds-mcp-server 12.5.3-alpha.5 → 12.5.3-alpha.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/consumer-instructions/.cursorrules +14 -0
  2. package/consumer-instructions/.windsurfrules +18 -4
  3. package/consumer-instructions/CLAUDE.md +25 -11
  4. package/consumer-instructions/redsift-design-system.instructions.md +107 -12
  5. package/data/docs/components/charts/Axis.json +6 -1
  6. package/data/docs/components/charts/BarChart.json +7 -1
  7. package/data/docs/components/charts/BaseBarChart.json +1 -1
  8. package/data/docs/components/charts/ChartContainerTitle.json +5 -1
  9. package/data/docs/components/charts/Legend.json +6 -1
  10. package/data/docs/components/charts/LineChart.json +8 -2
  11. package/data/docs/components/charts/PieChart.json +6 -1
  12. package/data/docs/components/charts/ScatterPlot.json +6 -1
  13. package/data/docs/components/dashboard/ChartEmptyState.json +8 -1
  14. package/data/docs/components/dashboard/Dashboard.json +6 -1
  15. package/data/docs/components/dashboard/DataCard.json +18 -1
  16. package/data/docs/components/dashboard/DataCardBody.json +9 -1
  17. package/data/docs/components/dashboard/DataCardHeader.json +8 -1
  18. package/data/docs/components/dashboard/DataCardListbox.json +10 -1
  19. package/data/docs/components/dashboard/DataRow.json +7 -1
  20. package/data/docs/components/dashboard/PdfExportButton.json +6 -1
  21. package/data/docs/components/dashboard/TimeSeriesBarChart.json +6 -1
  22. package/data/docs/components/dashboard/WithFilters.json +5 -1
  23. package/data/docs/components/design-system/Alert.json +8 -1
  24. package/data/docs/components/design-system/AppBar.json +6 -1
  25. package/data/docs/components/design-system/AppContent.json +8 -1
  26. package/data/docs/components/design-system/AppSidePanel.json +9 -1
  27. package/data/docs/components/design-system/Badge.json +6 -1
  28. package/data/docs/components/design-system/Breadcrumbs.json +10 -1
  29. package/data/docs/components/design-system/Button.json +10 -1
  30. package/data/docs/components/design-system/Card.json +15 -1
  31. package/data/docs/components/design-system/CardActions.json +8 -1
  32. package/data/docs/components/design-system/CardBody.json +7 -1
  33. package/data/docs/components/design-system/CardHeader.json +8 -1
  34. package/data/docs/components/design-system/DetailedCard.json +12 -1
  35. package/data/docs/components/design-system/DetailedCardHeader.json +4 -1
  36. package/data/docs/components/design-system/DetailedCardSection.json +4 -1
  37. package/data/docs/components/design-system/Flexbox.json +14 -1
  38. package/data/docs/components/design-system/Grid.json +6 -1
  39. package/data/docs/components/design-system/Heading.json +16 -1
  40. package/data/docs/components/design-system/Icon.json +6 -1
  41. package/data/docs/components/design-system/IconButton.json +14 -1
  42. package/data/docs/components/design-system/Pill.json +15 -1
  43. package/data/docs/components/design-system/Skeleton.json +10 -1
  44. package/data/docs/components/design-system/SkeletonCircle.json +6 -1
  45. package/data/docs/components/design-system/SkeletonText.json +6 -1
  46. package/data/docs/components/design-system/Tab.json +9 -1
  47. package/data/docs/components/design-system/TabPanel.json +10 -1
  48. package/data/docs/components/design-system/Tabs.json +12 -1
  49. package/data/docs/components/design-system/Text.json +14 -1
  50. package/data/docs/components/design-system/TextField.json +6 -1
  51. package/data/docs/components/pickers/Combobox.json +12 -1
  52. package/data/docs/components/pickers/ComboboxContent.json +6 -1
  53. package/data/docs/components/pickers/MenuButton.json +10 -1
  54. package/data/docs/components/pickers/MenuButtonContent.json +5 -1
  55. package/data/docs/components/pickers/Select.json +11 -1
  56. package/data/docs/components/popovers/Dialog.json +10 -1
  57. package/data/docs/components/popovers/Toggletip.json +11 -1
  58. package/data/docs/components/popovers/Tooltip.json +9 -1
  59. package/data/docs/components/table/DataGrid.json +9 -1
  60. package/data/docs/components/table/StatefulDataGrid.json +6 -1
  61. package/data/docs/components-index.json +341 -555
  62. package/data/docs/components.json +7945 -24342
  63. package/data/docs/llms-full.txt +879 -2546
  64. package/data/docs/llms.txt +55 -77
  65. package/data/docs/patterns-catalog.md +191 -0
  66. package/data/docs/patterns.json +365 -27
  67. package/data/metadata.json +2 -2
  68. package/data/patterns/drilldowned-datagrid-server-side.mdx +19 -0
  69. package/data/prompts/ds-advisor.md +103 -0
  70. package/dist/data-store.d.ts +23 -1
  71. package/dist/data-store.d.ts.map +1 -1
  72. package/dist/data-store.js +69 -15
  73. package/dist/data-store.js.map +1 -1
  74. package/dist/pattern-store.d.ts +23 -1
  75. package/dist/pattern-store.d.ts.map +1 -1
  76. package/dist/pattern-store.js +94 -22
  77. package/dist/pattern-store.js.map +1 -1
  78. package/dist/prompts.d.ts.map +1 -1
  79. package/dist/prompts.js +56 -27
  80. package/dist/prompts.js.map +1 -1
  81. package/dist/resources.d.ts.map +1 -1
  82. package/dist/resources.js +60 -6
  83. package/dist/resources.js.map +1 -1
  84. package/dist/tools.d.ts.map +1 -1
  85. package/dist/tools.js +12 -0
  86. package/dist/tools.js.map +1 -1
  87. package/dist/types.d.ts +11 -0
  88. package/dist/types.d.ts.map +1 -1
  89. package/dist/types.js.map +1 -1
  90. package/package.json +4 -2
@@ -4,42 +4,61 @@
4
4
  "package": "@redsift/design-system",
5
5
  "description": "Alert displays a short, important message that attracts the user's attention",
6
6
  "propsCount": 38,
7
- "hasExamples": false
7
+ "hasExamples": false,
8
+ "keywords": [
9
+ "banner",
10
+ "notification",
11
+ "message bar",
12
+ "info banner",
13
+ "error banner"
14
+ ]
8
15
  },
9
16
  {
10
17
  "name": "AppBar",
11
18
  "package": "@redsift/design-system",
12
19
  "description": "AppBar is the top navigation bar of the application. It displays the page title",
13
20
  "propsCount": 6,
14
- "hasExamples": false
15
- },
16
- {
17
- "name": "AppContainer",
18
- "package": "@redsift/design-system",
19
- "description": "The AppContainer component.",
20
- "propsCount": 5,
21
- "hasExamples": false
21
+ "hasExamples": false,
22
+ "keywords": [
23
+ "top bar",
24
+ "header bar",
25
+ "navigation bar"
26
+ ]
22
27
  },
23
28
  {
24
29
  "name": "AppContent",
25
30
  "package": "@redsift/design-system",
26
31
  "description": "AppContent is the main content area of a Red Sift application. It automatically",
27
32
  "propsCount": 59,
28
- "hasExamples": false
33
+ "hasExamples": false,
34
+ "keywords": [
35
+ "main content",
36
+ "page content"
37
+ ]
29
38
  },
30
39
  {
31
40
  "name": "AppSidePanel",
32
41
  "package": "@redsift/design-system",
33
42
  "description": "AppSidePanel is the collapsible side navigation panel of a Red Sift application.",
34
43
  "propsCount": 8,
35
- "hasExamples": false
44
+ "hasExamples": false,
45
+ "keywords": [
46
+ "side nav",
47
+ "sidebar",
48
+ "navigation panel"
49
+ ]
36
50
  },
37
51
  {
38
52
  "name": "Badge",
39
53
  "package": "@redsift/design-system",
40
54
  "description": "Badge displays a small status indicator or count. Badges have two variants:",
41
55
  "propsCount": 30,
42
- "hasExamples": false
56
+ "hasExamples": false,
57
+ "keywords": [
58
+ "counter",
59
+ "count badge",
60
+ "notification badge"
61
+ ]
43
62
  },
44
63
  {
45
64
  "name": "BreadcrumbItem",
@@ -60,7 +79,11 @@
60
79
  "package": "@redsift/design-system",
61
80
  "description": "",
62
81
  "propsCount": 33,
63
- "hasExamples": false
82
+ "hasExamples": false,
83
+ "keywords": [
84
+ "breadcrumb nav",
85
+ "path navigation"
86
+ ]
64
87
  },
65
88
  {
66
89
  "name": "ButtonGroup",
@@ -81,35 +104,59 @@
81
104
  "package": "@redsift/design-system",
82
105
  "description": "The Button is a semantic button that looks like a button.",
83
106
  "propsCount": 43,
84
- "hasExamples": false
107
+ "hasExamples": false,
108
+ "keywords": [
109
+ "action button",
110
+ "cta",
111
+ "submit"
112
+ ]
85
113
  },
86
114
  {
87
115
  "name": "CardActions",
88
116
  "package": "@redsift/design-system",
89
117
  "description": "CardActions is a container for action buttons at the bottom of a Card.",
90
118
  "propsCount": 44,
91
- "hasExamples": false
119
+ "hasExamples": false,
120
+ "keywords": [
121
+ "card footer",
122
+ "card buttons"
123
+ ]
92
124
  },
93
125
  {
94
126
  "name": "CardBody",
95
127
  "package": "@redsift/design-system",
96
128
  "description": "CardBody is the main content area of a Card. It can contain any content.",
97
129
  "propsCount": 44,
98
- "hasExamples": false
130
+ "hasExamples": false,
131
+ "keywords": [
132
+ "card content"
133
+ ]
99
134
  },
100
135
  {
101
136
  "name": "CardHeader",
102
137
  "package": "@redsift/design-system",
103
138
  "description": "CardHeader displays the title and optional subtitle of a Card.",
104
139
  "propsCount": 43,
105
- "hasExamples": false
140
+ "hasExamples": false,
141
+ "keywords": [
142
+ "card title",
143
+ "card heading"
144
+ ]
106
145
  },
107
146
  {
108
147
  "name": "Card",
109
148
  "package": "@redsift/design-system",
110
149
  "description": "",
111
150
  "propsCount": 36,
112
- "hasExamples": false
151
+ "hasExamples": false,
152
+ "keywords": [
153
+ "container",
154
+ "card panel",
155
+ "content card"
156
+ ],
157
+ "antiPatterns": [
158
+ "❌ Using Card with inline styles for KPI tiles → ✅ Use DataCard from @redsift/dashboard for metric/KPI tiles."
159
+ ]
113
160
  },
114
161
  {
115
162
  "name": "CheckboxGroup",
@@ -125,13 +172,6 @@
125
172
  "propsCount": 46,
126
173
  "hasExamples": false
127
174
  },
128
- {
129
- "name": "ConditionalWrapper",
130
- "package": "@redsift/design-system",
131
- "description": "ConditionalWrapper conditionally wraps children in a wrapper component.",
132
- "propsCount": 3,
133
- "hasExamples": false
134
- },
135
175
  {
136
176
  "name": "DetailedCardCollapsibleSectionItems",
137
177
  "package": "@redsift/design-system",
@@ -165,14 +205,32 @@
165
205
  "package": "@redsift/design-system",
166
206
  "description": "",
167
207
  "propsCount": 41,
168
- "hasExamples": false
208
+ "hasExamples": false,
209
+ "keywords": [
210
+ "expandable card",
211
+ "collapsible card",
212
+ "detail panel"
213
+ ]
169
214
  },
170
215
  {
171
216
  "name": "Flexbox",
172
217
  "package": "@redsift/design-system",
173
218
  "description": "Flexbox provides a CSS Flexbox container with convenient props for common",
174
219
  "propsCount": 55,
175
- "hasExamples": false
220
+ "hasExamples": false,
221
+ "keywords": [
222
+ "flex container",
223
+ "row",
224
+ "column",
225
+ "stack",
226
+ "box",
227
+ "hstack",
228
+ "vstack"
229
+ ],
230
+ "antiPatterns": [
231
+ "❌ gap={4} → ✅ gap=\"4px\" — gap is a string prop (CSS value), not a number.",
232
+ "❌ style={{ display: \"flex\", gap: 4 }} → ✅ <Flexbox gap=\"4px\"> — use the Flexbox component instead of inline styles."
233
+ ]
176
234
  },
177
235
  {
178
236
  "name": "FocusWithinGroup",
@@ -200,14 +258,30 @@
200
258
  "package": "@redsift/design-system",
201
259
  "description": "",
202
260
  "propsCount": 58,
203
- "hasExamples": false
261
+ "hasExamples": false,
262
+ "keywords": [
263
+ "grid layout",
264
+ "css grid",
265
+ "grid container"
266
+ ]
204
267
  },
205
268
  {
206
269
  "name": "Heading",
207
270
  "package": "@redsift/design-system",
208
271
  "description": "Heading renders semantic HTML heading elements (h1-h6) with consistent styling.",
209
272
  "propsCount": 40,
210
- "hasExamples": false
273
+ "hasExamples": false,
274
+ "keywords": [
275
+ "title",
276
+ "header text",
277
+ "section heading",
278
+ "h1",
279
+ "h2",
280
+ "h3"
281
+ ],
282
+ "antiPatterns": [
283
+ "❌ color=\"#22c55e\" or color=\"var(--rs-color-green-500)\" → ✅ color=\"success\" — use semantic color values from NeutralColorPalette / NotificationsColorPalette."
284
+ ]
211
285
  },
212
286
  {
213
287
  "name": "IconButtonLink",
@@ -221,14 +295,26 @@
221
295
  "package": "@redsift/design-system",
222
296
  "description": "IconButton is a button containing only an icon, without text.",
223
297
  "propsCount": 40,
224
- "hasExamples": false
298
+ "hasExamples": false,
299
+ "keywords": [
300
+ "icon action",
301
+ "toolbar button"
302
+ ],
303
+ "antiPatterns": [
304
+ "❌ Unicode characters as icon content → ✅ icon={mdiPlus} prop with mdi imports from @redsift/icons.",
305
+ "❌ import { mdiPlus } from \"@mdi/js\" → ✅ import { mdiPlus } from \"@redsift/icons\"."
306
+ ]
225
307
  },
226
308
  {
227
309
  "name": "Icon",
228
310
  "package": "@redsift/design-system",
229
311
  "description": "Icon displays SVG icons from the Material Design Icons library or custom paths.",
230
312
  "propsCount": 33,
231
- "hasExamples": false
313
+ "hasExamples": false,
314
+ "antiPatterns": [
315
+ "❌ Unicode characters (✓, ✕, ⚠, ›) → ✅ <Icon path={mdiCheck} /> from @redsift/icons.",
316
+ "❌ import { mdiPlus } from \"@mdi/js\" → ✅ import { mdiPlus } from \"@redsift/icons\"."
317
+ ]
232
318
  },
233
319
  {
234
320
  "name": "RenderedListboxItem",
@@ -298,7 +384,17 @@
298
384
  "package": "@redsift/design-system",
299
385
  "description": "Pill displays a small piece of information as a colored label. Commonly used",
300
386
  "propsCount": 39,
301
- "hasExamples": false
387
+ "hasExamples": false,
388
+ "keywords": [
389
+ "chip",
390
+ "tag",
391
+ "badge",
392
+ "label",
393
+ "status pill"
394
+ ],
395
+ "antiPatterns": [
396
+ "❌ <Pill label=\"Active\" /> → ✅ <Pill color=\"success\">Active</Pill> — Pill uses children for content, NOT a label prop."
397
+ ]
302
398
  },
303
399
  {
304
400
  "name": "ProgressBar",
@@ -354,14 +450,22 @@
354
450
  "package": "@redsift/design-system",
355
451
  "description": "The SkeletonCircle component.",
356
452
  "propsCount": 38,
357
- "hasExamples": false
453
+ "hasExamples": false,
454
+ "keywords": [
455
+ "avatar placeholder",
456
+ "circle skeleton"
457
+ ]
358
458
  },
359
459
  {
360
460
  "name": "SkeletonText",
361
461
  "package": "@redsift/design-system",
362
462
  "description": "The SkeletonText component.",
363
463
  "propsCount": 41,
364
- "hasExamples": false
464
+ "hasExamples": false,
465
+ "keywords": [
466
+ "text placeholder",
467
+ "paragraph skeleton"
468
+ ]
365
469
  },
366
470
  {
367
471
  "name": "BaseSkeleton",
@@ -375,7 +479,15 @@
375
479
  "package": "@redsift/design-system",
376
480
  "description": "",
377
481
  "propsCount": 38,
378
- "hasExamples": false
482
+ "hasExamples": false,
483
+ "keywords": [
484
+ "loading placeholder",
485
+ "shimmer",
486
+ "skeleton loader"
487
+ ],
488
+ "antiPatterns": [
489
+ "❌ import { Skeleton } from \"@mui/material\" → ✅ import { Skeleton } from \"@redsift/design-system\" — always use the DS Skeleton."
490
+ ]
379
491
  },
380
492
  {
381
493
  "name": "Spinner",
@@ -403,21 +515,35 @@
403
515
  "package": "@redsift/design-system",
404
516
  "description": "TabPanel renders the content for a tab. It is shown when the associated",
405
517
  "propsCount": 33,
406
- "hasExamples": false
518
+ "hasExamples": false,
519
+ "keywords": [
520
+ "tab content",
521
+ "tab panel"
522
+ ]
407
523
  },
408
524
  {
409
525
  "name": "Tab",
410
526
  "package": "@redsift/design-system",
411
527
  "description": "Tab renders an individual tab button within a `Tabs` container.",
412
528
  "propsCount": 39,
413
- "hasExamples": false
529
+ "hasExamples": false,
530
+ "keywords": [
531
+ "tab item",
532
+ "tab button"
533
+ ]
414
534
  },
415
535
  {
416
536
  "name": "Tabs",
417
537
  "package": "@redsift/design-system",
418
538
  "description": "Tabs organises content into separate views where only one view is visible at a time.",
419
539
  "propsCount": 39,
420
- "hasExamples": false
540
+ "hasExamples": false,
541
+ "keywords": [
542
+ "tab bar",
543
+ "segmented control",
544
+ "tab navigation",
545
+ "tab group"
546
+ ]
421
547
  },
422
548
  {
423
549
  "name": "TextArea",
@@ -431,14 +557,28 @@
431
557
  "package": "@redsift/design-system",
432
558
  "description": "TextField allows users to enter single-line text input. Supports validation,",
433
559
  "propsCount": 57,
434
- "hasExamples": false
560
+ "hasExamples": false,
561
+ "keywords": [
562
+ "text input",
563
+ "input field",
564
+ "form input"
565
+ ]
435
566
  },
436
567
  {
437
568
  "name": "Text",
438
569
  "package": "@redsift/design-system",
439
570
  "description": "Text renders text content with consistent styling. By default renders a",
440
571
  "propsCount": 42,
441
- "hasExamples": false
572
+ "hasExamples": false,
573
+ "keywords": [
574
+ "paragraph",
575
+ "body text",
576
+ "caption",
577
+ "label text"
578
+ ],
579
+ "antiPatterns": [
580
+ "❌ color=\"#22c55e\" or color=\"var(--rs-color-green-500)\" → ✅ color=\"success\" — use semantic color values from NeutralColorPalette / NotificationsColorPalette."
581
+ ]
442
582
  },
443
583
  {
444
584
  "name": "DialogContentActions",
@@ -494,7 +634,13 @@
494
634
  "package": "@redsift/popovers",
495
635
  "description": "",
496
636
  "propsCount": 10,
497
- "hasExamples": false
637
+ "hasExamples": false,
638
+ "keywords": [
639
+ "modal",
640
+ "popup",
641
+ "dialog box",
642
+ "confirmation dialog"
643
+ ]
498
644
  },
499
645
  {
500
646
  "name": "PopoverContent",
@@ -564,7 +710,12 @@
564
710
  "package": "@redsift/popovers",
565
711
  "description": "",
566
712
  "propsCount": 17,
567
- "hasExamples": false
713
+ "hasExamples": false,
714
+ "keywords": [
715
+ "click tooltip",
716
+ "info popover",
717
+ "toggleable tip"
718
+ ]
568
719
  },
569
720
  {
570
721
  "name": "TooltipContent",
@@ -580,48 +731,6 @@
580
731
  "propsCount": 31,
581
732
  "hasExamples": false
582
733
  },
583
- {
584
- "name": "ButtonLink",
585
- "package": "@redsift/popovers",
586
- "description": "",
587
- "propsCount": 42,
588
- "hasExamples": false
589
- },
590
- {
591
- "name": "Button",
592
- "package": "@redsift/popovers",
593
- "description": "",
594
- "propsCount": 43,
595
- "hasExamples": false
596
- },
597
- {
598
- "name": "IconButtonLink",
599
- "package": "@redsift/popovers",
600
- "description": "",
601
- "propsCount": 44,
602
- "hasExamples": false
603
- },
604
- {
605
- "name": "IconButton",
606
- "package": "@redsift/popovers",
607
- "description": "",
608
- "propsCount": 40,
609
- "hasExamples": false
610
- },
611
- {
612
- "name": "LinkButton",
613
- "package": "@redsift/popovers",
614
- "description": "",
615
- "propsCount": 41,
616
- "hasExamples": false
617
- },
618
- {
619
- "name": "Link",
620
- "package": "@redsift/popovers",
621
- "description": "",
622
- "propsCount": 39,
623
- "hasExamples": false
624
- },
625
734
  {
626
735
  "name": "BaseTooltip",
627
736
  "package": "@redsift/popovers",
@@ -634,7 +743,11 @@
634
743
  "package": "@redsift/popovers",
635
744
  "description": "",
636
745
  "propsCount": 11,
637
- "hasExamples": false
746
+ "hasExamples": false,
747
+ "keywords": [
748
+ "hover tip",
749
+ "info tooltip"
750
+ ]
638
751
  },
639
752
  {
640
753
  "name": "ComboboxContentFooter",
@@ -690,7 +803,13 @@
690
803
  "package": "@redsift/pickers",
691
804
  "description": "",
692
805
  "propsCount": 31,
693
- "hasExamples": false
806
+ "hasExamples": false,
807
+ "keywords": [
808
+ "autocomplete",
809
+ "searchable select",
810
+ "typeahead",
811
+ "search input"
812
+ ]
694
813
  },
695
814
  {
696
815
  "name": "Item",
@@ -753,7 +872,12 @@
753
872
  "package": "@redsift/pickers",
754
873
  "description": "",
755
874
  "propsCount": 22,
756
- "hasExamples": false
875
+ "hasExamples": false,
876
+ "keywords": [
877
+ "dropdown menu",
878
+ "action menu",
879
+ "context menu"
880
+ ]
757
881
  },
758
882
  {
759
883
  "name": "SelectContent",
@@ -781,7 +905,12 @@
781
905
  "package": "@redsift/pickers",
782
906
  "description": "",
783
907
  "propsCount": 24,
784
- "hasExamples": false
908
+ "hasExamples": false,
909
+ "keywords": [
910
+ "dropdown",
911
+ "select menu",
912
+ "picker"
913
+ ]
785
914
  },
786
915
  {
787
916
  "name": "Arc",
@@ -802,7 +931,12 @@
802
931
  "package": "@redsift/charts",
803
932
  "description": "",
804
933
  "propsCount": 28,
805
- "hasExamples": false
934
+ "hasExamples": false,
935
+ "keywords": [
936
+ "chart axis",
937
+ "x axis",
938
+ "y axis"
939
+ ]
806
940
  },
807
941
  {
808
942
  "name": "Bar",
@@ -823,70 +957,24 @@
823
957
  "package": "@redsift/charts",
824
958
  "description": "",
825
959
  "propsCount": 88,
826
- "hasExamples": false
827
- },
828
- {
829
- "name": "BarChartBars",
830
- "package": "@redsift/charts",
831
- "description": "",
832
- "propsCount": 1,
833
- "hasExamples": false
834
- },
835
- {
836
- "name": "BarChartGroupedTooltip",
837
- "package": "@redsift/charts",
838
- "description": "",
839
- "propsCount": 0,
840
- "hasExamples": false
841
- },
842
- {
843
- "name": "BarChartOverlay",
844
- "package": "@redsift/charts",
845
- "description": "",
846
- "propsCount": 3,
847
- "hasExamples": false
848
- },
849
- {
850
- "name": "BarChartSection",
851
- "package": "@redsift/charts",
852
- "description": "",
853
- "propsCount": 9,
854
- "hasExamples": false
855
- },
856
- {
857
- "name": "EmptyBarChart",
858
- "package": "@redsift/charts",
859
- "description": "",
860
- "propsCount": 88,
861
- "hasExamples": false
862
- },
863
- {
864
- "name": "LoadingBarChart",
865
- "package": "@redsift/charts",
866
- "description": "",
867
- "propsCount": 88,
868
- "hasExamples": false
869
- },
870
- {
871
- "name": "RenderedLinearBarChart",
872
- "package": "@redsift/charts",
873
- "description": "",
874
- "propsCount": 85,
875
- "hasExamples": false
876
- },
877
- {
878
- "name": "RenderedOrdinalBarChart",
879
- "package": "@redsift/charts",
880
- "description": "",
881
- "propsCount": 88,
882
- "hasExamples": false
960
+ "hasExamples": false,
961
+ "keywords": [
962
+ "bar graph",
963
+ "histogram",
964
+ "column chart",
965
+ "bar visualization"
966
+ ]
883
967
  },
884
968
  {
885
969
  "name": "ChartContainerTitle",
886
970
  "package": "@redsift/charts",
887
971
  "description": "",
888
972
  "propsCount": 60,
889
- "hasExamples": false
973
+ "hasExamples": false,
974
+ "keywords": [
975
+ "chart title",
976
+ "chart heading"
977
+ ]
890
978
  },
891
979
  {
892
980
  "name": "DataPoint",
@@ -907,14 +995,12 @@
907
995
  "package": "@redsift/charts",
908
996
  "description": "",
909
997
  "propsCount": 52,
910
- "hasExamples": false
911
- },
912
- {
913
- "name": "LegendItem",
914
- "package": "@redsift/charts",
915
- "description": "",
916
- "propsCount": 13,
917
- "hasExamples": false
998
+ "hasExamples": false,
999
+ "keywords": [
1000
+ "chart legend",
1001
+ "color legend",
1002
+ "series legend"
1003
+ ]
918
1004
  },
919
1005
  {
920
1006
  "name": "Line",
@@ -923,96 +1009,57 @@
923
1009
  "propsCount": 6,
924
1010
  "hasExamples": false
925
1011
  },
926
- {
927
- "name": "EmptyLineChart",
928
- "package": "@redsift/charts",
929
- "description": "",
930
- "propsCount": 78,
931
- "hasExamples": false
932
- },
933
1012
  {
934
1013
  "name": "LineChart",
935
1014
  "package": "@redsift/charts",
936
1015
  "description": "LineChart displays trends over time or continuous data.",
937
1016
  "propsCount": 78,
938
- "hasExamples": false
939
- },
940
- {
941
- "name": "LoadingLineChart",
942
- "package": "@redsift/charts",
943
- "description": "",
944
- "propsCount": 78,
945
- "hasExamples": false
946
- },
947
- {
948
- "name": "RenderedLineChart",
949
- "package": "@redsift/charts",
950
- "description": "",
951
- "propsCount": 78,
952
- "hasExamples": false
953
- },
954
- {
955
- "name": "EmptyPieChart",
956
- "package": "@redsift/charts",
957
- "description": "",
958
- "propsCount": 84,
959
- "hasExamples": false
960
- },
961
- {
962
- "name": "LoadingPieChart",
963
- "package": "@redsift/charts",
964
- "description": "",
965
- "propsCount": 84,
966
- "hasExamples": false
1017
+ "hasExamples": false,
1018
+ "keywords": [
1019
+ "line graph",
1020
+ "time series",
1021
+ "trend chart",
1022
+ "line visualization"
1023
+ ]
967
1024
  },
968
1025
  {
969
1026
  "name": "PieChart",
970
1027
  "package": "@redsift/charts",
971
1028
  "description": "PieChart displays proportional data as slices of a circle.",
972
1029
  "propsCount": 84,
973
- "hasExamples": false
974
- },
975
- {
976
- "name": "RenderedPieChart",
977
- "package": "@redsift/charts",
978
- "description": "",
979
- "propsCount": 84,
980
- "hasExamples": false
981
- },
982
- {
983
- "name": "EmptyScatterPlot",
984
- "package": "@redsift/charts",
985
- "description": "",
986
- "propsCount": 83,
987
- "hasExamples": false
988
- },
989
- {
990
- "name": "LoadingScatterPlot",
991
- "package": "@redsift/charts",
992
- "description": "",
993
- "propsCount": 83,
994
- "hasExamples": false
995
- },
996
- {
997
- "name": "RenderedScatterPlot",
998
- "package": "@redsift/charts",
999
- "description": "",
1000
- "propsCount": 83,
1001
- "hasExamples": false
1030
+ "hasExamples": false,
1031
+ "keywords": [
1032
+ "pie graph",
1033
+ "donut chart",
1034
+ "pie visualization"
1035
+ ]
1002
1036
  },
1003
1037
  {
1004
1038
  "name": "ScatterPlot",
1005
1039
  "package": "@redsift/charts",
1006
1040
  "description": "ScatterPlot displays relationships between two numeric variables.",
1007
1041
  "propsCount": 83,
1008
- "hasExamples": false
1042
+ "hasExamples": false,
1043
+ "keywords": [
1044
+ "scatter graph",
1045
+ "dot plot",
1046
+ "scatter visualization"
1047
+ ]
1009
1048
  },
1010
1049
  {
1011
1050
  "name": "DataGrid",
1012
1051
  "package": "@redsift/table",
1013
1052
  "description": "DataGrid displays tabular data with sorting, filtering, pagination, and row selection.",
1014
1053
  "propsCount": 9,
1015
- "hasExamples": false
1054
+ "hasExamples": false,
1055
+ "keywords": [
1056
+ "data grid",
1057
+ "data table",
1058
+ "table",
1059
+ "grid view",
1060
+ "list view",
1061
+ "spreadsheet"
1062
+ ]
1016
1063
  },
1017
1064
  {
1018
1065
  "name": "GridToolbarFilterSemanticField",
@@ -1040,7 +1087,12 @@
1040
1087
  "package": "@redsift/table",
1041
1088
  "description": "StatefulDataGrid extends DataGrid with automatic state persistence to localStorage.",
1042
1089
  "propsCount": 12,
1043
- "hasExamples": false
1090
+ "hasExamples": false,
1091
+ "keywords": [
1092
+ "stateful table",
1093
+ "managed grid",
1094
+ "server grid"
1095
+ ]
1044
1096
  },
1045
1097
  {
1046
1098
  "name": "TextCell",
@@ -1068,126 +1120,126 @@
1068
1120
  "package": "@redsift/dashboard",
1069
1121
  "description": "",
1070
1122
  "propsCount": 4,
1071
- "hasExamples": false
1072
- },
1073
- {
1074
- "name": "CrossfilteredDashboard.Card",
1075
- "package": "@redsift/dashboard",
1076
- "description": "CrossfilteredDashboard with attached sub-components.",
1077
- "propsCount": 2,
1078
- "hasExamples": false
1123
+ "hasExamples": false,
1124
+ "keywords": [
1125
+ "chart loading",
1126
+ "chart empty",
1127
+ "chart error",
1128
+ "empty chart",
1129
+ "no data chart"
1130
+ ]
1079
1131
  },
1080
1132
  {
1081
1133
  "name": "Dashboard",
1082
1134
  "package": "@redsift/dashboard",
1083
1135
  "description": "Dashboard provides a context for connected, filterable visualizations.",
1084
1136
  "propsCount": 2,
1085
- "hasExamples": false
1137
+ "hasExamples": false,
1138
+ "keywords": [
1139
+ "dashboard page",
1140
+ "dashboard layout",
1141
+ "dashboard container"
1142
+ ]
1086
1143
  },
1087
1144
  {
1088
1145
  "name": "DataCard",
1089
1146
  "package": "@redsift/dashboard",
1090
1147
  "description": "",
1091
1148
  "propsCount": 33,
1092
- "hasExamples": false
1149
+ "hasExamples": false,
1150
+ "keywords": [
1151
+ "kpi tile",
1152
+ "metric tile",
1153
+ "stat card",
1154
+ "kpi card",
1155
+ "summary card",
1156
+ "metric card"
1157
+ ],
1158
+ "antiPatterns": [
1159
+ "❌ <Card style={{ borderLeft: \"4px solid green\" }}> for KPI tiles → ✅ <DataCard color=\"success\"> — DataCard is purpose-built for metric tiles."
1160
+ ]
1093
1161
  },
1094
1162
  {
1095
1163
  "name": "DataCardBody",
1096
1164
  "package": "@redsift/dashboard",
1097
1165
  "description": "DataCardBody is the main content area of a DataCard.",
1098
1166
  "propsCount": 45,
1099
- "hasExamples": false
1167
+ "hasExamples": false,
1168
+ "keywords": [
1169
+ "metric body",
1170
+ "kpi body"
1171
+ ]
1100
1172
  },
1101
1173
  {
1102
1174
  "name": "DataCardHeader",
1103
1175
  "package": "@redsift/dashboard",
1104
1176
  "description": "DataCardHeader displays an icon and title that floats on top of",
1105
1177
  "propsCount": 34,
1106
- "hasExamples": false
1178
+ "hasExamples": false,
1179
+ "keywords": [
1180
+ "metric header",
1181
+ "kpi header"
1182
+ ]
1107
1183
  },
1108
1184
  {
1109
1185
  "name": "DataCardListbox",
1110
1186
  "package": "@redsift/dashboard",
1111
1187
  "description": "DataCardListbox is a styled Listbox for use inside a DataCard.",
1112
1188
  "propsCount": 55,
1113
- "hasExamples": false
1189
+ "hasExamples": false,
1190
+ "keywords": [
1191
+ "metric listbox",
1192
+ "kpi listbox",
1193
+ "filter listbox"
1194
+ ]
1114
1195
  },
1115
1196
  {
1116
1197
  "name": "DataRow",
1117
1198
  "package": "@redsift/dashboard",
1118
1199
  "description": "DataRow displays a formatted number alongside a legend label.",
1119
1200
  "propsCount": 44,
1120
- "hasExamples": false
1121
- },
1122
- {
1123
- "name": "DrilldownDashboard.Card",
1124
- "package": "@redsift/dashboard",
1125
- "description": "DrilldownDashboard with attached sub-components.",
1126
- "propsCount": 3,
1127
- "hasExamples": false
1128
- },
1129
- {
1130
- "name": "PdfDocument",
1131
- "package": "@redsift/dashboard",
1132
- "description": "",
1133
- "propsCount": 6,
1134
- "hasExamples": false
1201
+ "hasExamples": false,
1202
+ "keywords": [
1203
+ "kpi row",
1204
+ "metric row",
1205
+ "data row",
1206
+ "summary row"
1207
+ ]
1135
1208
  },
1136
1209
  {
1137
1210
  "name": "PdfExportButton",
1138
1211
  "package": "@redsift/dashboard",
1139
1212
  "description": "",
1140
1213
  "propsCount": 50,
1141
- "hasExamples": false
1214
+ "hasExamples": false,
1215
+ "keywords": [
1216
+ "export pdf",
1217
+ "download pdf",
1218
+ "print dashboard"
1219
+ ]
1142
1220
  },
1143
1221
  {
1144
1222
  "name": "TimeSeriesBarChart",
1145
1223
  "package": "@redsift/dashboard",
1146
1224
  "description": "",
1147
1225
  "propsCount": 17,
1148
- "hasExamples": false
1149
- },
1150
- {
1151
- "name": "FilterableBarChart",
1152
- "package": "@redsift/dashboard",
1153
- "description": "",
1154
- "propsCount": 10,
1155
- "hasExamples": false
1156
- },
1157
- {
1158
- "name": "FilterableDataCard",
1159
- "package": "@redsift/dashboard",
1160
- "description": "",
1161
- "propsCount": 10,
1162
- "hasExamples": false
1163
- },
1164
- {
1165
- "name": "FilterableDataGrid",
1166
- "package": "@redsift/dashboard",
1167
- "description": "",
1168
- "propsCount": 10,
1169
- "hasExamples": false
1170
- },
1171
- {
1172
- "name": "FilterablePieChart",
1173
- "package": "@redsift/dashboard",
1174
- "description": "",
1175
- "propsCount": 10,
1176
- "hasExamples": false
1177
- },
1178
- {
1179
- "name": "FilterableScatterPlot",
1180
- "package": "@redsift/dashboard",
1181
- "description": "",
1182
- "propsCount": 10,
1183
- "hasExamples": false
1226
+ "hasExamples": false,
1227
+ "keywords": [
1228
+ "time bar chart",
1229
+ "temporal bar chart",
1230
+ "time series bar"
1231
+ ]
1184
1232
  },
1185
1233
  {
1186
1234
  "name": "WithFilters",
1187
1235
  "package": "@redsift/dashboard",
1188
1236
  "description": "",
1189
1237
  "propsCount": 10,
1190
- "hasExamples": false
1238
+ "hasExamples": false,
1239
+ "keywords": [
1240
+ "filter provider",
1241
+ "crossfilter wrapper"
1242
+ ]
1191
1243
  },
1192
1244
  {
1193
1245
  "name": "RadarButton",
@@ -1196,27 +1248,6 @@
1196
1248
  "propsCount": 43,
1197
1249
  "hasExamples": false
1198
1250
  },
1199
- {
1200
- "name": "PulsedRadarImage",
1201
- "package": "@redsift/products",
1202
- "description": "",
1203
- "propsCount": 0,
1204
- "hasExamples": false
1205
- },
1206
- {
1207
- "name": "Dialog",
1208
- "package": "@redsift/products",
1209
- "description": "RadarDialog displays Radar AI interactions in a branded modal dialog.",
1210
- "propsCount": 10,
1211
- "hasExamples": false
1212
- },
1213
- {
1214
- "name": "Dialog",
1215
- "package": "@redsift/products",
1216
- "description": "",
1217
- "propsCount": 9,
1218
- "hasExamples": false
1219
- },
1220
1251
  {
1221
1252
  "name": "RadarItem",
1222
1253
  "package": "@redsift/products",
@@ -1224,69 +1255,6 @@
1224
1255
  "propsCount": 57,
1225
1256
  "hasExamples": false
1226
1257
  },
1227
- {
1228
- "name": "MenuButton",
1229
- "package": "@redsift/products",
1230
- "description": "The RadarMenuButton component.",
1231
- "propsCount": 22,
1232
- "hasExamples": false
1233
- },
1234
- {
1235
- "name": "MenuButton",
1236
- "package": "@redsift/products",
1237
- "description": "The RadarSimpleMenuButton component.",
1238
- "propsCount": 21,
1239
- "hasExamples": false
1240
- },
1241
- {
1242
- "name": "SignalCardButton",
1243
- "package": "@redsift/products",
1244
- "description": "",
1245
- "propsCount": 0,
1246
- "hasExamples": false
1247
- },
1248
- {
1249
- "name": "DeliverabilityDescriptionContainer",
1250
- "package": "@redsift/products",
1251
- "description": "",
1252
- "propsCount": 0,
1253
- "hasExamples": false
1254
- },
1255
- {
1256
- "name": "InfoItemContainer",
1257
- "package": "@redsift/products",
1258
- "description": "",
1259
- "propsCount": 0,
1260
- "hasExamples": false
1261
- },
1262
- {
1263
- "name": "ExtractionBox",
1264
- "package": "@redsift/products",
1265
- "description": "",
1266
- "propsCount": 0,
1267
- "hasExamples": false
1268
- },
1269
- {
1270
- "name": "SignalCardInfoBox",
1271
- "package": "@redsift/products",
1272
- "description": "",
1273
- "propsCount": 0,
1274
- "hasExamples": false
1275
- },
1276
- {
1277
- "name": "SignalCardSection",
1278
- "package": "@redsift/products",
1279
- "description": "",
1280
- "propsCount": 0,
1281
- "hasExamples": false
1282
- },
1283
- {
1284
- "name": "SignalCard",
1285
- "package": "@redsift/products",
1286
- "description": "SignalCard is the visual wrapper component for signal cards.",
1287
- "propsCount": 8,
1288
- "hasExamples": false
1289
- },
1290
1258
  {
1291
1259
  "name": "SignalCardAmp",
1292
1260
  "package": "@redsift/products",
@@ -1315,20 +1283,6 @@
1315
1283
  "propsCount": 10,
1316
1284
  "hasExamples": false
1317
1285
  },
1318
- {
1319
- "name": "DmarcPromoBanner",
1320
- "package": "@redsift/products",
1321
- "description": "Promotional banner for OnDMARC displayed at the top of the DMARC signal card.",
1322
- "propsCount": 4,
1323
- "hasExamples": false
1324
- },
1325
- {
1326
- "name": "DmarcSummaryBoxes",
1327
- "package": "@redsift/products",
1328
- "description": "DmarcSummaryBoxes renders two side-by-side summary boxes for the DMARC card.",
1329
- "propsCount": 4,
1330
- "hasExamples": false
1331
- },
1332
1286
  {
1333
1287
  "name": "SignalCardDmarc",
1334
1288
  "package": "@redsift/products",
@@ -1350,13 +1304,6 @@
1350
1304
  "propsCount": 11,
1351
1305
  "hasExamples": false
1352
1306
  },
1353
- {
1354
- "name": "MemoizedSankeyChart",
1355
- "package": "@redsift/products",
1356
- "description": "",
1357
- "propsCount": 9,
1358
- "hasExamples": false
1359
- },
1360
1307
  {
1361
1308
  "name": "SignalCardFcrdns",
1362
1309
  "package": "@redsift/products",
@@ -1371,20 +1318,6 @@
1371
1318
  "propsCount": 12,
1372
1319
  "hasExamples": false
1373
1320
  },
1374
- {
1375
- "name": "StatusType",
1376
- "package": "@redsift/products",
1377
- "description": "Status values matching signal-logic's CardStatus union.",
1378
- "propsCount": 0,
1379
- "hasExamples": false
1380
- },
1381
- {
1382
- "name": "RecommendationsSummary",
1383
- "package": "@redsift/products",
1384
- "description": "",
1385
- "propsCount": 4,
1386
- "hasExamples": false
1387
- },
1388
1321
  {
1389
1322
  "name": "SignalCardList",
1390
1323
  "package": "@redsift/products",
@@ -1399,48 +1332,6 @@
1399
1332
  "propsCount": 11,
1400
1333
  "hasExamples": false
1401
1334
  },
1402
- {
1403
- "name": "ChecklistRenderer",
1404
- "package": "@redsift/products",
1405
- "description": "ChecklistRenderer - Renders categorized checklists within DetailedCard sections",
1406
- "propsCount": 4,
1407
- "hasExamples": false
1408
- },
1409
- {
1410
- "name": "ExpandableDescription",
1411
- "package": "@redsift/products",
1412
- "description": "ExpandableDescription - Isolated description component with its own state",
1413
- "propsCount": 10,
1414
- "hasExamples": false
1415
- },
1416
- {
1417
- "name": "ExtractedItem",
1418
- "package": "@redsift/products",
1419
- "description": "",
1420
- "propsCount": 7,
1421
- "hasExamples": false
1422
- },
1423
- {
1424
- "name": "ExtractedCategoryContent",
1425
- "package": "@redsift/products",
1426
- "description": "",
1427
- "propsCount": 0,
1428
- "hasExamples": false
1429
- },
1430
- {
1431
- "name": "SignalCardExtractedItems",
1432
- "package": "@redsift/products",
1433
- "description": "",
1434
- "propsCount": 5,
1435
- "hasExamples": false
1436
- },
1437
- {
1438
- "name": "SignalCardNormal",
1439
- "package": "@redsift/products",
1440
- "description": "SignalCardNormal is the base component for all signal cards in the Investigate tool.",
1441
- "propsCount": 37,
1442
- "hasExamples": false
1443
- },
1444
1335
  {
1445
1336
  "name": "SignalCardSpf",
1446
1337
  "package": "@redsift/products",
@@ -1483,116 +1374,11 @@
1483
1374
  "propsCount": 10,
1484
1375
  "hasExamples": false
1485
1376
  },
1486
- {
1487
- "name": "SignalCardTlsProps",
1488
- "package": "@redsift/products",
1489
- "description": "Component props.",
1490
- "propsCount": 0,
1491
- "hasExamples": false
1492
- },
1493
1377
  {
1494
1378
  "name": "SignalCardUrls",
1495
1379
  "package": "@redsift/products",
1496
1380
  "description": "SignalCardUrls Component",
1497
1381
  "propsCount": 10,
1498
1382
  "hasExamples": false
1499
- },
1500
- {
1501
- "name": "ChartSankey",
1502
- "package": "@redsift/products",
1503
- "description": "Wrapper component that provides a React-friendly unique ID via useId()",
1504
- "propsCount": 0,
1505
- "hasExamples": false
1506
- },
1507
- {
1508
- "name": "LazyChartSankey",
1509
- "package": "@redsift/products",
1510
- "description": "Lazy-loaded Sankey chart that defers D3 bundle loading until render.",
1511
- "propsCount": 3,
1512
- "hasExamples": false
1513
- },
1514
- {
1515
- "name": "SignalCardErrorBoundary",
1516
- "package": "@redsift/products",
1517
- "description": "Error boundary component for Signal Cards.",
1518
- "propsCount": 5,
1519
- "hasExamples": false
1520
- },
1521
- {
1522
- "name": "CheckBox",
1523
- "package": "@redsift/products",
1524
- "description": "",
1525
- "propsCount": 0,
1526
- "hasExamples": false
1527
- },
1528
- {
1529
- "name": "ChecklistContainer",
1530
- "package": "@redsift/products",
1531
- "description": "",
1532
- "propsCount": 0,
1533
- "hasExamples": false
1534
- },
1535
- {
1536
- "name": "GlossaryTag",
1537
- "package": "@redsift/products",
1538
- "description": "",
1539
- "propsCount": 0,
1540
- "hasExamples": false
1541
- },
1542
- {
1543
- "name": "IconContainer",
1544
- "package": "@redsift/products",
1545
- "description": "",
1546
- "propsCount": 0,
1547
- "hasExamples": false
1548
- },
1549
- {
1550
- "name": "OpenInNewTabIcon",
1551
- "package": "@redsift/products",
1552
- "description": "",
1553
- "propsCount": 0,
1554
- "hasExamples": false
1555
- },
1556
- {
1557
- "name": "Portal",
1558
- "package": "@redsift/products",
1559
- "description": "",
1560
- "propsCount": 2,
1561
- "hasExamples": false
1562
- },
1563
- {
1564
- "name": "SVGLogo",
1565
- "package": "@redsift/products",
1566
- "description": "",
1567
- "propsCount": 1,
1568
- "hasExamples": false
1569
- },
1570
- {
1571
- "name": "Tooltip",
1572
- "package": "@redsift/products",
1573
- "description": "",
1574
- "propsCount": 6,
1575
- "hasExamples": false
1576
- },
1577
- {
1578
- "name": "TooltipInPortalWrapper",
1579
- "package": "@redsift/products",
1580
- "description": "Wraps children in a container that will show the tooltip on mouse enter and hide it on mouse leave",
1581
- "propsCount": 6,
1582
- "hasExamples": false
1583
- },
1584
- {
1585
- "name": "TooltipInPortal",
1586
- "package": "@redsift/products",
1587
- "description": "",
1588
- "propsCount": 7,
1589
- "hasExamples": false
1590
- },
1591
- {
1592
- "name": "WordHighlighter",
1593
- "package": "@redsift/products",
1594
- "description": "",
1595
- "propsCount": 5,
1596
- "hasExamples": false
1597
1383
  }
1598
1384
  ]