@primer/primitives 11.4.0-rc.e472be0d → 11.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.
Files changed (62) hide show
  1. package/dist/build/formats/markdownLlmGuidelines.js +72 -14
  2. package/dist/css/functional/themes/dark-colorblind-high-contrast.css +2 -2
  3. package/dist/css/functional/themes/dark-colorblind.css +2 -2
  4. package/dist/css/functional/themes/dark-dimmed-high-contrast.css +2 -2
  5. package/dist/css/functional/themes/dark-dimmed.css +2 -2
  6. package/dist/css/functional/themes/dark-high-contrast.css +2 -2
  7. package/dist/css/functional/themes/dark-tritanopia-high-contrast.css +2 -2
  8. package/dist/css/functional/themes/dark-tritanopia.css +2 -2
  9. package/dist/css/functional/themes/dark.css +2 -2
  10. package/dist/css/functional/themes/light-colorblind-high-contrast.css +2 -2
  11. package/dist/css/functional/themes/light-colorblind.css +2 -2
  12. package/dist/css/functional/themes/light-high-contrast.css +2 -2
  13. package/dist/css/functional/themes/light-tritanopia-high-contrast.css +2 -2
  14. package/dist/css/functional/themes/light-tritanopia.css +2 -2
  15. package/dist/css/functional/themes/light.css +2 -2
  16. package/dist/docs/functional/themes/dark-colorblind-high-contrast.json +15 -1
  17. package/dist/docs/functional/themes/dark-colorblind.json +15 -1
  18. package/dist/docs/functional/themes/dark-dimmed-high-contrast.json +15 -1
  19. package/dist/docs/functional/themes/dark-dimmed.json +15 -1
  20. package/dist/docs/functional/themes/dark-high-contrast.json +15 -1
  21. package/dist/docs/functional/themes/dark-tritanopia-high-contrast.json +15 -1
  22. package/dist/docs/functional/themes/dark-tritanopia.json +15 -1
  23. package/dist/docs/functional/themes/dark.json +15 -1
  24. package/dist/docs/functional/themes/light-colorblind-high-contrast.json +15 -1
  25. package/dist/docs/functional/themes/light-colorblind.json +15 -1
  26. package/dist/docs/functional/themes/light-high-contrast.json +15 -1
  27. package/dist/docs/functional/themes/light-tritanopia-high-contrast.json +15 -1
  28. package/dist/docs/functional/themes/light-tritanopia.json +15 -1
  29. package/dist/docs/functional/themes/light.json +15 -1
  30. package/dist/internalCss/dark-colorblind-high-contrast.css +2 -2
  31. package/dist/internalCss/dark-colorblind.css +2 -2
  32. package/dist/internalCss/dark-dimmed-high-contrast.css +2 -2
  33. package/dist/internalCss/dark-dimmed.css +2 -2
  34. package/dist/internalCss/dark-high-contrast.css +2 -2
  35. package/dist/internalCss/dark-tritanopia-high-contrast.css +2 -2
  36. package/dist/internalCss/dark-tritanopia.css +2 -2
  37. package/dist/internalCss/dark.css +2 -2
  38. package/dist/internalCss/light-colorblind-high-contrast.css +2 -2
  39. package/dist/internalCss/light-colorblind.css +2 -2
  40. package/dist/internalCss/light-high-contrast.css +2 -2
  41. package/dist/internalCss/light-tritanopia-high-contrast.css +2 -2
  42. package/dist/internalCss/light-tritanopia.css +2 -2
  43. package/dist/internalCss/light.css +2 -2
  44. package/dist/styleLint/functional/themes/dark-colorblind-high-contrast.json +14 -0
  45. package/dist/styleLint/functional/themes/dark-colorblind.json +14 -0
  46. package/dist/styleLint/functional/themes/dark-dimmed-high-contrast.json +14 -0
  47. package/dist/styleLint/functional/themes/dark-dimmed.json +14 -0
  48. package/dist/styleLint/functional/themes/dark-high-contrast.json +14 -0
  49. package/dist/styleLint/functional/themes/dark-tritanopia-high-contrast.json +14 -0
  50. package/dist/styleLint/functional/themes/dark-tritanopia.json +14 -0
  51. package/dist/styleLint/functional/themes/dark.json +14 -0
  52. package/dist/styleLint/functional/themes/light-colorblind-high-contrast.json +14 -0
  53. package/dist/styleLint/functional/themes/light-colorblind.json +14 -0
  54. package/dist/styleLint/functional/themes/light-high-contrast.json +14 -0
  55. package/dist/styleLint/functional/themes/light-tritanopia-high-contrast.json +14 -0
  56. package/dist/styleLint/functional/themes/light-tritanopia.json +14 -0
  57. package/dist/styleLint/functional/themes/light.json +14 -0
  58. package/package.json +2 -2
  59. package/src/tokens/functional/border/border.json5 +25 -0
  60. package/src/tokens/functional/color/control.json5 +24 -0
  61. package/src/tokens/functional/size/size.json5 +35 -0
  62. package/token-guidelines.llm.md +128 -2
@@ -45,6 +45,35 @@ function formatCategoryName(category) {
45
45
  // Capitalize first letter
46
46
  return category.charAt(0).toUpperCase() + category.slice(1);
47
47
  }
48
+ /**
49
+ * Creates a key for grouping by usage and rules only (not description)
50
+ */
51
+ function createUsageRulesKey(guideline) {
52
+ var _a;
53
+ return JSON.stringify({
54
+ usage: ((_a = guideline.usage) === null || _a === void 0 ? void 0 : _a.sort()) || [],
55
+ rules: guideline.rules || '',
56
+ });
57
+ }
58
+ /**
59
+ * Extracts a subcategory name from token names for headings
60
+ * e.g., "border-accent-emphasis" -> "accent"
61
+ */
62
+ function extractSubcategory(tokenNames) {
63
+ if (tokenNames.length < 2)
64
+ return null;
65
+ // Get the second part of each token name
66
+ const subcategories = tokenNames.map(name => {
67
+ const parts = name.split('-');
68
+ return parts[1] || null;
69
+ });
70
+ // Check if all tokens share the same subcategory
71
+ const uniqueSubcats = [...new Set(subcategories.filter(Boolean))];
72
+ if (uniqueSubcats.length === 1) {
73
+ return uniqueSubcats[0];
74
+ }
75
+ return null;
76
+ }
48
77
  /**
49
78
  * @description Outputs a markdown file with LLM token guidelines, extracting
50
79
  * description from $description and usage/rules from $extensions['org.primer.llm'].
@@ -89,7 +118,21 @@ export const markdownLlmGuidelines = (_a) => __awaiter(void 0, [_a], void 0, fun
89
118
  for (const category of Object.keys(grouped).sort()) {
90
119
  lines.push(`## ${formatCategoryName(category)}`, '');
91
120
  const categoryGuidelines = grouped[category];
92
- // Group tokens with identical guidelines
121
+ // Check if all tokens in category share the same usage/rules AND there are multiple tokens
122
+ const usageRulesKeys = new Set(categoryGuidelines.map(createUsageRulesKey));
123
+ const sharedUsageRules = usageRulesKeys.size === 1 && categoryGuidelines.length > 1;
124
+ // If shared, output usage/rules once at category level
125
+ if (sharedUsageRules) {
126
+ const first = categoryGuidelines[0];
127
+ if (first.usage && first.usage.length > 0) {
128
+ lines.push(`**Usage:** ${first.usage.join(', ')}`);
129
+ }
130
+ if (first.rules) {
131
+ lines.push(`**Rules:** ${first.rules}`);
132
+ }
133
+ lines.push('');
134
+ }
135
+ // Group tokens with identical guidelines (description + usage + rules)
93
136
  const consolidatedGroups = new Map();
94
137
  for (const guideline of categoryGuidelines) {
95
138
  const key = createGuidelineKey(guideline);
@@ -100,20 +143,32 @@ export const markdownLlmGuidelines = (_a) => __awaiter(void 0, [_a], void 0, fun
100
143
  }
101
144
  for (const [, guidelinesGroup] of consolidatedGroups) {
102
145
  const first = guidelinesGroup[0];
146
+ const tokenNames = guidelinesGroup.map(g => g.name);
103
147
  if (guidelinesGroup.length > 1) {
104
148
  // Multiple tokens share the same guidelines - consolidate
149
+ const subcategory = extractSubcategory(tokenNames);
150
+ if (subcategory) {
151
+ lines.push(`### ${subcategory}`);
152
+ }
153
+ else {
154
+ // No common subcategory - use "general" or skip heading if description serves as intro
155
+ if (first.description && consolidatedGroups.size > 1) {
156
+ lines.push(`### general`);
157
+ }
158
+ }
105
159
  if (first.description) {
106
160
  lines.push(first.description);
107
- lines.push('');
108
- }
109
- if (first.usage && first.usage.length > 0) {
110
- lines.push(`**Usage:** ${first.usage.join(', ')}`);
111
161
  }
112
- if (first.rules) {
113
- lines.push(`**Rules:** ${first.rules}`);
162
+ // Only show usage/rules if not already shown at category level
163
+ if (!sharedUsageRules) {
164
+ if (first.usage && first.usage.length > 0) {
165
+ lines.push(`**Usage:** ${first.usage.join(', ')}`);
166
+ }
167
+ if (first.rules) {
168
+ lines.push(`**Rules:** ${first.rules}`);
169
+ }
114
170
  }
115
- lines.push('');
116
- lines.push(`**Tokens:** ${guidelinesGroup.map(g => g.name).join(', ')}`);
171
+ lines.push(`**Tokens:** ${tokenNames.join(', ')}`);
117
172
  lines.push('');
118
173
  }
119
174
  else {
@@ -122,11 +177,14 @@ export const markdownLlmGuidelines = (_a) => __awaiter(void 0, [_a], void 0, fun
122
177
  if (first.description) {
123
178
  lines.push(first.description);
124
179
  }
125
- if (first.usage && first.usage.length > 0) {
126
- lines.push(`**Usage:** ${first.usage.join(', ')}`);
127
- }
128
- if (first.rules) {
129
- lines.push(`**Rules:** ${first.rules}`);
180
+ // Only show usage/rules if not already shown at category level
181
+ if (!sharedUsageRules) {
182
+ if (first.usage && first.usage.length > 0) {
183
+ lines.push(`**Usage:** ${first.usage.join(', ')}`);
184
+ }
185
+ if (first.rules) {
186
+ lines.push(`**Rules:** ${first.rules}`);
187
+ }
130
188
  }
131
189
  lines.push('');
132
190
  }
@@ -868,7 +868,7 @@
868
868
  --diffBlob-expander-iconColor: var(--fgColor-default);
869
869
  --diffBlob-hunkNum-fgColor-hover: var(--fgColor-onEmphasis);
870
870
  --diffBlob-hunkNum-fgColor-rest: var(--fgColor-default);
871
- --focus-outline: 2px solid #409eff;
871
+ --focus-outline: 2px solid #409eff; /** Focus ring outline for keyboard navigation and accessibility. */
872
872
  --page-header-bgColor: var(--bgColor-default);
873
873
  --progressBar-track-bgColor: var(--bgColor-inverse);
874
874
  --shadow-floating-large: 0px 0px 0px 1px #b7bdc8, 0px 24px 48px 0px #010409; /** Large floating shadow for modals and dialogs */
@@ -1765,7 +1765,7 @@
1765
1765
  --diffBlob-expander-iconColor: var(--fgColor-default);
1766
1766
  --diffBlob-hunkNum-fgColor-hover: var(--fgColor-onEmphasis);
1767
1767
  --diffBlob-hunkNum-fgColor-rest: var(--fgColor-default);
1768
- --focus-outline: 2px solid #409eff;
1768
+ --focus-outline: 2px solid #409eff; /** Focus ring outline for keyboard navigation and accessibility. */
1769
1769
  --page-header-bgColor: var(--bgColor-default);
1770
1770
  --progressBar-track-bgColor: var(--bgColor-inverse);
1771
1771
  --shadow-floating-large: 0px 0px 0px 1px #b7bdc8, 0px 24px 48px 0px #010409; /** Large floating shadow for modals and dialogs */
@@ -874,7 +874,7 @@
874
874
  --controlTrack-fgColor-disabled: var(--fgColor-onEmphasis);
875
875
  --dashboard-bgColor: var(--bgColor-inset);
876
876
  --diffBlob-hunkNum-fgColor-hover: var(--fgColor-onEmphasis);
877
- --focus-outline: 2px solid #1f6feb;
877
+ --focus-outline: 2px solid #1f6feb; /** Focus ring outline for keyboard navigation and accessibility. */
878
878
  --overlay-borderColor: var(--borderColor-muted);
879
879
  --tooltip-fgColor: var(--fgColor-onEmphasis);
880
880
  --border-neutral-muted: 0.0625rem solid #3d444db3;
@@ -1771,7 +1771,7 @@
1771
1771
  --controlTrack-fgColor-disabled: var(--fgColor-onEmphasis);
1772
1772
  --dashboard-bgColor: var(--bgColor-inset);
1773
1773
  --diffBlob-hunkNum-fgColor-hover: var(--fgColor-onEmphasis);
1774
- --focus-outline: 2px solid #1f6feb;
1774
+ --focus-outline: 2px solid #1f6feb; /** Focus ring outline for keyboard navigation and accessibility. */
1775
1775
  --overlay-borderColor: var(--borderColor-muted);
1776
1776
  --tooltip-fgColor: var(--fgColor-onEmphasis);
1777
1777
  --border-neutral-muted: 0.0625rem solid #3d444db3;
@@ -871,7 +871,7 @@
871
871
  --controlKnob-borderColor-checked: var(--control-checked-bgColor-rest);
872
872
  --controlKnob-borderColor-disabled: var(--control-bgColor-disabled);
873
873
  --controlTrack-borderColor-rest: var(--borderColor-emphasis);
874
- --focus-outline: 2px solid #6cb6ff;
874
+ --focus-outline: 2px solid #6cb6ff; /** Focus ring outline for keyboard navigation and accessibility. */
875
875
  --progressBar-track-bgColor: var(--bgColor-inverse);
876
876
  --reactionButton-selected-fgColor-rest: var(--fgColor-link);
877
877
  --shadow-floating-large: 0px 0px 0px 1px #b7bdc8, 0px 24px 48px 0px #010409; /** Large floating shadow for modals and dialogs */
@@ -1768,7 +1768,7 @@
1768
1768
  --controlKnob-borderColor-checked: var(--control-checked-bgColor-rest);
1769
1769
  --controlKnob-borderColor-disabled: var(--control-bgColor-disabled);
1770
1770
  --controlTrack-borderColor-rest: var(--borderColor-emphasis);
1771
- --focus-outline: 2px solid #6cb6ff;
1771
+ --focus-outline: 2px solid #6cb6ff; /** Focus ring outline for keyboard navigation and accessibility. */
1772
1772
  --progressBar-track-bgColor: var(--bgColor-inverse);
1773
1773
  --reactionButton-selected-fgColor-rest: var(--fgColor-link);
1774
1774
  --shadow-floating-large: 0px 0px 0px 1px #b7bdc8, 0px 24px 48px 0px #010409; /** Large floating shadow for modals and dialogs */
@@ -887,7 +887,7 @@
887
887
  --controlKnob-bgColor-disabled: var(--control-bgColor-disabled);
888
888
  --controlKnob-borderColor-checked: var(--control-checked-bgColor-rest);
889
889
  --controlKnob-borderColor-disabled: var(--control-bgColor-disabled);
890
- --focus-outline: 2px solid #316dca;
890
+ --focus-outline: 2px solid #316dca; /** Focus ring outline for keyboard navigation and accessibility. */
891
891
  --button-danger-borderColor-hover: var(--button-primary-borderColor-rest);
892
892
  --button-outline-borderColor-active: var(--button-outline-borderColor-hover);
893
893
  --button-primary-borderColor-active: var(--button-primary-borderColor-rest);
@@ -1784,7 +1784,7 @@
1784
1784
  --controlKnob-bgColor-disabled: var(--control-bgColor-disabled);
1785
1785
  --controlKnob-borderColor-checked: var(--control-checked-bgColor-rest);
1786
1786
  --controlKnob-borderColor-disabled: var(--control-bgColor-disabled);
1787
- --focus-outline: 2px solid #316dca;
1787
+ --focus-outline: 2px solid #316dca; /** Focus ring outline for keyboard navigation and accessibility. */
1788
1788
  --button-danger-borderColor-hover: var(--button-primary-borderColor-rest);
1789
1789
  --button-outline-borderColor-active: var(--button-outline-borderColor-hover);
1790
1790
  --button-primary-borderColor-active: var(--button-primary-borderColor-rest);
@@ -867,7 +867,7 @@
867
867
  --diffBlob-expander-iconColor: var(--fgColor-default);
868
868
  --diffBlob-hunkNum-fgColor-hover: var(--fgColor-onEmphasis);
869
869
  --diffBlob-hunkNum-fgColor-rest: var(--fgColor-default);
870
- --focus-outline: 2px solid #409eff;
870
+ --focus-outline: 2px solid #409eff; /** Focus ring outline for keyboard navigation and accessibility. */
871
871
  --page-header-bgColor: var(--bgColor-default);
872
872
  --progressBar-track-bgColor: var(--bgColor-inverse);
873
873
  --shadow-floating-large: 0px 0px 0px 1px #b7bdc8, 0px 24px 48px 0px #010409; /** Large floating shadow for modals and dialogs */
@@ -1764,7 +1764,7 @@
1764
1764
  --diffBlob-expander-iconColor: var(--fgColor-default);
1765
1765
  --diffBlob-hunkNum-fgColor-hover: var(--fgColor-onEmphasis);
1766
1766
  --diffBlob-hunkNum-fgColor-rest: var(--fgColor-default);
1767
- --focus-outline: 2px solid #409eff;
1767
+ --focus-outline: 2px solid #409eff; /** Focus ring outline for keyboard navigation and accessibility. */
1768
1768
  --page-header-bgColor: var(--bgColor-default);
1769
1769
  --progressBar-track-bgColor: var(--bgColor-inverse);
1770
1770
  --shadow-floating-large: 0px 0px 0px 1px #b7bdc8, 0px 24px 48px 0px #010409; /** Large floating shadow for modals and dialogs */
@@ -868,7 +868,7 @@
868
868
  --diffBlob-expander-iconColor: var(--fgColor-default);
869
869
  --diffBlob-hunkNum-fgColor-hover: var(--fgColor-onEmphasis);
870
870
  --diffBlob-hunkNum-fgColor-rest: var(--fgColor-default);
871
- --focus-outline: 2px solid #409eff;
871
+ --focus-outline: 2px solid #409eff; /** Focus ring outline for keyboard navigation and accessibility. */
872
872
  --page-header-bgColor: var(--bgColor-default);
873
873
  --progressBar-track-bgColor: var(--bgColor-inverse);
874
874
  --shadow-floating-large: 0px 0px 0px 1px #b7bdc8, 0px 24px 48px 0px #010409; /** Large floating shadow for modals and dialogs */
@@ -1765,7 +1765,7 @@
1765
1765
  --diffBlob-expander-iconColor: var(--fgColor-default);
1766
1766
  --diffBlob-hunkNum-fgColor-hover: var(--fgColor-onEmphasis);
1767
1767
  --diffBlob-hunkNum-fgColor-rest: var(--fgColor-default);
1768
- --focus-outline: 2px solid #409eff;
1768
+ --focus-outline: 2px solid #409eff; /** Focus ring outline for keyboard navigation and accessibility. */
1769
1769
  --page-header-bgColor: var(--bgColor-default);
1770
1770
  --progressBar-track-bgColor: var(--bgColor-inverse);
1771
1771
  --shadow-floating-large: 0px 0px 0px 1px #b7bdc8, 0px 24px 48px 0px #010409; /** Large floating shadow for modals and dialogs */
@@ -874,7 +874,7 @@
874
874
  --controlTrack-fgColor-disabled: var(--fgColor-onEmphasis);
875
875
  --dashboard-bgColor: var(--bgColor-inset);
876
876
  --diffBlob-hunkNum-fgColor-hover: var(--fgColor-onEmphasis);
877
- --focus-outline: 2px solid #1f6feb;
877
+ --focus-outline: 2px solid #1f6feb; /** Focus ring outline for keyboard navigation and accessibility. */
878
878
  --overlay-borderColor: var(--borderColor-muted);
879
879
  --tooltip-fgColor: var(--fgColor-onEmphasis);
880
880
  --border-neutral-muted: 0.0625rem solid #3d444db3;
@@ -1771,7 +1771,7 @@
1771
1771
  --controlTrack-fgColor-disabled: var(--fgColor-onEmphasis);
1772
1772
  --dashboard-bgColor: var(--bgColor-inset);
1773
1773
  --diffBlob-hunkNum-fgColor-hover: var(--fgColor-onEmphasis);
1774
- --focus-outline: 2px solid #1f6feb;
1774
+ --focus-outline: 2px solid #1f6feb; /** Focus ring outline for keyboard navigation and accessibility. */
1775
1775
  --overlay-borderColor: var(--borderColor-muted);
1776
1776
  --tooltip-fgColor: var(--fgColor-onEmphasis);
1777
1777
  --border-neutral-muted: 0.0625rem solid #3d444db3;
@@ -873,7 +873,7 @@
873
873
  --controlTrack-fgColor-disabled: var(--fgColor-onEmphasis);
874
874
  --dashboard-bgColor: var(--bgColor-inset);
875
875
  --diffBlob-hunkNum-fgColor-hover: var(--fgColor-onEmphasis);
876
- --focus-outline: 2px solid #1f6feb;
876
+ --focus-outline: 2px solid #1f6feb; /** Focus ring outline for keyboard navigation and accessibility. */
877
877
  --overlay-borderColor: var(--borderColor-muted);
878
878
  --tooltip-fgColor: var(--fgColor-onEmphasis);
879
879
  --border-neutral-muted: 0.0625rem solid #3d444db3;
@@ -1770,7 +1770,7 @@
1770
1770
  --controlTrack-fgColor-disabled: var(--fgColor-onEmphasis);
1771
1771
  --dashboard-bgColor: var(--bgColor-inset);
1772
1772
  --diffBlob-hunkNum-fgColor-hover: var(--fgColor-onEmphasis);
1773
- --focus-outline: 2px solid #1f6feb;
1773
+ --focus-outline: 2px solid #1f6feb; /** Focus ring outline for keyboard navigation and accessibility. */
1774
1774
  --overlay-borderColor: var(--borderColor-muted);
1775
1775
  --tooltip-fgColor: var(--fgColor-onEmphasis);
1776
1776
  --border-neutral-muted: 0.0625rem solid #3d444db3;
@@ -879,7 +879,7 @@
879
879
  --diffBlob-expander-iconColor: var(--fgColor-default);
880
880
  --diffBlob-hunkNum-fgColor-hover: var(--fgColor-default);
881
881
  --diffBlob-hunkNum-fgColor-rest: var(--fgColor-default);
882
- --focus-outline: 2px solid #0349b4;
882
+ --focus-outline: 2px solid #0349b4; /** Focus ring outline for keyboard navigation and accessibility. */
883
883
  --progressBar-track-bgColor: var(--bgColor-default);
884
884
  --reactionButton-selected-fgColor-rest: var(--fgColor-link);
885
885
  --shadow-floating-large: 0px 0px 0px 1px #454c54, 0px 40px 80px 0px #25292e3d; /** Large floating shadow for modals and dialogs */
@@ -1776,7 +1776,7 @@
1776
1776
  --diffBlob-expander-iconColor: var(--fgColor-default);
1777
1777
  --diffBlob-hunkNum-fgColor-hover: var(--fgColor-default);
1778
1778
  --diffBlob-hunkNum-fgColor-rest: var(--fgColor-default);
1779
- --focus-outline: 2px solid #0349b4;
1779
+ --focus-outline: 2px solid #0349b4; /** Focus ring outline for keyboard navigation and accessibility. */
1780
1780
  --progressBar-track-bgColor: var(--bgColor-default);
1781
1781
  --reactionButton-selected-fgColor-rest: var(--fgColor-link);
1782
1782
  --shadow-floating-large: 0px 0px 0px 1px #454c54, 0px 40px 80px 0px #25292e3d; /** Large floating shadow for modals and dialogs */
@@ -873,7 +873,7 @@
873
873
  --diffBlob-deletionWord-fgColor: var(--fgColor-default);
874
874
  --diffBlob-hunkNum-fgColor-hover: var(--fgColor-default);
875
875
  --diffBlob-hunkNum-fgColor-rest: var(--fgColor-default);
876
- --focus-outline: 2px solid #0969da;
876
+ --focus-outline: 2px solid #0969da; /** Focus ring outline for keyboard navigation and accessibility. */
877
877
  --overlay-borderColor: #d1d9e080;
878
878
  --reactionButton-selected-fgColor-rest: var(--fgColor-link);
879
879
  --tooltip-fgColor: var(--fgColor-onEmphasis);
@@ -1770,7 +1770,7 @@
1770
1770
  --diffBlob-deletionWord-fgColor: var(--fgColor-default);
1771
1771
  --diffBlob-hunkNum-fgColor-hover: var(--fgColor-default);
1772
1772
  --diffBlob-hunkNum-fgColor-rest: var(--fgColor-default);
1773
- --focus-outline: 2px solid #0969da;
1773
+ --focus-outline: 2px solid #0969da; /** Focus ring outline for keyboard navigation and accessibility. */
1774
1774
  --overlay-borderColor: #d1d9e080;
1775
1775
  --reactionButton-selected-fgColor-rest: var(--fgColor-link);
1776
1776
  --tooltip-fgColor: var(--fgColor-onEmphasis);
@@ -878,7 +878,7 @@
878
878
  --diffBlob-expander-iconColor: var(--fgColor-default);
879
879
  --diffBlob-hunkNum-fgColor-hover: var(--fgColor-onEmphasis);
880
880
  --diffBlob-hunkNum-fgColor-rest: var(--fgColor-default);
881
- --focus-outline: 2px solid #0349b4;
881
+ --focus-outline: 2px solid #0349b4; /** Focus ring outline for keyboard navigation and accessibility. */
882
882
  --progressBar-track-bgColor: var(--bgColor-default);
883
883
  --reactionButton-selected-fgColor-rest: var(--fgColor-link);
884
884
  --shadow-floating-large: 0px 0px 0px 1px #454c54, 0px 40px 80px 0px #25292e3d; /** Large floating shadow for modals and dialogs */
@@ -1775,7 +1775,7 @@
1775
1775
  --diffBlob-expander-iconColor: var(--fgColor-default);
1776
1776
  --diffBlob-hunkNum-fgColor-hover: var(--fgColor-onEmphasis);
1777
1777
  --diffBlob-hunkNum-fgColor-rest: var(--fgColor-default);
1778
- --focus-outline: 2px solid #0349b4;
1778
+ --focus-outline: 2px solid #0349b4; /** Focus ring outline for keyboard navigation and accessibility. */
1779
1779
  --progressBar-track-bgColor: var(--bgColor-default);
1780
1780
  --reactionButton-selected-fgColor-rest: var(--fgColor-link);
1781
1781
  --shadow-floating-large: 0px 0px 0px 1px #454c54, 0px 40px 80px 0px #25292e3d; /** Large floating shadow for modals and dialogs */
@@ -879,7 +879,7 @@
879
879
  --diffBlob-expander-iconColor: var(--fgColor-default);
880
880
  --diffBlob-hunkNum-fgColor-hover: var(--fgColor-default);
881
881
  --diffBlob-hunkNum-fgColor-rest: var(--fgColor-default);
882
- --focus-outline: 2px solid #0349b4;
882
+ --focus-outline: 2px solid #0349b4; /** Focus ring outline for keyboard navigation and accessibility. */
883
883
  --progressBar-track-bgColor: var(--bgColor-default);
884
884
  --reactionButton-selected-fgColor-rest: var(--fgColor-link);
885
885
  --shadow-floating-large: 0px 0px 0px 1px #454c54, 0px 40px 80px 0px #25292e3d; /** Large floating shadow for modals and dialogs */
@@ -1776,7 +1776,7 @@
1776
1776
  --diffBlob-expander-iconColor: var(--fgColor-default);
1777
1777
  --diffBlob-hunkNum-fgColor-hover: var(--fgColor-default);
1778
1778
  --diffBlob-hunkNum-fgColor-rest: var(--fgColor-default);
1779
- --focus-outline: 2px solid #0349b4;
1779
+ --focus-outline: 2px solid #0349b4; /** Focus ring outline for keyboard navigation and accessibility. */
1780
1780
  --progressBar-track-bgColor: var(--bgColor-default);
1781
1781
  --reactionButton-selected-fgColor-rest: var(--fgColor-link);
1782
1782
  --shadow-floating-large: 0px 0px 0px 1px #454c54, 0px 40px 80px 0px #25292e3d; /** Large floating shadow for modals and dialogs */
@@ -873,7 +873,7 @@
873
873
  --diffBlob-deletionWord-fgColor: var(--fgColor-default);
874
874
  --diffBlob-hunkNum-fgColor-hover: var(--fgColor-default);
875
875
  --diffBlob-hunkNum-fgColor-rest: var(--fgColor-default);
876
- --focus-outline: 2px solid #0969da;
876
+ --focus-outline: 2px solid #0969da; /** Focus ring outline for keyboard navigation and accessibility. */
877
877
  --overlay-borderColor: #d1d9e080;
878
878
  --reactionButton-selected-fgColor-rest: var(--fgColor-link);
879
879
  --tooltip-fgColor: var(--fgColor-onEmphasis);
@@ -1770,7 +1770,7 @@
1770
1770
  --diffBlob-deletionWord-fgColor: var(--fgColor-default);
1771
1771
  --diffBlob-hunkNum-fgColor-hover: var(--fgColor-default);
1772
1772
  --diffBlob-hunkNum-fgColor-rest: var(--fgColor-default);
1773
- --focus-outline: 2px solid #0969da;
1773
+ --focus-outline: 2px solid #0969da; /** Focus ring outline for keyboard navigation and accessibility. */
1774
1774
  --overlay-borderColor: #d1d9e080;
1775
1775
  --reactionButton-selected-fgColor-rest: var(--fgColor-link);
1776
1776
  --tooltip-fgColor: var(--fgColor-onEmphasis);
@@ -872,7 +872,7 @@
872
872
  --diffBlob-deletionWord-fgColor: var(--fgColor-default);
873
873
  --diffBlob-hunkNum-fgColor-hover: var(--fgColor-onEmphasis);
874
874
  --diffBlob-hunkNum-fgColor-rest: var(--fgColor-default);
875
- --focus-outline: 2px solid #0969da;
875
+ --focus-outline: 2px solid #0969da; /** Focus ring outline for keyboard navigation and accessibility. */
876
876
  --overlay-borderColor: #d1d9e080;
877
877
  --reactionButton-selected-fgColor-rest: var(--fgColor-link);
878
878
  --tooltip-fgColor: var(--fgColor-onEmphasis);
@@ -1769,7 +1769,7 @@
1769
1769
  --diffBlob-deletionWord-fgColor: var(--fgColor-default);
1770
1770
  --diffBlob-hunkNum-fgColor-hover: var(--fgColor-onEmphasis);
1771
1771
  --diffBlob-hunkNum-fgColor-rest: var(--fgColor-default);
1772
- --focus-outline: 2px solid #0969da;
1772
+ --focus-outline: 2px solid #0969da; /** Focus ring outline for keyboard navigation and accessibility. */
1773
1773
  --overlay-borderColor: #d1d9e080;
1774
1774
  --reactionButton-selected-fgColor-rest: var(--fgColor-link);
1775
1775
  --tooltip-fgColor: var(--fgColor-onEmphasis);
@@ -38271,6 +38271,12 @@
38271
38271
  },
38272
38272
  "focus-outline": {
38273
38273
  "key": "{focus.outline}",
38274
+ "$extensions": {
38275
+ "org.primer.llm": {
38276
+ "usage": ["focus-ring", "keyboard-navigation", "accessibility-indicator"],
38277
+ "rules": "Always ensure focus states are visible. Do not override with custom focus styles that reduce visibility. Use for interactive elements like buttons, links, and form controls."
38278
+ }
38279
+ },
38274
38280
  "filePath": "src/tokens/functional/border/border.json5",
38275
38281
  "isSource": true,
38276
38282
  "original": {
@@ -38280,13 +38286,21 @@
38280
38286
  "width": "2px"
38281
38287
  },
38282
38288
  "$type": "border",
38289
+ "$description": "Focus ring outline for keyboard navigation and accessibility.",
38290
+ "$extensions": {
38291
+ "org.primer.llm": {
38292
+ "usage": ["focus-ring", "keyboard-navigation", "accessibility-indicator"],
38293
+ "rules": "Always ensure focus states are visible. Do not override with custom focus styles that reduce visibility. Use for interactive elements like buttons, links, and form controls."
38294
+ }
38295
+ },
38283
38296
  "key": "{focus.outline}"
38284
38297
  },
38285
38298
  "name": "focus-outline",
38286
38299
  "attributes": {},
38287
38300
  "path": ["focus", "outline"],
38288
38301
  "value": "2px solid #409eff",
38289
- "type": "border"
38302
+ "type": "border",
38303
+ "description": "Focus ring outline for keyboard navigation and accessibility."
38290
38304
  },
38291
38305
  "focus-outlineColor": {
38292
38306
  "key": "{focus.outlineColor}",
@@ -38271,6 +38271,12 @@
38271
38271
  },
38272
38272
  "focus-outline": {
38273
38273
  "key": "{focus.outline}",
38274
+ "$extensions": {
38275
+ "org.primer.llm": {
38276
+ "usage": ["focus-ring", "keyboard-navigation", "accessibility-indicator"],
38277
+ "rules": "Always ensure focus states are visible. Do not override with custom focus styles that reduce visibility. Use for interactive elements like buttons, links, and form controls."
38278
+ }
38279
+ },
38274
38280
  "filePath": "src/tokens/functional/border/border.json5",
38275
38281
  "isSource": true,
38276
38282
  "original": {
@@ -38280,13 +38286,21 @@
38280
38286
  "width": "2px"
38281
38287
  },
38282
38288
  "$type": "border",
38289
+ "$description": "Focus ring outline for keyboard navigation and accessibility.",
38290
+ "$extensions": {
38291
+ "org.primer.llm": {
38292
+ "usage": ["focus-ring", "keyboard-navigation", "accessibility-indicator"],
38293
+ "rules": "Always ensure focus states are visible. Do not override with custom focus styles that reduce visibility. Use for interactive elements like buttons, links, and form controls."
38294
+ }
38295
+ },
38283
38296
  "key": "{focus.outline}"
38284
38297
  },
38285
38298
  "name": "focus-outline",
38286
38299
  "attributes": {},
38287
38300
  "path": ["focus", "outline"],
38288
38301
  "value": "2px solid #1f6feb",
38289
- "type": "border"
38302
+ "type": "border",
38303
+ "description": "Focus ring outline for keyboard navigation and accessibility."
38290
38304
  },
38291
38305
  "focus-outlineColor": {
38292
38306
  "key": "{focus.outlineColor}",
@@ -38261,6 +38261,12 @@
38261
38261
  },
38262
38262
  "focus-outline": {
38263
38263
  "key": "{focus.outline}",
38264
+ "$extensions": {
38265
+ "org.primer.llm": {
38266
+ "usage": ["focus-ring", "keyboard-navigation", "accessibility-indicator"],
38267
+ "rules": "Always ensure focus states are visible. Do not override with custom focus styles that reduce visibility. Use for interactive elements like buttons, links, and form controls."
38268
+ }
38269
+ },
38264
38270
  "filePath": "src/tokens/functional/border/border.json5",
38265
38271
  "isSource": true,
38266
38272
  "original": {
@@ -38270,13 +38276,21 @@
38270
38276
  "width": "2px"
38271
38277
  },
38272
38278
  "$type": "border",
38279
+ "$description": "Focus ring outline for keyboard navigation and accessibility.",
38280
+ "$extensions": {
38281
+ "org.primer.llm": {
38282
+ "usage": ["focus-ring", "keyboard-navigation", "accessibility-indicator"],
38283
+ "rules": "Always ensure focus states are visible. Do not override with custom focus styles that reduce visibility. Use for interactive elements like buttons, links, and form controls."
38284
+ }
38285
+ },
38273
38286
  "key": "{focus.outline}"
38274
38287
  },
38275
38288
  "name": "focus-outline",
38276
38289
  "attributes": {},
38277
38290
  "path": ["focus", "outline"],
38278
38291
  "value": "2px solid #6cb6ff",
38279
- "type": "border"
38292
+ "type": "border",
38293
+ "description": "Focus ring outline for keyboard navigation and accessibility."
38280
38294
  },
38281
38295
  "focus-outlineColor": {
38282
38296
  "key": "{focus.outlineColor}",
@@ -38261,6 +38261,12 @@
38261
38261
  },
38262
38262
  "focus-outline": {
38263
38263
  "key": "{focus.outline}",
38264
+ "$extensions": {
38265
+ "org.primer.llm": {
38266
+ "usage": ["focus-ring", "keyboard-navigation", "accessibility-indicator"],
38267
+ "rules": "Always ensure focus states are visible. Do not override with custom focus styles that reduce visibility. Use for interactive elements like buttons, links, and form controls."
38268
+ }
38269
+ },
38264
38270
  "filePath": "src/tokens/functional/border/border.json5",
38265
38271
  "isSource": true,
38266
38272
  "original": {
@@ -38270,13 +38276,21 @@
38270
38276
  "width": "2px"
38271
38277
  },
38272
38278
  "$type": "border",
38279
+ "$description": "Focus ring outline for keyboard navigation and accessibility.",
38280
+ "$extensions": {
38281
+ "org.primer.llm": {
38282
+ "usage": ["focus-ring", "keyboard-navigation", "accessibility-indicator"],
38283
+ "rules": "Always ensure focus states are visible. Do not override with custom focus styles that reduce visibility. Use for interactive elements like buttons, links, and form controls."
38284
+ }
38285
+ },
38273
38286
  "key": "{focus.outline}"
38274
38287
  },
38275
38288
  "name": "focus-outline",
38276
38289
  "attributes": {},
38277
38290
  "path": ["focus", "outline"],
38278
38291
  "value": "2px solid #316dca",
38279
- "type": "border"
38292
+ "type": "border",
38293
+ "description": "Focus ring outline for keyboard navigation and accessibility."
38280
38294
  },
38281
38295
  "focus-outlineColor": {
38282
38296
  "key": "{focus.outlineColor}",
@@ -38267,6 +38267,12 @@
38267
38267
  },
38268
38268
  "focus-outline": {
38269
38269
  "key": "{focus.outline}",
38270
+ "$extensions": {
38271
+ "org.primer.llm": {
38272
+ "usage": ["focus-ring", "keyboard-navigation", "accessibility-indicator"],
38273
+ "rules": "Always ensure focus states are visible. Do not override with custom focus styles that reduce visibility. Use for interactive elements like buttons, links, and form controls."
38274
+ }
38275
+ },
38270
38276
  "filePath": "src/tokens/functional/border/border.json5",
38271
38277
  "isSource": true,
38272
38278
  "original": {
@@ -38276,13 +38282,21 @@
38276
38282
  "width": "2px"
38277
38283
  },
38278
38284
  "$type": "border",
38285
+ "$description": "Focus ring outline for keyboard navigation and accessibility.",
38286
+ "$extensions": {
38287
+ "org.primer.llm": {
38288
+ "usage": ["focus-ring", "keyboard-navigation", "accessibility-indicator"],
38289
+ "rules": "Always ensure focus states are visible. Do not override with custom focus styles that reduce visibility. Use for interactive elements like buttons, links, and form controls."
38290
+ }
38291
+ },
38279
38292
  "key": "{focus.outline}"
38280
38293
  },
38281
38294
  "name": "focus-outline",
38282
38295
  "attributes": {},
38283
38296
  "path": ["focus", "outline"],
38284
38297
  "value": "2px solid #409eff",
38285
- "type": "border"
38298
+ "type": "border",
38299
+ "description": "Focus ring outline for keyboard navigation and accessibility."
38286
38300
  },
38287
38301
  "focus-outlineColor": {
38288
38302
  "key": "{focus.outlineColor}",
@@ -38267,6 +38267,12 @@
38267
38267
  },
38268
38268
  "focus-outline": {
38269
38269
  "key": "{focus.outline}",
38270
+ "$extensions": {
38271
+ "org.primer.llm": {
38272
+ "usage": ["focus-ring", "keyboard-navigation", "accessibility-indicator"],
38273
+ "rules": "Always ensure focus states are visible. Do not override with custom focus styles that reduce visibility. Use for interactive elements like buttons, links, and form controls."
38274
+ }
38275
+ },
38270
38276
  "filePath": "src/tokens/functional/border/border.json5",
38271
38277
  "isSource": true,
38272
38278
  "original": {
@@ -38276,13 +38282,21 @@
38276
38282
  "width": "2px"
38277
38283
  },
38278
38284
  "$type": "border",
38285
+ "$description": "Focus ring outline for keyboard navigation and accessibility.",
38286
+ "$extensions": {
38287
+ "org.primer.llm": {
38288
+ "usage": ["focus-ring", "keyboard-navigation", "accessibility-indicator"],
38289
+ "rules": "Always ensure focus states are visible. Do not override with custom focus styles that reduce visibility. Use for interactive elements like buttons, links, and form controls."
38290
+ }
38291
+ },
38279
38292
  "key": "{focus.outline}"
38280
38293
  },
38281
38294
  "name": "focus-outline",
38282
38295
  "attributes": {},
38283
38296
  "path": ["focus", "outline"],
38284
38297
  "value": "2px solid #409eff",
38285
- "type": "border"
38298
+ "type": "border",
38299
+ "description": "Focus ring outline for keyboard navigation and accessibility."
38286
38300
  },
38287
38301
  "focus-outlineColor": {
38288
38302
  "key": "{focus.outlineColor}",
@@ -38269,6 +38269,12 @@
38269
38269
  },
38270
38270
  "focus-outline": {
38271
38271
  "key": "{focus.outline}",
38272
+ "$extensions": {
38273
+ "org.primer.llm": {
38274
+ "usage": ["focus-ring", "keyboard-navigation", "accessibility-indicator"],
38275
+ "rules": "Always ensure focus states are visible. Do not override with custom focus styles that reduce visibility. Use for interactive elements like buttons, links, and form controls."
38276
+ }
38277
+ },
38272
38278
  "filePath": "src/tokens/functional/border/border.json5",
38273
38279
  "isSource": true,
38274
38280
  "original": {
@@ -38278,13 +38284,21 @@
38278
38284
  "width": "2px"
38279
38285
  },
38280
38286
  "$type": "border",
38287
+ "$description": "Focus ring outline for keyboard navigation and accessibility.",
38288
+ "$extensions": {
38289
+ "org.primer.llm": {
38290
+ "usage": ["focus-ring", "keyboard-navigation", "accessibility-indicator"],
38291
+ "rules": "Always ensure focus states are visible. Do not override with custom focus styles that reduce visibility. Use for interactive elements like buttons, links, and form controls."
38292
+ }
38293
+ },
38281
38294
  "key": "{focus.outline}"
38282
38295
  },
38283
38296
  "name": "focus-outline",
38284
38297
  "attributes": {},
38285
38298
  "path": ["focus", "outline"],
38286
38299
  "value": "2px solid #1f6feb",
38287
- "type": "border"
38300
+ "type": "border",
38301
+ "description": "Focus ring outline for keyboard navigation and accessibility."
38288
38302
  },
38289
38303
  "focus-outlineColor": {
38290
38304
  "key": "{focus.outlineColor}",