@spfx-fast/sharepoint-ui 0.4.3 → 0.5.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 (282) hide show
  1. package/QUICKSTART.md +13 -128
  2. package/README.md +19 -26
  3. package/components.json +240 -5834
  4. package/dist/accordion.d.ts +11 -0
  5. package/dist/accordion.js +4 -0
  6. package/dist/alert.d.ts +3 -0
  7. package/dist/alert.js +4 -0
  8. package/dist/attachment-list.d.ts +15 -0
  9. package/dist/attachment-list.js +14 -0
  10. package/dist/avatar-group.d.ts +12 -0
  11. package/dist/avatar-group.js +7 -0
  12. package/dist/avatar.d.ts +6 -0
  13. package/dist/avatar.js +5 -0
  14. package/dist/badge.d.ts +3 -0
  15. package/dist/badge.js +4 -0
  16. package/dist/breadcrumb.d.ts +10 -0
  17. package/dist/breadcrumb.js +9 -0
  18. package/dist/button-group.d.ts +6 -0
  19. package/dist/button-group.js +4 -0
  20. package/dist/button.d.ts +3 -0
  21. package/dist/button.js +4 -0
  22. package/dist/card.d.ts +3 -0
  23. package/dist/card.js +4 -0
  24. package/dist/carousel.d.ts +11 -0
  25. package/dist/carousel.js +6 -0
  26. package/dist/checkbox.d.ts +3 -0
  27. package/dist/checkbox.js +4 -0
  28. package/dist/combobox.d.ts +9 -0
  29. package/dist/combobox.js +6 -0
  30. package/dist/command-bar.d.ts +6 -0
  31. package/dist/command-bar.js +4 -0
  32. package/dist/copy-button.d.ts +7 -0
  33. package/dist/copy-button.js +19 -0
  34. package/dist/data-grid.d.ts +25 -0
  35. package/dist/data-grid.js +39 -0
  36. package/dist/date-range-picker.d.ts +12 -0
  37. package/dist/date-range-picker.js +4 -0
  38. package/dist/dialog.d.ts +9 -0
  39. package/dist/dialog.js +21 -0
  40. package/dist/divider.d.ts +3 -0
  41. package/dist/divider.js +4 -0
  42. package/dist/drawer.d.ts +6 -0
  43. package/dist/drawer.js +5 -0
  44. package/dist/empty-state.d.ts +7 -0
  45. package/dist/empty-state.js +5 -0
  46. package/dist/field.d.ts +15 -0
  47. package/dist/field.js +11 -0
  48. package/dist/file-dropzone.d.ts +15 -0
  49. package/dist/file-dropzone.js +21 -0
  50. package/dist/filter-bar.d.ts +9 -0
  51. package/dist/filter-bar.js +9 -0
  52. package/dist/image.d.ts +5 -0
  53. package/dist/image.js +4 -0
  54. package/dist/index.d.ts +68 -78
  55. package/dist/index.js +60 -68
  56. package/dist/input.d.ts +3 -0
  57. package/dist/input.js +4 -0
  58. package/dist/label.d.ts +3 -0
  59. package/dist/label.js +4 -0
  60. package/dist/link.d.ts +3 -0
  61. package/dist/link.js +9 -0
  62. package/dist/list-view.d.ts +29 -0
  63. package/dist/list-view.js +14 -0
  64. package/dist/list.d.ts +6 -0
  65. package/dist/list.js +5 -0
  66. package/dist/lookup-picker.d.ts +12 -0
  67. package/dist/lookup-picker.js +4 -0
  68. package/dist/menu.d.ts +6 -0
  69. package/dist/menu.js +4 -0
  70. package/dist/nav.d.ts +12 -0
  71. package/dist/nav.js +4 -0
  72. package/dist/pagination.d.ts +11 -0
  73. package/dist/pagination.js +5 -0
  74. package/dist/person-picker.d.ts +13 -0
  75. package/dist/person-picker.js +4 -0
  76. package/dist/persona.d.ts +7 -0
  77. package/dist/persona.js +5 -0
  78. package/dist/popover.d.ts +6 -0
  79. package/dist/popover.js +4 -0
  80. package/dist/progress-bar.d.ts +5 -0
  81. package/dist/progress-bar.js +5 -0
  82. package/dist/radio-group.d.ts +6 -0
  83. package/dist/radio-group.js +4 -0
  84. package/dist/radio.d.ts +3 -0
  85. package/dist/radio.js +4 -0
  86. package/dist/rating.d.ts +8 -0
  87. package/dist/rating.js +5 -0
  88. package/dist/react.d.ts +1 -4715
  89. package/dist/react.js +1 -7097
  90. package/dist/select.d.ts +3 -0
  91. package/dist/select.js +4 -0
  92. package/dist/sharepoint-field.d.ts +18 -0
  93. package/dist/sharepoint-field.js +54 -0
  94. package/dist/skeleton.d.ts +6 -0
  95. package/dist/skeleton.js +9 -0
  96. package/dist/spinner.d.ts +5 -0
  97. package/dist/spinner.js +4 -0
  98. package/dist/swatch-picker.d.ts +17 -0
  99. package/dist/swatch-picker.js +11 -0
  100. package/dist/switch.d.ts +3 -0
  101. package/dist/switch.js +4 -0
  102. package/dist/table.d.ts +6 -0
  103. package/dist/table.js +4 -0
  104. package/dist/tabs.d.ts +14 -0
  105. package/dist/tabs.js +30 -0
  106. package/dist/tag-group.d.ts +6 -0
  107. package/dist/tag-group.js +4 -0
  108. package/dist/tag-picker.d.ts +12 -0
  109. package/dist/tag-picker.js +4 -0
  110. package/dist/tag.d.ts +7 -0
  111. package/dist/tag.js +5 -0
  112. package/dist/text.d.ts +5 -0
  113. package/dist/text.js +4 -0
  114. package/dist/textarea.d.ts +3 -0
  115. package/dist/textarea.js +4 -0
  116. package/dist/theme.d.ts +15 -175
  117. package/dist/theme.js +36 -239
  118. package/dist/toast.d.ts +9 -0
  119. package/dist/toast.js +12 -0
  120. package/dist/tree.d.ts +13 -0
  121. package/dist/tree.js +9 -0
  122. package/dist/view-card.d.ts +8 -0
  123. package/dist/view-card.js +4 -0
  124. package/dist/view-switcher.d.ts +13 -0
  125. package/dist/view-switcher.js +7 -0
  126. package/dist/virtual-list.d.ts +11 -0
  127. package/dist/virtual-list.js +25 -0
  128. package/measurements.json +365 -0
  129. package/package.json +14 -46
  130. package/src/theme.css +125 -0
  131. package/AGENTS.md +0 -231
  132. package/dist/appearance.d.ts +0 -6
  133. package/dist/appearance.js +0 -217
  134. package/dist/elements/accordion.d.ts +0 -9
  135. package/dist/elements/accordion.js +0 -338
  136. package/dist/elements/alert.d.ts +0 -2
  137. package/dist/elements/alert.js +0 -86
  138. package/dist/elements/avatar-group-primitives.d.ts +0 -3
  139. package/dist/elements/avatar-group-primitives.js +0 -189
  140. package/dist/elements/avatar-group.d.ts +0 -2
  141. package/dist/elements/avatar-group.js +0 -110
  142. package/dist/elements/avatar.d.ts +0 -4
  143. package/dist/elements/avatar.js +0 -251
  144. package/dist/elements/badge.d.ts +0 -8
  145. package/dist/elements/badge.js +0 -182
  146. package/dist/elements/breadcrumb.d.ts +0 -4
  147. package/dist/elements/breadcrumb.js +0 -233
  148. package/dist/elements/button-group.d.ts +0 -1
  149. package/dist/elements/button-group.js +0 -20
  150. package/dist/elements/button-variants.d.ts +0 -6
  151. package/dist/elements/button-variants.js +0 -339
  152. package/dist/elements/button.d.ts +0 -5
  153. package/dist/elements/button.js +0 -233
  154. package/dist/elements/card-primitives.d.ts +0 -3
  155. package/dist/elements/card-primitives.js +0 -83
  156. package/dist/elements/card.d.ts +0 -5
  157. package/dist/elements/card.js +0 -213
  158. package/dist/elements/carousel.d.ts +0 -92
  159. package/dist/elements/carousel.js +0 -1115
  160. package/dist/elements/color-picker.d.ts +0 -24
  161. package/dist/elements/color-picker.js +0 -1004
  162. package/dist/elements/combobox.d.ts +0 -1
  163. package/dist/elements/combobox.js +0 -1012
  164. package/dist/elements/data-grid-model.d.ts +0 -120
  165. package/dist/elements/data-grid-model.js +0 -294
  166. package/dist/elements/data-grid.d.ts +0 -30
  167. package/dist/elements/data-grid.js +0 -1576
  168. package/dist/elements/date-picker.d.ts +0 -1
  169. package/dist/elements/date-picker.js +0 -486
  170. package/dist/elements/dialog.d.ts +0 -23
  171. package/dist/elements/dialog.js +0 -409
  172. package/dist/elements/divider.d.ts +0 -2
  173. package/dist/elements/divider.js +0 -66
  174. package/dist/elements/drawer.d.ts +0 -3
  175. package/dist/elements/drawer.js +0 -308
  176. package/dist/elements/field-composition.d.ts +0 -26
  177. package/dist/elements/field-composition.js +0 -133
  178. package/dist/elements/field.d.ts +0 -1
  179. package/dist/elements/field.js +0 -67
  180. package/dist/elements/file-upload.d.ts +0 -6
  181. package/dist/elements/file-upload.js +0 -211
  182. package/dist/elements/floating-position.d.ts +0 -36
  183. package/dist/elements/floating-position.js +0 -92
  184. package/dist/elements/image.d.ts +0 -28
  185. package/dist/elements/image.js +0 -38
  186. package/dist/elements/info.d.ts +0 -9
  187. package/dist/elements/info.js +0 -102
  188. package/dist/elements/input.d.ts +0 -5
  189. package/dist/elements/input.js +0 -255
  190. package/dist/elements/label.d.ts +0 -15
  191. package/dist/elements/label.js +0 -56
  192. package/dist/elements/link.d.ts +0 -1
  193. package/dist/elements/link.js +0 -92
  194. package/dist/elements/list.d.ts +0 -19
  195. package/dist/elements/list.js +0 -297
  196. package/dist/elements/menu.d.ts +0 -33
  197. package/dist/elements/menu.js +0 -1103
  198. package/dist/elements/message-bar.d.ts +0 -10
  199. package/dist/elements/message-bar.js +0 -327
  200. package/dist/elements/nav.d.ts +0 -32
  201. package/dist/elements/nav.js +0 -794
  202. package/dist/elements/overflow.d.ts +0 -10
  203. package/dist/elements/overflow.js +0 -218
  204. package/dist/elements/persona.d.ts +0 -3
  205. package/dist/elements/persona.js +0 -125
  206. package/dist/elements/popover.d.ts +0 -77
  207. package/dist/elements/popover.js +0 -840
  208. package/dist/elements/progress-bar.d.ts +0 -4
  209. package/dist/elements/progress-bar.js +0 -82
  210. package/dist/elements/radio-group.d.ts +0 -1
  211. package/dist/elements/radio-group.js +0 -303
  212. package/dist/elements/rating-display.d.ts +0 -2
  213. package/dist/elements/rating-display.js +0 -125
  214. package/dist/elements/rating.d.ts +0 -2
  215. package/dist/elements/rating.js +0 -206
  216. package/dist/elements/rich-text-editor.d.ts +0 -32
  217. package/dist/elements/rich-text-editor.js +0 -1367
  218. package/dist/elements/search.d.ts +0 -3
  219. package/dist/elements/search.js +0 -200
  220. package/dist/elements/select.d.ts +0 -6
  221. package/dist/elements/select.js +0 -291
  222. package/dist/elements/shared.d.ts +0 -22
  223. package/dist/elements/shared.js +0 -409
  224. package/dist/elements/sharepoint-field-basic-controls.d.ts +0 -1
  225. package/dist/elements/sharepoint-field-basic-controls.js +0 -14
  226. package/dist/elements/sharepoint-fields.d.ts +0 -29
  227. package/dist/elements/sharepoint-fields.js +0 -460
  228. package/dist/elements/skeleton.d.ts +0 -6
  229. package/dist/elements/skeleton.js +0 -91
  230. package/dist/elements/slider.d.ts +0 -1
  231. package/dist/elements/slider.js +0 -248
  232. package/dist/elements/spin-button.d.ts +0 -7
  233. package/dist/elements/spin-button.js +0 -499
  234. package/dist/elements/spinner.d.ts +0 -4
  235. package/dist/elements/spinner.js +0 -124
  236. package/dist/elements/swatch-picker.d.ts +0 -5
  237. package/dist/elements/swatch-picker.js +0 -363
  238. package/dist/elements/table.d.ts +0 -21
  239. package/dist/elements/table.js +0 -261
  240. package/dist/elements/tabs.d.ts +0 -1
  241. package/dist/elements/tabs.js +0 -276
  242. package/dist/elements/tag-picker.d.ts +0 -29
  243. package/dist/elements/tag-picker.js +0 -715
  244. package/dist/elements/tags.d.ts +0 -21
  245. package/dist/elements/tags.js +0 -421
  246. package/dist/elements/teaching-popover.d.ts +0 -32
  247. package/dist/elements/teaching-popover.js +0 -412
  248. package/dist/elements/text.d.ts +0 -9
  249. package/dist/elements/text.js +0 -75
  250. package/dist/elements/textarea.d.ts +0 -1
  251. package/dist/elements/textarea.js +0 -182
  252. package/dist/elements/toast.d.ts +0 -25
  253. package/dist/elements/toast.js +0 -337
  254. package/dist/elements/toaster.d.ts +0 -6
  255. package/dist/elements/toaster.js +0 -357
  256. package/dist/elements/toggle.d.ts +0 -2
  257. package/dist/elements/toggle.js +0 -246
  258. package/dist/elements/toolbar.d.ts +0 -12
  259. package/dist/elements/toolbar.js +0 -381
  260. package/dist/elements/tooltip.d.ts +0 -76
  261. package/dist/elements/tooltip.js +0 -527
  262. package/dist/elements/tree-model.d.ts +0 -19
  263. package/dist/elements/tree-model.js +0 -34
  264. package/dist/elements/tree.d.ts +0 -5
  265. package/dist/elements/tree.js +0 -273
  266. package/dist/elements/view-card.d.ts +0 -2
  267. package/dist/elements/view-card.js +0 -78
  268. package/dist/elements/virtual-list.d.ts +0 -41
  269. package/dist/elements/virtual-list.js +0 -369
  270. package/dist/elements.d.ts +0 -73
  271. package/dist/elements.js +0 -210
  272. package/dist/sharepoint-fields.d.ts +0 -135
  273. package/dist/sharepoint-fields.js +0 -402
  274. package/dist/virtualizer-hooks.d.ts +0 -80
  275. package/dist/virtualizer-hooks.js +0 -253
  276. package/scripts/generate-token-index.mjs +0 -43
  277. package/scripts/sync-component-catalog-signatures.mjs +0 -55
  278. package/scripts/validate-component-catalog.mjs +0 -44
  279. package/skills/sharepoint-ui/SKILL.md +0 -12
  280. package/skills/sharepoint-ui/references/choosing-components.md +0 -20
  281. package/skills/sharepoint-ui/references/sharepoint-patterns.md +0 -17
  282. package/tokens.json +0 -3777
@@ -0,0 +1,365 @@
1
+ {
2
+ "measuredWith": {
3
+ "node": "v22.22.1",
4
+ "react": "18.3.1",
5
+ "method": "isolated Node ESM import of each emitted component module, including React peer startup"
6
+ },
7
+ "componentCount": 59,
8
+ "componentJsBytes": 35696,
9
+ "components": [
10
+ {
11
+ "name": "Button",
12
+ "moduleBytes": 215,
13
+ "declarationBytes": 227,
14
+ "coldImportMs": 5.132
15
+ },
16
+ {
17
+ "name": "ButtonGroup",
18
+ "moduleBytes": 263,
19
+ "declarationBytes": 338,
20
+ "coldImportMs": 4.936
21
+ },
22
+ {
23
+ "name": "CommandBar",
24
+ "moduleBytes": 246,
25
+ "declarationBytes": 332,
26
+ "coldImportMs": 5.165
27
+ },
28
+ {
29
+ "name": "CopyButton",
30
+ "moduleBytes": 977,
31
+ "declarationBytes": 383,
32
+ "coldImportMs": 5.143
33
+ },
34
+ {
35
+ "name": "Link",
36
+ "moduleBytes": 333,
37
+ "declarationBytes": 228,
38
+ "coldImportMs": 5.007
39
+ },
40
+ {
41
+ "name": "Menu",
42
+ "moduleBytes": 360,
43
+ "declarationBytes": 320,
44
+ "coldImportMs": 5.091
45
+ },
46
+ {
47
+ "name": "Accordion",
48
+ "moduleBytes": 403,
49
+ "declarationBytes": 414,
50
+ "coldImportMs": 5.037
51
+ },
52
+ {
53
+ "name": "Badge",
54
+ "moduleBytes": 188,
55
+ "declarationBytes": 204,
56
+ "coldImportMs": 5.018
57
+ },
58
+ {
59
+ "name": "Card",
60
+ "moduleBytes": 189,
61
+ "declarationBytes": 197,
62
+ "coldImportMs": 5.063
63
+ },
64
+ {
65
+ "name": "Carousel",
66
+ "moduleBytes": 515,
67
+ "declarationBytes": 424,
68
+ "coldImportMs": 4.958
69
+ },
70
+ {
71
+ "name": "Divider",
72
+ "moduleBytes": 190,
73
+ "declarationBytes": 208,
74
+ "coldImportMs": 4.923
75
+ },
76
+ {
77
+ "name": "EmptyState",
78
+ "moduleBytes": 411,
79
+ "declarationBytes": 372,
80
+ "coldImportMs": 5.02
81
+ },
82
+ {
83
+ "name": "Image",
84
+ "moduleBytes": 187,
85
+ "declarationBytes": 247,
86
+ "coldImportMs": 5.02
87
+ },
88
+ {
89
+ "name": "List",
90
+ "moduleBytes": 251,
91
+ "declarationBytes": 309,
92
+ "coldImportMs": 5.049
93
+ },
94
+ {
95
+ "name": "Rating",
96
+ "moduleBytes": 391,
97
+ "declarationBytes": 360,
98
+ "coldImportMs": 5.043
99
+ },
100
+ {
101
+ "name": "Tag",
102
+ "moduleBytes": 467,
103
+ "declarationBytes": 350,
104
+ "coldImportMs": 5.024
105
+ },
106
+ {
107
+ "name": "TagGroup",
108
+ "moduleBytes": 257,
109
+ "declarationBytes": 329,
110
+ "coldImportMs": 5.006
111
+ },
112
+ {
113
+ "name": "Text",
114
+ "moduleBytes": 192,
115
+ "declarationBytes": 259,
116
+ "coldImportMs": 5.001
117
+ },
118
+ {
119
+ "name": "DataGrid",
120
+ "moduleBytes": 2635,
121
+ "declarationBytes": 1114,
122
+ "coldImportMs": 4.985
123
+ },
124
+ {
125
+ "name": "ListView",
126
+ "moduleBytes": 1291,
127
+ "declarationBytes": 1358,
128
+ "coldImportMs": 6.253
129
+ },
130
+ {
131
+ "name": "Table",
132
+ "moduleBytes": 259,
133
+ "declarationBytes": 321,
134
+ "coldImportMs": 5.198
135
+ },
136
+ {
137
+ "name": "VirtualList",
138
+ "moduleBytes": 1516,
139
+ "declarationBytes": 596,
140
+ "coldImportMs": 5.079
141
+ },
142
+ {
143
+ "name": "Alert",
144
+ "moduleBytes": 210,
145
+ "declarationBytes": 209,
146
+ "coldImportMs": 5.152
147
+ },
148
+ {
149
+ "name": "Toast",
150
+ "moduleBytes": 707,
151
+ "declarationBytes": 424,
152
+ "coldImportMs": 5.055
153
+ },
154
+ {
155
+ "name": "Checkbox",
156
+ "moduleBytes": 213,
157
+ "declarationBytes": 238,
158
+ "coldImportMs": 5.004
159
+ },
160
+ {
161
+ "name": "ComboBox",
162
+ "moduleBytes": 539,
163
+ "declarationBytes": 379,
164
+ "coldImportMs": 5.044
165
+ },
166
+ {
167
+ "name": "DateRangePicker",
168
+ "moduleBytes": 794,
169
+ "declarationBytes": 685,
170
+ "coldImportMs": 5.041
171
+ },
172
+ {
173
+ "name": "Field",
174
+ "moduleBytes": 930,
175
+ "declarationBytes": 602,
176
+ "coldImportMs": 5.06
177
+ },
178
+ {
179
+ "name": "FileDropzone",
180
+ "moduleBytes": 1587,
181
+ "declarationBytes": 806,
182
+ "coldImportMs": 5.067
183
+ },
184
+ {
185
+ "name": "FilterBar",
186
+ "moduleBytes": 566,
187
+ "declarationBytes": 455,
188
+ "coldImportMs": 5.075
189
+ },
190
+ {
191
+ "name": "Input",
192
+ "moduleBytes": 189,
193
+ "declarationBytes": 215,
194
+ "coldImportMs": 5.088
195
+ },
196
+ {
197
+ "name": "Label",
198
+ "moduleBytes": 189,
199
+ "declarationBytes": 215,
200
+ "coldImportMs": 4.993
201
+ },
202
+ {
203
+ "name": "Radio",
204
+ "moduleBytes": 204,
205
+ "declarationBytes": 229,
206
+ "coldImportMs": 5.166
207
+ },
208
+ {
209
+ "name": "RadioGroup",
210
+ "moduleBytes": 268,
211
+ "declarationBytes": 344,
212
+ "coldImportMs": 4.981
213
+ },
214
+ {
215
+ "name": "Select",
216
+ "moduleBytes": 192,
217
+ "declarationBytes": 221,
218
+ "coldImportMs": 5.056
219
+ },
220
+ {
221
+ "name": "SwatchPicker",
222
+ "moduleBytes": 1089,
223
+ "declarationBytes": 663,
224
+ "coldImportMs": 4.986
225
+ },
226
+ {
227
+ "name": "Switch",
228
+ "moduleBytes": 232,
229
+ "declarationBytes": 238,
230
+ "coldImportMs": 5.073
231
+ },
232
+ {
233
+ "name": "TagPicker",
234
+ "moduleBytes": 499,
235
+ "declarationBytes": 473,
236
+ "coldImportMs": 5.121
237
+ },
238
+ {
239
+ "name": "TextArea",
240
+ "moduleBytes": 198,
241
+ "declarationBytes": 233,
242
+ "coldImportMs": 5.02
243
+ },
244
+ {
245
+ "name": "Breadcrumb",
246
+ "moduleBytes": 633,
247
+ "declarationBytes": 417,
248
+ "coldImportMs": 5.188
249
+ },
250
+ {
251
+ "name": "Nav",
252
+ "moduleBytes": 407,
253
+ "declarationBytes": 419,
254
+ "coldImportMs": 5.056
255
+ },
256
+ {
257
+ "name": "Pagination",
258
+ "moduleBytes": 821,
259
+ "declarationBytes": 557,
260
+ "coldImportMs": 4.998
261
+ },
262
+ {
263
+ "name": "Tabs",
264
+ "moduleBytes": 1950,
265
+ "declarationBytes": 521,
266
+ "coldImportMs": 5.118
267
+ },
268
+ {
269
+ "name": "Tree",
270
+ "moduleBytes": 678,
271
+ "declarationBytes": 470,
272
+ "coldImportMs": 5.056
273
+ },
274
+ {
275
+ "name": "ViewSwitcher",
276
+ "moduleBytes": 483,
277
+ "declarationBytes": 497,
278
+ "coldImportMs": 5.141
279
+ },
280
+ {
281
+ "name": "Dialog",
282
+ "moduleBytes": 901,
283
+ "declarationBytes": 467,
284
+ "coldImportMs": 5.065
285
+ },
286
+ {
287
+ "name": "Drawer",
288
+ "moduleBytes": 272,
289
+ "declarationBytes": 264,
290
+ "coldImportMs": 5.737
291
+ },
292
+ {
293
+ "name": "Popover",
294
+ "moduleBytes": 337,
295
+ "declarationBytes": 329,
296
+ "coldImportMs": 5.107
297
+ },
298
+ {
299
+ "name": "Avatar",
300
+ "moduleBytes": 401,
301
+ "declarationBytes": 293,
302
+ "coldImportMs": 5.255
303
+ },
304
+ {
305
+ "name": "AvatarGroup",
306
+ "moduleBytes": 661,
307
+ "declarationBytes": 462,
308
+ "coldImportMs": 5.749
309
+ },
310
+ {
311
+ "name": "Persona",
312
+ "moduleBytes": 444,
313
+ "declarationBytes": 338,
314
+ "coldImportMs": 5.658
315
+ },
316
+ {
317
+ "name": "AttachmentList",
318
+ "moduleBytes": 1205,
319
+ "declarationBytes": 618,
320
+ "coldImportMs": 5.091
321
+ },
322
+ {
323
+ "name": "LookupPicker",
324
+ "moduleBytes": 498,
325
+ "declarationBytes": 469,
326
+ "coldImportMs": 5.082
327
+ },
328
+ {
329
+ "name": "PersonPicker",
330
+ "moduleBytes": 568,
331
+ "declarationBytes": 492,
332
+ "coldImportMs": 5.184
333
+ },
334
+ {
335
+ "name": "SharePointField",
336
+ "moduleBytes": 3720,
337
+ "declarationBytes": 930,
338
+ "coldImportMs": 7.061
339
+ },
340
+ {
341
+ "name": "ViewCard",
342
+ "moduleBytes": 415,
343
+ "declarationBytes": 402,
344
+ "coldImportMs": 5.115
345
+ },
346
+ {
347
+ "name": "ProgressBar",
348
+ "moduleBytes": 349,
349
+ "declarationBytes": 307,
350
+ "coldImportMs": 5.111
351
+ },
352
+ {
353
+ "name": "Skeleton",
354
+ "moduleBytes": 327,
355
+ "declarationBytes": 353,
356
+ "coldImportMs": 5.112
357
+ },
358
+ {
359
+ "name": "Spinner",
360
+ "moduleBytes": 284,
361
+ "declarationBytes": 275,
362
+ "coldImportMs": 5.062
363
+ }
364
+ ]
365
+ }
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@spfx-fast/sharepoint-ui",
3
- "version": "0.4.3",
3
+ "version": "0.5.0",
4
4
  "license": "MIT",
5
- "description": "Host-aware, framework-independent UI elements for SharePoint Framework",
5
+ "description": "Small themeable React components for SharePoint Framework",
6
6
  "homepage": "https://vystartasv.github.io/sharepoint-ui/",
7
7
  "repository": {
8
8
  "type": "git",
@@ -14,16 +14,16 @@
14
14
  "keywords": [
15
15
  "sharepoint",
16
16
  "spfx",
17
- "fluent-ui",
18
- "web-components",
19
17
  "react",
20
- "design-system"
18
+ "ui"
21
19
  ],
22
20
  "publishConfig": {
23
21
  "access": "public"
24
22
  },
25
23
  "type": "module",
26
- "sideEffects": false,
24
+ "sideEffects": [
25
+ "./src/theme.css"
26
+ ],
27
27
  "main": "./dist/index.js",
28
28
  "types": "./dist/index.d.ts",
29
29
  "exports": {
@@ -35,64 +35,32 @@
35
35
  "types": "./dist/react.d.ts",
36
36
  "import": "./dist/react.js"
37
37
  },
38
- "./elements": {
39
- "types": "./dist/elements.d.ts",
40
- "import": "./dist/elements.js"
41
- },
42
- "./elements/*": {
43
- "types": "./dist/elements/*.d.ts",
44
- "import": "./dist/elements/*.js"
45
- },
46
- "./appearance": {
47
- "types": "./dist/appearance.d.ts",
48
- "import": "./dist/appearance.js"
49
- },
50
38
  "./theme": {
51
39
  "types": "./dist/theme.d.ts",
52
40
  "import": "./dist/theme.js"
53
41
  },
54
- "./sharepoint-fields": {
55
- "types": "./dist/sharepoint-fields.d.ts",
56
- "import": "./dist/sharepoint-fields.js"
57
- },
58
- "./tokens": "./tokens.json"
42
+ "./components.json": "./components.json",
43
+ "./styles.css": "./src/theme.css"
59
44
  },
60
45
  "files": [
61
46
  "dist",
62
47
  "LICENSE",
63
48
  "README.md",
64
49
  "QUICKSTART.md",
65
- "AGENTS.md",
50
+ "src/theme.css",
66
51
  "components.json",
67
- "tokens.json",
68
- "skills",
69
- "scripts"
52
+ "measurements.json"
70
53
  ],
71
54
  "scripts": {
72
- "build": "tsc -p tsconfig.json",
73
- "prepublishOnly": "npm run build",
74
- "catalog:check": "node scripts/validate-component-catalog.mjs",
75
- "catalog:sync-signatures": "node scripts/sync-component-catalog-signatures.mjs",
76
- "catalog:check-signatures": "node scripts/sync-component-catalog-signatures.mjs --check",
77
- "tokens:generate": "node scripts/generate-token-index.mjs",
78
- "tokens:check": "node scripts/generate-token-index.mjs --check"
55
+ "build": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.json",
56
+ "prepublishOnly": "npm run build"
79
57
  },
80
58
  "peerDependencies": {
81
- "react": ">=18.3.1",
82
- "react-dom": ">=18.3.1"
59
+ "react": "18.3.1"
83
60
  },
84
61
  "devDependencies": {
85
62
  "@types/react": "18.3.28",
86
- "@types/react-dom": "^18.3.7",
87
- "react-dom": "^18.3.1",
63
+ "react": "18.3.1",
88
64
  "typescript": "5.8.3"
89
- },
90
- "peerDependenciesMeta": {
91
- "react": {
92
- "optional": true
93
- },
94
- "react-dom": {
95
- "optional": true
96
- }
97
65
  }
98
66
  }
package/src/theme.css ADDED
@@ -0,0 +1,125 @@
1
+ .spui-theme{--spui-accent:var(--themePrimary,#0f6cbd);--spui-accentText:var(--white,#fff);--spui-background:var(--neutralLighterAlt,#f5f5f5);--spui-border:var(--neutralQuaternaryAlt,#d1d1d1);--spui-surface:var(--white,#fff);--spui-text:var(--neutralPrimary,#242424);--spui-muted:var(--neutralSecondary,#616161);--spui-radius:4px;color:var(--spui-text);font:inherit}
2
+ .spui-button{appearance:none;border:1px solid var(--spui-accent);border-radius:var(--spui-radius);background:var(--spui-accent);color:var(--spui-accentText);font:inherit;font-weight:600;min-height:2.25rem;padding:.45rem .85rem;cursor:pointer}
3
+ .spui-button:hover{filter:brightness(.94)}
4
+ .spui-button-group{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.5rem}
5
+ .spui-command-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
6
+ .spui-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
7
+ .spui-link{color:var(--spui-accent);text-decoration:underline;text-underline-offset:.15em}
8
+ .spui-menu{position:relative;display:inline-block}
9
+ .spui-menu>summary{cursor:pointer}
10
+ .spui-menu-items{position:absolute;z-index:1;inset-block-start:100%;inset-inline-start:0;min-width:10rem;padding:.5rem;border:1px solid var(--spui-border);border-radius:var(--spui-radius);background:var(--spui-surface);box-shadow:0 4px 12px #0002}
11
+ .spui-popover{position:relative;display:inline-block}
12
+ .spui-popover>summary{cursor:pointer}
13
+ .spui-popover>div{position:absolute;z-index:1;inset-block-start:calc(100% + .35rem);inset-inline-start:0;min-width:12rem;max-width:min(24rem,calc(100vw - 2rem));padding:.75rem;border:1px solid var(--spui-border);border-radius:var(--spui-radius);background:var(--spui-surface);box-shadow:0 4px 12px #0002}
14
+ .spui-button:focus-visible,.spui-input:focus-visible{outline:2px solid var(--spui-accent);outline-offset:2px}
15
+ .spui-input,.spui-textarea,.spui-select{box-sizing:border-box;border:1px solid var(--spui-border);border-radius:var(--spui-radius);background:var(--spui-surface);color:var(--spui-text);font:inherit;padding:.45rem .65rem}
16
+ .spui-input{min-height:2.25rem}
17
+ .spui-textarea{min-height:5rem;resize:vertical}
18
+ .spui-checkbox,.spui-radio,.spui-switch{accent-color:var(--spui-accent)}
19
+ .spui-checkbox:focus-visible,.spui-radio:focus-visible,.spui-switch:focus-visible{outline:2px solid var(--spui-accent);outline-offset:2px}
20
+ .spui-switch{appearance:none;width:2.35rem;height:1.3rem;border:1px solid var(--spui-border);border-radius:99px;background:radial-gradient(circle at .6rem center,var(--spui-muted) .34rem,transparent .37rem),var(--spui-surface);vertical-align:middle;cursor:pointer}
21
+ .spui-switch:checked{background:radial-gradient(circle at calc(100% - .6rem) center,var(--spui-accentText) .34rem,transparent .37rem),var(--spui-accent);border-color:var(--spui-accent)}
22
+ .spui-switch:disabled{cursor:not-allowed;opacity:.55}
23
+ .spui-field{display:grid;justify-items:start;gap:.35rem}
24
+ .spui-filter-bar{display:flex;flex-wrap:wrap;align-items:end;gap:.75rem}
25
+ .spui-filter-controls{display:flex;flex:1 1 20rem;flex-wrap:wrap;align-items:end;gap:.75rem}
26
+ .spui-filter-clear{min-height:2.25rem;border:1px solid var(--spui-border);border-radius:var(--spui-radius);background:var(--spui-surface);color:var(--spui-text);font:inherit;padding:.4rem .7rem;cursor:pointer}
27
+ .spui-filter-clear:disabled{opacity:.55;cursor:not-allowed}
28
+ .spui-filter-clear:focus-visible{outline:2px solid var(--spui-accent);outline-offset:2px}
29
+ .spui-file-dropzone{display:grid;justify-items:start;gap:.5rem;border:1px dashed var(--spui-border);border-radius:var(--spui-radius);background:var(--spui-surface);padding:1rem}
30
+ .spui-file-dropzone:focus-within{outline:2px solid var(--spui-accent);outline-offset:2px}
31
+ .spui-file-dropzone p{margin:0}
32
+ .spui-file-input{max-width:100%;font:inherit;color:var(--spui-text)}
33
+ .spui-file-drop-hint{color:var(--spui-muted);font-size:.875rem}
34
+ .spui-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
35
+ .spui-list-view{display:grid;gap:1rem}
36
+ .spui-list-view-tools{display:grid;gap:.75rem}
37
+ .spui-attachment-list{display:grid;gap:.5rem;margin:0;padding:0;list-style:none}
38
+ .spui-attachment{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem}
39
+ .spui-attachment progress{flex:1 1 8rem;max-width:16rem}
40
+ .spui-attachment button{min-height:2rem;border:1px solid var(--spui-border);border-radius:var(--spui-radius);background:var(--spui-surface);color:var(--spui-text);font:inherit;padding:.25rem .55rem;cursor:pointer}
41
+ .spui-attachment button:disabled{opacity:.55;cursor:not-allowed}
42
+ .spui-view-switcher{display:inline-flex;flex-wrap:wrap;gap:.25rem;border:1px solid var(--spui-border);border-radius:var(--spui-radius);padding:.2rem}
43
+ .spui-view-switcher button{min-height:2rem;border:0;border-radius:calc(var(--spui-radius) - 2px);background:transparent;color:var(--spui-text);font:inherit;padding:.3rem .65rem;cursor:pointer}
44
+ .spui-view-switcher button[aria-pressed="true"]{background:var(--spui-accent);color:var(--spui-accentText)}
45
+ .spui-view-switcher button:focus-visible{outline:2px solid var(--spui-accent);outline-offset:1px}
46
+ .spui-label{font-weight:600}
47
+ .spui-radio-group{display:grid;gap:.5rem;border:0;padding:0}
48
+ .spui-radio-group legend{margin-bottom:.35rem;font-weight:600}
49
+ .spui-date-range{display:flex;flex-wrap:wrap;gap:.75rem;border:0;padding:0}
50
+ .spui-date-range legend{margin-bottom:.35rem;font-weight:600}
51
+ .spui-date-range label{display:grid;gap:.35rem}
52
+ .spui-hint{color:var(--spui-muted);font-size:.875em}
53
+ .spui-error{color:#b10e1e;font-size:.875em}
54
+ .spui-card{border:1px solid var(--spui-border);border-radius:var(--spui-radius);background:var(--spui-surface);padding:1rem}
55
+ .spui-view-card{border:1px solid var(--spui-border);border-radius:var(--spui-radius);background:var(--spui-surface);padding:1rem}
56
+ .spui-view-card h2{margin:0 0 .35rem;font-size:1.1rem}
57
+ .spui-view-card p{margin:.35rem 0}
58
+ .spui-view-subtitle{color:var(--spui-muted)}
59
+ .spui-empty-state{padding:1.5rem;text-align:center}
60
+ .spui-empty-state h2{margin:0 0 .4rem;font-size:1.25rem}
61
+ .spui-empty-state p{color:var(--spui-muted)}
62
+ .spui-divider{height:0;border:0;border-top:1px solid var(--spui-border);margin-block:1rem}
63
+ .spui-list{padding-inline-start:1.5rem}
64
+ .spui-accordion>details{border-bottom:1px solid var(--spui-border);padding-block:.6rem}
65
+ .spui-accordion summary{cursor:pointer;font-weight:600}
66
+ .spui-accordion-content{padding-block:.6rem}
67
+ .spui-tabs [role=tablist]{display:flex;gap:.25rem;border-bottom:1px solid var(--spui-border)}
68
+ .spui-tabs [role=tab]{border:0;border-bottom:2px solid transparent;background:none;color:inherit;font:inherit;padding:.55rem .8rem;cursor:pointer}
69
+ .spui-tabs [role=tab][aria-selected=true]{border-bottom-color:var(--spui-accent);color:var(--spui-accent)}
70
+ .spui-tabs [role=tabpanel]{padding:.75rem 0}
71
+ .spui-breadcrumb ol{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0;padding:0}
72
+ .spui-breadcrumb li+li::before{content:"/";margin-inline-end:.5rem;color:var(--spui-muted)}
73
+ .spui-pagination{display:flex;align-items:center;gap:.75rem}
74
+ .spui-pagination button{min-height:2rem;border:1px solid var(--spui-border);border-radius:var(--spui-radius);background:var(--spui-surface);color:var(--spui-text);font:inherit;padding:.3rem .6rem;cursor:pointer}
75
+ .spui-pagination button:disabled{opacity:.55;cursor:not-allowed}
76
+ .spui-progress{display:grid;gap:.35rem}
77
+ .spui-progress-bar{width:100%;height:.65rem;accent-color:var(--spui-accent)}
78
+ .spui-spinner{display:inline-block;width:1.25rem;height:1.25rem}
79
+ .spui-spinner>span{display:block;width:100%;height:100%;border:2px solid var(--spui-border);border-top-color:var(--spui-accent);border-radius:50%;animation:spui-spin .8s linear infinite}
80
+ @keyframes spui-spin{to{transform:rotate(1turn)}}
81
+ @media(prefers-reduced-motion:reduce){.spui-spinner>span{animation:none;border-top-color:var(--spui-border);border-inline-end-color:var(--spui-accent)}}
82
+ .spui-skeleton{display:inline-block;max-width:100%;border-radius:var(--spui-radius);background:var(--spui-background);vertical-align:middle;animation:spui-pulse 1.4s ease-in-out infinite alternate}
83
+ @keyframes spui-pulse{to{opacity:.5}}
84
+ @media(prefers-reduced-motion:reduce){.spui-skeleton{animation:none}}
85
+ .spui-alert{padding:.75rem;border:1px solid var(--spui-border);border-radius:var(--spui-radius);background:var(--spui-surface)}
86
+ .spui-toast{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem;border:1px solid var(--spui-border);border-radius:var(--spui-radius);background:var(--spui-surface);box-shadow:0 4px 12px #0002}
87
+ .spui-table{width:100%;border-collapse:collapse;text-align:start}
88
+ .spui-table caption{text-align:start;font-weight:600;padding:.5rem 0}
89
+ .spui-table th,.spui-table td{padding:.5rem .65rem;border-bottom:1px solid var(--spui-border);text-align:start}
90
+ .spui-table thead th{font-weight:600}
91
+ .spui-tree,.spui-tree ul{list-style:none;padding-inline-start:1.1rem}
92
+ .spui-tree{padding-inline-start:0}
93
+ .spui-tree summary{cursor:pointer}
94
+ .spui-nav ul{list-style:none;margin:0;padding:0}
95
+ .spui-nav a[aria-current=page]{font-weight:700;text-decoration-thickness:2px}
96
+ .spui-carousel{overflow:hidden}
97
+ .spui-carousel:focus-visible{outline:2px solid var(--spui-accent);outline-offset:2px}
98
+ .spui-carousel ul{display:flex;gap:.75rem;overflow-x:auto;scroll-snap-type:inline mandatory;list-style:none;margin:0;padding:.25rem 0 .75rem}
99
+ .spui-carousel li{flex:0 0 min(80vw,32rem);scroll-snap-align:start}
100
+ .spui-tag-picker{min-width:min(100%,16rem);min-height:6rem}
101
+ .spui-swatch-picker{display:flex;flex-wrap:wrap;gap:.5rem;border:0;padding:0}
102
+ .spui-swatch-picker legend{width:100%;margin-bottom:.35rem;font-weight:600}
103
+ .spui-swatch-option{display:inline-flex;align-items:center;gap:.3rem;cursor:pointer}
104
+ .spui-swatch-dot{flex:none;width:1.25rem;height:1.25rem;border:1px solid var(--spui-border);border-radius:50%;object-fit:cover}
105
+ .spui-virtual-list{overscroll-behavior:contain}
106
+ .spui-virtual-list-item{box-sizing:border-box}
107
+ @media(prefers-reduced-motion:reduce){.spui-carousel ul{scroll-behavior:auto}}
108
+ .spui-dialog{width:min(36rem,calc(100% - 2rem));max-height:calc(100% - 2rem);overflow:auto;border:1px solid var(--spui-border);border-radius:8px;background:var(--spui-surface);color:var(--spui-text);padding:1rem}
109
+ .spui-dialog::backdrop{background:#0007}
110
+ .spui-dialog>header{display:flex;align-items:start;justify-content:space-between;gap:1rem}
111
+ .spui-dialog h2{margin:0;font-size:1.25rem}
112
+ .spui-dialog.spui-drawer{position:fixed;inset-block:0;inset-inline-end:0;margin:0;width:min(28rem,100%);height:100dvh;max-height:none;border-radius:0}
113
+ .spui-dialog.spui-drawer-start{inset-inline-start:0;inset-inline-end:auto}
114
+ .spui-badge{display:inline-block;border:1px solid var(--spui-border);border-radius:999px;padding:.1rem .5rem;font-size:.8em}
115
+ .spui-tag{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--spui-border);border-radius:999px;padding:.2rem .55rem;background:var(--spui-surface)}
116
+ .spui-tag-remove{border:0;background:none;color:inherit;font:inherit;text-decoration:underline;cursor:pointer}
117
+ .spui-tag-group{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}
118
+ .spui-image{display:block;max-width:100%;height:auto}
119
+ .spui-avatar{display:inline-grid;place-items:center;width:2.5rem;height:2.5rem;overflow:hidden;border-radius:50%;background:var(--spui-background);color:var(--spui-text);font-weight:600}
120
+ .spui-avatar img{width:100%;height:100%;object-fit:cover}
121
+ .spui-persona{display:flex;align-items:center;gap:.65rem}
122
+ .spui-persona-copy{display:grid;gap:.1rem}
123
+ .spui-avatar-group{display:flex;align-items:center}
124
+ .spui-avatar-group>.spui-avatar+.spui-avatar{margin-inline-start:-.45rem;border:2px solid var(--spui-surface)}
125
+ .spui-avatar-overflow{margin-inline-start:.4rem;font-size:.875em}