@bspk/ui 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (506) hide show
  1. package/Accordion.d.ts +20 -0
  2. package/Accordion.js +18 -0
  3. package/Accordion.js.map +1 -0
  4. package/Badge.d.ts +33 -0
  5. package/Badge.js +43 -0
  6. package/Badge.js.map +1 -0
  7. package/BannerAlert.d.ts +53 -0
  8. package/BannerAlert.js +133 -0
  9. package/BannerAlert.js.map +1 -0
  10. package/BottomNavigation.d.ts +20 -0
  11. package/BottomNavigation.js +18 -0
  12. package/BottomNavigation.js.map +1 -0
  13. package/BottomSheet.d.ts +20 -0
  14. package/BottomSheet.js +18 -0
  15. package/BottomSheet.js.map +1 -0
  16. package/Breadcrumb.d.ts +20 -0
  17. package/Breadcrumb.js +18 -0
  18. package/Breadcrumb.js.map +1 -0
  19. package/Button.d.ts +66 -0
  20. package/Button.js +254 -0
  21. package/Button.js.map +1 -0
  22. package/ButtonDock.d.ts +20 -0
  23. package/ButtonDock.js +18 -0
  24. package/ButtonDock.js.map +1 -0
  25. package/CODE_OF_CONDUCT.md +137 -0
  26. package/CONTRIBUTING.md +42 -0
  27. package/Card.d.ts +37 -0
  28. package/Card.js +38 -0
  29. package/Card.js.map +1 -0
  30. package/Chart.d.ts +20 -0
  31. package/Chart.js +18 -0
  32. package/Chart.js.map +1 -0
  33. package/Checkbox.d.ts +26 -0
  34. package/Checkbox.js +123 -0
  35. package/Checkbox.js.map +1 -0
  36. package/CheckboxGroup.d.ts +49 -0
  37. package/CheckboxGroup.js +18 -0
  38. package/CheckboxGroup.js.map +1 -0
  39. package/CheckboxOption.d.ts +14 -0
  40. package/CheckboxOption.js +16 -0
  41. package/CheckboxOption.js.map +1 -0
  42. package/Chip.d.ts +50 -0
  43. package/Chip.js +87 -0
  44. package/Chip.js.map +1 -0
  45. package/DatePicker.d.ts +20 -0
  46. package/DatePicker.js +18 -0
  47. package/DatePicker.js.map +1 -0
  48. package/Dialog.d.ts +46 -0
  49. package/Dialog.js +221 -0
  50. package/Dialog.js.map +1 -0
  51. package/Divider.d.ts +44 -0
  52. package/Divider.js +76 -0
  53. package/Divider.js.map +1 -0
  54. package/Drawer.d.ts +20 -0
  55. package/Drawer.js +18 -0
  56. package/Drawer.js.map +1 -0
  57. package/Dropdown.d.ts +50 -0
  58. package/Dropdown.js +153 -0
  59. package/Dropdown.js.map +1 -0
  60. package/DropdownField.d.ts +16 -0
  61. package/DropdownField.js +19 -0
  62. package/DropdownField.js.map +1 -0
  63. package/EmptyState.d.ts +35 -0
  64. package/EmptyState.js +20 -0
  65. package/EmptyState.js.map +1 -0
  66. package/Fab.d.ts +43 -0
  67. package/Fab.js +146 -0
  68. package/Fab.js.map +1 -0
  69. package/FileUpload.d.ts +20 -0
  70. package/FileUpload.js +18 -0
  71. package/FileUpload.js.map +1 -0
  72. package/FormField.d.ts +48 -0
  73. package/FormField.js +39 -0
  74. package/FormField.js.map +1 -0
  75. package/GUIDELINES.md +41 -0
  76. package/Image.d.ts +20 -0
  77. package/Image.js +18 -0
  78. package/Image.js.map +1 -0
  79. package/Img.d.ts +26 -0
  80. package/Img.js +20 -0
  81. package/Img.js.map +1 -0
  82. package/InlineAlert.d.ts +31 -0
  83. package/InlineAlert.js +73 -0
  84. package/InlineAlert.js.map +1 -0
  85. package/LICENSE +395 -0
  86. package/Layout.d.ts +48 -0
  87. package/Layout.js +24 -0
  88. package/Layout.js.map +1 -0
  89. package/Link.d.ts +38 -0
  90. package/Link.js +37 -0
  91. package/Link.js.map +1 -0
  92. package/ListItem.d.ts +68 -0
  93. package/ListItem.js +207 -0
  94. package/ListItem.js.map +1 -0
  95. package/Menu.d.ts +86 -0
  96. package/Menu.js +98 -0
  97. package/Menu.js.map +1 -0
  98. package/MenuButton.d.ts +16 -0
  99. package/MenuButton.js +30 -0
  100. package/MenuButton.js.map +1 -0
  101. package/Modal.d.ts +31 -0
  102. package/Modal.js +53 -0
  103. package/Modal.js.map +1 -0
  104. package/MultiSelection.d.ts +20 -0
  105. package/MultiSelection.js +18 -0
  106. package/MultiSelection.js.map +1 -0
  107. package/NavigationRail.d.ts +20 -0
  108. package/NavigationRail.js +18 -0
  109. package/NavigationRail.js.map +1 -0
  110. package/NumberField.d.ts +17 -0
  111. package/NumberField.js +20 -0
  112. package/NumberField.js.map +1 -0
  113. package/NumberInput.d.ts +34 -0
  114. package/NumberInput.js +188 -0
  115. package/NumberInput.js.map +1 -0
  116. package/OTPInput.d.ts +20 -0
  117. package/OTPInput.js +18 -0
  118. package/OTPInput.js.map +1 -0
  119. package/PageControl.d.ts +20 -0
  120. package/PageControl.js +18 -0
  121. package/PageControl.js.map +1 -0
  122. package/PasswordInput.d.ts +20 -0
  123. package/PasswordInput.js +18 -0
  124. package/PasswordInput.js.map +1 -0
  125. package/PhoneNumberInput.d.ts +20 -0
  126. package/PhoneNumberInput.js +18 -0
  127. package/PhoneNumberInput.js.map +1 -0
  128. package/Popover.d.ts +44 -0
  129. package/Popover.js +152 -0
  130. package/Popover.js.map +1 -0
  131. package/Portal.d.ts +24 -0
  132. package/Portal.js +23 -0
  133. package/Portal.js.map +1 -0
  134. package/Profile.d.ts +41 -0
  135. package/Profile.js +83 -0
  136. package/Profile.js.map +1 -0
  137. package/ProgressBar.d.ts +38 -0
  138. package/ProgressBar.js +64 -0
  139. package/ProgressBar.js.map +1 -0
  140. package/ProgressCircle.d.ts +31 -0
  141. package/ProgressCircle.js +82 -0
  142. package/ProgressCircle.js.map +1 -0
  143. package/ProgressionStepper.d.ts +66 -0
  144. package/ProgressionStepper.js +197 -0
  145. package/ProgressionStepper.js.map +1 -0
  146. package/ProgressionStepperBar.d.ts +31 -0
  147. package/ProgressionStepperBar.js +51 -0
  148. package/ProgressionStepperBar.js.map +1 -0
  149. package/README.md +13 -0
  150. package/Radio.d.ts +17 -0
  151. package/Radio.js +97 -0
  152. package/Radio.js.map +1 -0
  153. package/RadioGroup.d.ts +31 -0
  154. package/RadioGroup.js +18 -0
  155. package/RadioGroup.js.map +1 -0
  156. package/RadioOption.d.ts +14 -0
  157. package/RadioOption.js +16 -0
  158. package/RadioOption.js.map +1 -0
  159. package/Rating.d.ts +16 -0
  160. package/Rating.js +18 -0
  161. package/Rating.js.map +1 -0
  162. package/SearchBar.d.ts +26 -0
  163. package/SearchBar.js +49 -0
  164. package/SearchBar.js.map +1 -0
  165. package/SegmentedControl.d.ts +69 -0
  166. package/SegmentedControl.js +136 -0
  167. package/SegmentedControl.js.map +1 -0
  168. package/Skeleton.d.ts +28 -0
  169. package/Skeleton.js +57 -0
  170. package/Skeleton.js.map +1 -0
  171. package/SliderInput.d.ts +16 -0
  172. package/SliderInput.js +18 -0
  173. package/SliderInput.js.map +1 -0
  174. package/Snackbar.d.ts +16 -0
  175. package/Snackbar.js +18 -0
  176. package/Snackbar.js.map +1 -0
  177. package/StylesProviderAnywhere.d.ts +10 -0
  178. package/StylesProviderAnywhere.js +29 -0
  179. package/StylesProviderAnywhere.js.map +1 -0
  180. package/StylesProviderBetterHomesGardens.d.ts +10 -0
  181. package/StylesProviderBetterHomesGardens.js +29 -0
  182. package/StylesProviderBetterHomesGardens.js.map +1 -0
  183. package/StylesProviderCartus.d.ts +10 -0
  184. package/StylesProviderCartus.js +29 -0
  185. package/StylesProviderCartus.js.map +1 -0
  186. package/StylesProviderCentury21.d.ts +10 -0
  187. package/StylesProviderCentury21.js +29 -0
  188. package/StylesProviderCentury21.js.map +1 -0
  189. package/StylesProviderColdwellBanker.d.ts +10 -0
  190. package/StylesProviderColdwellBanker.js +29 -0
  191. package/StylesProviderColdwellBanker.js.map +1 -0
  192. package/StylesProviderCorcoran.d.ts +10 -0
  193. package/StylesProviderCorcoran.js +29 -0
  194. package/StylesProviderCorcoran.js.map +1 -0
  195. package/StylesProviderDenaliBoss.d.ts +10 -0
  196. package/StylesProviderDenaliBoss.js +29 -0
  197. package/StylesProviderDenaliBoss.js.map +1 -0
  198. package/StylesProviderEra.d.ts +10 -0
  199. package/StylesProviderEra.js +29 -0
  200. package/StylesProviderEra.js.map +1 -0
  201. package/StylesProviderSothebys.d.ts +10 -0
  202. package/StylesProviderSothebys.js +29 -0
  203. package/StylesProviderSothebys.js.map +1 -0
  204. package/Switch.d.ts +33 -0
  205. package/Switch.js +85 -0
  206. package/Switch.js.map +1 -0
  207. package/SwitchGroup.d.ts +35 -0
  208. package/SwitchGroup.js +18 -0
  209. package/SwitchGroup.js.map +1 -0
  210. package/SwitchOption.d.ts +14 -0
  211. package/SwitchOption.js +16 -0
  212. package/SwitchOption.js.map +1 -0
  213. package/TabGroup.d.ts +73 -0
  214. package/TabGroup.js +119 -0
  215. package/TabGroup.js.map +1 -0
  216. package/Table.d.ts +45 -0
  217. package/Table.js +66 -0
  218. package/Table.js.map +1 -0
  219. package/Tag.d.ts +56 -0
  220. package/Tag.js +77 -0
  221. package/Tag.js.map +1 -0
  222. package/TextField.d.ts +16 -0
  223. package/TextField.js +19 -0
  224. package/TextField.js.map +1 -0
  225. package/TextInput.d.ts +45 -0
  226. package/TextInput.js +172 -0
  227. package/TextInput.js.map +1 -0
  228. package/Textarea.d.ts +63 -0
  229. package/Textarea.js +113 -0
  230. package/Textarea.js.map +1 -0
  231. package/TextareaField.d.ts +16 -0
  232. package/TextareaField.js +26 -0
  233. package/TextareaField.js.map +1 -0
  234. package/TimePicker.d.ts +16 -0
  235. package/TimePicker.js +18 -0
  236. package/TimePicker.js.map +1 -0
  237. package/ToggleOption.d.ts +27 -0
  238. package/ToggleOption.js +91 -0
  239. package/ToggleOption.js.map +1 -0
  240. package/Tooltip.d.ts +39 -0
  241. package/Tooltip.js +104 -0
  242. package/Tooltip.js.map +1 -0
  243. package/TopNavigation.d.ts +16 -0
  244. package/TopNavigation.js +18 -0
  245. package/TopNavigation.js.map +1 -0
  246. package/Txt.d.ts +38 -0
  247. package/Txt.js +21 -0
  248. package/Txt.js.map +1 -0
  249. package/hooks/useCheckboxGroupState.d.ts +37 -0
  250. package/hooks/useCheckboxGroupState.js +61 -0
  251. package/hooks/useCheckboxGroupState.js.map +1 -0
  252. package/hooks/useCheckboxState.d.ts +23 -0
  253. package/hooks/useCheckboxState.js +40 -0
  254. package/hooks/useCheckboxState.js.map +1 -0
  255. package/hooks/useFloating.d.ts +38 -0
  256. package/hooks/useFloating.js +156 -0
  257. package/hooks/useFloating.js.map +1 -0
  258. package/hooks/useFloatingMenu.d.ts +35 -0
  259. package/hooks/useFloatingMenu.js +71 -0
  260. package/hooks/useFloatingMenu.js.map +1 -0
  261. package/hooks/useId.d.ts +8 -0
  262. package/hooks/useId.js +16 -0
  263. package/hooks/useId.js.map +1 -0
  264. package/hooks/useKeyboardNavigation.d.ts +35 -0
  265. package/hooks/useKeyboardNavigation.js +79 -0
  266. package/hooks/useKeyboardNavigation.js.map +1 -0
  267. package/hooks/useLongPress.d.ts +11 -0
  268. package/hooks/useLongPress.js +49 -0
  269. package/hooks/useLongPress.js.map +1 -0
  270. package/hooks/useModalState.d.ts +22 -0
  271. package/hooks/useModalState.js +37 -0
  272. package/hooks/useModalState.js.map +1 -0
  273. package/hooks/useNavOptions.d.ts +28 -0
  274. package/hooks/useNavOptions.js +46 -0
  275. package/hooks/useNavOptions.js.map +1 -0
  276. package/hooks/useOutsideClick.d.ts +31 -0
  277. package/hooks/useOutsideClick.js +50 -0
  278. package/hooks/useOutsideClick.js.map +1 -0
  279. package/hooks/useRadioState.d.ts +23 -0
  280. package/hooks/useRadioState.js +38 -0
  281. package/hooks/useRadioState.js.map +1 -0
  282. package/hooks/useSwitchGroupState.d.ts +37 -0
  283. package/hooks/useSwitchGroupState.js +60 -0
  284. package/hooks/useSwitchGroupState.js.map +1 -0
  285. package/hooks/useTimeout.d.ts +26 -0
  286. package/hooks/useTimeout.js +45 -0
  287. package/hooks/useTimeout.js.map +1 -0
  288. package/hooks/useValidChildren.d.ts +6 -0
  289. package/hooks/useValidChildren.js +33 -0
  290. package/hooks/useValidChildren.js.map +1 -0
  291. package/index.d.ts +125 -0
  292. package/index.js +20 -0
  293. package/index.js.map +1 -0
  294. package/meta.d.ts +44 -0
  295. package/meta.js +5789 -0
  296. package/meta.js.map +1 -0
  297. package/package.json +73 -0
  298. package/src/Accordion.tsx +33 -0
  299. package/src/Badge.tsx +75 -0
  300. package/src/BannerAlert.tsx +211 -0
  301. package/src/BottomNavigation.tsx +33 -0
  302. package/src/BottomSheet.tsx +33 -0
  303. package/src/Breadcrumb.tsx +33 -0
  304. package/src/Button.tsx +358 -0
  305. package/src/ButtonDock.tsx +33 -0
  306. package/src/Card.tsx +66 -0
  307. package/src/Chart.tsx +33 -0
  308. package/src/Checkbox.tsx +174 -0
  309. package/src/CheckboxGroup.tsx +95 -0
  310. package/src/CheckboxOption.tsx +27 -0
  311. package/src/Chip.tsx +155 -0
  312. package/src/DatePicker.tsx +33 -0
  313. package/src/Dialog.tsx +304 -0
  314. package/src/Divider.tsx +129 -0
  315. package/src/Drawer.tsx +33 -0
  316. package/src/Dropdown.tsx +251 -0
  317. package/src/DropdownField.tsx +57 -0
  318. package/src/EmptyState.tsx +73 -0
  319. package/src/Fab.tsx +222 -0
  320. package/src/FileUpload.tsx +33 -0
  321. package/src/FormField.tsx +107 -0
  322. package/src/Image.tsx +33 -0
  323. package/src/Img.tsx +39 -0
  324. package/src/InlineAlert.tsx +119 -0
  325. package/src/Layout.tsx +82 -0
  326. package/src/Link.tsx +82 -0
  327. package/src/ListItem.tsx +316 -0
  328. package/src/Menu.tsx +263 -0
  329. package/src/MenuButton.tsx +45 -0
  330. package/src/Modal.tsx +104 -0
  331. package/src/MultiSelection.tsx +33 -0
  332. package/src/NavigationRail.tsx +33 -0
  333. package/src/NumberField.tsx +47 -0
  334. package/src/NumberInput.tsx +282 -0
  335. package/src/OTPInput.tsx +33 -0
  336. package/src/PageControl.tsx +33 -0
  337. package/src/PasswordInput.tsx +33 -0
  338. package/src/PhoneNumberInput.tsx +33 -0
  339. package/src/Popover.tsx +237 -0
  340. package/src/Portal.tsx +36 -0
  341. package/src/Profile.tsx +140 -0
  342. package/src/ProgressBar.tsx +110 -0
  343. package/src/ProgressCircle.tsx +153 -0
  344. package/src/ProgressionStepper.tsx +294 -0
  345. package/src/ProgressionStepperBar.tsx +95 -0
  346. package/src/Radio.tsx +119 -0
  347. package/src/RadioGroup.tsx +62 -0
  348. package/src/RadioOption.tsx +24 -0
  349. package/src/Rating.tsx +29 -0
  350. package/src/SearchBar.tsx +121 -0
  351. package/src/SegmentedControl.tsx +233 -0
  352. package/src/Skeleton.tsx +90 -0
  353. package/src/SliderInput.tsx +29 -0
  354. package/src/Snackbar.tsx +29 -0
  355. package/src/StylesProviderAnywhere.tsx +31 -0
  356. package/src/StylesProviderBetterHomesGardens.tsx +31 -0
  357. package/src/StylesProviderCartus.tsx +31 -0
  358. package/src/StylesProviderCentury21.tsx +31 -0
  359. package/src/StylesProviderColdwellBanker.tsx +31 -0
  360. package/src/StylesProviderCorcoran.tsx +31 -0
  361. package/src/StylesProviderDenaliBoss.tsx +31 -0
  362. package/src/StylesProviderEra.tsx +31 -0
  363. package/src/StylesProviderSothebys.tsx +31 -0
  364. package/src/Switch.tsx +122 -0
  365. package/src/SwitchGroup.tsx +60 -0
  366. package/src/SwitchOption.tsx +24 -0
  367. package/src/TabGroup.tsx +219 -0
  368. package/src/Table.tsx +126 -0
  369. package/src/Tag.tsx +149 -0
  370. package/src/TextField.tsx +61 -0
  371. package/src/TextInput.tsx +265 -0
  372. package/src/Textarea.tsx +205 -0
  373. package/src/TextareaField.tsx +67 -0
  374. package/src/TimePicker.tsx +29 -0
  375. package/src/ToggleOption.tsx +117 -0
  376. package/src/Tooltip.tsx +170 -0
  377. package/src/TopNavigation.tsx +29 -0
  378. package/src/Txt.tsx +69 -0
  379. package/src/hooks/useCheckboxGroupState.ts +79 -0
  380. package/src/hooks/useCheckboxState.ts +48 -0
  381. package/src/hooks/useFloating.ts +202 -0
  382. package/src/hooks/useFloatingMenu.ts +110 -0
  383. package/src/hooks/useId.ts +14 -0
  384. package/src/hooks/useKeyboardNavigation.ts +98 -0
  385. package/src/hooks/useLongPress.ts +53 -0
  386. package/src/hooks/useModalState.ts +37 -0
  387. package/src/hooks/useNavOptions.ts +76 -0
  388. package/src/hooks/useOutsideClick.ts +51 -0
  389. package/src/hooks/useRadioState.ts +42 -0
  390. package/src/hooks/useSwitchGroupState.ts +75 -0
  391. package/src/hooks/useTimeout.ts +45 -0
  392. package/src/hooks/useValidChildren.ts +54 -0
  393. package/src/index.ts +160 -0
  394. package/src/meta.ts +6238 -0
  395. package/src/package.json +3 -0
  396. package/src/styles/anywhere.css +1693 -0
  397. package/src/styles/anywhere.ts +1694 -0
  398. package/src/styles/base.css +160 -0
  399. package/src/styles/base.ts +161 -0
  400. package/src/styles/better-homes-gardens.css +1693 -0
  401. package/src/styles/better-homes-gardens.ts +1694 -0
  402. package/src/styles/cartus.css +1691 -0
  403. package/src/styles/cartus.ts +1692 -0
  404. package/src/styles/century-21.css +1689 -0
  405. package/src/styles/century-21.ts +1690 -0
  406. package/src/styles/coldwell-banker.css +1691 -0
  407. package/src/styles/coldwell-banker.ts +1692 -0
  408. package/src/styles/corcoran.css +1685 -0
  409. package/src/styles/corcoran.ts +1686 -0
  410. package/src/styles/denali-boss.css +1681 -0
  411. package/src/styles/denali-boss.ts +1682 -0
  412. package/src/styles/era.css +1685 -0
  413. package/src/styles/era.ts +1686 -0
  414. package/src/styles/sothebys.css +1677 -0
  415. package/src/styles/sothebys.ts +1678 -0
  416. package/src/utils/children.ts +80 -0
  417. package/src/utils/colorVariants.ts +74 -0
  418. package/src/utils/errors.tsx +104 -0
  419. package/src/utils/getValidNode.ts +7 -0
  420. package/src/utils/keyboard.ts +382 -0
  421. package/src/utils/placeholder.test.ts +7 -0
  422. package/src/utils/ref.ts +11 -0
  423. package/src/utils/scrollElementIntoView.ts +29 -0
  424. package/src/utils/srOnly.ts +14 -0
  425. package/src/utils/tryIntPsrse.ts +7 -0
  426. package/src/utils/txtVariants.ts +53 -0
  427. package/styles/anywhere.css +1693 -0
  428. package/styles/anywhere.d.ts +2 -0
  429. package/styles/anywhere.js +1697 -0
  430. package/styles/anywhere.js.map +1 -0
  431. package/styles/anywhere.ts +1694 -0
  432. package/styles/base.css +160 -0
  433. package/styles/base.d.ts +2 -0
  434. package/styles/base.js +164 -0
  435. package/styles/base.js.map +1 -0
  436. package/styles/base.ts +161 -0
  437. package/styles/better-homes-gardens.css +1693 -0
  438. package/styles/better-homes-gardens.d.ts +2 -0
  439. package/styles/better-homes-gardens.js +1697 -0
  440. package/styles/better-homes-gardens.js.map +1 -0
  441. package/styles/better-homes-gardens.ts +1694 -0
  442. package/styles/cartus.css +1691 -0
  443. package/styles/cartus.d.ts +2 -0
  444. package/styles/cartus.js +1695 -0
  445. package/styles/cartus.js.map +1 -0
  446. package/styles/cartus.ts +1692 -0
  447. package/styles/century-21.css +1689 -0
  448. package/styles/century-21.d.ts +2 -0
  449. package/styles/century-21.js +1693 -0
  450. package/styles/century-21.js.map +1 -0
  451. package/styles/century-21.ts +1690 -0
  452. package/styles/coldwell-banker.css +1691 -0
  453. package/styles/coldwell-banker.d.ts +2 -0
  454. package/styles/coldwell-banker.js +1695 -0
  455. package/styles/coldwell-banker.js.map +1 -0
  456. package/styles/coldwell-banker.ts +1692 -0
  457. package/styles/corcoran.css +1685 -0
  458. package/styles/corcoran.d.ts +2 -0
  459. package/styles/corcoran.js +1689 -0
  460. package/styles/corcoran.js.map +1 -0
  461. package/styles/corcoran.ts +1686 -0
  462. package/styles/denali-boss.css +1681 -0
  463. package/styles/denali-boss.d.ts +2 -0
  464. package/styles/denali-boss.js +1685 -0
  465. package/styles/denali-boss.js.map +1 -0
  466. package/styles/denali-boss.ts +1682 -0
  467. package/styles/era.css +1685 -0
  468. package/styles/era.d.ts +2 -0
  469. package/styles/era.js +1689 -0
  470. package/styles/era.js.map +1 -0
  471. package/styles/era.ts +1686 -0
  472. package/styles/sothebys.css +1677 -0
  473. package/styles/sothebys.d.ts +2 -0
  474. package/styles/sothebys.js +1681 -0
  475. package/styles/sothebys.js.map +1 -0
  476. package/styles/sothebys.ts +1678 -0
  477. package/utils/children.d.ts +29 -0
  478. package/utils/children.js +70 -0
  479. package/utils/children.js.map +1 -0
  480. package/utils/colorVariants.d.ts +5 -0
  481. package/utils/colorVariants.js +61 -0
  482. package/utils/colorVariants.js.map +1 -0
  483. package/utils/errors.d.ts +36 -0
  484. package/utils/errors.js +65 -0
  485. package/utils/errors.js.map +1 -0
  486. package/utils/getValidNode.d.ts +2 -0
  487. package/utils/getValidNode.js +9 -0
  488. package/utils/getValidNode.js.map +1 -0
  489. package/utils/keyboard.d.ts +4 -0
  490. package/utils/keyboard.js +140 -0
  491. package/utils/keyboard.js.map +1 -0
  492. package/utils/ref.d.ts +5 -0
  493. package/utils/ref.js +10 -0
  494. package/utils/ref.js.map +1 -0
  495. package/utils/scrollElementIntoView.d.ts +8 -0
  496. package/utils/scrollElementIntoView.js +30 -0
  497. package/utils/scrollElementIntoView.js.map +1 -0
  498. package/utils/srOnly.d.ts +14 -0
  499. package/utils/srOnly.js +15 -0
  500. package/utils/srOnly.js.map +1 -0
  501. package/utils/tryIntPsrse.d.ts +2 -0
  502. package/utils/tryIntPsrse.js +10 -0
  503. package/utils/tryIntPsrse.js.map +1 -0
  504. package/utils/txtVariants.d.ts +2 -0
  505. package/utils/txtVariants.js +30 -0
  506. package/utils/txtVariants.js.map +1 -0
@@ -0,0 +1,90 @@
1
+ import { css } from '@emotion/react';
2
+ import { CSSProperties } from 'react';
3
+
4
+ import { TxtVariant } from './utils/txtVariants';
5
+
6
+ export type SkeletonVariant = TxtVariant | 'other';
7
+
8
+ export type SkeletonProps = {
9
+ /**
10
+ * The text variant of the skeleton. If 'other' skeleton will expand to size of nearest relative positioned parent.
11
+ *
12
+ * @default other
13
+ */
14
+ variant?: SkeletonVariant;
15
+ /**
16
+ * The number of lines showing. Ignored when variant is other.
17
+ *
18
+ * @default 1
19
+ */
20
+ lines?: number;
21
+ };
22
+
23
+ /**
24
+ * A visual placeholder for an element while it is in a loading state.
25
+ *
26
+ * @name Skeleton
27
+ */
28
+ function Skeleton({ variant = 'other', lines: linesProp = 3 }: SkeletonProps) {
29
+ const lines = Math.max(1, linesProp || 0);
30
+
31
+ return (
32
+ <div
33
+ css={style}
34
+ data-skeleton
35
+ style={
36
+ {
37
+ '--margin': `calc(var(--${variant}-line-height) - var(--${variant}-size))`,
38
+ '--height': `var(--${variant}-size)`,
39
+ } as CSSProperties
40
+ }
41
+ >
42
+ {variant !== 'other' && [...Array(lines)].map((_, index) => <div data-line key={index} />)}
43
+ </div>
44
+ );
45
+ }
46
+
47
+ Skeleton.bspkName = 'Skeleton';
48
+
49
+ export { Skeleton };
50
+
51
+ export const style = css`
52
+ width: 100%;
53
+ display: flex;
54
+ flex-direction: column;
55
+ gap: var(--margin);
56
+
57
+ animation: skeleton-pulse 1.5s infinite;
58
+ @keyframes skeleton-pulse {
59
+ 0% {
60
+ opacity: 0.8;
61
+ }
62
+ 50% {
63
+ opacity: 0.4;
64
+ }
65
+ 100% {
66
+ opacity: 0.8;
67
+ }
68
+ }
69
+
70
+ &:empty {
71
+ width: auto;
72
+ height: auto;
73
+ position: absolute;
74
+ top: 0;
75
+ left: 0;
76
+ right: 0;
77
+ bottom: 0;
78
+ background: var(--foreground-neutral-skeleton-element);
79
+ border-radius: var(--radius-small);
80
+ }
81
+
82
+ [data-line] {
83
+ width: 100%;
84
+ background: var(--foreground-neutral-skeleton-element);
85
+ border-radius: var(--radius-small);
86
+ height: var(--height);
87
+ }
88
+ `;
89
+
90
+ /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
@@ -0,0 +1,29 @@
1
+ import { css } from '@emotion/react';
2
+
3
+ export type SliderInputProps = {
4
+ /** The content of the slider input. */
5
+ children: string;
6
+ };
7
+
8
+ /**
9
+ * Component description coming soon.
10
+ *
11
+ * @name SliderInput
12
+ */
13
+ function SliderInput({ children }: SliderInputProps) {
14
+ return (
15
+ <div css={style} data-slider-input>
16
+ {children}
17
+ </div>
18
+ );
19
+ }
20
+
21
+ SliderInput.bspkName = 'SliderInput';
22
+
23
+ export { SliderInput };
24
+
25
+ export const style = css`
26
+ display: flex;
27
+ `;
28
+
29
+ /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
@@ -0,0 +1,29 @@
1
+ import { css } from '@emotion/react';
2
+
3
+ export type SnackbarProps = {
4
+ /** The content of the snackbar. */
5
+ children: string;
6
+ };
7
+
8
+ /**
9
+ * Component description coming soon.
10
+ *
11
+ * @name Snackbar
12
+ */
13
+ function Snackbar({ children }: SnackbarProps) {
14
+ return (
15
+ <div css={style} data-snackbar>
16
+ {children}
17
+ </div>
18
+ );
19
+ }
20
+
21
+ Snackbar.bspkName = 'Snackbar';
22
+
23
+ export { Snackbar };
24
+
25
+ export const style = css`
26
+ display: flex;
27
+ `;
28
+
29
+ /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
@@ -0,0 +1,31 @@
1
+ import { useEffect, useRef } from 'react';
2
+
3
+ import brandStyle from './styles/anywhere';
4
+ import baseStyle from './styles/base';
5
+
6
+ /**
7
+ * Utility to provide the Anywhere styles to the application.
8
+ *
9
+ * @name StylesProviderAnywhere
10
+ */
11
+ function StylesProviderAnywhere() {
12
+ const styleEmentRef = useRef<HTMLStyleElement | null>(null);
13
+
14
+ useEffect(() => {
15
+ styleEmentRef.current = document.createElement('style');
16
+ styleEmentRef.current.setAttribute('data-bspk', 'anywhere');
17
+ styleEmentRef.current.innerHTML = brandStyle + baseStyle;
18
+ document.head.appendChild(styleEmentRef.current);
19
+ document.body.style.display = '';
20
+
21
+ return () => {
22
+ if (styleEmentRef.current) document.head.removeChild(styleEmentRef.current);
23
+ };
24
+ }, []);
25
+
26
+ return <></>;
27
+ }
28
+
29
+ StylesProviderAnywhere.bspkName = 'StylesProviderAnywhere';
30
+
31
+ export { StylesProviderAnywhere };
@@ -0,0 +1,31 @@
1
+ import { useEffect, useRef } from 'react';
2
+
3
+ import baseStyle from './styles/base';
4
+ import brandStyle from './styles/better-homes-gardens';
5
+
6
+ /**
7
+ * Utility to provide the Better Homes & Gardens styles to the application.
8
+ *
9
+ * @name StylesProviderBetterHomesGardens
10
+ */
11
+ function StylesProviderBetterHomesGardens() {
12
+ const styleEmentRef = useRef<HTMLStyleElement | null>(null);
13
+
14
+ useEffect(() => {
15
+ styleEmentRef.current = document.createElement('style');
16
+ styleEmentRef.current.setAttribute('data-bspk', 'better-homes-gardens');
17
+ styleEmentRef.current.innerHTML = brandStyle + baseStyle;
18
+ document.head.appendChild(styleEmentRef.current);
19
+ document.body.style.display = '';
20
+
21
+ return () => {
22
+ if (styleEmentRef.current) document.head.removeChild(styleEmentRef.current);
23
+ };
24
+ }, []);
25
+
26
+ return <></>;
27
+ }
28
+
29
+ StylesProviderBetterHomesGardens.bspkName = 'StylesProviderBetterHomesGardens';
30
+
31
+ export { StylesProviderBetterHomesGardens };
@@ -0,0 +1,31 @@
1
+ import { useEffect, useRef } from 'react';
2
+
3
+ import baseStyle from './styles/base';
4
+ import brandStyle from './styles/cartus';
5
+
6
+ /**
7
+ * Utility to provide the Cartus styles to the application.
8
+ *
9
+ * @name StylesProviderCartus
10
+ */
11
+ function StylesProviderCartus() {
12
+ const styleEmentRef = useRef<HTMLStyleElement | null>(null);
13
+
14
+ useEffect(() => {
15
+ styleEmentRef.current = document.createElement('style');
16
+ styleEmentRef.current.setAttribute('data-bspk', 'cartus');
17
+ styleEmentRef.current.innerHTML = brandStyle + baseStyle;
18
+ document.head.appendChild(styleEmentRef.current);
19
+ document.body.style.display = '';
20
+
21
+ return () => {
22
+ if (styleEmentRef.current) document.head.removeChild(styleEmentRef.current);
23
+ };
24
+ }, []);
25
+
26
+ return <></>;
27
+ }
28
+
29
+ StylesProviderCartus.bspkName = 'StylesProviderCartus';
30
+
31
+ export { StylesProviderCartus };
@@ -0,0 +1,31 @@
1
+ import { useEffect, useRef } from 'react';
2
+
3
+ import baseStyle from './styles/base';
4
+ import brandStyle from './styles/century-21';
5
+
6
+ /**
7
+ * Utility to provide the Century 21 styles to the application.
8
+ *
9
+ * @name StylesProviderCentury21
10
+ */
11
+ function StylesProviderCentury21() {
12
+ const styleEmentRef = useRef<HTMLStyleElement | null>(null);
13
+
14
+ useEffect(() => {
15
+ styleEmentRef.current = document.createElement('style');
16
+ styleEmentRef.current.setAttribute('data-bspk', 'century-21');
17
+ styleEmentRef.current.innerHTML = brandStyle + baseStyle;
18
+ document.head.appendChild(styleEmentRef.current);
19
+ document.body.style.display = '';
20
+
21
+ return () => {
22
+ if (styleEmentRef.current) document.head.removeChild(styleEmentRef.current);
23
+ };
24
+ }, []);
25
+
26
+ return <></>;
27
+ }
28
+
29
+ StylesProviderCentury21.bspkName = 'StylesProviderCentury21';
30
+
31
+ export { StylesProviderCentury21 };
@@ -0,0 +1,31 @@
1
+ import { useEffect, useRef } from 'react';
2
+
3
+ import baseStyle from './styles/base';
4
+ import brandStyle from './styles/coldwell-banker';
5
+
6
+ /**
7
+ * Utility to provide the Coldwell Banker styles to the application.
8
+ *
9
+ * @name StylesProviderColdwellBanker
10
+ */
11
+ function StylesProviderColdwellBanker() {
12
+ const styleEmentRef = useRef<HTMLStyleElement | null>(null);
13
+
14
+ useEffect(() => {
15
+ styleEmentRef.current = document.createElement('style');
16
+ styleEmentRef.current.setAttribute('data-bspk', 'coldwell-banker');
17
+ styleEmentRef.current.innerHTML = brandStyle + baseStyle;
18
+ document.head.appendChild(styleEmentRef.current);
19
+ document.body.style.display = '';
20
+
21
+ return () => {
22
+ if (styleEmentRef.current) document.head.removeChild(styleEmentRef.current);
23
+ };
24
+ }, []);
25
+
26
+ return <></>;
27
+ }
28
+
29
+ StylesProviderColdwellBanker.bspkName = 'StylesProviderColdwellBanker';
30
+
31
+ export { StylesProviderColdwellBanker };
@@ -0,0 +1,31 @@
1
+ import { useEffect, useRef } from 'react';
2
+
3
+ import baseStyle from './styles/base';
4
+ import brandStyle from './styles/corcoran';
5
+
6
+ /**
7
+ * Utility to provide the Corcoran styles to the application.
8
+ *
9
+ * @name StylesProviderCorcoran
10
+ */
11
+ function StylesProviderCorcoran() {
12
+ const styleEmentRef = useRef<HTMLStyleElement | null>(null);
13
+
14
+ useEffect(() => {
15
+ styleEmentRef.current = document.createElement('style');
16
+ styleEmentRef.current.setAttribute('data-bspk', 'corcoran');
17
+ styleEmentRef.current.innerHTML = brandStyle + baseStyle;
18
+ document.head.appendChild(styleEmentRef.current);
19
+ document.body.style.display = '';
20
+
21
+ return () => {
22
+ if (styleEmentRef.current) document.head.removeChild(styleEmentRef.current);
23
+ };
24
+ }, []);
25
+
26
+ return <></>;
27
+ }
28
+
29
+ StylesProviderCorcoran.bspkName = 'StylesProviderCorcoran';
30
+
31
+ export { StylesProviderCorcoran };
@@ -0,0 +1,31 @@
1
+ import { useEffect, useRef } from 'react';
2
+
3
+ import baseStyle from './styles/base';
4
+ import brandStyle from './styles/denali-boss';
5
+
6
+ /**
7
+ * Utility to provide the Denali Boss styles to the application.
8
+ *
9
+ * @name StylesProviderDenaliBoss
10
+ */
11
+ function StylesProviderDenaliBoss() {
12
+ const styleEmentRef = useRef<HTMLStyleElement | null>(null);
13
+
14
+ useEffect(() => {
15
+ styleEmentRef.current = document.createElement('style');
16
+ styleEmentRef.current.setAttribute('data-bspk', 'denali-boss');
17
+ styleEmentRef.current.innerHTML = brandStyle + baseStyle;
18
+ document.head.appendChild(styleEmentRef.current);
19
+ document.body.style.display = '';
20
+
21
+ return () => {
22
+ if (styleEmentRef.current) document.head.removeChild(styleEmentRef.current);
23
+ };
24
+ }, []);
25
+
26
+ return <></>;
27
+ }
28
+
29
+ StylesProviderDenaliBoss.bspkName = 'StylesProviderDenaliBoss';
30
+
31
+ export { StylesProviderDenaliBoss };
@@ -0,0 +1,31 @@
1
+ import { useEffect, useRef } from 'react';
2
+
3
+ import baseStyle from './styles/base';
4
+ import brandStyle from './styles/era';
5
+
6
+ /**
7
+ * Utility to provide the ERA styles to the application.
8
+ *
9
+ * @name StylesProviderEra
10
+ */
11
+ function StylesProviderEra() {
12
+ const styleEmentRef = useRef<HTMLStyleElement | null>(null);
13
+
14
+ useEffect(() => {
15
+ styleEmentRef.current = document.createElement('style');
16
+ styleEmentRef.current.setAttribute('data-bspk', 'era');
17
+ styleEmentRef.current.innerHTML = brandStyle + baseStyle;
18
+ document.head.appendChild(styleEmentRef.current);
19
+ document.body.style.display = '';
20
+
21
+ return () => {
22
+ if (styleEmentRef.current) document.head.removeChild(styleEmentRef.current);
23
+ };
24
+ }, []);
25
+
26
+ return <></>;
27
+ }
28
+
29
+ StylesProviderEra.bspkName = 'StylesProviderEra';
30
+
31
+ export { StylesProviderEra };
@@ -0,0 +1,31 @@
1
+ import { useEffect, useRef } from 'react';
2
+
3
+ import baseStyle from './styles/base';
4
+ import brandStyle from './styles/sothebys';
5
+
6
+ /**
7
+ * Utility to provide the Sotheby's styles to the application.
8
+ *
9
+ * @name StylesProviderSothebys
10
+ */
11
+ function StylesProviderSothebys() {
12
+ const styleEmentRef = useRef<HTMLStyleElement | null>(null);
13
+
14
+ useEffect(() => {
15
+ styleEmentRef.current = document.createElement('style');
16
+ styleEmentRef.current.setAttribute('data-bspk', 'sothebys');
17
+ styleEmentRef.current.innerHTML = brandStyle + baseStyle;
18
+ document.head.appendChild(styleEmentRef.current);
19
+ document.body.style.display = '';
20
+
21
+ return () => {
22
+ if (styleEmentRef.current) document.head.removeChild(styleEmentRef.current);
23
+ };
24
+ }, []);
25
+
26
+ return <></>;
27
+ }
28
+
29
+ StylesProviderSothebys.bspkName = 'StylesProviderSothebys';
30
+
31
+ export { StylesProviderSothebys };
package/src/Switch.tsx ADDED
@@ -0,0 +1,122 @@
1
+ import { css } from '@emotion/react';
2
+ import { ChangeEvent } from 'react';
3
+
4
+ import { CommonProps } from './';
5
+
6
+ export type SwitchProps = CommonProps<'aria-label' | 'disabled' | 'name' | 'onClick' | 'value'> & {
7
+ /**
8
+ * Marks the control as checked.
9
+ *
10
+ * @default false
11
+ */
12
+ checked?: boolean;
13
+ /**
14
+ * The function to call when the control is checked or unchecked.
15
+ *
16
+ * @type (checked, Event) => void
17
+ * @required
18
+ */
19
+ onChange: (checked: boolean, event: ChangeEvent<HTMLInputElement>) => void;
20
+ };
21
+
22
+ /**
23
+ * A control element that allows users to toggle between two states, typically representing on/off and inherits
24
+ * immediate reaction in each state. This is the base element and if used directly you must wrap it with a label. This
25
+ * will more often be used in the SwitchOption or SwitchGroup component.
26
+ *
27
+ * @element
28
+ *
29
+ * @name Switch
30
+ */
31
+ function Switch(props: SwitchProps) {
32
+ const {
33
+ //
34
+ checked = false,
35
+ disabled,
36
+ ...otherProps
37
+ } = props;
38
+
39
+ return (
40
+ <span css={style} data-switch>
41
+ <input
42
+ {...otherProps}
43
+ aria-disabled={disabled || undefined}
44
+ checked={checked}
45
+ disabled={disabled || undefined}
46
+ onChange={(event) => props.onChange(!!event.target.checked, event)}
47
+ type="checkbox"
48
+ />
49
+ <span aria-hidden />
50
+ </span>
51
+ );
52
+ }
53
+
54
+ Switch.bspkName = 'Switch';
55
+
56
+ export { Switch };
57
+
58
+ export const style = css`
59
+ --track-width: var(--spacing-sizing-09);
60
+ --toggle-width: var(--spacing-sizing-04);
61
+ --track-bg: var(--surface-neutral-t4-high);
62
+ --toggle-bg: var(--foreground-neutral-on-color);
63
+
64
+ display: block;
65
+ position: relative;
66
+ box-sizing: border-box;
67
+ margin: 2px;
68
+
69
+ input[type='checkbox'] {
70
+ position: absolute;
71
+ opacity: 0;
72
+ width: 100%;
73
+ height: 100%;
74
+ top: 0;
75
+ left: 0;
76
+ z-index: 2;
77
+ cursor: pointer;
78
+ }
79
+
80
+ box-sizing: border-box;
81
+ width: var(--track-width);
82
+ height: var(--spacing-sizing-05);
83
+ border-radius: var(--spacing-sizing-05);
84
+ background-color: var(--track-bg);
85
+ position: relative;
86
+ z-index: 1;
87
+
88
+ span {
89
+ display: block;
90
+ width: var(--toggle-width);
91
+ height: var(--toggle-width);
92
+ border-radius: var(--radius-circular);
93
+ background-color: var(--toggle-bg);
94
+ transition: left 0.2s;
95
+ box-shadow: var(--drop-shadow-raise);
96
+ left: 2px;
97
+ top: 2px;
98
+ position: absolute;
99
+ }
100
+
101
+ &:has(input[type='checkbox']:checked) {
102
+ --track-bg: var(--foreground-brand-primary);
103
+
104
+ span {
105
+ left: calc(var(--track-width) - var(--toggle-width) - 2px);
106
+ }
107
+ }
108
+
109
+ &:has(input[type='checkbox']:disabled) {
110
+ input[type='checkbox'] {
111
+ pointer-events: none;
112
+ }
113
+ --track-bg: var(--interactions-disabled-opacity);
114
+ --toggle-bg: var(--foreground-neutral-disabled-on-surface);
115
+
116
+ &:has(input[type='checkbox']:checked) span {
117
+ --toggle-bg: var(--foreground-neutral-disabled-on-color-surface);
118
+ }
119
+ }
120
+ `;
121
+
122
+ /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
@@ -0,0 +1,60 @@
1
+ import { Switch } from './Switch';
2
+ import { ToggleOption, ToggleOptionProps } from './ToggleOption';
3
+
4
+ import { ToggleControlProps, ElementProps, CommonProps } from './';
5
+
6
+ export type SwitchGroupOption = Pick<ToggleControlProps<HTMLInputElement>, 'value'> &
7
+ Pick<ToggleOptionProps, 'description' | 'label'>;
8
+
9
+ export type SwitchGroupProps = CommonProps<'aria-label' | 'name'> & {
10
+ /**
11
+ * The function to call when the switches are changed.
12
+ *
13
+ * @required
14
+ */
15
+ onChange: (value: string[]) => void;
16
+ /**
17
+ * The options for the switches.
18
+ *
19
+ * @type SwitchGroupOption[]
20
+ * @required
21
+ */
22
+ options: SwitchGroupOption[];
23
+ /**
24
+ * The values of the switches in the on state.
25
+ *
26
+ * @type string[]
27
+ */
28
+ values?: SwitchGroupProps['options'][number]['value'][];
29
+ };
30
+
31
+ /**
32
+ * A group of switches that allows users to choose one or more items from a list or turn an feature on or off.
33
+ *
34
+ * @name SwitchGroup
35
+ */
36
+ function SwitchGroup({ onChange, options = [], name, values = [], ...props }: ElementProps<SwitchGroupProps, 'div'>) {
37
+ return (
38
+ <div {...props} data-control-group data-switch-group role="group">
39
+ {options.map(({ label, description, value }) => (
40
+ <ToggleOption description={description} key={value} label={label}>
41
+ <Switch
42
+ aria-label={label}
43
+ checked={values.includes(value)}
44
+ name={name}
45
+ onChange={(checked) => {
46
+ onChange(checked ? [...values, value] : values.filter((v) => v !== value));
47
+ }}
48
+ value={value}
49
+ />
50
+ </ToggleOption>
51
+ ))}
52
+ </div>
53
+ );
54
+ }
55
+
56
+ SwitchGroup.bspkName = 'SwitchGroup';
57
+
58
+ export { SwitchGroup };
59
+
60
+ /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
@@ -0,0 +1,24 @@
1
+ import { Switch, SwitchProps } from './Switch';
2
+ import { ToggleOption, ToggleOptionProps } from './ToggleOption';
3
+
4
+ export type SwitchOptionProps = Omit<SwitchProps, 'aria-label'> &
5
+ Pick<ToggleOptionProps, 'description' | 'label' | 'size'>;
6
+
7
+ /**
8
+ * A control that allows users to choose one or more items from a list or turn an feature on or off.
9
+ *
10
+ * @name SwitchOption
11
+ */
12
+ function SwitchOption({ label, description, size, ...checkboxProps }: SwitchOptionProps) {
13
+ return (
14
+ <ToggleOption data-checkbox-field description={description} label={label} size={size}>
15
+ <Switch {...checkboxProps} aria-label={label} />
16
+ </ToggleOption>
17
+ );
18
+ }
19
+
20
+ SwitchOption.bspkName = 'SwitchOption';
21
+
22
+ export { SwitchOption };
23
+
24
+ /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */