@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,35 @@
1
+ import { ReactNode } from 'react';
2
+ import { CallToActionButton } from './';
3
+ export type EmptyStateProps = {
4
+ /** The image or icon to display in the empty state. */
5
+ children?: ReactNode;
6
+ /**
7
+ * The header of the empty state.
8
+ *
9
+ * @required
10
+ */
11
+ header: string;
12
+ /**
13
+ * The body of the empty state.
14
+ *
15
+ * @required
16
+ */
17
+ body: string;
18
+ /**
19
+ * This property may be undefined or an object containing required CallToActionButton properties.
20
+ *
21
+ * @type CallToActionButton
22
+ */
23
+ callToAction?: CallToActionButton;
24
+ };
25
+ /**
26
+ * A design pattern component that indicates to users that system has no content to display.
27
+ *
28
+ * @name EmptyState
29
+ */
30
+ declare function EmptyState({ children, header, body, callToAction }: EmptyStateProps): import("@emotion/react/jsx-runtime").JSX.Element;
31
+ declare namespace EmptyState {
32
+ var bspkName: string;
33
+ }
34
+ export { EmptyState };
35
+ /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
package/EmptyState.js ADDED
@@ -0,0 +1,20 @@
1
+ import { jsxs, jsx } from '@emotion/react/jsx-runtime';
2
+ import { Button } from './Button.js';
3
+ import { Layout } from './Layout.js';
4
+ import { Txt } from './Txt.js';
5
+
6
+ /**
7
+ * A design pattern component that indicates to users that system has no content to display.
8
+ *
9
+ * @name EmptyState
10
+ */
11
+ function EmptyState({ children, header, body, callToAction }) {
12
+ return (jsxs(Layout, { align: "center", column: true, "data-empty-state": true, style: {
13
+ margin: 'var(--spacing-sizing-04)',
14
+ maxWidth: '500px',
15
+ }, children: [children, jsxs(Layout, { align: "center", column: true, gap: "4", children: [jsx(Txt, { as: "div", variant: "heading-h5", children: header }), jsx(Txt, { as: "div", variant: "body-base", children: body })] }), callToAction && (jsx(Button, { label: callToAction.label, onClick: callToAction.onClick, size: callToAction.size || 'medium', variant: "primary" }))] }));
16
+ }
17
+ EmptyState.bspkName = 'EmptyState';
18
+
19
+ export { EmptyState };
20
+ //# sourceMappingURL=EmptyState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmptyState.js","sources":["src/EmptyState.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":";;;;;AA+BA;;;;AAIG;AACH,SAAS,UAAU,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAmB,EAAA;IACzE,QACIA,IAAC,CAAA,MAAM,EACH,EAAA,KAAK,EAAC,QAAQ,EACd,MAAM,EAEN,IAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,KAAK,EAAE;AACH,YAAA,MAAM,EAAE,0BAA0B;AAClC,YAAA,QAAQ,EAAE,OAAO;AACpB,SAAA,EAAA,QAAA,EAAA,CAEA,QAAQ,EACTA,IAAA,CAAC,MAAM,EAAA,EAAC,KAAK,EAAC,QAAQ,EAAC,MAAM,QAAC,GAAG,EAAC,GAAG,EAAA,QAAA,EAAA,CACjCC,IAAC,GAAG,EAAA,EAAC,EAAE,EAAC,KAAK,EAAC,OAAO,EAAC,YAAY,YAC7B,MAAM,EAAA,CACL,EACNA,GAAA,CAAC,GAAG,EAAC,EAAA,EAAE,EAAC,KAAK,EAAC,OAAO,EAAC,WAAW,EAAA,QAAA,EAC5B,IAAI,EACH,CAAA,CAAA,EAAA,CACD,EACR,YAAY,KACTA,GAAA,CAAC,MAAM,EAAA,EACH,KAAK,EAAE,YAAY,CAAC,KAAK,EACzB,OAAO,EAAE,YAAY,CAAC,OAAO,EAC7B,IAAI,EAAE,YAAY,CAAC,IAAI,IAAI,QAAQ,EACnC,OAAO,EAAC,SAAS,GACnB,CACL,CAAA,EAAA,CACI,EACX;AACN,CAAC;AAED,UAAU,CAAC,QAAQ,GAAG,YAAY;;;;"}
package/Fab.d.ts ADDED
@@ -0,0 +1,43 @@
1
+ import { ElementType } from 'react';
2
+ import { ButtonProps } from './Button';
3
+ import { ElementProps } from './';
4
+ export type FabVariant = 'neutral' | 'primary' | 'secondary';
5
+ export type FabProps<As extends ElementType = 'button'> = Pick<ButtonProps<As>, 'as' | 'icon' | 'onClick' | 'showLabel' | 'toolTip'> & Required<Pick<ButtonProps<As>, 'label'>> & {
6
+ /**
7
+ * The size of the button.
8
+ *
9
+ * @default small
10
+ */
11
+ size?: 'medium' | 'small';
12
+ /**
13
+ * The style variant of the button.
14
+ *
15
+ * @default primary
16
+ */
17
+ variant?: FabVariant;
18
+ /**
19
+ * The placement of the button on the container.
20
+ *
21
+ * @default bottom-right
22
+ */
23
+ placement?: 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right';
24
+ /**
25
+ * The container to render the button in.
26
+ *
27
+ * @default local
28
+ */
29
+ container?: 'local' | 'page';
30
+ };
31
+ /**
32
+ * A button that highlights a primary action that is elevated above the body content of a page; normally fixed to the
33
+ * bottom right of a screen.
34
+ *
35
+ * @name Fab
36
+ */
37
+ declare function Fab<As extends ElementType = 'button'>({ size, variant, showLabel: showLabelProp, as, placement, container, label, icon, toolTip, ...otherProps }: ElementProps<FabProps<As>, As>): import("@emotion/react/jsx-runtime").JSX.Element;
38
+ declare namespace Fab {
39
+ var bspkName: string;
40
+ }
41
+ export { Fab };
42
+ export declare const style: import("@emotion/react").SerializedStyles;
43
+ /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
package/Fab.js ADDED
@@ -0,0 +1,146 @@
1
+ import { jsxs, jsx } from '@emotion/react/jsx-runtime';
2
+ import { css } from '@emotion/react';
3
+ import { Tooltip } from './Tooltip.js';
4
+ import { isValidIcon } from './utils/children.js';
5
+ import { useErrorLogger } from './utils/errors.js';
6
+
7
+ /**
8
+ * A button that highlights a primary action that is elevated above the body content of a page; normally fixed to the
9
+ * bottom right of a screen.
10
+ *
11
+ * @name Fab
12
+ */
13
+ function Fab({ size = 'small', variant = 'primary', showLabel: showLabelProp = true, as, placement = 'bottom-right', container = 'local', label, icon, toolTip, ...otherProps }) {
14
+ // ignore showLabel=false if there is no icon
15
+ const hideLabel = showLabelProp === false && icon;
16
+ const { logError } = useErrorLogger();
17
+ logError(!!icon && !isValidIcon(icon), 'Button - The icon prop must be a valid icon element.');
18
+ const As = as || 'button';
19
+ const button = (jsxs(As, { ...otherProps, "aria-label": label, css: style, "data-container": container, "data-fab": true, "data-placement": placement, "data-round": hideLabel || undefined, "data-size": size, "data-variant": variant, children: [!!icon && jsx("span", { "data-fab-icon": true, children: icon }), !hideLabel && jsx("span", { "data-fab-label": true, children: label })] }));
20
+ return toolTip || hideLabel ? (jsx(Tooltip, { label: toolTip || label, placement: "top", children: button })) : (button);
21
+ }
22
+ Fab.bspkName = 'Fab';
23
+ const style = css `
24
+ --placement-offset: var(--spacing-sizing-04);
25
+
26
+ display: flex;
27
+ flex-direction: row;
28
+ align-items: center;
29
+ justify-content: center;
30
+ gap: var(--spacing-sizing-02);
31
+ border: none;
32
+ cursor: pointer;
33
+ box-sizing: border-box;
34
+ background: transparent;
35
+ text-decoration: none;
36
+ z-index: var(--z-index-fab);
37
+ box-shadow: var(--drop-shadow-float);
38
+ border-radius: var(--radius-small);
39
+
40
+ &[data-container='page'] {
41
+ position: fixed;
42
+ }
43
+
44
+ &[data-container='local'] {
45
+ position: absolute;
46
+ }
47
+
48
+ &[data-placement='top-right'] {
49
+ top: var(--placement-offset);
50
+ right: var(--placement-offset);
51
+ }
52
+
53
+ &[data-placement='bottom-right'] {
54
+ bottom: var(--placement-offset);
55
+ right: var(--placement-offset);
56
+ }
57
+
58
+ &[data-placement='top-left'] {
59
+ top: var(--placement-offset);
60
+ left: var(--placement-offset);
61
+ }
62
+
63
+ &[data-placement='bottom-left'] {
64
+ bottom: var(--placement-offset);
65
+ left: var(--placement-offset);
66
+ }
67
+
68
+ > [data-fab-icon] {
69
+ display: flex;
70
+ flex-direction: column;
71
+ align-items: center;
72
+ }
73
+
74
+ > [data-fab-label] {
75
+ display: flex;
76
+ flex-direction: row;
77
+ align-items: center;
78
+ }
79
+
80
+ &[data-size='small'] {
81
+ font: var(--labels-base);
82
+ height: var(--spacing-sizing-10);
83
+ padding: 0 var(--spacing-sizing-04);
84
+
85
+ > [data-fab-icon] {
86
+ width: var(--spacing-sizing-05);
87
+ }
88
+ }
89
+
90
+ &[data-size='medium'] {
91
+ font: var(--labels-large);
92
+ height: var(--spacing-sizing-14);
93
+ padding: 0 var(--spacing-sizing-07);
94
+
95
+ > [data-fab-icon] {
96
+ width: var(--spacing-sizing-06);
97
+ }
98
+ }
99
+
100
+ &[data-variant='primary'] {
101
+ --variant-background: var(--surface-brand-primary);
102
+ --variant-foreground: var(--foreground-brand-on-primary);
103
+ }
104
+
105
+ &[data-variant='secondary'] {
106
+ --variant-background: var(--surface-brand-secondary);
107
+ --variant-foreground: var(--foreground-brand-on-secondary);
108
+ }
109
+
110
+ &[data-variant='neutral'] {
111
+ --variant-background: var(--surface-neutral-t1-base);
112
+ --variant-foreground: var(--foreground-neutral-on-surface-variant-01);
113
+ }
114
+
115
+ background: var(--variant-background);
116
+ color: var(--variant-foreground);
117
+ --variant-gradient: linear-gradient(var(--variant-background), var(--variant-background));
118
+
119
+ [data-pseudo='hover'] > &,
120
+ &:hover {
121
+ background:
122
+ linear-gradient(var(--interactions-brand-hover-opacity), var(--interactions-brand-hover-opacity)),
123
+ var(--variant-gradient);
124
+ }
125
+
126
+ [data-pseudo='active'] > &,
127
+ &:active {
128
+ background:
129
+ linear-gradient(var(--interactions-brand-press-opacity), var(--interactions-brand-press-opacity)),
130
+ var(--variant-gradient);
131
+ }
132
+
133
+ [data-pseudo='focus'] > &,
134
+ &:focus-visible {
135
+ outline: solid 2px var(--stroke-neutral-focus);
136
+ }
137
+
138
+ &[data-round] {
139
+ border-radius: var(--radius-circular);
140
+ aspect-ratio: 1/1;
141
+ padding: 0;
142
+ }
143
+ `;
144
+
145
+ export { Fab, style };
146
+ //# sourceMappingURL=Fab.js.map
package/Fab.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Fab.js","sources":["src/Fab.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":";;;;;;AA2CA;;;;;AAKG;AACH,SAAS,GAAG,CAAoC,EAC5C,IAAI,GAAG,OAAO,EACd,OAAO,GAAG,SAAS,EACnB,SAAS,EAAE,aAAa,GAAG,IAAI,EAC/B,EAAE,EACF,SAAS,GAAG,cAAc,EAC1B,SAAS,GAAG,OAAO,EACnB,KAAK,EACL,IAAI,EACJ,OAAO,EACP,GAAG,UAAU,EACgB,EAAA;;AAE7B,IAAA,MAAM,SAAS,GAAG,aAAa,KAAK,KAAK,IAAI,IAAI,CAAC;AAElD,IAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,EAAE,CAAC;AACtC,IAAA,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,sDAAsD,CAAC,CAAC;AAE/F,IAAA,MAAM,EAAE,GAAgB,EAAE,IAAI,QAAQ,CAAC;AAEvC,IAAA,MAAM,MAAM,IACRA,KAAC,EAAE,EAAA,EAAA,GACK,UAAU,EACF,YAAA,EAAA,KAAK,EACjB,GAAG,EAAE,KAAK,EACM,gBAAA,EAAA,SAAS,sCAET,SAAS,EAAA,YAAA,EACb,SAAS,IAAI,SAAS,EACvB,WAAA,EAAA,IAAI,kBACD,OAAO,EAAA,QAAA,EAAA,CAEpB,CAAC,CAAC,IAAI,IAAIC,GAAqB,CAAA,MAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAI,GAAQ,EAC3C,CAAC,SAAS,IAAIA,GAAA,CAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,QAAA,EAAsB,KAAK,EAAQ,CAAA,CAAA,EAAA,CACjD,CACR,CAAC;AAEF,IAAA,OAAO,OAAO,IAAI,SAAS,IACvBA,GAAA,CAAC,OAAO,EAAA,EAAC,KAAK,EAAE,OAAO,IAAI,KAAK,EAAE,SAAS,EAAC,KAAK,EAAA,QAAA,EAC5C,MAAM,EAAA,CACD,KAEV,MAAM,CACT,CAAC;AACN,CAAC;AAED,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;AAId,MAAM,KAAK,GAAG,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,20 @@
1
+ export type FileUploadProps = {
2
+ /**
3
+ * The content of the fileupload.
4
+ *
5
+ * @required
6
+ */
7
+ children: string;
8
+ };
9
+ /**
10
+ * Component description coming soon.
11
+ *
12
+ * @name FileUpload
13
+ */
14
+ declare function FileUpload({ children }: FileUploadProps): import("@emotion/react/jsx-runtime").JSX.Element;
15
+ declare namespace FileUpload {
16
+ var bspkName: string;
17
+ }
18
+ export { FileUpload };
19
+ export declare const style: import("@emotion/react").SerializedStyles;
20
+ /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
package/FileUpload.js ADDED
@@ -0,0 +1,18 @@
1
+ import { jsx } from '@emotion/react/jsx-runtime';
2
+ import { css } from '@emotion/react';
3
+
4
+ /**
5
+ * Component description coming soon.
6
+ *
7
+ * @name FileUpload
8
+ */
9
+ function FileUpload({ children }) {
10
+ return (jsx("div", { css: style, "data-file-upload": true, children: children }));
11
+ }
12
+ FileUpload.bspkName = 'FileUpload';
13
+ const style = css `
14
+ display: flex;
15
+ `;
16
+
17
+ export { FileUpload, style };
18
+ //# sourceMappingURL=FileUpload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUpload.js","sources":["src/FileUpload.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;AAWA;;;;AAIG;AACH,SAAS,UAAU,CAAC,EAAE,QAAQ,EAAmB,EAAA;IAC7C,QACIA,aAAK,GAAG,EAAE,KAAK,EACV,kBAAA,EAAA,IAAA,EAAA,QAAA,EAAA,QAAQ,EACP,CAAA,EACR;AACN,CAAC;AAED,UAAU,CAAC,QAAQ,GAAG,YAAY,CAAC;AAI5B,MAAM,KAAK,GAAG,GAAG,CAAA,CAAA;;;;;;"}
package/FormField.d.ts ADDED
@@ -0,0 +1,48 @@
1
+ import { CommonProps } from './';
2
+ export type FieldControlProps = {
3
+ /**
4
+ * Marks the element as invalid and displays error message.
5
+ *
6
+ * @default false
7
+ */
8
+ invalid?: boolean;
9
+ /** The id of the control description. */
10
+ 'aria-describedby'?: string;
11
+ /** The id of the error message */
12
+ 'aria-errormessage'?: string;
13
+ };
14
+ export type FormFieldProps = CommonProps<'errorMessage' | 'required'> & {
15
+ /**
16
+ * The label of the field.
17
+ *
18
+ * @required
19
+ */
20
+ label: string;
21
+ /** The id of the control. */
22
+ controlId: string;
23
+ /**
24
+ * The children of the form field. This should be a control such as TextInput, Dropdown, DatePicker, or TimePicker.
25
+ *
26
+ * @type (childProps: FieldControlProps) => JSX.Element
27
+ * @required
28
+ */
29
+ children: (childProps: FieldControlProps) => JSX.Element;
30
+ /** The helperText of the field. */
31
+ helperText?: string;
32
+ /** The trailing element of the label. */
33
+ labelTrailing?: React.ReactNode;
34
+ };
35
+ /**
36
+ * Wrapper component for form controls.
37
+ *
38
+ * Children may be one of the following: TextInput, Dropdown, DatePicker, or TimePicker.
39
+ *
40
+ * @name FormField
41
+ */
42
+ declare function FormField({ label, errorMessage, helperText, children, labelTrailing, controlId, required }: FormFieldProps): import("@emotion/react/jsx-runtime").JSX.Element | null;
43
+ declare namespace FormField {
44
+ var bspkName: string;
45
+ }
46
+ export { FormField };
47
+ export declare const style: import("@emotion/react").SerializedStyles;
48
+ /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
package/FormField.js ADDED
@@ -0,0 +1,39 @@
1
+ import { jsxs, jsx } from '@emotion/react/jsx-runtime';
2
+ import { css } from '@emotion/react';
3
+ import { InlineAlert } from './InlineAlert.js';
4
+ import { Layout } from './Layout.js';
5
+ import { Txt } from './Txt.js';
6
+
7
+ /**
8
+ * Wrapper component for form controls.
9
+ *
10
+ * Children may be one of the following: TextInput, Dropdown, DatePicker, or TimePicker.
11
+ *
12
+ * @name FormField
13
+ */
14
+ function FormField({ label, errorMessage, helperText, children, labelTrailing, controlId, required }) {
15
+ const errorMessageId = errorMessage && `${controlId}-error-message`;
16
+ const helperTextId = helperText && `${controlId}-helper-text`;
17
+ if (typeof children !== 'function')
18
+ return null;
19
+ return (jsxs("div", { css: style, "data-form-field": true, children: [jsxs(Layout, { as: "header", children: [jsxs("label", { htmlFor: controlId, children: [jsx(Txt, { as: "span", variant: "labels-small", children: label }), required && (jsx(Txt, { as: "span", variant: "body-small", children: ' (Required)' }))] }), labelTrailing] }), children({
20
+ invalid: !!errorMessage,
21
+ 'aria-describedby': helperTextId,
22
+ 'aria-errormessage': errorMessageId,
23
+ }), errorMessage && (jsx(InlineAlert, { id: errorMessageId, variant: "error", children: errorMessage })), helperText && (jsx(Txt, { id: helperTextId, variant: "body-small", children: helperText }))] }));
24
+ }
25
+ FormField.bspkName = 'FormField';
26
+ const style = css `
27
+ box-sizing: border-box;
28
+ width: 100%;
29
+ display: flex;
30
+ flex-direction: column;
31
+ gap: var(--spacing-sizing-01);
32
+
33
+ header label {
34
+ flex-grow: 1;
35
+ }
36
+ `;
37
+
38
+ export { FormField, style };
39
+ //# sourceMappingURL=FormField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormField.js","sources":["src/FormField.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":";;;;;;AA2CA;;;;;;AAMG;AACH,SAAS,SAAS,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAkB,EAAA;AAChH,IAAA,MAAM,cAAc,GAAG,YAAY,IAAI,CAAG,EAAA,SAAS,gBAAgB,CAAC;AACpE,IAAA,MAAM,YAAY,GAAG,UAAU,IAAI,CAAG,EAAA,SAAS,cAAc,CAAC;IAE9D,IAAI,OAAO,QAAQ,KAAK,UAAU;AAAE,QAAA,OAAO,IAAI,CAAC;IAEhD,QACIA,IAAK,CAAA,KAAA,EAAA,EAAA,GAAG,EAAE,KAAK,sCACXA,IAAC,CAAA,MAAM,EAAC,EAAA,EAAE,EAAC,QAAQ,aACfA,IAAO,CAAA,OAAA,EAAA,EAAA,OAAO,EAAE,SAAS,EACrB,QAAA,EAAA,CAAAC,GAAA,CAAC,GAAG,EAAA,EAAC,EAAE,EAAC,MAAM,EAAC,OAAO,EAAC,cAAc,EAChC,QAAA,EAAA,KAAK,EACJ,CAAA,EACL,QAAQ,KACLA,GAAA,CAAC,GAAG,EAAA,EAAC,EAAE,EAAC,MAAM,EAAC,OAAO,EAAC,YAAY,EAC9B,QAAA,EAAA,aAAa,EACZ,CAAA,CACT,CACG,EAAA,CAAA,EACP,aAAa,CAAA,EAAA,CACT,EACR,QAAQ,CAAC;gBACN,OAAO,EAAE,CAAC,CAAC,YAAY;AACvB,gBAAA,kBAAkB,EAAE,YAAY;AAChC,gBAAA,mBAAmB,EAAE,cAAc;AACtC,aAAA,CAAC,EACD,YAAY,KACTA,GAAA,CAAC,WAAW,EAAC,EAAA,EAAE,EAAE,cAAc,EAAE,OAAO,EAAC,OAAO,EAC3C,QAAA,EAAA,YAAY,GACH,CACjB,EACA,UAAU,KACPA,GAAC,CAAA,GAAG,EAAC,EAAA,EAAE,EAAE,YAAY,EAAE,OAAO,EAAC,YAAY,EACtC,QAAA,EAAA,UAAU,GACT,CACT,CAAA,EAAA,CACC,EACR;AACN,CAAC;AAED,SAAS,CAAC,QAAQ,GAAG,WAAW,CAAC;AAI1B,MAAM,KAAK,GAAG,GAAG,CAAA,CAAA;;;;;;;;;;;;;;"}
package/GUIDELINES.md ADDED
@@ -0,0 +1,41 @@
1
+ # Developer Guidelines
2
+
3
+ ## Typescript
4
+
5
+ ### Basics
6
+
7
+ - Use `type` over `interface` to define object shapes. Types are more flexible and can define primitive, intersection,
8
+
9
+ ```typescript
10
+ export type CheckboxOptionProps = Pick<
11
+ CheckboxProps,
12
+ 'checked' | 'disabled' | 'indeterminate' | 'invalid' | 'name' | 'onChange' | 'readOnly' | 'value'
13
+ > &
14
+ Pick<ToggleOptionProps, 'description' | 'label'>;
15
+ ```
16
+
17
+ union, tuple, or different types of data. Interfaces can only be used to describe the shape of an object.
18
+
19
+ - Use `unknown` instead of `any` when the type is not known.
20
+ - Use `Object.freeze` to mark properties that should not be reassigned.
21
+ - Use `as const` over `enum` for related constants.
22
+ - Use `handleClick` over `onClick` for event handlers. See: https://react.dev/learn/responding-to-events#adding-event-handlers
23
+
24
+ ## Components
25
+
26
+ - Every Component gets a JSDoc.
27
+ - Use `function Component() {}` over `const Component = () => {}`. This is honestly just a preference, looks cleaner.
28
+ - Every Component get a Bespoke Name: `ComponentX.bspkName = 'ComponentX'`. It should be the same name as the Component.
29
+
30
+ ## Styles
31
+
32
+ ### Z-Indexes
33
+
34
+ - **Tooltip / Popover**: `1100`
35
+ - **Dialog**: `1000`
36
+ - **Dropdown**: `900`
37
+ - **Fab**: `800`
38
+ - **Navbar**: `700`
39
+ - **Footer**: `600`
40
+
41
+ <!--- Copyright 2025 Anywhere Real Estate - CC BY 4.0 -->
package/Image.d.ts ADDED
@@ -0,0 +1,20 @@
1
+ export type ImageProps = {
2
+ /**
3
+ * The content of the image.
4
+ *
5
+ * @required
6
+ */
7
+ children: string;
8
+ };
9
+ /**
10
+ * Component description coming soon.
11
+ *
12
+ * @name Image
13
+ */
14
+ declare function Image({ children }: ImageProps): import("@emotion/react/jsx-runtime").JSX.Element;
15
+ declare namespace Image {
16
+ var bspkName: string;
17
+ }
18
+ export { Image };
19
+ export declare const style: import("@emotion/react").SerializedStyles;
20
+ /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
package/Image.js ADDED
@@ -0,0 +1,18 @@
1
+ import { jsx } from '@emotion/react/jsx-runtime';
2
+ import { css } from '@emotion/react';
3
+
4
+ /**
5
+ * Component description coming soon.
6
+ *
7
+ * @name Image
8
+ */
9
+ function Image({ children }) {
10
+ return (jsx("div", { css: style, "data-image": true, children: children }));
11
+ }
12
+ Image.bspkName = 'Image';
13
+ const style = css `
14
+ display: flex;
15
+ `;
16
+
17
+ export { Image, style };
18
+ //# sourceMappingURL=Image.js.map
package/Image.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Image.js","sources":["src/Image.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;AAWA;;;;AAIG;AACH,SAAS,KAAK,CAAC,EAAE,QAAQ,EAAc,EAAA;IACnC,QACIA,aAAK,GAAG,EAAE,KAAK,EACV,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,QAAQ,EACP,CAAA,EACR;AACN,CAAC;AAED,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;AAIlB,MAAM,KAAK,GAAG,GAAG,CAAA,CAAA;;;;;;"}
package/Img.d.ts ADDED
@@ -0,0 +1,26 @@
1
+ import { ElementProps } from './';
2
+ export type ImgProps = {
3
+ /**
4
+ * The URL of the image.
5
+ *
6
+ * @required
7
+ */
8
+ src: string;
9
+ /**
10
+ * The alternative text for the image.
11
+ *
12
+ * @required
13
+ */
14
+ alt: string;
15
+ };
16
+ /**
17
+ * The Img component is used to display images on the page.
18
+ *
19
+ * @name Img
20
+ */
21
+ declare function Img({ alt, ...props }: ElementProps<ImgProps, 'img'>): import("@emotion/react/jsx-runtime").JSX.Element;
22
+ declare namespace Img {
23
+ var bspkName: string;
24
+ }
25
+ export { Img };
26
+ /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
package/Img.js ADDED
@@ -0,0 +1,20 @@
1
+ import { jsx } from '@emotion/react/jsx-runtime';
2
+ import { css } from '@emotion/react';
3
+
4
+ const style = {
5
+ container: css `
6
+ display: block;
7
+ `,
8
+ };
9
+ /**
10
+ * The Img component is used to display images on the page.
11
+ *
12
+ * @name Img
13
+ */
14
+ function Img({ alt, ...props }) {
15
+ return jsx("img", { ...props, alt: alt, css: style.container, "data-img": true });
16
+ }
17
+ Img.bspkName = 'Img';
18
+
19
+ export { Img };
20
+ //# sourceMappingURL=Img.js.map
package/Img.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Img.js","sources":["src/Img.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;AAIA,MAAM,KAAK,GAAG;IACV,SAAS,EAAE,GAAG,CAAA,CAAA;;AAEb,IAAA,CAAA;CACJ,CAAC;AAiBF;;;;AAIG;AACH,SAAS,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,EAAiC,EAAA;AACzD,IAAA,OAAOA,GAAS,CAAA,KAAA,EAAA,EAAA,GAAA,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,SAAS,qBAAa,CAAC;AACvE,CAAC;AAED,GAAG,CAAC,QAAQ,GAAG,KAAK;;;;"}
@@ -0,0 +1,31 @@
1
+ import { AlertVariant } from './';
2
+ export type InlineAlertProps = {
3
+ /**
4
+ * The content of the inline alert.
5
+ *
6
+ * @type multiline
7
+ * @required
8
+ */
9
+ children: string;
10
+ /**
11
+ * The color variant of the inline alert.
12
+ *
13
+ * @default informational
14
+ */
15
+ variant?: AlertVariant;
16
+ /** The id of the inline alert. */
17
+ id?: string;
18
+ };
19
+ /**
20
+ * Inline alerts provide contextual feedback messages for typical user actions with a handful of available and flexible
21
+ * alert messages.
22
+ *
23
+ * @name InlineAlert
24
+ */
25
+ declare function InlineAlert({ children, variant, id }: InlineAlertProps): import("@emotion/react/jsx-runtime").JSX.Element;
26
+ declare namespace InlineAlert {
27
+ var bspkName: string;
28
+ }
29
+ export { InlineAlert };
30
+ export declare const style: import("@emotion/react").SerializedStyles;
31
+ /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
package/InlineAlert.js ADDED
@@ -0,0 +1,73 @@
1
+ import { jsx, jsxs } from '@emotion/react/jsx-runtime';
2
+ import { SvgCheckCircleFill } from '@bspk/icons/CheckCircleFill';
3
+ import { SvgErrorFill } from '@bspk/icons/ErrorFill';
4
+ import { SvgInfoFill } from '@bspk/icons/InfoFill';
5
+ import { css } from '@emotion/react';
6
+ import { Txt } from './Txt.js';
7
+
8
+ /**
9
+ * Inline alerts provide contextual feedback messages for typical user actions with a handful of available and flexible
10
+ * alert messages.
11
+ *
12
+ * @name InlineAlert
13
+ */
14
+ function InlineAlert({ children, variant = 'informational', id }) {
15
+ return (jsxs("div", { css: style, "data-inline-alert": id, "data-variant": variant, children: [VARIANT_ICON[variant], jsx(Txt, { variant: "body-small", children: children })] }));
16
+ }
17
+ InlineAlert.bspkName = 'InlineAlert';
18
+ const style = css `
19
+ display: flex;
20
+ align-items: start;
21
+ justify-content: center;
22
+ flex-direction: row;
23
+ gap: var(--spacing-sizing-02);
24
+
25
+ [data-txt] {
26
+ flex: 1;
27
+ }
28
+
29
+ &[data-variant='error'] {
30
+ color: var(--status-error);
31
+ --first-tone: var(--status-error);
32
+ --second-tone: var(--status-on-information);
33
+ }
34
+
35
+ &[data-variant='success'] {
36
+ color: var(--status-success);
37
+ --first-tone: var(--status-success);
38
+ --second-tone: var(--status-on-success);
39
+ }
40
+
41
+ &[data-variant='warning'] {
42
+ color: var(--foreground-neutral-on-surface);
43
+ --first-tone: var(--status-warning);
44
+ --second-tone: var(--status-on-warning);
45
+ }
46
+
47
+ &[data-variant='informational'] {
48
+ color: var(--status-information);
49
+ --first-tone: var(--status-information);
50
+ --second-tone: var(--status-on-information);
51
+ }
52
+
53
+ svg {
54
+ color: var(--first-tone);
55
+ width: var(--spacing-sizing-05);
56
+ height: var(--spacing-sizing-05);
57
+
58
+ [data-second-tone] {
59
+ fill: var(--second-tone);
60
+ }
61
+ }
62
+ `;
63
+ // eslint-disable-next-line react/no-multi-comp
64
+ const SvgWarningTwoTone = () => (jsxs("svg", { fill: "none", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", children: [jsx("path", { d: "M2.72503 21C2.5417 21 2.37503 20.9542 2.22503 20.8625C2.07503 20.7708 1.95837 20.65 1.87503 20.5C1.7917 20.35 1.74587 20.1875 1.73753 20.0125C1.7292 19.8375 1.77503 19.6667 1.87503 19.5L11.125 3.5C11.225 3.33333 11.3542 3.20833 11.5125 3.125C11.6709 3.04167 11.8334 3 12 3C12.1667 3 12.3292 3.04167 12.4875 3.125C12.6459 3.20833 12.775 3.33333 12.875 3.5L22.125 19.5C22.225 19.6667 22.2709 19.8375 22.2625 20.0125C22.2542 20.1875 22.2084 20.35 22.125 20.5C22.0417 20.65 21.925 20.7708 21.775 20.8625C21.625 20.9542 21.4584 21 21.275 21H2.72503ZM12 18C12.2834 18 12.5209 17.9042 12.7125 17.7125C12.9042 17.5208 13 17.2833 13 17C13 16.7167 12.9042 16.4792 12.7125 16.2875C12.5209 16.0958 12.2834 16 12 16C11.7167 16 11.4792 16.0958 11.2875 16.2875C11.0959 16.4792 11 16.7167 11 17C11 17.2833 11.0959 17.5208 11.2875 17.7125C11.4792 17.9042 11.7167 18 12 18ZM12 15C12.2834 15 12.5209 14.9042 12.7125 14.7125C12.9042 14.5208 13 14.2833 13 14V11C13 10.7167 12.9042 10.4792 12.7125 10.2875C12.5209 10.0958 12.2834 10 12 10C11.7167 10 11.4792 10.0958 11.2875 10.2875C11.0959 10.4792 11 10.7167 11 11V14C11 14.2833 11.0959 14.5208 11.2875 14.7125C11.4792 14.9042 11.7167 15 12 15Z", fill: "currentColor" }), jsx("path", { d: "M12.7125 17.7125C12.5208 17.9042 12.2833 18 12 18C11.7167 18 11.4792 17.9042 11.2875 17.7125C11.0958 17.5208 11 17.2833 11 17C11 16.7167 11.0958 16.4792 11.2875 16.2875C11.4792 16.0958 11.7167 16 12 16C12.2833 16 12.5208 16.0958 12.7125 16.2875C12.9042 16.4792 13 16.7167 13 17C13 17.2833 12.9042 17.5208 12.7125 17.7125Z", "data-second-tone": true }), jsx("path", { d: "M12.7125 14.7125C12.5208 14.9042 12.2833 15 12 15C11.7167 15 11.4792 14.9042 11.2875 14.7125C11.0958 14.5208 11 14.2833 11 14V11C11 10.7167 11.0958 10.4792 11.2875 10.2875C11.4792 10.0958 11.7167 10 12 10C12.2833 10 12.5208 10.0958 12.7125 10.2875C12.9042 10.4792 13 10.7167 13 11V14C13 14.2833 12.9042 14.5208 12.7125 14.7125Z", "data-second-tone": true })] }));
65
+ const VARIANT_ICON = {
66
+ error: jsx(SvgErrorFill, {}),
67
+ informational: jsx(SvgInfoFill, {}),
68
+ success: jsx(SvgCheckCircleFill, {}),
69
+ warning: jsx(SvgWarningTwoTone, {}),
70
+ };
71
+
72
+ export { InlineAlert, style };
73
+ //# sourceMappingURL=InlineAlert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InlineAlert.js","sources":["src/InlineAlert.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":";;;;;;;AA4BA;;;;;AAKG;AACH,SAAS,WAAW,CAAC,EAAE,QAAQ,EAAE,OAAO,GAAG,eAAe,EAAE,EAAE,EAAoB,EAAA;IAC9E,QACIA,IAAK,CAAA,KAAA,EAAA,EAAA,GAAG,EAAE,KAAK,EAAqB,mBAAA,EAAA,EAAE,EAAgB,cAAA,EAAA,OAAO,EACxD,QAAA,EAAA,CAAA,YAAY,CAAC,OAAO,CAAC,EACtBC,GAAA,CAAC,GAAG,EAAA,EAAC,OAAO,EAAC,YAAY,EAAA,QAAA,EAAE,QAAQ,EAAA,CAAO,CACxC,EAAA,CAAA,EACR;AACN,CAAC;AAED,WAAW,CAAC,QAAQ,GAAG,aAAa,CAAC;AAI9B,MAAM,KAAK,GAAG,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4CtB;AAEF;AACA,MAAM,iBAAiB,GAAG,OACtBD,cAAK,IAAI,EAAC,MAAM,EAAC,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,4BAA4B,aACnEC,GACI,CAAA,MAAA,EAAA,EAAA,CAAC,EAAC,spCAAspC,EACxpC,IAAI,EAAC,cAAc,EACrB,CAAA,EACFA,cACI,CAAC,EAAC,mUAAmU,EAEvU,kBAAA,EAAA,IAAA,EAAA,CAAA,EACFA,cACI,CAAC,EAAC,yUAAyU,EAE7U,kBAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,CACA,CACT,CAAC;AAEF,MAAM,YAAY,GAAoC;IAClD,KAAK,EAAEA,GAAC,CAAA,YAAY,EAAG,EAAA,CAAA;IACvB,aAAa,EAAEA,GAAC,CAAA,WAAW,EAAG,EAAA,CAAA;IAC9B,OAAO,EAAEA,GAAC,CAAA,kBAAkB,EAAG,EAAA,CAAA;IAC/B,OAAO,EAAEA,GAAC,CAAA,iBAAiB,EAAG,EAAA,CAAA;CACjC;;;;"}