@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
package/ListItem.js ADDED
@@ -0,0 +1,207 @@
1
+ import { jsx, jsxs } from '@emotion/react/jsx-runtime';
2
+ import { css } from '@emotion/react';
3
+ import { Button } from './Button.js';
4
+ import { getChildrenElements } from './utils/children.js';
5
+ import { useErrorLogger } from './utils/errors.js';
6
+
7
+ const LEADING_COMPONENTS = Object.freeze(['Icon', 'Img', 'Profile']);
8
+ const TRAILING_COMPONENTS = Object.freeze([
9
+ 'ListItemButton',
10
+ 'Checkbox',
11
+ 'Icon',
12
+ 'Radio',
13
+ 'Switch',
14
+ 'Tag',
15
+ 'Txt',
16
+ ]);
17
+ /**
18
+ * A hybrid interactive component that is used frequently to organize content and offers a wide range of control and
19
+ * navigation in most experiences.
20
+ *
21
+ * With its flexible and simple structure, the list item element is core and can meet the needs of many uses cases.
22
+ *
23
+ * The ListItem has three main elements: leading element, label, and trailing element.
24
+ *
25
+ * Leading elements may be one of the following [Icon](/icons), Img, Profile.
26
+ *
27
+ * Trailing elements may be one of the following [Icon](/icons), Checkbox, ListItemButton, Radio, Switch, Tag, Txt.
28
+ *
29
+ * The ListItemButton is a more limited Button with context specific options.
30
+ *
31
+ * @subComponents ListItemButton
32
+ *
33
+ * @name ListItem
34
+ */
35
+ function ListItem({ as, disabled, invalid, leading: leadingProp, trailing: trailingProp, label, subText, active, readOnly, ...props }) {
36
+ let As = as || 'div';
37
+ const { logError } = useErrorLogger();
38
+ const { leading, trailing } = useChildren(leadingProp, trailingProp);
39
+ if (!label)
40
+ return;
41
+ const requiredAs = [];
42
+ if ('href' in props)
43
+ requiredAs.push('a');
44
+ if (trailing?.name) {
45
+ // if trailing is a ListItemButton and As is a button, change As to div
46
+ if (trailing?.name === 'ListItemButton')
47
+ requiredAs.push('div');
48
+ if (['Checkbox', 'Radio', 'Switch'].includes(trailing.name))
49
+ requiredAs.push('label');
50
+ }
51
+ if (requiredAs.length === 1) {
52
+ As = requiredAs[0];
53
+ }
54
+ const requiredAsError = logError(requiredAs.length > 1, `ListItem: Multiple required elements detected. Using ${As} as the element type.`);
55
+ if (requiredAsError)
56
+ As = requiredAs[0];
57
+ if (!As && 'onClick' in props)
58
+ As = 'button';
59
+ const actionable = ('onClick' in props || 'href' in props) && !disabled && !readOnly;
60
+ return (jsx(As, { ...props, "aria-disabled": disabled || undefined, "aria-invalid": invalid || undefined, css: style, "data-action": actionable || undefined, "data-active": active || undefined, "data-component": leading?.name || undefined, "data-list-item": true, "data-readonly": readOnly || undefined, role: as !== 'button' && 'onClick' in props ? 'button' : undefined, children: jsxs("span", { "data-inner": true, children: [leading && (jsx("span", { "data-component": leading.name, "data-leading": true, children: leading.child })), jsxs("span", { "data-item-label": true, children: [jsx("span", { "data-text": true, children: label }), subText && jsx("span", { "data-sub-text": true, children: subText })] }), trailing && (jsx("span", { "data-component": trailing.name, "data-trailing": true, children: trailing.child }))] }) }));
61
+ }
62
+ ListItem.bspkName = 'ListItem';
63
+ /** A button that can be used as a trailing element in a ListItem. */
64
+ // eslint-disable-next-line react/no-multi-comp
65
+ function ListItemButton({ label, icon, ...buttonProps }) {
66
+ return jsx(Button, { icon: icon, label: label, showLabel: false, ...buttonProps, size: "large", variant: "tertiary" });
67
+ }
68
+ ListItemButton.bspkName = 'ListItemButton';
69
+ ListItem.Button = ListItemButton;
70
+ const style = css `
71
+ display: block;
72
+ width: 100%;
73
+ box-sizing: border-box;
74
+ padding: 0 var(--spacing-sizing-02);
75
+ background: unset;
76
+ border: unset;
77
+ margin: unset;
78
+ text-decoration: unset;
79
+ user-select: none;
80
+ color: var(--foreground-neutral-on-surface);
81
+
82
+ &:is(a),
83
+ &:is(button),
84
+ &[onclick],
85
+ &[role='button'] {
86
+ cursor: pointer;
87
+ }
88
+
89
+ [data-inner] {
90
+ height: 100%;
91
+ width: 100%;
92
+ min-height: var(--spacing-sizing-09);
93
+ box-sizing: border-box;
94
+ display: flex;
95
+ flex-direction: row;
96
+ gap: var(--spacing-sizing-03);
97
+ padding: var(--spacing-sizing-02) 0;
98
+ justify-items: stretch;
99
+
100
+ & > * {
101
+ min-height: 100%;
102
+ width: fit-content;
103
+ display: flex;
104
+ flex-direction: column;
105
+ justify-content: space-around;
106
+ flex: 1;
107
+ flex-shrink: 0;
108
+
109
+ svg {
110
+ width: 24px;
111
+ max-width: unset;
112
+ }
113
+ }
114
+ }
115
+
116
+ /* &:has(+ [data-list-item]) {
117
+ [data-inner] {
118
+ border-bottom: 1px solid var(--stroke-neutral-low);
119
+ }
120
+ } */
121
+
122
+ &[data-action] {
123
+ [data-pseudo='focus'] &,
124
+ &:focus-visible,
125
+ &:has(*:focus-visible) {
126
+ //outline: 2px solid var(--stroke-neutral-focus);
127
+ box-shadow: inset var(--stroke-neutral-focus) 0 0 0 2px;
128
+
129
+ [data-inner] {
130
+ border-color: transparent;
131
+ }
132
+ }
133
+ }
134
+
135
+ [data-component='Img'] > img {
136
+ height: 36px;
137
+ width: 36px;
138
+ max-width: unset;
139
+ }
140
+
141
+ &:is(label) {
142
+ [data-inner] {
143
+ border-bottom: 0;
144
+ gap: var(--spacing-sizing-02);
145
+ }
146
+ }
147
+
148
+ [data-item-label] {
149
+ flex: 100%;
150
+ text-align: left;
151
+
152
+ [data-text] {
153
+ font: var(--labels-base);
154
+ color: var(--foreground-neutral-on-surface);
155
+ }
156
+
157
+ [data-sub-text] {
158
+ font: var(--body-small);
159
+ color: var(--foreground-neutral-on-surface-variant-01);
160
+ }
161
+ }
162
+
163
+ &[aria-disabled] {
164
+ [data-text],
165
+ [data-sub-text] {
166
+ color: var(--foreground-neutral-disabled-on-surface);
167
+ }
168
+ }
169
+
170
+ &[data-action] {
171
+ [data-pseudo='hover'] &,
172
+ &:hover {
173
+ background-color: var(--interactions-neutral-hover-opacity);
174
+ }
175
+
176
+ [data-pseudo='active'] &,
177
+ &[data-active],
178
+ &:active {
179
+ background-color: var(--interactions-neutral-press-opacity);
180
+ }
181
+ }
182
+ `;
183
+ function useChildren(leadingProp, trailingProp) {
184
+ const { logError } = useErrorLogger();
185
+ let leading = getChildrenElements(leadingProp)[0] || null;
186
+ const trailingElements = getChildrenElements(trailingProp);
187
+ let trailing = trailingElements[0] || null;
188
+ if (leading) {
189
+ const valid = LEADING_COMPONENTS.includes(leading.name);
190
+ if (!valid)
191
+ leading = null;
192
+ logError(!valid, `ListItem - Leading child is invalid. Must be one of:${LEADING_COMPONENTS} Elements: ${leading?.name || 'None'}`);
193
+ }
194
+ if (trailing) {
195
+ const valid = TRAILING_COMPONENTS.includes(trailing.name);
196
+ if (!valid)
197
+ trailing = null;
198
+ logError(!valid, `ListItem - Trailing child is invalid. Must be one of:${TRAILING_COMPONENTS} Elements: ${trailing?.name || 'None'}`);
199
+ }
200
+ return {
201
+ leading,
202
+ trailing,
203
+ };
204
+ }
205
+
206
+ export { LEADING_COMPONENTS, ListItem, TRAILING_COMPONENTS, style };
207
+ //# sourceMappingURL=ListItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListItem.js","sources":["src/ListItem.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":"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"}
package/Menu.d.ts ADDED
@@ -0,0 +1,86 @@
1
+ import { ComponentProps, MouseEvent as ReactMouseEvent } from 'react';
2
+ import { ListItem } from './ListItem';
3
+ import { CommonProps, ElementProps } from './';
4
+ export declare const MIN_ITEM_COUNT = 3;
5
+ export declare const MAX_ITEM_COUNT = 10;
6
+ export declare function menuItemId(menuId: string, index: number): string;
7
+ /** The props for the renderListItem function. Useful for customizing menu list items. */
8
+ export type RenderListItemParams<M extends MenuItem> = Pick<MenuProps<M>, 'activeIndex' | 'isMulti' | 'selectedValues'> & {
9
+ index: number;
10
+ item: M;
11
+ menuId: string;
12
+ selected: boolean;
13
+ itemId?: string;
14
+ };
15
+ /** The props for the menu items. */
16
+ export type MenuItem = CommonProps<'disabled'> & {
17
+ /** The content to display in the menu item. */
18
+ label: string;
19
+ /** The value of the menu item. */
20
+ value: string;
21
+ /** The unique id of the menu item. */
22
+ id?: string;
23
+ };
24
+ export type MenuProps<Item extends MenuItem = MenuItem> = CommonProps<'disabled' | 'id'> & {
25
+ /**
26
+ * The number of items to display in the menu
27
+ *
28
+ * @default 5
29
+ * @minimum 3
30
+ * @maximum 10
31
+ */
32
+ itemCount?: number;
33
+ /**
34
+ * Content to display in the menu.
35
+ *
36
+ * @type MenuItems
37
+ */
38
+ items?: Item[];
39
+ /** A ref to the inner div element. */
40
+ innerRef?: (node: HTMLElement | null) => void;
41
+ /**
42
+ * Message to display when no results are found
43
+ *
44
+ * @type multiline
45
+ */
46
+ noResultsMessage?: string;
47
+ /** The index of the currently highlighted item. */
48
+ activeIndex?: number;
49
+ /** The values of the selected items */
50
+ selectedValues?: string[];
51
+ /**
52
+ * A function which given data about the list item returns additional list item props used to render the list items.
53
+ *
54
+ * @type (props: RenderListItemParams) => ComponentProps<typeof ListItem>;
55
+ * @param {RenderListItemParams} props
56
+ * @returns {ComponentProps<typeof ListItem>}
57
+ */
58
+ renderListItem?: (props: RenderListItemParams<Item>) => Partial<ComponentProps<typeof ListItem>>;
59
+ /**
60
+ * Whether the menu allows multiple selections.
61
+ *
62
+ * @default false
63
+ */
64
+ isMulti?: boolean;
65
+ /**
66
+ * The function to call when the selected values change.
67
+ *
68
+ * @type (selectedValues: String[], event: ChangeEvent) => void
69
+ * @param {string[]} selectedValues
70
+ * @param {ChangeEvent} event
71
+ * @returns {void}
72
+ */
73
+ onChange?: (selectedValues: string[], event?: ReactMouseEvent<HTMLButtonElement, MouseEvent>) => void;
74
+ };
75
+ /**
76
+ * A container housing a simple list of options presented to the user to select one option at a time.
77
+ *
78
+ * @name Menu
79
+ */
80
+ declare function Menu<Item extends MenuItem = MenuItem>({ itemCount: itemCountProp, items: itemsProp, noResultsMessage, innerRef, onChange, activeIndex, selectedValues, disabled, id: idProp, renderListItem, isMulti, ...props }: ElementProps<MenuProps<Item>, 'div'>): import("@emotion/react/jsx-runtime").JSX.Element;
81
+ declare namespace Menu {
82
+ var bspkName: string;
83
+ }
84
+ export { Menu };
85
+ export declare const style: import("@emotion/react").SerializedStyles;
86
+ /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
package/Menu.js ADDED
@@ -0,0 +1,98 @@
1
+ import { css, createElement } from '@emotion/react';
2
+ import { jsx, jsxs, Fragment } from '@emotion/react/jsx-runtime';
3
+ import { useMemo } from 'react';
4
+ import { Checkbox } from './Checkbox.js';
5
+ import { ListItem } from './ListItem.js';
6
+ import { Txt } from './Txt.js';
7
+ import { useId } from './hooks/useId.js';
8
+
9
+ const MIN_ITEM_COUNT = 3;
10
+ const MAX_ITEM_COUNT = 10;
11
+ function menuItemId(menuId, index) {
12
+ return `menu-${menuId}-item-${index}`;
13
+ }
14
+ /**
15
+ * A container housing a simple list of options presented to the user to select one option at a time.
16
+ *
17
+ * @name Menu
18
+ */
19
+ function Menu({ itemCount: itemCountProp = 5, items: itemsProp = [], noResultsMessage, innerRef, onChange, activeIndex, selectedValues = [], disabled, id: idProp, renderListItem, isMulti, ...props }) {
20
+ const menuId = useId(idProp);
21
+ const items = Array.isArray(itemsProp) ? itemsProp : [];
22
+ const itemCount = useMemo(() =>
23
+ // Ensure itemCount is within the range of items.length
24
+ Math.min(items.length,
25
+ // pin itemCountProp to a range of 3 to 10
26
+ Math.max(MIN_ITEM_COUNT, Math.min(itemCountProp, MAX_ITEM_COUNT))), [itemCountProp, items.length]);
27
+ return (jsx("div", { ...props, css: style, "data-disabled": disabled || undefined, "data-item-count": itemCount || undefined, "data-menu": "", "data-no-items": !items.length || undefined, id: menuId, ref: innerRef, role: "listbox", style: { ...props.style, '--item-count': itemCount }, children: items.length ? (items.map((item, index) => {
28
+ const itemId = item.id || menuItemId(menuId, index);
29
+ const selected = Array.isArray(selectedValues) && selectedValues.includes(item.value);
30
+ const renderProps = renderListItem?.({
31
+ activeIndex,
32
+ index,
33
+ item,
34
+ selectedValues,
35
+ isMulti,
36
+ menuId: menuId || '',
37
+ selected,
38
+ itemId,
39
+ });
40
+ return (createElement(ListItem, { ...renderProps, active: activeIndex === index || undefined, "aria-disabled": item.disabled || undefined, "aria-posinset": index + 1, "aria-selected": selected || undefined, as: "button", "data-menu-item": true, "data-selected": selected || undefined, disabled: item.disabled || undefined, id: itemId, key: itemId, label: renderProps?.label?.toString() || item.label?.toString(), onClick: (event) => {
41
+ if (renderProps)
42
+ renderProps?.onClick?.(event);
43
+ if (onChange) {
44
+ if (!isMulti) {
45
+ onChange?.([item.value], event);
46
+ return;
47
+ }
48
+ onChange(selected
49
+ ? selectedValues.filter((value) => value !== item.value)
50
+ : [...selectedValues, item.value], event);
51
+ }
52
+ }, role: "option", tabIndex: -1, trailing: isMulti ? (jsx(Checkbox, { "aria-label": item.label, checked: selected, name: item.value, onChange: (checked) => {
53
+ onChange?.(checked
54
+ ? selectedValues.filter((value) => value !== item.value)
55
+ : [...selectedValues, item.value]);
56
+ }, value: item.value })) : (renderProps?.trailing) }));
57
+ })) : (jsxs(Fragment, { children: [jsx(Txt, { as: "div", variant: "heading-h5", children: "No results found" }), jsx(Txt, { as: "div", variant: "body-base", children: noResultsMessage })] })) }));
58
+ }
59
+ Menu.bspkName = 'Menu';
60
+ const style = css `
61
+ /**
62
+ --item-count is set via inline style. :)
63
+ */
64
+
65
+ width: 332px;
66
+ border: 1px solid var(--stroke-neutral-low);
67
+ background-color: var(--surface-neutral-t1-base);
68
+ box-shadow: var(--drop-shadow-float);
69
+ border-radius: var(--radius-large);
70
+ display: flex;
71
+ flex-direction: column;
72
+
73
+ --item-size: var(--spacing-sizing-12);
74
+
75
+ &[data-floating] {
76
+ z-index: var(--z-index-dropdown);
77
+ }
78
+
79
+ &[data-item-count] {
80
+ height: calc(var(--item-count) * var(--item-size));
81
+ overflow-y: scroll;
82
+ }
83
+
84
+ &[data-no-items] {
85
+ padding: var(--spacing-sizing-08) var(--spacing-sizing-04);
86
+ align-items: center;
87
+ justify-content: center;
88
+ gap: var(--spacing-sizing-03);
89
+ }
90
+
91
+ [data-list-item] {
92
+ min-height: var(--item-size);
93
+ height: var(--item-size);
94
+ }
95
+ `;
96
+
97
+ export { MAX_ITEM_COUNT, MIN_ITEM_COUNT, Menu, menuItemId, style };
98
+ //# sourceMappingURL=Menu.js.map
package/Menu.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Menu.js","sources":["src/Menu.tsx"],"sourcesContent":[null],"names":["_jsx","_createElement","_jsxs","_Fragment"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { ElementType } from 'react';
2
+ import { ButtonProps } from './Button';
3
+ import { ElementProps } from '.';
4
+ export type MenuButtonProps<As extends ElementType> = Pick<ButtonProps<As>, 'as' | 'onClick'>;
5
+ /**
6
+ * Utility component used within top navigation.
7
+ *
8
+ * @name MenuButton
9
+ */
10
+ declare function MenuButton<As extends ElementType = 'button'>({ as, ...props }: ElementProps<MenuButtonProps<As>, As>): import("@emotion/react/jsx-runtime").JSX.Element;
11
+ declare namespace MenuButton {
12
+ var bspkName: string;
13
+ }
14
+ export { MenuButton };
15
+ export declare const style: import("@emotion/react").SerializedStyles;
16
+ /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
package/MenuButton.js ADDED
@@ -0,0 +1,30 @@
1
+ import { jsx } from '@emotion/react/jsx-runtime';
2
+ import { SvgMenu } from '@bspk/icons/Menu';
3
+ import { css } from '@emotion/react';
4
+
5
+ /**
6
+ * Utility component used within top navigation.
7
+ *
8
+ * @name MenuButton
9
+ */
10
+ function MenuButton({ as, ...props }) {
11
+ return (jsx("button", { ...props, css: style, children: jsx(SvgMenu, {}) }));
12
+ }
13
+ MenuButton.bspkName = 'MenuButton';
14
+ const style = css `
15
+ background: none;
16
+ border: none;
17
+ cursor: pointer;
18
+ padding: 0;
19
+ height: 48px;
20
+ width: auto;
21
+ display: flex;
22
+ flex-direction: row;
23
+ align-items: center;
24
+ justify-content: center;
25
+ padding-top: var(--spacing-sizing-01);
26
+ color: var(--foreground-neutral-on-surface-variant-01);
27
+ `;
28
+
29
+ export { MenuButton, style };
30
+ //# sourceMappingURL=MenuButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuButton.js","sources":["src/MenuButton.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;;AAUA;;;;AAIG;AACH,SAAS,UAAU,CAAoC,EAAE,EAAE,EAAE,GAAG,KAAK,EAAyC,EAAA;AAG1G,IAAA,QACIA,GAAA,CAAA,QAAA,EAAA,EAAA,GAAY,KAAK,EAAE,GAAG,EAAE,KAAK,EAAA,QAAA,EACzBA,GAAC,CAAA,OAAO,EAAG,EAAA,CAAA,EAAA,CACN,EACX;AACN,CAAC;AAED,UAAU,CAAC,QAAQ,GAAG,YAAY,CAAC;AAI5B,MAAM,KAAK,GAAG,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;"}
package/Modal.d.ts ADDED
@@ -0,0 +1,31 @@
1
+ import { DialogProps } from './Dialog';
2
+ export type ModalProps = DialogProps & {
3
+ /**
4
+ * Modal header.
5
+ *
6
+ * @required
7
+ */
8
+ header: string;
9
+ /**
10
+ * Modal description.
11
+ *
12
+ * @required
13
+ */
14
+ description: string;
15
+ };
16
+ /**
17
+ * Modals display important information that users need to acknowledge. They appear over the interface and block further
18
+ * interactions until an action is selected. Modal is a wrapper around the Dialog component that provides a header and
19
+ * footer for the dialog.
20
+ *
21
+ * TODO: Add support for custom header and footer
22
+ *
23
+ * @name Modal
24
+ */
25
+ declare function Modal({ header, description, children, id: idProp, ...dialogProps }: ModalProps): import("@emotion/react/jsx-runtime").JSX.Element;
26
+ declare namespace Modal {
27
+ var bspkName: string;
28
+ }
29
+ export { Modal };
30
+ export declare const style: import("@emotion/react").SerializedStyles;
31
+ /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
package/Modal.js ADDED
@@ -0,0 +1,53 @@
1
+ import { jsx, jsxs } from '@emotion/react/jsx-runtime';
2
+ import { SvgClose } from '@bspk/icons/Close';
3
+ import { css } from '@emotion/react';
4
+ import { useMemo } from 'react';
5
+ import { Button } from './Button.js';
6
+ import { Dialog } from './Dialog.js';
7
+ import { Txt } from './Txt.js';
8
+ import { useId } from './hooks/useId.js';
9
+ import { srOnly } from './utils/srOnly.js';
10
+
11
+ /**
12
+ * Modals display important information that users need to acknowledge. They appear over the interface and block further
13
+ * interactions until an action is selected. Modal is a wrapper around the Dialog component that provides a header and
14
+ * footer for the dialog.
15
+ *
16
+ * TODO: Add support for custom header and footer
17
+ *
18
+ * @name Modal
19
+ */
20
+ function Modal({
21
+ //
22
+ header, description, children, id: idProp, ...dialogProps }) {
23
+ const id = useId(idProp);
24
+ const ids = useMemo(() => ({
25
+ description: `dialog-dialog-${id}-description`,
26
+ title: `dialog-dialog-${id}-title`,
27
+ }), [id]);
28
+ return (jsx(Dialog, { ...dialogProps, "aria-describedby": ids.description, "aria-labelledby": ids.title, children: jsxs("div", { css: style, "data-modal-body": true, children: [jsxs("header", { children: [jsx(Txt, { as: "div", "data-dialog-title": true, id: ids.title, variant: "heading-h4", children: header }), jsx(Button, { icon: jsx(SvgClose, {}), label: "close", onClick: dialogProps.onClose, showLabel: false, variant: "tertiary" })] }), jsxs("main", { children: [jsx("p", { ...srOnly(children), "data-dialog-description": true, id: ids.description, children: description }), children] })] }) }));
29
+ }
30
+ Modal.bspkName = 'Modal';
31
+ const style = css `
32
+ display: flex;
33
+ flex-direction: column;
34
+ overflow: hidden;
35
+ gap: var(--spacing-sizing-02);
36
+ padding: var(--spacing-sizing-04);
37
+
38
+ > header {
39
+ display: flex;
40
+ flex-direction: row;
41
+ justify-content: space-between;
42
+ align-items: center;
43
+ gap: var(--spacing-sizing-04);
44
+ }
45
+
46
+ main {
47
+ overflow: auto;
48
+ flex: 1;
49
+ }
50
+ `;
51
+
52
+ export { Modal, style };
53
+ //# sourceMappingURL=Modal.js.map
package/Modal.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Modal.js","sources":["src/Modal.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":";;;;;;;;;;AAyBA;;;;;;;;AAQG;AACH,SAAS,KAAK,CAAC;AACX;AACA,MAAM,EACN,WAAW,EACX,QAAQ,EACR,EAAE,EAAE,MAAM,EACV,GAAG,WAAW,EACL,EAAA;AACT,IAAA,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AAEzB,IAAA,MAAM,GAAG,GAAG,OAAO,CACf,OAAO;QACH,WAAW,EAAE,CAAiB,cAAA,EAAA,EAAE,CAAc,YAAA,CAAA;QAC9C,KAAK,EAAE,CAAiB,cAAA,EAAA,EAAE,CAAQ,MAAA,CAAA;AACrC,KAAA,CAAC,EACF,CAAC,EAAE,CAAC,CACP,CAAC;AAEF,IAAA,QACIA,GAAC,CAAA,MAAM,OAAK,WAAW,EAAA,kBAAA,EAAoB,GAAG,CAAC,WAAW,qBAAmB,GAAG,CAAC,KAAK,EAClF,QAAA,EAAAC,IAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,KAAK,sCACXA,IACI,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA,CAAAD,GAAA,CAAC,GAAG,EAAC,EAAA,EAAE,EAAC,KAAK,EAAA,mBAAA,EAAA,IAAA,EAAmB,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,EAAC,YAAY,YAC9D,MAAM,EAAA,CACL,EACNA,GAAC,CAAA,MAAM,IACH,IAAI,EAAEA,GAAC,CAAA,QAAQ,KAAG,EAClB,KAAK,EAAC,OAAO,EACb,OAAO,EAAE,WAAW,CAAC,OAAO,EAC5B,SAAS,EAAE,KAAK,EAChB,OAAO,EAAC,UAAU,EACpB,CAAA,CAAA,EAAA,CACG,EACTC,IACI,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAAD,GAAA,CAAA,GAAA,EAAA,EAAA,GAAO,MAAM,CAAC,QAAQ,CAAC,EAA0B,yBAAA,EAAA,IAAA,EAAA,EAAE,EAAE,GAAG,CAAC,WAAW,EAC/D,QAAA,EAAA,WAAW,GACZ,EACH,QAAQ,IACN,CACL,EAAA,CAAA,EAAA,CACD,EACX;AACN,CAAC;AAED,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;AAIlB,MAAM,KAAK,GAAG,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,20 @@
1
+ export type MultiSelectionProps = {
2
+ /**
3
+ * The content of the multi selection.
4
+ *
5
+ * @required
6
+ */
7
+ children: string;
8
+ };
9
+ /**
10
+ * Component description coming soon.
11
+ *
12
+ * @name MultiSelection
13
+ */
14
+ declare function MultiSelection({ children }: MultiSelectionProps): import("@emotion/react/jsx-runtime").JSX.Element;
15
+ declare namespace MultiSelection {
16
+ var bspkName: string;
17
+ }
18
+ export { MultiSelection };
19
+ export declare const style: import("@emotion/react").SerializedStyles;
20
+ /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
@@ -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 MultiSelection
8
+ */
9
+ function MultiSelection({ children }) {
10
+ return (jsx("div", { css: style, "data-multi-selection": true, children: children }));
11
+ }
12
+ MultiSelection.bspkName = 'MultiSelection';
13
+ const style = css `
14
+ display: flex;
15
+ `;
16
+
17
+ export { MultiSelection, style };
18
+ //# sourceMappingURL=MultiSelection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiSelection.js","sources":["src/MultiSelection.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;AAWA;;;;AAIG;AACH,SAAS,cAAc,CAAC,EAAE,QAAQ,EAAuB,EAAA;IACrD,QACIA,aAAK,GAAG,EAAE,KAAK,EACV,sBAAA,EAAA,IAAA,EAAA,QAAA,EAAA,QAAQ,EACP,CAAA,EACR;AACN,CAAC;AAED,cAAc,CAAC,QAAQ,GAAG,gBAAgB,CAAC;AAIpC,MAAM,KAAK,GAAG,GAAG,CAAA,CAAA;;;;;;"}
@@ -0,0 +1,20 @@
1
+ export type NavigationRailProps = {
2
+ /**
3
+ * The content of the navigation rail.
4
+ *
5
+ * @required
6
+ */
7
+ children: string;
8
+ };
9
+ /**
10
+ * Component description coming soon.
11
+ *
12
+ * @name NavigationRail
13
+ */
14
+ declare function NavigationRail({ children }: NavigationRailProps): import("@emotion/react/jsx-runtime").JSX.Element;
15
+ declare namespace NavigationRail {
16
+ var bspkName: string;
17
+ }
18
+ export { NavigationRail };
19
+ export declare const style: import("@emotion/react").SerializedStyles;
20
+ /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
@@ -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 NavigationRail
8
+ */
9
+ function NavigationRail({ children }) {
10
+ return (jsx("div", { css: style, "data-navigation-rail": true, children: children }));
11
+ }
12
+ NavigationRail.bspkName = 'NavigationRail';
13
+ const style = css `
14
+ display: flex;
15
+ `;
16
+
17
+ export { NavigationRail, style };
18
+ //# sourceMappingURL=NavigationRail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavigationRail.js","sources":["src/NavigationRail.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;AAWA;;;;AAIG;AACH,SAAS,cAAc,CAAC,EAAE,QAAQ,EAAuB,EAAA;IACrD,QACIA,aAAK,GAAG,EAAE,KAAK,EACV,sBAAA,EAAA,IAAA,EAAA,QAAA,EAAA,QAAQ,EACP,CAAA,EACR;AACN,CAAC;AAED,cAAc,CAAC,QAAQ,GAAG,gBAAgB,CAAC;AAIpC,MAAM,KAAK,GAAG,GAAG,CAAA,CAAA;;;;;;"}
@@ -0,0 +1,17 @@
1
+ import { FormFieldProps } from './FormField';
2
+ import { NumberInputProps } from './NumberInput';
3
+ export type NumberFieldProps = Pick<NumberInputProps, 'centered' | 'disabled' | 'id' | 'invalid' | 'name' | 'onChange' | 'readOnly' | 'size' | 'value'> & Pick<FormFieldProps, 'controlId' | 'errorMessage' | 'helperText' | 'label' | 'labelTrailing' | 'required'>;
4
+ /**
5
+ * A input element that allows users to either input a numerical value or singularly increase or decrease the values by
6
+ * pressing the (+) or (-).
7
+ *
8
+ * This component takes properties from the FormField and NumberInput components.
9
+ *
10
+ * @name NumberField
11
+ */
12
+ declare function NumberField({ label, errorMessage: errorMessageProp, helperText, controlId, labelTrailing, required, ...inputProps }: NumberFieldProps): import("@emotion/react/jsx-runtime").JSX.Element;
13
+ declare namespace NumberField {
14
+ var bspkName: string;
15
+ }
16
+ export { NumberField };
17
+ /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */