@koobiq/react-components 0.0.1-beta.2 → 0.0.1-beta.21

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 (203) hide show
  1. package/dist/components/Alert/Alert.js +2 -2
  2. package/dist/components/Alert/components/AlertIcon/utils.js +1 -1
  3. package/dist/components/Alert/intl.json.js +2 -6
  4. package/dist/components/Alert/types.d.ts +2 -1
  5. package/dist/components/AnimatedIcon/AnimatedIcon.d.ts +4 -0
  6. package/dist/components/AnimatedIcon/AnimatedIcon.js +50 -0
  7. package/dist/components/AnimatedIcon/AnimatedIcon.module.css.js +11 -0
  8. package/dist/components/AnimatedIcon/index.d.ts +2 -0
  9. package/dist/components/AnimatedIcon/types.d.ts +19 -0
  10. package/dist/components/Button/Button.js +1 -1
  11. package/dist/components/Button/Button.module.css.js +2 -2
  12. package/dist/components/Button/types.d.ts +4 -5
  13. package/dist/components/ButtonToggleGroup/ButtonToggleGroup.d.ts +2 -0
  14. package/dist/components/ButtonToggleGroup/ButtonToggleGroup.js +130 -0
  15. package/dist/components/ButtonToggleGroup/ButtonToggleGroup.module.css.js +17 -0
  16. package/dist/components/ButtonToggleGroup/ButtonToggleGroupContext.d.ts +7 -0
  17. package/dist/components/ButtonToggleGroup/ButtonToggleGroupContext.js +12 -0
  18. package/dist/components/ButtonToggleGroup/components/ButtonToggle/ButtonToggle.d.ts +2 -0
  19. package/dist/components/ButtonToggleGroup/components/ButtonToggle/ButtonToggle.js +90 -0
  20. package/dist/components/ButtonToggleGroup/components/ButtonToggle/ButtonToggle.module.css.js +32 -0
  21. package/dist/components/ButtonToggleGroup/components/ButtonToggle/index.d.ts +2 -0
  22. package/dist/components/ButtonToggleGroup/components/ButtonToggle/types.d.ts +27 -0
  23. package/dist/components/ButtonToggleGroup/components/index.d.ts +1 -0
  24. package/dist/components/ButtonToggleGroup/index.d.ts +3 -0
  25. package/dist/components/ButtonToggleGroup/reducer.d.ts +23 -0
  26. package/dist/components/ButtonToggleGroup/reducer.js +25 -0
  27. package/dist/components/ButtonToggleGroup/types.d.ts +38 -0
  28. package/dist/components/ButtonToggleGroup/utils.d.ts +3 -0
  29. package/dist/components/ButtonToggleGroup/utils.js +19 -0
  30. package/dist/components/Checkbox/Checkbox.js +18 -8
  31. package/dist/components/Collections/Divider.d.ts +19 -0
  32. package/dist/components/Collections/Divider.js +14 -0
  33. package/dist/components/Collections/Header.d.ts +20 -0
  34. package/dist/components/Collections/Header.js +16 -0
  35. package/dist/components/Collections/Item.d.ts +14 -0
  36. package/dist/components/Collections/Item.js +10 -0
  37. package/dist/components/{List/ListSection.d.ts → Collections/Section.d.ts} +6 -6
  38. package/dist/components/Collections/Section.js +10 -0
  39. package/dist/components/Collections/index.d.ts +4 -0
  40. package/dist/components/Container/Container.js +2 -1
  41. package/dist/components/Container/utils.d.ts +1 -1
  42. package/dist/components/Dialog/Dialog.d.ts +9 -1
  43. package/dist/components/Dialog/Dialog.js +31 -17
  44. package/dist/components/Dialog/components/DialogBody.d.ts +13 -0
  45. package/dist/components/Dialog/components/{DialogContent.js → DialogBody.js} +9 -8
  46. package/dist/components/Dialog/components/DialogCloseButton.d.ts +14 -1
  47. package/dist/components/Dialog/components/DialogCloseButton.js +3 -6
  48. package/dist/components/Dialog/components/index.d.ts +1 -1
  49. package/dist/components/Dialog/index.d.ts +0 -1
  50. package/dist/components/Dialog/intl.json.js +2 -6
  51. package/dist/components/Divider/Divider.d.ts +4 -0
  52. package/dist/components/Divider/Divider.js +44 -0
  53. package/dist/components/Divider/Divider.module.css.js +29 -0
  54. package/dist/components/Divider/index.d.ts +2 -0
  55. package/dist/components/Divider/types.d.ts +26 -0
  56. package/dist/components/Divider/types.js +6 -0
  57. package/dist/components/FieldComponents/FieldControl/FieldControl.d.ts +1 -1
  58. package/dist/components/FieldComponents/FieldInputGroup/FieldInputGroup.d.ts +8 -2
  59. package/dist/components/FieldComponents/FieldInputGroup/FieldInputGroup.js +32 -30
  60. package/dist/components/FieldComponents/FieldNumberControl/FieldNumberControl.d.ts +1 -1
  61. package/dist/components/FieldComponents/FieldSelect/FieldSelect.d.ts +12 -0
  62. package/dist/components/FieldComponents/FieldSelect/FieldSelect.js +37 -0
  63. package/dist/components/FieldComponents/FieldSelect/FieldSelect.module.css.js +20 -0
  64. package/dist/components/FieldComponents/FieldSelect/index.d.ts +1 -0
  65. package/dist/components/FieldComponents/index.d.ts +1 -0
  66. package/dist/components/FlexBox/FlexBox.d.ts +4 -0
  67. package/dist/components/FlexBox/FlexBox.js +47 -0
  68. package/dist/components/FlexBox/index.d.ts +2 -0
  69. package/dist/components/FlexBox/types.d.ts +27 -0
  70. package/dist/components/Grid/Grid.d.ts +8 -2
  71. package/dist/components/Grid/Grid.js +5 -2
  72. package/dist/components/IconButton/types.d.ts +5 -4
  73. package/dist/components/Input/Input.d.ts +1 -0
  74. package/dist/components/Input/Input.js +11 -11
  75. package/dist/components/Input/types.d.ts +2 -1
  76. package/dist/components/Link/Link.js +13 -15
  77. package/dist/components/Link/types.d.ts +4 -4
  78. package/dist/components/List/List.d.ts +17 -3
  79. package/dist/components/List/List.js +32 -18
  80. package/dist/components/List/List.module.css.js +0 -3
  81. package/dist/components/List/components/ListItemText/ListItemText.js +26 -0
  82. package/dist/components/List/components/ListItemText/ListItemText.module.css.js +11 -0
  83. package/dist/components/List/components/ListOption/ListOption.d.ts +3 -2
  84. package/dist/components/List/components/ListOption/ListOption.js +11 -16
  85. package/dist/components/List/components/ListSection/ListSection.d.ts +3 -2
  86. package/dist/components/List/components/ListSection/ListSection.js +1 -4
  87. package/dist/components/List/index.d.ts +2 -2
  88. package/dist/components/List/types.d.ts +13 -2
  89. package/dist/components/Menu/Menu.d.ts +15 -0
  90. package/dist/components/Menu/Menu.js +68 -0
  91. package/dist/components/Menu/Menu.module.css.js +8 -0
  92. package/dist/components/Menu/components/MenuHeader/MenuHeader.d.ts +5 -0
  93. package/dist/components/Menu/components/MenuHeader/MenuHeader.js +9 -0
  94. package/dist/components/Menu/components/MenuHeader/index.d.ts +1 -0
  95. package/dist/components/Menu/components/MenuInner/MenuInner.d.ts +3 -0
  96. package/dist/components/Menu/components/MenuInner/MenuInner.js +45 -0
  97. package/dist/components/Menu/components/MenuInner/MenuInner.module.css.js +11 -0
  98. package/dist/components/Menu/components/MenuInner/index.d.ts +1 -0
  99. package/dist/components/Menu/components/MenuItem/MenuItem.d.ts +6 -0
  100. package/dist/components/Menu/components/MenuItem/MenuItem.js +36 -0
  101. package/dist/components/Menu/components/MenuItem/index.d.ts +1 -0
  102. package/dist/components/Menu/components/MenuSection/MenuSection.d.ts +6 -0
  103. package/dist/components/Menu/components/MenuSection/MenuSection.js +30 -0
  104. package/dist/components/Menu/components/MenuSection/MenuSection.module.css.js +11 -0
  105. package/dist/components/Menu/components/MenuSection/index.d.ts +1 -0
  106. package/dist/components/Menu/components/index.d.ts +1 -0
  107. package/dist/components/Menu/index.d.ts +2 -0
  108. package/dist/components/Menu/types.d.ts +62 -0
  109. package/dist/components/Menu/types.js +4 -0
  110. package/dist/components/Modal/Modal.d.ts +9 -1
  111. package/dist/components/Modal/Modal.js +21 -16
  112. package/dist/components/Modal/index.d.ts +15 -2
  113. package/dist/components/Modal/index.js +9 -0
  114. package/dist/components/Modal/types.d.ts +7 -0
  115. package/dist/components/Popover/Popover.d.ts +12 -2
  116. package/dist/components/Popover/Popover.js +143 -128
  117. package/dist/components/Popover/Popover.module.css.js +3 -0
  118. package/dist/components/Popover/index.d.ts +15 -2
  119. package/dist/components/Popover/index.js +9 -0
  120. package/dist/components/Popover/types.d.ts +28 -4
  121. package/dist/components/Popover/types.js +9 -1
  122. package/dist/components/ProgressBar/ProgressBar.module.css.js +1 -2
  123. package/dist/components/ProgressSpinner/ProgressSpinner.module.css.js +1 -2
  124. package/dist/components/Provider/BreakpointsProvider.d.ts +2 -1
  125. package/dist/components/Provider/BreakpointsProvider.js +8 -1
  126. package/dist/components/Provider/Provider.d.ts +1 -1
  127. package/dist/components/Provider/Provider.js +9 -1
  128. package/dist/components/Provider/types.d.ts +5 -0
  129. package/dist/components/Provider/utils/useBreakpoints.d.ts +2 -1
  130. package/dist/components/Provider/utils/useBreakpoints.js +2 -2
  131. package/dist/components/RadioGroup/RadioContext.js +1 -0
  132. package/dist/components/RadioGroup/RadioGroup.js +2 -1
  133. package/dist/components/RadioGroup/components/Radio/Radio.js +3 -2
  134. package/dist/components/RadioGroup/components/Radio/Radio.module.css.js +3 -0
  135. package/dist/components/Select/Select.d.ts +11 -0
  136. package/dist/components/Select/Select.js +179 -0
  137. package/dist/components/Select/Select.module.css.js +20 -0
  138. package/dist/components/Select/index.d.ts +2 -0
  139. package/dist/components/Select/types.d.ts +87 -0
  140. package/dist/components/SidePanel/SidePanel.d.ts +9 -1
  141. package/dist/components/SidePanel/SidePanel.js +24 -19
  142. package/dist/components/SidePanel/index.d.ts +15 -2
  143. package/dist/components/SidePanel/index.js +9 -0
  144. package/dist/components/SidePanel/types.d.ts +7 -0
  145. package/dist/components/SkeletonBlock/SkeletonBlock.module.css.js +0 -1
  146. package/dist/components/SkeletonTypography/utils.js +3 -0
  147. package/dist/components/TagGroup/Tag.d.ts +24 -0
  148. package/dist/components/TagGroup/Tag.js +10 -0
  149. package/dist/components/TagGroup/TagGroup.d.ts +2 -0
  150. package/dist/components/TagGroup/TagGroup.js +22 -0
  151. package/dist/components/TagGroup/TagGroup.module.css.js +8 -0
  152. package/dist/components/TagGroup/components/TagInner/TagInner.d.ts +11 -0
  153. package/dist/components/TagGroup/components/TagInner/TagInner.js +86 -0
  154. package/dist/components/TagGroup/components/TagInner/TagInner.module.css.js +30 -0
  155. package/dist/components/TagGroup/components/TagInner/index.d.ts +1 -0
  156. package/dist/components/TagGroup/components/TagInner/utils.d.ts +3 -0
  157. package/dist/components/TagGroup/components/TagInner/utils.js +9 -0
  158. package/dist/components/TagGroup/components/index.d.ts +1 -0
  159. package/dist/components/TagGroup/index.d.ts +3 -0
  160. package/dist/components/TagGroup/intl.json.js +7 -0
  161. package/dist/components/TagGroup/types.d.ts +37 -0
  162. package/dist/components/TagGroup/types.js +9 -0
  163. package/dist/components/Toggle/Toggle.js +1 -1
  164. package/dist/components/Tooltip/Tooltip.d.ts +2 -1
  165. package/dist/components/Tooltip/Tooltip.js +9 -8
  166. package/dist/components/Tooltip/types.d.ts +9 -4
  167. package/dist/components/Typography/Typography.js +2 -2
  168. package/dist/components/Typography/Typography.module.css.js +2 -1
  169. package/dist/components/Typography/types.d.ts +7 -2
  170. package/dist/components/Typography/types.js +2 -1
  171. package/dist/components/index.d.ts +8 -0
  172. package/dist/components/layout/flex/flex.d.ts +15 -4
  173. package/dist/components/layout/flex/flex.js +6 -1
  174. package/dist/components/layout/flex/flex.module.css.js +78 -39
  175. package/dist/index.js +51 -23
  176. package/dist/style.css +862 -350
  177. package/dist/styles/utility.d.ts +2 -0
  178. package/dist/styles/utility.js +3 -2
  179. package/dist/styles/utility.module.css.js +5 -2
  180. package/dist/types.d.ts +1 -0
  181. package/package.json +11 -6
  182. package/dist/components/Dialog/DialogContext.d.ts +0 -9
  183. package/dist/components/Dialog/DialogContext.js +0 -12
  184. package/dist/components/Dialog/components/DialogContent.d.ts +0 -12
  185. package/dist/components/Input/components/FieldAddon/FieldAddon.d.ts +0 -10
  186. package/dist/components/Input/components/FieldAddon/index.d.ts +0 -1
  187. package/dist/components/Input/components/FieldCaption/FieldCaption.d.ts +0 -6
  188. package/dist/components/Input/components/FieldCaption/index.d.ts +0 -1
  189. package/dist/components/Input/components/FieldControl/FieldControl.d.ts +0 -9
  190. package/dist/components/Input/components/FieldControl/index.d.ts +0 -1
  191. package/dist/components/Input/components/FieldError/FieldError.d.ts +0 -7
  192. package/dist/components/Input/components/FieldError/index.d.ts +0 -1
  193. package/dist/components/Input/components/FieldInput/FieldInput.d.ts +0 -9
  194. package/dist/components/Input/components/FieldInput/index.d.ts +0 -1
  195. package/dist/components/Input/components/FieldInputGroup/FieldInputGroup.d.ts +0 -7
  196. package/dist/components/Input/components/FieldInputGroup/index.d.ts +0 -1
  197. package/dist/components/Input/components/FieldLabel/FieldLabel.d.ts +0 -9
  198. package/dist/components/Input/components/FieldLabel/index.d.ts +0 -1
  199. package/dist/components/Input/components/index.d.ts +0 -7
  200. package/dist/components/List/ListItem.d.ts +0 -11
  201. package/dist/components/List/ListItem.js +0 -11
  202. package/dist/components/List/ListSection.js +0 -11
  203. package/dist/components/List/components/ListOption/ListOption.module.css.js +0 -23
@@ -1,10 +1,11 @@
1
1
  "use client";
2
2
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
3
3
  import { forwardRef } from "react";
4
- import { clsx, mergeProps, isNotNil } from "@koobiq/react-core";
4
+ import { mergeProps, clsx, isNotNil } from "@koobiq/react-core";
5
5
  import { IconCheckS16, IconMinusS16 } from "@koobiq/react-icons";
6
6
  import { Checkbox as Checkbox$1 } from "@koobiq/react-primitives";
7
7
  import s from "./Checkbox.module.css.js";
8
+ import { AnimatedIcon } from "../AnimatedIcon/AnimatedIcon.js";
8
9
  const Checkbox = forwardRef(
9
10
  (props, ref) => {
10
11
  const {
@@ -47,13 +48,22 @@ const Checkbox = forwardRef(
47
48
  "data-indeterminate": indeterminate,
48
49
  ...commonProps,
49
50
  ref,
50
- children: ({ checked, indeterminate: indeterminate2 }) => /* @__PURE__ */ jsxs(Fragment, { children: [
51
- /* @__PURE__ */ jsxs("span", { ...boxProps, children: [
52
- checked && !indeterminate2 && /* @__PURE__ */ jsx(IconCheckS16, {}),
53
- indeterminate2 && /* @__PURE__ */ jsx(IconMinusS16, {})
54
- ] }),
55
- isNotNil(children) && /* @__PURE__ */ jsx("span", { ...labelProps, children })
56
- ] })
51
+ children: ({ checked, indeterminate: indeterminate2 }) => {
52
+ const activeIndex = indeterminate2 ? 1 : Number(Boolean(checked)) - 1;
53
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
54
+ /* @__PURE__ */ jsx("span", { ...boxProps, children: /* @__PURE__ */ jsx(
55
+ AnimatedIcon,
56
+ {
57
+ icons: [
58
+ /* @__PURE__ */ jsx(IconCheckS16, {}, "checked"),
59
+ /* @__PURE__ */ jsx(IconMinusS16, {}, "indeterminate")
60
+ ],
61
+ activeIndex
62
+ }
63
+ ) }),
64
+ isNotNil(children) && /* @__PURE__ */ jsx("span", { ...labelProps, children })
65
+ ] });
66
+ }
57
67
  }
58
68
  );
59
69
  }
@@ -0,0 +1,19 @@
1
+ import type { CSSProperties, ReactNode } from 'react';
2
+ export type DividerProps = {
3
+ /** Additional CSS-classes. */
4
+ className?: string;
5
+ /** Inline styles. */
6
+ style?: CSSProperties;
7
+ /** Unique identifier for testing purposes. */
8
+ 'data-testid'?: string | number;
9
+ children?: ReactNode;
10
+ key?: string | number;
11
+ };
12
+ export declare function Divider(_props: DividerProps): null;
13
+ export declare namespace Divider {
14
+ var getCollectionNode: (props: DividerProps) => Generator<{
15
+ type: string;
16
+ textValue: string;
17
+ props: DividerProps;
18
+ }, void, unknown>;
19
+ }
@@ -0,0 +1,14 @@
1
+ "use client";
2
+ function Divider(_props) {
3
+ return null;
4
+ }
5
+ Divider.getCollectionNode = function* getCollectionNode(props) {
6
+ yield {
7
+ type: "divider",
8
+ textValue: "divider",
9
+ props
10
+ };
11
+ };
12
+ export {
13
+ Divider
14
+ };
@@ -0,0 +1,20 @@
1
+ import type { CSSProperties, ReactNode } from 'react';
2
+ export type HeaderProps = {
3
+ /** Additional CSS-classes. */
4
+ className?: string;
5
+ /** Inline styles. */
6
+ style?: CSSProperties;
7
+ /** Unique identifier for testing purposes. */
8
+ 'data-testid'?: string | number;
9
+ children?: ReactNode;
10
+ key?: string | number;
11
+ };
12
+ export declare function Header(_props: HeaderProps): null;
13
+ export declare namespace Header {
14
+ var getCollectionNode: (props: HeaderProps) => Generator<{
15
+ type: string;
16
+ textValue: string;
17
+ rendered: ReactNode;
18
+ props: HeaderProps;
19
+ }, void, unknown>;
20
+ }
@@ -0,0 +1,16 @@
1
+ "use client";
2
+ function Header(_props) {
3
+ return null;
4
+ }
5
+ Header.getCollectionNode = function* getCollectionNode(props) {
6
+ const rendered = props.children;
7
+ yield {
8
+ type: "header",
9
+ textValue: "header",
10
+ rendered,
11
+ props
12
+ };
13
+ };
14
+ export {
15
+ Header
16
+ };
@@ -0,0 +1,14 @@
1
+ import type { CSSProperties } from 'react';
2
+ import type { ItemProps as AriaItemProps } from '@koobiq/react-primitives';
3
+ export type ItemProps<T> = AriaItemProps<T> & {
4
+ /** Additional CSS-classes. */
5
+ className?: string;
6
+ /** Inline styles. */
7
+ style?: CSSProperties;
8
+ /** Unique identifier for testing purposes. */
9
+ 'data-testid'?: string | number;
10
+ };
11
+ export declare function Item<T>(_props: ItemProps<T>): null;
12
+ export declare namespace Item {
13
+ var getCollectionNode: unknown;
14
+ }
@@ -0,0 +1,10 @@
1
+ "use client";
2
+ import { Item as Item$1 } from "@koobiq/react-primitives";
3
+ const ItemInner = Item$1;
4
+ function Item(_props) {
5
+ return null;
6
+ }
7
+ Item.getCollectionNode = ItemInner.getCollectionNode;
8
+ export {
9
+ Item
10
+ };
@@ -1,16 +1,16 @@
1
1
  import type { ReactNode } from 'react';
2
- import type { SectionProps } from '@koobiq/react-primitives';
3
- export type ListSectionProps<T> = {
2
+ import type { SectionProps as AriaSectionProps } from '@koobiq/react-primitives';
3
+ export type SectionProps<T> = {
4
4
  /** Rendered contents of the section, e.g. a header. */
5
5
  title?: ReactNode;
6
6
  /** An accessibility label for the section. */
7
7
  'aria-label'?: string;
8
8
  /** Static child items or a function to render children. */
9
- children: SectionProps<T>['children'];
9
+ children: AriaSectionProps<T>['children'];
10
10
  /** Item objects in the section. */
11
- items?: SectionProps<T>['items'];
11
+ items?: AriaSectionProps<T>['items'];
12
12
  };
13
- export declare function ListSection<T>(props: ListSectionProps<T>): import("react/jsx-runtime").JSX.Element;
14
- export declare namespace ListSection {
13
+ export declare function Section<T>(_props: SectionProps<T>): null;
14
+ export declare namespace Section {
15
15
  var getCollectionNode: unknown;
16
16
  }
@@ -0,0 +1,10 @@
1
+ "use client";
2
+ import { Section as Section$1 } from "@koobiq/react-primitives";
3
+ const SectionInner = Section$1;
4
+ function Section(_props) {
5
+ return null;
6
+ }
7
+ Section.getCollectionNode = SectionInner.getCollectionNode;
8
+ export {
9
+ Section
10
+ };
@@ -0,0 +1,4 @@
1
+ export * from './Section';
2
+ export * from './Item';
3
+ export * from './Divider';
4
+ export * from './Header';
@@ -1,7 +1,8 @@
1
+ "use client";
1
2
  import { jsx } from "react/jsx-runtime";
2
3
  import { polymorphicForwardRef, clsx } from "@koobiq/react-core";
3
4
  import s from "./Container.module.css.js";
4
- import { normalizeMaxInlineSize, normalizePosition, normalizeMargins } from "./utils.js";
5
+ import { normalizeMargins, normalizeMaxInlineSize, normalizePosition } from "./utils.js";
5
6
  import { useMatchedBreakpoints } from "../Provider/BreakpointsContext.js";
6
7
  import { getResponsiveValue } from "../../utils/getResponsiveValue/getResponsiveValue.js";
7
8
  const Container = polymorphicForwardRef(
@@ -1,4 +1,4 @@
1
1
  import type { ContainerMarginsProp, ContainerMaxInlineSizeProp, ContainerPositionProp } from './types';
2
2
  export declare const normalizeMargins: (value: ContainerMarginsProp | undefined) => string | 0 | undefined;
3
3
  export declare const normalizeMaxInlineSize: (value: ContainerMaxInlineSizeProp | undefined) => string | undefined;
4
- export declare const normalizePosition: (value: ContainerPositionProp | undefined) => "0 auto" | "auto 0" | "auto";
4
+ export declare const normalizePosition: (value: ContainerPositionProp | undefined) => "auto" | "0 auto" | "auto 0";
@@ -1,2 +1,10 @@
1
+ import { DialogBody, DialogFooter, DialogHeader } from './components';
1
2
  import type { DialogProps } from './types';
2
- export declare const Dialog: import("react").ForwardRefExoticComponent<Omit<DialogProps, "ref"> & import("react").RefAttributes<HTMLElement>>;
3
+ declare const DialogComponent: import("react").ForwardRefExoticComponent<Omit<DialogProps, "ref"> & import("react").RefAttributes<HTMLElement>>;
4
+ type CompoundedComponent = typeof DialogComponent & {
5
+ Header: typeof DialogHeader;
6
+ Body: typeof DialogBody;
7
+ Footer: typeof DialogFooter;
8
+ };
9
+ export declare const Dialog: CompoundedComponent;
10
+ export {};
@@ -1,17 +1,18 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
- import { forwardRef, useRef, useEffect } from "react";
4
- import { useBoolean, useDOMRef, mergeProps, clsx, useElementSize, useEventListener, useMultiRef } from "@koobiq/react-core";
5
- import { useDialog } from "@koobiq/react-primitives";
3
+ import { forwardRef, useEffect } from "react";
4
+ import { useBoolean, useDOMRef, mergeProps, clsx, useElementSize, useEventListener } from "@koobiq/react-core";
5
+ import { useDialog, Provider, ButtonContext } from "@koobiq/react-primitives";
6
6
  import { utilClasses } from "../../styles/utility.js";
7
7
  import s from "./Dialog.module.css.js";
8
- import { DialogContext } from "./DialogContext.js";
8
+ import { DialogBodyContext, DialogBody } from "./components/DialogBody.js";
9
9
  import { DialogCloseButton } from "./components/DialogCloseButton.js";
10
- const Dialog = forwardRef(
10
+ import { DialogHeader } from "./components/DialoglHeader.js";
11
+ import { DialogFooter } from "./components/DialogFooter.js";
12
+ const DialogComponent = forwardRef(
11
13
  ({ onClose, children, slotProps, hideCloseButton, ...other }, ref) => {
12
14
  const [topOverflow, { set: setTopOverflow }] = useBoolean();
13
15
  const [bottomOverflow, { set: setBottomOverflow }] = useBoolean();
14
- const contentRef = useRef(null);
15
16
  const domRef = useDOMRef(ref);
16
17
  const { dialogProps } = useDialog(other, domRef);
17
18
  const showCloseButton = !hideCloseButton;
@@ -35,24 +36,33 @@ const Dialog = forwardRef(
35
36
  element.scrollTop + element.clientHeight < element.scrollHeight
36
37
  );
37
38
  };
38
- const { ref: innerRef, height } = useElementSize();
39
+ const { ref: bodyRef, height } = useElementSize();
39
40
  useEffect(() => {
40
- if (contentRef.current) updateOverflow(contentRef.current);
41
- }, [contentRef.current, height]);
41
+ if (bodyRef.current) updateOverflow(bodyRef.current);
42
+ }, [bodyRef.current, height]);
42
43
  useEventListener({
43
- element: contentRef,
44
+ element: bodyRef,
44
45
  eventName: "scroll",
45
46
  handler: () => {
46
- updateOverflow(contentRef.current);
47
+ updateOverflow(bodyRef.current);
47
48
  }
48
49
  });
49
50
  return /* @__PURE__ */ jsx(
50
- DialogContext.Provider,
51
+ Provider,
51
52
  {
52
- value: {
53
- close: onClose,
54
- slots: { content: { ref: useMultiRef([contentRef, innerRef]) } }
55
- },
53
+ values: [
54
+ [DialogBodyContext, { ref: bodyRef }],
55
+ [
56
+ ButtonContext,
57
+ {
58
+ slots: {
59
+ close: {
60
+ onPress: onClose
61
+ }
62
+ }
63
+ }
64
+ ]
65
+ ],
56
66
  children: /* @__PURE__ */ jsxs("section", { ...rootProps, ref: domRef, children: [
57
67
  showCloseButton && /* @__PURE__ */ jsx(DialogCloseButton, { ...slotProps?.["close-button"] }),
58
68
  /* @__PURE__ */ jsx("div", { ...containerProps, children })
@@ -61,7 +71,11 @@ const Dialog = forwardRef(
61
71
  );
62
72
  }
63
73
  );
64
- Dialog.displayName = "Dialog";
74
+ DialogComponent.displayName = "Dialog";
75
+ const Dialog = DialogComponent;
76
+ Dialog.Header = DialogHeader;
77
+ Dialog.Body = DialogBody;
78
+ Dialog.Footer = DialogFooter;
65
79
  export {
66
80
  Dialog
67
81
  };
@@ -0,0 +1,13 @@
1
+ import type { ReactNode, ComponentRef } from 'react';
2
+ import { type ExtendableComponentPropsWithRef } from '@koobiq/react-core';
3
+ export type DialogBodyRef = ComponentRef<'div'>;
4
+ export type DialogBodyProps = ExtendableComponentPropsWithRef<{
5
+ /** Additional CSS-classes. */
6
+ className?: string;
7
+ /** The content of the component. */
8
+ children?: ReactNode;
9
+ /** Unique identifier for testing purposes. */
10
+ 'data-testid'?: string;
11
+ }, 'div'>;
12
+ export declare const DialogBodyContext: import("react").Context<DialogBodyProps>;
13
+ export declare const DialogBody: import("react").ForwardRefExoticComponent<Omit<DialogBodyProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
@@ -1,14 +1,14 @@
1
1
  "use client";
2
2
  import { jsx } from "react/jsx-runtime";
3
- import { forwardRef } from "react";
4
- import { useMultiRef, clsx } from "@koobiq/react-core";
3
+ import { createContext, forwardRef, useContext } from "react";
4
+ import { mergeProps, clsx, useMultiRef } from "@koobiq/react-core";
5
5
  import { utilClasses } from "../../../styles/utility.js";
6
6
  import s from "../Dialog.module.css.js";
7
- import { useDialogProvider } from "../DialogContext.js";
8
- const DialogContent = forwardRef(
7
+ const DialogBodyContext = createContext({});
8
+ const DialogBody = forwardRef(
9
9
  ({ children, className, ...other }, ref) => {
10
- const { slots } = useDialogProvider();
11
- const { content: { ref: contextRef } = {} } = slots || {};
10
+ const defaultProps = useContext(DialogBodyContext);
11
+ const { ref: contextRef } = mergeProps(defaultProps, other);
12
12
  return /* @__PURE__ */ jsx(
13
13
  "div",
14
14
  {
@@ -24,7 +24,8 @@ const DialogContent = forwardRef(
24
24
  );
25
25
  }
26
26
  );
27
- DialogContent.displayName = "DialogContent";
27
+ DialogBody.displayName = "DialogBody";
28
28
  export {
29
- DialogContent
29
+ DialogBody,
30
+ DialogBodyContext
30
31
  };
@@ -4,6 +4,19 @@ export type DialogCloseButtonRef = ComponentRef<'button'>;
4
4
  export type DialogCloseButtonProps = ButtonProps;
5
5
  export declare const DialogCloseButton: import("react").ForwardRefExoticComponent<Omit<Omit<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
6
6
  ref?: ((instance: HTMLButtonElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLButtonElement> | null | undefined;
7
- }, "as" | keyof import("../..").ButtonBaseProps> & import("../..").ButtonBaseProps & {
7
+ }, "children" | "progress" | "as" | "className" | "autoFocus" | "id" | "rel" | "aria-controls" | "aria-describedby" | "aria-details" | "aria-expanded" | "aria-haspopup" | "aria-label" | "aria-labelledby" | "aria-pressed" | "onFocus" | "onBlur" | "onKeyDown" | "onKeyUp" | "target" | "type" | "href" | "disabled" | "onPress" | "onPressStart" | "onPressEnd" | "onPressChange" | "onPressUp" | "onFocusChange" | "elementType" | "preventFocusOnPress" | "excludeFromTabOrder" | "variant" | "onHoverStart" | "onHoverEnd" | "onlyIcon" | "fullWidth" | "startIcon" | "endIcon" | "data-testid"> & Omit<import("@koobiq/react-primitives").ButtonOptions, "children" | "progress" | "className" | "disabled" | "variant" | "onHoverStart" | "onHoverEnd" | "onlyIcon" | "fullWidth" | "startIcon" | "endIcon" | "data-testid"> & {
8
+ children?: import("react").ReactNode;
9
+ variant?: import("../..").ButtonPropVariant;
10
+ progress?: boolean;
11
+ disabled?: boolean;
12
+ onlyIcon?: boolean;
13
+ className?: string;
14
+ fullWidth?: boolean;
15
+ startIcon?: import("react").ReactNode;
16
+ endIcon?: import("react").ReactNode;
17
+ 'data-testid'?: string | number;
18
+ onHoverStart?: (e: import("@koobiq/react-primitives").HoverEvent) => void;
19
+ onHoverEnd?: (e: import("@koobiq/react-primitives").HoverEvent) => void;
20
+ } & {
8
21
  as?: "button" | undefined;
9
22
  }, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
@@ -1,25 +1,22 @@
1
1
  "use client";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { forwardRef } from "react";
4
- import { mergeProps } from "@koobiq/react-core";
5
4
  import { IconXmark16 } from "@koobiq/react-icons";
6
5
  import { useLocalizedStringFormatter } from "@koobiq/react-primitives";
7
6
  import s from "../Dialog.module.css.js";
8
7
  import intlMessages from "../intl.json.js";
9
- import { useDialogProvider } from "../DialogContext.js";
10
8
  import { Button } from "../../Button/Button.js";
11
- const DialogCloseButton = forwardRef(({ onClick, ...other }, ref) => {
12
- const { close } = useDialogProvider();
9
+ const DialogCloseButton = forwardRef((props, ref) => {
13
10
  const stringFormatter = useLocalizedStringFormatter(intlMessages);
14
11
  return /* @__PURE__ */ jsx("div", { className: s.closeButton, children: /* @__PURE__ */ jsx(
15
12
  Button,
16
13
  {
17
- ...mergeProps({ onClick: close }, { onClick }),
18
14
  "aria-label": stringFormatter.format("close"),
19
15
  startIcon: /* @__PURE__ */ jsx(IconXmark16, {}),
20
16
  variant: "contrast-transparent",
17
+ slot: "close",
21
18
  onlyIcon: true,
22
- ...other,
19
+ ...props,
23
20
  ref
24
21
  }
25
22
  ) });
@@ -1,4 +1,4 @@
1
1
  export * from './DialoglHeader';
2
- export * from './DialogContent';
2
+ export * from './DialogBody';
3
3
  export * from './DialogFooter';
4
4
  export * from './DialogCloseButton';
@@ -1,4 +1,3 @@
1
1
  export * from './types';
2
2
  export * from './Dialog';
3
3
  export * from './components';
4
- export * from './DialogContext';
@@ -1,10 +1,6 @@
1
1
  const intlMessages = {
2
- "ru-RU": {
3
- close: "Закрыть"
4
- },
5
- "en-US": {
6
- close: "Close"
7
- }
2
+ "ru-RU": { "close": "Закрыть" },
3
+ "en-US": { "close": "Close" }
8
4
  };
9
5
  export {
10
6
  intlMessages as default
@@ -0,0 +1,4 @@
1
+ import type { ComponentPropsWithRef, ElementType } from 'react';
2
+ import type { DividerBaseProps } from './index';
3
+ export declare const Divider: import("@koobiq/react-core").PolyForwardComponent<"div", DividerBaseProps, ElementType>;
4
+ export type DividerProps<As extends ElementType = 'div'> = ComponentPropsWithRef<typeof Divider<As>>;
@@ -0,0 +1,44 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { polymorphicForwardRef, clsx } from "@koobiq/react-core";
4
+ import { useSeparator } from "@koobiq/react-primitives";
5
+ import s from "./Divider.module.css.js";
6
+ const Divider = polymorphicForwardRef(
7
+ (props, ref) => {
8
+ const {
9
+ as: Tag = "div",
10
+ orientation = "horizontal",
11
+ disablePaddings = false,
12
+ flexItem = false,
13
+ display,
14
+ className,
15
+ ...other
16
+ } = props;
17
+ const { separatorProps } = useSeparator({
18
+ ...other,
19
+ orientation,
20
+ elementType: Tag
21
+ });
22
+ const hasPaddings = !disablePaddings;
23
+ return /* @__PURE__ */ jsx(
24
+ Tag,
25
+ {
26
+ ...separatorProps,
27
+ className: clsx(
28
+ s.base,
29
+ s[orientation],
30
+ display && s[display],
31
+ hasPaddings && s.hasPaddings,
32
+ flexItem && s.flexItem,
33
+ className
34
+ ),
35
+ ref,
36
+ ...other
37
+ }
38
+ );
39
+ }
40
+ );
41
+ Divider.displayName = "Divider";
42
+ export {
43
+ Divider
44
+ };
@@ -0,0 +1,29 @@
1
+ const base = "kbq-divider-16da20";
2
+ const block = "kbq-divider-block-72e3e3";
3
+ const inlineBlock = "kbq-divider-inlineBlock-0f06d1";
4
+ const inline = "kbq-divider-inline-2d4752";
5
+ const vertical = "kbq-divider-vertical-a4e613";
6
+ const horizontal = "kbq-divider-horizontal-22c78d";
7
+ const hasPaddings = "kbq-divider-hasPaddings-d8f601";
8
+ const flexItem = "kbq-divider-flexItem-af9975";
9
+ const s = {
10
+ base,
11
+ block,
12
+ inlineBlock,
13
+ inline,
14
+ vertical,
15
+ horizontal,
16
+ hasPaddings,
17
+ flexItem
18
+ };
19
+ export {
20
+ base,
21
+ block,
22
+ s as default,
23
+ flexItem,
24
+ hasPaddings,
25
+ horizontal,
26
+ inline,
27
+ inlineBlock,
28
+ vertical
29
+ };
@@ -0,0 +1,2 @@
1
+ export * from './Divider';
2
+ export * from './types';
@@ -0,0 +1,26 @@
1
+ export declare const dividerPropDisplay: readonly ["block", "inline", "inlineBlock"];
2
+ export declare const dividerPropOrientation: readonly ["horizontal", "vertical"];
3
+ export type DividerPropOrientation = (typeof dividerPropOrientation)[number];
4
+ export type DividerPropDisplay = (typeof dividerPropDisplay)[number];
5
+ export type DividerBaseProps = {
6
+ /** Additional CSS-classes. */
7
+ className?: string;
8
+ /**
9
+ * The orientation of the separator.
10
+ * @default 'horizontal'
11
+ */
12
+ orientation?: DividerPropOrientation;
13
+ /** Set the display for the component. */
14
+ display?: DividerPropDisplay;
15
+ /**
16
+ * Indicates if the divider is a child of a flex container.
17
+ * Mainly used for vertical layout.
18
+ * Used when the block does not have a fixed height.
19
+ * @default false
20
+ */
21
+ flexItem?: boolean;
22
+ /** If `true`, it disables the default paddings.
23
+ * @default false
24
+ */
25
+ disablePaddings?: boolean;
26
+ };
@@ -0,0 +1,6 @@
1
+ const dividerPropDisplay = ["block", "inline", "inlineBlock"];
2
+ const dividerPropOrientation = ["horizontal", "vertical"];
3
+ export {
4
+ dividerPropDisplay,
5
+ dividerPropOrientation
6
+ };
@@ -4,7 +4,7 @@ export type FieldControlProps = TextFieldProps & {
4
4
  className?: string;
5
5
  };
6
6
  export type FieldControlRef = TextFieldRef;
7
- export declare const FieldControl: import("react").ForwardRefExoticComponent<Omit<import("@koobiq/react-primitives").UseTextFieldProps, keyof import("node_modules/@koobiq/react-primitives/dist/utils").RenderProps<import("@koobiq/react-primitives").TextFieldRenderProps>> & import("node_modules/@koobiq/react-primitives/dist/utils").RenderProps<import("@koobiq/react-primitives").TextFieldRenderProps> & {
7
+ export declare const FieldControl: import("react").ForwardRefExoticComponent<Omit<import("@koobiq/react-primitives").UseTextFieldProps, keyof import("@koobiq/react-primitives").RenderProps<import("@koobiq/react-primitives").TextFieldRenderProps>> & import("@koobiq/react-primitives").RenderProps<import("@koobiq/react-primitives").TextFieldRenderProps> & {
8
8
  fullWidth?: boolean;
9
9
  className?: string;
10
10
  } & import("react").RefAttributes<HTMLDivElement>>;
@@ -1,11 +1,17 @@
1
1
  import { type ReactNode } from 'react';
2
2
  import { type ExtendableComponentPropsWithRef } from '@koobiq/react-core';
3
- export type FieldInputGroupBaseProps = ExtendableComponentPropsWithRef<{
3
+ import { type FieldAddonProps } from '../FieldAddon';
4
+ export type FieldInputGroupProps = ExtendableComponentPropsWithRef<{
4
5
  children?: ReactNode;
5
6
  startAddon?: ReactNode;
6
7
  endAddon?: ReactNode;
7
8
  disabled?: boolean;
8
9
  className?: string;
9
10
  error?: boolean;
11
+ /** The props used for each slot inside. */
12
+ slotProps?: {
13
+ start?: FieldAddonProps;
14
+ end?: FieldAddonProps;
15
+ };
10
16
  }, 'div'>;
11
- export declare const FieldInputGroup: import("react").ForwardRefExoticComponent<Omit<FieldInputGroupBaseProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
17
+ export declare const FieldInputGroup: import("react").ForwardRefExoticComponent<Omit<FieldInputGroupProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;