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,155 +1,154 @@
1
- /*
2
- * Alert styles.
3
- *
4
- * A banner that sits in the page, tinted by variant. Tokens read the shared
5
- * --gbs-* variables when they are set on an ancestor (set them on :root to
6
- * theme every component at once). Rules live in the `gbs` layer; declare
7
- * where it sits in your global CSS, e.g. `@layer reset, gbs, app,
8
- * utilities;`, and anything in a later layer overrides them.
9
- */
10
-
11
- @layer gbs {
12
- .al-root {
13
- --al-fg: var(--gbs-fg, var(--dg-fg, light-dark(#18181b, #f4f4f5)));
14
- --al-muted: var(--gbs-muted, var(--dg-muted, light-dark(#71717a, #a1a1aa)));
15
- --al-border: var(--gbs-border, var(--dg-border, light-dark(#e4e4e7, #27272a)));
16
- --al-bg: var(--gbs-bg, var(--dg-bg, light-dark(#ffffff, #0b0b0e)));
17
- --al-hover: var(--gbs-hover, var(--dg-hover, light-dark(#f4f4f5, #1f1f23)));
18
- --al-focus: var(--gbs-focus, var(--dg-focus, light-dark(#2563eb, #60a5fa)));
19
- --al-info: var(--gbs-info, var(--gbs-accent, var(--dg-accent, light-dark(#2563eb, #60a5fa))));
20
- --al-success: var(--gbs-success, light-dark(#15803d, #4ade80));
21
- --al-warning: var(--gbs-warning, light-dark(#b45309, #fbbf24));
22
- --al-danger: var(--gbs-danger, var(--dg-danger, light-dark(#dc2626, #f87171)));
23
- --al-radius: var(--gbs-radius, var(--dg-radius, 8px));
24
- --al-font-size: var(--gbs-font-size, var(--dg-font-size, 13px));
25
- --al-accent: var(--al-info);
26
- --al-px: 14px;
27
- --al-py: 12px;
28
-
29
- color-scheme: inherit;
30
- position: relative;
31
- display: flex;
32
- align-items: flex-start;
33
- gap: 10px;
34
- min-width: 0;
35
- padding: var(--al-py) var(--al-px);
36
- /* The bar carries the variant at a glance; the tint alone is too faint to
37
- read as a signal, and colour is never the only one — there is a glyph. */
38
- border: 1px solid var(--al-border);
39
- border-inline-start: 3px solid var(--al-accent);
40
- border-radius: var(--al-radius);
41
- background: color-mix(in oklab, var(--al-accent) 7%, var(--al-bg));
42
- font-size: var(--al-font-size);
43
- line-height: 1.5;
44
- color: var(--al-fg);
45
- text-wrap: pretty;
46
- }
47
-
48
- :where(.dark, [data-theme="dark"]) .al-root {
49
- color-scheme: dark;
50
- }
51
- :where(.light, [data-theme="light"]) .al-root {
52
- color-scheme: light;
53
- }
54
-
55
- :where(.al-root) *,
56
- :where(.al-root) *::before,
57
- :where(.al-root) *::after {
58
- box-sizing: border-box;
59
- }
60
-
61
- .al-root[data-variant="success"] {
62
- --al-accent: var(--al-success);
63
- }
64
- .al-root[data-variant="warning"] {
65
- --al-accent: var(--al-warning);
66
- }
67
- .al-root[data-variant="danger"] {
68
- --al-accent: var(--al-danger);
69
- }
70
- .al-root[data-variant="neutral"] {
71
- --al-accent: var(--al-muted);
72
- }
73
-
74
- .al-root[data-size="sm"] {
75
- --al-px: 10px;
76
- --al-py: 8px;
77
- --al-font-size: 12px;
78
- gap: 8px;
79
- }
80
-
81
- .al-icon {
82
- display: inline-flex;
83
- flex: none;
84
- /* Optically centred on the first line of text rather than its box. */
85
- margin-top: 1px;
86
- color: var(--al-accent);
87
- }
88
- .al-icon > svg {
89
- width: 16px;
90
- height: 16px;
91
- }
92
- .al-root[data-size="sm"] .al-icon > svg {
93
- width: 14px;
94
- height: 14px;
95
- }
96
-
97
- .al-content {
98
- display: flex;
99
- flex: 1 1 auto;
100
- flex-direction: column;
101
- gap: 2px;
102
- min-width: 0;
103
- }
104
- .al-title {
105
- margin: 0;
106
- font-weight: 600;
107
- }
108
- .al-description {
109
- margin: 0;
110
- /* Not muted: this is the message, not a hint about one. */
111
- color: inherit;
112
- }
113
- .al-description a {
114
- color: var(--al-accent);
115
- text-underline-offset: 2px;
116
- }
117
- .al-actions {
118
- display: flex;
119
- flex-wrap: wrap;
120
- align-items: center;
121
- gap: 8px;
122
- margin-top: 8px;
123
- }
124
-
125
- .al-dismiss {
126
- display: inline-flex;
127
- flex: none;
128
- align-items: center;
129
- justify-content: center;
130
- width: 22px;
131
- height: 22px;
132
- margin: -2px -4px 0 0;
133
- padding: 0;
134
- border: 0;
135
- border-radius: 4px;
136
- background: none;
137
- color: var(--al-muted);
138
- cursor: pointer;
139
- }
140
- .al-dismiss:hover {
141
- background: var(--al-hover);
142
- color: var(--al-fg);
143
- }
144
- .al-dismiss:focus-visible {
145
- outline: 2px solid var(--al-focus);
146
- outline-offset: 1px;
147
- }
148
-
149
- @media (forced-colors: active) {
150
- .al-root {
151
- border: 1px solid CanvasText;
152
- border-inline-start-width: 3px;
153
- }
154
- }
155
- }
1
+ /*
2
+ * Alert styles.
3
+ *
4
+ * A banner that sits in the page, tinted by variant. Tokens read the shared
5
+ * --gbs-* variables when they are set on an ancestor (set them on :root to
6
+ * theme every component at once). Rules are unlayered: they beat a framework
7
+ * reset on specificity, and lose to anything you pass through `className`.
8
+ * With Tailwind v4, import this file after the framework and inside its
9
+ * components layer - see the README.
10
+ */
11
+
12
+ .al-root {
13
+ --al-fg: var(--gbs-fg, var(--dg-fg, light-dark(#18181b, #f4f4f5)));
14
+ --al-muted: var(--gbs-muted, var(--dg-muted, light-dark(#71717a, #a1a1aa)));
15
+ --al-border: var(--gbs-border, var(--dg-border, light-dark(#e4e4e7, #27272a)));
16
+ --al-bg: var(--gbs-bg, var(--dg-bg, light-dark(#ffffff, #0b0b0e)));
17
+ --al-hover: var(--gbs-hover, var(--dg-hover, light-dark(#f4f4f5, #1f1f23)));
18
+ --al-focus: var(--gbs-focus, var(--dg-focus, light-dark(#2563eb, #60a5fa)));
19
+ --al-info: var(--gbs-info, var(--gbs-accent, var(--dg-accent, light-dark(#2563eb, #60a5fa))));
20
+ --al-success: var(--gbs-success, light-dark(#15803d, #4ade80));
21
+ --al-warning: var(--gbs-warning, light-dark(#b45309, #fbbf24));
22
+ --al-danger: var(--gbs-danger, var(--dg-danger, light-dark(#dc2626, #f87171)));
23
+ --al-radius: var(--gbs-radius, var(--dg-radius, 8px));
24
+ --al-font-size: var(--gbs-font-size, var(--dg-font-size, 13px));
25
+ --al-accent: var(--al-info);
26
+ --al-px: 14px;
27
+ --al-py: 12px;
28
+
29
+ color-scheme: inherit;
30
+ position: relative;
31
+ display: flex;
32
+ align-items: flex-start;
33
+ gap: 10px;
34
+ min-width: 0;
35
+ padding: var(--al-py) var(--al-px);
36
+ /* The bar carries the variant at a glance; the tint alone is too faint to
37
+ read as a signal, and colour is never the only one — there is a glyph. */
38
+ border: 1px solid var(--al-border);
39
+ border-inline-start: 3px solid var(--al-accent);
40
+ border-radius: var(--al-radius);
41
+ background: color-mix(in oklab, var(--al-accent) 7%, var(--al-bg));
42
+ font-size: var(--al-font-size);
43
+ line-height: 1.5;
44
+ color: var(--al-fg);
45
+ text-wrap: pretty;
46
+ }
47
+
48
+ :where(.dark, [data-theme="dark"]) .al-root {
49
+ color-scheme: dark;
50
+ }
51
+ :where(.light, [data-theme="light"]) .al-root {
52
+ color-scheme: light;
53
+ }
54
+
55
+ :where(.al-root) *,
56
+ :where(.al-root) *::before,
57
+ :where(.al-root) *::after {
58
+ box-sizing: border-box;
59
+ }
60
+
61
+ .al-root[data-variant="success"] {
62
+ --al-accent: var(--al-success);
63
+ }
64
+ .al-root[data-variant="warning"] {
65
+ --al-accent: var(--al-warning);
66
+ }
67
+ .al-root[data-variant="danger"] {
68
+ --al-accent: var(--al-danger);
69
+ }
70
+ .al-root[data-variant="neutral"] {
71
+ --al-accent: var(--al-muted);
72
+ }
73
+
74
+ .al-root[data-size="sm"] {
75
+ --al-px: 10px;
76
+ --al-py: 8px;
77
+ --al-font-size: 12px;
78
+ gap: 8px;
79
+ }
80
+
81
+ .al-icon {
82
+ display: inline-flex;
83
+ flex: none;
84
+ /* Optically centred on the first line of text rather than its box. */
85
+ margin-top: 1px;
86
+ color: var(--al-accent);
87
+ }
88
+ .al-icon > svg {
89
+ width: 16px;
90
+ height: 16px;
91
+ }
92
+ .al-root[data-size="sm"] .al-icon > svg {
93
+ width: 14px;
94
+ height: 14px;
95
+ }
96
+
97
+ .al-content {
98
+ display: flex;
99
+ flex: 1 1 auto;
100
+ flex-direction: column;
101
+ gap: 2px;
102
+ min-width: 0;
103
+ }
104
+ .al-title {
105
+ margin: 0;
106
+ font-weight: 600;
107
+ }
108
+ .al-description {
109
+ margin: 0;
110
+ /* Not muted: this is the message, not a hint about one. */
111
+ color: inherit;
112
+ }
113
+ .al-description a {
114
+ color: var(--al-accent);
115
+ text-underline-offset: 2px;
116
+ }
117
+ .al-actions {
118
+ display: flex;
119
+ flex-wrap: wrap;
120
+ align-items: center;
121
+ gap: 8px;
122
+ margin-top: 8px;
123
+ }
124
+
125
+ .al-dismiss {
126
+ display: inline-flex;
127
+ flex: none;
128
+ align-items: center;
129
+ justify-content: center;
130
+ width: 22px;
131
+ height: 22px;
132
+ margin: -2px -4px 0 0;
133
+ padding: 0;
134
+ border: 0;
135
+ border-radius: 4px;
136
+ background: none;
137
+ color: var(--al-muted);
138
+ cursor: pointer;
139
+ }
140
+ .al-dismiss:hover {
141
+ background: var(--al-hover);
142
+ color: var(--al-fg);
143
+ }
144
+ .al-dismiss:focus-visible {
145
+ outline: 2px solid var(--al-focus);
146
+ outline-offset: 1px;
147
+ }
148
+
149
+ @media (forced-colors: active) {
150
+ .al-root {
151
+ border: 1px solid CanvasText;
152
+ border-inline-start-width: 3px;
153
+ }
154
+ }
@@ -0,0 +1,294 @@
1
+ {
2
+ "passportVersion": "1.0.0",
3
+ "identity": {
4
+ "component": "Avatar",
5
+ "folder": "avatar",
6
+ "exports": [
7
+ "Avatar",
8
+ "AvatarGroup"
9
+ ]
10
+ },
11
+ "source": {
12
+ "libraryVersion": "2.3.0",
13
+ "files": [
14
+ "core/identity.ts",
15
+ "core/index.ts",
16
+ "core/types.ts",
17
+ "index.ts",
18
+ "react/Avatar.tsx",
19
+ "react/AvatarGroup.tsx",
20
+ "react/locale.ts",
21
+ "react/props.ts"
22
+ ],
23
+ "sourceHash": "sha256:e834c2c121fe5e1388fec8830c46ed570d17a3effae310c535becdfc687865d9"
24
+ },
25
+ "props": [
26
+ {
27
+ "name": "aria-describedby",
28
+ "type": "string",
29
+ "typeText": "string | undefined",
30
+ "required": false,
31
+ "origin": "inherited"
32
+ },
33
+ {
34
+ "name": "aria-label",
35
+ "type": "string",
36
+ "typeText": "string | undefined",
37
+ "required": false,
38
+ "origin": "inherited"
39
+ },
40
+ {
41
+ "name": "aria-labelledby",
42
+ "type": "string",
43
+ "typeText": "string | undefined",
44
+ "required": false,
45
+ "origin": "inherited"
46
+ },
47
+ {
48
+ "name": "children",
49
+ "type": "other",
50
+ "typeText": "ReactNode",
51
+ "required": false,
52
+ "origin": "derived",
53
+ "description": "An icon or anything else to show instead of initials.",
54
+ "descriptionOrigin": "jsdoc"
55
+ },
56
+ {
57
+ "name": "className",
58
+ "type": "string",
59
+ "typeText": "string | undefined",
60
+ "required": false,
61
+ "origin": "derived"
62
+ },
63
+ {
64
+ "name": "classNames",
65
+ "type": "other",
66
+ "typeText": "Partial<Record<AvatarSlot, string>> | undefined",
67
+ "required": false,
68
+ "origin": "derived"
69
+ },
70
+ {
71
+ "name": "decorative",
72
+ "type": "boolean",
73
+ "typeText": "boolean | undefined",
74
+ "required": false,
75
+ "default": false,
76
+ "origin": "derived",
77
+ "description": "Marks the avatar as decoration, for a name printed next to it.",
78
+ "descriptionOrigin": "jsdoc"
79
+ },
80
+ {
81
+ "name": "hidden",
82
+ "type": "boolean",
83
+ "typeText": "boolean | undefined",
84
+ "required": false,
85
+ "origin": "inherited"
86
+ },
87
+ {
88
+ "name": "id",
89
+ "type": "string",
90
+ "typeText": "string | undefined",
91
+ "required": false,
92
+ "origin": "inherited"
93
+ },
94
+ {
95
+ "name": "initials",
96
+ "type": "string",
97
+ "typeText": "string | undefined",
98
+ "required": false,
99
+ "origin": "derived",
100
+ "description": "Overrides the text derived from `name`.",
101
+ "descriptionOrigin": "jsdoc"
102
+ },
103
+ {
104
+ "name": "label",
105
+ "type": "string",
106
+ "typeText": "string | undefined",
107
+ "required": false,
108
+ "origin": "derived",
109
+ "description": "Names the set, e.g. \"Assigned to\". A list of faces with no name says nothing.",
110
+ "descriptionOrigin": "jsdoc"
111
+ },
112
+ {
113
+ "name": "localeText",
114
+ "type": "other",
115
+ "typeText": "Partial<AvatarLocaleText> | undefined",
116
+ "required": false,
117
+ "origin": "derived"
118
+ },
119
+ {
120
+ "name": "max",
121
+ "type": "number",
122
+ "typeText": "number | undefined",
123
+ "required": false,
124
+ "default": 4,
125
+ "origin": "derived",
126
+ "description": "How many slots there are, the overflow bubble included. Default 4.",
127
+ "descriptionOrigin": "jsdoc"
128
+ },
129
+ {
130
+ "name": "name",
131
+ "type": "string",
132
+ "typeText": "string | undefined",
133
+ "required": false,
134
+ "default": "",
135
+ "origin": "derived",
136
+ "description": "The person or thing. Used for the alternative text, for the initials and\nfor the colour, so the same person is always the same colour.",
137
+ "descriptionOrigin": "jsdoc"
138
+ },
139
+ {
140
+ "name": "ref",
141
+ "type": "other",
142
+ "typeText": "Ref<HTMLSpanElement> | undefined",
143
+ "required": false,
144
+ "origin": "derived"
145
+ },
146
+ {
147
+ "name": "role",
148
+ "type": "other",
149
+ "typeText": "AriaRole | undefined",
150
+ "required": false,
151
+ "origin": "inherited"
152
+ },
153
+ {
154
+ "name": "shape",
155
+ "type": "enum",
156
+ "values": [
157
+ "circle",
158
+ "square"
159
+ ],
160
+ "typeText": "AvatarShape | undefined",
161
+ "required": false,
162
+ "default": "circle",
163
+ "origin": "derived",
164
+ "description": "Default `circle`.",
165
+ "descriptionOrigin": "jsdoc"
166
+ },
167
+ {
168
+ "name": "size",
169
+ "type": "enum",
170
+ "values": [
171
+ "lg",
172
+ "md",
173
+ "sm",
174
+ "xl",
175
+ "xs"
176
+ ],
177
+ "typeText": "AvatarSize | undefined",
178
+ "required": false,
179
+ "default": "md",
180
+ "origin": "derived",
181
+ "description": "Default `md` (32px).",
182
+ "descriptionOrigin": "jsdoc"
183
+ },
184
+ {
185
+ "name": "src",
186
+ "type": "string",
187
+ "typeText": "string | undefined",
188
+ "required": false,
189
+ "origin": "derived"
190
+ },
191
+ {
192
+ "name": "status",
193
+ "type": "enum",
194
+ "values": [
195
+ "away",
196
+ "busy",
197
+ "offline",
198
+ "online"
199
+ ],
200
+ "typeText": "AvatarStatus | undefined",
201
+ "required": false,
202
+ "origin": "derived",
203
+ "description": "A presence dot in the corner.",
204
+ "descriptionOrigin": "jsdoc"
205
+ },
206
+ {
207
+ "name": "style",
208
+ "type": "other",
209
+ "typeText": "CSSProperties | undefined",
210
+ "required": false,
211
+ "origin": "derived"
212
+ },
213
+ {
214
+ "name": "tabIndex",
215
+ "type": "number",
216
+ "typeText": "number | undefined",
217
+ "required": false,
218
+ "origin": "inherited"
219
+ },
220
+ {
221
+ "name": "title",
222
+ "type": "string",
223
+ "typeText": "string | undefined",
224
+ "required": false,
225
+ "origin": "inherited"
226
+ }
227
+ ],
228
+ "inherits": [
229
+ {
230
+ "from": "HTMLAttributes<HTMLSpanElement>",
231
+ "omitted": [
232
+ "children"
233
+ ],
234
+ "passthrough": true
235
+ }
236
+ ],
237
+ "events": [],
238
+ "slots": [
239
+ "root",
240
+ "image",
241
+ "fallback",
242
+ "status",
243
+ "overflow"
244
+ ],
245
+ "states": [
246
+ {
247
+ "attr": "data-shape",
248
+ "values": [
249
+ "square"
250
+ ]
251
+ },
252
+ {
253
+ "attr": "data-size",
254
+ "values": [
255
+ "lg",
256
+ "sm",
257
+ "xl",
258
+ "xs"
259
+ ]
260
+ },
261
+ {
262
+ "attr": "data-status",
263
+ "values": [
264
+ "away",
265
+ "busy",
266
+ "online"
267
+ ]
268
+ },
269
+ {
270
+ "attr": "data-theme",
271
+ "values": [
272
+ "dark",
273
+ "light"
274
+ ]
275
+ }
276
+ ],
277
+ "accessibility": {
278
+ "supplied": [],
279
+ "required": []
280
+ },
281
+ "composition": {},
282
+ "operations": {},
283
+ "intentDomains": [],
284
+ "safeMutations": {},
285
+ "examples": [],
286
+ "coverage": {
287
+ "propsTotal": 23,
288
+ "propsDescribed": 9,
289
+ "describedPct": 39,
290
+ "authoredSections": [
291
+ "accessibility"
292
+ ]
293
+ }
294
+ }