@adobe/design-system-registry 1.3.0 → 1.4.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/CHANGELOG.md CHANGED
@@ -1,13 +1,22 @@
1
1
  # @adobe/design-system-registry
2
2
 
3
+ ## 1.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#915](https://github.com/adobe/spectrum-design-data/pull/915) [`4f53a93`](https://github.com/adobe/spectrum-design-data/commit/4f53a932177c618e8b09e858cdeafe116d6b4f33) Thanks [@GarthDB](https://github.com/GarthDB)! - feat(registry): expand anatomy-terms from 43 to 119 terms via S2 docs audit
8
+
3
9
  ## 1.3.0
4
10
 
5
11
  ### Minor Changes
6
12
 
7
- - [#819](https://github.com/adobe/spectrum-design-data/pull/819) [`44d334c`](https://github.com/adobe/spectrum-design-data/commit/44d334c9ebed545d61e315b36d5ca5679a9e30a0) Thanks [@GarthDB](https://github.com/GarthDB)! - Add 8 anatomy terms (field, fill, value, container, chevron, loupe, dot,
8
- and related) and 5 semantic dialog variants (confirmation, destructive,
9
- warning, error, information) to close vocabulary gaps identified during
10
- token spec gap analysis.
13
+ - [#837](https://github.com/adobe/spectrum-design-data/pull/837) [`29531ee`](https://github.com/adobe/spectrum-design-data/commit/29531ee2a9935922bab329c26edce1de8489a423) Thanks [@GarthDB](https://github.com/GarthDB)! - Expand registry vocabulary across `anatomy-terms`, `sizes`, and `variants`
14
+ to close the gaps surfaced by token-to-spec gap analysis. Adds anatomy
15
+ terms for component parts (field, fill, value, container, chevron, loupe,
16
+ dot, and related), broadens the sizes registry, and adds semantic dialog
17
+ and component variants (confirmation, destructive, warning, error,
18
+ information, plus typographic and component-axis variants). Vocabulary
19
+ only — no breaking changes for existing tokens.
11
20
 
12
21
  ## 1.2.0
13
22
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adobe/design-system-registry",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "description": "A single source of truth for design system terminology used across Spectrum tokens, component schemas, and anatomy",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -44,7 +44,7 @@
44
44
  "ajv": "^8.17.1",
45
45
  "ajv-formats": "^3.0.1",
46
46
  "ava": "^6.0.1",
47
- "@adobe/spectrum-component-api-schemas": "6.0.0"
47
+ "@adobe/spectrum-component-api-schemas": "6.1.6"
48
48
  },
49
49
  "scripts": {
50
50
  "validate": "node scripts/validate-registry.js",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://opensource.adobe.com/spectrum-design-data/schemas/registry-value.json",
3
3
  "type": "anatomy-term",
4
- "description": "Visible, named parts of components as defined by designers. These are the parts called out in component specification diagrams. Styling surfaces (background, border, etc.) belong in token-objects.json; positional terms (top, bottom, etc.) belong in positions.json.",
4
+ "description": "Visible, named parts of components as defined by designers. These are the parts called out in component specification diagrams. Styling surfaces (background, border, etc.) belong in token-objects.json; positional terms (top, bottom, etc.) belong in positions.json. Note: some terms (e.g. button, checkbox, accordion) share an ID with a component registry entry — this is intentional when the same element appears as both a standalone component and a named anatomy part within another component.",
5
5
  "values": [
6
6
  {
7
7
  "id": "text",
@@ -260,6 +260,462 @@
260
260
  "label": "UI Icon",
261
261
  "description": "System UI icon element (chevrons, checkmarks, close icons) within a component",
262
262
  "usedIn": ["tokens"]
263
+ },
264
+ {
265
+ "id": "action-button",
266
+ "label": "Action Button",
267
+ "description": "An action button used as a named part within another component (e.g. tag-group toolbar, tree-view item actions)",
268
+ "usedIn": ["s2-docs"]
269
+ },
270
+ {
271
+ "id": "action-menu",
272
+ "label": "Action Menu",
273
+ "description": "Overflow action menu within a component (e.g. action-group overflow)",
274
+ "usedIn": ["s2-docs"]
275
+ },
276
+ {
277
+ "id": "button",
278
+ "label": "Button",
279
+ "description": "A button element used as a named anatomy part within another component (e.g. drop-zone CTA, alert-banner action)",
280
+ "usedIn": ["s2-docs"]
281
+ },
282
+ {
283
+ "id": "button-group",
284
+ "label": "Button Group",
285
+ "description": "A grouped set of action buttons, typically in dialog footers or coach-mark controls",
286
+ "usedIn": ["s2-docs"]
287
+ },
288
+ {
289
+ "id": "close-button",
290
+ "label": "Close Button",
291
+ "description": "Dismiss or close button element within a component (dialogs, alerts, tags, panels)",
292
+ "usedIn": ["s2-docs"]
293
+ },
294
+ {
295
+ "id": "back-button",
296
+ "label": "Back Button",
297
+ "description": "Back-navigation button within a panel or multi-step component",
298
+ "usedIn": ["s2-docs"]
299
+ },
300
+ {
301
+ "id": "hold-icon",
302
+ "label": "Hold Icon",
303
+ "description": "Small indicator icon on action-button signaling a hold interaction is available",
304
+ "usedIn": ["s2-docs"]
305
+ },
306
+ {
307
+ "id": "actions",
308
+ "label": "Actions",
309
+ "description": "Group of action controls within a list item or tree node (action buttons, icon buttons)",
310
+ "usedIn": ["s2-docs"]
311
+ },
312
+ {
313
+ "id": "list-item",
314
+ "label": "List Item",
315
+ "description": "Individual row within a list-view component",
316
+ "usedIn": ["s2-docs"]
317
+ },
318
+ {
319
+ "id": "menu-item",
320
+ "label": "Menu Item",
321
+ "description": "Individual selectable item within a menu",
322
+ "usedIn": ["s2-docs"]
323
+ },
324
+ {
325
+ "id": "section-header",
326
+ "label": "Section Header",
327
+ "description": "Label separating a named group of items within a menu or list-view",
328
+ "usedIn": ["s2-docs"]
329
+ },
330
+ {
331
+ "id": "section-divider",
332
+ "label": "Section Divider",
333
+ "description": "Visual line separating sections within a menu or list",
334
+ "usedIn": ["s2-docs"]
335
+ },
336
+ {
337
+ "id": "section-description",
338
+ "label": "Section Description",
339
+ "description": "Optional descriptive text accompanying a menu or list section header",
340
+ "usedIn": ["s2-docs"]
341
+ },
342
+ {
343
+ "id": "drill-in-chevron",
344
+ "label": "Drill-in Chevron",
345
+ "description": "Chevron icon indicating a sub-menu or drill-in navigation action on a menu item",
346
+ "usedIn": ["s2-docs"]
347
+ },
348
+ {
349
+ "id": "link-out-icon",
350
+ "label": "Link-out Icon",
351
+ "description": "Icon indicating a menu item opens an external link in a new context",
352
+ "usedIn": ["s2-docs"]
353
+ },
354
+ {
355
+ "id": "trailing-icon",
356
+ "label": "Trailing Icon",
357
+ "description": "Icon placed at the trailing (end) edge of a list item or row",
358
+ "usedIn": ["s2-docs"]
359
+ },
360
+ {
361
+ "id": "thumbnail",
362
+ "label": "Thumbnail",
363
+ "description": "Small image preview element used as a named part within list, menu, or card components",
364
+ "usedIn": ["s2-docs"]
365
+ },
366
+ {
367
+ "id": "checkbox",
368
+ "label": "Checkbox",
369
+ "description": "Checkbox control used as a named anatomy part within another component (list-view, cards, tree-view)",
370
+ "usedIn": ["s2-docs"]
371
+ },
372
+ {
373
+ "id": "switch",
374
+ "label": "Switch",
375
+ "description": "Toggle switch used as a named anatomy part within another component (e.g. menu item)",
376
+ "usedIn": ["s2-docs"]
377
+ },
378
+ {
379
+ "id": "popover",
380
+ "label": "Popover",
381
+ "description": "Popover shell used as a named anatomy part within another component (menu, contextual-help)",
382
+ "usedIn": ["s2-docs"]
383
+ },
384
+ {
385
+ "id": "help-text",
386
+ "label": "Help Text",
387
+ "description": "Instructional or error message text displayed below a form field",
388
+ "usedIn": ["s2-docs"]
389
+ },
390
+ {
391
+ "id": "character-count",
392
+ "label": "Character Count",
393
+ "description": "Remaining-character counter shown in text-field and text-area components",
394
+ "usedIn": ["s2-docs"]
395
+ },
396
+ {
397
+ "id": "necessity-indicator",
398
+ "label": "Necessity Indicator",
399
+ "description": "Label or asterisk indicating whether a field is required or optional (field-label, combo-box)",
400
+ "usedIn": ["s2-docs"]
401
+ },
402
+ {
403
+ "id": "required-asterisk",
404
+ "label": "Required Asterisk",
405
+ "description": "Asterisk symbol denoting a required form field (text-field, picker, number-field)",
406
+ "usedIn": ["s2-docs"]
407
+ },
408
+ {
409
+ "id": "required-text",
410
+ "label": "Required Text",
411
+ "description": "Text label (e.g. 'Required') denoting a required form field",
412
+ "usedIn": ["s2-docs"]
413
+ },
414
+ {
415
+ "id": "validation-marker",
416
+ "label": "Validation Marker",
417
+ "description": "Icon or mark indicating valid input state on a form field",
418
+ "usedIn": ["s2-docs"]
419
+ },
420
+ {
421
+ "id": "error-icon",
422
+ "label": "Error Icon",
423
+ "description": "Icon indicating an error state on a form field (text-field, picker, number-field)",
424
+ "usedIn": ["s2-docs"]
425
+ },
426
+ {
427
+ "id": "placeholder",
428
+ "label": "Placeholder",
429
+ "description": "Placeholder text shown in a form field before a value is selected or entered",
430
+ "usedIn": ["s2-docs"]
431
+ },
432
+ {
433
+ "id": "in-field-button",
434
+ "label": "In-field Button",
435
+ "description": "Button rendered inside a field element (e.g. clear button in search-field, calendar trigger in date-picker)",
436
+ "usedIn": ["s2-docs"]
437
+ },
438
+ {
439
+ "id": "leading-icon",
440
+ "label": "Leading Icon",
441
+ "description": "Icon placed at the leading (start) edge inside a field (e.g. search icon in search-field)",
442
+ "usedIn": ["s2-docs"]
443
+ },
444
+ {
445
+ "id": "field-label",
446
+ "label": "Field Label",
447
+ "description": "Field label component used as a named anatomy part within a group component (checkbox-group, radio-group, tag-field)",
448
+ "usedIn": ["s2-docs"]
449
+ },
450
+ {
451
+ "id": "input",
452
+ "label": "Input",
453
+ "description": "The actual input control(s) associated with a field-label component",
454
+ "usedIn": ["s2-docs"]
455
+ },
456
+ {
457
+ "id": "menu-container",
458
+ "label": "Menu Container",
459
+ "description": "Container element that holds the dropdown menu in picker and combo-box",
460
+ "usedIn": ["s2-docs"]
461
+ },
462
+ {
463
+ "id": "date-field",
464
+ "label": "Date Field",
465
+ "description": "Date input component used as an anatomy part within a date-picker",
466
+ "usedIn": ["s2-docs"]
467
+ },
468
+ {
469
+ "id": "time-field",
470
+ "label": "Time Field",
471
+ "description": "Time input component used as an anatomy part within a date-picker",
472
+ "usedIn": ["s2-docs"]
473
+ },
474
+ {
475
+ "id": "calendar",
476
+ "label": "Calendar",
477
+ "description": "Calendar component used as an anatomy part within a date-picker",
478
+ "usedIn": ["s2-docs"]
479
+ },
480
+ {
481
+ "id": "segmented-control-item",
482
+ "label": "Segmented Control Item",
483
+ "description": "Individual selectable item within a segmented-control component",
484
+ "usedIn": ["s2-docs"]
485
+ },
486
+ {
487
+ "id": "color-handle",
488
+ "label": "Color Handle",
489
+ "description": "Draggable handle element in color picker components (color-area, color-slider, color-wheel)",
490
+ "usedIn": ["s2-docs"]
491
+ },
492
+ {
493
+ "id": "swatch",
494
+ "label": "Swatch",
495
+ "description": "Individual color swatch element used as an anatomy part within a swatch-group",
496
+ "usedIn": ["s2-docs"]
497
+ },
498
+ {
499
+ "id": "tag",
500
+ "label": "Tag",
501
+ "description": "Tag element used as an anatomy part within tag-group and tag-field",
502
+ "usedIn": ["s2-docs"]
503
+ },
504
+ {
505
+ "id": "text-area",
506
+ "label": "Text Area",
507
+ "description": "Scrollable text input region used as an anatomy part within tag-field",
508
+ "usedIn": ["s2-docs"]
509
+ },
510
+ {
511
+ "id": "image",
512
+ "label": "Image",
513
+ "description": "Image element used as a named anatomy part within thumbnail, avatar, or dialog components",
514
+ "usedIn": ["s2-docs"]
515
+ },
516
+ {
517
+ "id": "link",
518
+ "label": "Link",
519
+ "description": "Inline link element used as a named anatomy part within contextual-help or similar components",
520
+ "usedIn": ["s2-docs"]
521
+ },
522
+ {
523
+ "id": "overlay",
524
+ "label": "Overlay",
525
+ "description": "Semi-transparent backdrop element behind modal dialogs (alert-dialog, standard-dialog, takeover-dialog)",
526
+ "usedIn": ["s2-docs"]
527
+ },
528
+ {
529
+ "id": "header-area",
530
+ "label": "Header Area",
531
+ "description": "Distinct header region within a dialog or panel component",
532
+ "usedIn": ["s2-docs"]
533
+ },
534
+ {
535
+ "id": "body-area",
536
+ "label": "Body Area",
537
+ "description": "Main content region within a dialog, panel, or in-line-alert component",
538
+ "usedIn": ["s2-docs"]
539
+ },
540
+ {
541
+ "id": "footer-area",
542
+ "label": "Footer Area",
543
+ "description": "Distinct footer region within a dialog or card component",
544
+ "usedIn": ["s2-docs"]
545
+ },
546
+ {
547
+ "id": "header-content",
548
+ "label": "Header Content",
549
+ "description": "Optional content placed within the header area of a dialog or panel",
550
+ "usedIn": ["s2-docs"]
551
+ },
552
+ {
553
+ "id": "footer-content",
554
+ "label": "Footer Content",
555
+ "description": "Optional content placed within the footer area of a dialog",
556
+ "usedIn": ["s2-docs"]
557
+ },
558
+ {
559
+ "id": "cover-image",
560
+ "label": "Cover Image",
561
+ "description": "Large decorative image at the top of a standard dialog",
562
+ "usedIn": ["s2-docs"]
563
+ },
564
+ {
565
+ "id": "primary-action",
566
+ "label": "Primary Action",
567
+ "description": "Primary call-to-action button within a dialog or alert component",
568
+ "usedIn": ["s2-docs"]
569
+ },
570
+ {
571
+ "id": "secondary-action",
572
+ "label": "Secondary Action",
573
+ "description": "Secondary action button within a dialog component",
574
+ "usedIn": ["s2-docs"]
575
+ },
576
+ {
577
+ "id": "cancel-action",
578
+ "label": "Cancel Action",
579
+ "description": "Cancel or dismiss action button within a dialog component",
580
+ "usedIn": ["s2-docs"]
581
+ },
582
+ {
583
+ "id": "column-header",
584
+ "label": "Column Header",
585
+ "description": "Header cell of a table column, typically containing a label and optional sort control",
586
+ "usedIn": ["s2-docs"]
587
+ },
588
+ {
589
+ "id": "sort-icon",
590
+ "label": "Sort Icon",
591
+ "description": "Icon indicating sort direction on a table column header",
592
+ "usedIn": ["s2-docs"]
593
+ },
594
+ {
595
+ "id": "column-divider",
596
+ "label": "Column Divider",
597
+ "description": "Vertical separator between table columns",
598
+ "usedIn": ["s2-docs"]
599
+ },
600
+ {
601
+ "id": "row-divider",
602
+ "label": "Row Divider",
603
+ "description": "Horizontal separator between table rows",
604
+ "usedIn": ["s2-docs"]
605
+ },
606
+ {
607
+ "id": "cell",
608
+ "label": "Cell",
609
+ "description": "Individual data cell within a table row",
610
+ "usedIn": ["s2-docs"]
611
+ },
612
+ {
613
+ "id": "preview-well",
614
+ "label": "Preview Well",
615
+ "description": "Preview/asset display area within a card component",
616
+ "usedIn": ["s2-docs"]
617
+ },
618
+ {
619
+ "id": "metadata",
620
+ "label": "Metadata",
621
+ "description": "Supplemental metadata content area within a card component",
622
+ "usedIn": ["s2-docs"]
623
+ },
624
+ {
625
+ "id": "accordion",
626
+ "label": "Accordion",
627
+ "description": "Accordion component used as an anatomy part within a panel (standard-panel)",
628
+ "usedIn": ["s2-docs"]
629
+ },
630
+ {
631
+ "id": "tab-item",
632
+ "label": "Tab Item",
633
+ "description": "Individual tab button within a tabs component",
634
+ "usedIn": ["s2-docs"]
635
+ },
636
+ {
637
+ "id": "breadcrumb-item",
638
+ "label": "Breadcrumb Item",
639
+ "description": "Individual item in a breadcrumbs navigation trail",
640
+ "usedIn": ["s2-docs"]
641
+ },
642
+ {
643
+ "id": "breadcrumb-title",
644
+ "label": "Breadcrumb Title",
645
+ "description": "Current-page title element at the end of a breadcrumbs trail",
646
+ "usedIn": ["s2-docs"]
647
+ },
648
+ {
649
+ "id": "truncated-menu",
650
+ "label": "Truncated Menu",
651
+ "description": "Overflow menu replacing collapsed breadcrumb items when space is limited",
652
+ "usedIn": ["s2-docs"]
653
+ },
654
+ {
655
+ "id": "accordion-item",
656
+ "label": "Accordion Item",
657
+ "description": "Individual collapsible section within an accordion component",
658
+ "usedIn": ["s2-docs"]
659
+ },
660
+ {
661
+ "id": "small-divider",
662
+ "label": "Small Divider",
663
+ "description": "Thin divider line between accordion items",
664
+ "usedIn": ["s2-docs"]
665
+ },
666
+ {
667
+ "id": "item",
668
+ "label": "Item",
669
+ "description": "Generic individual item element within a list, navigation, or container component (use a more specific term such as accordion-item, list-item, or tab-item where available)",
670
+ "usedIn": ["s2-docs"]
671
+ },
672
+ {
673
+ "id": "tree-view-item",
674
+ "label": "Tree View Item",
675
+ "description": "Individual node element within a tree-view component",
676
+ "usedIn": ["s2-docs"]
677
+ },
678
+ {
679
+ "id": "disclosure-button",
680
+ "label": "Disclosure Button",
681
+ "description": "Collapse/expand toggle button on a tree-view item or accordion item",
682
+ "usedIn": ["s2-docs"]
683
+ },
684
+ {
685
+ "id": "drag-icon",
686
+ "label": "Drag Icon",
687
+ "description": "Drag handle icon on a reorderable tree-view item",
688
+ "usedIn": ["s2-docs"]
689
+ },
690
+ {
691
+ "id": "context-area",
692
+ "label": "Context Area",
693
+ "description": "Optional icon or thumbnail context slot on the leading edge of a tree-view item",
694
+ "usedIn": ["s2-docs"]
695
+ },
696
+ {
697
+ "id": "step-item",
698
+ "label": "Step Item",
699
+ "description": "Individual step node within a steplist component",
700
+ "usedIn": ["s2-docs"]
701
+ },
702
+ {
703
+ "id": "user-image",
704
+ "label": "User Image",
705
+ "description": "User profile photo displayed within an avatar component",
706
+ "usedIn": ["s2-docs"]
707
+ },
708
+ {
709
+ "id": "initials",
710
+ "label": "Initials",
711
+ "description": "Text initials displayed in an avatar when no image is available",
712
+ "usedIn": ["s2-docs"]
713
+ },
714
+ {
715
+ "id": "guest-icon",
716
+ "label": "Guest Icon",
717
+ "description": "Icon displayed in an avatar representing an unauthenticated guest user",
718
+ "usedIn": ["s2-docs"]
263
719
  }
264
720
  ]
265
721
  }
@@ -116,6 +116,11 @@ test("components registry has no duplicate IDs", (t) => {
116
116
  t.is(ids.length, uniqueIds.size);
117
117
  });
118
118
 
119
+ test("anatomyTerms registry has no duplicate IDs", (t) => {
120
+ const ids = anatomyTerms.values.map((v) => v.id);
121
+ t.is(ids.length, new Set(ids).size);
122
+ });
123
+
119
124
  // Test for duplicate aliases
120
125
  test("sizes registry has no duplicate aliases", (t) => {
121
126
  const aliases = sizes.values.flatMap((v) => v.aliases || []);