@sanity/ui 4.0.0-static.9 → 5.0.0-alpha.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 (808) hide show
  1. package/README.md +201 -17
  2. package/bin/sanity-ui.js +14 -0
  3. package/dist/_chunks-es/LazyRefractor.js +20 -0
  4. package/dist/_chunks-es/LazyRefractor.js.map +1 -0
  5. package/dist/cli/checks.js +148 -0
  6. package/dist/cli/config.js +23 -0
  7. package/dist/cli/detect.js +181 -0
  8. package/dist/cli/doctor.js +49 -0
  9. package/dist/cli/index.js +69 -0
  10. package/dist/cli/init.js +189 -0
  11. package/dist/cli/install.js +78 -0
  12. package/dist/cli/log.js +66 -0
  13. package/dist/cli/selfPackage.js +11 -0
  14. package/dist/cli/styles.js +185 -0
  15. package/dist/cli/test-utils.js +8 -0
  16. package/dist/cli/tsconfig.js +236 -0
  17. package/dist/cli/types.js +1 -0
  18. package/dist/cli/versions.js +45 -0
  19. package/dist/index.d.ts +744 -2272
  20. package/dist/index.js +1743 -4395
  21. package/dist/index.js.map +1 -1
  22. package/dist/styles.css +1 -0
  23. package/package.json +66 -206
  24. package/src/cli/checks.test.ts +38 -0
  25. package/src/cli/checks.ts +200 -0
  26. package/src/cli/config.ts +44 -0
  27. package/src/cli/detect.test.ts +191 -0
  28. package/src/cli/detect.ts +205 -0
  29. package/src/cli/doctor.test.ts +52 -0
  30. package/src/cli/doctor.ts +65 -0
  31. package/src/cli/index.ts +77 -0
  32. package/src/cli/init.ts +225 -0
  33. package/src/cli/install.test.ts +52 -0
  34. package/src/cli/install.ts +107 -0
  35. package/src/cli/log.ts +79 -0
  36. package/src/cli/selfPackage.ts +14 -0
  37. package/src/cli/styles.test.ts +130 -0
  38. package/src/cli/styles.ts +205 -0
  39. package/src/cli/test-utils.ts +10 -0
  40. package/src/cli/tsconfig.test.ts +174 -0
  41. package/src/cli/tsconfig.ts +282 -0
  42. package/src/cli/types.ts +77 -0
  43. package/src/cli/versions.test.ts +35 -0
  44. package/src/cli/versions.ts +41 -0
  45. package/src/components/box/Box.tsx +25 -0
  46. package/src/components/box/box.css +4 -0
  47. package/src/components/box/box.props.ts +24 -0
  48. package/src/components/button/Button.tsx +78 -0
  49. package/src/components/button/button.css +72 -0
  50. package/src/components/button/button.props.ts +104 -0
  51. package/src/components/card/Card.tsx +31 -0
  52. package/src/components/card/card.css +4 -0
  53. package/src/components/card/card.props.ts +54 -0
  54. package/src/components/checkbox/Checkbox.tsx +63 -0
  55. package/src/components/checkbox/checkbox.css +100 -0
  56. package/src/components/checkbox/checkbox.props.ts +25 -0
  57. package/src/components/code/Code.tsx +38 -0
  58. package/src/components/code/LazyRefractor.tsx +9 -0
  59. package/src/components/code/code.css +40 -0
  60. package/src/components/code/code.props.ts +37 -0
  61. package/src/components/container/Container.tsx +30 -0
  62. package/src/components/container/container.css +4 -0
  63. package/src/components/container/container.props.ts +24 -0
  64. package/src/components/divider/Divider.tsx +23 -0
  65. package/src/components/divider/divider.props.ts +9 -0
  66. package/src/components/eyebrow/Eyebrow.tsx +54 -0
  67. package/src/components/eyebrow/eyebrow.css +11 -0
  68. package/src/components/eyebrow/eyebrow.props.ts +24 -0
  69. package/src/components/flex/Flex.tsx +25 -0
  70. package/src/components/flex/flex.css +4 -0
  71. package/src/components/flex/flex.props.ts +29 -0
  72. package/src/components/grid/Grid.tsx +25 -0
  73. package/src/components/grid/grid.css +4 -0
  74. package/src/components/grid/grid.props.ts +29 -0
  75. package/src/components/h-stack/HStack.tsx +34 -0
  76. package/src/components/h-stack/hStack.props.ts +15 -0
  77. package/src/components/heading/Heading.tsx +54 -0
  78. package/src/components/heading/heading.css +9 -0
  79. package/src/components/heading/heading.props.ts +25 -0
  80. package/src/components/icon/Icon.tsx +24 -0
  81. package/src/components/icon/icon.css +17 -0
  82. package/src/components/icon/icon.props.ts +31 -0
  83. package/src/components/icon-button/IconButton.tsx +32 -0
  84. package/src/components/icon-button/iconButton.props.ts +26 -0
  85. package/src/components/index.css +25 -0
  86. package/src/components/indicator/Indicator.tsx +42 -0
  87. package/src/components/indicator/indicator.css +4 -0
  88. package/src/components/indicator/indicator.props.ts +20 -0
  89. package/src/components/indicator-stack/IndicatorStack.tsx +31 -0
  90. package/src/components/indicator-stack/indicator-stack.css +7 -0
  91. package/src/components/indicator-stack/indicatorStack.props.ts +13 -0
  92. package/src/components/inline/Inline.tsx +38 -0
  93. package/src/components/inline/inline.css +4 -0
  94. package/src/components/inline/inline.props.ts +96 -0
  95. package/src/components/label/Label.tsx +34 -0
  96. package/src/components/label/label.css +3 -0
  97. package/src/components/label/label.props.ts +19 -0
  98. package/src/components/link/Link.tsx +29 -0
  99. package/src/components/link/link.css +12 -0
  100. package/src/components/link/link.props.ts +23 -0
  101. package/src/components/list/List.tsx +167 -0
  102. package/src/components/list/list.css +25 -0
  103. package/src/components/list/list.props.ts +112 -0
  104. package/src/components/press-area/PressArea.tsx +29 -0
  105. package/src/components/press-area/press-area.css +22 -0
  106. package/src/components/press-area/pressArea.props.ts +14 -0
  107. package/src/components/radio/Radio.tsx +48 -0
  108. package/src/components/radio/radio.css +97 -0
  109. package/src/components/radio/radio.props.ts +20 -0
  110. package/src/components/skip-to-content/SkipToContent.tsx +35 -0
  111. package/src/components/skip-to-content/skip-to-content.css +9 -0
  112. package/src/components/skip-to-content/skipToContent.props.ts +19 -0
  113. package/src/components/spinner/Spinner.tsx +28 -0
  114. package/src/components/spinner/spinner.css +10 -0
  115. package/src/components/spinner/spinner.props.ts +16 -0
  116. package/src/components/switch/Switch.tsx +48 -0
  117. package/src/components/switch/switch.css +119 -0
  118. package/src/components/switch/switch.props.ts +20 -0
  119. package/src/components/text/Text.tsx +53 -0
  120. package/src/components/text/text.css +9 -0
  121. package/src/components/text/text.props.ts +24 -0
  122. package/src/components/tooltip/Tooltip.tsx +93 -0
  123. package/src/components/tooltip/tooltip.css +52 -0
  124. package/src/components/tooltip/tooltip.props.ts +20 -0
  125. package/src/components/tooltip-group/TooltipGroup.tsx +67 -0
  126. package/src/components/tooltip-group/tooltipGroup.props.ts +13 -0
  127. package/src/components/v-stack/VStack.tsx +32 -0
  128. package/src/components/v-stack/vStack.props.ts +15 -0
  129. package/src/components/visually-hidden/VisuallyHidden.tsx +29 -0
  130. package/src/components/visually-hidden/visually-hidden.css +9 -0
  131. package/src/components/visually-hidden/visuallyHidden.props.ts +19 -0
  132. package/src/css/classes/dynamic/flex-child.css +5 -0
  133. package/src/css/classes/dynamic/grid-child.css +8 -0
  134. package/src/css/classes/dynamic/grid-parent.css +6 -0
  135. package/src/css/classes/dynamic/height.css +5 -0
  136. package/src/css/classes/dynamic/index.css +7 -0
  137. package/src/css/classes/dynamic/line-clamp.css +5 -0
  138. package/src/css/classes/dynamic/readme.md +3 -0
  139. package/src/css/classes/dynamic/width.css +7 -0
  140. package/src/css/classes/dynamic/z-index.css +3 -0
  141. package/src/css/classes/generic/display.css +10 -0
  142. package/src/css/classes/generic/flex.css +24 -0
  143. package/src/css/classes/generic/grid.css +7 -0
  144. package/src/css/classes/generic/index.css +7 -0
  145. package/src/css/classes/generic/overflow.css +19 -0
  146. package/src/css/classes/generic/placement.css +171 -0
  147. package/src/css/classes/generic/position.css +7 -0
  148. package/src/css/classes/generic/readme.md +3 -0
  149. package/src/css/classes/generic/text-align.css +5 -0
  150. package/src/css/classes/index.css +4 -0
  151. package/src/css/classes/local/border.css +20 -0
  152. package/src/css/classes/local/index.css +4 -0
  153. package/src/css/classes/local/readme.md +3 -0
  154. package/src/css/classes/local/text-overflow.css +5 -0
  155. package/src/css/classes/local/text-trim.css +45 -0
  156. package/src/css/classes/local/tone.css +75 -0
  157. package/src/css/classes/system/color.css +223 -0
  158. package/src/css/classes/system/container.css +8 -0
  159. package/src/css/classes/system/font-family.css +2 -0
  160. package/src/css/classes/system/font-weight.css +4 -0
  161. package/src/css/classes/system/gap.css +37 -0
  162. package/src/css/classes/system/index.css +10 -0
  163. package/src/css/classes/system/inset.css +56 -0
  164. package/src/css/classes/system/margin.css +148 -0
  165. package/src/css/classes/system/padding.css +78 -0
  166. package/src/css/classes/system/radius.css +10 -0
  167. package/src/css/classes/system/readme.md +3 -0
  168. package/src/css/classes/system/shadow.css +6 -0
  169. package/src/css/classes/system/typography.css +31 -0
  170. package/src/css/global/font-face.css +20 -0
  171. package/src/css/global/index.css +2 -0
  172. package/src/css/global/reset.css +74 -0
  173. package/src/css/tokens/index.css +3 -0
  174. package/src/css/tokens/opacity.css +6 -0
  175. package/src/css/tokens/semantic.css +21 -0
  176. package/src/css/tokens/surface.css +27 -0
  177. package/src/index.css +18 -0
  178. package/src/index.ts +60 -0
  179. package/src/props/border.ts +51 -0
  180. package/src/props/flexChild.ts +29 -0
  181. package/src/props/flexParent.ts +47 -0
  182. package/src/props/gap.ts +31 -0
  183. package/src/props/gridChild.ts +50 -0
  184. package/src/props/gridParent.ts +45 -0
  185. package/src/props/height.ts +29 -0
  186. package/src/props/layout.ts +44 -0
  187. package/src/props/margin.ts +59 -0
  188. package/src/props/overflow.ts +30 -0
  189. package/src/props/padding.ts +59 -0
  190. package/src/props/placement.ts +16 -0
  191. package/src/props/position.ts +52 -0
  192. package/src/props/shadow.ts +15 -0
  193. package/src/props/tone.ts +15 -0
  194. package/src/props/typography.ts +62 -0
  195. package/src/props/width.ts +29 -0
  196. package/src/props/zIndex.ts +15 -0
  197. package/src/styles.css.d.ts +1 -0
  198. package/src/styles.css.node.js +2 -0
  199. package/src/styles.css.test.ts +24 -0
  200. package/src/types/Button.ts +8 -0
  201. package/src/types/Code.ts +6 -0
  202. package/src/types/Container.ts +3 -0
  203. package/src/types/Density.ts +3 -0
  204. package/src/types/Display.ts +11 -0
  205. package/src/types/Eyebrow.ts +3 -0
  206. package/src/types/Flex.ts +22 -0
  207. package/src/types/FontWeight.ts +3 -0
  208. package/src/types/Grid.ts +3 -0
  209. package/src/types/Heading.ts +6 -0
  210. package/src/types/Icon.ts +3 -0
  211. package/src/types/Interactive.ts +8 -0
  212. package/src/types/List.ts +2 -0
  213. package/src/types/Overflow.ts +3 -0
  214. package/src/types/Placement.ts +16 -0
  215. package/src/types/Position.ts +3 -0
  216. package/src/types/PropDef.ts +73 -0
  217. package/src/types/Radius.ts +3 -0
  218. package/src/types/Responsive.ts +10 -0
  219. package/src/types/Shadow.ts +3 -0
  220. package/src/types/Space.ts +15 -0
  221. package/src/types/Text.ts +3 -0
  222. package/src/types/TextAlign.ts +3 -0
  223. package/src/types/Tone.ts +3 -0
  224. package/src/utils/getProps.test.ts +156 -0
  225. package/src/utils/getProps.ts +156 -0
  226. package/src/utils/suffixClassName.ts +5 -0
  227. package/src/version.ts +3 -0
  228. package/LICENSE +0 -21
  229. package/dist/_chunks-cjs/refractor.cjs +0 -22
  230. package/dist/_chunks-cjs/refractor.cjs.map +0 -1
  231. package/dist/_chunks-es/refractor.js +0 -25
  232. package/dist/_chunks-es/refractor.js.map +0 -1
  233. package/dist/css/index.cjs +0 -966
  234. package/dist/css/index.cjs.map +0 -1
  235. package/dist/css/index.css +0 -23387
  236. package/dist/css/index.css.map +0 -1
  237. package/dist/css/index.d.cts +0 -1394
  238. package/dist/css/index.d.ts +0 -1394
  239. package/dist/css/index.js +0 -967
  240. package/dist/css/index.js.map +0 -1
  241. package/dist/index.cjs +0 -4515
  242. package/dist/index.cjs.map +0 -1
  243. package/dist/index.d.cts +0 -2521
  244. package/dist/theme.cjs +0 -870
  245. package/dist/theme.cjs.map +0 -1
  246. package/dist/theme.d.cts +0 -499
  247. package/dist/theme.d.ts +0 -499
  248. package/dist/theme.js +0 -870
  249. package/dist/theme.js.map +0 -1
  250. package/exports/css.ts +0 -1
  251. package/exports/index.ts +0 -1
  252. package/exports/theme.ts +0 -1
  253. package/src/core/Root.tsx +0 -88
  254. package/src/core/RootProvider.tsx +0 -40
  255. package/src/core/__workshop__/boundary.tsx +0 -28
  256. package/src/core/__workshop__/index.ts +0 -16
  257. package/src/core/components/autocomplete/__workshop__/async.tsx +0 -156
  258. package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +0 -131
  259. package/src/core/components/autocomplete/__workshop__/custom.tsx +0 -91
  260. package/src/core/components/autocomplete/__workshop__/example.tsx +0 -80
  261. package/src/core/components/autocomplete/__workshop__/focusAndBlur.tsx +0 -36
  262. package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +0 -292
  263. package/src/core/components/autocomplete/__workshop__/index.ts +0 -41
  264. package/src/core/components/autocomplete/__workshop__/mock/apiStore.ts +0 -49
  265. package/src/core/components/autocomplete/__workshop__/mock/countries.ts +0 -245
  266. package/src/core/components/autocomplete/__workshop__/types.ts +0 -4
  267. package/src/core/components/autocomplete/autocomplete.tsx +0 -690
  268. package/src/core/components/autocomplete/autocompleteOption.tsx +0 -45
  269. package/src/core/components/autocomplete/autocompleteReducer.ts +0 -47
  270. package/src/core/components/autocomplete/constants.ts +0 -28
  271. package/src/core/components/autocomplete/types.ts +0 -103
  272. package/src/core/components/breadcrumbs/__workshop__/example.tsx +0 -61
  273. package/src/core/components/breadcrumbs/__workshop__/index.ts +0 -16
  274. package/src/core/components/breadcrumbs/breadcrumbs.tsx +0 -131
  275. package/src/core/components/dialog/__workshop__/activate.tsx +0 -141
  276. package/src/core/components/dialog/__workshop__/autoFocus.tsx +0 -29
  277. package/src/core/components/dialog/__workshop__/index.ts +0 -21
  278. package/src/core/components/dialog/__workshop__/layering.tsx +0 -41
  279. package/src/core/components/dialog/__workshop__/nested.tsx +0 -71
  280. package/src/core/components/dialog/__workshop__/onScroll.tsx +0 -51
  281. package/src/core/components/dialog/__workshop__/panes.tsx +0 -89
  282. package/src/core/components/dialog/__workshop__/position.tsx +0 -30
  283. package/src/core/components/dialog/__workshop__/props.tsx +0 -77
  284. package/src/core/components/dialog/__workshop__/provider.tsx +0 -11
  285. package/src/core/components/dialog/__workshop__/wrapped.tsx +0 -76
  286. package/src/core/components/dialog/dialog.tsx +0 -232
  287. package/src/core/components/dialog/dialogCard.tsx +0 -233
  288. package/src/core/components/dialog/dialogContext.ts +0 -21
  289. package/src/core/components/dialog/dialogProvider.tsx +0 -34
  290. package/src/core/components/dialog/isTargetWithinScope.ts +0 -14
  291. package/src/core/components/dialog/types.ts +0 -2
  292. package/src/core/components/dialog/useDialog.ts +0 -11
  293. package/src/core/components/hotkeys/__workshop__/index.ts +0 -16
  294. package/src/core/components/hotkeys/__workshop__/plain.tsx +0 -9
  295. package/src/core/components/hotkeys/hotkeys.tsx +0 -60
  296. package/src/core/components/menu/__workshop__/asComponent.tsx +0 -45
  297. package/src/core/components/menu/__workshop__/avatarMenu.tsx +0 -57
  298. package/src/core/components/menu/__workshop__/closableMenuButton.tsx +0 -47
  299. package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +0 -133
  300. package/src/core/components/menu/__workshop__/customMenuItem.tsx +0 -45
  301. package/src/core/components/menu/__workshop__/customSelectedState.tsx +0 -35
  302. package/src/core/components/menu/__workshop__/disableFocusOnClose.tsx +0 -40
  303. package/src/core/components/menu/__workshop__/groups.tsx +0 -156
  304. package/src/core/components/menu/__workshop__/index.ts +0 -91
  305. package/src/core/components/menu/__workshop__/menuButton.tsx +0 -80
  306. package/src/core/components/menu/__workshop__/menuGroupRight.tsx +0 -65
  307. package/src/core/components/menu/__workshop__/nestedMenu.tsx +0 -22
  308. package/src/core/components/menu/__workshop__/onCloseMenuButton.tsx +0 -50
  309. package/src/core/components/menu/__workshop__/selectedItem.tsx +0 -69
  310. package/src/core/components/menu/__workshop__/shouldFocus.tsx +0 -42
  311. package/src/core/components/menu/__workshop__/tones.tsx +0 -25
  312. package/src/core/components/menu/__workshop__/withoutArrow.tsx +0 -32
  313. package/src/core/components/menu/helpers.ts +0 -82
  314. package/src/core/components/menu/menu.test.tsx +0 -129
  315. package/src/core/components/menu/menu.tsx +0 -179
  316. package/src/core/components/menu/menuButton.tsx +0 -225
  317. package/src/core/components/menu/menuContext.ts +0 -19
  318. package/src/core/components/menu/menuDivider.tsx +0 -32
  319. package/src/core/components/menu/menuGroup.tsx +0 -233
  320. package/src/core/components/menu/menuItem.tsx +0 -184
  321. package/src/core/components/menu/useMenu.ts +0 -21
  322. package/src/core/components/menu/useMenuController.ts +0 -241
  323. package/src/core/components/tab/__workshop__/example.tsx +0 -79
  324. package/src/core/components/tab/__workshop__/index.ts +0 -16
  325. package/src/core/components/tab/tab.tsx +0 -109
  326. package/src/core/components/tab/tabList.tsx +0 -90
  327. package/src/core/components/tab/tabPanel.tsx +0 -47
  328. package/src/core/components/toast/__workshop__/hook.tsx +0 -71
  329. package/src/core/components/toast/__workshop__/index.ts +0 -21
  330. package/src/core/components/toast/__workshop__/toast.tsx +0 -26
  331. package/src/core/components/toast/toast.test.tsx +0 -103
  332. package/src/core/components/toast/toast.tsx +0 -191
  333. package/src/core/components/toast/toastContext.ts +0 -7
  334. package/src/core/components/toast/toastLayer.tsx +0 -54
  335. package/src/core/components/toast/toastProvider.tsx +0 -112
  336. package/src/core/components/toast/toastState.ts +0 -6
  337. package/src/core/components/toast/types.ts +0 -24
  338. package/src/core/components/toast/useToast.ts +0 -23
  339. package/src/core/components/tree/__workshop__/basic.perf.ts +0 -19
  340. package/src/core/components/tree/__workshop__/basic.tsx +0 -105
  341. package/src/core/components/tree/__workshop__/index.ts +0 -23
  342. package/src/core/components/tree/__workshop__/tabFromElement.tsx +0 -84
  343. package/src/core/components/tree/helpers.ts +0 -105
  344. package/src/core/components/tree/tree.tsx +0 -248
  345. package/src/core/components/tree/treeContext.ts +0 -10
  346. package/src/core/components/tree/treeGroup.tsx +0 -46
  347. package/src/core/components/tree/treeItem.tsx +0 -237
  348. package/src/core/components/tree/types.ts +0 -24
  349. package/src/core/components/tree/useTree.ts +0 -17
  350. package/src/core/components/virtualList/__workshop__/changingProps.tsx +0 -36
  351. package/src/core/components/virtualList/__workshop__/elementScroll.tsx +0 -24
  352. package/src/core/components/virtualList/__workshop__/index.ts +0 -31
  353. package/src/core/components/virtualList/__workshop__/infiniteList.tsx +0 -48
  354. package/src/core/components/virtualList/__workshop__/windowScrolll.tsx +0 -22
  355. package/src/core/components/virtualList/virtualList.tsx +0 -209
  356. package/src/core/constants.ts +0 -67
  357. package/src/core/helpers/animation.ts +0 -27
  358. package/src/core/helpers/element.ts +0 -55
  359. package/src/core/helpers/focus.ts +0 -92
  360. package/src/core/helpers/props.ts +0 -28
  361. package/src/core/helpers/scroll.ts +0 -15
  362. package/src/core/hooks/useClickOutsideEvent.test.tsx +0 -114
  363. package/src/core/hooks/useClickOutsideEvent.ts +0 -67
  364. package/src/core/hooks/useCustomValidity.ts +0 -13
  365. package/src/core/hooks/useDelayed.test.ts +0 -67
  366. package/src/core/hooks/useDelayedState.ts +0 -28
  367. package/src/core/hooks/useElementSize.ts +0 -19
  368. package/src/core/hooks/useGlobalKeyDown.ts +0 -17
  369. package/src/core/hooks/useMatchMedia.ts +0 -28
  370. package/src/core/hooks/useMediaIndex/__workshop__/index.ts +0 -16
  371. package/src/core/hooks/useMediaIndex/__workshop__/test.tsx +0 -14
  372. package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +0 -21
  373. package/src/core/hooks/useMediaIndex/useMediaIndex.ts +0 -107
  374. package/src/core/hooks/useMounted.ts +0 -15
  375. package/src/core/hooks/usePrefersDark.hydration.test.tsx +0 -56
  376. package/src/core/hooks/usePrefersDark.test.tsx +0 -20
  377. package/src/core/hooks/usePrefersDark.ts +0 -16
  378. package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -56
  379. package/src/core/hooks/usePrefersReducedMotion.test.tsx +0 -20
  380. package/src/core/hooks/usePrefersReducedMotion.ts +0 -16
  381. package/src/core/hooks/useResponsiveProp.ts +0 -28
  382. package/src/core/index.ts +0 -115
  383. package/src/core/lib/createGlobalScopedContext.ts +0 -37
  384. package/src/core/lib/globalScope.ts +0 -19
  385. package/src/core/lib/isArray.ts +0 -3
  386. package/src/core/lib/isRecord.ts +0 -3
  387. package/src/core/middleware/origin.ts +0 -47
  388. package/src/core/observers/elementSize.ts +0 -116
  389. package/src/core/observers/resize.ts +0 -9
  390. package/src/core/primitives/arrow/arrow.tsx +0 -74
  391. package/src/core/primitives/arrow/cmds.ts +0 -91
  392. package/src/core/primitives/avatar/__workshop__/asButton.tsx +0 -14
  393. package/src/core/primitives/avatar/__workshop__/index.ts +0 -31
  394. package/src/core/primitives/avatar/__workshop__/stack.tsx +0 -25
  395. package/src/core/primitives/avatar/__workshop__/withinButton.tsx +0 -55
  396. package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +0 -72
  397. package/src/core/primitives/avatar/avatar.tsx +0 -147
  398. package/src/core/primitives/avatar/avatarCounter.tsx +0 -69
  399. package/src/core/primitives/avatar/avatarStack.tsx +0 -79
  400. package/src/core/primitives/avatar/types.ts +0 -2
  401. package/src/core/primitives/badge/__workshop__/index.ts +0 -21
  402. package/src/core/primitives/badge/__workshop__/props.tsx +0 -19
  403. package/src/core/primitives/badge/__workshop__/tones.tsx +0 -16
  404. package/src/core/primitives/badge/badge.test.tsx +0 -16
  405. package/src/core/primitives/badge/badge.tsx +0 -61
  406. package/src/core/primitives/box/__workshop__/index.ts +0 -21
  407. package/src/core/primitives/box/__workshop__/props.tsx +0 -20
  408. package/src/core/primitives/box/__workshop__/responsive.tsx +0 -20
  409. package/src/core/primitives/box/box.tsx +0 -222
  410. package/src/core/primitives/button/__workshop__/custom.tsx +0 -27
  411. package/src/core/primitives/button/__workshop__/customIcons.tsx +0 -30
  412. package/src/core/primitives/button/__workshop__/disabled.tsx +0 -54
  413. package/src/core/primitives/button/__workshop__/index.ts +0 -66
  414. package/src/core/primitives/button/__workshop__/mixedChildren.tsx +0 -12
  415. package/src/core/primitives/button/__workshop__/props.tsx +0 -55
  416. package/src/core/primitives/button/__workshop__/sanityUploadButton.tsx +0 -36
  417. package/src/core/primitives/button/__workshop__/stacked.tsx +0 -58
  418. package/src/core/primitives/button/__workshop__/styled1.tsx +0 -17
  419. package/src/core/primitives/button/__workshop__/styled2.tsx +0 -19
  420. package/src/core/primitives/button/__workshop__/textOverflow.tsx +0 -13
  421. package/src/core/primitives/button/__workshop__/uploadButton.tsx +0 -29
  422. package/src/core/primitives/button/button.test.tsx +0 -30
  423. package/src/core/primitives/button/button.tsx +0 -193
  424. package/src/core/primitives/button/types.ts +0 -2
  425. package/src/core/primitives/card/__workshop__/asButton.tsx +0 -107
  426. package/src/core/primitives/card/__workshop__/asComponent.tsx +0 -27
  427. package/src/core/primitives/card/__workshop__/checkered.tsx +0 -26
  428. package/src/core/primitives/card/__workshop__/index.ts +0 -20
  429. package/src/core/primitives/card/__workshop__/interactive.tsx +0 -29
  430. package/src/core/primitives/card/__workshop__/listNavigation.tsx +0 -78
  431. package/src/core/primitives/card/__workshop__/props.tsx +0 -52
  432. package/src/core/primitives/card/__workshop__/selected.tsx +0 -62
  433. package/src/core/primitives/card/__workshop__/styled.tsx +0 -14
  434. package/src/core/primitives/card/__workshop__/tones.tsx +0 -27
  435. package/src/core/primitives/card/card.tsx +0 -109
  436. package/src/core/primitives/card/cardContext.ts +0 -10
  437. package/src/core/primitives/card/cardProvider.tsx +0 -27
  438. package/src/core/primitives/card/types.ts +0 -17
  439. package/src/core/primitives/card/useCard.ts +0 -15
  440. package/src/core/primitives/checkbox/__workshop__/example.tsx +0 -25
  441. package/src/core/primitives/checkbox/__workshop__/index.ts +0 -15
  442. package/src/core/primitives/checkbox/__workshop__/props.tsx +0 -35
  443. package/src/core/primitives/checkbox/__workshop__/readOnly.tsx +0 -16
  444. package/src/core/primitives/checkbox/__workshop__/tones.tsx +0 -27
  445. package/src/core/primitives/checkbox/checkbox.tsx +0 -80
  446. package/src/core/primitives/code/__workshop__/index.ts +0 -21
  447. package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +0 -23
  448. package/src/core/primitives/code/__workshop__/props.tsx +0 -18
  449. package/src/core/primitives/code/code.tsx +0 -48
  450. package/src/core/primitives/code/refractor.tsx +0 -18
  451. package/src/core/primitives/container/__workshop__/example.tsx +0 -20
  452. package/src/core/primitives/container/__workshop__/index.ts +0 -10
  453. package/src/core/primitives/container/container.tsx +0 -37
  454. package/src/core/primitives/container/types.ts +0 -6
  455. package/src/core/primitives/flex/__workshop__/example.tsx +0 -34
  456. package/src/core/primitives/flex/__workshop__/gap.tsx +0 -25
  457. package/src/core/primitives/flex/__workshop__/index.ts +0 -13
  458. package/src/core/primitives/flex/flex.tsx +0 -58
  459. package/src/core/primitives/grid/__workshop__/index.ts +0 -12
  460. package/src/core/primitives/grid/__workshop__/responsive.tsx +0 -54
  461. package/src/core/primitives/grid/grid.tsx +0 -35
  462. package/src/core/primitives/heading/__workshop__/index.ts +0 -21
  463. package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +0 -54
  464. package/src/core/primitives/heading/__workshop__/plain.tsx +0 -29
  465. package/src/core/primitives/heading/heading.tsx +0 -78
  466. package/src/core/primitives/inline/__workshop__/index.ts +0 -10
  467. package/src/core/primitives/inline/__workshop__/plain.tsx +0 -24
  468. package/src/core/primitives/inline/inline.tsx +0 -62
  469. package/src/core/primitives/kbd/__workshop__/index.ts +0 -10
  470. package/src/core/primitives/kbd/__workshop__/plain.tsx +0 -9
  471. package/src/core/primitives/kbd/kbd.tsx +0 -57
  472. package/src/core/primitives/label/__workshop__/index.ts +0 -21
  473. package/src/core/primitives/label/__workshop__/opticalAlignment.tsx +0 -54
  474. package/src/core/primitives/label/__workshop__/plain.tsx +0 -28
  475. package/src/core/primitives/label/label.tsx +0 -75
  476. package/src/core/primitives/layer/__workshop__/_debug.tsx +0 -17
  477. package/src/core/primitives/layer/__workshop__/index.ts +0 -26
  478. package/src/core/primitives/layer/__workshop__/multipleRoots.tsx +0 -49
  479. package/src/core/primitives/layer/__workshop__/nested.tsx +0 -98
  480. package/src/core/primitives/layer/__workshop__/responsiveZOffset.tsx +0 -17
  481. package/src/core/primitives/layer/getLayerContext.test.ts +0 -32
  482. package/src/core/primitives/layer/getLayerContext.ts +0 -21
  483. package/src/core/primitives/layer/layer.test.tsx +0 -110
  484. package/src/core/primitives/layer/layer.tsx +0 -42
  485. package/src/core/primitives/layer/layerCard.tsx +0 -90
  486. package/src/core/primitives/layer/layerContext.ts +0 -7
  487. package/src/core/primitives/layer/layerProvider.tsx +0 -106
  488. package/src/core/primitives/layer/types.ts +0 -9
  489. package/src/core/primitives/layer/useLayer.ts +0 -24
  490. package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +0 -77
  491. package/src/core/primitives/popover/__workshop__/MarginsStory.tsx +0 -31
  492. package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -32
  493. package/src/core/primitives/popover/__workshop__/OpenOnMountStory.tsx +0 -11
  494. package/src/core/primitives/popover/__workshop__/PlainStory.tsx +0 -71
  495. package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +0 -69
  496. package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +0 -96
  497. package/src/core/primitives/popover/__workshop__/TestStory.tsx +0 -100
  498. package/src/core/primitives/popover/__workshop__/index.ts +0 -51
  499. package/src/core/primitives/popover/constants.ts +0 -22
  500. package/src/core/primitives/popover/floating-ui/size.ts +0 -83
  501. package/src/core/primitives/popover/helpers.ts +0 -32
  502. package/src/core/primitives/popover/popover.tsx +0 -443
  503. package/src/core/primitives/popover/popoverLayer.tsx +0 -149
  504. package/src/core/primitives/popover/types.ts +0 -12
  505. package/src/core/primitives/radio/__workshop__/example.tsx +0 -63
  506. package/src/core/primitives/radio/__workshop__/index.ts +0 -13
  507. package/src/core/primitives/radio/__workshop__/plain.tsx +0 -28
  508. package/src/core/primitives/radio/radio.tsx +0 -64
  509. package/src/core/primitives/select/__workshop__/index.ts +0 -13
  510. package/src/core/primitives/select/__workshop__/plain.tsx +0 -39
  511. package/src/core/primitives/select/__workshop__/readOnly.tsx +0 -23
  512. package/src/core/primitives/select/select.tsx +0 -75
  513. package/src/core/primitives/selectable/selectable.tsx +0 -50
  514. package/src/core/primitives/skeleton/__workshop__/delay.tsx +0 -70
  515. package/src/core/primitives/skeleton/__workshop__/index.ts +0 -13
  516. package/src/core/primitives/skeleton/__workshop__/skeleton.tsx +0 -64
  517. package/src/core/primitives/skeleton/codeSkeleton.tsx +0 -49
  518. package/src/core/primitives/skeleton/headingSkeleton.tsx +0 -48
  519. package/src/core/primitives/skeleton/labelSkeleton.tsx +0 -47
  520. package/src/core/primitives/skeleton/skeleton.tsx +0 -70
  521. package/src/core/primitives/skeleton/textSkeleton.tsx +0 -49
  522. package/src/core/primitives/spinner/__workshop__/Props.tsx +0 -15
  523. package/src/core/primitives/spinner/__workshop__/index.ts +0 -16
  524. package/src/core/primitives/spinner/animatedSpinnerIcon.tsx +0 -14
  525. package/src/core/primitives/spinner/spinner.tsx +0 -45
  526. package/src/core/primitives/srOnly/srOnly.tsx +0 -33
  527. package/src/core/primitives/stack/__workshop__/index.ts +0 -16
  528. package/src/core/primitives/stack/__workshop__/plain.tsx +0 -32
  529. package/src/core/primitives/stack/stack.tsx +0 -60
  530. package/src/core/primitives/switch/__workshop__/example.tsx +0 -23
  531. package/src/core/primitives/switch/__workshop__/index.ts +0 -13
  532. package/src/core/primitives/switch/__workshop__/props.tsx +0 -21
  533. package/src/core/primitives/switch/switch.tsx +0 -84
  534. package/src/core/primitives/text/__workshop__/colored.tsx +0 -23
  535. package/src/core/primitives/text/__workshop__/example.tsx +0 -28
  536. package/src/core/primitives/text/__workshop__/index.ts +0 -26
  537. package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +0 -23
  538. package/src/core/primitives/text/text.tsx +0 -76
  539. package/src/core/primitives/textArea/__workshop__/index.ts +0 -16
  540. package/src/core/primitives/textArea/__workshop__/plain.tsx +0 -61
  541. package/src/core/primitives/textArea/textArea.tsx +0 -84
  542. package/src/core/primitives/textInput/__workshop__/clearButton.tsx +0 -30
  543. package/src/core/primitives/textInput/__workshop__/customValidity.tsx +0 -17
  544. package/src/core/primitives/textInput/__workshop__/index.ts +0 -46
  545. package/src/core/primitives/textInput/__workshop__/plain.tsx +0 -110
  546. package/src/core/primitives/textInput/__workshop__/readOnly.tsx +0 -9
  547. package/src/core/primitives/textInput/__workshop__/states.tsx +0 -53
  548. package/src/core/primitives/textInput/__workshop__/tones.tsx +0 -277
  549. package/src/core/primitives/textInput/__workshop__/typed.tsx +0 -23
  550. package/src/core/primitives/textInput/textInput.tsx +0 -258
  551. package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +0 -102
  552. package/src/core/primitives/tooltip/__workshop__/index.ts +0 -31
  553. package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +0 -74
  554. package/src/core/primitives/tooltip/__workshop__/props.tsx +0 -112
  555. package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +0 -86
  556. package/src/core/primitives/tooltip/constants.ts +0 -23
  557. package/src/core/primitives/tooltip/tooltip.test.tsx +0 -452
  558. package/src/core/primitives/tooltip/tooltip.tsx +0 -482
  559. package/src/core/primitives/tooltip/tooltipDelayGroup/index.ts +0 -4
  560. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +0 -13
  561. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +0 -55
  562. package/src/core/primitives/tooltip/tooltipDelayGroup/types.ts +0 -10
  563. package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +0 -13
  564. package/src/core/primitives/tooltip/tooltipLayer.tsx +0 -106
  565. package/src/core/types.ts +0 -56
  566. package/src/core/utils/boundaryElement/__workshop__/index.ts +0 -16
  567. package/src/core/utils/boundaryElement/__workshop__/plain.tsx +0 -19
  568. package/src/core/utils/boundaryElement/boundaryElement.test.tsx +0 -102
  569. package/src/core/utils/boundaryElement/boundaryElementContext.ts +0 -10
  570. package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +0 -18
  571. package/src/core/utils/boundaryElement/types.ts +0 -5
  572. package/src/core/utils/boundaryElement/useBoundaryElement.ts +0 -24
  573. package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +0 -41
  574. package/src/core/utils/elementQuery/__workshop__/index.ts +0 -16
  575. package/src/core/utils/elementQuery/elementQuery.tsx +0 -75
  576. package/src/core/utils/elementQuery/helpers.ts +0 -27
  577. package/src/core/utils/errorBoundary.tsx +0 -50
  578. package/src/core/utils/getElementRef.ts +0 -29
  579. package/src/core/utils/portal/__workshop__/index.ts +0 -16
  580. package/src/core/utils/portal/__workshop__/named.tsx +0 -63
  581. package/src/core/utils/portal/portal.test.tsx +0 -105
  582. package/src/core/utils/portal/portal.tsx +0 -36
  583. package/src/core/utils/portal/portalContext.ts +0 -37
  584. package/src/core/utils/portal/portalProvider.tsx +0 -70
  585. package/src/core/utils/portal/types.ts +0 -7
  586. package/src/core/utils/portal/usePortal.ts +0 -23
  587. package/src/css/_assign.ts +0 -3
  588. package/src/css/_composeClassNames.ts +0 -12
  589. package/src/css/_fromEntries.ts +0 -3
  590. package/src/css/_getClassNames.ts +0 -9
  591. package/src/css/_responsiveClassName.ts +0 -45
  592. package/src/css/_responsiveStyle.css.ts +0 -34
  593. package/src/css/_style.css.ts +0 -9
  594. package/src/css/components/breadcrumbs/breadcrumbs.css.ts +0 -6
  595. package/src/css/components/breadcrumbs/breadcrumbs.ts +0 -7
  596. package/src/css/components/dialog/dialog.css.ts +0 -98
  597. package/src/css/components/dialog/dialog.ts +0 -58
  598. package/src/css/components/menu/menu.css.ts +0 -14
  599. package/src/css/components/menu/menu.ts +0 -12
  600. package/src/css/components/skeleton/skeleton.css.ts +0 -128
  601. package/src/css/components/skeleton/skeleton.ts +0 -38
  602. package/src/css/components/skeleton/types.ts +0 -36
  603. package/src/css/components/toast/toast.css.ts +0 -17
  604. package/src/css/components/toast/toast.ts +0 -11
  605. package/src/css/components/tree/tree.css.ts +0 -65
  606. package/src/css/components/tree/tree.ts +0 -7
  607. package/src/css/constants.ts +0 -10
  608. package/src/css/getVarName.ts +0 -27
  609. package/src/css/index.ts +0 -146
  610. package/src/css/layers.css.ts +0 -12
  611. package/src/css/primitives/_arrow/_arrow.css.ts +0 -68
  612. package/src/css/primitives/_arrow/_arrow.ts +0 -26
  613. package/src/css/primitives/_input/_input.css.ts +0 -261
  614. package/src/css/primitives/_input/input.ts +0 -29
  615. package/src/css/primitives/_input/types.ts +0 -13
  616. package/src/css/primitives/avatar/avatar.css.ts +0 -201
  617. package/src/css/primitives/avatar/avatar.ts +0 -68
  618. package/src/css/primitives/avatar/types.ts +0 -10
  619. package/src/css/primitives/badge/badge.css.ts +0 -27
  620. package/src/css/primitives/badge/badge.ts +0 -8
  621. package/src/css/primitives/badge/types.ts +0 -13
  622. package/src/css/primitives/box/box.css.ts +0 -19
  623. package/src/css/primitives/box/box.ts +0 -82
  624. package/src/css/primitives/box/types.ts +0 -75
  625. package/src/css/primitives/button/button.css.ts +0 -287
  626. package/src/css/primitives/button/button.ts +0 -26
  627. package/src/css/primitives/button/types.ts +0 -12
  628. package/src/css/primitives/card/__workshop__/color.tsx +0 -75
  629. package/src/css/primitives/card/__workshop__/index.ts +0 -16
  630. package/src/css/primitives/card/card.css.ts +0 -387
  631. package/src/css/primitives/card/card.ts +0 -13
  632. package/src/css/primitives/card/types.ts +0 -9
  633. package/src/css/primitives/checkbox/checkbox.css.ts +0 -193
  634. package/src/css/primitives/checkbox/checkbox.ts +0 -17
  635. package/src/css/primitives/code/code.css.ts +0 -272
  636. package/src/css/primitives/code/code.ts +0 -19
  637. package/src/css/primitives/code/types.ts +0 -11
  638. package/src/css/primitives/container/container.css.ts +0 -4
  639. package/src/css/primitives/container/container.ts +0 -17
  640. package/src/css/primitives/container/types.ts +0 -9
  641. package/src/css/primitives/heading/heading.css.ts +0 -86
  642. package/src/css/primitives/heading/heading.ts +0 -22
  643. package/src/css/primitives/heading/types.ts +0 -14
  644. package/src/css/primitives/kbd/kbd.css.ts +0 -16
  645. package/src/css/primitives/kbd/kbd.ts +0 -9
  646. package/src/css/primitives/kbd/types.ts +0 -6
  647. package/src/css/primitives/label/label.css.ts +0 -87
  648. package/src/css/primitives/label/label.ts +0 -22
  649. package/src/css/primitives/label/types.ts +0 -14
  650. package/src/css/primitives/popover/popover.css.ts +0 -6
  651. package/src/css/primitives/popover/popover.ts +0 -12
  652. package/src/css/primitives/radio/radio.css.ts +0 -78
  653. package/src/css/primitives/radio/radio.ts +0 -17
  654. package/src/css/primitives/root/root.css.ts +0 -19
  655. package/src/css/primitives/root/root.ts +0 -17
  656. package/src/css/primitives/root/types.ts +0 -10
  657. package/src/css/primitives/select/select.css.ts +0 -24
  658. package/src/css/primitives/select/select.ts +0 -14
  659. package/src/css/primitives/select/types.ts +0 -5
  660. package/src/css/primitives/selectable/selectable.css.ts +0 -131
  661. package/src/css/primitives/selectable/selectable.ts +0 -9
  662. package/src/css/primitives/selectable/types.ts +0 -9
  663. package/src/css/primitives/spinner/spinner.css.ts +0 -19
  664. package/src/css/primitives/spinner/spinner.ts +0 -13
  665. package/src/css/primitives/spinner/types.ts +0 -4
  666. package/src/css/primitives/srOnly/srOnly.css.ts +0 -10
  667. package/src/css/primitives/srOnly/srOnly.ts +0 -7
  668. package/src/css/primitives/stack/stack.css.ts +0 -6
  669. package/src/css/primitives/stack/stack.ts +0 -7
  670. package/src/css/primitives/switch/switch.css.ts +0 -98
  671. package/src/css/primitives/switch/switch.ts +0 -27
  672. package/src/css/primitives/text/text.css.ts +0 -86
  673. package/src/css/primitives/text/text.ts +0 -24
  674. package/src/css/primitives/text/types.ts +0 -18
  675. package/src/css/primitives/textArea/textArea.css.ts +0 -4
  676. package/src/css/primitives/textArea/textArea.ts +0 -9
  677. package/src/css/primitives/textArea/types.ts +0 -7
  678. package/src/css/primitives/textInput/textInput.css.ts +0 -43
  679. package/src/css/primitives/textInput/textInput.ts +0 -24
  680. package/src/css/primitives/textInput/types.ts +0 -7
  681. package/src/css/primitives/tooltip/tooltip.css.ts +0 -4
  682. package/src/css/primitives/tooltip/tooltip.ts +0 -8
  683. package/src/css/primitives/tooltip/types.ts +0 -4
  684. package/src/css/props/alignItems/alignItems.css.ts +0 -22
  685. package/src/css/props/alignItems/alignItems.ts +0 -8
  686. package/src/css/props/alignItems/types.ts +0 -9
  687. package/src/css/props/border/border.css.ts +0 -65
  688. package/src/css/props/border/border.ts +0 -21
  689. package/src/css/props/border/types.ts +0 -13
  690. package/src/css/props/boxSizing/boxSizing.css.ts +0 -12
  691. package/src/css/props/boxSizing/boxSizing.ts +0 -7
  692. package/src/css/props/boxSizing/types.ts +0 -7
  693. package/src/css/props/display/display.css.ts +0 -56
  694. package/src/css/props/display/display.ts +0 -8
  695. package/src/css/props/display/types.ts +0 -16
  696. package/src/css/props/flex/flex.css.ts +0 -52
  697. package/src/css/props/flex/flex.ts +0 -8
  698. package/src/css/props/flex/types.ts +0 -9
  699. package/src/css/props/flexDirection/flexDirection.css.ts +0 -19
  700. package/src/css/props/flexDirection/flexDirection.ts +0 -8
  701. package/src/css/props/flexDirection/types.ts +0 -9
  702. package/src/css/props/flexWrap/flexWrap.css.ts +0 -16
  703. package/src/css/props/flexWrap/flexWrap.ts +0 -8
  704. package/src/css/props/flexWrap/types.ts +0 -9
  705. package/src/css/props/font/font.css.ts +0 -94
  706. package/src/css/props/font/font.ts +0 -8
  707. package/src/css/props/font/types.ts +0 -6
  708. package/src/css/props/gap/gap.css.ts +0 -40
  709. package/src/css/props/gap/gap.ts +0 -13
  710. package/src/css/props/gap/types.ts +0 -10
  711. package/src/css/props/gridAutoColumns/gridAutoColumns.css.ts +0 -19
  712. package/src/css/props/gridAutoColumns/gridAutoColumns.ts +0 -8
  713. package/src/css/props/gridAutoColumns/types.ts +0 -9
  714. package/src/css/props/gridAutoFlow/gridAutoFlow.css.ts +0 -19
  715. package/src/css/props/gridAutoFlow/gridAutoFlow.ts +0 -8
  716. package/src/css/props/gridAutoFlow/types.ts +0 -9
  717. package/src/css/props/gridAutoRows/gridAutoRows.css.ts +0 -19
  718. package/src/css/props/gridAutoRows/gridAutoRows.ts +0 -8
  719. package/src/css/props/gridAutoRows/types.ts +0 -9
  720. package/src/css/props/gridColumn/gridColumn.css.ts +0 -49
  721. package/src/css/props/gridColumn/gridColumn.ts +0 -8
  722. package/src/css/props/gridColumn/types.ts +0 -9
  723. package/src/css/props/gridColumnEnd/gridColumnEnd.css.ts +0 -46
  724. package/src/css/props/gridColumnEnd/gridColumnEnd.ts +0 -8
  725. package/src/css/props/gridColumnEnd/types.ts +0 -9
  726. package/src/css/props/gridColumnStart/gridColumnStart.css.ts +0 -46
  727. package/src/css/props/gridColumnStart/gridColumnStart.ts +0 -8
  728. package/src/css/props/gridColumnStart/types.ts +0 -9
  729. package/src/css/props/gridRow/gridRow.css.ts +0 -49
  730. package/src/css/props/gridRow/gridRow.ts +0 -8
  731. package/src/css/props/gridRow/types.ts +0 -9
  732. package/src/css/props/gridRowEnd/gridRowEnd.css.ts +0 -46
  733. package/src/css/props/gridRowEnd/gridRowEnd.ts +0 -8
  734. package/src/css/props/gridRowEnd/types.ts +0 -9
  735. package/src/css/props/gridRowStart/gridRowStart.css.ts +0 -46
  736. package/src/css/props/gridRowStart/gridRowStart.ts +0 -8
  737. package/src/css/props/gridRowStart/types.ts +0 -9
  738. package/src/css/props/gridTemplateColumns/gridTemplateColumns.css.ts +0 -43
  739. package/src/css/props/gridTemplateColumns/gridTemplateColumns.ts +0 -8
  740. package/src/css/props/gridTemplateColumns/types.ts +0 -9
  741. package/src/css/props/gridTemplateRows/gridTemplateRows.css.ts +0 -43
  742. package/src/css/props/gridTemplateRows/gridTemplateRows.ts +0 -8
  743. package/src/css/props/gridTemplateRows/types.ts +0 -9
  744. package/src/css/props/height/height.css.ts +0 -25
  745. package/src/css/props/height/height.ts +0 -8
  746. package/src/css/props/height/types.ts +0 -9
  747. package/src/css/props/inset/inset.css.ts +0 -37
  748. package/src/css/props/inset/inset.ts +0 -21
  749. package/src/css/props/inset/types.ts +0 -13
  750. package/src/css/props/justifyContent/justifyContent.css.ts +0 -25
  751. package/src/css/props/justifyContent/justifyContent.ts +0 -8
  752. package/src/css/props/justifyContent/types.ts +0 -15
  753. package/src/css/props/margin/margin.css.ts +0 -117
  754. package/src/css/props/margin/margin.ts +0 -25
  755. package/src/css/props/margin/types.ts +0 -17
  756. package/src/css/props/maxWidth/maxWidth.css.ts +0 -32
  757. package/src/css/props/maxWidth/maxWidth.ts +0 -8
  758. package/src/css/props/maxWidth/types.ts +0 -11
  759. package/src/css/props/minHeight/minHeight.css.ts +0 -13
  760. package/src/css/props/minHeight/minHeight.ts +0 -8
  761. package/src/css/props/minHeight/types.ts +0 -9
  762. package/src/css/props/minWidth/minWidth.css.ts +0 -25
  763. package/src/css/props/minWidth/minWidth.ts +0 -8
  764. package/src/css/props/minWidth/types.ts +0 -9
  765. package/src/css/props/outline/outline.css.ts +0 -10
  766. package/src/css/props/outline/outline.ts +0 -8
  767. package/src/css/props/outline/types.ts +0 -7
  768. package/src/css/props/overflow/overflow.css.ts +0 -16
  769. package/src/css/props/overflow/overflow.ts +0 -8
  770. package/src/css/props/overflow/types.ts +0 -11
  771. package/src/css/props/padding/padding.css.ts +0 -87
  772. package/src/css/props/padding/padding.ts +0 -25
  773. package/src/css/props/padding/types.ts +0 -17
  774. package/src/css/props/pointerEvents/pointerEvents.css.ts +0 -13
  775. package/src/css/props/pointerEvents/pointerEvents.ts +0 -8
  776. package/src/css/props/pointerEvents/types.ts +0 -7
  777. package/src/css/props/position/position.css.ts +0 -22
  778. package/src/css/props/position/position.ts +0 -8
  779. package/src/css/props/position/types.ts +0 -9
  780. package/src/css/props/radius/radius.css.ts +0 -21
  781. package/src/css/props/radius/radius.ts +0 -8
  782. package/src/css/props/radius/types.ts +0 -8
  783. package/src/css/props/shadow/shadow.css.ts +0 -23
  784. package/src/css/props/shadow/shadow.ts +0 -8
  785. package/src/css/props/shadow/types.ts +0 -8
  786. package/src/css/props/textAlign/textAlign.css.ts +0 -22
  787. package/src/css/props/textAlign/textAlign.ts +0 -8
  788. package/src/css/props/textAlign/types.ts +0 -7
  789. package/src/css/props/textOverflow/textOverflow.css.ts +0 -19
  790. package/src/css/props/textOverflow/textOverflow.ts +0 -8
  791. package/src/css/props/textOverflow/types.ts +0 -12
  792. package/src/css/props/width/types.ts +0 -11
  793. package/src/css/props/width/width.css.ts +0 -31
  794. package/src/css/props/width/width.ts +0 -8
  795. package/src/css/theme/buildCSSTheme.ts +0 -488
  796. package/src/css/theme/defaultTheme.css.ts +0 -64
  797. package/src/css/types.ts +0 -427
  798. package/src/css/vars.css.ts +0 -676
  799. package/src/theme/_parseColorToken.ts +0 -180
  800. package/src/theme/buildTheme.ts +0 -32
  801. package/src/theme/constants.ts +0 -90
  802. package/src/theme/defaults/color.ts +0 -197
  803. package/src/theme/defaults/common.ts +0 -71
  804. package/src/theme/defaults/fonts.ts +0 -250
  805. package/src/theme/index.ts +0 -5
  806. package/src/theme/merge.ts +0 -24
  807. package/src/theme/resolveTokens.ts +0 -204
  808. package/src/theme/types.ts +0 -366
@@ -0,0 +1,15 @@
1
+ import type {PropDef} from '../types/PropDef'
2
+ import type {Responsive} from '../types/Responsive'
3
+
4
+ export type ZIndexProps = {
5
+ /** CSS z-index property */
6
+ zIndex?: Responsive<number>
7
+ }
8
+
9
+ export const zIndexProps: Record<string, PropDef> = {
10
+ zIndex: {
11
+ type: 'number',
12
+ className: 'z-index',
13
+ variable: '--z-index',
14
+ },
15
+ }
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ // No-op shim for `styles.css` in runtimes that do not import `.css` file
2
+ export default ''
@@ -0,0 +1,24 @@
1
+ import {existsSync} from 'node:fs'
2
+ import {createRequire} from 'node:module'
3
+ import {dirname, join} from 'node:path'
4
+
5
+ import {describe, expect, it} from 'vitest'
6
+
7
+ const require = createRequire(import.meta.url)
8
+
9
+ describe('@sanity/ui/styles.css', () => {
10
+ it('resolves to a Node-safe shim under the node condition', () => {
11
+ const path = require.resolve('@sanity/ui/styles.css')
12
+ expect(path).toMatch(/styles\.css\.node\.js$/)
13
+ })
14
+
15
+ it('imports without throwing in Node ESM', async () => {
16
+ const mod = await import('@sanity/ui/styles.css')
17
+ expect(mod.default).toBe('')
18
+ })
19
+
20
+ it('ships the real stylesheet for browser/style resolution', () => {
21
+ const pkgRoot = dirname(require.resolve('@sanity/ui/package.json'))
22
+ expect(existsSync(join(pkgRoot, 'dist/styles.css'))).toBe(true)
23
+ })
24
+ })
@@ -0,0 +1,8 @@
1
+ export const BUTTON_DENSITY = ['regular', 'loose'] as const
2
+ export type ButtonDensity = (typeof BUTTON_DENSITY)[number]
3
+
4
+ export const BUTTON_LEVEL = ['primary', 'secondary', 'tertiary'] as const
5
+ export type ButtonLevel = (typeof BUTTON_LEVEL)[number]
6
+
7
+ export const BUTTON_TONE = ['neutral', 'critical'] as const
8
+ export type ButtonTone = (typeof BUTTON_TONE)[number]
@@ -0,0 +1,6 @@
1
+ export const CODE_TAG = ['pre', 'span'] as const
2
+ export type CodeTag = (typeof CODE_TAG)[number]
3
+
4
+ export const CODE_SIZE = [0, 1, 2, 3, 4] as const
5
+ /** @public */
6
+ export type CodeSize = (typeof CODE_SIZE)[number]
@@ -0,0 +1,3 @@
1
+ export const CONTAINER_SIZE = [0, 1, 2, 3, 4, 5] as const
2
+ /** @public */
3
+ export type ContainerSize = (typeof CONTAINER_SIZE)[number]
@@ -0,0 +1,3 @@
1
+ export const DENSITY = ['compact', 'regular', 'loose'] as const
2
+ /** @public */
3
+ export type Density = (typeof DENSITY)[number]
@@ -0,0 +1,11 @@
1
+ export const DISPLAY_BLOCK = ['block', 'inline-block', 'none'] as const
2
+ /** @public */
3
+ export type DisplayBlock = (typeof DISPLAY_BLOCK)[number]
4
+
5
+ export const DISPLAY_FLEX = ['flex', 'inline-flex', 'none'] as const
6
+ /** @public */
7
+ export type DisplayFlex = (typeof DISPLAY_FLEX)[number]
8
+
9
+ export const DISPLAY_GRID = ['grid', 'inline-grid', 'none'] as const
10
+ /** @public */
11
+ export type DisplayGrid = (typeof DISPLAY_GRID)[number]
@@ -0,0 +1,3 @@
1
+ export const EYEBROW_SIZE = [0, 1, 2, 3, 4] as const
2
+ /** @public */
3
+ export type EyebrowSize = (typeof EYEBROW_SIZE)[number]
@@ -0,0 +1,22 @@
1
+ export const ALIGN_ITEMS = ['baseline', 'center', 'flex-end', 'flex-start', 'stretch'] as const
2
+ /** @public */
3
+ export type AlignItems = (typeof ALIGN_ITEMS)[number]
4
+
5
+ export const JUSTIFY_CONTENT = [
6
+ 'flex-start',
7
+ 'flex-end',
8
+ 'center',
9
+ 'space-between',
10
+ 'space-around',
11
+ 'space-evenly',
12
+ ] as const
13
+ /** @public */
14
+ export type JustifyContent = (typeof JUSTIFY_CONTENT)[number]
15
+
16
+ export const FLEX_DIRECTION = ['row', 'row-reverse', 'column', 'column-reverse'] as const
17
+ /** @public */
18
+ export type FlexDirection = (typeof FLEX_DIRECTION)[number]
19
+
20
+ export const FLEX_WRAP = ['wrap', 'wrap-reverse', 'nowrap'] as const
21
+ /** @public */
22
+ export type FlexWrap = (typeof FLEX_WRAP)[number]
@@ -0,0 +1,3 @@
1
+ export const FONT_WEIGHT = ['regular', 'medium', 'semibold', 'bold'] as const
2
+ /** @public */
3
+ export type FontWeight = (typeof FONT_WEIGHT)[number]
@@ -0,0 +1,3 @@
1
+ export const GRID_AUTO_FLOW = ['row', 'column', 'row dense', 'column dense', 'dense'] as const
2
+ /** @public */
3
+ export type GridAutoFlow = (typeof GRID_AUTO_FLOW)[number]
@@ -0,0 +1,6 @@
1
+ export const HEADING_TAG = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] as const
2
+ export type HeadingTag = (typeof HEADING_TAG)[number]
3
+
4
+ export const HEADING_SIZE = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] as const
5
+ /** @public */
6
+ export type HeadingSize = (typeof HEADING_SIZE)[number]
@@ -0,0 +1,3 @@
1
+ export const ICON_SIZE = [0, 1, 2, 3, 4] as const
2
+ /** @public */
3
+ export type IconSize = (typeof ICON_SIZE)[number]
@@ -0,0 +1,8 @@
1
+ export const INTERACTIVE_TAG = ['button', 'a'] as const
2
+ export type InteractiveTag = (typeof INTERACTIVE_TAG)[number]
3
+
4
+ export type InteractiveAs<T extends React.ElementType> = T extends InteractiveTag
5
+ ? T
6
+ : T extends string
7
+ ? never
8
+ : T
@@ -0,0 +1,2 @@
1
+ export const LIST_TAG = ['ol', 'ul'] as const
2
+ export type ListTag = (typeof LIST_TAG)[number]
@@ -0,0 +1,3 @@
1
+ export const OVERFLOW = ['visible', 'hidden', 'auto', 'scroll', 'clip'] as const
2
+ /** @public */
3
+ export type Overflow = (typeof OVERFLOW)[number]
@@ -0,0 +1,16 @@
1
+ export const PLACEMENT = [
2
+ 'top',
3
+ 'top-start',
4
+ 'top-end',
5
+ 'right',
6
+ 'right-start',
7
+ 'right-end',
8
+ 'bottom',
9
+ 'bottom-start',
10
+ 'bottom-end',
11
+ 'left',
12
+ 'left-start',
13
+ 'left-end',
14
+ ] as const
15
+ /** @public */
16
+ export type Placement = (typeof PLACEMENT)[number]
@@ -0,0 +1,3 @@
1
+ export const POSITION = ['absolute', 'fixed', 'relative', 'static', 'sticky'] as const
2
+ /** @public */
3
+ export type Position = (typeof POSITION)[number]
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Prop is a boolean. If used for styling, provide a className
3
+ * to apply CSS and an inverseClassName to reset it.
4
+ */
5
+ type BooleanPropDef = {
6
+ type: 'boolean'
7
+ className?: string
8
+ inverseClassName?: string
9
+ }
10
+
11
+ /**
12
+ * Prop is a number. If used for styling, provide a className
13
+ * that references the variable for dynamic values.
14
+ */
15
+ type NumberPropDef = {
16
+ type: 'number'
17
+ className?: string
18
+ variable?: string
19
+ }
20
+
21
+ /**
22
+ * Prop is a string. If used for styling, provide a className
23
+ * that references the variable for dynamic values.
24
+ */
25
+ type StringPropDef = {
26
+ type: 'string'
27
+ className?: string
28
+ variable?: string
29
+ }
30
+
31
+ /**
32
+ * Prop is a union of values. Values are always required. If
33
+ * used for styling, provide a className.
34
+ */
35
+ type UnionPropDef<T> = {
36
+ type: 'union'
37
+ className?: string
38
+ values: readonly T[]
39
+ }
40
+
41
+ /**
42
+ * Prop is a composite of other props. Requires a union of values and
43
+ * a composition object which defines the props and their mappings.
44
+ * The values should map to the composition object's mapping keys.
45
+ */
46
+ type CompositePropDef<T> = {
47
+ type: 'composite'
48
+ values: readonly T[]
49
+ composition: Record<
50
+ string,
51
+ {
52
+ propDef: PropDef
53
+ mapping: Record<T & PropertyKey, unknown>
54
+ }
55
+ >
56
+ }
57
+
58
+ /**
59
+ * Prop is a composite of other props. Requires a resolve callback with
60
+ * a value param that returns another prop def.
61
+ */
62
+ type ConditionalPropDef<T> = {
63
+ type: 'conditional'
64
+ resolve: (value: T) => PropDef<T>
65
+ }
66
+
67
+ export type PropDef<T = unknown> =
68
+ | BooleanPropDef
69
+ | NumberPropDef
70
+ | StringPropDef
71
+ | UnionPropDef<T>
72
+ | CompositePropDef<T>
73
+ | ConditionalPropDef<T>
@@ -0,0 +1,3 @@
1
+ export const RADIUS = [0, 1, 2, 3, 4, 5, 6, 'full'] as const
2
+ /** @public */
3
+ export type Radius = (typeof RADIUS)[number]
@@ -0,0 +1,10 @@
1
+ /** @public */
2
+ export type Responsive<T> =
3
+ | T
4
+ | []
5
+ | ([T | undefined | null, ...(T | undefined | null)[]] & {length: 1})
6
+ | ([T | undefined | null, ...(T | undefined | null)[]] & {length: 2})
7
+ | ([T | undefined | null, ...(T | undefined | null)[]] & {length: 3})
8
+ | ([T | undefined | null, ...(T | undefined | null)[]] & {length: 4})
9
+ | ([T | undefined | null, ...(T | undefined | null)[]] & {length: 5})
10
+ | ([T | undefined | null, ...(T | undefined | null)[]] & {length: 6})
@@ -0,0 +1,3 @@
1
+ export const SHADOW = [0, 1, 2, 3, 4, 5] as const
2
+ /** @public */
3
+ export type Shadow = (typeof SHADOW)[number]
@@ -0,0 +1,15 @@
1
+ export const SPACE = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] as const
2
+ /** @public */
3
+ export type Space = (typeof SPACE)[number]
4
+
5
+ export const SPACE_AUTO = [...SPACE, 'auto'] as const
6
+ /** @public */
7
+ export type SpaceAuto = (typeof SPACE_AUTO)[number]
8
+
9
+ export const SPACE_INHERIT = [...SPACE, 'inherit'] as const
10
+ /** @public */
11
+ export type SpaceInherit = (typeof SPACE_INHERIT)[number]
12
+
13
+ export const SPACE_AUTO_NEGATIVE = [-9, -8, -7, -6, -5, -4, -3, -2, -1, ...SPACE, 'auto'] as const
14
+ /** @public */
15
+ export type SpaceAutoNegative = (typeof SPACE_AUTO_NEGATIVE)[number]
@@ -0,0 +1,3 @@
1
+ export const TEXT_SIZE = [0, 1, 2, 3, 4] as const
2
+ /** @public */
3
+ export type TextSize = (typeof TEXT_SIZE)[number]
@@ -0,0 +1,3 @@
1
+ export const TEXT_ALIGN = ['left', 'center', 'right', 'justify'] as const
2
+ /** @public */
3
+ export type TextAlign = (typeof TEXT_ALIGN)[number]
@@ -0,0 +1,3 @@
1
+ export const TONE = ['neutral', 'positive', 'suggest', 'caution', 'critical'] as const
2
+ /** @public */
3
+ export type Tone = (typeof TONE)[number]
@@ -0,0 +1,156 @@
1
+ import {describe, expect, it} from 'vitest'
2
+
3
+ import {cardProps} from '../components/card/card.props'
4
+ import {layoutProps} from '../props/layout'
5
+ import {typographyProps} from '../props/typography'
6
+ import {getProps} from './getProps'
7
+
8
+ describe('getProps', () => {
9
+ it('generates className based on an union', () => {
10
+ const result = getProps({padding: 1}, layoutProps)
11
+ expect(result.className).toBe('sui-p1')
12
+ expect(result.style).toEqual({})
13
+ })
14
+
15
+ it('does not generate className based on union if value is unsupported', () => {
16
+ const result = getProps({padding: 10}, layoutProps)
17
+ expect(result.className).toBe('')
18
+ expect(result.style).toEqual({})
19
+ })
20
+
21
+ it('merges existing className', () => {
22
+ const result = getProps({className: 'test', padding: 1}, layoutProps)
23
+ expect(result.className).toBe('test sui-p1')
24
+ expect(result.style).toEqual({})
25
+ })
26
+
27
+ it('generates className and style based on a string', () => {
28
+ const result = getProps({width: '100px'}, layoutProps)
29
+ expect(result.className).toBe('sui-width')
30
+ expect(result.style).toEqual({'--width': '100px'})
31
+ })
32
+
33
+ it('merges existing style', () => {
34
+ const result = getProps({width: '100px', style: {display: 'block'}}, layoutProps)
35
+ expect(result.className).toBe('sui-width')
36
+ expect(result.style).toEqual({'--width': '100px', 'display': 'block'})
37
+ })
38
+
39
+ it('generates className based on a boolean', () => {
40
+ const result = getProps({border: true}, layoutProps)
41
+ expect(result.className).toBe('sui-border')
42
+ expect(result.style).toEqual({})
43
+ })
44
+
45
+ it('generates className based on a number', () => {
46
+ const result = getProps({flexGrow: 1.5}, layoutProps)
47
+ expect(result.className).toBe('sui-flex-grow')
48
+ expect(result.style).toEqual({'--flex-grow': 1.5})
49
+ })
50
+
51
+ it('generates className based on a composite', () => {
52
+ const result = getProps({density: 'regular'}, cardProps)
53
+ expect(result.className).toBe('sui-gap3 sui-p4 sui-radius3')
54
+ expect(result.style).toEqual({})
55
+ })
56
+
57
+ it('generates multiple classNames', () => {
58
+ const result = getProps({border: true, padding: 1}, layoutProps)
59
+ expect(result.className).toBe('sui-border sui-p1')
60
+ expect(result.style).toEqual({})
61
+ })
62
+
63
+ it('preserves undefined props', () => {
64
+ const result = getProps({padding: 1, id: 'test'}, layoutProps)
65
+ expect(result.className).toBe('sui-p1')
66
+ expect(result['id']).toEqual('test')
67
+ })
68
+
69
+ it('preserves non-styling props', () => {
70
+ const result = getProps({padding: 1, as: 'div'}, layoutProps)
71
+ expect(result.className).toBe('sui-p1')
72
+ expect(result.style).toEqual({})
73
+ expect(result['as']).toEqual('div')
74
+ })
75
+
76
+ it('preserves non-styling responsive props', () => {
77
+ const result = getProps({padding: 1, items: [{label: 'One'}, {label: 'Two'}]}, layoutProps)
78
+ expect(result.className).toBe('sui-p1')
79
+ expect(result.style).toEqual({})
80
+ expect(result['items']).toEqual([{label: 'One'}, {label: 'Two'}])
81
+ })
82
+
83
+ it('generates responsive className based on unions', () => {
84
+ const result = getProps({padding: [1, 2, 3]}, layoutProps)
85
+ expect(result.className).toBe('sui-p1 sui-p2-bp-1 sui-p3-bp-2')
86
+ expect(result.style).toEqual({})
87
+ })
88
+
89
+ it('generates responsive className and style based on strings', () => {
90
+ const result = getProps({width: ['100px', '200px', '300px']}, layoutProps)
91
+ expect(result.className).toBe('sui-width sui-width-bp-1 sui-width-bp-2')
92
+ expect(result.style).toEqual({
93
+ '--width': '100px',
94
+ '--width-bp-1': '200px',
95
+ '--width-bp-2': '300px',
96
+ })
97
+ })
98
+
99
+ it('generates responsive className based on booleans', () => {
100
+ const result = getProps({border: [true, false, true]}, layoutProps)
101
+ expect(result.className).toBe('sui-border sui-border-none-bp-1 sui-border-bp-2')
102
+ expect(result.style).toEqual({})
103
+ })
104
+
105
+ it('generates responsive className based on composites', () => {
106
+ const result = getProps({density: ['compact', 'regular']}, cardProps)
107
+ expect(result.className).toBe(
108
+ 'sui-gap2 sui-gap3-bp-1 sui-p3 sui-p4-bp-1 sui-radius2 sui-radius3-bp-1',
109
+ )
110
+ expect(result.style).toEqual({})
111
+ })
112
+
113
+ it('does not generate responsive className with more values than breakpoints', () => {
114
+ const result = getProps({padding: [1, 2, 3, 4, 5, 6, 7, 8]}, layoutProps)
115
+ expect(result.className).toBe(
116
+ 'sui-p1 sui-p2-bp-1 sui-p3-bp-2 sui-p4-bp-3 sui-p5-bp-4 sui-p6-bp-5',
117
+ )
118
+ expect(result.style).toEqual({})
119
+ })
120
+
121
+ it('generates responsive className with undefined values', () => {
122
+ const result = getProps({padding: [1, 2, undefined, 3]}, layoutProps)
123
+ expect(result.className).toBe('sui-p1 sui-p2-bp-1 sui-p3-bp-3')
124
+ expect(result.style).toEqual({})
125
+ })
126
+
127
+ it('generates responsive className with null values', () => {
128
+ const result = getProps({padding: [1, 2, null, 3]}, layoutProps)
129
+ expect(result.className).toBe('sui-p1 sui-p2-bp-1 sui-p3-bp-3')
130
+ expect(result.style).toEqual({})
131
+ })
132
+
133
+ it('generates responsive className without unsupported values', () => {
134
+ const result = getProps({padding: [1, 2, 10, 3]}, layoutProps)
135
+ expect(result.className).toBe('sui-p1 sui-p2-bp-1 sui-p3-bp-3')
136
+ expect(result.style).toEqual({})
137
+ })
138
+
139
+ it('generates className based on a conditional', () => {
140
+ const result = getProps({truncate: 1}, typographyProps)
141
+ expect(result.className).toBe('sui-text-overflow')
142
+ expect(result.style).toEqual({})
143
+ })
144
+
145
+ it('generates className and style based on a conditional', () => {
146
+ const result = getProps({truncate: 3}, typographyProps)
147
+ expect(result.className).toBe('sui-line-clamp')
148
+ expect(result.style).toEqual({'--line-clamp': 3})
149
+ })
150
+
151
+ it('generates responsive className and style based on a conditional', () => {
152
+ const result = getProps({truncate: [1, 3]}, typographyProps)
153
+ expect(result.className).toBe('sui-text-overflow sui-line-clamp-bp-1')
154
+ expect(result.style).toEqual({'--line-clamp-bp-1': 3})
155
+ })
156
+ })
@@ -0,0 +1,156 @@
1
+ import clsx from 'clsx'
2
+
3
+ import {type PropDef} from '../types/PropDef'
4
+
5
+ const PREFIX = 'sui'
6
+ const BREAKPOINTS_LENGTH = 6
7
+
8
+ interface ComponentProps {
9
+ className?: string | undefined
10
+ style?: React.CSSProperties | undefined
11
+ [key: string]: any
12
+ }
13
+
14
+ export function getProps(
15
+ componentProps?: ComponentProps,
16
+ propDefs?: Record<string, PropDef>,
17
+ ): ComponentProps {
18
+ const {allComponentProps, allPropDefs} = flattenCompositeProps(componentProps, propDefs)
19
+ const restProps: ComponentProps = {}
20
+ let className = componentProps?.className || ''
21
+ let style = componentProps?.style || {}
22
+
23
+ for (const key in allComponentProps) {
24
+ const propDef = allPropDefs?.[key]
25
+ const propValue = allComponentProps[key]
26
+
27
+ if (
28
+ !((propDef && 'className' in propDef && propDef.className) || propDef?.type === 'conditional')
29
+ ) {
30
+ restProps[key] = propValue
31
+ continue
32
+ }
33
+
34
+ if (Array.isArray(propValue)) {
35
+ // @TODO: consider fixing this O(n^2) time complexity
36
+ // oxlint-disable-next-line no-accumulating-spread
37
+ for (let i = 0, len = Math.min(propValue.length, BREAKPOINTS_LENGTH); i < len; i++) {
38
+ const resolvedPropDef = getResolvedPropDef(propValue[i], propDef)
39
+
40
+ if (!resolvedPropDef) {
41
+ continue
42
+ }
43
+
44
+ className = clsx(className, getClassName(propValue[i], resolvedPropDef, i))
45
+ style = {...style, ...getStyle(propValue[i], resolvedPropDef, i)}
46
+ }
47
+ } else {
48
+ const resolvedPropDef = getResolvedPropDef(propValue, propDef)
49
+
50
+ if (!resolvedPropDef) {
51
+ restProps[key] = propValue
52
+ continue
53
+ }
54
+
55
+ className = clsx(className, getClassName(propValue, resolvedPropDef))
56
+ style = {...style, ...getStyle(propValue, resolvedPropDef)}
57
+ }
58
+ }
59
+
60
+ return {...restProps, className, style}
61
+ }
62
+
63
+ function getResolvedPropDef(propValue: any, propDef?: PropDef) {
64
+ if (propDef?.type !== 'conditional') {
65
+ return propDef
66
+ }
67
+
68
+ const resolvedPropDef = propDef.resolve(propValue)
69
+
70
+ if (!(resolvedPropDef && 'className' in resolvedPropDef && resolvedPropDef.className)) {
71
+ return null
72
+ }
73
+
74
+ return resolvedPropDef
75
+ }
76
+
77
+ function getClassName(propValue: any, propDef: PropDef, bp?: number) {
78
+ if (propDef.type === 'union' && propDef.values?.includes(propValue)) {
79
+ /* Note: This may need updating depending on the final CSS classname formatting */
80
+ return `${PREFIX}-${propDef.className}${typeof propValue === 'string' ? `-${propValue}` : propValue}${bp ? `-bp-${bp}` : ''}`
81
+ }
82
+
83
+ if (propDef.type === 'string' || propDef.type === 'number') {
84
+ return `${PREFIX}-${propDef.className}${bp ? `-bp-${bp}` : ''}`
85
+ }
86
+
87
+ if (propDef.type === 'boolean') {
88
+ if (propValue) {
89
+ return `${PREFIX}-${propDef.className}${bp ? `-bp-${bp}` : ''}`
90
+ }
91
+
92
+ if (!propValue && propDef.inverseClassName) {
93
+ return `${PREFIX}-${propDef.inverseClassName}${bp ? `-bp-${bp}` : ''}`
94
+ }
95
+ }
96
+
97
+ return ''
98
+ }
99
+
100
+ function getStyle(propValue: any, propDef: PropDef, bp?: number) {
101
+ if ((propDef.type === 'string' || propDef.type === 'number') && propDef.variable) {
102
+ return {
103
+ [`${propDef.variable}${bp ? `-bp-${bp}` : ''}`]: propValue,
104
+ }
105
+ }
106
+
107
+ return {}
108
+ }
109
+
110
+ export function flattenCompositeProps(
111
+ componentProps?: ComponentProps,
112
+ propDefs?: Record<string, PropDef>,
113
+ ) {
114
+ const props = {
115
+ allComponentProps: {} as ComponentProps,
116
+ allPropDefs: {} as Record<string, PropDef>,
117
+ }
118
+
119
+ for (const key in componentProps) {
120
+ if (propDefs?.[key] && propDefs?.[key].type === 'composite') {
121
+ for (const compositeKey in propDefs?.[key].composition) {
122
+ const compositeValue = getCompositeValue(componentProps[key], propDefs[key], compositeKey)
123
+
124
+ props.allComponentProps[compositeKey] = compositeValue
125
+ props.allPropDefs[compositeKey] = propDefs[key].composition[compositeKey]
126
+ ?.propDef as PropDef
127
+ }
128
+ } else {
129
+ props.allComponentProps[key] = componentProps[key]
130
+ props.allPropDefs[key] = propDefs?.[key] as PropDef
131
+ }
132
+ }
133
+
134
+ return props
135
+ }
136
+
137
+ function getCompositeValue(propValue: any, propDef: PropDef, key: string) {
138
+ if (!('composition' in propDef)) {
139
+ return
140
+ }
141
+
142
+ const mapping = propDef.composition[key]?.['mapping']
143
+ let compositeValue
144
+
145
+ if (Array.isArray(propValue)) {
146
+ compositeValue = []
147
+
148
+ for (let i = 0, len = propValue.length; i < len; i++) {
149
+ compositeValue[i] = mapping?.[propValue[i]]
150
+ }
151
+ } else {
152
+ compositeValue = mapping?.[propValue]
153
+ }
154
+
155
+ return compositeValue
156
+ }
@@ -0,0 +1,5 @@
1
+ import {HASH} from '../version'
2
+
3
+ export function suffixClassName(className: string) {
4
+ return `${className}-${HASH}`
5
+ }
package/src/version.ts ADDED
@@ -0,0 +1,3 @@
1
+ // This file is generated by scripts/write-version.js. Do not edit.
2
+ export const VERSION = '500alpha1'
3
+ export const HASH = '162541'
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2025 Sanity.io
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.