gbs-add-block 2.1.0 → 2.3.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 (129) hide show
  1. package/.gbs/skills/gbs-components/SKILL.md +190 -134
  2. package/.gbs/skills/gbs-components/references/install.md +25 -3
  3. package/.gbs/skills/gbs-components/references/styling.md +246 -207
  4. package/CHANGELOG.md +74 -0
  5. package/README.md +154 -23
  6. package/index.cjs +212 -3
  7. package/package.json +41 -10
  8. package/schema/passport-v1.schema.json +204 -0
  9. package/source/beta-components/accordion/passport.json +259 -0
  10. package/source/beta-components/accordion/styles.css +207 -208
  11. package/source/beta-components/alert/passport.json +250 -0
  12. package/source/beta-components/alert/styles.css +154 -155
  13. package/source/beta-components/avatar/passport.json +294 -0
  14. package/source/beta-components/avatar/styles.css +225 -226
  15. package/source/beta-components/badge/passport.json +332 -0
  16. package/source/beta-components/badge/styles.css +203 -204
  17. package/source/beta-components/breadcrumb/passport.json +243 -0
  18. package/source/beta-components/breadcrumb/styles.css +138 -140
  19. package/source/beta-components/button/passport.json +402 -0
  20. package/source/beta-components/button/passport.manual.json +31 -0
  21. package/source/beta-components/button/styles.css +232 -234
  22. package/source/beta-components/card/passport.json +337 -0
  23. package/source/beta-components/card/styles.css +230 -232
  24. package/source/beta-components/checkbox/passport.json +456 -0
  25. package/source/beta-components/checkbox/styles.css +211 -213
  26. package/source/beta-components/combobox/passport.json +456 -0
  27. package/source/beta-components/combobox/styles.css +419 -417
  28. package/source/beta-components/data-grid/agent/coerce.ts +368 -0
  29. package/source/beta-components/data-grid/agent/contract.ts +410 -0
  30. package/source/beta-components/data-grid/agent/dataset.ts +92 -0
  31. package/source/beta-components/data-grid/agent/engine.ts +470 -0
  32. package/source/beta-components/data-grid/agent/executors.ts +155 -0
  33. package/source/beta-components/data-grid/agent/index.ts +79 -0
  34. package/source/beta-components/data-grid/agent/intent.ts +324 -0
  35. package/source/beta-components/data-grid/agent/operations.ts +335 -0
  36. package/source/beta-components/data-grid/agent/validate.ts +630 -0
  37. package/source/beta-components/data-grid/agent/webmcp.ts +107 -0
  38. package/source/beta-components/data-grid/index.ts +14 -7
  39. package/source/beta-components/data-grid/passport.json +1051 -0
  40. package/source/beta-components/data-grid/passport.manual.json +255 -0
  41. package/source/beta-components/data-grid/react/AskGrid.tsx +164 -0
  42. package/source/beta-components/data-grid/react/DataGrid.tsx +39 -0
  43. package/source/beta-components/data-grid/styles.css +874 -716
  44. package/source/beta-components/date-picker/passport.json +407 -0
  45. package/source/beta-components/date-picker/styles.css +445 -446
  46. package/source/beta-components/dialog/passport.json +344 -0
  47. package/source/beta-components/dialog/styles.css +280 -279
  48. package/source/beta-components/file-uploader/passport.json +518 -0
  49. package/source/beta-components/file-uploader/styles.css +394 -396
  50. package/source/beta-components/input/passport.json +536 -0
  51. package/source/beta-components/input/styles.css +295 -297
  52. package/source/beta-components/menu/passport.json +322 -0
  53. package/source/beta-components/menu/styles.css +224 -223
  54. package/source/beta-components/modal/passport.json +289 -0
  55. package/source/beta-components/modal/styles.css +241 -240
  56. package/source/beta-components/number-input/passport.json +541 -0
  57. package/source/beta-components/number-input/styles.css +230 -231
  58. package/source/beta-components/popover/passport.json +238 -0
  59. package/source/beta-components/popover/styles.css +148 -147
  60. package/source/beta-components/progress/passport.json +270 -0
  61. package/source/beta-components/progress/styles.css +200 -201
  62. package/source/beta-components/radio-group/passport.json +477 -0
  63. package/source/beta-components/radio-group/styles.css +269 -270
  64. package/source/beta-components/shared/core/agent/adapter.ts +65 -0
  65. package/source/beta-components/shared/core/agent/history.ts +120 -0
  66. package/source/beta-components/shared/core/agent/index.ts +46 -0
  67. package/source/beta-components/shared/core/agent/numbers.ts +217 -0
  68. package/source/beta-components/shared/core/agent/schema.ts +180 -0
  69. package/source/beta-components/shared/core/agent/types.ts +169 -0
  70. package/source/beta-components/shared/core/agent/webmcp.ts +328 -0
  71. package/source/beta-components/shared/index.ts +9 -0
  72. package/source/beta-components/shared/react/GramproAIProvider.tsx +50 -0
  73. package/source/beta-components/shared/react/useAskAgent.ts +217 -0
  74. package/source/beta-components/shared/styles.css +79 -0
  75. package/source/beta-components/shared/version.json +4 -4
  76. package/source/beta-components/shared/version.ts +6 -6
  77. package/source/beta-components/skeleton/passport.json +251 -0
  78. package/source/beta-components/skeleton/styles.css +185 -187
  79. package/source/beta-components/spinner/passport.json +245 -0
  80. package/source/beta-components/spinner/styles.css +173 -174
  81. package/source/beta-components/switch/passport.json +421 -0
  82. package/source/beta-components/switch/styles.css +227 -229
  83. package/source/beta-components/tabs/passport.json +315 -0
  84. package/source/beta-components/tabs/styles.css +263 -264
  85. package/source/beta-components/textarea/passport.json +382 -0
  86. package/source/beta-components/textarea/styles.css +158 -160
  87. package/source/beta-components/toaster/passport.json +221 -0
  88. package/source/beta-components/toaster/styles.css +282 -282
  89. package/source/beta-components/tooltip/passport.json +170 -0
  90. package/source/beta-components/tooltip/styles.css +71 -73
  91. package/tools/env.cjs +61 -0
  92. package/tools/passport/cli.cjs +79 -0
  93. package/tools/passport/extract.cjs +493 -0
  94. package/tools/passport/index.cjs +185 -0
  95. package/tools/passport/merge.cjs +131 -0
  96. package/tools/passport/policy.cjs +65 -0
  97. package/tools/passport/validate.cjs +277 -0
  98. package/tools/ts-require.cjs +79 -0
  99. package/source/beta-components/accordion/__tests__/core.test.ts +0 -58
  100. package/source/beta-components/alert/__tests__/core.test.ts +0 -17
  101. package/source/beta-components/avatar/__tests__/core.test.ts +0 -88
  102. package/source/beta-components/badge/__tests__/core.test.ts +0 -46
  103. package/source/beta-components/breadcrumb/__tests__/core.test.ts +0 -58
  104. package/source/beta-components/button/__tests__/core.test.ts +0 -31
  105. package/source/beta-components/card/__tests__/core.test.ts +0 -57
  106. package/source/beta-components/checkbox/__tests__/core.test.ts +0 -40
  107. package/source/beta-components/combobox/__tests__/core.test.ts +0 -134
  108. package/source/beta-components/data-grid/__tests__/core.test.ts +0 -356
  109. package/source/beta-components/data-grid/__tests__/export.test.ts +0 -70
  110. package/source/beta-components/data-grid/__tests__/pdf.test.ts +0 -209
  111. package/source/beta-components/date-picker/__tests__/core.test.ts +0 -273
  112. package/source/beta-components/dialog/__tests__/core.test.ts +0 -86
  113. package/source/beta-components/file-uploader/__tests__/core.test.ts +0 -395
  114. package/source/beta-components/input/__tests__/core.test.ts +0 -75
  115. package/source/beta-components/menu/__tests__/core.test.ts +0 -120
  116. package/source/beta-components/modal/__tests__/core.test.ts +0 -55
  117. package/source/beta-components/number-input/__tests__/core.test.ts +0 -151
  118. package/source/beta-components/progress/__tests__/core.test.ts +0 -56
  119. package/source/beta-components/radio-group/__tests__/core.test.ts +0 -64
  120. package/source/beta-components/shared/__tests__/boundaries.test.ts +0 -95
  121. package/source/beta-components/shared/__tests__/core.test.ts +0 -55
  122. package/source/beta-components/shared/__tests__/position.test.ts +0 -143
  123. package/source/beta-components/skeleton/__tests__/core.test.ts +0 -41
  124. package/source/beta-components/spinner/__tests__/core.test.ts +0 -48
  125. package/source/beta-components/switch/__tests__/core.test.ts +0 -64
  126. package/source/beta-components/tabs/__tests__/core.test.ts +0 -51
  127. package/source/beta-components/textarea/__tests__/core.test.ts +0 -38
  128. package/source/beta-components/toaster/__tests__/core.test.ts +0 -256
  129. package/source/beta-components/tooltip/__tests__/core.test.ts +0 -42
@@ -1,204 +1,203 @@
1
- /*
2
- * Badge and Tag styles.
3
- *
4
- * One tinted pill in six variants and three appearances; the variant only
5
- * ever sets --bd-accent, so adding one is a single rule. Tokens read the
6
- * shared --gbs-* variables when they are set on an ancestor (set them on
7
- * :root to theme every component at once). Rules live in the `gbs` layer;
8
- * declare where it sits in your global CSS, e.g. `@layer reset, gbs, app,
9
- * utilities;`, and anything in a later layer overrides them.
10
- */
11
-
12
- @layer gbs {
13
- .bd-root,
14
- .bd-tag {
15
- --bd-fg: var(--gbs-fg, var(--dg-fg, light-dark(#18181b, #f4f4f5)));
16
- --bd-muted: var(--gbs-muted, var(--dg-muted, light-dark(#71717a, #a1a1aa)));
17
- --bd-bg: var(--gbs-bg, var(--dg-bg, light-dark(#ffffff, #0b0b0e)));
18
- --bd-border: var(--gbs-border, var(--dg-border, light-dark(#e4e4e7, #27272a)));
19
- --bd-on-accent: var(--gbs-accent-fg, var(--dg-accent-fg, light-dark(#ffffff, #0b1220)));
20
- --bd-focus: var(--gbs-focus, var(--dg-focus, light-dark(#2563eb, #60a5fa)));
21
- --bd-accent-color: var(--gbs-accent, var(--dg-accent, light-dark(#2563eb, #60a5fa)));
22
- --bd-success: var(--gbs-success, light-dark(#15803d, #4ade80));
23
- --bd-warning: var(--gbs-warning, light-dark(#b45309, #fbbf24));
24
- --bd-danger: var(--gbs-danger, var(--dg-danger, light-dark(#dc2626, #f87171)));
25
- --bd-info: var(--gbs-info, var(--bd-accent-color));
26
- --bd-font-size: calc(var(--gbs-font-size, var(--dg-font-size, 13px)) - 1px);
27
- --bd-radius: 999px;
28
- --bd-height: 20px;
29
- --bd-px: 8px;
30
- /* Neutral is the text colour rather than a hue, so it reads as "no state". */
31
- --bd-accent: var(--bd-fg);
32
-
33
- color-scheme: inherit;
34
- display: inline-flex;
35
- align-items: center;
36
- gap: 4px;
37
- max-width: 100%;
38
- height: var(--bd-height);
39
- padding: 0 var(--bd-px);
40
- border: 1px solid transparent;
41
- border-radius: var(--bd-radius);
42
- font-size: var(--bd-font-size);
43
- font-weight: 500;
44
- line-height: 1;
45
- white-space: nowrap;
46
- vertical-align: middle;
47
- }
48
-
49
- :where(.dark, [data-theme="dark"]) :is(.bd-root, .bd-tag) {
50
- color-scheme: dark;
51
- }
52
- :where(.light, [data-theme="light"]) :is(.bd-root, .bd-tag) {
53
- color-scheme: light;
54
- }
55
-
56
- :where(.bd-root, .bd-tag) *,
57
- :where(.bd-root, .bd-tag) *::before,
58
- :where(.bd-root, .bd-tag) *::after {
59
- box-sizing: border-box;
60
- }
61
-
62
- .bd-root[data-variant="accent"],
63
- .bd-tag[data-variant="accent"] {
64
- --bd-accent: var(--bd-accent-color);
65
- }
66
- .bd-root[data-variant="success"],
67
- .bd-tag[data-variant="success"] {
68
- --bd-accent: var(--bd-success);
69
- }
70
- .bd-root[data-variant="warning"],
71
- .bd-tag[data-variant="warning"] {
72
- --bd-accent: var(--bd-warning);
73
- }
74
- .bd-root[data-variant="danger"],
75
- .bd-tag[data-variant="danger"] {
76
- --bd-accent: var(--bd-danger);
77
- }
78
- .bd-root[data-variant="info"],
79
- .bd-tag[data-variant="info"] {
80
- --bd-accent: var(--bd-info);
81
- }
82
-
83
- /* --------------------------------------------------------- appearances */
84
-
85
- .bd-root[data-appearance="soft"],
86
- .bd-tag[data-appearance="soft"] {
87
- background: color-mix(in oklab, var(--bd-accent) 12%, var(--bd-bg));
88
- color: color-mix(in oklab, var(--bd-accent) 85%, var(--bd-fg));
89
- }
90
- .bd-root[data-appearance="solid"],
91
- .bd-tag[data-appearance="solid"] {
92
- background: var(--bd-accent);
93
- color: var(--bd-on-accent);
94
- }
95
- /* Neutral solid would be black on near-black text; invert it instead. */
96
- .bd-root[data-variant="neutral"][data-appearance="solid"],
97
- .bd-tag[data-variant="neutral"][data-appearance="solid"] {
98
- background: var(--bd-fg);
99
- color: var(--bd-bg);
100
- }
101
- .bd-root[data-appearance="outline"],
102
- .bd-tag[data-appearance="outline"] {
103
- border-color: color-mix(in oklab, var(--bd-accent) 40%, var(--bd-border));
104
- color: color-mix(in oklab, var(--bd-accent) 85%, var(--bd-fg));
105
- }
106
-
107
- .bd-root[data-size="sm"],
108
- .bd-tag[data-size="sm"] {
109
- --bd-height: 17px;
110
- --bd-px: 6px;
111
- --bd-font-size: 11px;
112
- }
113
-
114
- /* A counter is a circle until it needs to be a pill. */
115
- .bd-root[data-count] {
116
- justify-content: center;
117
- min-width: var(--bd-height);
118
- padding: 0 5px;
119
- font-variant-numeric: tabular-nums;
120
- }
121
-
122
- .bd-dot {
123
- width: 6px;
124
- height: 6px;
125
- border-radius: 50%;
126
- background: currentColor;
127
- }
128
- .bd-icon {
129
- display: inline-flex;
130
- flex: none;
131
- }
132
- .bd-icon > svg {
133
- width: 12px;
134
- height: 12px;
135
- }
136
- .bd-label {
137
- overflow: hidden;
138
- text-overflow: ellipsis;
139
- }
140
-
141
- /* ------------------------------------------------------------------ tag */
142
-
143
- .bd-tag {
144
- --bd-px: 8px;
145
- padding-inline-end: 4px;
146
- }
147
- .bd-tag:not(:has(.bd-remove)) {
148
- padding-inline-end: var(--bd-px);
149
- }
150
-
151
- .bd-remove {
152
- display: inline-flex;
153
- flex: none;
154
- align-items: center;
155
- justify-content: center;
156
- width: 16px;
157
- height: 16px;
158
- padding: 0;
159
- border: 0;
160
- border-radius: 50%;
161
- background: none;
162
- color: inherit;
163
- opacity: 0.7;
164
- cursor: pointer;
165
- }
166
- .bd-remove:hover:not(:disabled) {
167
- background: color-mix(in oklab, currentColor 18%, transparent);
168
- opacity: 1;
169
- }
170
- .bd-remove:focus-visible {
171
- outline: 2px solid var(--bd-focus);
172
- outline-offset: 1px;
173
- }
174
- .bd-remove:disabled {
175
- cursor: not-allowed;
176
- }
177
- .bd-tag[data-disabled] {
178
- opacity: 0.6;
179
- }
180
-
181
- .bd-sr-only {
182
- position: absolute;
183
- width: 1px;
184
- height: 1px;
185
- margin: -1px;
186
- padding: 0;
187
- border: 0;
188
- overflow: hidden;
189
- clip-path: inset(50%);
190
- white-space: nowrap;
191
- }
192
-
193
- @media (forced-colors: active) {
194
- .bd-root,
195
- .bd-tag {
196
- border-color: CanvasText;
197
- }
198
- .bd-root[data-appearance="solid"],
199
- .bd-tag[data-appearance="solid"] {
200
- background: Highlight;
201
- color: HighlightText;
202
- }
203
- }
204
- }
1
+ /*
2
+ * Badge and Tag styles.
3
+ *
4
+ * One tinted pill in six variants and three appearances; the variant only ever
5
+ * sets --bd-accent, so adding one is a single rule. Tokens read the shared
6
+ * --gbs-* variables when they are set on an ancestor (set them on :root to
7
+ * theme every component at once). Rules are unlayered: they beat a framework
8
+ * reset on specificity, and lose to anything you pass through `className`.
9
+ * With Tailwind v4, import this file after the framework and inside its
10
+ * components layer - see the README.
11
+ */
12
+
13
+ .bd-root,
14
+ .bd-tag {
15
+ --bd-fg: var(--gbs-fg, var(--dg-fg, light-dark(#18181b, #f4f4f5)));
16
+ --bd-muted: var(--gbs-muted, var(--dg-muted, light-dark(#71717a, #a1a1aa)));
17
+ --bd-bg: var(--gbs-bg, var(--dg-bg, light-dark(#ffffff, #0b0b0e)));
18
+ --bd-border: var(--gbs-border, var(--dg-border, light-dark(#e4e4e7, #27272a)));
19
+ --bd-on-accent: var(--gbs-accent-fg, var(--dg-accent-fg, light-dark(#ffffff, #0b1220)));
20
+ --bd-focus: var(--gbs-focus, var(--dg-focus, light-dark(#2563eb, #60a5fa)));
21
+ --bd-accent-color: var(--gbs-accent, var(--dg-accent, light-dark(#2563eb, #60a5fa)));
22
+ --bd-success: var(--gbs-success, light-dark(#15803d, #4ade80));
23
+ --bd-warning: var(--gbs-warning, light-dark(#b45309, #fbbf24));
24
+ --bd-danger: var(--gbs-danger, var(--dg-danger, light-dark(#dc2626, #f87171)));
25
+ --bd-info: var(--gbs-info, var(--bd-accent-color));
26
+ --bd-font-size: calc(var(--gbs-font-size, var(--dg-font-size, 13px)) - 1px);
27
+ --bd-radius: 999px;
28
+ --bd-height: 20px;
29
+ --bd-px: 8px;
30
+ /* Neutral is the text colour rather than a hue, so it reads as "no state". */
31
+ --bd-accent: var(--bd-fg);
32
+
33
+ color-scheme: inherit;
34
+ display: inline-flex;
35
+ align-items: center;
36
+ gap: 4px;
37
+ max-width: 100%;
38
+ height: var(--bd-height);
39
+ padding: 0 var(--bd-px);
40
+ border: 1px solid transparent;
41
+ border-radius: var(--bd-radius);
42
+ font-size: var(--bd-font-size);
43
+ font-weight: 500;
44
+ line-height: 1;
45
+ white-space: nowrap;
46
+ vertical-align: middle;
47
+ }
48
+
49
+ :where(.dark, [data-theme="dark"]) :is(.bd-root, .bd-tag) {
50
+ color-scheme: dark;
51
+ }
52
+ :where(.light, [data-theme="light"]) :is(.bd-root, .bd-tag) {
53
+ color-scheme: light;
54
+ }
55
+
56
+ :where(.bd-root, .bd-tag) *,
57
+ :where(.bd-root, .bd-tag) *::before,
58
+ :where(.bd-root, .bd-tag) *::after {
59
+ box-sizing: border-box;
60
+ }
61
+
62
+ .bd-root[data-variant="accent"],
63
+ .bd-tag[data-variant="accent"] {
64
+ --bd-accent: var(--bd-accent-color);
65
+ }
66
+ .bd-root[data-variant="success"],
67
+ .bd-tag[data-variant="success"] {
68
+ --bd-accent: var(--bd-success);
69
+ }
70
+ .bd-root[data-variant="warning"],
71
+ .bd-tag[data-variant="warning"] {
72
+ --bd-accent: var(--bd-warning);
73
+ }
74
+ .bd-root[data-variant="danger"],
75
+ .bd-tag[data-variant="danger"] {
76
+ --bd-accent: var(--bd-danger);
77
+ }
78
+ .bd-root[data-variant="info"],
79
+ .bd-tag[data-variant="info"] {
80
+ --bd-accent: var(--bd-info);
81
+ }
82
+
83
+ /* --------------------------------------------------------- appearances */
84
+
85
+ .bd-root[data-appearance="soft"],
86
+ .bd-tag[data-appearance="soft"] {
87
+ background: color-mix(in oklab, var(--bd-accent) 12%, var(--bd-bg));
88
+ color: color-mix(in oklab, var(--bd-accent) 85%, var(--bd-fg));
89
+ }
90
+ .bd-root[data-appearance="solid"],
91
+ .bd-tag[data-appearance="solid"] {
92
+ background: var(--bd-accent);
93
+ color: var(--bd-on-accent);
94
+ }
95
+ /* Neutral solid would be black on near-black text; invert it instead. */
96
+ .bd-root[data-variant="neutral"][data-appearance="solid"],
97
+ .bd-tag[data-variant="neutral"][data-appearance="solid"] {
98
+ background: var(--bd-fg);
99
+ color: var(--bd-bg);
100
+ }
101
+ .bd-root[data-appearance="outline"],
102
+ .bd-tag[data-appearance="outline"] {
103
+ border-color: color-mix(in oklab, var(--bd-accent) 40%, var(--bd-border));
104
+ color: color-mix(in oklab, var(--bd-accent) 85%, var(--bd-fg));
105
+ }
106
+
107
+ .bd-root[data-size="sm"],
108
+ .bd-tag[data-size="sm"] {
109
+ --bd-height: 17px;
110
+ --bd-px: 6px;
111
+ --bd-font-size: 11px;
112
+ }
113
+
114
+ /* A counter is a circle until it needs to be a pill. */
115
+ .bd-root[data-count] {
116
+ justify-content: center;
117
+ min-width: var(--bd-height);
118
+ padding: 0 5px;
119
+ font-variant-numeric: tabular-nums;
120
+ }
121
+
122
+ .bd-dot {
123
+ width: 6px;
124
+ height: 6px;
125
+ border-radius: 50%;
126
+ background: currentColor;
127
+ }
128
+ .bd-icon {
129
+ display: inline-flex;
130
+ flex: none;
131
+ }
132
+ .bd-icon > svg {
133
+ width: 12px;
134
+ height: 12px;
135
+ }
136
+ .bd-label {
137
+ overflow: hidden;
138
+ text-overflow: ellipsis;
139
+ }
140
+
141
+ /* ------------------------------------------------------------------ tag */
142
+
143
+ .bd-tag {
144
+ --bd-px: 8px;
145
+ padding-inline-end: 4px;
146
+ }
147
+ .bd-tag:not(:has(.bd-remove)) {
148
+ padding-inline-end: var(--bd-px);
149
+ }
150
+
151
+ .bd-remove {
152
+ display: inline-flex;
153
+ flex: none;
154
+ align-items: center;
155
+ justify-content: center;
156
+ width: 16px;
157
+ height: 16px;
158
+ padding: 0;
159
+ border: 0;
160
+ border-radius: 50%;
161
+ background: none;
162
+ color: inherit;
163
+ opacity: 0.7;
164
+ cursor: pointer;
165
+ }
166
+ .bd-remove:hover:not(:disabled) {
167
+ background: color-mix(in oklab, currentColor 18%, transparent);
168
+ opacity: 1;
169
+ }
170
+ .bd-remove:focus-visible {
171
+ outline: 2px solid var(--bd-focus);
172
+ outline-offset: 1px;
173
+ }
174
+ .bd-remove:disabled {
175
+ cursor: not-allowed;
176
+ }
177
+ .bd-tag[data-disabled] {
178
+ opacity: 0.6;
179
+ }
180
+
181
+ .bd-sr-only {
182
+ position: absolute;
183
+ width: 1px;
184
+ height: 1px;
185
+ margin: -1px;
186
+ padding: 0;
187
+ border: 0;
188
+ overflow: hidden;
189
+ clip-path: inset(50%);
190
+ white-space: nowrap;
191
+ }
192
+
193
+ @media (forced-colors: active) {
194
+ .bd-root,
195
+ .bd-tag {
196
+ border-color: CanvasText;
197
+ }
198
+ .bd-root[data-appearance="solid"],
199
+ .bd-tag[data-appearance="solid"] {
200
+ background: Highlight;
201
+ color: HighlightText;
202
+ }
203
+ }
@@ -0,0 +1,243 @@
1
+ {
2
+ "passportVersion": "1.0.0",
3
+ "identity": {
4
+ "component": "Breadcrumb",
5
+ "folder": "breadcrumb",
6
+ "exports": [
7
+ "Breadcrumb"
8
+ ]
9
+ },
10
+ "source": {
11
+ "libraryVersion": "2.3.0",
12
+ "files": [
13
+ "core/index.ts",
14
+ "core/trail.ts",
15
+ "core/types.ts",
16
+ "index.ts",
17
+ "react/Breadcrumb.tsx",
18
+ "react/locale.ts",
19
+ "react/props.ts"
20
+ ],
21
+ "sourceHash": "sha256:b6481a74d207aee947732a6f0657b0beab8e687f1c5fdf4f4da2d3965c6aafa7"
22
+ },
23
+ "props": [
24
+ {
25
+ "name": "aria-describedby",
26
+ "type": "string",
27
+ "typeText": "string | undefined",
28
+ "required": false,
29
+ "origin": "inherited"
30
+ },
31
+ {
32
+ "name": "aria-label",
33
+ "type": "string",
34
+ "typeText": "string | undefined",
35
+ "required": false,
36
+ "origin": "inherited"
37
+ },
38
+ {
39
+ "name": "aria-labelledby",
40
+ "type": "string",
41
+ "typeText": "string | undefined",
42
+ "required": false,
43
+ "origin": "inherited"
44
+ },
45
+ {
46
+ "name": "className",
47
+ "type": "string",
48
+ "typeText": "string | undefined",
49
+ "required": false,
50
+ "origin": "inherited"
51
+ },
52
+ {
53
+ "name": "classNames",
54
+ "type": "other",
55
+ "typeText": "Partial<Record<BreadcrumbSlot, string>> | undefined",
56
+ "required": false,
57
+ "origin": "derived"
58
+ },
59
+ {
60
+ "name": "hidden",
61
+ "type": "boolean",
62
+ "typeText": "boolean | undefined",
63
+ "required": false,
64
+ "origin": "inherited"
65
+ },
66
+ {
67
+ "name": "id",
68
+ "type": "string",
69
+ "typeText": "string | undefined",
70
+ "required": false,
71
+ "origin": "inherited"
72
+ },
73
+ {
74
+ "name": "items",
75
+ "type": "other",
76
+ "typeText": "readonly BreadcrumbItem[]",
77
+ "required": true,
78
+ "origin": "derived",
79
+ "description": "From the top level to the current page. The last item is the current page.",
80
+ "descriptionOrigin": "jsdoc"
81
+ },
82
+ {
83
+ "name": "itemsAfterCollapse",
84
+ "type": "number",
85
+ "typeText": "number | undefined",
86
+ "required": false,
87
+ "default": 1,
88
+ "origin": "derived",
89
+ "description": "Crumbs kept after the collapsed part. Default 1.",
90
+ "descriptionOrigin": "jsdoc"
91
+ },
92
+ {
93
+ "name": "itemsBeforeCollapse",
94
+ "type": "number",
95
+ "typeText": "number | undefined",
96
+ "required": false,
97
+ "default": 1,
98
+ "origin": "derived",
99
+ "description": "Crumbs kept before the collapsed part. Default 1.",
100
+ "descriptionOrigin": "jsdoc"
101
+ },
102
+ {
103
+ "name": "localeText",
104
+ "type": "other",
105
+ "typeText": "Partial<BreadcrumbLocaleText> | undefined",
106
+ "required": false,
107
+ "origin": "derived"
108
+ },
109
+ {
110
+ "name": "maxItems",
111
+ "type": "number",
112
+ "typeText": "number | undefined",
113
+ "required": false,
114
+ "origin": "derived",
115
+ "description": "Collapse the middle of the trail when it has more crumbs than this.",
116
+ "descriptionOrigin": "jsdoc"
117
+ },
118
+ {
119
+ "name": "renderLink",
120
+ "type": "function",
121
+ "signature": "((props: BreadcrumbLinkProps) => ReactElement) | undefined",
122
+ "required": false,
123
+ "origin": "derived",
124
+ "description": "Draw links with your router, e.g. `(props) => <Link {...props} />`.",
125
+ "descriptionOrigin": "jsdoc"
126
+ },
127
+ {
128
+ "name": "role",
129
+ "type": "other",
130
+ "typeText": "AriaRole | undefined",
131
+ "required": false,
132
+ "origin": "inherited"
133
+ },
134
+ {
135
+ "name": "separator",
136
+ "type": "other",
137
+ "typeText": "ReactNode",
138
+ "required": false,
139
+ "origin": "derived",
140
+ "description": "Between crumbs. Default a chevron.",
141
+ "descriptionOrigin": "jsdoc"
142
+ },
143
+ {
144
+ "name": "size",
145
+ "type": "enum",
146
+ "values": [
147
+ "lg",
148
+ "md",
149
+ "sm"
150
+ ],
151
+ "typeText": "'sm' | 'md' | 'lg' | undefined",
152
+ "required": false,
153
+ "default": "md",
154
+ "origin": "derived"
155
+ },
156
+ {
157
+ "name": "structuredData",
158
+ "type": "other",
159
+ "typeText": "boolean | { baseUrl: string; } | undefined",
160
+ "required": false,
161
+ "default": false,
162
+ "origin": "derived",
163
+ "description": "Add schema.org `BreadcrumbList` JSON-LD for search engines. Pass\n`{ baseUrl }` so relative links become absolute, as search engines require.",
164
+ "descriptionOrigin": "jsdoc"
165
+ },
166
+ {
167
+ "name": "style",
168
+ "type": "other",
169
+ "typeText": "CSSProperties | undefined",
170
+ "required": false,
171
+ "origin": "inherited"
172
+ },
173
+ {
174
+ "name": "tabIndex",
175
+ "type": "number",
176
+ "typeText": "number | undefined",
177
+ "required": false,
178
+ "origin": "inherited"
179
+ },
180
+ {
181
+ "name": "title",
182
+ "type": "string",
183
+ "typeText": "string | undefined",
184
+ "required": false,
185
+ "origin": "inherited"
186
+ }
187
+ ],
188
+ "inherits": [
189
+ {
190
+ "from": "HTMLAttributes<HTMLElement>",
191
+ "omitted": [
192
+ "children"
193
+ ],
194
+ "passthrough": true
195
+ }
196
+ ],
197
+ "events": [],
198
+ "slots": [
199
+ "item",
200
+ "ellipsis",
201
+ "root",
202
+ "list",
203
+ "link",
204
+ "current",
205
+ "separator"
206
+ ],
207
+ "states": [
208
+ {
209
+ "attr": "data-index"
210
+ },
211
+ {
212
+ "attr": "data-size",
213
+ "values": [
214
+ "lg",
215
+ "sm"
216
+ ]
217
+ },
218
+ {
219
+ "attr": "data-theme",
220
+ "values": [
221
+ "dark",
222
+ "light"
223
+ ]
224
+ }
225
+ ],
226
+ "accessibility": {
227
+ "supplied": [],
228
+ "required": []
229
+ },
230
+ "composition": {},
231
+ "operations": {},
232
+ "intentDomains": [],
233
+ "safeMutations": {},
234
+ "examples": [],
235
+ "coverage": {
236
+ "propsTotal": 20,
237
+ "propsDescribed": 7,
238
+ "describedPct": 35,
239
+ "authoredSections": [
240
+ "accessibility"
241
+ ]
242
+ }
243
+ }