@keyfunc/keybricks-ds 1.0.4 → 2.1.1

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 (357) hide show
  1. package/DEPLOY.md +4 -4
  2. package/DESIGN.md +154 -53
  3. package/INTEGRATION.md +174 -35
  4. package/SKILL.md +6 -4
  5. package/_adherence.oxlintrc.json +164 -68
  6. package/_scripts/build-index.mjs +9 -0
  7. package/_scripts/build-tokens.mjs +5 -2
  8. package/assets/icons/icon-index.js +1 -1
  9. package/assets/icons/icon-index.json +1 -1
  10. package/components/_cards/accordion.card.html +2 -2
  11. package/components/_cards/action-chip.card.html +8 -3
  12. package/components/_cards/activity.card.html +2 -2
  13. package/components/_cards/alert.card.html +2 -2
  14. package/components/_cards/app-chrome.card.html +4 -4
  15. package/components/_cards/banner.card.html +1 -1
  16. package/components/_cards/breadcrumb.card.html +2 -2
  17. package/components/_cards/button-1-base.card.html +2 -2
  18. package/components/_cards/button-2-states.card.html +14 -14
  19. package/components/_cards/button-3-sizes-icons.card.html +1 -1
  20. package/components/_cards/button-4-group.card.html +5 -5
  21. package/components/_cards/canvas-zoom-controls.card.html +1 -1
  22. package/components/_cards/cards-indicators.card.html +2 -2
  23. package/components/_cards/charts-1-sparkline.card.html +2 -2
  24. package/components/_cards/charts-10-gauge.card.html +4 -4
  25. package/components/_cards/charts-11-funnel.card.html +2 -2
  26. package/components/_cards/charts-12-treemap.card.html +2 -2
  27. package/components/_cards/charts-14-radar.card.html +1 -1
  28. package/components/_cards/charts-15-distribution.card.html +1 -1
  29. package/components/_cards/charts-16-pareto.card.html +2 -2
  30. package/components/_cards/charts-17-candlestick.card.html +2 -2
  31. package/components/_cards/charts-18-sankey.card.html +2 -2
  32. package/components/_cards/charts-19-chord.card.html +2 -2
  33. package/components/_cards/charts-2-line.card.html +2 -2
  34. package/components/_cards/charts-20-sunburst.card.html +2 -2
  35. package/components/_cards/charts-21-worldmap.card.html +2 -2
  36. package/components/_cards/charts-22-gantt.card.html +2 -2
  37. package/components/_cards/charts-23-bar3d.card.html +2 -2
  38. package/components/_cards/charts-24-pie3d.card.html +2 -2
  39. package/components/_cards/charts-25-surface3d.card.html +2 -2
  40. package/components/_cards/charts-26-scatter3d.card.html +2 -2
  41. package/components/_cards/charts-27-ribbon3d.card.html +2 -2
  42. package/components/_cards/charts-3-bar.card.html +2 -2
  43. package/components/_cards/charts-4-barlist.card.html +2 -2
  44. package/components/_cards/charts-5-donut.card.html +3 -3
  45. package/components/_cards/charts-6-scatter.card.html +2 -2
  46. package/components/_cards/charts-7-heatmap.card.html +2 -2
  47. package/components/_cards/charts-8-waterfall.card.html +2 -2
  48. package/components/_cards/charts-9-bullet.card.html +2 -2
  49. package/components/_cards/charts-99-fullpage.card.html +5 -5
  50. package/components/_cards/checkbox.card.html +4 -4
  51. package/components/_cards/codeblock.card.html +1 -1
  52. package/components/_cards/combobox.card.html +3 -2
  53. package/components/_cards/context-menu.card.html +3 -2
  54. package/components/_cards/date-picker.card.html +5 -2
  55. package/components/_cards/diffvalue.card.html +2 -2
  56. package/components/_cards/divider.card.html +3 -3
  57. package/components/_cards/drawer.card.html +2 -2
  58. package/components/_cards/dropdown-menu.card.html +6 -6
  59. package/components/_cards/dropzone.card.html +1 -1
  60. package/components/_cards/empty-state.card.html +5 -5
  61. package/components/_cards/filter-bar.card.html +5 -5
  62. package/components/_cards/icon-button.card.html +2 -2
  63. package/components/_cards/icons-1-core.card.html +2 -2
  64. package/components/_cards/icons-2-feather.card.html +3 -3
  65. package/components/_cards/icons-3-unicons.card.html +3 -3
  66. package/components/_cards/input.card.html +5 -2
  67. package/components/_cards/kbd.card.html +2 -2
  68. package/components/_cards/keyvalue.card.html +2 -2
  69. package/components/_cards/listrow.card.html +2 -2
  70. package/components/_cards/loading.card.html +2 -2
  71. package/components/_cards/log-viewer.card.html +2 -2
  72. package/components/_cards/modal.card.html +9 -9
  73. package/components/_cards/multi-select.card.html +3 -2
  74. package/components/_cards/number-stepper.card.html +3 -2
  75. package/components/_cards/pagination.card.html +3 -2
  76. package/components/_cards/people.card.html +3 -3
  77. package/components/_cards/pipeline-node.card.html +2 -2
  78. package/components/_cards/pipeline-palette.card.html +4 -4
  79. package/components/_cards/radio.card.html +2 -2
  80. package/components/_cards/search.card.html +5 -2
  81. package/components/_cards/segmented-control.card.html +2 -2
  82. package/components/_cards/select.card.html +4 -4
  83. package/components/_cards/slider.card.html +1 -1
  84. package/components/_cards/smart-table.card.html +1 -1
  85. package/components/_cards/spreadsheet.card.html +2 -2
  86. package/components/_cards/stepper.card.html +2 -2
  87. package/components/_cards/table.card.html +103 -0
  88. package/components/_cards/tabs.card.html +3 -2
  89. package/components/_cards/tag.card.html +5 -2
  90. package/components/_cards/textarea.card.html +2 -2
  91. package/components/_cards/timeline.card.html +1 -1
  92. package/components/_cards/toast.card.html +4 -4
  93. package/components/_cards/toggles.card.html +3 -3
  94. package/components/_cards/tooltip.card.html +5 -5
  95. package/components/_cards/tree.card.html +2 -2
  96. package/components/_shared/src-buttons.js +1 -1
  97. package/components/_shared/src-charts.js +1 -1
  98. package/components/_shared/src-data.js +1 -1
  99. package/components/_shared/src-display.js +1 -1
  100. package/components/_shared/src-feedback.js +1 -1
  101. package/components/_shared/src-forms.js +1 -1
  102. package/components/_shared/src-navigation.js +1 -1
  103. package/components/_shared/src-pipeline.js +1 -1
  104. package/components/_shared/src-tabs.js +1 -1
  105. package/components/_vue/index.mjs +9 -5
  106. package/components/buttons/ActionChip.d.ts +3 -1
  107. package/components/buttons/ActionChip.jsx +4 -4
  108. package/components/buttons/ActionChip.vue +4 -4
  109. package/components/buttons/Button.d.ts +5 -2
  110. package/components/buttons/Button.jsx +15 -18
  111. package/components/buttons/Button.vue +17 -18
  112. package/components/buttons/ButtonGroup.vue +1 -1
  113. package/components/buttons/IconButton.d.ts +2 -1
  114. package/components/buttons/IconButton.jsx +9 -7
  115. package/components/buttons/IconButton.vue +10 -8
  116. package/components/buttons/buttons.prompt.md +6 -5
  117. package/components/charts/Bar3D.jsx +2 -2
  118. package/components/charts/Bar3D.vue +2 -2
  119. package/components/charts/BarChart.jsx +4 -4
  120. package/components/charts/BarChart.vue +4 -4
  121. package/components/charts/BarList.jsx +1 -1
  122. package/components/charts/BarList.vue +1 -1
  123. package/components/charts/BoxPlot.jsx +1 -1
  124. package/components/charts/BoxPlot.vue +2 -2
  125. package/components/charts/BulletChart.jsx +1 -1
  126. package/components/charts/BulletChart.vue +1 -1
  127. package/components/charts/CandlestickChart.jsx +2 -2
  128. package/components/charts/CandlestickChart.vue +3 -3
  129. package/components/charts/ChartKit.jsx +5 -5
  130. package/components/charts/ChartLegend.vue +16 -0
  131. package/components/charts/ChartTooltip.vue +16 -0
  132. package/components/charts/ChordChart.jsx +2 -2
  133. package/components/charts/ChordChart.vue +2 -2
  134. package/components/charts/GanttChart.jsx +2 -2
  135. package/components/charts/GanttChart.vue +2 -2
  136. package/components/charts/GaugeChart.jsx +2 -2
  137. package/components/charts/GaugeChart.vue +2 -2
  138. package/components/charts/HeatmapChart.jsx +2 -2
  139. package/components/charts/HeatmapChart.vue +2 -2
  140. package/components/charts/Histogram.jsx +2 -2
  141. package/components/charts/Histogram.vue +3 -3
  142. package/components/charts/LineChart.jsx +1 -1
  143. package/components/charts/LineChart.vue +3 -3
  144. package/components/charts/ParetoChart.jsx +3 -3
  145. package/components/charts/ParetoChart.vue +4 -4
  146. package/components/charts/PlotGrid.vue +18 -0
  147. package/components/charts/RadarChart.jsx +1 -1
  148. package/components/charts/RadarChart.vue +1 -1
  149. package/components/charts/Ribbon3D.jsx +2 -2
  150. package/components/charts/Ribbon3D.vue +2 -2
  151. package/components/charts/SankeyChart.jsx +2 -2
  152. package/components/charts/SankeyChart.vue +2 -2
  153. package/components/charts/Scatter3D.jsx +1 -1
  154. package/components/charts/Scatter3D.vue +1 -1
  155. package/components/charts/ScatterChart.jsx +3 -3
  156. package/components/charts/ScatterChart.vue +4 -4
  157. package/components/charts/Sparkline.jsx +1 -1
  158. package/components/charts/Sparkline.vue +1 -1
  159. package/components/charts/SunburstChart.jsx +1 -1
  160. package/components/charts/SunburstChart.vue +1 -1
  161. package/components/charts/Surface3D.jsx +2 -2
  162. package/components/charts/Surface3D.vue +2 -2
  163. package/components/charts/TreemapChart.jsx +2 -2
  164. package/components/charts/TreemapChart.vue +2 -2
  165. package/components/charts/WaterfallChart.jsx +2 -2
  166. package/components/charts/WaterfallChart.vue +3 -3
  167. package/components/charts/WorldMap.jsx +2 -2
  168. package/components/charts/WorldMap.vue +2 -2
  169. package/components/charts/XLabels.vue +11 -0
  170. package/components/data/CodeBlock.jsx +1 -1
  171. package/components/data/CodeBlock.vue +1 -1
  172. package/components/data/DiffValue.jsx +1 -1
  173. package/components/data/DiffValue.vue +1 -1
  174. package/components/data/FilterBar.d.ts +2 -0
  175. package/components/data/FilterBar.jsx +10 -9
  176. package/components/data/FilterBar.vue +9 -8
  177. package/components/data/KeyValue.jsx +3 -3
  178. package/components/data/KeyValue.vue +3 -3
  179. package/components/data/ListRow.jsx +2 -2
  180. package/components/data/ListRow.vue +2 -2
  181. package/components/data/Pagination.d.ts +5 -1
  182. package/components/data/Pagination.jsx +16 -12
  183. package/components/data/Pagination.vue +14 -9
  184. package/components/data/SmartTable.d.ts +4 -1
  185. package/components/data/SmartTable.jsx +16 -14
  186. package/components/data/SmartTable.vue +25 -22
  187. package/components/data/Spreadsheet.d.ts +2 -0
  188. package/components/data/Spreadsheet.jsx +12 -11
  189. package/components/data/Spreadsheet.vue +14 -13
  190. package/components/data/Table.d.ts +47 -0
  191. package/components/data/Table.jsx +85 -0
  192. package/components/data/Table.vue +63 -0
  193. package/components/data/data.prompt.md +3 -3
  194. package/components/display/Avatar.vue +3 -2
  195. package/components/display/AvatarGroup.vue +3 -2
  196. package/components/display/Badge.vue +1 -1
  197. package/components/display/Divider.vue +3 -3
  198. package/components/display/Donut.vue +3 -2
  199. package/components/display/IconTile.vue +2 -1
  200. package/components/display/Kbd.vue +1 -1
  201. package/components/display/ProgressBar.jsx +1 -1
  202. package/components/display/ProgressBar.vue +1 -1
  203. package/components/display/StatCard.vue +1 -1
  204. package/components/display/Tag.d.ts +3 -1
  205. package/components/display/Tag.jsx +4 -4
  206. package/components/display/Tag.vue +4 -4
  207. package/components/feedback/Accordion.jsx +2 -2
  208. package/components/feedback/Accordion.vue +2 -2
  209. package/components/feedback/ActivityItem.d.ts +3 -1
  210. package/components/feedback/ActivityItem.jsx +5 -5
  211. package/components/feedback/ActivityItem.vue +5 -4
  212. package/components/feedback/Alert.jsx +4 -4
  213. package/components/feedback/Alert.vue +3 -3
  214. package/components/feedback/Banner.jsx +5 -5
  215. package/components/feedback/Banner.vue +5 -5
  216. package/components/feedback/ContextMenu.d.ts +3 -1
  217. package/components/feedback/ContextMenu.jsx +5 -5
  218. package/components/feedback/ContextMenu.vue +5 -5
  219. package/components/feedback/DotActivity.vue +3 -3
  220. package/components/feedback/Drawer.d.ts +2 -0
  221. package/components/feedback/Drawer.jsx +6 -6
  222. package/components/feedback/Drawer.vue +22 -15
  223. package/components/feedback/EmptyState.vue +2 -2
  224. package/components/feedback/LogViewer.vue +1 -1
  225. package/components/feedback/Modal.d.ts +2 -0
  226. package/components/feedback/Modal.jsx +12 -11
  227. package/components/feedback/Modal.vue +10 -8
  228. package/components/feedback/Skeleton.vue +2 -1
  229. package/components/feedback/Spinner.vue +2 -1
  230. package/components/feedback/Stepper.vue +1 -1
  231. package/components/feedback/Timeline.jsx +1 -1
  232. package/components/feedback/Timeline.vue +1 -1
  233. package/components/feedback/Toast.vue +4 -4
  234. package/components/feedback/ToastStack.vue +11 -0
  235. package/components/feedback/Tooltip.vue +19 -0
  236. package/components/feedback/feedback.prompt.md +4 -4
  237. package/components/forms/Checkbox.d.ts +3 -2
  238. package/components/forms/Checkbox.jsx +7 -7
  239. package/components/forms/Checkbox.vue +8 -8
  240. package/components/forms/Combobox.d.ts +2 -0
  241. package/components/forms/Combobox.jsx +12 -10
  242. package/components/forms/Combobox.vue +11 -10
  243. package/components/forms/DatePicker.d.ts +4 -0
  244. package/components/forms/DatePicker.jsx +16 -12
  245. package/components/forms/DatePicker.vue +15 -11
  246. package/components/forms/Dropzone.jsx +2 -2
  247. package/components/forms/Dropzone.vue +5 -5
  248. package/components/forms/Field.d.ts +5 -1
  249. package/components/forms/Field.jsx +4 -4
  250. package/components/forms/Field.vue +4 -4
  251. package/components/forms/Input.d.ts +5 -1
  252. package/components/forms/Input.jsx +7 -7
  253. package/components/forms/Input.vue +3 -3
  254. package/components/forms/MultiSelect.d.ts +2 -0
  255. package/components/forms/MultiSelect.jsx +13 -11
  256. package/components/forms/MultiSelect.vue +12 -11
  257. package/components/forms/NumberStepper.d.ts +3 -1
  258. package/components/forms/NumberStepper.jsx +7 -7
  259. package/components/forms/NumberStepper.vue +8 -7
  260. package/components/forms/Radio.d.ts +5 -3
  261. package/components/forms/Radio.jsx +13 -15
  262. package/components/forms/Radio.vue +9 -10
  263. package/components/forms/RadioGroup.vue +5 -5
  264. package/components/forms/SearchInput.d.ts +3 -1
  265. package/components/forms/SearchInput.jsx +6 -6
  266. package/components/forms/SearchInput.vue +7 -6
  267. package/components/forms/Select.d.ts +3 -2
  268. package/components/forms/Select.jsx +6 -7
  269. package/components/forms/Select.vue +6 -6
  270. package/components/forms/Slider.jsx +3 -3
  271. package/components/forms/Slider.vue +3 -3
  272. package/components/forms/Switch.d.ts +2 -2
  273. package/components/forms/Switch.jsx +20 -22
  274. package/components/forms/Switch.vue +15 -14
  275. package/components/forms/Textarea.vue +4 -4
  276. package/components/forms/forms.prompt.md +1 -1
  277. package/components/forms/input-base.js +2 -1
  278. package/components/index.d.ts +1 -2
  279. package/components/index.js +3 -4
  280. package/components/navigation/Breadcrumb.jsx +3 -3
  281. package/components/navigation/Breadcrumb.vue +4 -4
  282. package/components/navigation/DocTree.jsx +3 -3
  283. package/components/navigation/DocTree.vue +3 -3
  284. package/components/navigation/PageHeading.vue +1 -1
  285. package/components/navigation/PageToolbar.vue +7 -6
  286. package/components/navigation/Sidebar.jsx +1 -1
  287. package/components/navigation/Sidebar.vue +3 -3
  288. package/components/navigation/ThemeToggle.vue +2 -1
  289. package/components/navigation/TopBar.d.ts +3 -1
  290. package/components/navigation/TopBar.jsx +6 -6
  291. package/components/navigation/Tree.jsx +5 -5
  292. package/components/navigation/Tree.vue +5 -5
  293. package/components/pipeline/ConfigPanel.d.ts +2 -0
  294. package/components/pipeline/ConfigPanel.jsx +9 -9
  295. package/components/pipeline/ConfigPanel.vue +9 -9
  296. package/components/pipeline/DataPreview.d.ts +3 -1
  297. package/components/pipeline/DataPreview.jsx +7 -7
  298. package/components/pipeline/DataPreview.vue +7 -7
  299. package/components/pipeline/NodeCard.jsx +3 -3
  300. package/components/pipeline/NodeCard.vue +3 -3
  301. package/components/pipeline/PaletteItem.vue +2 -2
  302. package/components/pipeline/PaletteListItem.vue +1 -1
  303. package/components/pipeline/PalettePanel.jsx +2 -2
  304. package/components/pipeline/PalettePanel.vue +1 -1
  305. package/components/pipeline/Port.vue +15 -0
  306. package/components/pipeline/PortLabel.vue +15 -0
  307. package/components/pipeline/ZoomControls.vue +1 -1
  308. package/components/pipeline/port-skin.js +13 -0
  309. package/components/px.js +4 -0
  310. package/components/tabs/PanelTabs.vue +5 -4
  311. package/components/tabs/PillTabs.vue +5 -4
  312. package/components/tabs/SegmentedControl.d.ts +2 -2
  313. package/components/tabs/SegmentedControl.jsx +7 -7
  314. package/components/tabs/SegmentedControl.vue +7 -7
  315. package/components/tabs/Tabs.d.ts +5 -3
  316. package/components/tabs/Tabs.jsx +15 -15
  317. package/components/tabs/Tabs.vue +5 -5
  318. package/components/tabs/ViewToggle.d.ts +3 -1
  319. package/components/tabs/ViewToggle.jsx +5 -5
  320. package/components/tabs/ViewToggle.vue +5 -5
  321. package/components/tabs/tabs.prompt.md +1 -1
  322. package/keybricks.css +4 -0
  323. package/package.json +6 -3
  324. package/readme.md +90 -122
  325. package/readme.zh-CN.md +120 -0
  326. package/tokens/charts.css +20 -17
  327. package/tokens/colors.css +2 -2
  328. package/tokens/dark.css +2 -2
  329. package/tokens/hover.css +32 -0
  330. package/tokens/interaction.css +3 -1
  331. package/tokens/layout.css +29 -7
  332. package/tokens/tokens.d.ts +36 -0
  333. package/tokens/tokens.js +143 -89
  334. package/tokens/tokens.json +240 -106
  335. package/tokens/typography.css +27 -14
  336. package/components/_cards/brand-visual.card.html +0 -43
  337. package/components/_cards/datatable.card.html +0 -48
  338. package/components/_shared/src-brand.js +0 -1
  339. package/components/brand/BrandVisual.d.ts +0 -17
  340. package/components/brand/BrandVisual.jsx +0 -29
  341. package/components/brand/BrandVisual.vue +0 -34
  342. package/components/brand/_dir.card.html +0 -13
  343. package/components/brand/brandMotifs.js +0 -210
  344. package/components/buttons/_dir.card.html +0 -13
  345. package/components/charts/ChartKit.vue +0 -47
  346. package/components/charts/_dir.card.html +0 -7
  347. package/components/data/DataTable.d.ts +0 -28
  348. package/components/data/DataTable.jsx +0 -32
  349. package/components/data/DataTable.vue +0 -25
  350. package/components/data/_dir.card.html +0 -13
  351. package/components/display/_dir.card.html +0 -13
  352. package/components/feedback/_dir.card.html +0 -13
  353. package/components/forms/_dir.card.html +0 -13
  354. package/components/icons/_dir.card.html +0 -13
  355. package/components/navigation/_dir.card.html +0 -13
  356. package/components/pipeline/_dir.card.html +0 -13
  357. package/components/tabs/_dir.card.html +0 -13
@@ -19,7 +19,6 @@
19
19
  "assets/icons/**",
20
20
  "components/**",
21
21
  "components/_shared/**",
22
- "components/brand/**",
23
22
  "components/buttons/**",
24
23
  "components/charts/**",
25
24
  "components/data/**",
@@ -58,16 +57,20 @@
58
57
  "message": "<Accordion> doesn't accept that prop. Declared props: title, subtitle, defaultOpen, open, onToggle, children, style."
59
58
  },
60
59
  {
61
- "selector": "JSXOpeningElement[name.name='ActionChip'] > JSXAttribute > JSXIdentifier[name!=/^(?:tone|onClick|children|style|key|ref|className|style|children)$/]",
62
- "message": "<ActionChip> doesn't accept that prop. Declared props: tone, onClick, children, style."
60
+ "selector": "JSXOpeningElement[name.name='ActionChip'] > JSXAttribute > JSXIdentifier[name!=/^(?:size|tone|onClick|children|style|key|ref|className|style|children)$/]",
61
+ "message": "<ActionChip> doesn't accept that prop. Declared props: size, tone, onClick, children, style."
62
+ },
63
+ {
64
+ "selector": "JSXOpeningElement[name.name='ActionChip'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:sm|md|lg)$/]",
65
+ "message": "<ActionChip> size must be one of 'sm' | 'md' | 'lg'."
63
66
  },
64
67
  {
65
68
  "selector": "JSXOpeningElement[name.name='ActionChip'] > JSXAttribute[name.name='tone'] > Literal[value!=/^(?:success|warning|neutral|info|danger)$/]",
66
69
  "message": "<ActionChip> tone must be one of 'success' | 'warning' | 'neutral' | 'info' | 'danger'."
67
70
  },
68
71
  {
69
- "selector": "JSXOpeningElement[name.name='ActivityItem'] > JSXAttribute > JSXIdentifier[name!=/^(?:icon|title|meta|action|style|key|ref|className|style|children)$/]",
70
- "message": "<ActivityItem> doesn't accept that prop. Declared props: icon, title, meta, action, style."
72
+ "selector": "JSXOpeningElement[name.name='ActivityItem'] > JSXAttribute > JSXIdentifier[name!=/^(?:icon|title|meta|action|onAction|style|key|ref|className|style|children)$/]",
73
+ "message": "<ActivityItem> doesn't accept that prop. Declared props: icon, title, meta, action, onAction, style."
71
74
  },
72
75
  {
73
76
  "selector": "JSXOpeningElement[name.name='Alert'] > JSXAttribute > JSXIdentifier[name!=/^(?:tone|title|children|action|style|key|ref|className|style|children)$/]",
@@ -113,14 +116,6 @@
113
116
  "selector": "JSXOpeningElement[name.name='BoxGroup'] > JSXAttribute > JSXIdentifier[name!=/^(?:label|values|q1|med|q3|lo|hi|outliers|color|key|ref|className|style|children)$/]",
114
117
  "message": "<BoxGroup> doesn't accept that prop. Declared props: label, values, q1, med, q3, lo, hi, outliers, color."
115
118
  },
116
- {
117
- "selector": "JSXOpeningElement[name.name='BrandVisual'] > JSXAttribute > JSXIdentifier[name!=/^(?:motif|width|height|radius|fit|children|style|key|ref|className|style|children)$/]",
118
- "message": "<BrandVisual> doesn't accept that prop. Declared props: motif, width, height, radius, fit, children, style."
119
- },
120
- {
121
- "selector": "JSXOpeningElement[name.name='BrandVisual'] > JSXAttribute[name.name='fit'] > Literal[value!=/^(?:slice|meet)$/]",
122
- "message": "<BrandVisual> fit must be one of 'slice' | 'meet'."
123
- },
124
119
  {
125
120
  "selector": "JSXOpeningElement[name.name='Breadcrumb'] > JSXAttribute > JSXIdentifier[name!=/^(?:items|onSelect|maxItems|hoveredIndex|style|key|ref|className|style|children)$/]",
126
121
  "message": "<Breadcrumb> doesn't accept that prop. Declared props: items, onSelect, maxItems, hoveredIndex, style."
@@ -162,8 +157,8 @@
162
157
  "message": "<Checkbox> doesn't accept that prop. Declared props: checked, indeterminate, onChange, label, size, disabled, style."
163
158
  },
164
159
  {
165
- "selector": "JSXOpeningElement[name.name='Checkbox'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:md|sm)$/]",
166
- "message": "<Checkbox> size must be one of 'md' | 'sm'."
160
+ "selector": "JSXOpeningElement[name.name='Checkbox'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:sm|md|lg)$/]",
161
+ "message": "<Checkbox> size must be one of 'sm' | 'md' | 'lg'."
167
162
  },
168
163
  {
169
164
  "selector": "JSXOpeningElement[name.name='ChordChart'] > JSXAttribute > JSXIdentifier[name!=/^(?:labels|matrix|size|thickness|gap|valueFormat|interactive|style|key|ref|className|style|children)$/]",
@@ -174,32 +169,44 @@
174
169
  "message": "<CodeBlock> doesn't accept that prop. Declared props: code, language, height, style."
175
170
  },
176
171
  {
177
- "selector": "JSXOpeningElement[name.name='Combobox'] > JSXAttribute > JSXIdentifier[name!=/^(?:options|value|placeholder|disabled|error|width|onChange|style|key|ref|className|style|children)$/]",
178
- "message": "<Combobox> doesn't accept that prop. Declared props: options, value, placeholder, disabled, error, width, onChange, style."
172
+ "selector": "JSXOpeningElement[name.name='Combobox'] > JSXAttribute > JSXIdentifier[name!=/^(?:options|value|placeholder|disabled|error|width|size|onChange|style|key|ref|className|style|children)$/]",
173
+ "message": "<Combobox> doesn't accept that prop. Declared props: options, value, placeholder, disabled, error, width, size, onChange, style."
179
174
  },
180
175
  {
181
- "selector": "JSXOpeningElement[name.name='ConfigPanel'] > JSXAttribute > JSXIdentifier[name!=/^(?:title|subtitle|tabs|activeTab|onTab|previewRows|onPreviewRows|onSave|onPreview|children|height|style|key|ref|className|style|children)$/]",
182
- "message": "<ConfigPanel> doesn't accept that prop. Declared props: title, subtitle, tabs, activeTab, onTab, previewRows, onPreviewRows, onSave, onPreview, children, height, style."
176
+ "selector": "JSXOpeningElement[name.name='Combobox'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:sm|md|lg)$/]",
177
+ "message": "<Combobox> size must be one of 'sm' | 'md' | 'lg'."
183
178
  },
184
179
  {
185
- "selector": "JSXOpeningElement[name.name='ContextMenu'] > JSXAttribute > JSXIdentifier[name!=/^(?:items|onSelect|style|key|ref|className|style|children)$/]",
186
- "message": "<ContextMenu> doesn't accept that prop. Declared props: items, onSelect, style."
180
+ "selector": "JSXOpeningElement[name.name='ConfigPanel'] > JSXAttribute > JSXIdentifier[name!=/^(?:title|subtitle|tabs|activeTab|onTab|previewRows|onPreviewRows|onSave|onPreview|children|height|size|style|key|ref|className|style|children)$/]",
181
+ "message": "<ConfigPanel> doesn't accept that prop. Declared props: title, subtitle, tabs, activeTab, onTab, previewRows, onPreviewRows, onSave, onPreview, children, height, size, style."
187
182
  },
188
183
  {
189
- "selector": "JSXOpeningElement[name.name='DataPreview'] > JSXAttribute > JSXIdentifier[name!=/^(?:title|columns|rows|debug|onDebug|collapsed|onCollapse|style|key|ref|className|style|children)$/]",
190
- "message": "<DataPreview> doesn't accept that prop. Declared props: title, columns, rows, debug, onDebug, collapsed, onCollapse, style."
184
+ "selector": "JSXOpeningElement[name.name='ConfigPanel'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:sm|md|lg)$/]",
185
+ "message": "<ConfigPanel> size must be one of 'sm' | 'md' | 'lg'."
191
186
  },
192
187
  {
193
- "selector": "JSXOpeningElement[name.name='DataTableColumn'] > JSXAttribute > JSXIdentifier[name!=/^(?:key|label|width|mono|align|render|key|ref|className|style|children)$/]",
194
- "message": "<DataTableColumn> doesn't accept that prop. Declared props: key, label, width, mono, align, render."
188
+ "selector": "JSXOpeningElement[name.name='ContextMenu'] > JSXAttribute > JSXIdentifier[name!=/^(?:items|onSelect|size|style|key|ref|className|style|children)$/]",
189
+ "message": "<ContextMenu> doesn't accept that prop. Declared props: items, onSelect, size, style."
195
190
  },
196
191
  {
197
- "selector": "JSXOpeningElement[name.name='DataTableColumn'] > JSXAttribute[name.name='align'] > Literal[value!=/^(?:left|right|center)$/]",
198
- "message": "<DataTableColumn> align must be one of 'left' | 'right' | 'center'."
192
+ "selector": "JSXOpeningElement[name.name='ContextMenu'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:sm|md|lg)$/]",
193
+ "message": "<ContextMenu> size must be one of 'sm' | 'md' | 'lg'."
194
+ },
195
+ {
196
+ "selector": "JSXOpeningElement[name.name='DataPreview'] > JSXAttribute > JSXIdentifier[name!=/^(?:title|columns|rows|debug|onDebug|collapsed|onCollapse|size|style|key|ref|className|style|children)$/]",
197
+ "message": "<DataPreview> doesn't accept that prop. Declared props: title, columns, rows, debug, onDebug, collapsed, onCollapse, size, style."
198
+ },
199
+ {
200
+ "selector": "JSXOpeningElement[name.name='DataPreview'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:sm|md|lg)$/]",
201
+ "message": "<DataPreview> size must be one of 'sm' | 'md' | 'lg'."
202
+ },
203
+ {
204
+ "selector": "JSXOpeningElement[name.name='DatePicker'] > JSXAttribute > JSXIdentifier[name!=/^(?:value|placeholder|disabled|error|width|size|locale|onChange|style|key|ref|className|style|children)$/]",
205
+ "message": "<DatePicker> doesn't accept that prop. Declared props: value, placeholder, disabled, error, width, size, locale, onChange, style."
199
206
  },
200
207
  {
201
- "selector": "JSXOpeningElement[name.name='DatePicker'] > JSXAttribute > JSXIdentifier[name!=/^(?:value|placeholder|disabled|error|width|onChange|style|key|ref|className|style|children)$/]",
202
- "message": "<DatePicker> doesn't accept that prop. Declared props: value, placeholder, disabled, error, width, onChange, style."
208
+ "selector": "JSXOpeningElement[name.name='DatePicker'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:sm|md|lg)$/]",
209
+ "message": "<DatePicker> size must be one of 'sm' | 'md' | 'lg'."
203
210
  },
204
211
  {
205
212
  "selector": "JSXOpeningElement[name.name='DiffValue'] > JSXAttribute > JSXIdentifier[name!=/^(?:from|to|tone|mono|style|key|ref|className|style|children)$/]",
@@ -226,20 +233,32 @@
226
233
  "message": "<DonutSegment> doesn't accept that prop. Declared props: label, value, color."
227
234
  },
228
235
  {
229
- "selector": "JSXOpeningElement[name.name='Drawer'] > JSXAttribute > JSXIdentifier[name!=/^(?:open|title|subtitle|width|inline|height|footer|onClose|children|style|key|ref|className|style|children)$/]",
230
- "message": "<Drawer> doesn't accept that prop. Declared props: open, title, subtitle, width, inline, height, footer, onClose, children, style."
236
+ "selector": "JSXOpeningElement[name.name='Drawer'] > JSXAttribute > JSXIdentifier[name!=/^(?:open|title|subtitle|width|inline|height|size|footer|onClose|children|style|key|ref|className|style|children)$/]",
237
+ "message": "<Drawer> doesn't accept that prop. Declared props: open, title, subtitle, width, inline, height, size, footer, onClose, children, style."
238
+ },
239
+ {
240
+ "selector": "JSXOpeningElement[name.name='Drawer'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:sm|md|lg)$/]",
241
+ "message": "<Drawer> size must be one of 'sm' | 'md' | 'lg'."
231
242
  },
232
243
  {
233
244
  "selector": "JSXOpeningElement[name.name='Dropzone'] > JSXAttribute > JSXIdentifier[name!=/^(?:title|hint|height|error|disabled|dragOver|file|onRemove|onClick|onDropFiles|style|key|ref|className|style|children)$/]",
234
245
  "message": "<Dropzone> doesn't accept that prop. Declared props: title, hint, height, error, disabled, dragOver, file, onRemove, onClick, onDropFiles, style."
235
246
  },
236
247
  {
237
- "selector": "JSXOpeningElement[name.name='Field'] > JSXAttribute > JSXIdentifier[name!=/^(?:label|required|hint|error|children|style|key|ref|className|style|children)$/]",
238
- "message": "<Field> doesn't accept that prop. Declared props: label, required, hint, error, children, style."
248
+ "selector": "JSXOpeningElement[name.name='Field'] > JSXAttribute > JSXIdentifier[name!=/^(?:label|required|size|inline|hint|error|children|style|key|ref|className|style|children)$/]",
249
+ "message": "<Field> doesn't accept that prop. Declared props: label, required, size, inline, hint, error, children, style."
250
+ },
251
+ {
252
+ "selector": "JSXOpeningElement[name.name='Field'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:sm|md|lg)$/]",
253
+ "message": "<Field> size must be one of 'sm' | 'md' | 'lg'."
239
254
  },
240
255
  {
241
- "selector": "JSXOpeningElement[name.name='FilterBar'] > JSXAttribute > JSXIdentifier[name!=/^(?:variant|modified|adaptCount|defaultExpanded|onGo|onAdapt|children|style|key|ref|className|style|children)$/]",
242
- "message": "<FilterBar> doesn't accept that prop. Declared props: variant, modified, adaptCount, defaultExpanded, onGo, onAdapt, children, style."
256
+ "selector": "JSXOpeningElement[name.name='FilterBar'] > JSXAttribute > JSXIdentifier[name!=/^(?:variant|modified|adaptCount|defaultExpanded|size|onGo|onAdapt|children|style|key|ref|className|style|children)$/]",
257
+ "message": "<FilterBar> doesn't accept that prop. Declared props: variant, modified, adaptCount, defaultExpanded, size, onGo, onAdapt, children, style."
258
+ },
259
+ {
260
+ "selector": "JSXOpeningElement[name.name='FilterBar'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:sm|md|lg)$/]",
261
+ "message": "<FilterBar> size must be one of 'sm' | 'md' | 'lg'."
243
262
  },
244
263
  {
245
264
  "selector": "JSXOpeningElement[name.name='FunnelStage'] > JSXAttribute > JSXIdentifier[name!=/^(?:label|value|key|ref|className|style|children)$/]",
@@ -278,8 +297,12 @@
278
297
  "message": "<IconButton> size must be one of 'xs' | 'sm' | 'md' | 'lg'."
279
298
  },
280
299
  {
281
- "selector": "JSXOpeningElement[name.name='Input'] > JSXAttribute > JSXIdentifier[name!=/^(?:readOnly|disabled|error|style|key|ref|className|style|children)$/]",
282
- "message": "<Input> doesn't accept that prop. Declared props: readOnly, disabled, error, style."
300
+ "selector": "JSXOpeningElement[name.name='Input'] > JSXAttribute > JSXIdentifier[name!=/^(?:size|readOnly|disabled|error|style|key|ref|className|style|children)$/]",
301
+ "message": "<Input> doesn't accept that prop. Declared props: size, readOnly, disabled, error, style."
302
+ },
303
+ {
304
+ "selector": "JSXOpeningElement[name.name='Input'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:sm|md|lg)$/]",
305
+ "message": "<Input> size must be one of 'sm' | 'md' | 'lg'."
283
306
  },
284
307
  {
285
308
  "selector": "JSXOpeningElement[name.name='Kbd'] > JSXAttribute > JSXIdentifier[name!=/^(?:keys|style|key|ref|className|style|children)$/]",
@@ -314,8 +337,12 @@
314
337
  "message": "<Tooltip> placement must be one of 'top' | 'bottom' | 'left' | 'right'."
315
338
  },
316
339
  {
317
- "selector": "JSXOpeningElement[name.name='MultiSelect'] > JSXAttribute > JSXIdentifier[name!=/^(?:options|value|placeholder|maxTags|disabled|width|onChange|style|key|ref|className|style|children)$/]",
318
- "message": "<MultiSelect> doesn't accept that prop. Declared props: options, value, placeholder, maxTags, disabled, width, onChange, style."
340
+ "selector": "JSXOpeningElement[name.name='MultiSelect'] > JSXAttribute > JSXIdentifier[name!=/^(?:options|value|placeholder|maxTags|disabled|width|size|onChange|style|key|ref|className|style|children)$/]",
341
+ "message": "<MultiSelect> doesn't accept that prop. Declared props: options, value, placeholder, maxTags, disabled, width, size, onChange, style."
342
+ },
343
+ {
344
+ "selector": "JSXOpeningElement[name.name='MultiSelect'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:sm|md|lg)$/]",
345
+ "message": "<MultiSelect> size must be one of 'sm' | 'md' | 'lg'."
319
346
  },
320
347
  {
321
348
  "selector": "JSXOpeningElement[name.name='NodeCard'] > JSXAttribute > JSXIdentifier[name!=/^(?:title|subtitle|icon|subtitleIcon|hue|selected|badge|inputs|output|showMenu|onClick|onMenu|onOutputDown|onInputUp|onInputEnter|onInputLeave|outputTone|inputTones|style|key|ref|className|style|children)$/]",
@@ -330,12 +357,20 @@
330
357
  "message": "<NodeCard> badge must be one of 'error' | 'warning' | 'clock'."
331
358
  },
332
359
  {
333
- "selector": "JSXOpeningElement[name.name='NumberStepper'] > JSXAttribute > JSXIdentifier[name!=/^(?:value|onChange|step|min|max|disabled|style|key|ref|className|style|children)$/]",
334
- "message": "<NumberStepper> doesn't accept that prop. Declared props: value, onChange, step, min, max, disabled, style."
360
+ "selector": "JSXOpeningElement[name.name='NumberStepper'] > JSXAttribute > JSXIdentifier[name!=/^(?:size|value|onChange|step|min|max|disabled|style|key|ref|className|style|children)$/]",
361
+ "message": "<NumberStepper> doesn't accept that prop. Declared props: size, value, onChange, step, min, max, disabled, style."
362
+ },
363
+ {
364
+ "selector": "JSXOpeningElement[name.name='NumberStepper'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:sm|md|lg)$/]",
365
+ "message": "<NumberStepper> size must be one of 'sm' | 'md' | 'lg'."
366
+ },
367
+ {
368
+ "selector": "JSXOpeningElement[name.name='Pagination'] > JSXAttribute > JSXIdentifier[name!=/^(?:page|pageCount|total|pageSize|size|format|onChange|style|key|ref|className|style|children)$/]",
369
+ "message": "<Pagination> doesn't accept that prop. Declared props: page, pageCount, total, pageSize, size, format, onChange, style."
335
370
  },
336
371
  {
337
- "selector": "JSXOpeningElement[name.name='Pagination'] > JSXAttribute > JSXIdentifier[name!=/^(?:page|pageCount|total|pageSize|onChange|style|key|ref|className|style|children)$/]",
338
- "message": "<Pagination> doesn't accept that prop. Declared props: page, pageCount, total, pageSize, onChange, style."
372
+ "selector": "JSXOpeningElement[name.name='Pagination'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:sm|md|lg)$/]",
373
+ "message": "<Pagination> size must be one of 'sm' | 'md' | 'lg'."
339
374
  },
340
375
  {
341
376
  "selector": "JSXOpeningElement[name.name='PaletteEntry'] > JSXAttribute > JSXIdentifier[name!=/^(?:label|icon|key|ref|className|style|children)$/]",
@@ -366,8 +401,8 @@
366
401
  "message": "<Radio> doesn't accept that prop. Declared props: checked, onChange, label, description, size, disabled, style."
367
402
  },
368
403
  {
369
- "selector": "JSXOpeningElement[name.name='Radio'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:sm|md)$/]",
370
- "message": "<Radio> size must be one of 'sm' | 'md'."
404
+ "selector": "JSXOpeningElement[name.name='Radio'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:sm|md|lg)$/]",
405
+ "message": "<Radio> size must be one of 'sm' | 'md' | 'lg'."
371
406
  },
372
407
  {
373
408
  "selector": "JSXOpeningElement[name.name='Ribbon3DSeries'] > JSXAttribute > JSXIdentifier[name!=/^(?:name|values|color|key|ref|className|style|children)$/]",
@@ -386,24 +421,28 @@
386
421
  "message": "<ScatterPoint> doesn't accept that prop. Declared props: x, y, r, label, series, color."
387
422
  },
388
423
  {
389
- "selector": "JSXOpeningElement[name.name='SearchInput'] > JSXAttribute > JSXIdentifier[name!=/^(?:placeholder|bare|value|onChange|disabled|style|key|ref|className|style|children)$/]",
390
- "message": "<SearchInput> doesn't accept that prop. Declared props: placeholder, bare, value, onChange, disabled, style."
424
+ "selector": "JSXOpeningElement[name.name='SearchInput'] > JSXAttribute > JSXIdentifier[name!=/^(?:placeholder|bare|size|value|onChange|disabled|style|key|ref|className|style|children)$/]",
425
+ "message": "<SearchInput> doesn't accept that prop. Declared props: placeholder, bare, size, value, onChange, disabled, style."
426
+ },
427
+ {
428
+ "selector": "JSXOpeningElement[name.name='SearchInput'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:sm|md|lg)$/]",
429
+ "message": "<SearchInput> size must be one of 'sm' | 'md' | 'lg'."
391
430
  },
392
431
  {
393
432
  "selector": "JSXOpeningElement[name.name='SegmentedControl'] > JSXAttribute > JSXIdentifier[name!=/^(?:options|value|onChange|size|iconOnly|disabled|fullWidth|style|key|ref|className|style|children)$/]",
394
433
  "message": "<SegmentedControl> doesn't accept that prop. Declared props: options, value, onChange, size, iconOnly, disabled, fullWidth, style."
395
434
  },
396
435
  {
397
- "selector": "JSXOpeningElement[name.name='SegmentedControl'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:sm|md)$/]",
398
- "message": "<SegmentedControl> size must be one of 'sm' | 'md'."
436
+ "selector": "JSXOpeningElement[name.name='SegmentedControl'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:sm|md|lg)$/]",
437
+ "message": "<SegmentedControl> size must be one of 'sm' | 'md' | 'lg'."
399
438
  },
400
439
  {
401
440
  "selector": "JSXOpeningElement[name.name='Select'] > JSXAttribute > JSXIdentifier[name!=/^(?:options|size|value|onChange|placeholder|disabled|error|style|key|ref|className|style|children)$/]",
402
441
  "message": "<Select> doesn't accept that prop. Declared props: options, size, value, onChange, placeholder, disabled, error, style."
403
442
  },
404
443
  {
405
- "selector": "JSXOpeningElement[name.name='Select'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:md|sm)$/]",
406
- "message": "<Select> size must be one of 'md' | 'sm'."
444
+ "selector": "JSXOpeningElement[name.name='Select'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:sm|md|lg)$/]",
445
+ "message": "<Select> size must be one of 'sm' | 'md' | 'lg'."
407
446
  },
408
447
  {
409
448
  "selector": "JSXOpeningElement[name.name='SidebarItem'] > JSXAttribute > JSXIdentifier[name!=/^(?:icon|label|children|open|key|ref|className|style|children)$/]",
@@ -438,8 +477,12 @@
438
477
  "message": "<Sparkline> tone must be one of 'default' | 'auto' | 'pos' | 'neg' | 'muted'."
439
478
  },
440
479
  {
441
- "selector": "JSXOpeningElement[name.name='Spreadsheet'] > JSXAttribute > JSXIdentifier[name!=/^(?:data|rows|cols|colWidths|defaultColWidth|currency|defaultActive|sheets|activeSheet|toolbar|formulaBar|statusBar|height|onChange|style|key|ref|className|style|children)$/]",
442
- "message": "<Spreadsheet> doesn't accept that prop. Declared props: data, rows, cols, colWidths, defaultColWidth, currency, defaultActive, sheets, activeSheet, toolbar, formulaBar, statusBar, height, onChange, style."
480
+ "selector": "JSXOpeningElement[name.name='Spreadsheet'] > JSXAttribute > JSXIdentifier[name!=/^(?:data|rows|cols|colWidths|defaultColWidth|currency|defaultActive|sheets|activeSheet|toolbar|formulaBar|statusBar|height|size|onChange|style|key|ref|className|style|children)$/]",
481
+ "message": "<Spreadsheet> doesn't accept that prop. Declared props: data, rows, cols, colWidths, defaultColWidth, currency, defaultActive, sheets, activeSheet, toolbar, formulaBar, statusBar, height, size, onChange, style."
482
+ },
483
+ {
484
+ "selector": "JSXOpeningElement[name.name='Spreadsheet'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:sm|md|lg)$/]",
485
+ "message": "<Spreadsheet> size must be one of 'sm' | 'md' | 'lg'."
443
486
  },
444
487
  {
445
488
  "selector": "JSXOpeningElement[name.name='Stepper'] > JSXAttribute > JSXIdentifier[name!=/^(?:steps|current|style|key|ref|className|style|children)$/]",
@@ -466,12 +509,28 @@
466
509
  "message": "<Switch> tone must be one of 'primary' | 'semantic'."
467
510
  },
468
511
  {
469
- "selector": "JSXOpeningElement[name.name='Tabs'] > JSXAttribute > JSXIdentifier[name!=/^(?:tabs|active|onChange|style|key|ref|className|style|children)$/]",
470
- "message": "<Tabs> doesn't accept that prop. Declared props: tabs, active, onChange, style."
512
+ "selector": "JSXOpeningElement[name.name='DataTableColumn'] > JSXAttribute > JSXIdentifier[name!=/^(?:key|label|width|minWidth|mono|align|render|key|ref|className|style|children)$/]",
513
+ "message": "<DataTableColumn> doesn't accept that prop. Declared props: key, label, width, minWidth, mono, align, render."
514
+ },
515
+ {
516
+ "selector": "JSXOpeningElement[name.name='DataTableColumn'] > JSXAttribute[name.name='align'] > Literal[value!=/^(?:left|right|center)$/]",
517
+ "message": "<DataTableColumn> align must be one of 'left' | 'right' | 'center'."
518
+ },
519
+ {
520
+ "selector": "JSXOpeningElement[name.name='Tabs'] > JSXAttribute > JSXIdentifier[name!=/^(?:tabs|active|onChange|size|style|key|ref|className|style|children)$/]",
521
+ "message": "<Tabs> doesn't accept that prop. Declared props: tabs, active, onChange, size, style."
471
522
  },
472
523
  {
473
- "selector": "JSXOpeningElement[name.name='Tag'] > JSXAttribute > JSXIdentifier[name!=/^(?:children|onRemove|tone|style|key|ref|className|style|children)$/]",
474
- "message": "<Tag> doesn't accept that prop. Declared props: children, onRemove, tone, style."
524
+ "selector": "JSXOpeningElement[name.name='Tabs'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:sm|md|lg)$/]",
525
+ "message": "<Tabs> size must be one of 'sm' | 'md' | 'lg'."
526
+ },
527
+ {
528
+ "selector": "JSXOpeningElement[name.name='Tag'] > JSXAttribute > JSXIdentifier[name!=/^(?:children|size|onRemove|tone|style|key|ref|className|style|children)$/]",
529
+ "message": "<Tag> doesn't accept that prop. Declared props: children, size, onRemove, tone, style."
530
+ },
531
+ {
532
+ "selector": "JSXOpeningElement[name.name='Tag'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:sm|md|lg)$/]",
533
+ "message": "<Tag> size must be one of 'sm' | 'md' | 'lg'."
475
534
  },
476
535
  {
477
536
  "selector": "JSXOpeningElement[name.name='Tag'] > JSXAttribute[name.name='tone'] > Literal[value!=/^(?:neutral|info)$/]",
@@ -502,13 +561,17 @@
502
561
  "message": "<Unicon> doesn't accept that prop. Declared props: name, size, color, className, style."
503
562
  },
504
563
  {
505
- "selector": "JSXOpeningElement[name.name='ViewToggle'] > JSXAttribute > JSXIdentifier[name!=/^(?:value|onChange|style|key|ref|className|style|children)$/]",
506
- "message": "<ViewToggle> doesn't accept that prop. Declared props: value, onChange, style."
564
+ "selector": "JSXOpeningElement[name.name='ViewToggle'] > JSXAttribute > JSXIdentifier[name!=/^(?:value|size|onChange|style|key|ref|className|style|children)$/]",
565
+ "message": "<ViewToggle> doesn't accept that prop. Declared props: value, size, onChange, style."
507
566
  },
508
567
  {
509
568
  "selector": "JSXOpeningElement[name.name='ViewToggle'] > JSXAttribute[name.name='value'] > Literal[value!=/^(?:list|grid)$/]",
510
569
  "message": "<ViewToggle> value must be one of 'list' | 'grid'."
511
570
  },
571
+ {
572
+ "selector": "JSXOpeningElement[name.name='ViewToggle'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:sm|md|lg)$/]",
573
+ "message": "<ViewToggle> size must be one of 'sm' | 'md' | 'lg'."
574
+ },
512
575
  {
513
576
  "selector": "JSXOpeningElement[name.name='WaterfallStep'] > JSXAttribute > JSXIdentifier[name!=/^(?:label|value|total|key|ref|className|style|children)$/]",
514
577
  "message": "<WaterfallStep> doesn't accept that prop. Declared props: label, value, total."
@@ -576,9 +639,6 @@
576
639
  "BoxGroup": {
577
640
  "replaces": []
578
641
  },
579
- "BrandVisual": {
580
- "replaces": []
581
- },
582
642
  "Breadcrumb": {
583
643
  "replaces": []
584
644
  },
@@ -618,9 +678,6 @@
618
678
  "DataPreview": {
619
679
  "replaces": []
620
680
  },
621
- "DataTableColumn": {
622
- "replaces": []
623
- },
624
681
  "DatePicker": {
625
682
  "replaces": []
626
683
  },
@@ -771,6 +828,9 @@
771
828
  "Switch": {
772
829
  "replaces": []
773
830
  },
831
+ "DataTableColumn": {
832
+ "replaces": []
833
+ },
774
834
  "Tabs": {
775
835
  "replaces": []
776
836
  },
@@ -824,6 +884,8 @@
824
884
  "--amber-800",
825
885
  "--amber-900",
826
886
  "--amber-950",
887
+ "--bar-card-h",
888
+ "--bar-h",
827
889
  "--bg-active",
828
890
  "--bg-app",
829
891
  "--bg-hover",
@@ -832,6 +894,7 @@
832
894
  "--bg-raised",
833
895
  "--bg-scrim",
834
896
  "--bg-surface",
897
+ "--bg-table-header",
835
898
  "--blue-100",
836
899
  "--blue-200",
837
900
  "--blue-300",
@@ -864,6 +927,7 @@
864
927
  "--cat-source-bg",
865
928
  "--cat-transform",
866
929
  "--cat-transform-bg",
930
+ "--cell-px",
867
931
  "--chart-area-alpha",
868
932
  "--chart-axis",
869
933
  "--chart-blue",
@@ -880,7 +944,15 @@
880
944
  "--chart-pos",
881
945
  "--chart-total",
882
946
  "--chart-track",
947
+ "--check-size",
883
948
  "--checkbox-border",
949
+ "--control-gap",
950
+ "--control-h",
951
+ "--control-icon",
952
+ "--control-leading",
953
+ "--control-px",
954
+ "--control-text",
955
+ "--control-tracking",
884
956
  "--cyan-100",
885
957
  "--cyan-200",
886
958
  "--cyan-300",
@@ -896,6 +968,7 @@
896
968
  "--danger-active",
897
969
  "--danger-bg",
898
970
  "--danger-soft-active",
971
+ "--danger-soft-hover",
899
972
  "--danger-text",
900
973
  "--dot-neutral",
901
974
  "--drawer-h",
@@ -910,6 +983,7 @@
910
983
  "--ease-in-out",
911
984
  "--ease-out",
912
985
  "--edge",
986
+ "--edge-pad",
913
987
  "--emerald-100",
914
988
  "--emerald-200",
915
989
  "--emerald-300",
@@ -925,6 +999,7 @@
925
999
  "--focus-ring",
926
1000
  "--font-mono",
927
1001
  "--font-sans",
1002
+ "--group-gap",
928
1003
  "--h-button",
929
1004
  "--h-button-sm",
930
1005
  "--h-input",
@@ -1079,8 +1154,11 @@
1079
1154
  "--success-bg",
1080
1155
  "--success-strong",
1081
1156
  "--success-text",
1157
+ "--switch-h",
1158
+ "--switch-w",
1082
1159
  "--t-hover",
1083
1160
  "--t-theme",
1161
+ "--tag-h",
1084
1162
  "--teal-100",
1085
1163
  "--teal-200",
1086
1164
  "--teal-300",
@@ -1188,6 +1266,7 @@
1188
1266
  "--bg-surface": "color",
1189
1267
  "--bg-raised": "color",
1190
1268
  "--bg-inset": "color",
1269
+ "--bg-table-header": "color",
1191
1270
  "--bg-hover": "color",
1192
1271
  "--bg-active": "color",
1193
1272
  "--bg-scrim": "color",
@@ -1213,6 +1292,7 @@
1213
1292
  "--bg-press": "color",
1214
1293
  "--soft-active": "color",
1215
1294
  "--danger-active": "color",
1295
+ "--danger-soft-hover": "color",
1216
1296
  "--danger-soft-active": "color",
1217
1297
  "--focus-ring": "color",
1218
1298
  "--focus-border": "color",
@@ -1422,12 +1502,28 @@
1422
1502
  "--topbar-h": "spacing",
1423
1503
  "--panel-w": "spacing",
1424
1504
  "--drawer-h": "spacing",
1425
- "--h-button": "spacing",
1426
- "--h-button-sm": "spacing",
1427
- "--h-input": "spacing",
1428
1505
  "--h-nav-item": "spacing",
1429
1506
  "--h-subnav-item": "spacing",
1430
1507
  "--h-tree-item": "spacing",
1508
+ "--control-h": "spacing",
1509
+ "--control-text": "font",
1510
+ "--control-leading": "font",
1511
+ "--control-tracking": "font",
1512
+ "--control-icon": "spacing",
1513
+ "--control-px": "spacing",
1514
+ "--control-gap": "spacing",
1515
+ "--group-gap": "spacing",
1516
+ "--bar-h": "spacing",
1517
+ "--bar-card-h": "spacing",
1518
+ "--edge-pad": "spacing",
1519
+ "--cell-px": "spacing",
1520
+ "--check-size": "spacing",
1521
+ "--tag-h": "spacing",
1522
+ "--switch-w": "spacing",
1523
+ "--switch-h": "spacing",
1524
+ "--h-button": "color",
1525
+ "--h-input": "color",
1526
+ "--h-button-sm": "spacing",
1431
1527
  "--page-pad-y": "spacing",
1432
1528
  "--page-pad-x": "spacing",
1433
1529
  "--section-gap": "spacing",
@@ -41,6 +41,12 @@ let vue = `/* Generated barrel — do not edit by hand. Run: node scripts/build-
41
41
  Vue 3 single-file components; your bundler needs @vitejs/plugin-vue or vue-loader. */\n`;
42
42
  let nExports = 0, nVue = 0;
43
43
 
44
+ /* Deprecated aliases kept in the React barrel until their removal release. A rename leaves the
45
+ old name here so regenerating the barrel never drops it silently. */
46
+ const ALIASES = {
47
+ 'data/Table.jsx': [{ from: 'Table', as: 'DataTable', note: 'renamed to Table in 1.0.6 — still exported in 2.x, removed in 3.0' }],
48
+ };
49
+
44
50
  for (const dir of dirs) {
45
51
  const files = readdirSync(join(componentsDir, dir)).sort();
46
52
  const jsx = files.filter(f => f.endsWith('.jsx'));
@@ -50,6 +56,9 @@ for (const dir of dirs) {
50
56
  const names = exportsOf(readFileSync(join(componentsDir, dir, f), 'utf8'));
51
57
  if (!names.length) continue;
52
58
  lines.push(`export { ${names.join(', ')} } from "./${dir}/${f}";`);
59
+ for (const a of ALIASES[`${dir}/${f}`] || []) {
60
+ lines.push(`/** @deprecated ${a.note} */`, `export { ${a.from} as ${a.as} } from "./${dir}/${f}";`);
61
+ }
53
62
  nExports += names.length;
54
63
  if (files.includes(f.replace(/\.jsx$/, '.d.ts'))) typeLines.push(`export * from "./${dir}/${f.replace(/\.jsx$/, '')}";`);
55
64
  }
@@ -29,10 +29,13 @@ function splitMedia(css) {
29
29
  return { rest: out, dark: darkChunks.join('\n') };
30
30
  }
31
31
 
32
- function collect(css, into, group, file) {
32
+ /** Only `:root` blocks define a token's light value: size-tier ([data-size]) and language (:lang) rules in the same
33
+ files re-point tokens for a region and must not be read as the default. */
34
+ function collect(css, into, group, file, rootOnly = false) {
33
35
  const rule = /([^{}]+)\{([^{}]*)\}/g;
34
36
  let m;
35
37
  while ((m = rule.exec(css))) {
38
+ if (rootOnly && m[1].trim() !== ':root') continue;
36
39
  const decl = /--([a-z0-9-]+)\s*:\s*([^;}]+)/gi;
37
40
  let d;
38
41
  while ((d = decl.exec(m[2]))) {
@@ -49,7 +52,7 @@ for (const f of readdirSync(tokensDir).filter(f => f.endsWith('.css')).sort()) {
49
52
  const { rest, dark } = splitMedia(css);
50
53
  const g = f.replace(/\.css$/, '');
51
54
  const themed = rest.match(/\[data-theme="dark"\][^{]*\{[^{}]*\}/g) || [];
52
- collect(rest.replace(/\[data-theme="dark"\][^{]*\{[^{}]*\}/g, ''), raw.light, group, g);
55
+ collect(rest.replace(/\[data-theme="dark"\][^{]*\{[^{}]*\}/g, ''), raw.light, group, g, true);
53
56
  collect(themed.join('\n'), raw.dark, group, g);
54
57
  collect(dark, raw.dark, group, g);
55
58
  }