@bspk/ui 1.0.1 → 1.1.12

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 (677) hide show
  1. package/README.md +5 -0
  2. package/{Avatar.d.ts → dist/Avatar.d.ts} +2 -2
  3. package/dist/Avatar.js +27 -0
  4. package/dist/Avatar.js.map +1 -0
  5. package/{Badge.d.ts → dist/Badge.d.ts} +2 -2
  6. package/dist/Badge.js +16 -0
  7. package/dist/Badge.js.map +1 -0
  8. package/{BannerAlert.d.ts → dist/BannerAlert.d.ts} +4 -4
  9. package/dist/BannerAlert.js +20 -0
  10. package/dist/BannerAlert.js.map +1 -0
  11. package/{Button.d.ts → dist/Button.d.ts} +1 -1
  12. package/dist/Button.js +30 -0
  13. package/dist/Button.js.map +1 -0
  14. package/{Card.d.ts → dist/Card.d.ts} +2 -2
  15. package/dist/Card.js +18 -0
  16. package/dist/Card.js.map +1 -0
  17. package/{Checkbox.d.ts → dist/Checkbox.d.ts} +2 -2
  18. package/dist/Checkbox.js +32 -0
  19. package/dist/Checkbox.js.map +1 -0
  20. package/{CheckboxGroup.d.ts → dist/CheckboxGroup.d.ts} +1 -1
  21. package/dist/CheckboxGroup.js +16 -0
  22. package/dist/CheckboxGroup.js.map +1 -0
  23. package/{CheckboxOption.d.ts → dist/CheckboxOption.d.ts} +1 -1
  24. package/dist/CheckboxOption.js +14 -0
  25. package/dist/CheckboxOption.js.map +1 -0
  26. package/{Chip.d.ts → dist/Chip.d.ts} +2 -2
  27. package/dist/Chip.js +22 -0
  28. package/dist/Chip.js.map +1 -0
  29. package/{Dialog.d.ts → dist/Dialog.d.ts} +2 -2
  30. package/dist/Dialog.js +70 -0
  31. package/dist/Dialog.js.map +1 -0
  32. package/{Divider.d.ts → dist/Divider.d.ts} +2 -2
  33. package/dist/Divider.js +26 -0
  34. package/dist/Divider.js.map +1 -0
  35. package/{Dropdown.d.ts → dist/Dropdown.d.ts} +2 -2
  36. package/dist/Dropdown.js +37 -0
  37. package/dist/Dropdown.js.map +1 -0
  38. package/{DropdownField.d.ts → dist/DropdownField.d.ts} +1 -1
  39. package/{DropdownField.js → dist/DropdownField.js} +5 -7
  40. package/dist/DropdownField.js.map +1 -0
  41. package/{EmptyState.d.ts → dist/EmptyState.d.ts} +7 -1
  42. package/dist/EmptyState.js +18 -0
  43. package/dist/EmptyState.js.map +1 -0
  44. package/{Fab.d.ts → dist/Fab.d.ts} +2 -2
  45. package/dist/Fab.js +24 -0
  46. package/dist/Fab.js.map +1 -0
  47. package/{FormField.d.ts → dist/FormField.d.ts} +2 -2
  48. package/dist/FormField.js +27 -0
  49. package/dist/FormField.js.map +1 -0
  50. package/{Img.d.ts → dist/Img.d.ts} +1 -1
  51. package/dist/Img.js +12 -0
  52. package/dist/Img.js.map +1 -0
  53. package/{InlineAlert.d.ts → dist/InlineAlert.d.ts} +2 -2
  54. package/dist/InlineAlert.js +27 -0
  55. package/dist/InlineAlert.js.map +1 -0
  56. package/{Layout.d.ts → dist/Layout.d.ts} +1 -1
  57. package/{Layout.js → dist/Layout.js} +3 -5
  58. package/dist/Layout.js.map +1 -0
  59. package/{Link.d.ts → dist/Link.d.ts} +2 -2
  60. package/dist/Link.js +17 -0
  61. package/dist/Link.js.map +1 -0
  62. package/{ListItem.d.ts → dist/ListItem.d.ts} +3 -3
  63. package/dist/ListItem.js +93 -0
  64. package/dist/ListItem.js.map +1 -0
  65. package/{Menu.d.ts → dist/Menu.d.ts} +2 -2
  66. package/dist/Menu.js +62 -0
  67. package/dist/Menu.js.map +1 -0
  68. package/{MenuButton.d.ts → dist/MenuButton.d.ts} +2 -2
  69. package/dist/MenuButton.js +15 -0
  70. package/dist/MenuButton.js.map +1 -0
  71. package/{Modal.d.ts → dist/Modal.d.ts} +2 -2
  72. package/dist/Modal.js +32 -0
  73. package/dist/Modal.js.map +1 -0
  74. package/{NumberField.d.ts → dist/NumberField.d.ts} +1 -1
  75. package/{NumberField.js → dist/NumberField.js} +5 -7
  76. package/dist/NumberField.js.map +1 -0
  77. package/{NumberInput.d.ts → dist/NumberInput.d.ts} +2 -2
  78. package/dist/NumberInput.js +64 -0
  79. package/dist/NumberInput.js.map +1 -0
  80. package/{Popover.d.ts → dist/Popover.d.ts} +2 -2
  81. package/dist/Popover.js +46 -0
  82. package/dist/Popover.js.map +1 -0
  83. package/{Portal.js → dist/Portal.js} +4 -5
  84. package/dist/Portal.js.map +1 -0
  85. package/{ProgressBar.d.ts → dist/ProgressBar.d.ts} +2 -2
  86. package/dist/ProgressBar.js +17 -0
  87. package/dist/ProgressBar.js.map +1 -0
  88. package/{ProgressCircle.d.ts → dist/ProgressCircle.d.ts} +3 -3
  89. package/dist/ProgressCircle.js +30 -0
  90. package/dist/ProgressCircle.js.map +1 -0
  91. package/{ProgressionStepper.d.ts → dist/ProgressionStepper.d.ts} +2 -2
  92. package/dist/ProgressionStepper.js +24 -0
  93. package/dist/ProgressionStepper.js.map +1 -0
  94. package/{ProgressionStepperBar.d.ts → dist/ProgressionStepperBar.d.ts} +7 -3
  95. package/dist/ProgressionStepperBar.js +15 -0
  96. package/dist/ProgressionStepperBar.js.map +1 -0
  97. package/{Radio.d.ts → dist/Radio.d.ts} +2 -2
  98. package/dist/Radio.js +18 -0
  99. package/dist/Radio.js.map +1 -0
  100. package/{RadioGroup.d.ts → dist/RadioGroup.d.ts} +1 -1
  101. package/dist/RadioGroup.js +16 -0
  102. package/dist/RadioGroup.js.map +1 -0
  103. package/{RadioOption.d.ts → dist/RadioOption.d.ts} +1 -1
  104. package/dist/RadioOption.js +14 -0
  105. package/dist/RadioOption.js.map +1 -0
  106. package/{SearchBar.d.ts → dist/SearchBar.d.ts} +2 -2
  107. package/{SearchBar.js → dist/SearchBar.js} +13 -19
  108. package/dist/SearchBar.js.map +1 -0
  109. package/{SegmentedControl.d.ts → dist/SegmentedControl.d.ts} +2 -2
  110. package/dist/SegmentedControl.js +22 -0
  111. package/dist/SegmentedControl.js.map +1 -0
  112. package/dist/Skeleton.d.ts +45 -0
  113. package/dist/Skeleton.js +25 -0
  114. package/dist/Skeleton.js.map +1 -0
  115. package/{StylesProviderAnywhere.d.ts → dist/StylesProviderAnywhere.d.ts} +4 -1
  116. package/dist/StylesProviderAnywhere.js +15 -0
  117. package/dist/StylesProviderAnywhere.js.map +1 -0
  118. package/{StylesProviderBetterHomesGardens.d.ts → dist/StylesProviderBetterHomesGardens.d.ts} +4 -1
  119. package/dist/StylesProviderBetterHomesGardens.js +15 -0
  120. package/dist/StylesProviderBetterHomesGardens.js.map +1 -0
  121. package/{StylesProviderCartus.d.ts → dist/StylesProviderCartus.d.ts} +4 -1
  122. package/dist/StylesProviderCartus.js +15 -0
  123. package/dist/StylesProviderCartus.js.map +1 -0
  124. package/{StylesProviderCentury21.d.ts → dist/StylesProviderCentury21.d.ts} +4 -1
  125. package/dist/StylesProviderCentury21.js +15 -0
  126. package/dist/StylesProviderCentury21.js.map +1 -0
  127. package/{StylesProviderColdwellBanker.d.ts → dist/StylesProviderColdwellBanker.d.ts} +4 -1
  128. package/dist/StylesProviderColdwellBanker.js +15 -0
  129. package/dist/StylesProviderColdwellBanker.js.map +1 -0
  130. package/{StylesProviderCorcoran.d.ts → dist/StylesProviderCorcoran.d.ts} +4 -1
  131. package/dist/StylesProviderCorcoran.js +15 -0
  132. package/dist/StylesProviderCorcoran.js.map +1 -0
  133. package/{StylesProviderDenaliBoss.d.ts → dist/StylesProviderDenaliBoss.d.ts} +4 -1
  134. package/dist/StylesProviderDenaliBoss.js +15 -0
  135. package/dist/StylesProviderDenaliBoss.js.map +1 -0
  136. package/{StylesProviderEra.d.ts → dist/StylesProviderEra.d.ts} +4 -1
  137. package/dist/StylesProviderEra.js +15 -0
  138. package/dist/StylesProviderEra.js.map +1 -0
  139. package/{StylesProviderSothebys.d.ts → dist/StylesProviderSothebys.d.ts} +4 -1
  140. package/dist/StylesProviderSothebys.js +15 -0
  141. package/dist/StylesProviderSothebys.js.map +1 -0
  142. package/{Switch.d.ts → dist/Switch.d.ts} +2 -2
  143. package/dist/Switch.js +21 -0
  144. package/dist/Switch.js.map +1 -0
  145. package/{SwitchGroup.d.ts → dist/SwitchGroup.d.ts} +1 -1
  146. package/dist/SwitchGroup.js +16 -0
  147. package/dist/SwitchGroup.js.map +1 -0
  148. package/{SwitchOption.d.ts → dist/SwitchOption.d.ts} +1 -1
  149. package/dist/SwitchOption.js +14 -0
  150. package/dist/SwitchOption.js.map +1 -0
  151. package/{TabGroup.d.ts → dist/TabGroup.d.ts} +2 -2
  152. package/dist/TabGroup.js +22 -0
  153. package/dist/TabGroup.js.map +1 -0
  154. package/{Table.d.ts → dist/Table.d.ts} +2 -2
  155. package/dist/Table.js +20 -0
  156. package/dist/Table.js.map +1 -0
  157. package/{Tag.d.ts → dist/Tag.d.ts} +2 -2
  158. package/dist/Tag.js +15 -0
  159. package/dist/Tag.js.map +1 -0
  160. package/{TextField.d.ts → dist/TextField.d.ts} +1 -1
  161. package/dist/TextField.js +17 -0
  162. package/dist/TextField.js.map +1 -0
  163. package/{TextInput.d.ts → dist/TextInput.d.ts} +2 -2
  164. package/dist/TextInput.js +23 -0
  165. package/dist/TextInput.js.map +1 -0
  166. package/{Textarea.d.ts → dist/Textarea.d.ts} +2 -2
  167. package/dist/Textarea.js +39 -0
  168. package/dist/Textarea.js.map +1 -0
  169. package/{TextareaField.d.ts → dist/TextareaField.d.ts} +1 -1
  170. package/dist/TextareaField.js +24 -0
  171. package/dist/TextareaField.js.map +1 -0
  172. package/{ToggleOption.d.ts → dist/ToggleOption.d.ts} +2 -2
  173. package/dist/ToggleOption.js +14 -0
  174. package/dist/ToggleOption.js.map +1 -0
  175. package/{Tooltip.d.ts → dist/Tooltip.d.ts} +2 -2
  176. package/dist/Tooltip.js +42 -0
  177. package/dist/Tooltip.js.map +1 -0
  178. package/{TopNavigation.d.ts → dist/TopNavigation.d.ts} +2 -2
  179. package/dist/TopNavigation.js +14 -0
  180. package/dist/TopNavigation.js.map +1 -0
  181. package/{Txt.d.ts → dist/Txt.d.ts} +1 -1
  182. package/{Txt.js → dist/Txt.js} +3 -8
  183. package/dist/Txt.js.map +1 -0
  184. package/dist/avatar.css +1 -0
  185. package/dist/badge.css +1 -0
  186. package/dist/banner-alert.css +1 -0
  187. package/dist/base.css +1 -0
  188. package/dist/button.css +1 -0
  189. package/dist/card.css +1 -0
  190. package/dist/checkbox.css +1 -0
  191. package/dist/chip.css +1 -0
  192. package/dist/colors.css +1 -0
  193. package/dist/dialog.css +1 -0
  194. package/dist/divider.css +1 -0
  195. package/dist/dropdown.css +1 -0
  196. package/dist/fab.css +1 -0
  197. package/dist/form-field.css +1 -0
  198. package/{hooks → dist/hooks}/useCheckboxGroupState.d.ts +1 -1
  199. package/{hooks → dist/hooks}/useCheckboxGroupState.js +3 -6
  200. package/dist/hooks/useCheckboxGroupState.js.map +1 -0
  201. package/{hooks → dist/hooks}/useCheckboxState.js +2 -5
  202. package/dist/hooks/useCheckboxState.js.map +1 -0
  203. package/{hooks → dist/hooks}/useFloating.js +5 -8
  204. package/dist/hooks/useFloating.js.map +1 -0
  205. package/{hooks → dist/hooks}/useFloatingMenu.js +6 -9
  206. package/dist/hooks/useFloatingMenu.js.map +1 -0
  207. package/{hooks → dist/hooks}/useId.js +4 -7
  208. package/dist/hooks/useId.js.map +1 -0
  209. package/{hooks → dist/hooks}/useKeyboardNavigation.js +4 -7
  210. package/dist/hooks/useKeyboardNavigation.js.map +1 -0
  211. package/{hooks → dist/hooks}/useLongPress.js +3 -6
  212. package/dist/hooks/useLongPress.js.map +1 -0
  213. package/{hooks → dist/hooks}/useModalState.js +3 -6
  214. package/dist/hooks/useModalState.js.map +1 -0
  215. package/{hooks → dist/hooks}/useNavOptions.js +4 -7
  216. package/dist/hooks/useNavOptions.js.map +1 -0
  217. package/{hooks → dist/hooks}/useOutsideClick.js +2 -5
  218. package/dist/hooks/useOutsideClick.js.map +1 -0
  219. package/{hooks → dist/hooks}/useRadioState.js +2 -5
  220. package/dist/hooks/useRadioState.js.map +1 -0
  221. package/{hooks → dist/hooks}/useSwitchGroupState.d.ts +1 -1
  222. package/{hooks → dist/hooks}/useSwitchGroupState.js +3 -6
  223. package/dist/hooks/useSwitchGroupState.js.map +1 -0
  224. package/{hooks → dist/hooks}/useTimeout.js +2 -5
  225. package/dist/hooks/useTimeout.js.map +1 -0
  226. package/{hooks → dist/hooks}/useValidChildren.js +4 -7
  227. package/dist/hooks/useValidChildren.js.map +1 -0
  228. package/{index.js → dist/index.js} +2 -4
  229. package/dist/index.js.map +1 -0
  230. package/dist/inline-alert.css +1 -0
  231. package/dist/link.css +1 -0
  232. package/dist/list-item.css +1 -0
  233. package/dist/menu-button.css +1 -0
  234. package/dist/menu.css +1 -0
  235. package/dist/modal.css +1 -0
  236. package/dist/number-input.css +1 -0
  237. package/dist/popover.css +1 -0
  238. package/dist/progress-bar.css +1 -0
  239. package/dist/progress-circle.css +1 -0
  240. package/dist/progression-stepper-bar.css +1 -0
  241. package/dist/progression-stepper.css +1 -0
  242. package/dist/radio.css +1 -0
  243. package/dist/search-bar.css +1 -0
  244. package/dist/segmented-control.css +1 -0
  245. package/dist/skeleton.css +6 -0
  246. package/dist/switch.css +1 -0
  247. package/dist/tab-group.css +1 -0
  248. package/dist/table.css +1 -0
  249. package/dist/tag.css +1 -0
  250. package/dist/text-input.css +1 -0
  251. package/dist/textarea.css +4 -0
  252. package/dist/toggle-option.css +1 -0
  253. package/dist/tooltip.css +1 -0
  254. package/dist/top-navigation.css +1 -0
  255. package/{utils → dist/utils}/children.js +9 -12
  256. package/dist/utils/children.js.map +1 -0
  257. package/dist/utils/colorVariants.d.ts +7 -0
  258. package/dist/utils/colorVariants.js +22 -0
  259. package/dist/utils/colorVariants.js.map +1 -0
  260. package/{utils → dist/utils}/errors.d.ts +1 -1
  261. package/{utils → dist/utils}/errors.js +20 -12
  262. package/dist/utils/errors.js.map +1 -0
  263. package/{utils → dist/utils}/getValidNode.js +2 -5
  264. package/dist/utils/getValidNode.js.map +1 -0
  265. package/{utils → dist/utils}/keyboard.js +2 -4
  266. package/dist/utils/keyboard.js.map +1 -0
  267. package/dist/utils/placeholder.test.d.ts +1 -0
  268. package/dist/utils/placeholder.test.js +7 -0
  269. package/dist/utils/placeholder.test.js.map +1 -0
  270. package/{utils → dist/utils}/ref.js +2 -4
  271. package/dist/utils/ref.js.map +1 -0
  272. package/{utils → dist/utils}/scrollElementIntoView.js +2 -4
  273. package/dist/utils/scrollElementIntoView.js.map +1 -0
  274. package/{utils → dist/utils}/srOnly.js +2 -4
  275. package/dist/utils/srOnly.js.map +1 -0
  276. package/dist/utils/styleAdd.d.ts +1 -0
  277. package/dist/utils/styleAdd.js +11 -0
  278. package/dist/utils/styleAdd.js.map +1 -0
  279. package/{utils → dist/utils}/tryIntPsrse.js +2 -4
  280. package/dist/utils/tryIntPsrse.js.map +1 -0
  281. package/dist/utils/txtVariants.d.ts +7 -0
  282. package/{utils → dist/utils}/txtVariants.js +7 -4
  283. package/dist/utils/txtVariants.js.map +1 -0
  284. package/meta-types.ts +46 -0
  285. package/meta.ts +465 -0
  286. package/package.json +31 -20
  287. package/src/Avatar.tsx +3 -61
  288. package/src/Badge.tsx +2 -30
  289. package/src/BannerAlert.tsx +6 -119
  290. package/src/Button.tsx +3 -228
  291. package/src/Card.tsx +2 -22
  292. package/src/Checkbox.tsx +2 -94
  293. package/src/CheckboxGroup.tsx +2 -2
  294. package/src/CheckboxOption.tsx +3 -3
  295. package/src/Chip.tsx +2 -68
  296. package/src/Dialog.tsx +2 -154
  297. package/src/Divider.tsx +2 -54
  298. package/src/Dropdown.tsx +2 -119
  299. package/src/DropdownField.tsx +3 -2
  300. package/src/EmptyState.tsx +10 -4
  301. package/src/Fab.tsx +2 -125
  302. package/src/FormField.tsx +2 -15
  303. package/src/Img.tsx +1 -9
  304. package/src/InlineAlert.tsx +2 -48
  305. package/src/Layout.tsx +1 -0
  306. package/src/Link.tsx +2 -23
  307. package/src/ListItem.tsx +3 -118
  308. package/src/Menu.tsx +3 -41
  309. package/src/MenuButton.tsx +2 -17
  310. package/src/Modal.tsx +3 -24
  311. package/src/NumberField.tsx +3 -2
  312. package/src/NumberInput.tsx +2 -126
  313. package/src/Popover.tsx +3 -110
  314. package/src/Portal.tsx +1 -0
  315. package/src/ProgressBar.tsx +2 -49
  316. package/src/ProgressCircle.tsx +2 -57
  317. package/src/ProgressionStepper.tsx +2 -175
  318. package/src/ProgressionStepperBar.tsx +7 -44
  319. package/src/Radio.tsx +2 -82
  320. package/src/RadioGroup.tsx +2 -2
  321. package/src/RadioOption.tsx +3 -3
  322. package/src/SearchBar.tsx +4 -10
  323. package/src/SegmentedControl.tsx +2 -116
  324. package/src/Skeleton.tsx +40 -56
  325. package/src/StylesProviderAnywhere.tsx +4 -18
  326. package/src/StylesProviderBetterHomesGardens.tsx +4 -18
  327. package/src/StylesProviderCartus.tsx +4 -18
  328. package/src/StylesProviderCentury21.tsx +4 -18
  329. package/src/StylesProviderColdwellBanker.tsx +4 -18
  330. package/src/StylesProviderCorcoran.tsx +4 -18
  331. package/src/StylesProviderDenaliBoss.tsx +4 -18
  332. package/src/StylesProviderEra.tsx +4 -18
  333. package/src/StylesProviderSothebys.tsx +4 -18
  334. package/src/Switch.tsx +2 -66
  335. package/src/SwitchGroup.tsx +2 -2
  336. package/src/SwitchOption.tsx +3 -3
  337. package/src/TabGroup.tsx +2 -100
  338. package/src/Table.tsx +2 -49
  339. package/src/Tag.tsx +3 -67
  340. package/src/TextField.tsx +3 -2
  341. package/src/TextInput.tsx +2 -152
  342. package/src/Textarea.tsx +2 -80
  343. package/src/TextareaField.tsx +3 -2
  344. package/src/ToggleOption.tsx +2 -79
  345. package/src/Tooltip.tsx +3 -66
  346. package/src/TopNavigation.tsx +2 -10
  347. package/src/Txt.tsx +1 -9
  348. package/src/avatar.scss +74 -0
  349. package/src/badge.scss +28 -0
  350. package/{BannerAlert.js → src/banner-alert.scss} +5 -23
  351. package/src/{styles/base.css → base.scss} +5 -3
  352. package/src/button.scss +218 -0
  353. package/src/card.scss +23 -0
  354. package/{Checkbox.js → src/checkbox.scss} +9 -34
  355. package/{Chip.js → src/chip.scss} +3 -24
  356. package/src/colors.scss +76 -0
  357. package/{Dialog.js → src/dialog.scss} +7 -76
  358. package/src/divider.scss +47 -0
  359. package/{Dropdown.js → src/dropdown.scss} +4 -45
  360. package/{Fab.js → src/fab.scss} +4 -27
  361. package/src/form-field.scss +13 -0
  362. package/src/hooks/useFloating.ts +5 -5
  363. package/src/inline-alert.scss +51 -0
  364. package/src/link.scss +21 -0
  365. package/src/list-item.scss +113 -0
  366. package/src/menu-button.scss +16 -0
  367. package/src/menu.scss +36 -0
  368. package/src/modal.scss +22 -0
  369. package/src/number-input.scss +128 -0
  370. package/{Popover.js → src/popover.scss} +10 -49
  371. package/src/progress-bar.scss +50 -0
  372. package/src/progress-circle.scss +56 -0
  373. package/src/progression-stepper-bar.scss +39 -0
  374. package/{ProgressionStepper.js → src/progression-stepper.scss} +8 -27
  375. package/{Radio.js → src/radio.scss} +6 -22
  376. package/src/search-bar.scss +7 -0
  377. package/{SegmentedControl.js → src/segmented-control.scss} +7 -24
  378. package/src/skeleton.scss +83 -0
  379. package/{Switch.js → src/switch.scss} +4 -25
  380. package/{TabGroup.js → src/tab-group.scss} +9 -26
  381. package/{Table.js → src/table.scss} +4 -22
  382. package/{Tag.js → src/tag.scss} +5 -28
  383. package/{TextInput.js → src/text-input.scss} +7 -31
  384. package/{Textarea.js → src/textarea.scss} +9 -38
  385. package/{ToggleOption.js → src/toggle-option.scss} +3 -16
  386. package/src/tooltip.scss +63 -0
  387. package/src/top-navigation.scss +5 -0
  388. package/src/utils/children.ts +1 -1
  389. package/src/utils/colorVariants.ts +22 -73
  390. package/src/utils/styleAdd.ts +7 -0
  391. package/src/utils/txtVariants.ts +8 -27
  392. package/Accordion.d.ts +0 -20
  393. package/Accordion.js +0 -18
  394. package/Accordion.js.map +0 -1
  395. package/Avatar.js +0 -81
  396. package/Avatar.js.map +0 -1
  397. package/Badge.js +0 -43
  398. package/Badge.js.map +0 -1
  399. package/BannerAlert.js.map +0 -1
  400. package/BottomNavigation.d.ts +0 -20
  401. package/BottomNavigation.js +0 -18
  402. package/BottomNavigation.js.map +0 -1
  403. package/BottomSheet.d.ts +0 -20
  404. package/BottomSheet.js +0 -18
  405. package/BottomSheet.js.map +0 -1
  406. package/Breadcrumb.d.ts +0 -20
  407. package/Breadcrumb.js +0 -18
  408. package/Breadcrumb.js.map +0 -1
  409. package/Button.js +0 -254
  410. package/Button.js.map +0 -1
  411. package/ButtonDock.d.ts +0 -20
  412. package/ButtonDock.js +0 -18
  413. package/ButtonDock.js.map +0 -1
  414. package/CODE_OF_CONDUCT.md +0 -137
  415. package/CONTRIBUTING.md +0 -42
  416. package/Card.js +0 -38
  417. package/Card.js.map +0 -1
  418. package/Chart.d.ts +0 -20
  419. package/Chart.js +0 -18
  420. package/Chart.js.map +0 -1
  421. package/Checkbox.js.map +0 -1
  422. package/CheckboxGroup.js +0 -18
  423. package/CheckboxGroup.js.map +0 -1
  424. package/CheckboxOption.js +0 -16
  425. package/CheckboxOption.js.map +0 -1
  426. package/Chip.js.map +0 -1
  427. package/DatePicker.d.ts +0 -20
  428. package/DatePicker.js +0 -18
  429. package/DatePicker.js.map +0 -1
  430. package/Dialog.js.map +0 -1
  431. package/Divider.js +0 -76
  432. package/Divider.js.map +0 -1
  433. package/Drawer.d.ts +0 -20
  434. package/Drawer.js +0 -18
  435. package/Drawer.js.map +0 -1
  436. package/Dropdown.js.map +0 -1
  437. package/DropdownField.js.map +0 -1
  438. package/EmptyState.js +0 -20
  439. package/EmptyState.js.map +0 -1
  440. package/Fab.js.map +0 -1
  441. package/FileUpload.d.ts +0 -20
  442. package/FileUpload.js +0 -18
  443. package/FileUpload.js.map +0 -1
  444. package/FormField.js +0 -39
  445. package/FormField.js.map +0 -1
  446. package/GUIDELINES.md +0 -41
  447. package/Image.d.ts +0 -20
  448. package/Image.js +0 -18
  449. package/Image.js.map +0 -1
  450. package/Img.js +0 -20
  451. package/Img.js.map +0 -1
  452. package/InlineAlert.js +0 -73
  453. package/InlineAlert.js.map +0 -1
  454. package/Layout.js.map +0 -1
  455. package/Link.js +0 -37
  456. package/Link.js.map +0 -1
  457. package/ListItem.js +0 -207
  458. package/ListItem.js.map +0 -1
  459. package/Menu.js +0 -98
  460. package/Menu.js.map +0 -1
  461. package/MenuButton.js +0 -30
  462. package/MenuButton.js.map +0 -1
  463. package/Modal.js +0 -53
  464. package/Modal.js.map +0 -1
  465. package/MultiSelection.d.ts +0 -20
  466. package/MultiSelection.js +0 -18
  467. package/MultiSelection.js.map +0 -1
  468. package/NavigationRail.d.ts +0 -20
  469. package/NavigationRail.js +0 -18
  470. package/NavigationRail.js.map +0 -1
  471. package/NumberField.js.map +0 -1
  472. package/NumberInput.js +0 -188
  473. package/NumberInput.js.map +0 -1
  474. package/OTPInput.d.ts +0 -20
  475. package/OTPInput.js +0 -18
  476. package/OTPInput.js.map +0 -1
  477. package/PageControl.d.ts +0 -20
  478. package/PageControl.js +0 -18
  479. package/PageControl.js.map +0 -1
  480. package/PasswordInput.d.ts +0 -20
  481. package/PasswordInput.js +0 -18
  482. package/PasswordInput.js.map +0 -1
  483. package/PhoneNumberInput.d.ts +0 -20
  484. package/PhoneNumberInput.js +0 -18
  485. package/PhoneNumberInput.js.map +0 -1
  486. package/Popover.js.map +0 -1
  487. package/Portal.js.map +0 -1
  488. package/ProgressBar.js +0 -64
  489. package/ProgressBar.js.map +0 -1
  490. package/ProgressCircle.js +0 -82
  491. package/ProgressCircle.js.map +0 -1
  492. package/ProgressionStepper.js.map +0 -1
  493. package/ProgressionStepperBar.js +0 -51
  494. package/ProgressionStepperBar.js.map +0 -1
  495. package/Radio.js.map +0 -1
  496. package/RadioGroup.js +0 -18
  497. package/RadioGroup.js.map +0 -1
  498. package/RadioOption.js +0 -16
  499. package/RadioOption.js.map +0 -1
  500. package/Rating.d.ts +0 -16
  501. package/Rating.js +0 -18
  502. package/Rating.js.map +0 -1
  503. package/SearchBar.js.map +0 -1
  504. package/SegmentedControl.js.map +0 -1
  505. package/Skeleton.d.ts +0 -28
  506. package/Skeleton.js +0 -57
  507. package/Skeleton.js.map +0 -1
  508. package/SliderInput.d.ts +0 -16
  509. package/SliderInput.js +0 -18
  510. package/SliderInput.js.map +0 -1
  511. package/Snackbar.d.ts +0 -16
  512. package/Snackbar.js +0 -18
  513. package/Snackbar.js.map +0 -1
  514. package/StylesProviderAnywhere.js +0 -29
  515. package/StylesProviderAnywhere.js.map +0 -1
  516. package/StylesProviderBetterHomesGardens.js +0 -29
  517. package/StylesProviderBetterHomesGardens.js.map +0 -1
  518. package/StylesProviderCartus.js +0 -29
  519. package/StylesProviderCartus.js.map +0 -1
  520. package/StylesProviderCentury21.js +0 -29
  521. package/StylesProviderCentury21.js.map +0 -1
  522. package/StylesProviderColdwellBanker.js +0 -29
  523. package/StylesProviderColdwellBanker.js.map +0 -1
  524. package/StylesProviderCorcoran.js +0 -29
  525. package/StylesProviderCorcoran.js.map +0 -1
  526. package/StylesProviderDenaliBoss.js +0 -29
  527. package/StylesProviderDenaliBoss.js.map +0 -1
  528. package/StylesProviderEra.js +0 -29
  529. package/StylesProviderEra.js.map +0 -1
  530. package/StylesProviderSothebys.js +0 -29
  531. package/StylesProviderSothebys.js.map +0 -1
  532. package/Switch.js.map +0 -1
  533. package/SwitchGroup.js +0 -18
  534. package/SwitchGroup.js.map +0 -1
  535. package/SwitchOption.js +0 -16
  536. package/SwitchOption.js.map +0 -1
  537. package/TabGroup.js.map +0 -1
  538. package/Table.js.map +0 -1
  539. package/Tag.js.map +0 -1
  540. package/TextField.js +0 -19
  541. package/TextField.js.map +0 -1
  542. package/TextInput.js.map +0 -1
  543. package/Textarea.js.map +0 -1
  544. package/TextareaField.js +0 -26
  545. package/TextareaField.js.map +0 -1
  546. package/TimePicker.d.ts +0 -16
  547. package/TimePicker.js +0 -18
  548. package/TimePicker.js.map +0 -1
  549. package/ToggleOption.js.map +0 -1
  550. package/Tooltip.js +0 -104
  551. package/Tooltip.js.map +0 -1
  552. package/TopNavigation.js +0 -18
  553. package/TopNavigation.js.map +0 -1
  554. package/Txt.js.map +0 -1
  555. package/hooks/useCheckboxGroupState.js.map +0 -1
  556. package/hooks/useCheckboxState.js.map +0 -1
  557. package/hooks/useFloating.js.map +0 -1
  558. package/hooks/useFloatingMenu.js.map +0 -1
  559. package/hooks/useId.js.map +0 -1
  560. package/hooks/useKeyboardNavigation.js.map +0 -1
  561. package/hooks/useLongPress.js.map +0 -1
  562. package/hooks/useModalState.js.map +0 -1
  563. package/hooks/useNavOptions.js.map +0 -1
  564. package/hooks/useOutsideClick.js.map +0 -1
  565. package/hooks/useRadioState.js.map +0 -1
  566. package/hooks/useSwitchGroupState.js.map +0 -1
  567. package/hooks/useTimeout.js.map +0 -1
  568. package/hooks/useValidChildren.js.map +0 -1
  569. package/index.js.map +0 -1
  570. package/meta.d.ts +0 -44
  571. package/meta.js +0 -5789
  572. package/meta.js.map +0 -1
  573. package/src/Accordion.tsx +0 -33
  574. package/src/BottomNavigation.tsx +0 -33
  575. package/src/BottomSheet.tsx +0 -33
  576. package/src/Breadcrumb.tsx +0 -33
  577. package/src/ButtonDock.tsx +0 -33
  578. package/src/Chart.tsx +0 -33
  579. package/src/DatePicker.tsx +0 -33
  580. package/src/Drawer.tsx +0 -33
  581. package/src/FileUpload.tsx +0 -33
  582. package/src/Image.tsx +0 -33
  583. package/src/MultiSelection.tsx +0 -33
  584. package/src/NavigationRail.tsx +0 -33
  585. package/src/OTPInput.tsx +0 -33
  586. package/src/PageControl.tsx +0 -33
  587. package/src/PasswordInput.tsx +0 -33
  588. package/src/PhoneNumberInput.tsx +0 -33
  589. package/src/Rating.tsx +0 -29
  590. package/src/SliderInput.tsx +0 -29
  591. package/src/Snackbar.tsx +0 -29
  592. package/src/TimePicker.tsx +0 -29
  593. package/src/meta.ts +0 -6238
  594. package/src/package.json +0 -3
  595. package/src/styles/anywhere.css +0 -1693
  596. package/src/styles/anywhere.ts +0 -1694
  597. package/src/styles/base.ts +0 -161
  598. package/src/styles/better-homes-gardens.css +0 -1693
  599. package/src/styles/better-homes-gardens.ts +0 -1694
  600. package/src/styles/cartus.css +0 -1691
  601. package/src/styles/cartus.ts +0 -1692
  602. package/src/styles/century-21.css +0 -1689
  603. package/src/styles/century-21.ts +0 -1690
  604. package/src/styles/coldwell-banker.css +0 -1691
  605. package/src/styles/coldwell-banker.ts +0 -1692
  606. package/src/styles/corcoran.css +0 -1685
  607. package/src/styles/corcoran.ts +0 -1686
  608. package/src/styles/denali-boss.css +0 -1681
  609. package/src/styles/denali-boss.ts +0 -1682
  610. package/src/styles/era.css +0 -1685
  611. package/src/styles/era.ts +0 -1686
  612. package/src/styles/sothebys.css +0 -1677
  613. package/src/styles/sothebys.ts +0 -1678
  614. package/styles/anywhere.d.ts +0 -2
  615. package/styles/anywhere.js +0 -1697
  616. package/styles/anywhere.js.map +0 -1
  617. package/styles/base.d.ts +0 -2
  618. package/styles/base.js +0 -164
  619. package/styles/base.js.map +0 -1
  620. package/styles/better-homes-gardens.d.ts +0 -2
  621. package/styles/better-homes-gardens.js +0 -1697
  622. package/styles/better-homes-gardens.js.map +0 -1
  623. package/styles/cartus.d.ts +0 -2
  624. package/styles/cartus.js +0 -1695
  625. package/styles/cartus.js.map +0 -1
  626. package/styles/century-21.d.ts +0 -2
  627. package/styles/century-21.js +0 -1693
  628. package/styles/century-21.js.map +0 -1
  629. package/styles/coldwell-banker.d.ts +0 -2
  630. package/styles/coldwell-banker.js +0 -1695
  631. package/styles/coldwell-banker.js.map +0 -1
  632. package/styles/corcoran.d.ts +0 -2
  633. package/styles/corcoran.js +0 -1689
  634. package/styles/corcoran.js.map +0 -1
  635. package/styles/denali-boss.d.ts +0 -2
  636. package/styles/denali-boss.js +0 -1685
  637. package/styles/denali-boss.js.map +0 -1
  638. package/styles/era.d.ts +0 -2
  639. package/styles/era.js +0 -1689
  640. package/styles/era.js.map +0 -1
  641. package/styles/sothebys.d.ts +0 -2
  642. package/styles/sothebys.js +0 -1681
  643. package/styles/sothebys.js.map +0 -1
  644. package/utils/children.js.map +0 -1
  645. package/utils/colorVariants.d.ts +0 -5
  646. package/utils/colorVariants.js +0 -61
  647. package/utils/colorVariants.js.map +0 -1
  648. package/utils/errors.js.map +0 -1
  649. package/utils/getValidNode.js.map +0 -1
  650. package/utils/keyboard.js.map +0 -1
  651. package/utils/ref.js.map +0 -1
  652. package/utils/scrollElementIntoView.js.map +0 -1
  653. package/utils/srOnly.js.map +0 -1
  654. package/utils/tryIntPsrse.js.map +0 -1
  655. package/utils/txtVariants.d.ts +0 -2
  656. package/utils/txtVariants.js.map +0 -1
  657. /package/{Portal.d.ts → dist/Portal.d.ts} +0 -0
  658. /package/{hooks → dist/hooks}/useCheckboxState.d.ts +0 -0
  659. /package/{hooks → dist/hooks}/useFloating.d.ts +0 -0
  660. /package/{hooks → dist/hooks}/useFloatingMenu.d.ts +0 -0
  661. /package/{hooks → dist/hooks}/useId.d.ts +0 -0
  662. /package/{hooks → dist/hooks}/useKeyboardNavigation.d.ts +0 -0
  663. /package/{hooks → dist/hooks}/useLongPress.d.ts +0 -0
  664. /package/{hooks → dist/hooks}/useModalState.d.ts +0 -0
  665. /package/{hooks → dist/hooks}/useNavOptions.d.ts +0 -0
  666. /package/{hooks → dist/hooks}/useOutsideClick.d.ts +0 -0
  667. /package/{hooks → dist/hooks}/useRadioState.d.ts +0 -0
  668. /package/{hooks → dist/hooks}/useTimeout.d.ts +0 -0
  669. /package/{hooks → dist/hooks}/useValidChildren.d.ts +0 -0
  670. /package/{index.d.ts → dist/index.d.ts} +0 -0
  671. /package/{utils → dist/utils}/children.d.ts +0 -0
  672. /package/{utils → dist/utils}/getValidNode.d.ts +0 -0
  673. /package/{utils → dist/utils}/keyboard.d.ts +0 -0
  674. /package/{utils → dist/utils}/ref.d.ts +0 -0
  675. /package/{utils → dist/utils}/scrollElementIntoView.d.ts +0 -0
  676. /package/{utils → dist/utils}/srOnly.d.ts +0 -0
  677. /package/{utils → dist/utils}/tryIntPsrse.d.ts +0 -0
@@ -1,3 +1,4 @@
1
+ import './dropdown.scss';
1
2
  import { MenuProps } from './Menu';
2
3
  import { Placement } from './hooks/useFloating';
3
4
  import { CommonProps } from './';
@@ -41,10 +42,9 @@ export type DropdownProps<O extends DropdownOption = DropdownOption> = CommonPro
41
42
  *
42
43
  * @name Dropdown
43
44
  */
44
- declare function Dropdown<O extends DropdownOption = DropdownOption>({ options, value: selected, onChange, 'aria-label': ariaLabel, placeholder, size, itemCount, disabled, id: propId, invalid, readOnly, placement, name, isMulti, renderListItem, style: styleProp, }: DropdownProps<O>): import("@emotion/react/jsx-runtime").JSX.Element;
45
+ declare function Dropdown<O extends DropdownOption = DropdownOption>({ options, value: selected, onChange, 'aria-label': ariaLabel, placeholder, size, itemCount, disabled, id: propId, invalid, readOnly, placement, name, isMulti, renderListItem, style: styleProp, }: DropdownProps<O>): import("react/jsx-runtime").JSX.Element;
45
46
  declare namespace Dropdown {
46
47
  var bspkName: string;
47
48
  }
48
49
  export { Dropdown };
49
- export declare const style: import("@emotion/react").SerializedStyles;
50
50
  /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
@@ -0,0 +1,37 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { SvgChevronRight } from '@bspk/icons/ChevronRight';
3
+ import { styleAdd } from './utils/styleAdd';
4
+ styleAdd(`[data-bspk=dropdown]{--dropdown-background: var(--surface-neutral-t1-base);--dropdown-border-color: var(--stroke-neutral-base);--dropdown-text-color: var(--foreground-neutral-on-surface);--dropdown-height: var(--spacing-sizing-10);--dropdown-font: var(--body-base);--dropdown-clear-height: var(--spacing-sizing-05);--dropdown-padding: var(--spacing-sizing-03);--dropdown-icon-width: var(--spacing-sizing-05);position:relative;width:100%;max-width:280px;outline:unset;min-height:var(--dropdown-height);max-height:var(--dropdown-height);display:flex;flex-direction:row;gap:var(--spacing-sizing-02);flex-grow:0;flex-shrink:0;text-align:left;font:var(--dropdown-font);border:1px solid var(--dropdown-border-color);border-radius:var(--radius-small);background:var(--dropdown-background);padding:0 var(--dropdown-padding)}[data-bspk=dropdown] [data-placeholder]{display:block;max-width:100%;text-overflow:ellipsis;overflow:hidden;padding:0}[data-bspk=dropdown] [data-placeholder] [data-inner]{min-height:auto;padding:0}[data-bspk=dropdown] [data-placeholder] [data-item-label] [data-text]{color:var(--dropdown-text-color)}[data-bspk=dropdown] [data-svg]{display:flex;flex-direction:column;justify-content:center}[data-bspk=dropdown] [data-svg] svg{transform:rotate(90deg);width:var(--dropdown-icon-width)}[data-bspk=dropdown][data-size=small]{--dropdown-height: var(--spacing-sizing-08);--dropdown-font: var(--body-small);--dropdown-clear-height: var(--spacing-sizing-05);--dropdown-padding: var(--spacing-sizing-02);--dropdown-icon-width: var(--spacing-sizing-05)}[data-bspk=dropdown][data-size=large]{--dropdown-height: var(--spacing-sizing-12);--dropdown-font: var(--body-large);--dropdown-clear-height: var(--spacing-sizing-06);--dropdown-icon-width: var(--spacing-sizing-06)}[data-bspk=dropdown]:disabled{--dropdown-text-color: var(--foreground-neutral-disabled-on-surface);--dropdown-border-color: var(--stroke-neutral-disabled-light);--dropdown-background: linear-gradient(var(--interactions-disabled-opacity), var(--interactions-disabled-opacity)), linear-gradient(var(--surface-neutral-t1-base), var(--surface-neutral-t1-base))}[data-bspk=dropdown]:disabled[aria-readonly]:not([data-empty]){--dropdown-text-color: var(--foreground-neutral-on-surface)}[data-bspk=dropdown]:not(:disabled):focus{--dropdown-border-color: var(--stroke-brand-primary)}[data-bspk=dropdown]:not(:disabled):hover{--dropdown-background: linear-gradient(var(--interactions-neutral-hover-opacity), var(--interactions-neutral-hover-opacity)), linear-gradient(var(--surface-neutral-t1-base), var(--surface-neutral-t1-base))}[data-bspk=dropdown]:not(:disabled):active{--dropdown-background: linear-gradient(var(--interactions-neutral-press-opacity), var(--interactions-neutral-press-opacity)), linear-gradient(var(--surface-neutral-t1-base), var(--surface-neutral-t1-base))}[data-bspk=dropdown][data-invalid]{--dropdown-border-color: var(--status-error)}[data-bspk=dropdown][data-empty]{--dropdown-text-color: var(--foreground-neutral-on-surface-variant-03)}`);;
5
+ import { ListItem } from './ListItem';
6
+ import { Menu } from './Menu';
7
+ import { Portal } from './Portal';
8
+ import { useFloatingMenu } from './hooks/useFloatingMenu';
9
+ import { useId } from './hooks/useId';
10
+ /**
11
+ * A field element that allows users to select one option from a list of available choices. *
12
+ *
13
+ * @name Dropdown
14
+ */
15
+ function Dropdown({ options = [], value: selected, onChange, 'aria-label': ariaLabel, placeholder = 'Select...', size = 'medium', itemCount = 5, disabled, id: propId, invalid, readOnly, placement = 'bottom', name, isMulti, renderListItem, style: styleProp, }) {
16
+ const id = useId(propId);
17
+ const { triggerProps, menuProps, closeMenu } = useFloatingMenu({
18
+ placement,
19
+ triggerProps: {
20
+ disabled,
21
+ invalid,
22
+ readOnly,
23
+ },
24
+ });
25
+ const dropdownLabel = isMulti
26
+ ? `${selected?.length || 0} option${selected?.length !== 1 ? 's' : ''} selected`
27
+ : options.find((o) => o.value === selected?.[0])?.label;
28
+ return (_jsxs(_Fragment, { children: [_jsx("input", { defaultValue: selected, name: name, type: "hidden" }), _jsxs("button", { "aria-label": ariaLabel, "data-bspk": "dropdown", "data-empty": dropdownLabel ? undefined : '', "data-invalid": invalid || undefined, "data-size": size, disabled: disabled || readOnly, id: id, style: styleProp, ...triggerProps, children: [_jsx(ListItem, { "data-placeholder": "", label: dropdownLabel || placeholder, readOnly: true }), _jsx("span", { "data-svg": true, children: _jsx(SvgChevronRight, {}) })] }), _jsx(Portal, { children: _jsx(Menu, { "data-floating": true, isMulti: isMulti, itemCount: itemCount, items: options, onChange: (selectedValues, event) => {
29
+ event?.preventDefault();
30
+ if (!isMulti)
31
+ closeMenu();
32
+ onChange?.(selectedValues);
33
+ }, renderListItem: renderListItem, selectedValues: selected, ...menuProps }) })] }));
34
+ }
35
+ Dropdown.bspkName = 'Dropdown';
36
+ export { Dropdown };
37
+ //# sourceMappingURL=Dropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dropdown.js","sourceRoot":"","sources":["../src/Dropdown.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,IAAI,EAAa,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AA4CtC;;;;GAIG;AACH,SAAS,QAAQ,CAA4C,EACzD,OAAO,GAAG,EAAE,EACZ,KAAK,EAAE,QAAQ,EACf,QAAQ,EACR,YAAY,EAAE,SAAS,EACvB,WAAW,GAAG,WAAW,EACzB,IAAI,GAAG,QAAQ,EACf,SAAS,GAAG,CAAC,EACb,QAAQ,EACR,EAAE,EAAE,MAAM,EACV,OAAO,EACP,QAAQ,EACR,SAAS,GAAG,QAAQ,EACpB,IAAI,EACJ,OAAO,EACP,cAAc,EACd,KAAK,EAAE,SAAS,GACD;IACf,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAEzB,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC;QAC3D,SAAS;QACT,YAAY,EAAE;YACV,QAAQ;YACR,OAAO;YACP,QAAQ;SACX;KACJ,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,OAAO;QACzB,CAAC,CAAC,GAAG,QAAQ,EAAE,MAAM,IAAI,CAAC,UAAU,QAAQ,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW;QAChF,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;IAE5D,OAAO,CACH,8BACI,gBAAO,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,QAAQ,GAAG,EAC3D,gCACgB,SAAS,eACX,UAAU,gBACR,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,kBAC5B,OAAO,IAAI,SAAS,eACvB,IAAI,EACf,QAAQ,EAAE,QAAQ,IAAI,QAAQ,EAC9B,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,SAAS,KACZ,YAAY,aAEhB,KAAC,QAAQ,wBAAkB,EAAE,EAAC,KAAK,EAAE,aAAa,IAAI,WAAW,EAAE,QAAQ,SAAG,EAC9E,2CACI,KAAC,eAAe,KAAG,GAChB,IACF,EACT,KAAC,MAAM,cACH,KAAC,IAAI,2BAED,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,CAAC,cAAc,EAAE,KAAK,EAAE,EAAE;wBAChC,KAAK,EAAE,cAAc,EAAE,CAAC;wBACxB,IAAI,CAAC,OAAO;4BAAE,SAAS,EAAE,CAAC;wBAC1B,QAAQ,EAAE,CAAC,cAAc,CAAC,CAAC;oBAC/B,CAAC,EACD,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,QAAQ,KACpB,SAAS,GACf,GACG,IACV,CACN,CAAC;AACN,CAAC;AAED,QAAQ,CAAC,QAAQ,GAAG,UAAU,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -8,7 +8,7 @@ export type DropdownFieldProps = Pick<DropdownProps, 'disabled' | 'itemCount' |
8
8
  *
9
9
  * @name DropdownField
10
10
  */
11
- declare function DropdownField({ label, errorMessage: errorMessageProp, helperText, controlId: id, labelTrailing, required, ...dropdownProps }: DropdownFieldProps): import("@emotion/react/jsx-runtime").JSX.Element;
11
+ declare function DropdownField({ label, errorMessage: errorMessageProp, helperText, controlId: id, labelTrailing, required, ...dropdownProps }: DropdownFieldProps): import("react/jsx-runtime").JSX.Element;
12
12
  declare namespace DropdownField {
13
13
  var bspkName: string;
14
14
  }
@@ -1,7 +1,6 @@
1
- import { jsx } from '@emotion/react/jsx-runtime';
2
- import { Dropdown } from './Dropdown.js';
3
- import { FormField } from './FormField.js';
4
-
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Dropdown } from './Dropdown';
3
+ import { FormField } from './FormField';
5
4
  /**
6
5
  * A component that allows users to input large amounts of text that could span multiple lines.
7
6
  *
@@ -11,9 +10,8 @@ import { FormField } from './FormField.js';
11
10
  */
12
11
  function DropdownField({ label, errorMessage: errorMessageProp, helperText, controlId: id, labelTrailing, required, ...dropdownProps }) {
13
12
  const errorMessage = (!dropdownProps.readOnly && !dropdownProps.disabled && errorMessageProp) || undefined;
14
- return (jsx(FormField, { controlId: id, errorMessage: errorMessage, helperText: helperText, label: label, labelTrailing: labelTrailing, required: required, children: (fieldProps) => (jsx(Dropdown, { ...dropdownProps, ...fieldProps, "aria-label": label, id: id, invalid: !!errorMessage })) }));
13
+ return (_jsx(FormField, { controlId: id, "data-bspk": "dropdown-field", errorMessage: errorMessage, helperText: helperText, label: label, labelTrailing: labelTrailing, required: required, children: (fieldProps) => (_jsx(Dropdown, { ...dropdownProps, ...fieldProps, "aria-label": label, id: id, invalid: !!errorMessage })) }));
15
14
  }
16
15
  DropdownField.bspkName = 'DropdownField';
17
-
18
16
  export { DropdownField };
19
- //# sourceMappingURL=DropdownField.js.map
17
+ //# sourceMappingURL=DropdownField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropdownField.js","sourceRoot":"","sources":["../src/DropdownField.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAiB,QAAQ,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAkB,SAAS,EAAE,MAAM,aAAa,CAAC;AAiBxD;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,EACnB,KAAK,EACL,YAAY,EAAE,gBAAgB,EAC9B,UAAU,EACV,SAAS,EAAE,EAAE,EACb,aAAa,EACb,QAAQ,EACR,GAAG,aAAa,EACC;IACjB,MAAM,YAAY,GAAG,CAAC,CAAC,aAAa,CAAC,QAAQ,IAAI,CAAC,aAAa,CAAC,QAAQ,IAAI,gBAAgB,CAAC,IAAI,SAAS,CAAC;IAE3G,OAAO,CACH,KAAC,SAAS,IACN,SAAS,EAAE,EAAE,eACH,gBAAgB,EAC1B,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,QAAQ,YAEjB,CAAC,UAAU,EAAE,EAAE,CAAC,CACb,KAAC,QAAQ,OAAK,aAAa,KAAM,UAAU,gBAAc,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,YAAY,GAAI,CACtG,GACO,CACf,CAAC;AACN,CAAC;AAED,aAAa,CAAC,QAAQ,GAAG,eAAe,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -15,6 +15,12 @@ export type EmptyStateProps = {
15
15
  * @required
16
16
  */
17
17
  body: string;
18
+ /**
19
+ * The text alignment of the body.
20
+ *
21
+ * @default center
22
+ */
23
+ bodyAlign?: 'center' | 'left' | 'right';
18
24
  /**
19
25
  * This property may be undefined or an object containing required CallToActionButton properties.
20
26
  *
@@ -27,7 +33,7 @@ export type EmptyStateProps = {
27
33
  *
28
34
  * @name EmptyState
29
35
  */
30
- declare function EmptyState({ children, header, body, callToAction }: EmptyStateProps): import("@emotion/react/jsx-runtime").JSX.Element;
36
+ declare function EmptyState({ children, header, body, callToAction, bodyAlign }: EmptyStateProps): import("react/jsx-runtime").JSX.Element;
31
37
  declare namespace EmptyState {
32
38
  var bspkName: string;
33
39
  }
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button } from './Button';
3
+ import { Layout } from './Layout';
4
+ import { Txt } from './Txt';
5
+ /**
6
+ * A design pattern component that indicates to users that system has no content to display.
7
+ *
8
+ * @name EmptyState
9
+ */
10
+ function EmptyState({ children, header, body, callToAction, bodyAlign = 'center' }) {
11
+ return (_jsxs(Layout, { align: "center", column: true, "data-bspk": "empty-state", style: {
12
+ margin: 'var(--spacing-sizing-04)',
13
+ maxWidth: '500px',
14
+ }, children: [children, _jsxs(Layout, { align: "center", column: true, gap: "4", children: [_jsx(Txt, { as: "header", variant: "heading-h5", children: header }), _jsx(Txt, { as: "p", style: { textAlign: bodyAlign }, variant: "body-base", children: body })] }), callToAction && (_jsx(Button, { label: callToAction.label, onClick: callToAction.onClick, size: callToAction.size || 'medium', variant: "primary" }))] }));
15
+ }
16
+ EmptyState.bspkName = 'EmptyState';
17
+ export { EmptyState };
18
+ //# sourceMappingURL=EmptyState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmptyState.js","sourceRoot":"","sources":["../src/EmptyState.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAiC5B;;;;GAIG;AACH,SAAS,UAAU,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,GAAG,QAAQ,EAAmB;IAC/F,OAAO,CACH,MAAC,MAAM,IACH,KAAK,EAAC,QAAQ,EACd,MAAM,qBACI,aAAa,EACvB,KAAK,EAAE;YACH,MAAM,EAAE,0BAA0B;YAClC,QAAQ,EAAE,OAAO;SACpB,aAEA,QAAQ,EACT,MAAC,MAAM,IAAC,KAAK,EAAC,QAAQ,EAAC,MAAM,QAAC,GAAG,EAAC,GAAG,aACjC,KAAC,GAAG,IAAC,EAAE,EAAC,QAAQ,EAAC,OAAO,EAAC,YAAY,YAChC,MAAM,GACL,EACN,KAAC,GAAG,IAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,OAAO,EAAC,WAAW,YAC3D,IAAI,GACH,IACD,EACR,YAAY,IAAI,CACb,KAAC,MAAM,IACH,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,IACI,CACZ,CAAC;AACN,CAAC;AAED,UAAU,CAAC,QAAQ,GAAG,YAAY,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -1,3 +1,4 @@
1
+ import './fab.scss';
1
2
  import { ElementType } from 'react';
2
3
  import { ButtonProps } from './Button';
3
4
  import { ElementProps } from './';
@@ -34,10 +35,9 @@ export type FabProps<As extends ElementType = 'button'> = Pick<ButtonProps<As>,
34
35
  *
35
36
  * @name Fab
36
37
  */
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 function Fab<As extends ElementType = 'button'>({ size, variant, showLabel: showLabelProp, as, placement, container, label, icon, toolTip, ...otherProps }: ElementProps<FabProps<As>, As>): import("react/jsx-runtime").JSX.Element;
38
39
  declare namespace Fab {
39
40
  var bspkName: string;
40
41
  }
41
42
  export { Fab };
42
- export declare const style: import("@emotion/react").SerializedStyles;
43
43
  /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
package/dist/Fab.js ADDED
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { styleAdd } from './utils/styleAdd';
3
+ styleAdd(`[data-bspk=fab]{--placement-offset: var(--spacing-sizing-04);display:flex;flex-direction:row;align-items:center;justify-content:center;gap:var(--spacing-sizing-02);border:none;cursor:pointer;box-sizing:border-box;text-decoration:none;z-index:var(--z-index-fab);box-shadow:var(--drop-shadow-float);border-radius:var(--radius-small);background:var(--variant-background);color:var(--variant-foreground);--variant-gradient: linear-gradient(var(--variant-background), var(--variant-background))}[data-bspk=fab][data-container=page]{position:fixed}[data-bspk=fab][data-container=local]{position:absolute}[data-bspk=fab][data-placement=top-right]{top:var(--placement-offset);right:var(--placement-offset)}[data-bspk=fab][data-placement=bottom-right]{bottom:var(--placement-offset);right:var(--placement-offset)}[data-bspk=fab][data-placement=top-left]{top:var(--placement-offset);left:var(--placement-offset)}[data-bspk=fab][data-placement=bottom-left]{bottom:var(--placement-offset);left:var(--placement-offset)}[data-bspk=fab]>[data-fab-icon]{display:flex;flex-direction:column;align-items:center}[data-bspk=fab]>[data-fab-label]{display:flex;flex-direction:row;align-items:center}[data-bspk=fab][data-size=small]{font:var(--labels-base);height:var(--spacing-sizing-10);padding:0 var(--spacing-sizing-04)}[data-bspk=fab][data-size=small]>[data-fab-icon]{width:var(--spacing-sizing-05)}[data-bspk=fab][data-size=medium]{font:var(--labels-large);height:var(--spacing-sizing-14);padding:0 var(--spacing-sizing-07)}[data-bspk=fab][data-size=medium]>[data-fab-icon]{width:var(--spacing-sizing-06)}[data-bspk=fab][data-variant=primary]{--variant-background: var(--surface-brand-primary);--variant-foreground: var(--foreground-brand-on-primary)}[data-bspk=fab][data-variant=secondary]{--variant-background: var(--surface-brand-secondary);--variant-foreground: var(--foreground-brand-on-secondary)}[data-bspk=fab][data-variant=neutral]{--variant-background: var(--surface-neutral-t1-base);--variant-foreground: var(--foreground-neutral-on-surface-variant-01)}[data-pseudo=hover]>[data-bspk=fab],[data-bspk=fab]:hover{background:linear-gradient(var(--interactions-brand-hover-opacity), var(--interactions-brand-hover-opacity)),var(--variant-gradient)}[data-pseudo=active]>[data-bspk=fab],[data-bspk=fab]:active{background:linear-gradient(var(--interactions-brand-press-opacity), var(--interactions-brand-press-opacity)),var(--variant-gradient)}[data-pseudo=focus]>[data-bspk=fab],[data-bspk=fab]:focus-visible{outline:solid 2px var(--stroke-neutral-focus)}[data-bspk=fab][data-round]{border-radius:var(--radius-circular);aspect-ratio:1/1;padding:0}`);;
4
+ import { Tooltip } from './Tooltip';
5
+ import { isValidIcon } from './utils/children';
6
+ import { useErrorLogger } from './utils/errors';
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, "data-bspk": "fab", "data-container": container, "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
+ export { Fab };
24
+ //# sourceMappingURL=Fab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Fab.js","sourceRoot":"","sources":["../src/Fab.tsx"],"names":[],"mappings":";AAAA,OAAO,YAAY,CAAC;AAIpB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAqChD;;;;;GAKG;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;IAC7B,6CAA6C;IAC7C,MAAM,SAAS,GAAG,aAAa,KAAK,KAAK,IAAI,IAAI,CAAC;IAElD,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,EAAE,CAAC;IACtC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,sDAAsD,CAAC,CAAC;IAE/F,MAAM,EAAE,GAAgB,EAAE,IAAI,QAAQ,CAAC;IAEvC,MAAM,MAAM,GAAG,CACX,MAAC,EAAE,OACK,UAAU,gBACF,KAAK,eACP,KAAK,oBACC,SAAS,oBACT,SAAS,gBACb,SAAS,IAAI,SAAS,eACvB,IAAI,kBACD,OAAO,aAEpB,CAAC,CAAC,IAAI,IAAI,gDAAqB,IAAI,GAAQ,EAC3C,CAAC,SAAS,IAAI,iDAAsB,KAAK,GAAQ,IACjD,CACR,CAAC;IAEF,OAAO,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAC1B,KAAC,OAAO,IAAC,KAAK,EAAE,OAAO,IAAI,KAAK,EAAE,SAAS,EAAC,KAAK,YAC5C,MAAM,GACD,CACb,CAAC,CAAC,CAAC,CACA,MAAM,CACT,CAAC;AACN,CAAC;AAED,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;AAErB,OAAO,EAAE,GAAG,EAAE,CAAC"}
@@ -1,3 +1,4 @@
1
+ import './form-field.scss';
1
2
  import { CommonProps } from './';
2
3
  export type FieldControlProps = {
3
4
  /**
@@ -39,10 +40,9 @@ export type FormFieldProps = CommonProps<'errorMessage' | 'required'> & {
39
40
  *
40
41
  * @name FormField
41
42
  */
42
- declare function FormField({ label, errorMessage, helperText, children, labelTrailing, controlId, required }: FormFieldProps): import("@emotion/react/jsx-runtime").JSX.Element | null;
43
+ declare function FormField({ label, errorMessage, helperText, children, labelTrailing, controlId, required }: FormFieldProps): import("react/jsx-runtime").JSX.Element | null;
43
44
  declare namespace FormField {
44
45
  var bspkName: string;
45
46
  }
46
47
  export { FormField };
47
- export declare const style: import("@emotion/react").SerializedStyles;
48
48
  /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { styleAdd } from './utils/styleAdd';
3
+ styleAdd(`[data-bspk=form-field]{box-sizing:border-box;width:100%;display:flex;flex-direction:column;gap:var(--spacing-sizing-01)}[data-bspk=form-field] header label{flex-grow:1}`);;
4
+ import { InlineAlert } from './InlineAlert';
5
+ import { Layout } from './Layout';
6
+ import { Txt } from './Txt';
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", { "data-bspk": "form-field", 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
+ export { FormField };
27
+ //# sourceMappingURL=FormField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormField.js","sourceRoot":"","sources":["../src/FormField.tsx"],"names":[],"mappings":";AAAA,OAAO,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAuC5B;;;;;;GAMG;AACH,SAAS,SAAS,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAkB;IAChH,MAAM,cAAc,GAAG,YAAY,IAAI,GAAG,SAAS,gBAAgB,CAAC;IACpE,MAAM,YAAY,GAAG,UAAU,IAAI,GAAG,SAAS,cAAc,CAAC;IAE9D,IAAI,OAAO,QAAQ,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IAEhD,OAAO,CACH,4BAAe,YAAY,aACvB,MAAC,MAAM,IAAC,EAAE,EAAC,QAAQ,aACf,iBAAO,OAAO,EAAE,SAAS,aACrB,KAAC,GAAG,IAAC,EAAE,EAAC,MAAM,EAAC,OAAO,EAAC,cAAc,YAChC,KAAK,GACJ,EACL,QAAQ,IAAI,CACT,KAAC,GAAG,IAAC,EAAE,EAAC,MAAM,EAAC,OAAO,EAAC,YAAY,YAC9B,aAAa,GACZ,CACT,IACG,EACP,aAAa,IACT,EACR,QAAQ,CAAC;gBACN,OAAO,EAAE,CAAC,CAAC,YAAY;gBACvB,kBAAkB,EAAE,YAAY;gBAChC,mBAAmB,EAAE,cAAc;aACtC,CAAC,EACD,YAAY,IAAI,CACb,KAAC,WAAW,IAAC,EAAE,EAAE,cAAc,EAAE,OAAO,EAAC,OAAO,YAC3C,YAAY,GACH,CACjB,EACA,UAAU,IAAI,CACX,KAAC,GAAG,IAAC,EAAE,EAAE,YAAY,EAAE,OAAO,EAAC,YAAY,YACtC,UAAU,GACT,CACT,IACC,CACT,CAAC;AACN,CAAC;AAED,SAAS,CAAC,QAAQ,GAAG,WAAW,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -18,7 +18,7 @@ export type ImgProps = {
18
18
  *
19
19
  * @name Img
20
20
  */
21
- declare function Img({ alt, ...props }: ElementProps<ImgProps, 'img'>): import("@emotion/react/jsx-runtime").JSX.Element;
21
+ declare function Img({ alt, ...props }: ElementProps<ImgProps, 'img'>): import("react/jsx-runtime").JSX.Element;
22
22
  declare namespace Img {
23
23
  var bspkName: string;
24
24
  }
package/dist/Img.js ADDED
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * The Img component is used to display images on the page.
4
+ *
5
+ * @name Img
6
+ */
7
+ function Img({ alt, ...props }) {
8
+ return _jsx("img", { ...props, alt: alt, "data-bspk": "img" });
9
+ }
10
+ Img.bspkName = 'Img';
11
+ export { Img };
12
+ //# sourceMappingURL=Img.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Img.js","sourceRoot":"","sources":["../src/Img.tsx"],"names":[],"mappings":";AAiBA;;;;GAIG;AACH,SAAS,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,EAAiC;IACzD,OAAO,iBAAS,KAAK,EAAE,GAAG,EAAE,GAAG,eAAY,KAAK,GAAG,CAAC;AACxD,CAAC;AAED,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;AAErB,OAAO,EAAE,GAAG,EAAE,CAAC"}
@@ -1,3 +1,4 @@
1
+ import './inline-alert.scss';
1
2
  import { AlertVariant } from './';
2
3
  export type InlineAlertProps = {
3
4
  /**
@@ -22,10 +23,9 @@ export type InlineAlertProps = {
22
23
  *
23
24
  * @name InlineAlert
24
25
  */
25
- declare function InlineAlert({ children, variant, id }: InlineAlertProps): import("@emotion/react/jsx-runtime").JSX.Element;
26
+ declare function InlineAlert({ children, variant, id }: InlineAlertProps): import("react/jsx-runtime").JSX.Element;
26
27
  declare namespace InlineAlert {
27
28
  var bspkName: string;
28
29
  }
29
30
  export { InlineAlert };
30
- export declare const style: import("@emotion/react").SerializedStyles;
31
31
  /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "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 { styleAdd } from './utils/styleAdd';
6
+ styleAdd(`[data-bspk=inline-alert]{display:flex;align-items:start;justify-content:center;flex-direction:row;gap:var(--spacing-sizing-02)}[data-bspk=inline-alert] [data-txt]{flex:1}[data-bspk=inline-alert][data-variant=error]{color:var(--status-error);--first-tone: var(--status-error);--second-tone: var(--status-on-information)}[data-bspk=inline-alert][data-variant=success]{color:var(--status-success);--first-tone: var(--status-success);--second-tone: var(--status-on-success)}[data-bspk=inline-alert][data-variant=warning]{color:var(--foreground-neutral-on-surface);--first-tone: var(--status-warning);--second-tone: var(--status-on-warning)}[data-bspk=inline-alert][data-variant=informational]{color:var(--status-information);--first-tone: var(--status-information);--second-tone: var(--status-on-information)}[data-bspk=inline-alert] svg{color:var(--first-tone);width:var(--spacing-sizing-05);height:var(--spacing-sizing-05)}[data-bspk=inline-alert] svg [data-second-tone]{fill:var(--second-tone)}`);;
7
+ import { Txt } from './Txt';
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", { "data-bspk": "inline-alert", "data-variant": variant, id: id, children: [VARIANT_ICON[variant], _jsx(Txt, { variant: "body-small", children: children })] }));
16
+ }
17
+ InlineAlert.bspkName = 'InlineAlert';
18
+ export { InlineAlert };
19
+ // eslint-disable-next-line react/no-multi-comp
20
+ 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 })] }));
21
+ const VARIANT_ICON = {
22
+ error: _jsx(SvgErrorFill, {}),
23
+ informational: _jsx(SvgInfoFill, {}),
24
+ success: _jsx(SvgCheckCircleFill, {}),
25
+ warning: _jsx(SvgWarningTwoTone, {}),
26
+ };
27
+ //# sourceMappingURL=InlineAlert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InlineAlert.js","sourceRoot":"","sources":["../src/InlineAlert.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,qBAAqB,CAAC;AAG7B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAsB5B;;;;;GAKG;AACH,SAAS,WAAW,CAAC,EAAE,QAAQ,EAAE,OAAO,GAAG,eAAe,EAAE,EAAE,EAAoB;IAC9E,OAAO,CACH,4BAAe,cAAc,kBAAe,OAAO,EAAE,EAAE,EAAE,EAAE,aACtD,YAAY,CAAC,OAAO,CAAC,EACtB,KAAC,GAAG,IAAC,OAAO,EAAC,YAAY,YAAE,QAAQ,GAAO,IACxC,CACT,CAAC;AACN,CAAC;AAED,WAAW,CAAC,QAAQ,GAAG,aAAa,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB,+CAA+C;AAC/C,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,CAC5B,eAAK,IAAI,EAAC,MAAM,EAAC,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,4BAA4B,aACnE,eACI,CAAC,EAAC,spCAAspC,EACxpC,IAAI,EAAC,cAAc,GACrB,EACF,eACI,CAAC,EAAC,mUAAmU,6BAEvU,EACF,eACI,CAAC,EAAC,yUAAyU,6BAE7U,IACA,CACT,CAAC;AAEF,MAAM,YAAY,GAAoC;IAClD,KAAK,EAAE,KAAC,YAAY,KAAG;IACvB,aAAa,EAAE,KAAC,WAAW,KAAG;IAC9B,OAAO,EAAE,KAAC,kBAAkB,KAAG;IAC/B,OAAO,EAAE,KAAC,iBAAiB,KAAG;CACjC,CAAC"}
@@ -40,7 +40,7 @@ export type LayoutProps<As extends ElementType = 'div'> = {
40
40
  *
41
41
  * @name Layout
42
42
  */
43
- declare function Layout<As extends ElementType = 'div'>({ children, column, gap, style, as, align, justify, ...props }: ElementProps<LayoutProps<As>, As>): import("@emotion/react/jsx-runtime").JSX.Element;
43
+ declare function Layout<As extends ElementType = 'div'>({ children, column, gap, style, as, align, justify, ...props }: ElementProps<LayoutProps<As>, As>): import("react/jsx-runtime").JSX.Element;
44
44
  declare namespace Layout {
45
45
  var bspkName: string;
46
46
  }
@@ -1,5 +1,4 @@
1
- import { jsx } from '@emotion/react/jsx-runtime';
2
-
1
+ import { jsx as _jsx } from "react/jsx-runtime";
3
2
  /**
4
3
  * Utility component used within other components for layout purposes.
5
4
  *
@@ -9,7 +8,7 @@ function Layout({ children, column, gap = '16', style, as, align = 'flex-start',
9
8
  const As = as || 'div';
10
9
  const alignItems = align || 'flex-start';
11
10
  const justifyContent = justify || 'flex-start';
12
- return (jsx(As, { ...props, style: {
11
+ return (_jsx(As, { ...props, "data-bspk": "layout", style: {
13
12
  ...style,
14
13
  display: 'flex',
15
14
  flexDirection: column ? 'column' : 'row',
@@ -19,6 +18,5 @@ function Layout({ children, column, gap = '16', style, as, align = 'flex-start',
19
18
  }, children: children }));
20
19
  }
21
20
  Layout.bspkName = 'Layout';
22
-
23
21
  export { Layout };
24
- //# sourceMappingURL=Layout.js.map
22
+ //# sourceMappingURL=Layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Layout.js","sourceRoot":"","sources":["../src/Layout.tsx"],"names":[],"mappings":";AAwCA;;;;GAIG;AACH,SAAS,MAAM,CAAiC,EAC5C,QAAQ,EACR,MAAM,EACN,GAAG,GAAG,IAAI,EACV,KAAK,EACL,EAAE,EACF,KAAK,GAAG,YAAY,EACpB,OAAO,GAAG,YAAY,EACtB,GAAG,KAAK,EACwB;IAChC,MAAM,EAAE,GAAgB,EAAE,IAAI,KAAK,CAAC;IAEpC,MAAM,UAAU,GAAG,KAAK,IAAI,YAAY,CAAC;IACzC,MAAM,cAAc,GAAG,OAAO,IAAI,YAAY,CAAC;IAE/C,OAAO,CACH,KAAC,EAAE,OACK,KAAK,eACC,QAAQ,EAClB,KAAK,EAAE;YACH,GAAG,KAAK;YACR,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;YACxC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI;YAC5B,UAAU;YACV,cAAc;SACjB,YAEA,QAAQ,GACR,CACR,CAAC;AACN,CAAC;AAED,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAE3B,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -1,3 +1,4 @@
1
+ import './link.scss';
1
2
  import { AnchorHTMLAttributes } from 'react';
2
3
  export type LinkProps = Pick<AnchorHTMLAttributes<unknown>, 'target'> & {
3
4
  /**
@@ -29,10 +30,9 @@ export type LinkProps = Pick<AnchorHTMLAttributes<unknown>, 'target'> & {
29
30
  *
30
31
  * @name Link
31
32
  */
32
- declare function Link({ label, trailingIcon, size, variant, ...props }: LinkProps): import("@emotion/react/jsx-runtime").JSX.Element;
33
+ declare function Link({ label, trailingIcon, size, variant, ...props }: LinkProps): import("react/jsx-runtime").JSX.Element;
33
34
  declare namespace Link {
34
35
  var bspkName: string;
35
36
  }
36
37
  export { Link };
37
- export declare const style: import("@emotion/react").SerializedStyles;
38
38
  /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
package/dist/Link.js ADDED
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { SvgChevronRight } from '@bspk/icons/ChevronRight';
3
+ import { SvgLink } from '@bspk/icons/Link';
4
+ import { SvgOpenInNew } from '@bspk/icons/OpenInNew';
5
+ import { styleAdd } from './utils/styleAdd';
6
+ styleAdd(`[data-bspk=link]{display:flex;flex-direction:row;align-items:center;gap:var(--spacing-sizing-01);font:var(--labels-base)}[data-bspk=link][data-size=large]{font:var(--labels-large)}[data-bspk=link][data-size=small]{font:var(--labels-small)}[data-bspk=link] svg{width:var(--spacing-sizing-05)}`);;
7
+ /**
8
+ * This is the standalone link component. Inline links can use the native `a` element.
9
+ *
10
+ * @name Link
11
+ */
12
+ function Link({ label, trailingIcon, size, variant, ...props }) {
13
+ return (_jsxs("a", { ...props, "data-bspk": "link", "data-size": size, "data-subtle": variant === 'subtle' || undefined, "data-subtle-inverse": variant === 'subtle-inverse' || undefined, rel: "noreferrer", target: trailingIcon === 'external' ? '_blank' : props.target, children: [_jsx("span", { children: label }), trailingIcon === 'external' && _jsx(SvgOpenInNew, {}), trailingIcon === 'chevron' && _jsx(SvgChevronRight, {}), trailingIcon === 'link' && _jsx(SvgLink, {})] }));
14
+ }
15
+ Link.bspkName = 'Link';
16
+ export { Link };
17
+ //# sourceMappingURL=Link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Link.js","sourceRoot":"","sources":["../src/Link.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,aAAa,CAAC;AA6BrB;;;;GAIG;AACH,SAAS,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,EAAa;IACrE,OAAO,CACH,gBACQ,KAAK,eACC,MAAM,eACL,IAAI,iBACF,OAAO,KAAK,QAAQ,IAAI,SAAS,yBACzB,OAAO,KAAK,gBAAgB,IAAI,SAAS,EAC9D,GAAG,EAAC,YAAY,EAChB,MAAM,EAAE,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,aAE7D,yBAAO,KAAK,GAAQ,EACnB,YAAY,KAAK,UAAU,IAAI,KAAC,YAAY,KAAG,EAC/C,YAAY,KAAK,SAAS,IAAI,KAAC,eAAe,KAAG,EACjD,YAAY,KAAK,MAAM,IAAI,KAAC,OAAO,KAAG,IACvC,CACP,CAAC;AACN,CAAC;AAED,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;AAEvB,OAAO,EAAE,IAAI,EAAE,CAAC"}
@@ -1,3 +1,4 @@
1
+ import './list-item.scss';
1
2
  import { ElementType, ReactNode } from 'react';
2
3
  import { ButtonProps } from './Button';
3
4
  import { CommonProps, ElementProps } from './';
@@ -53,16 +54,15 @@ export type ListItemProps<As extends ElementType = 'div'> = CommonProps<'active'
53
54
  *
54
55
  * @name ListItem
55
56
  */
56
- declare function ListItem<As extends ElementType = 'div'>({ as, disabled, invalid, leading: leadingProp, trailing: trailingProp, label, subText, active, readOnly, ...props }: ElementProps<ListItemProps<As>, As>): import("@emotion/react/jsx-runtime").JSX.Element | undefined;
57
+ declare function ListItem<As extends ElementType = 'div'>({ as, disabled, invalid, leading: leadingProp, trailing: trailingProp, label, subText, active, readOnly, ...props }: ElementProps<ListItemProps<As>, As>): import("react/jsx-runtime").JSX.Element | undefined;
57
58
  declare namespace ListItem {
58
59
  var bspkName: string;
59
60
  var Button: typeof ListItemButton;
60
61
  }
61
62
  /** A button that can be used as a trailing element in a ListItem. */
62
- declare function ListItemButton({ label, icon, ...buttonProps }: Pick<ButtonProps, 'icon' | 'label' | 'onClick'>): import("@emotion/react/jsx-runtime").JSX.Element;
63
+ declare function ListItemButton({ label, icon, ...buttonProps }: Pick<ButtonProps, 'icon' | 'label' | 'onClick'>): import("react/jsx-runtime").JSX.Element;
63
64
  declare namespace ListItemButton {
64
65
  var bspkName: string;
65
66
  }
66
67
  export { ListItem };
67
- export declare const style: import("@emotion/react").SerializedStyles;
68
68
  /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
@@ -0,0 +1,93 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { styleAdd } from './utils/styleAdd';
3
+ styleAdd(`[data-bspk=list-item]{display:block;width:100%;box-sizing:border-box;padding:0 var(--spacing-sizing-02);background:unset;border:unset;margin:unset;text-decoration:unset;user-select:none;color:var(--foreground-neutral-on-surface)}[data-bspk=list-item]:is(a),[data-bspk=list-item]:is(button),[data-bspk=list-item][onclick],[data-bspk=list-item][role=button]{cursor:pointer}[data-bspk=list-item] [data-inner]{height:100%;width:100%;min-height:var(--spacing-sizing-09);box-sizing:border-box;display:flex;flex-direction:row;gap:var(--spacing-sizing-03);padding:var(--spacing-sizing-02) 0;justify-items:stretch}[data-bspk=list-item] [data-inner]>*{min-height:100%;width:fit-content;display:flex;flex-direction:column;justify-content:space-around;flex:1;flex-shrink:0}[data-bspk=list-item] [data-inner]>* svg{width:24px;max-width:unset}[data-pseudo=focus] [data-bspk=list-item][data-action],[data-bspk=list-item][data-action]:focus-visible,[data-bspk=list-item][data-action]:has(*:focus-visible){box-shadow:inset var(--stroke-neutral-focus) 0 0 0 2px}[data-pseudo=focus] [data-bspk=list-item][data-action] [data-inner],[data-bspk=list-item][data-action]:focus-visible [data-inner],[data-bspk=list-item][data-action]:has(*:focus-visible) [data-inner]{border-color:rgba(0,0,0,0)}[data-pseudo=hover] [data-bspk=list-item][data-action],[data-bspk=list-item][data-action]:hover{background-color:var(--interactions-neutral-hover-opacity)}[data-pseudo=active] [data-bspk=list-item][data-action],[data-bspk=list-item][data-action][data-active],[data-bspk=list-item][data-action]:active{background-color:var(--interactions-neutral-press-opacity)}[data-bspk=list-item] [data-component=Img]>img{height:36px;width:36px;max-width:unset}[data-bspk=list-item]:is(label) [data-inner]{border-bottom:0;gap:var(--spacing-sizing-02)}[data-bspk=list-item] [data-item-label]{flex:100%;text-align:left}[data-bspk=list-item] [data-item-label] [data-text]{font:var(--labels-base);color:var(--foreground-neutral-on-surface)}[data-bspk=list-item] [data-item-label] [data-sub-text]{font:var(--body-small);color:var(--foreground-neutral-on-surface-variant-01)}[data-bspk=list-item][aria-disabled] [data-text],[data-bspk=list-item][aria-disabled] [data-sub-text]{color:var(--foreground-neutral-disabled-on-surface)}`);;
4
+ import { Button } from './Button';
5
+ import { getChildrenElements } from './utils/children';
6
+ import { useErrorLogger } from './utils/errors';
7
+ export const LEADING_COMPONENTS = Object.freeze(['Icon', 'Img', 'Avatar']);
8
+ export 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, Avatar.
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, "data-action": actionable || undefined, "data-active": active || undefined, "data-bspk": "list-item", "data-component": leading?.name || undefined, "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
+ export { ListItem };
71
+ function useChildren(leadingProp, trailingProp) {
72
+ const { logError } = useErrorLogger();
73
+ let leading = getChildrenElements(leadingProp)[0] || null;
74
+ const trailingElements = getChildrenElements(trailingProp);
75
+ let trailing = trailingElements[0] || null;
76
+ if (leading) {
77
+ const valid = LEADING_COMPONENTS.includes(leading.name);
78
+ if (!valid)
79
+ leading = null;
80
+ logError(!valid, `ListItem - Leading child is invalid. Must be one of:${LEADING_COMPONENTS} Elements: ${leading?.name || 'None'}`);
81
+ }
82
+ if (trailing) {
83
+ const valid = TRAILING_COMPONENTS.includes(trailing.name);
84
+ if (!valid)
85
+ trailing = null;
86
+ logError(!valid, `ListItem - Trailing child is invalid. Must be one of:${TRAILING_COMPONENTS} Elements: ${trailing?.name || 'None'}`);
87
+ }
88
+ return {
89
+ leading,
90
+ trailing,
91
+ };
92
+ }
93
+ //# sourceMappingURL=ListItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListItem.js","sourceRoot":"","sources":["../src/ListItem.tsx"],"names":[],"mappings":";AAAA,OAAO,kBAAkB,CAAC;AAG1B,OAAO,EAAe,MAAM,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAgB,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAIhD,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE3E,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7C,gBAAgB;IAChB,UAAU;IACV,MAAM;IACN,OAAO;IACP,QAAQ;IACR,KAAK;IACL,KAAK;CACR,CAAC,CAAC;AAoCH;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAS,QAAQ,CAAiC,EAC9C,EAAE,EACF,QAAQ,EACR,OAAO,EACP,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,YAAY,EACtB,KAAK,EACL,OAAO,EACP,MAAM,EACN,QAAQ,EACR,GAAG,KAAK,EAC0B;IAClC,IAAI,EAAE,GAAgB,EAAE,IAAI,KAAK,CAAC;IAElC,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,EAAE,CAAC;IAEtC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAErE,IAAI,CAAC,KAAK;QAAE,OAAO;IAEnB,MAAM,UAAU,GAAkB,EAAE,CAAC;IAErC,IAAI,MAAM,IAAI,KAAK;QAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE1C,IAAI,QAAQ,EAAE,IAAI,EAAE,CAAC;QACjB,uEAAuE;QACvE,IAAI,QAAQ,EAAE,IAAI,KAAK,gBAAgB;YAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1F,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,EAAE,GAAG,UAAU,CAAC,CAAC,CAAgB,CAAC;IACtC,CAAC;IAED,MAAM,eAAe,GAAG,QAAQ,CAC5B,UAAU,CAAC,MAAM,GAAG,CAAC,EACrB,wDAAwD,EAAE,uBAAuB,CACpF,CAAC;IAEF,IAAI,eAAe;QAAE,EAAE,GAAG,UAAU,CAAC,CAAC,CAAgB,CAAC;IAEvD,IAAI,CAAC,EAAE,IAAI,SAAS,IAAI,KAAK;QAAE,EAAE,GAAG,QAAQ,CAAC;IAE7C,MAAM,UAAU,GAAG,CAAC,SAAS,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC;IAErF,OAAO,CACH,KAAC,EAAE,OACK,KAAK,mBACM,QAAQ,IAAI,SAAS,kBACtB,OAAO,IAAI,SAAS,iBACrB,UAAU,IAAI,SAAS,iBACvB,MAAM,IAAI,SAAS,eACtB,WAAW,oBACL,OAAO,EAAE,IAAI,IAAI,SAAS,mBAC3B,QAAQ,IAAI,SAAS,EACpC,IAAI,EAAE,EAAE,KAAK,QAAQ,IAAI,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,YAElE,+CACK,OAAO,IAAI,CACR,iCAAsB,OAAO,CAAC,IAAI,kCAC7B,OAAO,CAAC,KAAK,GACX,CACV,EACD,oDACI,4CAAiB,KAAK,GAAQ,EAC7B,OAAO,IAAI,gDAAqB,OAAO,GAAQ,IAC7C,EACN,QAAQ,IAAI,CACT,iCAAsB,QAAQ,CAAC,IAAI,mCAC9B,QAAQ,CAAC,KAAK,GACZ,CACV,IACE,GACN,CACR,CAAC;AACN,CAAC;AACD,QAAQ,CAAC,QAAQ,GAAG,UAAU,CAAC;AAE/B,qEAAqE;AACrE,+CAA+C;AAC/C,SAAS,cAAc,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,WAAW,EAAmD;IACpG,OAAO,KAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,KAAM,WAAW,EAAE,IAAI,EAAC,OAAO,EAAC,OAAO,EAAC,UAAU,GAAG,CAAC;AACnH,CAAC;AACD,cAAc,CAAC,QAAQ,GAAG,gBAAgB,CAAC;AAC3C,QAAQ,CAAC,MAAM,GAAG,cAAc,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEpB,SAAS,WAAW,CAChB,WAAsB,EACtB,YAAuB;IAKvB,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,EAAE,CAAC;IAEtC,IAAI,OAAO,GAAwB,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAE/E,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAE3D,IAAI,QAAQ,GAAwB,gBAAgB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAEhE,IAAI,OAAO,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK;YAAE,OAAO,GAAG,IAAI,CAAC;QAC3B,QAAQ,CACJ,CAAC,KAAK,EACN,uDAAuD,kBAAkB,cAAc,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,CACnH,CAAC;IACN,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,KAAK,GAAG,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK;YAAE,QAAQ,GAAG,IAAI,CAAC;QAC5B,QAAQ,CACJ,CAAC,KAAK,EACN,wDAAwD,mBAAmB,cAAc,QAAQ,EAAE,IAAI,IAAI,MAAM,EAAE,CACtH,CAAC;IACN,CAAC;IAED,OAAO;QACH,OAAO;QACP,QAAQ;KACX,CAAC;AACN,CAAC"}
@@ -1,3 +1,4 @@
1
+ import './menu.scss';
1
2
  import { ComponentProps, MouseEvent as ReactMouseEvent } from 'react';
2
3
  import { ListItem } from './ListItem';
3
4
  import { CommonProps, ElementProps } from './';
@@ -77,10 +78,9 @@ export type MenuProps<Item extends MenuItem = MenuItem> = CommonProps<'disabled'
77
78
  *
78
79
  * @name Menu
79
80
  */
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 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("react/jsx-runtime").JSX.Element;
81
82
  declare namespace Menu {
82
83
  var bspkName: string;
83
84
  }
84
85
  export { Menu };
85
- export declare const style: import("@emotion/react").SerializedStyles;
86
86
  /** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */