@koobiq/react-components 0.0.1-beta.16 → 0.0.1-beta.18
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/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/index.d.ts +2 -0
- package/dist/components/Dialog/components/DialogCloseButton.d.ts +2 -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/MenuInner/MenuInner.d.ts +3 -0
- package/dist/components/Menu/components/MenuInner/MenuInner.js +44 -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/index.d.ts +1 -0
- package/dist/index.js +4 -0
- package/dist/style.css +31 -4
- package/package.json +5 -5
|
@@ -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
|
+
};
|
|
@@ -15,8 +15,8 @@ export declare const DialogCloseButton: import("react").ForwardRefExoticComponen
|
|
|
15
15
|
startIcon?: import("react").ReactNode;
|
|
16
16
|
endIcon?: import("react").ReactNode;
|
|
17
17
|
'data-testid'?: string | number;
|
|
18
|
-
onHoverStart?: (e: import("@
|
|
19
|
-
onHoverEnd?: (e: import("@
|
|
18
|
+
onHoverStart?: (e: import("@react-types/shared").HoverEvent) => void;
|
|
19
|
+
onHoverEnd?: (e: import("@react-types/shared").HoverEvent) => void;
|
|
20
20
|
} & {
|
|
21
21
|
as?: "button" | undefined;
|
|
22
22
|
}, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Pressable } from '@koobiq/react-core';
|
|
2
|
+
import { Divider, Item, Section, Header } from '../Collections';
|
|
3
|
+
import { ListItemText } from '../List';
|
|
4
|
+
import type { MenuComponentProps } from './index';
|
|
5
|
+
declare const MenuComponent: MenuComponentProps;
|
|
6
|
+
type CompoundedComponent = typeof MenuComponent & {
|
|
7
|
+
Item: typeof Item;
|
|
8
|
+
Header: typeof Header;
|
|
9
|
+
Section: typeof Section;
|
|
10
|
+
Divider: typeof Divider;
|
|
11
|
+
ItemText: typeof ListItemText;
|
|
12
|
+
Control: typeof Pressable;
|
|
13
|
+
};
|
|
14
|
+
export declare const Menu: CompoundedComponent;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs, Fragment, jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef, useRef } from "react";
|
|
4
|
+
import { useDOMRef, mergeProps, clsx, Pressable } from "@koobiq/react-core";
|
|
5
|
+
import { useMenuTriggerState, useMenuTrigger } from "@koobiq/react-primitives";
|
|
6
|
+
import s from "./Menu.module.css.js";
|
|
7
|
+
import { MenuInner } from "./components/MenuInner/MenuInner.js";
|
|
8
|
+
import { Header } from "../Collections/Header.js";
|
|
9
|
+
import { Divider } from "../Collections/Divider.js";
|
|
10
|
+
import { PopoverInner } from "../Popover/Popover.js";
|
|
11
|
+
import { Item } from "../Collections/Item.js";
|
|
12
|
+
import { Section } from "../Collections/Section.js";
|
|
13
|
+
import { ListItemText } from "../List/components/ListItemText/ListItemText.js";
|
|
14
|
+
function MenuRender(props, ref) {
|
|
15
|
+
const {
|
|
16
|
+
placement = "bottom start",
|
|
17
|
+
"data-testid": testId,
|
|
18
|
+
control,
|
|
19
|
+
style,
|
|
20
|
+
open,
|
|
21
|
+
anchorRef,
|
|
22
|
+
className,
|
|
23
|
+
slotProps,
|
|
24
|
+
...otherProps
|
|
25
|
+
} = props;
|
|
26
|
+
const state = useMenuTriggerState({ ...props, isOpen: open });
|
|
27
|
+
const domRef = useDOMRef(ref);
|
|
28
|
+
const controlRef = useRef(null);
|
|
29
|
+
const { menuTriggerProps, menuProps } = useMenuTrigger(
|
|
30
|
+
{},
|
|
31
|
+
state,
|
|
32
|
+
controlRef
|
|
33
|
+
);
|
|
34
|
+
const { isDisabled, ...otherMenuTriggerProps } = menuTriggerProps;
|
|
35
|
+
const popoverProps = mergeProps(
|
|
36
|
+
{
|
|
37
|
+
style,
|
|
38
|
+
state,
|
|
39
|
+
offset: 4,
|
|
40
|
+
size: "auto",
|
|
41
|
+
hideArrow: true,
|
|
42
|
+
popoverRef: domRef,
|
|
43
|
+
"data-testid": testId,
|
|
44
|
+
anchorRef: anchorRef || controlRef,
|
|
45
|
+
className: clsx(s.popover, className)
|
|
46
|
+
},
|
|
47
|
+
slotProps?.popover
|
|
48
|
+
);
|
|
49
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
50
|
+
control?.({
|
|
51
|
+
ref: controlRef,
|
|
52
|
+
disabled: isDisabled,
|
|
53
|
+
...otherMenuTriggerProps
|
|
54
|
+
}),
|
|
55
|
+
/* @__PURE__ */ jsx(PopoverInner, { type: "menu", placement, ...popoverProps, children: /* @__PURE__ */ jsx(MenuInner, { ...otherProps, ...menuProps }) })
|
|
56
|
+
] });
|
|
57
|
+
}
|
|
58
|
+
const MenuComponent = forwardRef(MenuRender);
|
|
59
|
+
const Menu = MenuComponent;
|
|
60
|
+
Menu.Item = Item;
|
|
61
|
+
Menu.Section = Section;
|
|
62
|
+
Menu.Header = Header;
|
|
63
|
+
Menu.Divider = Divider;
|
|
64
|
+
Menu.ItemText = ListItemText;
|
|
65
|
+
Menu.Control = Pressable;
|
|
66
|
+
export {
|
|
67
|
+
Menu
|
|
68
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { useRef } from "react";
|
|
4
|
+
import { clsx } from "@koobiq/react-core";
|
|
5
|
+
import { useTreeState, useMenu } from "@koobiq/react-primitives";
|
|
6
|
+
import { utilClasses } from "../../../../styles/utility.js";
|
|
7
|
+
import s from "./MenuInner.module.css.js";
|
|
8
|
+
import { MenuSection } from "../MenuSection/MenuSection.js";
|
|
9
|
+
import { Divider } from "../../../Divider/Divider.js";
|
|
10
|
+
import { MenuItem } from "../MenuItem/MenuItem.js";
|
|
11
|
+
const { list } = utilClasses;
|
|
12
|
+
function MenuInner(props) {
|
|
13
|
+
const state = useTreeState(props);
|
|
14
|
+
const ref = useRef(null);
|
|
15
|
+
const { menuProps } = useMenu(props, state, ref);
|
|
16
|
+
const multiple = props.selectionMode === "multiple";
|
|
17
|
+
const renderItems = (treeState) => [...treeState.collection].map((item) => {
|
|
18
|
+
switch (item.type) {
|
|
19
|
+
case "header":
|
|
20
|
+
return /* @__PURE__ */ jsx("header", { role: "presentation", children: item.rendered }, item.key);
|
|
21
|
+
case "divider":
|
|
22
|
+
return /* @__PURE__ */ jsx(Divider, { className: s.divider }, item.key);
|
|
23
|
+
case "item":
|
|
24
|
+
return /* @__PURE__ */ jsx(MenuItem, { item, state }, item.key);
|
|
25
|
+
case "section":
|
|
26
|
+
return /* @__PURE__ */ jsx(MenuSection, { section: item, state }, item.key);
|
|
27
|
+
default:
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
return /* @__PURE__ */ jsx(
|
|
32
|
+
"ul",
|
|
33
|
+
{
|
|
34
|
+
...menuProps,
|
|
35
|
+
className: clsx(s.base, list),
|
|
36
|
+
...multiple && { "aria-multiselectable": true },
|
|
37
|
+
ref,
|
|
38
|
+
children: renderItems(state)
|
|
39
|
+
}
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
export {
|
|
43
|
+
MenuInner
|
|
44
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './MenuInner';
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { useRef } from "react";
|
|
4
|
+
import { useHover, usePress, clsx, mergeProps } from "@koobiq/react-core";
|
|
5
|
+
import { useMenuItem } from "@koobiq/react-primitives";
|
|
6
|
+
import { utilClasses } from "../../../../styles/utility.js";
|
|
7
|
+
const { listItem } = utilClasses;
|
|
8
|
+
const textVariant = utilClasses.typography;
|
|
9
|
+
function MenuItem({ item, state }) {
|
|
10
|
+
const ref = useRef(null);
|
|
11
|
+
const {
|
|
12
|
+
menuItemProps,
|
|
13
|
+
isSelected: selected,
|
|
14
|
+
isDisabled: disabled,
|
|
15
|
+
isFocusVisible: focusVisible
|
|
16
|
+
} = useMenuItem({ key: item.key }, state, ref);
|
|
17
|
+
const { hoverProps, isHovered: hovered } = useHover({ isDisabled: disabled });
|
|
18
|
+
const { isPressed: pressed, pressProps } = usePress({ isDisabled: disabled });
|
|
19
|
+
const Tag = item.props.href ? "a" : "li";
|
|
20
|
+
return /* @__PURE__ */ jsx(
|
|
21
|
+
Tag,
|
|
22
|
+
{
|
|
23
|
+
...mergeProps(menuItemProps, hoverProps, pressProps),
|
|
24
|
+
"data-hovered": hovered,
|
|
25
|
+
"data-pressed": pressed,
|
|
26
|
+
"data-selected": selected,
|
|
27
|
+
"data-focus-visible": focusVisible,
|
|
28
|
+
className: clsx(listItem, textVariant["text-normal"]),
|
|
29
|
+
ref,
|
|
30
|
+
children: item.rendered
|
|
31
|
+
}
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
export {
|
|
35
|
+
MenuItem
|
|
36
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './MenuItem';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Node, TreeState } from '@koobiq/react-primitives';
|
|
2
|
+
export type MenuSectionProps<T> = {
|
|
3
|
+
section: Node<T>;
|
|
4
|
+
state: TreeState<T>;
|
|
5
|
+
};
|
|
6
|
+
export declare function MenuSection<T>({ section, state }: MenuSectionProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, Fragment, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useMenuSection } from "@koobiq/react-primitives";
|
|
4
|
+
import s from "./MenuSection.module.css.js";
|
|
5
|
+
import { MenuItem } from "../MenuItem/MenuItem.js";
|
|
6
|
+
import { Typography } from "../../../Typography/Typography.js";
|
|
7
|
+
function MenuSection({ section, state }) {
|
|
8
|
+
const { itemProps, headingProps, groupProps } = useMenuSection({
|
|
9
|
+
heading: section.rendered,
|
|
10
|
+
"aria-label": section["aria-label"]
|
|
11
|
+
});
|
|
12
|
+
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs("li", { ...itemProps, children: [
|
|
13
|
+
section.rendered && /* @__PURE__ */ jsx(
|
|
14
|
+
Typography,
|
|
15
|
+
{
|
|
16
|
+
as: "span",
|
|
17
|
+
display: "block",
|
|
18
|
+
variant: "caps-compact-strong",
|
|
19
|
+
color: "contrast-secondary",
|
|
20
|
+
className: s.heading,
|
|
21
|
+
...headingProps,
|
|
22
|
+
children: section.rendered
|
|
23
|
+
}
|
|
24
|
+
),
|
|
25
|
+
/* @__PURE__ */ jsx("ul", { ...groupProps, className: s.base, children: [...section.childNodes].map((node) => /* @__PURE__ */ jsx(MenuItem, { item: node, state }, node.key)) })
|
|
26
|
+
] }) });
|
|
27
|
+
}
|
|
28
|
+
export {
|
|
29
|
+
MenuSection
|
|
30
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './MenuSection';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './MenuInner';
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { ComponentRef, CSSProperties, ReactElement, Ref, RefObject } from 'react';
|
|
2
|
+
import type { ButtonOptions, AriaMenuProps } from '@koobiq/react-primitives';
|
|
3
|
+
import type { PopoverInnerProps, PopoverPropPlacement } from '../Popover';
|
|
4
|
+
export type MenuPropControl = (props: ButtonOptions & {
|
|
5
|
+
ref?: Ref<HTMLButtonElement>;
|
|
6
|
+
}) => ReactElement;
|
|
7
|
+
export type MenuPropChildren<T extends object> = AriaMenuProps<T>['children'];
|
|
8
|
+
export type MenuPropItems<T extends object> = AriaMenuProps<T>['items'];
|
|
9
|
+
export declare const menuPropSelectionMode: readonly ["none", "single", "multiple"];
|
|
10
|
+
export type MenuPropSelectionMode = (typeof menuPropSelectionMode)[number];
|
|
11
|
+
export type MenuPropOnAction<T extends object> = AriaMenuProps<T>['onAction'];
|
|
12
|
+
export type MenuPropSelected<T extends object> = AriaMenuProps<T>['selectedKeys'];
|
|
13
|
+
export type MenuPropSelectionChange<T extends object> = AriaMenuProps<T>['onSelectionChange'];
|
|
14
|
+
export type MenuPropDisabledKeys<T extends object> = AriaMenuProps<T>['disabledKeys'];
|
|
15
|
+
export type MenuPropPlacement = PopoverPropPlacement;
|
|
16
|
+
export type MenuProps<T extends object> = {
|
|
17
|
+
/** Additional CSS-classes. */
|
|
18
|
+
className?: string;
|
|
19
|
+
/** Unique identifier for testing purposes. */
|
|
20
|
+
'data-testid'?: string | number;
|
|
21
|
+
/** Inline styles. */
|
|
22
|
+
style?: CSSProperties;
|
|
23
|
+
/** The contents of the collection. */
|
|
24
|
+
children?: MenuPropChildren<T>;
|
|
25
|
+
/** The render function of the control for displaying the modal window. */
|
|
26
|
+
control?: MenuPropControl;
|
|
27
|
+
/** Whether the overlay is open by default (controlled). */
|
|
28
|
+
open?: boolean;
|
|
29
|
+
/** Whether the overlay is open by default (uncontrolled). */
|
|
30
|
+
defaultOpen?: boolean;
|
|
31
|
+
/** Handler that is called when the overlay's open state changes. */
|
|
32
|
+
onOpenChange?: (isOpen: boolean) => void;
|
|
33
|
+
/** Item objects in the collection. */
|
|
34
|
+
items?: MenuPropItems<T>;
|
|
35
|
+
/** The type of selection that is allowed in the collection. */
|
|
36
|
+
selectionMode?: MenuPropSelectionMode;
|
|
37
|
+
/**
|
|
38
|
+
* Handler that is called when a user performs an action on an item. The exact user event depends on
|
|
39
|
+
* the collection's `selectionBehavior` prop and the interaction modality.
|
|
40
|
+
*/
|
|
41
|
+
onAction?: MenuPropOnAction<T>;
|
|
42
|
+
/** The currently selected keys in the collection (controlled). */
|
|
43
|
+
selectedKeys?: MenuPropSelected<T>;
|
|
44
|
+
/** Handler that is called when the selection changes. */
|
|
45
|
+
onSelectionChange?: MenuPropSelectionChange<T>;
|
|
46
|
+
disabledKeys?: MenuPropDisabledKeys<T>;
|
|
47
|
+
/** The ref for the element which the popover positions itself with respect to. */
|
|
48
|
+
anchorRef?: RefObject<HTMLElement | null>;
|
|
49
|
+
/**
|
|
50
|
+
* The placement of the element with respect to its anchor element.
|
|
51
|
+
* @default bottom start
|
|
52
|
+
* */
|
|
53
|
+
placement?: MenuPropPlacement;
|
|
54
|
+
/** Ref to the popover */
|
|
55
|
+
ref?: Ref<HTMLDivElement>;
|
|
56
|
+
/** The props used for each slot inside. */
|
|
57
|
+
slotProps?: {
|
|
58
|
+
popover?: PopoverInnerProps;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
export type MenuComponentProps = <T extends object>(props: MenuProps<T>) => ReactElement | null;
|
|
62
|
+
export type MenuRef = ComponentRef<'div'>;
|
package/dist/index.js
CHANGED
|
@@ -63,6 +63,8 @@ import { AnimatedIcon } from "./components/AnimatedIcon/AnimatedIcon.js";
|
|
|
63
63
|
import { Select } from "./components/Select/Select.js";
|
|
64
64
|
import { Divider } from "./components/Divider/Divider.js";
|
|
65
65
|
import { dividerPropDisplay, dividerPropOrientation } from "./components/Divider/types.js";
|
|
66
|
+
import { Menu } from "./components/Menu/Menu.js";
|
|
67
|
+
import { menuPropSelectionMode } from "./components/Menu/types.js";
|
|
66
68
|
import { flex, flexPropAlignItems, flexPropDirection, flexPropFlex, flexPropGap, flexPropJustifyContent, flexPropOrder, flexPropWrap } from "./components/layout/flex/flex.js";
|
|
67
69
|
import { spacing, spacingGap } from "./components/layout/spacing/spacing.js";
|
|
68
70
|
export {
|
|
@@ -87,6 +89,7 @@ export {
|
|
|
87
89
|
Item as ListItem,
|
|
88
90
|
ListItemText,
|
|
89
91
|
Section as ListSection,
|
|
92
|
+
Menu,
|
|
90
93
|
Modal,
|
|
91
94
|
ModalContent,
|
|
92
95
|
ModalFooter,
|
|
@@ -141,6 +144,7 @@ export {
|
|
|
141
144
|
inputNumberPropVariant,
|
|
142
145
|
inputPropVariant,
|
|
143
146
|
listPropSelectionMode,
|
|
147
|
+
menuPropSelectionMode,
|
|
144
148
|
modalPropSize,
|
|
145
149
|
popoverPropPlacement,
|
|
146
150
|
popoverPropSize,
|
package/dist/style.css
CHANGED
|
@@ -1450,16 +1450,13 @@
|
|
|
1450
1450
|
background-color: var(--checkbox-bg-color);
|
|
1451
1451
|
outline-offset: calc(-1 * var(--checkbox-outline-width) / 2);
|
|
1452
1452
|
outline: var(--checkbox-outline-width) solid var(--checkbox-outline-color);
|
|
1453
|
+
flex-shrink: 0;
|
|
1453
1454
|
justify-content: center;
|
|
1454
1455
|
align-items: center;
|
|
1455
1456
|
display: flex;
|
|
1456
1457
|
position: relative;
|
|
1457
1458
|
}
|
|
1458
1459
|
|
|
1459
|
-
.kbq-checkbox-checkbox-dbb3d9 > * {
|
|
1460
|
-
flex-shrink: 0;
|
|
1461
|
-
}
|
|
1462
|
-
|
|
1463
1460
|
.kbq-checkbox-normal-646719 {
|
|
1464
1461
|
--checkbox-size: var(--kbq-size-l);
|
|
1465
1462
|
--checkbox-margin-block: var(--kbq-size-3xs);
|
|
@@ -2204,6 +2201,7 @@
|
|
|
2204
2201
|
transition: background-color var(--kbq-transition-default), border var(--kbq-transition-default), outline-color var(--kbq-transition-default);
|
|
2205
2202
|
outline-offset: calc(-1 * var(--radio-outline-width) / 2);
|
|
2206
2203
|
outline: var(--radio-outline-width) solid var(--radio-outline-color);
|
|
2204
|
+
flex-shrink: 0;
|
|
2207
2205
|
justify-content: center;
|
|
2208
2206
|
align-items: center;
|
|
2209
2207
|
display: flex;
|
|
@@ -2346,6 +2344,7 @@
|
|
|
2346
2344
|
border-radius: var(--toggle-track-border-radius);
|
|
2347
2345
|
outline: 2px solid var(--toggle-track-outline-color);
|
|
2348
2346
|
transition: background-color var(--kbq-transition-default), outline-color var(--kbq-transition-default);
|
|
2347
|
+
flex-shrink: 0;
|
|
2349
2348
|
position: relative;
|
|
2350
2349
|
}
|
|
2351
2350
|
|
|
@@ -2691,6 +2690,7 @@
|
|
|
2691
2690
|
min-block-size: 48px;
|
|
2692
2691
|
display: flex;
|
|
2693
2692
|
position: relative;
|
|
2693
|
+
overflow: hidden;
|
|
2694
2694
|
}
|
|
2695
2695
|
|
|
2696
2696
|
.kbq-dialog-container-a08202 {
|
|
@@ -3166,6 +3166,33 @@
|
|
|
3166
3166
|
align-self: stretch;
|
|
3167
3167
|
block-size: auto;
|
|
3168
3168
|
}
|
|
3169
|
+
.kbq-menu-popover-e1857c {
|
|
3170
|
+
border-radius: var(--kbq-size-s);
|
|
3171
|
+
min-inline-size: 200px;
|
|
3172
|
+
max-inline-size: 640px;
|
|
3173
|
+
}
|
|
3174
|
+
.kbq-menuinner-0117f8 {
|
|
3175
|
+
padding: var(--kbq-size-xxs);
|
|
3176
|
+
inline-size: 100%;
|
|
3177
|
+
}
|
|
3178
|
+
|
|
3179
|
+
.kbq-menuinner-divider-acbe04 {
|
|
3180
|
+
margin-inline: calc(var(--kbq-size-xxs) * -1);
|
|
3181
|
+
inline-size: initial;
|
|
3182
|
+
}
|
|
3183
|
+
.kbq-menusection-6a5530 {
|
|
3184
|
+
margin: 0;
|
|
3185
|
+
padding: 0;
|
|
3186
|
+
list-style: none;
|
|
3187
|
+
overflow: auto;
|
|
3188
|
+
}
|
|
3189
|
+
|
|
3190
|
+
.kbq-menusection-heading-2be1f1 {
|
|
3191
|
+
-webkit-user-select: none;
|
|
3192
|
+
user-select: none;
|
|
3193
|
+
box-sizing: border-box;
|
|
3194
|
+
padding: var(--kbq-size-s) var(--kbq-size-m);
|
|
3195
|
+
}
|
|
3169
3196
|
.kbq-spacing-mbs_0-be7021 {
|
|
3170
3197
|
margin-block-start: 0;
|
|
3171
3198
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@koobiq/react-components",
|
|
3
|
-
"version": "0.0.1-beta.
|
|
3
|
+
"version": "0.0.1-beta.18",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"exports": {
|
|
@@ -27,10 +27,10 @@
|
|
|
27
27
|
"@koobiq/design-tokens": "^3.12.1",
|
|
28
28
|
"@types/react-transition-group": "^4.4.12",
|
|
29
29
|
"react-transition-group": "^4.4.5",
|
|
30
|
-
"@koobiq/logger": "0.0.1-beta.
|
|
31
|
-
"@koobiq/react-
|
|
32
|
-
"@koobiq/react-core": "0.0.1-beta.
|
|
33
|
-
"@koobiq/react-
|
|
30
|
+
"@koobiq/logger": "0.0.1-beta.18",
|
|
31
|
+
"@koobiq/react-primitives": "0.0.1-beta.18",
|
|
32
|
+
"@koobiq/react-core": "0.0.1-beta.18",
|
|
33
|
+
"@koobiq/react-icons": "0.0.1-beta.18"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
36
|
"@koobiq/design-tokens": "^3.11.2",
|