@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.
- package/dist/components/Alert/Alert.js +2 -2
- package/dist/components/Alert/components/AlertIcon/utils.js +1 -1
- package/dist/components/Alert/intl.json.js +2 -6
- package/dist/components/Alert/types.d.ts +2 -1
- package/dist/components/AnimatedIcon/AnimatedIcon.d.ts +4 -0
- package/dist/components/AnimatedIcon/AnimatedIcon.js +50 -0
- package/dist/components/AnimatedIcon/AnimatedIcon.module.css.js +11 -0
- package/dist/components/AnimatedIcon/index.d.ts +2 -0
- package/dist/components/AnimatedIcon/types.d.ts +19 -0
- package/dist/components/Button/Button.js +1 -1
- package/dist/components/Button/Button.module.css.js +2 -2
- package/dist/components/Button/types.d.ts +4 -5
- package/dist/components/ButtonToggleGroup/ButtonToggleGroup.d.ts +2 -0
- package/dist/components/ButtonToggleGroup/ButtonToggleGroup.js +130 -0
- package/dist/components/ButtonToggleGroup/ButtonToggleGroup.module.css.js +17 -0
- package/dist/components/ButtonToggleGroup/ButtonToggleGroupContext.d.ts +7 -0
- package/dist/components/ButtonToggleGroup/ButtonToggleGroupContext.js +12 -0
- package/dist/components/ButtonToggleGroup/components/ButtonToggle/ButtonToggle.d.ts +2 -0
- package/dist/components/ButtonToggleGroup/components/ButtonToggle/ButtonToggle.js +90 -0
- package/dist/components/ButtonToggleGroup/components/ButtonToggle/ButtonToggle.module.css.js +32 -0
- package/dist/components/ButtonToggleGroup/components/ButtonToggle/index.d.ts +2 -0
- package/dist/components/ButtonToggleGroup/components/ButtonToggle/types.d.ts +27 -0
- package/dist/components/ButtonToggleGroup/components/index.d.ts +1 -0
- package/dist/components/ButtonToggleGroup/index.d.ts +3 -0
- package/dist/components/ButtonToggleGroup/reducer.d.ts +23 -0
- package/dist/components/ButtonToggleGroup/reducer.js +25 -0
- package/dist/components/ButtonToggleGroup/types.d.ts +38 -0
- package/dist/components/ButtonToggleGroup/utils.d.ts +3 -0
- package/dist/components/ButtonToggleGroup/utils.js +19 -0
- package/dist/components/Checkbox/Checkbox.js +18 -8
- package/dist/components/Collections/Divider.d.ts +19 -0
- package/dist/components/Collections/Divider.js +14 -0
- package/dist/components/Collections/Header.d.ts +20 -0
- package/dist/components/Collections/Header.js +16 -0
- package/dist/components/Collections/Item.d.ts +14 -0
- package/dist/components/Collections/Item.js +10 -0
- package/dist/components/{List/ListSection.d.ts → Collections/Section.d.ts} +6 -6
- package/dist/components/Collections/Section.js +10 -0
- package/dist/components/Collections/index.d.ts +4 -0
- package/dist/components/Container/Container.js +2 -1
- package/dist/components/Container/utils.d.ts +1 -1
- package/dist/components/Dialog/Dialog.d.ts +9 -1
- package/dist/components/Dialog/Dialog.js +31 -17
- package/dist/components/Dialog/components/DialogBody.d.ts +13 -0
- package/dist/components/Dialog/components/{DialogContent.js → DialogBody.js} +9 -8
- package/dist/components/Dialog/components/DialogCloseButton.d.ts +14 -1
- package/dist/components/Dialog/components/DialogCloseButton.js +3 -6
- package/dist/components/Dialog/components/index.d.ts +1 -1
- package/dist/components/Dialog/index.d.ts +0 -1
- package/dist/components/Dialog/intl.json.js +2 -6
- package/dist/components/Divider/Divider.d.ts +4 -0
- package/dist/components/Divider/Divider.js +44 -0
- package/dist/components/Divider/Divider.module.css.js +29 -0
- package/dist/components/Divider/index.d.ts +2 -0
- package/dist/components/Divider/types.d.ts +26 -0
- package/dist/components/Divider/types.js +6 -0
- package/dist/components/FieldComponents/FieldControl/FieldControl.d.ts +1 -1
- package/dist/components/FieldComponents/FieldInputGroup/FieldInputGroup.d.ts +8 -2
- package/dist/components/FieldComponents/FieldInputGroup/FieldInputGroup.js +32 -30
- package/dist/components/FieldComponents/FieldNumberControl/FieldNumberControl.d.ts +1 -1
- package/dist/components/FieldComponents/FieldSelect/FieldSelect.d.ts +12 -0
- package/dist/components/FieldComponents/FieldSelect/FieldSelect.js +37 -0
- package/dist/components/FieldComponents/FieldSelect/FieldSelect.module.css.js +20 -0
- package/dist/components/FieldComponents/FieldSelect/index.d.ts +1 -0
- package/dist/components/FieldComponents/index.d.ts +1 -0
- package/dist/components/FlexBox/FlexBox.d.ts +4 -0
- package/dist/components/FlexBox/FlexBox.js +47 -0
- package/dist/components/FlexBox/index.d.ts +2 -0
- package/dist/components/FlexBox/types.d.ts +27 -0
- package/dist/components/Grid/Grid.d.ts +8 -2
- package/dist/components/Grid/Grid.js +5 -2
- package/dist/components/IconButton/types.d.ts +5 -4
- package/dist/components/Input/Input.d.ts +1 -0
- package/dist/components/Input/Input.js +11 -11
- package/dist/components/Input/types.d.ts +2 -1
- package/dist/components/Link/Link.js +13 -15
- package/dist/components/Link/types.d.ts +4 -4
- package/dist/components/List/List.d.ts +17 -3
- package/dist/components/List/List.js +32 -18
- package/dist/components/List/List.module.css.js +0 -3
- package/dist/components/List/components/ListItemText/ListItemText.js +26 -0
- package/dist/components/List/components/ListItemText/ListItemText.module.css.js +11 -0
- package/dist/components/List/components/ListOption/ListOption.d.ts +3 -2
- package/dist/components/List/components/ListOption/ListOption.js +11 -16
- package/dist/components/List/components/ListSection/ListSection.d.ts +3 -2
- package/dist/components/List/components/ListSection/ListSection.js +1 -4
- package/dist/components/List/index.d.ts +2 -2
- package/dist/components/List/types.d.ts +13 -2
- package/dist/components/Menu/Menu.d.ts +15 -0
- package/dist/components/Menu/Menu.js +68 -0
- package/dist/components/Menu/Menu.module.css.js +8 -0
- package/dist/components/Menu/components/MenuHeader/MenuHeader.d.ts +5 -0
- package/dist/components/Menu/components/MenuHeader/MenuHeader.js +9 -0
- package/dist/components/Menu/components/MenuHeader/index.d.ts +1 -0
- package/dist/components/Menu/components/MenuInner/MenuInner.d.ts +3 -0
- package/dist/components/Menu/components/MenuInner/MenuInner.js +45 -0
- package/dist/components/Menu/components/MenuInner/MenuInner.module.css.js +11 -0
- package/dist/components/Menu/components/MenuInner/index.d.ts +1 -0
- package/dist/components/Menu/components/MenuItem/MenuItem.d.ts +6 -0
- package/dist/components/Menu/components/MenuItem/MenuItem.js +36 -0
- package/dist/components/Menu/components/MenuItem/index.d.ts +1 -0
- package/dist/components/Menu/components/MenuSection/MenuSection.d.ts +6 -0
- package/dist/components/Menu/components/MenuSection/MenuSection.js +30 -0
- package/dist/components/Menu/components/MenuSection/MenuSection.module.css.js +11 -0
- package/dist/components/Menu/components/MenuSection/index.d.ts +1 -0
- package/dist/components/Menu/components/index.d.ts +1 -0
- package/dist/components/Menu/index.d.ts +2 -0
- package/dist/components/Menu/types.d.ts +62 -0
- package/dist/components/Menu/types.js +4 -0
- package/dist/components/Modal/Modal.d.ts +9 -1
- package/dist/components/Modal/Modal.js +21 -16
- package/dist/components/Modal/index.d.ts +15 -2
- package/dist/components/Modal/index.js +9 -0
- package/dist/components/Modal/types.d.ts +7 -0
- package/dist/components/Popover/Popover.d.ts +12 -2
- package/dist/components/Popover/Popover.js +143 -128
- package/dist/components/Popover/Popover.module.css.js +3 -0
- package/dist/components/Popover/index.d.ts +15 -2
- package/dist/components/Popover/index.js +9 -0
- package/dist/components/Popover/types.d.ts +28 -4
- package/dist/components/Popover/types.js +9 -1
- package/dist/components/ProgressBar/ProgressBar.module.css.js +1 -2
- package/dist/components/ProgressSpinner/ProgressSpinner.module.css.js +1 -2
- package/dist/components/Provider/BreakpointsProvider.d.ts +2 -1
- package/dist/components/Provider/BreakpointsProvider.js +8 -1
- package/dist/components/Provider/Provider.d.ts +1 -1
- package/dist/components/Provider/Provider.js +9 -1
- package/dist/components/Provider/types.d.ts +5 -0
- package/dist/components/Provider/utils/useBreakpoints.d.ts +2 -1
- package/dist/components/Provider/utils/useBreakpoints.js +2 -2
- package/dist/components/RadioGroup/RadioContext.js +1 -0
- package/dist/components/RadioGroup/RadioGroup.js +2 -1
- package/dist/components/RadioGroup/components/Radio/Radio.js +3 -2
- package/dist/components/RadioGroup/components/Radio/Radio.module.css.js +3 -0
- package/dist/components/Select/Select.d.ts +11 -0
- package/dist/components/Select/Select.js +179 -0
- package/dist/components/Select/Select.module.css.js +20 -0
- package/dist/components/Select/index.d.ts +2 -0
- package/dist/components/Select/types.d.ts +87 -0
- package/dist/components/SidePanel/SidePanel.d.ts +9 -1
- package/dist/components/SidePanel/SidePanel.js +24 -19
- package/dist/components/SidePanel/index.d.ts +15 -2
- package/dist/components/SidePanel/index.js +9 -0
- package/dist/components/SidePanel/types.d.ts +7 -0
- package/dist/components/SkeletonBlock/SkeletonBlock.module.css.js +0 -1
- package/dist/components/SkeletonTypography/utils.js +3 -0
- package/dist/components/TagGroup/Tag.d.ts +24 -0
- package/dist/components/TagGroup/Tag.js +10 -0
- package/dist/components/TagGroup/TagGroup.d.ts +2 -0
- package/dist/components/TagGroup/TagGroup.js +22 -0
- package/dist/components/TagGroup/TagGroup.module.css.js +8 -0
- package/dist/components/TagGroup/components/TagInner/TagInner.d.ts +11 -0
- package/dist/components/TagGroup/components/TagInner/TagInner.js +86 -0
- package/dist/components/TagGroup/components/TagInner/TagInner.module.css.js +30 -0
- package/dist/components/TagGroup/components/TagInner/index.d.ts +1 -0
- package/dist/components/TagGroup/components/TagInner/utils.d.ts +3 -0
- package/dist/components/TagGroup/components/TagInner/utils.js +9 -0
- package/dist/components/TagGroup/components/index.d.ts +1 -0
- package/dist/components/TagGroup/index.d.ts +3 -0
- package/dist/components/TagGroup/intl.json.js +7 -0
- package/dist/components/TagGroup/types.d.ts +37 -0
- package/dist/components/TagGroup/types.js +9 -0
- package/dist/components/Toggle/Toggle.js +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts +2 -1
- package/dist/components/Tooltip/Tooltip.js +9 -8
- package/dist/components/Tooltip/types.d.ts +9 -4
- package/dist/components/Typography/Typography.js +2 -2
- package/dist/components/Typography/Typography.module.css.js +2 -1
- package/dist/components/Typography/types.d.ts +7 -2
- package/dist/components/Typography/types.js +2 -1
- package/dist/components/index.d.ts +8 -0
- package/dist/components/layout/flex/flex.d.ts +15 -4
- package/dist/components/layout/flex/flex.js +6 -1
- package/dist/components/layout/flex/flex.module.css.js +78 -39
- package/dist/index.js +51 -23
- package/dist/style.css +862 -350
- package/dist/styles/utility.d.ts +2 -0
- package/dist/styles/utility.js +3 -2
- package/dist/styles/utility.module.css.js +5 -2
- package/dist/types.d.ts +1 -0
- package/package.json +11 -6
- package/dist/components/Dialog/DialogContext.d.ts +0 -9
- package/dist/components/Dialog/DialogContext.js +0 -12
- package/dist/components/Dialog/components/DialogContent.d.ts +0 -12
- package/dist/components/Input/components/FieldAddon/FieldAddon.d.ts +0 -10
- package/dist/components/Input/components/FieldAddon/index.d.ts +0 -1
- package/dist/components/Input/components/FieldCaption/FieldCaption.d.ts +0 -6
- package/dist/components/Input/components/FieldCaption/index.d.ts +0 -1
- package/dist/components/Input/components/FieldControl/FieldControl.d.ts +0 -9
- package/dist/components/Input/components/FieldControl/index.d.ts +0 -1
- package/dist/components/Input/components/FieldError/FieldError.d.ts +0 -7
- package/dist/components/Input/components/FieldError/index.d.ts +0 -1
- package/dist/components/Input/components/FieldInput/FieldInput.d.ts +0 -9
- package/dist/components/Input/components/FieldInput/index.d.ts +0 -1
- package/dist/components/Input/components/FieldInputGroup/FieldInputGroup.d.ts +0 -7
- package/dist/components/Input/components/FieldInputGroup/index.d.ts +0 -1
- package/dist/components/Input/components/FieldLabel/FieldLabel.d.ts +0 -9
- package/dist/components/Input/components/FieldLabel/index.d.ts +0 -1
- package/dist/components/Input/components/index.d.ts +0 -7
- package/dist/components/List/ListItem.d.ts +0 -11
- package/dist/components/List/ListItem.js +0 -11
- package/dist/components/List/ListSection.js +0 -11
- 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 {
|
|
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 }) =>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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,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
|
+
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
|
-
import type { SectionProps } from '@koobiq/react-primitives';
|
|
3
|
-
export type
|
|
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:
|
|
9
|
+
children: AriaSectionProps<T>['children'];
|
|
10
10
|
/** Item objects in the section. */
|
|
11
|
-
items?:
|
|
11
|
+
items?: AriaSectionProps<T>['items'];
|
|
12
12
|
};
|
|
13
|
-
export declare function
|
|
14
|
-
export declare namespace
|
|
13
|
+
export declare function Section<T>(_props: SectionProps<T>): null;
|
|
14
|
+
export declare namespace Section {
|
|
15
15
|
var getCollectionNode: unknown;
|
|
16
16
|
}
|
|
@@ -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
|
|
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) => "
|
|
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
|
-
|
|
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,
|
|
4
|
-
import { useBoolean, useDOMRef, mergeProps, clsx, useElementSize, useEventListener
|
|
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 {
|
|
8
|
+
import { DialogBodyContext, DialogBody } from "./components/DialogBody.js";
|
|
9
9
|
import { DialogCloseButton } from "./components/DialogCloseButton.js";
|
|
10
|
-
|
|
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:
|
|
39
|
+
const { ref: bodyRef, height } = useElementSize();
|
|
39
40
|
useEffect(() => {
|
|
40
|
-
if (
|
|
41
|
-
}, [
|
|
41
|
+
if (bodyRef.current) updateOverflow(bodyRef.current);
|
|
42
|
+
}, [bodyRef.current, height]);
|
|
42
43
|
useEventListener({
|
|
43
|
-
element:
|
|
44
|
+
element: bodyRef,
|
|
44
45
|
eventName: "scroll",
|
|
45
46
|
handler: () => {
|
|
46
|
-
updateOverflow(
|
|
47
|
+
updateOverflow(bodyRef.current);
|
|
47
48
|
}
|
|
48
49
|
});
|
|
49
50
|
return /* @__PURE__ */ jsx(
|
|
50
|
-
|
|
51
|
+
Provider,
|
|
51
52
|
{
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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
|
-
|
|
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 {
|
|
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
|
-
|
|
8
|
-
const
|
|
7
|
+
const DialogBodyContext = createContext({});
|
|
8
|
+
const DialogBody = forwardRef(
|
|
9
9
|
({ children, className, ...other }, ref) => {
|
|
10
|
-
const
|
|
11
|
-
const {
|
|
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
|
-
|
|
27
|
+
DialogBody.displayName = "DialogBody";
|
|
28
28
|
export {
|
|
29
|
-
|
|
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" |
|
|
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((
|
|
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
|
-
...
|
|
19
|
+
...props,
|
|
23
20
|
ref
|
|
24
21
|
}
|
|
25
22
|
) });
|
|
@@ -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,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
|
+
};
|
|
@@ -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("
|
|
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
|
-
|
|
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<
|
|
17
|
+
export declare const FieldInputGroup: import("react").ForwardRefExoticComponent<Omit<FieldInputGroupProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|