@baseplate-dev/ui-components 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. package/LICENSE +390 -0
  2. package/dist/components/Alert/Alert.d.ts +15 -0
  3. package/dist/components/Alert/Alert.d.ts.map +1 -0
  4. package/dist/components/Alert/Alert.js +32 -0
  5. package/dist/components/Alert/Alert.js.map +1 -0
  6. package/dist/components/Badge/Badge.d.ts +21 -0
  7. package/dist/components/Badge/Badge.d.ts.map +1 -0
  8. package/dist/components/Badge/Badge.js +33 -0
  9. package/dist/components/Badge/Badge.js.map +1 -0
  10. package/dist/components/Breadcrumb/Breadcrumb.d.ts +12 -0
  11. package/dist/components/Breadcrumb/Breadcrumb.d.ts.map +1 -0
  12. package/dist/components/Breadcrumb/Breadcrumb.js +28 -0
  13. package/dist/components/Breadcrumb/Breadcrumb.js.map +1 -0
  14. package/dist/components/Button/Button.d.ts +23 -0
  15. package/dist/components/Button/Button.d.ts.map +1 -0
  16. package/dist/components/Button/Button.js +22 -0
  17. package/dist/components/Button/Button.js.map +1 -0
  18. package/dist/components/ButtonGroup/ButtonGroup.d.ts +7 -0
  19. package/dist/components/ButtonGroup/ButtonGroup.d.ts.map +1 -0
  20. package/dist/components/ButtonGroup/ButtonGroup.js +10 -0
  21. package/dist/components/ButtonGroup/ButtonGroup.js.map +1 -0
  22. package/dist/components/Card/Card.d.ts +15 -0
  23. package/dist/components/Card/Card.d.ts.map +1 -0
  24. package/dist/components/Card/Card.js +30 -0
  25. package/dist/components/Card/Card.js.map +1 -0
  26. package/dist/components/Checkbox/Checkbox.d.ts +10 -0
  27. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -0
  28. package/dist/components/Checkbox/Checkbox.js +15 -0
  29. package/dist/components/Checkbox/Checkbox.js.map +1 -0
  30. package/dist/components/CheckboxField/CheckboxField.d.ts +19 -0
  31. package/dist/components/CheckboxField/CheckboxField.d.ts.map +1 -0
  32. package/dist/components/CheckboxField/CheckboxField.js +20 -0
  33. package/dist/components/CheckboxField/CheckboxField.js.map +1 -0
  34. package/dist/components/ColorPicker/ColorPicker.d.ts +16 -0
  35. package/dist/components/ColorPicker/ColorPicker.d.ts.map +1 -0
  36. package/dist/components/ColorPicker/ColorPicker.js +19 -0
  37. package/dist/components/ColorPicker/ColorPicker.js.map +1 -0
  38. package/dist/components/ColorPickerField/ColorPickerField.d.ts +36 -0
  39. package/dist/components/ColorPickerField/ColorPickerField.d.ts.map +1 -0
  40. package/dist/components/ColorPickerField/ColorPickerField.js +43 -0
  41. package/dist/components/ColorPickerField/ColorPickerField.js.map +1 -0
  42. package/dist/components/Combobox/Combobox.d.ts +71 -0
  43. package/dist/components/Combobox/Combobox.d.ts.map +1 -0
  44. package/dist/components/Combobox/Combobox.js +173 -0
  45. package/dist/components/Combobox/Combobox.js.map +1 -0
  46. package/dist/components/Combobox/Combobox.test.d.ts +2 -0
  47. package/dist/components/Combobox/Combobox.test.d.ts.map +1 -0
  48. package/dist/components/Combobox/Combobox.test.js +148 -0
  49. package/dist/components/Combobox/Combobox.test.js.map +1 -0
  50. package/dist/components/ComboboxField/ComboboxField.d.ts +20 -0
  51. package/dist/components/ComboboxField/ComboboxField.d.ts.map +1 -0
  52. package/dist/components/ComboboxField/ComboboxField.js +39 -0
  53. package/dist/components/ComboboxField/ComboboxField.js.map +1 -0
  54. package/dist/components/Command/Command.d.ts +22 -0
  55. package/dist/components/Command/Command.d.ts.map +1 -0
  56. package/dist/components/Command/Command.js +40 -0
  57. package/dist/components/Command/Command.js.map +1 -0
  58. package/dist/components/ConfirmDialog/ConfirmDialog.d.ts +8 -0
  59. package/dist/components/ConfirmDialog/ConfirmDialog.d.ts.map +1 -0
  60. package/dist/components/ConfirmDialog/ConfirmDialog.js +48 -0
  61. package/dist/components/ConfirmDialog/ConfirmDialog.js.map +1 -0
  62. package/dist/components/Dialog/Dialog.d.ts +22 -0
  63. package/dist/components/Dialog/Dialog.d.ts.map +1 -0
  64. package/dist/components/Dialog/Dialog.js +42 -0
  65. package/dist/components/Dialog/Dialog.js.map +1 -0
  66. package/dist/components/Dropdown/Dropdown.d.ts +31 -0
  67. package/dist/components/Dropdown/Dropdown.d.ts.map +1 -0
  68. package/dist/components/Dropdown/Dropdown.js +57 -0
  69. package/dist/components/Dropdown/Dropdown.js.map +1 -0
  70. package/dist/components/EmptyDisplay/EmptyDisplay.d.ts +30 -0
  71. package/dist/components/EmptyDisplay/EmptyDisplay.d.ts.map +1 -0
  72. package/dist/components/EmptyDisplay/EmptyDisplay.js +14 -0
  73. package/dist/components/EmptyDisplay/EmptyDisplay.js.map +1 -0
  74. package/dist/components/ErrorDisplay/ErrorDisplay.d.ts +25 -0
  75. package/dist/components/ErrorDisplay/ErrorDisplay.d.ts.map +1 -0
  76. package/dist/components/ErrorDisplay/ErrorDisplay.js +16 -0
  77. package/dist/components/ErrorDisplay/ErrorDisplay.js.map +1 -0
  78. package/dist/components/ErrorableLoader/ErrorableLoader.d.ts +25 -0
  79. package/dist/components/ErrorableLoader/ErrorableLoader.d.ts.map +1 -0
  80. package/dist/components/ErrorableLoader/ErrorableLoader.js +14 -0
  81. package/dist/components/ErrorableLoader/ErrorableLoader.js.map +1 -0
  82. package/dist/components/FormActionBar/FormActionBar.d.ts +32 -0
  83. package/dist/components/FormActionBar/FormActionBar.d.ts.map +1 -0
  84. package/dist/components/FormActionBar/FormActionBar.js +28 -0
  85. package/dist/components/FormActionBar/FormActionBar.js.map +1 -0
  86. package/dist/components/FormItem/FormItem.d.ts +23 -0
  87. package/dist/components/FormItem/FormItem.d.ts.map +1 -0
  88. package/dist/components/FormItem/FormItem.js +57 -0
  89. package/dist/components/FormItem/FormItem.js.map +1 -0
  90. package/dist/components/Input/Input.d.ts +11 -0
  91. package/dist/components/Input/Input.d.ts.map +1 -0
  92. package/dist/components/Input/Input.js +15 -0
  93. package/dist/components/Input/Input.js.map +1 -0
  94. package/dist/components/InputField/InputField.d.ts +17 -0
  95. package/dist/components/InputField/InputField.d.ts.map +1 -0
  96. package/dist/components/InputField/InputField.js +18 -0
  97. package/dist/components/InputField/InputField.js.map +1 -0
  98. package/dist/components/Label/Label.d.ts +10 -0
  99. package/dist/components/Label/Label.d.ts.map +1 -0
  100. package/dist/components/Label/Label.js +14 -0
  101. package/dist/components/Label/Label.js.map +1 -0
  102. package/dist/components/Loader/Loader.d.ts +10 -0
  103. package/dist/components/Loader/Loader.d.ts.map +1 -0
  104. package/dist/components/Loader/Loader.js +10 -0
  105. package/dist/components/Loader/Loader.js.map +1 -0
  106. package/dist/components/MultiCombobox/MultiCombobox.d.ts +47 -0
  107. package/dist/components/MultiCombobox/MultiCombobox.d.ts.map +1 -0
  108. package/dist/components/MultiCombobox/MultiCombobox.js +114 -0
  109. package/dist/components/MultiCombobox/MultiCombobox.js.map +1 -0
  110. package/dist/components/MultiComboboxField/MultiComboboxField.d.ts +19 -0
  111. package/dist/components/MultiComboboxField/MultiComboboxField.d.ts.map +1 -0
  112. package/dist/components/MultiComboboxField/MultiComboboxField.js +38 -0
  113. package/dist/components/MultiComboboxField/MultiComboboxField.js.map +1 -0
  114. package/dist/components/MultiSwitchField/MultiSwitchField.d.ts +41 -0
  115. package/dist/components/MultiSwitchField/MultiSwitchField.d.ts.map +1 -0
  116. package/dist/components/MultiSwitchField/MultiSwitchField.js +44 -0
  117. package/dist/components/MultiSwitchField/MultiSwitchField.js.map +1 -0
  118. package/dist/components/NavigationMenu/NavigationMenu.d.ts +27 -0
  119. package/dist/components/NavigationMenu/NavigationMenu.d.ts.map +1 -0
  120. package/dist/components/NavigationMenu/NavigationMenu.js +50 -0
  121. package/dist/components/NavigationMenu/NavigationMenu.js.map +1 -0
  122. package/dist/components/NavigationTabs/NavigationTabs.d.ts +9 -0
  123. package/dist/components/NavigationTabs/NavigationTabs.d.ts.map +1 -0
  124. package/dist/components/NavigationTabs/NavigationTabs.js +14 -0
  125. package/dist/components/NavigationTabs/NavigationTabs.js.map +1 -0
  126. package/dist/components/Popover/Popover.d.ts +17 -0
  127. package/dist/components/Popover/Popover.d.ts.map +1 -0
  128. package/dist/components/Popover/Popover.js +23 -0
  129. package/dist/components/Popover/Popover.js.map +1 -0
  130. package/dist/components/RecordView/RecordView.d.ts +24 -0
  131. package/dist/components/RecordView/RecordView.d.ts.map +1 -0
  132. package/dist/components/RecordView/RecordView.js +16 -0
  133. package/dist/components/RecordView/RecordView.js.map +1 -0
  134. package/dist/components/ScrollArea/ScrollArea.d.ts +11 -0
  135. package/dist/components/ScrollArea/ScrollArea.d.ts.map +1 -0
  136. package/dist/components/ScrollArea/ScrollArea.js +19 -0
  137. package/dist/components/ScrollArea/ScrollArea.js.map +1 -0
  138. package/dist/components/SectionList/SectionList.d.ts +36 -0
  139. package/dist/components/SectionList/SectionList.d.ts.map +1 -0
  140. package/dist/components/SectionList/SectionList.js +25 -0
  141. package/dist/components/SectionList/SectionList.js.map +1 -0
  142. package/dist/components/Select/Select.d.ts +26 -0
  143. package/dist/components/Select/Select.d.ts.map +1 -0
  144. package/dist/components/Select/Select.js +51 -0
  145. package/dist/components/Select/Select.js.map +1 -0
  146. package/dist/components/SelectField/SelectField.d.ts +13 -0
  147. package/dist/components/SelectField/SelectField.d.ts.map +1 -0
  148. package/dist/components/SelectField/SelectField.js +30 -0
  149. package/dist/components/SelectField/SelectField.js.map +1 -0
  150. package/dist/components/Separator/Separator.d.ts +10 -0
  151. package/dist/components/Separator/Separator.d.ts.map +1 -0
  152. package/dist/components/Separator/Separator.js +14 -0
  153. package/dist/components/Separator/Separator.js.map +1 -0
  154. package/dist/components/Sheet/Sheet.d.ts +20 -0
  155. package/dist/components/Sheet/Sheet.d.ts.map +1 -0
  156. package/dist/components/Sheet/Sheet.js +46 -0
  157. package/dist/components/Sheet/Sheet.js.map +1 -0
  158. package/dist/components/SidebarLayout/SidebarLayout.d.ts +23 -0
  159. package/dist/components/SidebarLayout/SidebarLayout.d.ts.map +1 -0
  160. package/dist/components/SidebarLayout/SidebarLayout.js +22 -0
  161. package/dist/components/SidebarLayout/SidebarLayout.js.map +1 -0
  162. package/dist/components/Switch/Switch.d.ts +10 -0
  163. package/dist/components/Switch/Switch.d.ts.map +1 -0
  164. package/dist/components/Switch/Switch.js +13 -0
  165. package/dist/components/Switch/Switch.js.map +1 -0
  166. package/dist/components/SwitchField/SwitchField.d.ts +16 -0
  167. package/dist/components/SwitchField/SwitchField.d.ts.map +1 -0
  168. package/dist/components/SwitchField/SwitchField.js +15 -0
  169. package/dist/components/SwitchField/SwitchField.js.map +1 -0
  170. package/dist/components/Table/Table.d.ts +16 -0
  171. package/dist/components/Table/Table.d.ts.map +1 -0
  172. package/dist/components/Table/Table.js +33 -0
  173. package/dist/components/Table/Table.js.map +1 -0
  174. package/dist/components/Tabs/Tabs.d.ts +13 -0
  175. package/dist/components/Tabs/Tabs.d.ts.map +1 -0
  176. package/dist/components/Tabs/Tabs.js +23 -0
  177. package/dist/components/Tabs/Tabs.js.map +1 -0
  178. package/dist/components/Textarea/Textarea.d.ts +10 -0
  179. package/dist/components/Textarea/Textarea.d.ts.map +1 -0
  180. package/dist/components/Textarea/Textarea.js +12 -0
  181. package/dist/components/Textarea/Textarea.js.map +1 -0
  182. package/dist/components/TextareaField/TextareaField.d.ts +17 -0
  183. package/dist/components/TextareaField/TextareaField.d.ts.map +1 -0
  184. package/dist/components/TextareaField/TextareaField.js +18 -0
  185. package/dist/components/TextareaField/TextareaField.js.map +1 -0
  186. package/dist/components/Toaster/Toaster.d.ts +11 -0
  187. package/dist/components/Toaster/Toaster.d.ts.map +1 -0
  188. package/dist/components/Toaster/Toaster.js +29 -0
  189. package/dist/components/Toaster/Toaster.js.map +1 -0
  190. package/dist/components/Tooltip/Tooltip.d.ts +8 -0
  191. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -0
  192. package/dist/components/Tooltip/Tooltip.js +18 -0
  193. package/dist/components/Tooltip/Tooltip.js.map +1 -0
  194. package/dist/components/index.d.ts +48 -0
  195. package/dist/components/index.d.ts.map +1 -0
  196. package/dist/components/index.js +48 -0
  197. package/dist/components/index.js.map +1 -0
  198. package/dist/constants/strings.d.ts +14 -0
  199. package/dist/constants/strings.d.ts.map +1 -0
  200. package/dist/constants/strings.js +13 -0
  201. package/dist/constants/strings.js.map +1 -0
  202. package/dist/contexts/component-strings.d.ts +16 -0
  203. package/dist/contexts/component-strings.d.ts.map +1 -0
  204. package/dist/contexts/component-strings.js +9 -0
  205. package/dist/contexts/component-strings.js.map +1 -0
  206. package/dist/hooks/index.d.ts +5 -0
  207. package/dist/hooks/index.d.ts.map +1 -0
  208. package/dist/hooks/index.js +5 -0
  209. package/dist/hooks/index.js.map +1 -0
  210. package/dist/hooks/useConfirmDialog.d.ts +22 -0
  211. package/dist/hooks/useConfirmDialog.d.ts.map +1 -0
  212. package/dist/hooks/useConfirmDialog.js +20 -0
  213. package/dist/hooks/useConfirmDialog.js.map +1 -0
  214. package/dist/hooks/useControlledState.d.ts +6 -0
  215. package/dist/hooks/useControlledState.d.ts.map +1 -0
  216. package/dist/hooks/useControlledState.js +27 -0
  217. package/dist/hooks/useControlledState.js.map +1 -0
  218. package/dist/hooks/useControllerMerged.d.ts +22 -0
  219. package/dist/hooks/useControllerMerged.d.ts.map +1 -0
  220. package/dist/hooks/useControllerMerged.js +32 -0
  221. package/dist/hooks/useControllerMerged.js.map +1 -0
  222. package/dist/hooks/useEventCallback.d.ts +3 -0
  223. package/dist/hooks/useEventCallback.d.ts.map +1 -0
  224. package/dist/hooks/useEventCallback.js +15 -0
  225. package/dist/hooks/useEventCallback.js.map +1 -0
  226. package/dist/index.d.ts +7 -0
  227. package/dist/index.js +6 -0
  228. package/dist/index.js.map +1 -0
  229. package/dist/stories/button-icons.d.ts +15 -0
  230. package/dist/stories/button-icons.d.ts.map +1 -0
  231. package/dist/stories/button-icons.js +17 -0
  232. package/dist/stories/button-icons.js.map +1 -0
  233. package/dist/styles/button.d.ts +6 -0
  234. package/dist/styles/button.d.ts.map +1 -0
  235. package/dist/styles/button.js +33 -0
  236. package/dist/styles/button.js.map +1 -0
  237. package/dist/styles/index.d.ts +4 -0
  238. package/dist/styles/index.d.ts.map +1 -0
  239. package/dist/styles/index.js +4 -0
  240. package/dist/styles/index.js.map +1 -0
  241. package/dist/styles/input.d.ts +6 -0
  242. package/dist/styles/input.d.ts.map +1 -0
  243. package/dist/styles/input.js +24 -0
  244. package/dist/styles/input.js.map +1 -0
  245. package/dist/styles/select.d.ts +9 -0
  246. package/dist/styles/select.d.ts.map +1 -0
  247. package/dist/styles/select.js +22 -0
  248. package/dist/styles/select.js.map +1 -0
  249. package/dist/tests/render.test-helper.d.ts +4 -0
  250. package/dist/tests/render.test-helper.d.ts.map +1 -0
  251. package/dist/tests/render.test-helper.js +7 -0
  252. package/dist/tests/render.test-helper.js.map +1 -0
  253. package/dist/tests/setup.d.ts +2 -0
  254. package/dist/tests/setup.d.ts.map +1 -0
  255. package/dist/tests/setup.js +27 -0
  256. package/dist/tests/setup.js.map +1 -0
  257. package/dist/types/form.d.ts +40 -0
  258. package/dist/types/form.d.ts.map +1 -0
  259. package/dist/types/form.js +2 -0
  260. package/dist/types/form.js.map +1 -0
  261. package/dist/types/react.d.ts +3 -0
  262. package/dist/types/react.d.ts.map +1 -0
  263. package/dist/types/react.js +2 -0
  264. package/dist/types/react.js.map +1 -0
  265. package/dist/utils/cn.d.ts +3 -0
  266. package/dist/utils/cn.d.ts.map +1 -0
  267. package/dist/utils/cn.js +5 -0
  268. package/dist/utils/cn.js.map +1 -0
  269. package/dist/utils/generic-forward-ref.d.ts +8 -0
  270. package/dist/utils/generic-forward-ref.d.ts.map +1 -0
  271. package/dist/utils/generic-forward-ref.js +15 -0
  272. package/dist/utils/generic-forward-ref.js.map +1 -0
  273. package/dist/utils/index.d.ts +4 -0
  274. package/dist/utils/index.d.ts.map +1 -0
  275. package/dist/utils/index.js +4 -0
  276. package/dist/utils/index.js.map +1 -0
  277. package/dist/utils/refs.d.ts +10 -0
  278. package/dist/utils/refs.d.ts.map +1 -0
  279. package/dist/utils/refs.js +24 -0
  280. package/dist/utils/refs.js.map +1 -0
  281. package/package.json +127 -0
  282. package/src/theme.css +81 -0
@@ -0,0 +1,15 @@
1
+ export declare const STORYBOOK_ICON_SELECT: {
2
+ options: string[];
3
+ mapping: {
4
+ None: null;
5
+ Down: import("react-icons/lib").IconType;
6
+ Up: import("react-icons/lib").IconType;
7
+ Right: import("react-icons/lib").IconType;
8
+ Left: import("react-icons/lib").IconType;
9
+ Home: import("react-icons/lib").IconType;
10
+ Settings: import("react-icons/lib").IconType;
11
+ Plus: import("react-icons/lib").IconType;
12
+ Power: import("react-icons/lib").IconType;
13
+ };
14
+ };
15
+ //# sourceMappingURL=button-icons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button-icons.d.ts","sourceRoot":"","sources":["../../src/stories/button-icons.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;CAGjC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { MdAdd, MdChevronLeft, MdChevronRight, MdExpandLess, MdExpandMore, MdHome, MdPowerSettingsNew, MdSettings, } from 'react-icons/md';
2
+ const ICONS = {
3
+ None: null,
4
+ Down: MdExpandMore,
5
+ Up: MdExpandLess,
6
+ Right: MdChevronRight,
7
+ Left: MdChevronLeft,
8
+ Home: MdHome,
9
+ Settings: MdSettings,
10
+ Plus: MdAdd,
11
+ Power: MdPowerSettingsNew,
12
+ };
13
+ export const STORYBOOK_ICON_SELECT = {
14
+ options: Object.keys(ICONS),
15
+ mapping: ICONS,
16
+ };
17
+ //# sourceMappingURL=button-icons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button-icons.js","sourceRoot":"","sources":["../../src/stories/button-icons.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,aAAa,EACb,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,kBAAkB,EAClB,UAAU,GACX,MAAM,gBAAgB,CAAC;AAExB,MAAM,KAAK,GAAG;IACZ,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,YAAY;IAClB,EAAE,EAAE,YAAY;IAChB,KAAK,EAAE,cAAc;IACrB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,KAAK;IACX,KAAK,EAAE,kBAAkB;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IAC3B,OAAO,EAAE,KAAK;CACf,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const buttonVariants: (props?: ({
2
+ variant?: "link" | "default" | "secondary" | "destructive" | "outline" | "ghost" | "ghostDestructive" | "linkDestructive" | null | undefined;
3
+ size?: "default" | "none" | "icon" | "sm" | "lg" | null | undefined;
4
+ justify?: "center" | "start" | "end" | null | undefined;
5
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/styles/button.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc;;;;8EAqC1B,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { cva } from 'class-variance-authority';
2
+ export const buttonVariants = cva("inline-flex shrink-0 cursor-pointer items-center justify-center rounded-md font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", {
3
+ variants: {
4
+ variant: {
5
+ default: 'border border-input bg-primary text-sm text-primary-foreground hover:bg-primary-hover',
6
+ destructive: 'bg-destructive text-sm text-destructive-foreground hover:bg-destructive-hover',
7
+ outline: 'border border-input bg-background text-sm hover:bg-accent hover:text-accent-foreground',
8
+ secondary: 'border border-input bg-secondary text-sm text-secondary-foreground hover:bg-secondary-hover',
9
+ ghost: 'text-sm hover:bg-accent hover:text-accent-foreground',
10
+ ghostDestructive: 'text-sm text-destructive hover:bg-accent',
11
+ link: 'text-link underline-offset-4 hover:underline',
12
+ linkDestructive: 'text-destructive underline-offset-4 hover:underline',
13
+ },
14
+ size: {
15
+ default: 'h-10 gap-2 px-4 py-2 has-[>svg]:px-3',
16
+ none: '',
17
+ sm: 'h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5',
18
+ lg: 'h-10 gap-2 rounded-md px-6 has-[>svg]:px-4',
19
+ icon: 'size-9',
20
+ },
21
+ justify: {
22
+ start: 'justify-start',
23
+ center: 'justify-center',
24
+ end: 'justify-end',
25
+ },
26
+ },
27
+ defaultVariants: {
28
+ variant: 'default',
29
+ size: 'default',
30
+ justify: 'center',
31
+ },
32
+ });
33
+ //# sourceMappingURL=button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.js","sourceRoot":"","sources":["../../src/styles/button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAE/C,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAC/B,8bAA8b,EAC9b;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EACL,uFAAuF;YACzF,WAAW,EACT,+EAA+E;YACjF,OAAO,EACL,wFAAwF;YAC1F,SAAS,EACP,6FAA6F;YAC/F,KAAK,EAAE,sDAAsD;YAC7D,gBAAgB,EAAE,0CAA0C;YAC5D,IAAI,EAAE,8CAA8C;YACpD,eAAe,EAAE,qDAAqD;SACvE;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,sCAAsC;YAC/C,IAAI,EAAE,EAAE;YACR,EAAE,EAAE,+CAA+C;YACnD,EAAE,EAAE,4CAA4C;YAChD,IAAI,EAAE,QAAQ;SACf;QACD,OAAO,EAAE;YACP,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,gBAAgB;YACxB,GAAG,EAAE,aAAa;SACnB;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,QAAQ;KAClB;CACF,CACF,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './button.js';
2
+ export * from './input.js';
3
+ export * from './select.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/styles/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './button.js';
2
+ export * from './input.js';
3
+ export * from './select.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/styles/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const inputVariants: (props?: ({
2
+ height?: "default" | "flexible" | null | undefined;
3
+ background?: "default" | "transparent" | null | undefined;
4
+ rightPadding?: "default" | "none" | null | undefined;
5
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
+ //# sourceMappingURL=input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/styles/input.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa;;;;8EA4BzB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { cva } from 'class-variance-authority';
2
+ import { cn } from '#src/utils/index.js';
3
+ export const inputVariants = cva(cn('flex w-full min-w-0 rounded-md bg-transparent py-1 pl-3 text-base shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30', 'border border-input', 'focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50', 'aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40'), {
4
+ variants: {
5
+ height: {
6
+ default: 'h-9',
7
+ flexible: 'min-h-9',
8
+ },
9
+ background: {
10
+ default: 'bg-background',
11
+ transparent: '',
12
+ },
13
+ rightPadding: {
14
+ default: 'pr-3',
15
+ none: '',
16
+ },
17
+ },
18
+ defaultVariants: {
19
+ height: 'default',
20
+ background: 'default',
21
+ rightPadding: 'default',
22
+ },
23
+ });
24
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/styles/input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAE/C,OAAO,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAEzC,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAC9B,EAAE,CACA,yaAAya,EACza,qBAAqB,EACrB,+EAA+E,EAC/E,wGAAwG,CACzG,EACD;IACE,QAAQ,EAAE;QACR,MAAM,EAAE;YACN,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,SAAS;SACpB;QACD,UAAU,EAAE;YACV,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE,EAAE;SAChB;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,EAAE;SACT;KACF;IACD,eAAe,EAAE;QACf,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,SAAS;KACxB;CACF,CACF,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare const selectTriggerVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
2
+ export declare const selectContentVariants: (props?: ({
3
+ popper?: "none" | "active" | null | undefined;
4
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5
+ export declare const selectItemVariants: (props?: ({
6
+ withFocus?: "none" | "highlight" | null | undefined;
7
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
+ export declare const selectCheckVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
9
+ //# sourceMappingURL=select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../src/styles/select.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB,oFAEjC,CAAC;AAEF,eAAO,MAAM,qBAAqB;;8EAWjC,CAAC;AAKF,eAAO,MAAM,kBAAkB;;8EAU9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,oFAE/B,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { cva } from 'class-variance-authority';
2
+ export const selectTriggerVariants = cva("flex w-full items-center justify-between gap-2 rounded-md border border-input bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground");
3
+ export const selectContentVariants = cva('relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95', {
4
+ variants: {
5
+ popper: {
6
+ none: '',
7
+ active: 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',
8
+ },
9
+ },
10
+ });
11
+ // Replaces data-[disabled] with data-[disabled=true] since Radix sets disabled=false and adds aria-selected selector
12
+ // https://github.com/shadcn-ui/ui/issues/3256
13
+ export const selectItemVariants = cva("relative flex w-full cursor-pointer items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none aria-selected:bg-accent aria-selected:text-accent-foreground data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2", {
14
+ variants: {
15
+ withFocus: {
16
+ none: '',
17
+ highlight: 'focus:bg-accent focus:text-accent-foreground',
18
+ },
19
+ },
20
+ });
21
+ export const selectCheckVariants = cva('absolute right-2 flex size-3.5 items-center justify-center');
22
+ //# sourceMappingURL=select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.js","sourceRoot":"","sources":["../../src/styles/select.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAE/C,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CACtC,+yBAA+yB,CAChzB,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CACtC,+iBAA+iB,EAC/iB;IACE,QAAQ,EAAE;QACR,MAAM,EAAE;YACN,IAAI,EAAE,EAAE;YACR,MAAM,EACJ,iIAAiI;SACpI;KACF;CACF,CACF,CAAC;AAEF,qHAAqH;AACrH,8CAA8C;AAE9C,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CACnC,qcAAqc,EACrc;IACE,QAAQ,EAAE;QACR,SAAS,EAAE;YACT,IAAI,EAAE,EAAE;YACR,SAAS,EAAE,8CAA8C;SAC1D;KACF;CACF,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CACpC,4DAA4D,CAC7D,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { RenderOptions, RenderResult } from '@testing-library/react';
2
+ import type { ReactElement } from 'react';
3
+ export declare const renderWithProviders: (ui: ReactElement, options?: Omit<RenderOptions, "wrapper">) => RenderResult;
4
+ //# sourceMappingURL=render.test-helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.test-helper.d.ts","sourceRoot":"","sources":["../../src/tests/render.test-helper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAkB1C,eAAO,MAAM,mBAAmB,OAC1B,YAAY,YACN,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,KACvC,YAAyE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { render } from '@testing-library/react';
3
+ import { DEFAULT_COMPONENT_STRINGS } from '#src/constants/strings.js';
4
+ import { ComponentStringsProvider } from '#src/contexts/component-strings.js';
5
+ const UiComponentProviders = ({ children, }) => (_jsx(ComponentStringsProvider, { value: DEFAULT_COMPONENT_STRINGS, children: children }));
6
+ export const renderWithProviders = (ui, options) => render(ui, { wrapper: UiComponentProviders, ...options });
7
+ //# sourceMappingURL=render.test-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.test-helper.js","sourceRoot":"","sources":["../../src/tests/render.test-helper.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAE9E,MAAM,oBAAoB,GAAG,CAAC,EAC5B,QAAQ,GAGT,EAAqB,EAAE,CAAC,CACvB,KAAC,wBAAwB,IAAC,KAAK,EAAE,yBAAyB,YACvD,QAAQ,GACgB,CAC5B,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,EAAgB,EAChB,OAAwC,EAC1B,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import '@testing-library/jest-dom/vitest';
2
+ //# sourceMappingURL=setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/tests/setup.ts"],"names":[],"mappings":"AAGA,OAAO,kCAAkC,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { cleanup } from '@testing-library/react';
2
+ import { afterEach, beforeAll } from 'vitest';
3
+ import '@testing-library/jest-dom/vitest';
4
+ // Workaround for lack of scrollIntoView in jsdom but required in cmdk
5
+ // https://github.com/jsdom/jsdom/issues/1695
6
+ Element.prototype.scrollIntoView = () => {
7
+ /* no op */
8
+ };
9
+ // Workaround for lack of ResizeObserver in jsdom but required in cmdk
10
+ // https://github.com/jsdom/jsdom/issues/3368
11
+ beforeAll(() => {
12
+ globalThis.ResizeObserver = class ResizeObserver {
13
+ observe() {
14
+ // do nothing
15
+ }
16
+ unobserve() {
17
+ // do nothing
18
+ }
19
+ disconnect() {
20
+ // do nothing
21
+ }
22
+ };
23
+ });
24
+ afterEach(() => {
25
+ cleanup();
26
+ });
27
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/tests/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,kCAAkC,CAAC;AAE1C,sEAAsE;AACtE,6CAA6C;AAC7C,OAAO,CAAC,SAAS,CAAC,cAAc,GAAG,GAAG,EAAE;IACtC,WAAW;AACb,CAAC,CAAC;AAEF,sEAAsE;AACtE,6CAA6C;AAC7C,SAAS,CAAC,GAAG,EAAE;IACb,UAAU,CAAC,cAAc,GAAG,MAAM,cAAc;QAC9C,OAAO;YACL,aAAa;QACf,CAAC;QACD,SAAS;YACP,aAAa;QACf,CAAC;QACD,UAAU;YACR,aAAa;QACf,CAAC;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,GAAG,EAAE;IACb,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,40 @@
1
+ export interface FormFieldProps {
2
+ label?: React.ReactNode;
3
+ error?: React.ReactNode;
4
+ description?: React.ReactNode;
5
+ }
6
+ type SelectOptionLabelRenderer<OptionType> = (value: OptionType, options: {
7
+ selected: boolean;
8
+ }) => React.ReactNode;
9
+ type SelectOptionStringExtractor<OptionType> = (value: OptionType) => string;
10
+ type SelectOptionStringOrNullExtractor<OptionType> = (value: OptionType) => string | null;
11
+ export interface MultiSelectOptionProps<OptionType> {
12
+ options: OptionType[];
13
+ onChange?: (value: string[]) => void;
14
+ value?: string[];
15
+ renderItemLabel?: SelectOptionLabelRenderer<OptionType>;
16
+ getOptionLabel?: SelectOptionStringExtractor<OptionType>;
17
+ getOptionValue?: SelectOptionStringExtractor<OptionType>;
18
+ placeholder?: string;
19
+ }
20
+ export interface SelectOptionProps<OptionType> {
21
+ options: OptionType[];
22
+ onChange?: (value: string | null) => void;
23
+ value?: string | null;
24
+ renderItemLabel?: SelectOptionLabelRenderer<OptionType>;
25
+ getOptionLabel?: SelectOptionStringExtractor<OptionType>;
26
+ getOptionValue?: SelectOptionStringOrNullExtractor<OptionType>;
27
+ placeholder?: string;
28
+ }
29
+ export type AddOptionRequiredFields<OptionType> = (OptionType extends {
30
+ label: string;
31
+ } ? unknown : {
32
+ renderItemLabel?: SelectOptionLabelRenderer<OptionType>;
33
+ getOptionLabel: SelectOptionStringExtractor<OptionType>;
34
+ }) & (OptionType extends {
35
+ value: string;
36
+ } ? unknown : {
37
+ getOptionValue: SelectOptionStringOrNullExtractor<OptionType>;
38
+ });
39
+ export {};
40
+ //# sourceMappingURL=form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../src/types/form.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC/B;AAED,KAAK,yBAAyB,CAAC,UAAU,IAAI,CAC3C,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,KAC3B,KAAK,CAAC,SAAS,CAAC;AAErB,KAAK,2BAA2B,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE,UAAU,KAAK,MAAM,CAAC;AAE7E,KAAK,iCAAiC,CAAC,UAAU,IAAI,CACnD,KAAK,EAAE,UAAU,KACd,MAAM,GAAG,IAAI,CAAC;AAEnB,MAAM,WAAW,sBAAsB,CAAC,UAAU;IAChD,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,eAAe,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAC;IACxD,cAAc,CAAC,EAAE,2BAA2B,CAAC,UAAU,CAAC,CAAC;IACzD,cAAc,CAAC,EAAE,2BAA2B,CAAC,UAAU,CAAC,CAAC;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB,CAAC,UAAU;IAC3C,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAC;IACxD,cAAc,CAAC,EAAE,2BAA2B,CAAC,UAAU,CAAC,CAAC;IACzD,cAAc,CAAC,EAAE,iCAAiC,CAAC,UAAU,CAAC,CAAC;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,uBAAuB,CAAC,UAAU,IAAI,CAAC,UAAU,SAAS;IACpE,KAAK,EAAE,MAAM,CAAC;CACf,GACG,OAAO,GACP;IACE,eAAe,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAC;IACxD,cAAc,EAAE,2BAA2B,CAAC,UAAU,CAAC,CAAC;CACzD,CAAC,GACJ,CAAC,UAAU,SAAS;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC,OAAO,GACP;IACE,cAAc,EAAE,iCAAiC,CAAC,UAAU,CAAC,CAAC;CAC/D,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.js","sourceRoot":"","sources":["../../src/types/form.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { ElementType } from 'react';
2
+ export type IconElement = ElementType<React.SVGAttributes<SVGElement>>;
3
+ //# sourceMappingURL=react.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/types/react.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEzC,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=react.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../../src/types/react.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { type ClassValue } from 'clsx';
2
+ export declare function cn(...inputs: ClassValue[]): string;
3
+ //# sourceMappingURL=cn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cn.d.ts","sourceRoot":"","sources":["../../src/utils/cn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,MAAM,CAAC;AAE7C,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAElD"}
@@ -0,0 +1,5 @@
1
+ import { clsx } from 'clsx';
2
+ export function cn(...inputs) {
3
+ return clsx(inputs);
4
+ }
5
+ //# sourceMappingURL=cn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cn.js","sourceRoot":"","sources":["../../src/utils/cn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,IAAI,EAAE,MAAM,MAAM,CAAC;AAE7C,MAAM,UAAU,EAAE,CAAC,GAAG,MAAoB;IACxC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type React from 'react';
2
+ /**
3
+ * Typed wrapper around forwardRef for generic components
4
+ *
5
+ * Taken from https://fettblog.eu/typescript-react-generic-forward-refs/
6
+ */
7
+ export declare function genericForwardRef<T, P = {}>(render: (props: P, ref: React.Ref<T>) => React.ReactElement | null, displayName?: string): (props: P & React.RefAttributes<T>) => React.ReactElement | null;
8
+ //# sourceMappingURL=generic-forward-ref.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generic-forward-ref.d.ts","sourceRoot":"","sources":["../../src/utils/generic-forward-ref.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;;GAIG;AAGH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EACzC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,YAAY,GAAG,IAAI,EAClE,WAAW,CAAC,EAAE,MAAM,GACnB,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,YAAY,GAAG,IAAI,CAalE"}
@@ -0,0 +1,15 @@
1
+ import { forwardRef } from 'react';
2
+ /**
3
+ * Typed wrapper around forwardRef for generic components
4
+ *
5
+ * Taken from https://fettblog.eu/typescript-react-generic-forward-refs/
6
+ */
7
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
8
+ export function genericForwardRef(render, displayName) {
9
+ const newElem = forwardRef(render);
10
+ if (displayName) {
11
+ newElem.displayName = displayName;
12
+ }
13
+ return newElem;
14
+ }
15
+ //# sourceMappingURL=generic-forward-ref.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generic-forward-ref.js","sourceRoot":"","sources":["../../src/utils/generic-forward-ref.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC;;;;GAIG;AAEH,mEAAmE;AACnE,MAAM,UAAU,iBAAiB,CAC/B,MAAkE,EAClE,WAAoB;IAEpB,MAAM,OAAO,GAAG,UAAU,CACxB,MAG8B,CACqC,CAAC;IAEtE,IAAI,WAAW,EAAE,CAAC;QACf,OAAoC,CAAC,WAAW,GAAG,WAAW,CAAC;IAClE,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './cn.js';
2
+ export * from './generic-forward-ref.js';
3
+ export * from './refs.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './cn.js';
2
+ export * from './generic-forward-ref.js';
3
+ export * from './refs.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { Ref } from 'react';
2
+ /**
3
+ * Merges multiple React refs into a single ref callback. This is useful when you need to pass multiple refs to the same component.
4
+ *
5
+ * @param refs - An array of refs to merge. Each ref can be either a function ref or a ref object.
6
+ * @returns A ref callback that can be assigned to the ref attribute of a React element, or undefined if all refs are undefined.
7
+ * @template T - The type of the element that the refs will be associated with.
8
+ */
9
+ export declare function mergeRefs<T>(...refs: (Ref<T> | undefined)[]): Ref<T> | undefined;
10
+ //# sourceMappingURL=refs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refs.d.ts","sourceRoot":"","sources":["../../src/utils/refs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAEjC;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,EACzB,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,GAC9B,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAepB"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Merges multiple React refs into a single ref callback. This is useful when you need to pass multiple refs to the same component.
3
+ *
4
+ * @param refs - An array of refs to merge. Each ref can be either a function ref or a ref object.
5
+ * @returns A ref callback that can be assigned to the ref attribute of a React element, or undefined if all refs are undefined.
6
+ * @template T - The type of the element that the refs will be associated with.
7
+ */
8
+ export function mergeRefs(...refs) {
9
+ // Return undefined if all refs are undefined
10
+ if (refs.every((ref) => ref === undefined)) {
11
+ return undefined;
12
+ }
13
+ return (instance) => {
14
+ for (const ref of refs) {
15
+ if (typeof ref === 'function') {
16
+ ref(instance);
17
+ }
18
+ else if (ref) {
19
+ ref.current = instance;
20
+ }
21
+ }
22
+ };
23
+ }
24
+ //# sourceMappingURL=refs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refs.js","sourceRoot":"","sources":["../../src/utils/refs.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CACvB,GAAG,IAA4B;IAE/B,6CAA6C;IAC7C,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,EAAE,CAAC;QAC3C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,QAAkB,EAAE,EAAE;QAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;gBAC9B,GAAG,CAAC,QAAQ,CAAC,CAAC;YAChB,CAAC;iBAAM,IAAI,GAAG,EAAE,CAAC;gBACf,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
package/package.json ADDED
@@ -0,0 +1,127 @@
1
+ {
2
+ "name": "@baseplate-dev/ui-components",
3
+ "version": "0.1.1",
4
+ "description": "Shared UI component library",
5
+ "repository": "https://github.com/halfdomelabs/baseplate",
6
+ "license": "SEE LICENSE IN LICENSE",
7
+ "author": "Half Dome Labs LLC",
8
+ "sideEffects": false,
9
+ "type": "module",
10
+ "imports": {
11
+ "#src/*": "./dist/*"
12
+ },
13
+ "exports": {
14
+ ".": "./dist/index.js",
15
+ "./base-styles.css": "./src/base-styles.css",
16
+ "./theme.css": "./src/theme.css",
17
+ "./utilities.css": "./src/utilities.css"
18
+ },
19
+ "main": "./dist/index.js",
20
+ "files": [
21
+ "LICENSE",
22
+ "dist/**/*",
23
+ "CHANGELOG",
24
+ "tailwind.config.ts",
25
+ "./src/theme.css",
26
+ "!dist/**/*.d.ts.map"
27
+ ],
28
+ "browserslist": {
29
+ "production": [
30
+ ">0.2%",
31
+ "not dead",
32
+ "not op_mini all"
33
+ ],
34
+ "development": [
35
+ "last 1 chrome version",
36
+ "last 1 firefox version",
37
+ "last 1 safari version"
38
+ ]
39
+ },
40
+ "dependencies": {
41
+ "@fontsource-variable/geist": "5.2.5",
42
+ "@fontsource-variable/geist-mono": "5.2.5",
43
+ "@hookform/resolvers": "5.0.1",
44
+ "@radix-ui/react-checkbox": "1.3.1",
45
+ "@radix-ui/react-dialog": "1.1.13",
46
+ "@radix-ui/react-dropdown-menu": "2.1.14",
47
+ "@radix-ui/react-label": "2.1.6",
48
+ "@radix-ui/react-navigation-menu": "1.2.12",
49
+ "@radix-ui/react-popover": "1.1.13",
50
+ "@radix-ui/react-scroll-area": "1.2.8",
51
+ "@radix-ui/react-select": "2.2.4",
52
+ "@radix-ui/react-separator": "1.1.6",
53
+ "@radix-ui/react-slot": "1.2.2",
54
+ "@radix-ui/react-switch": "1.2.4",
55
+ "@radix-ui/react-tabs": "1.1.11",
56
+ "@radix-ui/react-tooltip": "1.2.6",
57
+ "@types/react": "19.1.3",
58
+ "@types/react-dom": "19.1.3",
59
+ "class-variance-authority": "0.7.1",
60
+ "clsx": "2.1.1",
61
+ "cmdk": "1.1.1",
62
+ "react": "19.1.0",
63
+ "react-colorful": "5.6.1",
64
+ "react-dom": "19.1.0",
65
+ "react-hook-form": "7.56.3",
66
+ "react-icons": "5.5.0",
67
+ "sonner": "2.0.3",
68
+ "zod": "3.24.1",
69
+ "zustand": "5.0.3",
70
+ "@baseplate-dev/utils": "0.1.1"
71
+ },
72
+ "devDependencies": {
73
+ "@storybook/addon-docs": "^8.6.4",
74
+ "@storybook/addon-essentials": "^8.6.4",
75
+ "@storybook/addon-interactions": "^8.6.4",
76
+ "@storybook/addon-links": "^8.6.4",
77
+ "@storybook/blocks": "^8.6.4",
78
+ "@storybook/preview-api": "^8.6.4",
79
+ "@storybook/react": "^8.6.4",
80
+ "@storybook/react-vite": "^8.6.4",
81
+ "@storybook/test": "^8.6.4",
82
+ "@storybook/theming": "^8.6.4",
83
+ "@tailwindcss/vite": "4.1.6",
84
+ "@testing-library/dom": "10.4.0",
85
+ "@testing-library/jest-dom": "6.6.3",
86
+ "@testing-library/react": "16.2.0",
87
+ "@testing-library/user-event": "14.6.1",
88
+ "@types/node": "^22.0.0",
89
+ "@vitejs/plugin-react": "4.4.1",
90
+ "eslint": "9.26.0",
91
+ "jsdom": "26.0.0",
92
+ "prettier": "3.5.3",
93
+ "storybook": "^8.6.4",
94
+ "storybook-dark-mode": "^4.0.2",
95
+ "tailwindcss": "4.1.6",
96
+ "tw-animate-css": "1.2.9",
97
+ "typescript": "5.7.3",
98
+ "vite": "6.3.5",
99
+ "vite-plugin-svgr": "4.3.0",
100
+ "vitest": "3.0.7",
101
+ "@baseplate-dev/tools": "0.1.1"
102
+ },
103
+ "engines": {
104
+ "node": "^22.0.0"
105
+ },
106
+ "volta": {
107
+ "extends": "../../package.json"
108
+ },
109
+ "publishConfig": {
110
+ "access": "public",
111
+ "provenance": true
112
+ },
113
+ "scripts": {
114
+ "build": "pnpm build:lib",
115
+ "build:lib": "tsc -p tsconfig.build.json",
116
+ "build:storybook": "storybook build",
117
+ "clean": "rm -rf ./dist",
118
+ "dev:storybook": "storybook dev -p 6006",
119
+ "lint": "eslint .",
120
+ "prettier:check": "prettier --check .",
121
+ "prettier:write": "prettier -w .",
122
+ "test": "vitest",
123
+ "test:coverage": "vitest run --coverage",
124
+ "typecheck": "tsc --noEmit",
125
+ "watch": "tsc -p tsconfig.build.json --preserveWatchOutput -w"
126
+ }
127
+ }