@koobiq/react-components 0.0.1-beta.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 (291) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +43 -0
  3. package/dist/components/Alert/Alert.d.ts +4 -0
  4. package/dist/components/Alert/Alert.js +78 -0
  5. package/dist/components/Alert/Alert.module.css.js +41 -0
  6. package/dist/components/Alert/components/AlertIcon/AlertIcon.d.ts +2 -0
  7. package/dist/components/Alert/components/AlertIcon/AlertIcon.js +19 -0
  8. package/dist/components/Alert/components/AlertIcon/AlertIcon.module.css.js +23 -0
  9. package/dist/components/Alert/components/AlertIcon/index.d.ts +1 -0
  10. package/dist/components/Alert/components/AlertIcon/types.d.ts +2 -0
  11. package/dist/components/Alert/components/AlertIcon/utils.d.ts +14 -0
  12. package/dist/components/Alert/components/AlertIcon/utils.js +23 -0
  13. package/dist/components/Alert/components/index.d.ts +1 -0
  14. package/dist/components/Alert/index.d.ts +2 -0
  15. package/dist/components/Alert/intl.json.js +11 -0
  16. package/dist/components/Alert/types.d.ts +43 -0
  17. package/dist/components/Alert/types.js +4 -0
  18. package/dist/components/Backdrop/Backdrop.d.ts +4 -0
  19. package/dist/components/Backdrop/Backdrop.js +52 -0
  20. package/dist/components/Backdrop/Backdrop.module.css.js +8 -0
  21. package/dist/components/Backdrop/index.d.ts +2 -0
  22. package/dist/components/Backdrop/types.d.ts +16 -0
  23. package/dist/components/Badge/Badge.d.ts +4 -0
  24. package/dist/components/Badge/Badge.js +32 -0
  25. package/dist/components/Badge/Badge.module.css.js +42 -0
  26. package/dist/components/Badge/index.d.ts +2 -0
  27. package/dist/components/Badge/types.d.ts +20 -0
  28. package/dist/components/Badge/types.js +22 -0
  29. package/dist/components/Button/Button.d.ts +4 -0
  30. package/dist/components/Button/Button.js +66 -0
  31. package/dist/components/Button/Button.module.css.js +44 -0
  32. package/dist/components/Button/index.d.ts +2 -0
  33. package/dist/components/Button/types.d.ts +47 -0
  34. package/dist/components/Button/types.js +11 -0
  35. package/dist/components/Checkbox/Checkbox.d.ts +19 -0
  36. package/dist/components/Checkbox/Checkbox.js +64 -0
  37. package/dist/components/Checkbox/Checkbox.module.css.js +41 -0
  38. package/dist/components/Checkbox/index.d.ts +2 -0
  39. package/dist/components/Checkbox/types.d.ts +27 -0
  40. package/dist/components/Checkbox/types.js +6 -0
  41. package/dist/components/Container/Container.d.ts +4 -0
  42. package/dist/components/Container/Container.js +45 -0
  43. package/dist/components/Container/Container.module.css.js +8 -0
  44. package/dist/components/Container/index.d.ts +2 -0
  45. package/dist/components/Container/types.d.ts +32 -0
  46. package/dist/components/Container/types.js +21 -0
  47. package/dist/components/Container/utils.d.ts +4 -0
  48. package/dist/components/Container/utils.js +19 -0
  49. package/dist/components/Dialog/Dialog.d.ts +2 -0
  50. package/dist/components/Dialog/Dialog.js +67 -0
  51. package/dist/components/Dialog/Dialog.module.css.js +23 -0
  52. package/dist/components/Dialog/DialogContext.d.ts +9 -0
  53. package/dist/components/Dialog/DialogContext.js +12 -0
  54. package/dist/components/Dialog/components/DialogCloseButton.d.ts +9 -0
  55. package/dist/components/Dialog/components/DialogCloseButton.js +30 -0
  56. package/dist/components/Dialog/components/DialogContent.d.ts +12 -0
  57. package/dist/components/Dialog/components/DialogContent.js +30 -0
  58. package/dist/components/Dialog/components/DialogFooter.d.ts +12 -0
  59. package/dist/components/Dialog/components/DialogFooter.js +12 -0
  60. package/dist/components/Dialog/components/DialoglHeader.d.ts +12 -0
  61. package/dist/components/Dialog/components/DialoglHeader.js +21 -0
  62. package/dist/components/Dialog/components/index.d.ts +4 -0
  63. package/dist/components/Dialog/index.d.ts +4 -0
  64. package/dist/components/Dialog/intl.json.js +11 -0
  65. package/dist/components/Dialog/types.d.ts +26 -0
  66. package/dist/components/FieldComponents/FieldAddon/FieldAddon.d.ts +10 -0
  67. package/dist/components/FieldComponents/FieldAddon/FieldAddon.js +19 -0
  68. package/dist/components/FieldComponents/FieldAddon/FieldAddon.module.css.js +17 -0
  69. package/dist/components/FieldComponents/FieldAddon/index.d.ts +1 -0
  70. package/dist/components/FieldComponents/FieldCaption/FieldCaption.d.ts +8 -0
  71. package/dist/components/FieldComponents/FieldCaption/FieldCaption.js +21 -0
  72. package/dist/components/FieldComponents/FieldCaption/FieldCaption.module.css.js +8 -0
  73. package/dist/components/FieldComponents/FieldCaption/index.d.ts +1 -0
  74. package/dist/components/FieldComponents/FieldControl/FieldControl.d.ts +10 -0
  75. package/dist/components/FieldComponents/FieldControl/FieldControl.js +20 -0
  76. package/dist/components/FieldComponents/FieldControl/FieldControl.module.css.js +11 -0
  77. package/dist/components/FieldComponents/FieldControl/index.d.ts +1 -0
  78. package/dist/components/FieldComponents/FieldError/FieldError.d.ts +6 -0
  79. package/dist/components/FieldComponents/FieldError/FieldError.js +21 -0
  80. package/dist/components/FieldComponents/FieldError/FieldError.module.css.js +8 -0
  81. package/dist/components/FieldComponents/FieldError/index.d.ts +1 -0
  82. package/dist/components/FieldComponents/FieldInput/FieldInput.d.ts +12 -0
  83. package/dist/components/FieldComponents/FieldInput/FieldInput.js +34 -0
  84. package/dist/components/FieldComponents/FieldInput/FieldInput.module.css.js +20 -0
  85. package/dist/components/FieldComponents/FieldInput/index.d.ts +1 -0
  86. package/dist/components/FieldComponents/FieldInputGroup/FieldInputGroup.d.ts +11 -0
  87. package/dist/components/FieldComponents/FieldInputGroup/FieldInputGroup.js +41 -0
  88. package/dist/components/FieldComponents/FieldInputGroup/FieldInputGroup.module.css.js +14 -0
  89. package/dist/components/FieldComponents/FieldInputGroup/FieldInputGroupContext.d.ts +8 -0
  90. package/dist/components/FieldComponents/FieldInputGroup/FieldInputGroupContext.js +7 -0
  91. package/dist/components/FieldComponents/FieldInputGroup/index.d.ts +2 -0
  92. package/dist/components/FieldComponents/FieldLabel/FieldLabel.d.ts +9 -0
  93. package/dist/components/FieldComponents/FieldLabel/FieldLabel.js +24 -0
  94. package/dist/components/FieldComponents/FieldLabel/FieldLabel.module.css.js +14 -0
  95. package/dist/components/FieldComponents/FieldLabel/index.d.ts +1 -0
  96. package/dist/components/FieldComponents/FieldNumberControl/FieldNumberControl.d.ts +10 -0
  97. package/dist/components/FieldComponents/FieldNumberControl/FieldNumberControl.js +18 -0
  98. package/dist/components/FieldComponents/FieldNumberControl/FieldNumberControl.module.css.js +11 -0
  99. package/dist/components/FieldComponents/FieldNumberControl/index.d.ts +1 -0
  100. package/dist/components/FieldComponents/index.d.ts +8 -0
  101. package/dist/components/FormControlLabel/FormControlLabel.d.ts +2 -0
  102. package/dist/components/FormControlLabel/index.d.ts +2 -0
  103. package/dist/components/FormControlLabel/types.d.ts +32 -0
  104. package/dist/components/Grid/Grid.d.ts +4 -0
  105. package/dist/components/Grid/Grid.js +52 -0
  106. package/dist/components/Grid/Grid.module.css.js +8 -0
  107. package/dist/components/Grid/components/GridItem/GridItem.d.ts +4 -0
  108. package/dist/components/Grid/components/GridItem/GridItem.js +52 -0
  109. package/dist/components/Grid/components/GridItem/GridItem.module.css.js +8 -0
  110. package/dist/components/Grid/components/GridItem/index.d.ts +2 -0
  111. package/dist/components/Grid/components/GridItem/types.d.ts +22 -0
  112. package/dist/components/Grid/components/index.d.ts +1 -0
  113. package/dist/components/Grid/index.d.ts +3 -0
  114. package/dist/components/Grid/types.d.ts +30 -0
  115. package/dist/components/Grid/types.js +19 -0
  116. package/dist/components/Grid/utils.d.ts +2 -0
  117. package/dist/components/Grid/utils.js +8 -0
  118. package/dist/components/IconButton/IconButton.d.ts +4 -0
  119. package/dist/components/IconButton/IconButton.js +51 -0
  120. package/dist/components/IconButton/IconButton.module.css.js +43 -0
  121. package/dist/components/IconButton/index.d.ts +2 -0
  122. package/dist/components/IconButton/types.d.ts +36 -0
  123. package/dist/components/IconButton/types.js +13 -0
  124. package/dist/components/Input/Input.d.ts +22 -0
  125. package/dist/components/Input/Input.js +70 -0
  126. package/dist/components/Input/components/FieldAddon/FieldAddon.d.ts +10 -0
  127. package/dist/components/Input/components/FieldAddon/index.d.ts +1 -0
  128. package/dist/components/Input/components/FieldCaption/FieldCaption.d.ts +6 -0
  129. package/dist/components/Input/components/FieldCaption/index.d.ts +1 -0
  130. package/dist/components/Input/components/FieldControl/FieldControl.d.ts +9 -0
  131. package/dist/components/Input/components/FieldControl/index.d.ts +1 -0
  132. package/dist/components/Input/components/FieldError/FieldError.d.ts +7 -0
  133. package/dist/components/Input/components/FieldError/index.d.ts +1 -0
  134. package/dist/components/Input/components/FieldInput/FieldInput.d.ts +9 -0
  135. package/dist/components/Input/components/FieldInput/index.d.ts +1 -0
  136. package/dist/components/Input/components/FieldInputGroup/FieldInputGroup.d.ts +7 -0
  137. package/dist/components/Input/components/FieldInputGroup/index.d.ts +1 -0
  138. package/dist/components/Input/components/FieldLabel/FieldLabel.d.ts +9 -0
  139. package/dist/components/Input/components/FieldLabel/index.d.ts +1 -0
  140. package/dist/components/Input/components/index.d.ts +7 -0
  141. package/dist/components/Input/index.d.ts +2 -0
  142. package/dist/components/Input/types.d.ts +62 -0
  143. package/dist/components/Input/types.js +4 -0
  144. package/dist/components/InputNumber/InputNumber.d.ts +22 -0
  145. package/dist/components/InputNumber/InputNumber.js +72 -0
  146. package/dist/components/InputNumber/components/InputNumberCounterControls.d.ts +1 -0
  147. package/dist/components/InputNumber/components/InputNumberCounterControls.js +37 -0
  148. package/dist/components/InputNumber/components/InputNumberCounterControls.module.css.js +14 -0
  149. package/dist/components/InputNumber/components/index.d.ts +1 -0
  150. package/dist/components/InputNumber/index.d.ts +2 -0
  151. package/dist/components/InputNumber/types.d.ts +62 -0
  152. package/dist/components/InputNumber/types.js +4 -0
  153. package/dist/components/Link/Link.d.ts +4 -0
  154. package/dist/components/Link/Link.js +54 -0
  155. package/dist/components/Link/Link.module.css.js +32 -0
  156. package/dist/components/Link/index.d.ts +2 -0
  157. package/dist/components/Link/types.d.ts +25 -0
  158. package/dist/components/Modal/Modal.d.ts +2 -0
  159. package/dist/components/Modal/Modal.js +121 -0
  160. package/dist/components/Modal/Modal.module.css.js +20 -0
  161. package/dist/components/Modal/index.d.ts +4 -0
  162. package/dist/components/Modal/types.d.ts +68 -0
  163. package/dist/components/Modal/types.js +4 -0
  164. package/dist/components/Popover/Popover.d.ts +2 -0
  165. package/dist/components/Popover/Popover.js +147 -0
  166. package/dist/components/Popover/Popover.module.css.js +17 -0
  167. package/dist/components/Popover/index.d.ts +4 -0
  168. package/dist/components/Popover/types.d.ts +97 -0
  169. package/dist/components/Popover/types.js +19 -0
  170. package/dist/components/Popover/utils.d.ts +2 -0
  171. package/dist/components/Popover/utils.js +11 -0
  172. package/dist/components/ProgressBar/ProgressBar.d.ts +2 -0
  173. package/dist/components/ProgressBar/ProgressBar.js +57 -0
  174. package/dist/components/ProgressBar/ProgressBar.module.css.js +15 -0
  175. package/dist/components/ProgressBar/index.d.ts +2 -0
  176. package/dist/components/ProgressBar/types.d.ts +34 -0
  177. package/dist/components/ProgressBar/types.js +4 -0
  178. package/dist/components/ProgressSpinner/ProgressSpinner.d.ts +2 -0
  179. package/dist/components/ProgressSpinner/ProgressSpinner.js +68 -0
  180. package/dist/components/ProgressSpinner/ProgressSpinner.module.css.js +18 -0
  181. package/dist/components/ProgressSpinner/index.d.ts +2 -0
  182. package/dist/components/ProgressSpinner/types.d.ts +41 -0
  183. package/dist/components/ProgressSpinner/types.js +9 -0
  184. package/dist/components/ProgressSpinner/utils.d.ts +2 -0
  185. package/dist/components/ProgressSpinner/utils.js +18 -0
  186. package/dist/components/Provider/BreakpointsContext.d.ts +5 -0
  187. package/dist/components/Provider/BreakpointsContext.js +17 -0
  188. package/dist/components/Provider/BreakpointsProvider.d.ts +10 -0
  189. package/dist/components/Provider/BreakpointsProvider.js +15 -0
  190. package/dist/components/Provider/Provider.d.ts +6 -0
  191. package/dist/components/Provider/Provider.js +29 -0
  192. package/dist/components/Provider/ProviderContext.d.ts +3 -0
  193. package/dist/components/Provider/ProviderContext.js +12 -0
  194. package/dist/components/Provider/index.d.ts +5 -0
  195. package/dist/components/Provider/types.d.ts +16 -0
  196. package/dist/components/Provider/utils/index.d.ts +1 -0
  197. package/dist/components/Provider/utils/useBreakpoints.d.ts +2 -0
  198. package/dist/components/Provider/utils/useBreakpoints.js +15 -0
  199. package/dist/components/Provider/utils/useMatchedBreakpoints.d.ts +2 -0
  200. package/dist/components/RadioGroup/RadioContext.d.ts +6 -0
  201. package/dist/components/RadioGroup/RadioContext.js +9 -0
  202. package/dist/components/RadioGroup/RadioGroup.d.ts +2 -0
  203. package/dist/components/RadioGroup/RadioGroup.js +35 -0
  204. package/dist/components/RadioGroup/components/Radio/Radio.d.ts +12 -0
  205. package/dist/components/RadioGroup/components/Radio/Radio.js +44 -0
  206. package/dist/components/RadioGroup/components/Radio/Radio.module.css.js +38 -0
  207. package/dist/components/RadioGroup/components/Radio/index.d.ts +2 -0
  208. package/dist/components/RadioGroup/components/Radio/types.d.ts +27 -0
  209. package/dist/components/RadioGroup/components/Radio/types.js +6 -0
  210. package/dist/components/RadioGroup/components/RadioGroupDescription/RadioGroupDescription.d.ts +7 -0
  211. package/dist/components/RadioGroup/components/RadioGroupDescription/RadioGroupDescription.js +21 -0
  212. package/dist/components/RadioGroup/components/RadioGroupDescription/index.d.ts +1 -0
  213. package/dist/components/RadioGroup/components/RadioGroupLabel/RadioGroupLabel.d.ts +6 -0
  214. package/dist/components/RadioGroup/components/RadioGroupLabel/RadioGroupLabel.js +14 -0
  215. package/dist/components/RadioGroup/components/RadioGroupLabel/index.d.ts +1 -0
  216. package/dist/components/RadioGroup/components/index.d.ts +3 -0
  217. package/dist/components/RadioGroup/index.d.ts +4 -0
  218. package/dist/components/RadioGroup/types.d.ts +37 -0
  219. package/dist/components/RadioGroup/types.js +6 -0
  220. package/dist/components/SidePanel/SidePanel.d.ts +2 -0
  221. package/dist/components/SidePanel/SidePanel.js +125 -0
  222. package/dist/components/SidePanel/SidePanel.module.css.js +26 -0
  223. package/dist/components/SidePanel/index.d.ts +4 -0
  224. package/dist/components/SidePanel/types.d.ts +75 -0
  225. package/dist/components/SidePanel/types.js +6 -0
  226. package/dist/components/SkeletonBlock/SkeletonBlock.d.ts +2 -0
  227. package/dist/components/SkeletonBlock/SkeletonBlock.js +37 -0
  228. package/dist/components/SkeletonBlock/SkeletonBlock.module.css.js +12 -0
  229. package/dist/components/SkeletonBlock/index.d.ts +2 -0
  230. package/dist/components/SkeletonBlock/types.d.ts +18 -0
  231. package/dist/components/SkeletonBlock/utils.d.ts +2 -0
  232. package/dist/components/SkeletonBlock/utils.js +8 -0
  233. package/dist/components/SkeletonTypography/SkeletonTypography.d.ts +2 -0
  234. package/dist/components/SkeletonTypography/SkeletonTypography.js +44 -0
  235. package/dist/components/SkeletonTypography/SkeletonTypography.module.css.js +14 -0
  236. package/dist/components/SkeletonTypography/index.d.ts +2 -0
  237. package/dist/components/SkeletonTypography/types.d.ts +25 -0
  238. package/dist/components/SkeletonTypography/utils.d.ts +2 -0
  239. package/dist/components/SkeletonTypography/utils.js +18 -0
  240. package/dist/components/Textarea/Textarea.d.ts +21 -0
  241. package/dist/components/Textarea/Textarea.js +51 -0
  242. package/dist/components/Textarea/Textarea.module.css.js +7 -0
  243. package/dist/components/Textarea/components/TextareaContextConsumer/TextareaContextConsumer.d.ts +6 -0
  244. package/dist/components/Textarea/components/TextareaContextConsumer/TextareaContextConsumer.js +58 -0
  245. package/dist/components/Textarea/components/TextareaContextConsumer/index.d.ts +1 -0
  246. package/dist/components/Textarea/components/index.d.ts +1 -0
  247. package/dist/components/Textarea/index.d.ts +2 -0
  248. package/dist/components/Textarea/types.d.ts +67 -0
  249. package/dist/components/Textarea/types.js +6 -0
  250. package/dist/components/Textarea/utils/index.d.ts +1 -0
  251. package/dist/components/Textarea/utils/useTextareaAutosize.d.ts +2 -0
  252. package/dist/components/Textarea/utils/useTextareaAutosize.js +15 -0
  253. package/dist/components/Toggle/Toggle.d.ts +16 -0
  254. package/dist/components/Toggle/Toggle.js +42 -0
  255. package/dist/components/Toggle/Toggle.module.css.js +38 -0
  256. package/dist/components/Toggle/index.d.ts +2 -0
  257. package/dist/components/Toggle/types.d.ts +25 -0
  258. package/dist/components/Toggle/types.js +6 -0
  259. package/dist/components/Tooltip/Tooltip.d.ts +20 -0
  260. package/dist/components/Tooltip/Tooltip.js +119 -0
  261. package/dist/components/Tooltip/Tooltip.module.css.js +30 -0
  262. package/dist/components/Tooltip/index.d.ts +2 -0
  263. package/dist/components/Tooltip/types.d.ts +81 -0
  264. package/dist/components/Tooltip/types.js +25 -0
  265. package/dist/components/Typography/Typography.d.ts +4 -0
  266. package/dist/components/Typography/Typography.js +46 -0
  267. package/dist/components/Typography/Typography.module.css.js +23 -0
  268. package/dist/components/Typography/index.d.ts +2 -0
  269. package/dist/components/Typography/types.d.ts +31 -0
  270. package/dist/components/Typography/types.js +84 -0
  271. package/dist/components/index.d.ts +24 -0
  272. package/dist/components/layout/flex/flex.d.ts +25 -0
  273. package/dist/components/layout/flex/flex.js +74 -0
  274. package/dist/components/layout/flex/flex.module.css.js +92 -0
  275. package/dist/components/layout/flex/index.d.ts +1 -0
  276. package/dist/components/layout/index.d.ts +2 -0
  277. package/dist/components/layout/spacing/index.d.ts +1 -0
  278. package/dist/components/layout/spacing/spacing.d.ts +33 -0
  279. package/dist/components/layout/spacing/spacing.js +44 -0
  280. package/dist/components/layout/spacing/spacing.module.css.js +365 -0
  281. package/dist/index.d.ts +2 -0
  282. package/dist/index.js +152 -0
  283. package/dist/style.css +3329 -0
  284. package/dist/styles/utility.d.ts +71 -0
  285. package/dist/styles/utility.js +77 -0
  286. package/dist/styles/utility.module.css.js +76 -0
  287. package/dist/utils/getResponsiveValue/getResponsiveValue.d.ts +3 -0
  288. package/dist/utils/getResponsiveValue/getResponsiveValue.js +18 -0
  289. package/dist/utils/getResponsiveValue/index.d.ts +1 -0
  290. package/dist/utils/index.d.ts +1 -0
  291. package/package.json +42 -0
@@ -0,0 +1,147 @@
1
+ "use client";
2
+ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
3
+ import { forwardRef, useRef, cloneElement, isValidElement } from "react";
4
+ import { useDOMRef, useBoolean, mergeProps, clsx } from "@koobiq/react-core";
5
+ import { useOverlayTriggerState, useOverlayTrigger, usePopover, Overlay } from "@koobiq/react-primitives";
6
+ import { Transition } from "react-transition-group";
7
+ import s from "./Popover.module.css.js";
8
+ import { normalizeInlineSize } from "./utils.js";
9
+ import { Dialog } from "../Dialog/Dialog.js";
10
+ const Popover = forwardRef(
11
+ (props, ref) => {
12
+ const {
13
+ placement: placementProp = "top",
14
+ arrowBoundaryOffset = 20,
15
+ hideArrow = false,
16
+ size = "medium",
17
+ crossOffset = 0,
18
+ offset = 0,
19
+ slotProps,
20
+ disableExitOnEscapeKeyDown,
21
+ disableFocusManagement,
22
+ portalContainer,
23
+ hideCloseButton,
24
+ open: openProp,
25
+ className,
26
+ defaultOpen,
27
+ onOpenChange,
28
+ isNonModal,
29
+ anchorRef,
30
+ children,
31
+ control,
32
+ ...other
33
+ } = props;
34
+ const showArrow = !hideArrow;
35
+ const domRef = useDOMRef(ref);
36
+ const controlRef = useRef(null);
37
+ const state = useOverlayTriggerState({
38
+ isOpen: openProp,
39
+ onOpenChange,
40
+ defaultOpen,
41
+ ...other
42
+ });
43
+ const openState = state.isOpen;
44
+ const [opened, { on, off }] = useBoolean(openState);
45
+ const { triggerProps, overlayProps } = useOverlayTrigger(
46
+ { type: "dialog" },
47
+ { ...state, isOpen: openState }
48
+ );
49
+ const {
50
+ popoverProps,
51
+ underlayProps,
52
+ arrowProps: arrowPropsCommon,
53
+ placement
54
+ } = usePopover(
55
+ {
56
+ ...props,
57
+ offset,
58
+ isNonModal,
59
+ crossOffset,
60
+ maxHeight: 480,
61
+ popoverRef: domRef,
62
+ arrowBoundaryOffset,
63
+ containerPadding: 24,
64
+ placement: placementProp,
65
+ isKeyboardDismissDisabled: disableExitOnEscapeKeyDown,
66
+ triggerRef: anchorRef || controlRef
67
+ },
68
+ { ...state, isOpen: opened }
69
+ );
70
+ const resolvedChildren = () => {
71
+ if (typeof children === "function")
72
+ return cloneElement(children({ close: state.close }), overlayProps);
73
+ if (isValidElement(children)) return cloneElement(children, overlayProps);
74
+ return children;
75
+ };
76
+ const { isDisabled, onPress, ...otherTriggerProps } = triggerProps;
77
+ const arrowProps = mergeProps(
78
+ { className: s.arrow },
79
+ arrowPropsCommon,
80
+ slotProps?.arrow
81
+ );
82
+ const dialogProps = mergeProps(
83
+ {
84
+ role: "dialog",
85
+ className: s.dialog,
86
+ onClose: state.close,
87
+ hideCloseButton
88
+ },
89
+ slotProps?.dialog
90
+ );
91
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
92
+ control?.({
93
+ onClick: onPress,
94
+ ref: controlRef,
95
+ disabled: isDisabled,
96
+ ...otherTriggerProps
97
+ }),
98
+ /* @__PURE__ */ jsx(
99
+ Transition,
100
+ {
101
+ onEnter: on,
102
+ timeout: 300,
103
+ onExited: off,
104
+ in: openState,
105
+ nodeRef: domRef,
106
+ unmountOnExit: true,
107
+ appear: true,
108
+ children: (transition) => /* @__PURE__ */ jsxs(
109
+ Overlay,
110
+ {
111
+ portalContainer,
112
+ disableFocusManagement,
113
+ children: [
114
+ /* @__PURE__ */ jsx("div", { ...underlayProps, className: s.underlay }),
115
+ /* @__PURE__ */ jsxs(
116
+ "div",
117
+ {
118
+ ref: domRef,
119
+ "data-size": size,
120
+ "data-arrow": showArrow,
121
+ "data-placement": placement,
122
+ "data-transition": transition,
123
+ className: clsx(s.base, s[size], className),
124
+ ...mergeProps(popoverProps, other),
125
+ style: {
126
+ ...popoverProps.style,
127
+ "--popover-inline-size": normalizeInlineSize(size)
128
+ },
129
+ children: [
130
+ showArrow && /* @__PURE__ */ jsx("div", { ...arrowProps, "data-placement": placement }),
131
+ /* @__PURE__ */ jsx(Dialog, { ...dialogProps, children: resolvedChildren() })
132
+ ]
133
+ }
134
+ )
135
+ ]
136
+ }
137
+ )
138
+ },
139
+ placement
140
+ )
141
+ ] });
142
+ }
143
+ );
144
+ Popover.displayName = "Popover";
145
+ export {
146
+ Popover
147
+ };
@@ -0,0 +1,17 @@
1
+ const base = "kbq-popover-f14dc5";
2
+ const arrow = "kbq-popover-arrow-3bdadb";
3
+ const underlay = "kbq-popover-underlay-9c5b07";
4
+ const dialog = "kbq-popover-dialog-e39a6d";
5
+ const s = {
6
+ base,
7
+ arrow,
8
+ underlay,
9
+ dialog
10
+ };
11
+ export {
12
+ arrow,
13
+ base,
14
+ s as default,
15
+ dialog,
16
+ underlay
17
+ };
@@ -0,0 +1,4 @@
1
+ export * from './Popover';
2
+ export * from './types';
3
+ export { DialogHeader, DialogFooter, DialogContent } from '../Dialog';
4
+ export { DialogHeader as PopoverHeader, DialogContent as PopoverContent, DialogFooter as PopoverFooter, } from '../Dialog';
@@ -0,0 +1,97 @@
1
+ import type { ComponentPropsWithRef, CSSProperties, ReactElement, ReactNode, Ref, RefObject } from 'react';
2
+ import type { ButtonOptions } from '@koobiq/react-primitives';
3
+ import type { DialogProps } from '../Dialog';
4
+ export type PopoverPropContent = ReactNode | ((props: {
5
+ close(): void;
6
+ }) => ReactElement);
7
+ export type PopoverPropControl = (props: ButtonOptions & {
8
+ ref?: Ref<HTMLButtonElement>;
9
+ }) => ReactElement;
10
+ export declare const popoverPropPlacement: readonly ["bottom", "bottom start", "bottom end", "top", "top start", "top end", "start", "start top", "start bottom", "end", "end top", "end bottom"];
11
+ export type PopoverPropPlacement = (typeof popoverPropPlacement)[number];
12
+ export declare const popoverPropSize: readonly ["small", "medium", "large"];
13
+ export type PopoverPropSize = (typeof popoverPropSize)[number] | CSSProperties['inlineSize'];
14
+ export type PopoverProps = {
15
+ /** If `true`, the component is shown. */
16
+ open?: boolean;
17
+ /** The default open state. Use when the component is not controlled. */
18
+ defaultOpen?: boolean;
19
+ /** The content of the component. */
20
+ children?: PopoverPropContent;
21
+ /** The render function of the control for displaying the modal window. */
22
+ control?: PopoverPropControl;
23
+ /**
24
+ * Component width size.
25
+ * @default medium
26
+ * */
27
+ size?: PopoverPropSize;
28
+ /**
29
+ * If `true`, the close button isn't shown.
30
+ * @default false
31
+ * */
32
+ hideCloseButton?: boolean;
33
+ /** Handler that is called when the modal's open state changes. */
34
+ onOpenChange?: (open: boolean) => void;
35
+ /**
36
+ * The container element in which the component portal will be placed.
37
+ * @default document.body
38
+ */
39
+ portalContainer?: Element;
40
+ /**
41
+ * If `true`, the modal window won't close when the ESC key is pressed.
42
+ * @default false
43
+ */
44
+ disableExitOnEscapeKeyDown?: boolean;
45
+ /** Additional CSS-classes. */
46
+ className?: string;
47
+ /** Unique identifier for testing purposes. */
48
+ 'data-testid'?: string | number;
49
+ /**
50
+ * If `true`, the focus trap in modal window is disabled.
51
+ * @default false
52
+ */
53
+ disableFocusManagement?: boolean;
54
+ /**
55
+ * The placement of the element with respect to its anchor element.
56
+ * @default top
57
+ * */
58
+ placement?: PopoverPropPlacement;
59
+ /** The ref for the element which the popover positions itself with respect to. */
60
+ anchorRef?: RefObject<HTMLElement>;
61
+ /**
62
+ * If `true`, the arrow isn't shown.
63
+ * @default false
64
+ * */
65
+ hideArrow?: boolean;
66
+ /**
67
+ * Whether the popover is non-modal, i.e. elements outside the popover may be
68
+ * interacted with by assistive technologies.
69
+ *
70
+ * Most popovers should not use this option as it may negatively impact the screen
71
+ * reader experience. Only use with components such as combobox, which are designed
72
+ * to handle this situation carefully.
73
+ */
74
+ isNonModal?: boolean;
75
+ /**
76
+ * The minimum distance the arrow's edge should be from the edge of the overlay element.
77
+ * @default 0
78
+ */
79
+ arrowBoundaryOffset?: number;
80
+ /**
81
+ * The additional offset applied along the main axis between the element and its
82
+ * anchor element.
83
+ * @default 0
84
+ */
85
+ offset?: number;
86
+ /**
87
+ * The additional offset applied along the cross axis between the element and its
88
+ * anchor element.
89
+ * @default 0
90
+ */
91
+ crossOffset?: number;
92
+ /** The props used for each slot inside. */
93
+ slotProps?: {
94
+ dialog?: DialogProps;
95
+ arrow?: ComponentPropsWithRef<'div'>;
96
+ };
97
+ };
@@ -0,0 +1,19 @@
1
+ const popoverPropPlacement = [
2
+ "bottom",
3
+ "bottom start",
4
+ "bottom end",
5
+ "top",
6
+ "top start",
7
+ "top end",
8
+ "start",
9
+ "start top",
10
+ "start bottom",
11
+ "end",
12
+ "end top",
13
+ "end bottom"
14
+ ];
15
+ const popoverPropSize = ["small", "medium", "large"];
16
+ export {
17
+ popoverPropPlacement,
18
+ popoverPropSize
19
+ };
@@ -0,0 +1,2 @@
1
+ import type { PopoverPropSize } from './types';
2
+ export declare const normalizeInlineSize: (value: PopoverPropSize | undefined) => string | undefined;
@@ -0,0 +1,11 @@
1
+ import { isNumber } from "@koobiq/react-core";
2
+ const normalizeInlineSize = (value) => {
3
+ if (value === "small") return `240px`;
4
+ if (value === "medium") return `400px`;
5
+ if (value === "large") return `640px`;
6
+ if (isNumber(value)) return `${value}px`;
7
+ return value;
8
+ };
9
+ export {
10
+ normalizeInlineSize
11
+ };
@@ -0,0 +1,2 @@
1
+ import type { ProgressBarProps } from './index';
2
+ export declare const ProgressBar: import("react").ForwardRefExoticComponent<Omit<ProgressBarProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,57 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { forwardRef } from "react";
4
+ import { isNotNil, clsx } from "@koobiq/react-core";
5
+ import { ProgressBar as ProgressBar$1 } from "@koobiq/react-primitives";
6
+ import s from "./ProgressBar.module.css.js";
7
+ const ProgressBar = forwardRef(
8
+ (props, ref) => {
9
+ const {
10
+ variant = "determinate",
11
+ minValue = 0,
12
+ maxValue = 100,
13
+ className,
14
+ value,
15
+ slotProps,
16
+ style,
17
+ ...other
18
+ } = props;
19
+ const indeterminate = variant === "indeterminate" || !isNotNil(value);
20
+ const setProgressTrackStyles = () => {
21
+ if (indeterminate) return void 0;
22
+ const translateX = Math.max(
23
+ -maxValue,
24
+ Math.min(minValue, (value || minValue) - maxValue)
25
+ );
26
+ return {
27
+ "--progressbar-fill-translate-x": `translateX(${translateX}%)`
28
+ };
29
+ };
30
+ return /* @__PURE__ */ jsx(
31
+ ProgressBar$1,
32
+ {
33
+ value,
34
+ minValue,
35
+ maxValue,
36
+ indeterminate,
37
+ "data-variant": indeterminate ? "indeterminate" : "determinate",
38
+ style: { ...style, ...setProgressTrackStyles() },
39
+ className: clsx(s.base, indeterminate && s.indeterminate, className),
40
+ ...other,
41
+ ref,
42
+ children: /* @__PURE__ */ jsx(
43
+ "span",
44
+ {
45
+ className: clsx(s.fill, slotProps?.fill?.className),
46
+ ref: slotProps?.fill?.ref,
47
+ ...slotProps?.fill
48
+ }
49
+ )
50
+ }
51
+ );
52
+ }
53
+ );
54
+ ProgressBar.displayName = "ProgressBar";
55
+ export {
56
+ ProgressBar
57
+ };
@@ -0,0 +1,15 @@
1
+ const base = "kbq-progressbar-824268";
2
+ const fill = "kbq-progressbar-fill-f590ca";
3
+ const indeterminate = "kbq-progressbar-indeterminate-80b42e";
4
+ const s = {
5
+ base,
6
+ fill,
7
+ indeterminate,
8
+ "progress-bar-animation": "kbq-progressbar-progress-bar-animation-6e2ae1"
9
+ };
10
+ export {
11
+ base,
12
+ s as default,
13
+ fill,
14
+ indeterminate
15
+ };
@@ -0,0 +1,2 @@
1
+ export * from './ProgressBar';
2
+ export * from './types';
@@ -0,0 +1,34 @@
1
+ import type { ComponentPropsWithRef } from 'react';
2
+ import type { ExtendableComponentPropsWithRef } from '@koobiq/react-core';
3
+ export declare const progressBarPropVariant: readonly ["indeterminate", "determinate"];
4
+ export type ProgressBarPropVariant = (typeof progressBarPropVariant)[number];
5
+ export type ProgressBarBaseProps = {
6
+ children?: never;
7
+ /**
8
+ * The current value (controlled).
9
+ * @default 0
10
+ */
11
+ value?: number;
12
+ /**
13
+ * The smallest value allowed for the input.
14
+ * @default 0
15
+ */
16
+ minValue?: number;
17
+ /**
18
+ * The largest value allowed for the input.
19
+ * @default 100
20
+ */
21
+ maxValue?: number;
22
+ /** Additional CSS-classes. */
23
+ className?: string;
24
+ /**
25
+ * The variant to use. Use indeterminate or query when there is no progress value.
26
+ * @default determinate
27
+ * */
28
+ variant?: ProgressBarPropVariant;
29
+ /** The props used for each slot inside. */
30
+ slotProps?: {
31
+ fill?: ComponentPropsWithRef<'span'>;
32
+ };
33
+ };
34
+ export type ProgressBarProps = ExtendableComponentPropsWithRef<ProgressBarBaseProps, 'div'>;
@@ -0,0 +1,4 @@
1
+ const progressBarPropVariant = ["indeterminate", "determinate"];
2
+ export {
3
+ progressBarPropVariant
4
+ };
@@ -0,0 +1,2 @@
1
+ import type { ProgressSpinnerProps } from './index';
2
+ export declare const ProgressSpinner: import("react").ForwardRefExoticComponent<Omit<ProgressSpinnerProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,68 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { forwardRef, useMemo } from "react";
4
+ import { isNotNil, clsx } from "@koobiq/react-core";
5
+ import { ProgressBar } from "@koobiq/react-primitives";
6
+ import s from "./ProgressSpinner.module.css.js";
7
+ import { getSvgParamsBySize } from "./utils.js";
8
+ const ProgressSpinner = forwardRef((props, ref) => {
9
+ const {
10
+ variant = "determinate",
11
+ size = "compact",
12
+ minValue = 0,
13
+ maxValue = 100,
14
+ className,
15
+ value,
16
+ slotProps,
17
+ ...other
18
+ } = props;
19
+ const indeterminate = variant === "indeterminate" || !isNotNil(value);
20
+ const [sizeOfPixels, strokeWidth, radius, strokeDasharray] = useMemo(
21
+ () => getSvgParamsBySize(size),
22
+ [size]
23
+ );
24
+ return /* @__PURE__ */ jsx(
25
+ ProgressBar,
26
+ {
27
+ value,
28
+ "data-size": size,
29
+ minValue,
30
+ maxValue,
31
+ indeterminate,
32
+ "data-variant": indeterminate ? "indeterminate" : "determinate",
33
+ className: clsx(s.base, indeterminate && s.indeterminate, className),
34
+ ...other,
35
+ ref,
36
+ children: ({ percentage = 0 }) => {
37
+ const progress = indeterminate ? 75 : percentage;
38
+ return /* @__PURE__ */ jsx(
39
+ "svg",
40
+ {
41
+ width: sizeOfPixels,
42
+ height: sizeOfPixels,
43
+ className: clsx(s.spin, slotProps?.spin?.className),
44
+ viewBox: `0 0 ${sizeOfPixels} ${sizeOfPixels}`,
45
+ ...slotProps?.spin,
46
+ children: /* @__PURE__ */ jsx(
47
+ "circle",
48
+ {
49
+ r: radius,
50
+ className: s.circle,
51
+ cx: sizeOfPixels / 2,
52
+ cy: sizeOfPixels / 2,
53
+ strokeLinecap: "round",
54
+ strokeWidth,
55
+ strokeDasharray,
56
+ strokeDashoffset: strokeDasharray - progress / 100 * strokeDasharray
57
+ }
58
+ )
59
+ }
60
+ );
61
+ }
62
+ }
63
+ );
64
+ });
65
+ ProgressSpinner.displayName = "ProgressSpinner";
66
+ export {
67
+ ProgressSpinner
68
+ };
@@ -0,0 +1,18 @@
1
+ const base = "kbq-progressspinner-c0a44b";
2
+ const spin = "kbq-progressspinner-spin-537b53";
3
+ const circle = "kbq-progressspinner-circle-6442ab";
4
+ const indeterminate = "kbq-progressspinner-indeterminate-1cf6d1";
5
+ const s = {
6
+ base,
7
+ spin,
8
+ circle,
9
+ indeterminate,
10
+ "progress-spin-animation": "kbq-progressspinner-progress-spin-animation-82d376"
11
+ };
12
+ export {
13
+ base,
14
+ circle,
15
+ s as default,
16
+ indeterminate,
17
+ spin
18
+ };
@@ -0,0 +1,2 @@
1
+ export * from './ProgressSpinner';
2
+ export * from './types';
@@ -0,0 +1,41 @@
1
+ import type { ComponentPropsWithRef } from 'react';
2
+ import type { ExtendableComponentPropsWithRef } from '@koobiq/react-core';
3
+ export declare const progressSpinnerPropSize: readonly ["compact", "big"];
4
+ export type ProgressSpinnerPropSize = (typeof progressSpinnerPropSize)[number];
5
+ export declare const progressSpinnerPropVariant: readonly ["indeterminate", "determinate"];
6
+ export type ProgressSpinnerPropVariant = (typeof progressSpinnerPropVariant)[number];
7
+ export type ProgressSpinnerBaseProps = {
8
+ children?: never;
9
+ /**
10
+ * The current value (controlled).
11
+ * @default 0
12
+ */
13
+ value?: number;
14
+ /**
15
+ * Size.
16
+ * @default compact
17
+ * */
18
+ size?: ProgressSpinnerPropSize;
19
+ /**
20
+ * The smallest value allowed for the input.
21
+ * @default 0
22
+ */
23
+ minValue?: number;
24
+ /**
25
+ * The largest value allowed for the input.
26
+ * @default 100
27
+ */
28
+ maxValue?: number;
29
+ /** Additional CSS-classes. */
30
+ className?: string;
31
+ /**
32
+ * The variant to use. Use indeterminate or query when there is no progress value.
33
+ * @default determinate
34
+ * */
35
+ variant?: ProgressSpinnerPropVariant;
36
+ /** The props used for each slot inside. */
37
+ slotProps?: {
38
+ spin?: ComponentPropsWithRef<'svg'>;
39
+ };
40
+ };
41
+ export type ProgressSpinnerProps = ExtendableComponentPropsWithRef<ProgressSpinnerBaseProps, 'div'>;
@@ -0,0 +1,9 @@
1
+ const progressSpinnerPropSize = ["compact", "big"];
2
+ const progressSpinnerPropVariant = [
3
+ "indeterminate",
4
+ "determinate"
5
+ ];
6
+ export {
7
+ progressSpinnerPropSize,
8
+ progressSpinnerPropVariant
9
+ };
@@ -0,0 +1,2 @@
1
+ import type { ProgressSpinnerPropSize } from './index';
2
+ export declare function getSvgParamsBySize(size: ProgressSpinnerPropSize): [number, number, number, number];
@@ -0,0 +1,18 @@
1
+ const sizeMap = {
2
+ compact: 16,
3
+ big: 48
4
+ };
5
+ const strokeWidthMap = {
6
+ compact: 2,
7
+ big: 3
8
+ };
9
+ function getSvgParamsBySize(size) {
10
+ const sizeOfPixels = sizeMap[size];
11
+ const strokeWidth = strokeWidthMap[size];
12
+ const radius = (sizeOfPixels - strokeWidth) / 2;
13
+ const strokeDasharray = radius * 2 * Math.PI;
14
+ return [sizeOfPixels, strokeWidth, radius, strokeDasharray];
15
+ }
16
+ export {
17
+ getSvgParamsBySize
18
+ };
@@ -0,0 +1,5 @@
1
+ import type { Breakpoints } from './types';
2
+ export type BreakpointsContextType = Record<keyof Breakpoints, boolean>;
3
+ export declare const BreakpointsContext: import("react").Context<BreakpointsContextType>;
4
+ export declare function useBreakpoints(): BreakpointsContextType;
5
+ export declare function useMatchedBreakpoints(): string[];
@@ -0,0 +1,17 @@
1
+ "use client";
2
+ import { createContext, useContext } from "react";
3
+ const BreakpointsContext = createContext(
4
+ {}
5
+ );
6
+ function useBreakpoints() {
7
+ return useContext(BreakpointsContext);
8
+ }
9
+ function useMatchedBreakpoints() {
10
+ const breakpoints = useContext(BreakpointsContext);
11
+ return Object.keys(breakpoints).filter((key) => breakpoints[key]);
12
+ }
13
+ export {
14
+ BreakpointsContext,
15
+ useBreakpoints,
16
+ useMatchedBreakpoints
17
+ };
@@ -0,0 +1,10 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { Breakpoints } from './types';
3
+ export type BreakpointsProviderProps = {
4
+ children: ReactNode;
5
+ breakpoints: Breakpoints;
6
+ };
7
+ export declare const BreakpointsProvider: {
8
+ ({ children, breakpoints: _breakpoints, }: BreakpointsProviderProps): import("react/jsx-runtime").JSX.Element;
9
+ displayName: string;
10
+ };
@@ -0,0 +1,15 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { BreakpointsContext } from "./BreakpointsContext.js";
4
+ import { useBreakpoints } from "./utils/useBreakpoints.js";
5
+ const BreakpointsProvider = ({
6
+ children,
7
+ breakpoints: _breakpoints
8
+ }) => {
9
+ const breakpoints = useBreakpoints(_breakpoints);
10
+ return /* @__PURE__ */ jsx(BreakpointsContext.Provider, { value: breakpoints, children });
11
+ };
12
+ BreakpointsProvider.displayName = "BreakpointsProvider";
13
+ export {
14
+ BreakpointsProvider
15
+ };
@@ -0,0 +1,6 @@
1
+ import type { Breakpoints, ProviderProps } from './types';
2
+ export declare const defaultBreakpoints: Breakpoints;
3
+ export declare const Provider: {
4
+ ({ breakpoints, children, locale, }: ProviderProps): import("react/jsx-runtime").JSX.Element;
5
+ displayName: string;
6
+ };