@koobiq/react-components 0.23.0 → 0.24.0
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/Navbar/Navbar.d.ts +15 -0
- package/dist/components/Navbar/Navbar.js +80 -0
- package/dist/components/Navbar/Navbar.module.css.js +41 -0
- package/dist/components/Navbar/NavbarContext.d.ts +5 -0
- package/dist/components/Navbar/NavbarContext.js +8 -0
- package/dist/components/Navbar/components/NavbarAppItem.d.ts +7 -0
- package/dist/components/Navbar/components/NavbarAppItem.js +10 -0
- package/dist/components/Navbar/components/NavbarBody.d.ts +6 -0
- package/dist/components/Navbar/components/NavbarBody.js +15 -0
- package/dist/components/Navbar/components/NavbarFooter.d.ts +6 -0
- package/dist/components/Navbar/components/NavbarFooter.js +15 -0
- package/dist/components/Navbar/components/NavbarHeader.d.ts +6 -0
- package/dist/components/Navbar/components/NavbarHeader.js +15 -0
- package/dist/components/Navbar/components/NavbarItem.d.ts +25 -0
- package/dist/components/Navbar/components/NavbarItem.js +55 -0
- package/dist/components/Navbar/components/index.d.ts +5 -0
- package/dist/components/Navbar/index.d.ts +2 -0
- package/dist/components/Navbar/intl.json.js +7 -0
- package/dist/components/Navbar/types.d.ts +26 -0
- package/dist/components/Navbar/types.js +4 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/index.js +5 -0
- package/dist/style.css +156 -0
- package/package.json +5 -5
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { NavbarAppItem, NavbarBody, NavbarFooter, NavbarHeader, NavbarItem } from './components';
|
|
2
|
+
import type { NavbarProps } from './types';
|
|
3
|
+
export declare const NavbarComponent: {
|
|
4
|
+
({ variant, isCollapsed, isToggleButtonHidden, defaultCollapsed, className, children, onCollapse, ref, ...other }: NavbarProps): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
displayName: string;
|
|
6
|
+
};
|
|
7
|
+
type CompoundedComponent = typeof NavbarComponent & {
|
|
8
|
+
Header: typeof NavbarHeader;
|
|
9
|
+
Body: typeof NavbarBody;
|
|
10
|
+
Footer: typeof NavbarFooter;
|
|
11
|
+
Item: typeof NavbarItem;
|
|
12
|
+
AppItem: typeof NavbarAppItem;
|
|
13
|
+
};
|
|
14
|
+
export declare const Navbar: CompoundedComponent;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useObjectRef, useControlledState, useLocalizedStringFormatter, clsx, mergeProps } from "@koobiq/react-core";
|
|
4
|
+
import { IconChevronDoubleLeftS16 } from "@koobiq/react-icons";
|
|
5
|
+
import { useToolbar, Button } from "@koobiq/react-primitives";
|
|
6
|
+
import intlMessages from "./intl.json.js";
|
|
7
|
+
import s from "./Navbar.module.css.js";
|
|
8
|
+
import { NavbarContext } from "./NavbarContext.js";
|
|
9
|
+
import { NavbarHeader } from "./components/NavbarHeader.js";
|
|
10
|
+
import { NavbarBody } from "./components/NavbarBody.js";
|
|
11
|
+
import { NavbarFooter } from "./components/NavbarFooter.js";
|
|
12
|
+
import { NavbarItem } from "./components/NavbarItem.js";
|
|
13
|
+
import { NavbarAppItem } from "./components/NavbarAppItem.js";
|
|
14
|
+
import { Tooltip } from "../Tooltip/Tooltip.js";
|
|
15
|
+
const NavbarComponent = ({
|
|
16
|
+
variant = "vertical",
|
|
17
|
+
isCollapsed,
|
|
18
|
+
isToggleButtonHidden,
|
|
19
|
+
defaultCollapsed,
|
|
20
|
+
className,
|
|
21
|
+
children,
|
|
22
|
+
onCollapse,
|
|
23
|
+
ref,
|
|
24
|
+
...other
|
|
25
|
+
}) => {
|
|
26
|
+
const navbarRef = useObjectRef(ref);
|
|
27
|
+
const { toolbarProps } = useToolbar({ orientation: variant }, navbarRef);
|
|
28
|
+
const [isCollapsedActual, setIsCollapsedActual] = useControlledState(
|
|
29
|
+
isCollapsed,
|
|
30
|
+
defaultCollapsed ?? false,
|
|
31
|
+
onCollapse
|
|
32
|
+
);
|
|
33
|
+
const stringFormatter = useLocalizedStringFormatter(intlMessages);
|
|
34
|
+
return /* @__PURE__ */ jsx(NavbarContext, { value: { isCollapsed: isCollapsedActual }, children: /* @__PURE__ */ jsxs(
|
|
35
|
+
"nav",
|
|
36
|
+
{
|
|
37
|
+
...mergeProps(other, toolbarProps),
|
|
38
|
+
className: clsx(s.navbar, className),
|
|
39
|
+
role: "navigation",
|
|
40
|
+
ref: navbarRef,
|
|
41
|
+
"data-collapsed": isCollapsedActual,
|
|
42
|
+
children: [
|
|
43
|
+
children,
|
|
44
|
+
!isToggleButtonHidden && /* @__PURE__ */ jsx(
|
|
45
|
+
Tooltip,
|
|
46
|
+
{
|
|
47
|
+
offset: 8,
|
|
48
|
+
hideArrow: true,
|
|
49
|
+
placement: "end",
|
|
50
|
+
control: (tooltipProps) => /* @__PURE__ */ jsx(
|
|
51
|
+
Button,
|
|
52
|
+
{
|
|
53
|
+
...tooltipProps,
|
|
54
|
+
"aria-hidden": true,
|
|
55
|
+
tabIndex: -1,
|
|
56
|
+
className: s.toggleWrapper,
|
|
57
|
+
onPress: () => setIsCollapsedActual((is) => !is),
|
|
58
|
+
children: /* @__PURE__ */ jsx("span", { className: s.toggleButton, children: /* @__PURE__ */ jsx(IconChevronDoubleLeftS16, {}) })
|
|
59
|
+
}
|
|
60
|
+
),
|
|
61
|
+
children: stringFormatter.format(
|
|
62
|
+
isCollapsedActual ? "show navbar" : "hide navbar"
|
|
63
|
+
)
|
|
64
|
+
}
|
|
65
|
+
)
|
|
66
|
+
]
|
|
67
|
+
}
|
|
68
|
+
) });
|
|
69
|
+
};
|
|
70
|
+
NavbarComponent.displayName = "Navbar";
|
|
71
|
+
const Navbar = NavbarComponent;
|
|
72
|
+
Navbar.Header = NavbarHeader;
|
|
73
|
+
Navbar.Body = NavbarBody;
|
|
74
|
+
Navbar.Footer = NavbarFooter;
|
|
75
|
+
Navbar.Item = NavbarItem;
|
|
76
|
+
Navbar.AppItem = NavbarAppItem;
|
|
77
|
+
export {
|
|
78
|
+
Navbar,
|
|
79
|
+
NavbarComponent
|
|
80
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
const navbar = "kbq-navbar-navbar-9d3c75";
|
|
2
|
+
const list = "kbq-navbar-list-42b3cd";
|
|
3
|
+
const appItem = "kbq-navbar-appItem-08f75b";
|
|
4
|
+
const header = "kbq-navbar-header-ba57bd";
|
|
5
|
+
const item = "kbq-navbar-item-1b3022";
|
|
6
|
+
const itemIcon = "kbq-navbar-itemIcon-50a6ed";
|
|
7
|
+
const itemContent = "kbq-navbar-itemContent-ca07c9";
|
|
8
|
+
const itemBadge = "kbq-navbar-itemBadge-3ef4ba";
|
|
9
|
+
const itemMenuIcon = "kbq-navbar-itemMenuIcon-dc5e9e";
|
|
10
|
+
const footer = "kbq-navbar-footer-851065";
|
|
11
|
+
const toggleWrapper = "kbq-navbar-toggleWrapper-e7247f";
|
|
12
|
+
const toggleButton = "kbq-navbar-toggleButton-2ebeeb";
|
|
13
|
+
const s = {
|
|
14
|
+
navbar,
|
|
15
|
+
list,
|
|
16
|
+
appItem,
|
|
17
|
+
header,
|
|
18
|
+
item,
|
|
19
|
+
itemIcon,
|
|
20
|
+
itemContent,
|
|
21
|
+
itemBadge,
|
|
22
|
+
itemMenuIcon,
|
|
23
|
+
footer,
|
|
24
|
+
toggleWrapper,
|
|
25
|
+
toggleButton
|
|
26
|
+
};
|
|
27
|
+
export {
|
|
28
|
+
appItem,
|
|
29
|
+
s as default,
|
|
30
|
+
footer,
|
|
31
|
+
header,
|
|
32
|
+
item,
|
|
33
|
+
itemBadge,
|
|
34
|
+
itemContent,
|
|
35
|
+
itemIcon,
|
|
36
|
+
itemMenuIcon,
|
|
37
|
+
list,
|
|
38
|
+
navbar,
|
|
39
|
+
toggleButton,
|
|
40
|
+
toggleWrapper
|
|
41
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type DistributiveOmit } from '@koobiq/react-core';
|
|
2
|
+
import { type NavbarItemProps } from './NavbarItem';
|
|
3
|
+
export type NavbarAppItemProps = DistributiveOmit<NavbarItemProps, 'isMenu' | 'badge'>;
|
|
4
|
+
export declare const NavbarAppItem: {
|
|
5
|
+
({ className, ...props }: NavbarAppItemProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
displayName: string;
|
|
7
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { clsx } from "@koobiq/react-core";
|
|
4
|
+
import s from "../Navbar.module.css.js";
|
|
5
|
+
import { NavbarItem } from "./NavbarItem.js";
|
|
6
|
+
const NavbarAppItem = ({ className, ...props }) => /* @__PURE__ */ jsx(NavbarItem, { ...props, className: clsx(s.appItem, className) });
|
|
7
|
+
NavbarAppItem.displayName = "NavbarAppItem";
|
|
8
|
+
export {
|
|
9
|
+
NavbarAppItem
|
|
10
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ComponentPropsWithRef } from 'react';
|
|
2
|
+
export type NavbarBodyProps = ComponentPropsWithRef<'ul'>;
|
|
3
|
+
export declare const NavbarBody: {
|
|
4
|
+
({ children, className, ...props }: NavbarBodyProps): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
displayName: string;
|
|
6
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { clsx } from "@koobiq/react-core";
|
|
4
|
+
import { utilClasses } from "../../../styles/utility.js";
|
|
5
|
+
import s from "../Navbar.module.css.js";
|
|
6
|
+
const { list } = utilClasses;
|
|
7
|
+
const NavbarBody = ({
|
|
8
|
+
children,
|
|
9
|
+
className,
|
|
10
|
+
...props
|
|
11
|
+
}) => /* @__PURE__ */ jsx("ul", { "data-padded": "true", className: clsx(list, s.list, className), ...props, children });
|
|
12
|
+
NavbarBody.displayName = "NavbarBody";
|
|
13
|
+
export {
|
|
14
|
+
NavbarBody
|
|
15
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ComponentPropsWithRef } from 'react';
|
|
2
|
+
export type NavbarFooterProps = ComponentPropsWithRef<'footer'>;
|
|
3
|
+
export declare const NavbarFooter: {
|
|
4
|
+
({ children, className, ...props }: NavbarFooterProps): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
displayName: string;
|
|
6
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { clsx } from "@koobiq/react-core";
|
|
4
|
+
import { utilClasses } from "../../../styles/utility.js";
|
|
5
|
+
import s from "../Navbar.module.css.js";
|
|
6
|
+
const { list } = utilClasses;
|
|
7
|
+
const NavbarFooter = ({
|
|
8
|
+
children,
|
|
9
|
+
className,
|
|
10
|
+
...props
|
|
11
|
+
}) => /* @__PURE__ */ jsx("footer", { className: clsx(s.footer, className), ...props, children: /* @__PURE__ */ jsx("ul", { "data-padded": "true", className: clsx(list, s.list, className), children }) });
|
|
12
|
+
NavbarFooter.displayName = "NavbarFooter";
|
|
13
|
+
export {
|
|
14
|
+
NavbarFooter
|
|
15
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ComponentPropsWithRef } from 'react';
|
|
2
|
+
export type NavbarHeaderProps = ComponentPropsWithRef<'header'>;
|
|
3
|
+
export declare const NavbarHeader: {
|
|
4
|
+
({ className, children, ...props }: NavbarHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
displayName: string;
|
|
6
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { clsx } from "@koobiq/react-core";
|
|
4
|
+
import { utilClasses } from "../../../styles/utility.js";
|
|
5
|
+
import s from "../Navbar.module.css.js";
|
|
6
|
+
const { list } = utilClasses;
|
|
7
|
+
const NavbarHeader = ({
|
|
8
|
+
className,
|
|
9
|
+
children,
|
|
10
|
+
...props
|
|
11
|
+
}) => /* @__PURE__ */ jsx("header", { className: clsx(s.header, className), ...props, children: /* @__PURE__ */ jsx("ul", { "data-padded": "true", className: clsx(list, s.list, className), children }) });
|
|
12
|
+
NavbarHeader.displayName = "NavbarHeader";
|
|
13
|
+
export {
|
|
14
|
+
NavbarHeader
|
|
15
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { type LinkBaseProps } from '@koobiq/react-primitives';
|
|
3
|
+
export type NavbarItemProps = {
|
|
4
|
+
/**
|
|
5
|
+
* Whether the item is a menu trigger.
|
|
6
|
+
*/
|
|
7
|
+
isMenu?: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Additional CSS class name.
|
|
10
|
+
*/
|
|
11
|
+
className?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Icon to display before the item content.
|
|
14
|
+
*/
|
|
15
|
+
icon?: ReactNode;
|
|
16
|
+
/**
|
|
17
|
+
* Badge content to display.
|
|
18
|
+
*/
|
|
19
|
+
badge?: ReactNode;
|
|
20
|
+
/**
|
|
21
|
+
* Item content.
|
|
22
|
+
*/
|
|
23
|
+
children?: ReactNode;
|
|
24
|
+
} & LinkBaseProps;
|
|
25
|
+
export declare const NavbarItem: import("@koobiq/react-core").PolyForwardComponent<"a", NavbarItemProps, import("react").ElementType>;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { polymorphicForwardRef, mergeRefs, mergeProps, clsx } from "@koobiq/react-core";
|
|
4
|
+
import { IconChevronRight16 } from "@koobiq/react-icons";
|
|
5
|
+
import { Link } from "@koobiq/react-primitives";
|
|
6
|
+
import { utilClasses } from "../../../styles/utility.js";
|
|
7
|
+
import s from "../Navbar.module.css.js";
|
|
8
|
+
import { useNavbarState } from "../NavbarContext.js";
|
|
9
|
+
import { Tooltip } from "../../Tooltip/Tooltip.js";
|
|
10
|
+
const { listItem, typography } = utilClasses;
|
|
11
|
+
const NavbarItem = polymorphicForwardRef(
|
|
12
|
+
({ as, className, isMenu = false, icon, badge, children, ...other }, inRef) => {
|
|
13
|
+
const { isCollapsed } = useNavbarState();
|
|
14
|
+
return /* @__PURE__ */ jsx(
|
|
15
|
+
Tooltip,
|
|
16
|
+
{
|
|
17
|
+
offset: 8,
|
|
18
|
+
hideArrow: true,
|
|
19
|
+
placement: "end",
|
|
20
|
+
isDisabled: !isCollapsed,
|
|
21
|
+
control: (props) => /* @__PURE__ */ jsxs(
|
|
22
|
+
Link,
|
|
23
|
+
{
|
|
24
|
+
as: as || (isMenu || !other.href ? "button" : "a"),
|
|
25
|
+
className: clsx(
|
|
26
|
+
listItem,
|
|
27
|
+
typography["text-normal-medium"],
|
|
28
|
+
s.item,
|
|
29
|
+
className
|
|
30
|
+
),
|
|
31
|
+
...mergeProps(props, other),
|
|
32
|
+
ref: mergeRefs(props.ref, inRef),
|
|
33
|
+
children: [
|
|
34
|
+
icon && /* @__PURE__ */ jsx("span", { className: s.itemIcon, children: icon }),
|
|
35
|
+
!isCollapsed && /* @__PURE__ */ jsx("span", { className: s.itemContent, children }),
|
|
36
|
+
badge && /* @__PURE__ */ jsx(
|
|
37
|
+
"span",
|
|
38
|
+
{
|
|
39
|
+
className: clsx(typography["text-compact-medium"], s.itemBadge),
|
|
40
|
+
children: badge
|
|
41
|
+
}
|
|
42
|
+
),
|
|
43
|
+
!isCollapsed && isMenu && /* @__PURE__ */ jsx(IconChevronRight16, { className: s.itemMenuIcon })
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
),
|
|
47
|
+
children
|
|
48
|
+
}
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
);
|
|
52
|
+
NavbarItem.displayName = "NavbarItem";
|
|
53
|
+
export {
|
|
54
|
+
NavbarItem
|
|
55
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ComponentPropsWithRef } from 'react';
|
|
2
|
+
export declare const navbarPropVariant: readonly ["vertical", "horizontal"];
|
|
3
|
+
export type NavbarPropVariant = (typeof navbarPropVariant)[number];
|
|
4
|
+
export type NavbarProps = {
|
|
5
|
+
/**
|
|
6
|
+
* Whether the navbar is collapsed.
|
|
7
|
+
*/
|
|
8
|
+
isCollapsed?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Whether the toggle button is hidden.
|
|
11
|
+
*/
|
|
12
|
+
isToggleButtonHidden?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Default collapsed state when uncontrolled.
|
|
15
|
+
*/
|
|
16
|
+
defaultCollapsed?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Navbar orientation variant.
|
|
19
|
+
* @default 'vertical'
|
|
20
|
+
*/
|
|
21
|
+
variant?: NavbarPropVariant;
|
|
22
|
+
/**
|
|
23
|
+
* Callback fired when collapse state changes.
|
|
24
|
+
*/
|
|
25
|
+
onCollapse?: (isCollapsed: boolean) => void;
|
|
26
|
+
} & ComponentPropsWithRef<'nav'>;
|
|
@@ -44,6 +44,7 @@ export * from './ToastProvider';
|
|
|
44
44
|
export * from './Breadcrumbs';
|
|
45
45
|
export * from './Accordion';
|
|
46
46
|
export * from './ContenPanel';
|
|
47
|
+
export * from './Navbar';
|
|
47
48
|
export * from './layout';
|
|
48
49
|
export { useListData, useAsyncList, type ListData, type ListOptions, type AsyncListData, type AsyncListOptions, type AsyncListLoadFunction, type AsyncListLoadOptions, type TimeValue, type DateValue, } from '@koobiq/react-primitives';
|
|
49
50
|
export { useRouter, useLocale, useFilter, type Locale, type SortDescriptor, type Selection, RouterProvider, useDateFormatter, } from '@koobiq/react-core';
|
package/dist/index.js
CHANGED
|
@@ -111,6 +111,8 @@ import { AccordionStateContext } from "./components/Accordion/AccordionStateCont
|
|
|
111
111
|
import { ContentPanel } from "./components/ContenPanel/ContentPanel.js";
|
|
112
112
|
import { ContentPanelContainer } from "./components/ContenPanel/components/ContentPanelContainer/ContentPanelContainer.js";
|
|
113
113
|
import { ContentPanelContainerContext } from "./components/ContenPanel/components/ContentPanelContainer/ContentPanelContainerContext.js";
|
|
114
|
+
import { Navbar, NavbarComponent } from "./components/Navbar/Navbar.js";
|
|
115
|
+
import { navbarPropVariant } from "./components/Navbar/types.js";
|
|
114
116
|
import { flex, flexPropAlignItems, flexPropDirection, flexPropFlex, flexPropGap, flexPropJustifyContent, flexPropOrder, flexPropWrap } from "./components/layout/flex/flex.js";
|
|
115
117
|
import { spacing, spacingGap } from "./components/layout/spacing/spacing.js";
|
|
116
118
|
export {
|
|
@@ -173,6 +175,8 @@ export {
|
|
|
173
175
|
ModalContent,
|
|
174
176
|
ModalFooter,
|
|
175
177
|
ModalHeader,
|
|
178
|
+
Navbar,
|
|
179
|
+
NavbarComponent,
|
|
176
180
|
Popover,
|
|
177
181
|
PopoverContent,
|
|
178
182
|
PopoverFooter,
|
|
@@ -253,6 +257,7 @@ export {
|
|
|
253
257
|
inputPropLabelPlacement,
|
|
254
258
|
inputPropVariant,
|
|
255
259
|
modalPropSize,
|
|
260
|
+
navbarPropVariant,
|
|
256
261
|
popoverPropPlacement,
|
|
257
262
|
popoverPropSize,
|
|
258
263
|
popoverPropType,
|
package/dist/style.css
CHANGED
|
@@ -5271,6 +5271,162 @@ body[data-resizing="true"] .kbq-contentpanel-3541ee {
|
|
|
5271
5271
|
inset-block-start: 0;
|
|
5272
5272
|
inset-inline-end: 0;
|
|
5273
5273
|
}
|
|
5274
|
+
.kbq-navbar-navbar-9d3c75 {
|
|
5275
|
+
background-color: var(--kbq-background-bg-tertiary);
|
|
5276
|
+
border-inline-end: 1px solid var(--kbq-line-contrast-less);
|
|
5277
|
+
flex-direction: column;
|
|
5278
|
+
block-size: 100%;
|
|
5279
|
+
min-inline-size: 240px;
|
|
5280
|
+
display: flex;
|
|
5281
|
+
position: relative;
|
|
5282
|
+
}
|
|
5283
|
+
|
|
5284
|
+
.kbq-navbar-navbar-9d3c75[data-collapsed="true"] {
|
|
5285
|
+
min-inline-size: var(--kbq-size-6xl);
|
|
5286
|
+
inline-size: var(--kbq-size-6xl);
|
|
5287
|
+
}
|
|
5288
|
+
|
|
5289
|
+
.kbq-navbar-list-42b3cd {
|
|
5290
|
+
flex-direction: column;
|
|
5291
|
+
flex: auto;
|
|
5292
|
+
gap: 1px;
|
|
5293
|
+
display: flex;
|
|
5294
|
+
}
|
|
5295
|
+
|
|
5296
|
+
.kbq-navbar-list-42b3cd[data-padded] {
|
|
5297
|
+
padding: 0;
|
|
5298
|
+
}
|
|
5299
|
+
|
|
5300
|
+
.kbq-navbar-header-ba57bd .kbq-navbar-appItem-08f75b {
|
|
5301
|
+
border-block: 0 solid #0000;
|
|
5302
|
+
border-block-width: var(--kbq-size-s) 7px;
|
|
5303
|
+
block-size: auto;
|
|
5304
|
+
}
|
|
5305
|
+
|
|
5306
|
+
.kbq-navbar-item-1b3022.kbq-navbar-appItem-08f75b {
|
|
5307
|
+
font-size: var(--kbq-typography-subheading-font-size);
|
|
5308
|
+
font-weight: var(--kbq-typography-subheading-font-weight);
|
|
5309
|
+
line-height: var(--kbq-typography-subheading-line-height);
|
|
5310
|
+
font-family: var(--kbq-typography-subheading-font-family);
|
|
5311
|
+
font-style: var(--kbq-typography-subheading-font-style);
|
|
5312
|
+
text-transform: var(--kbq-typography-subheading-text-transform);
|
|
5313
|
+
font-feature-settings: var(--kbq-typography-subheading-font-feature-settings);
|
|
5314
|
+
letter-spacing: var(--kbq-typography-subheading-letter-spacing);
|
|
5315
|
+
text-underline-offset: calc(( var(--kbq-typography-subheading-line-height) - var(--kbq-typography-subheading-font-size)) / 2);
|
|
5316
|
+
padding: var(--kbq-size-xxs);
|
|
5317
|
+
}
|
|
5318
|
+
|
|
5319
|
+
.kbq-navbar-item-1b3022 {
|
|
5320
|
+
block-size: 40px;
|
|
5321
|
+
inline-size: 100%;
|
|
5322
|
+
padding: 0 var(--kbq-size-m);
|
|
5323
|
+
border-inline-width: var(--kbq-size-s);
|
|
5324
|
+
gap: var(--kbq-size-m);
|
|
5325
|
+
background-color: #0000;
|
|
5326
|
+
border-color: #0000;
|
|
5327
|
+
position: relative;
|
|
5328
|
+
}
|
|
5329
|
+
|
|
5330
|
+
.kbq-navbar-navbar-9d3c75[data-collapsed="true"] .kbq-navbar-item-1b3022 {
|
|
5331
|
+
box-sizing: border-box;
|
|
5332
|
+
padding: var(--kbq-size-xxs);
|
|
5333
|
+
justify-content: center;
|
|
5334
|
+
}
|
|
5335
|
+
|
|
5336
|
+
.kbq-navbar-navbar-9d3c75 .kbq-navbar-list-42b3cd .kbq-navbar-item-1b3022 {
|
|
5337
|
+
border-inline-width: var(--kbq-size-s);
|
|
5338
|
+
}
|
|
5339
|
+
|
|
5340
|
+
.kbq-navbar-itemIcon-50a6ed {
|
|
5341
|
+
flex-shrink: 0;
|
|
5342
|
+
display: flex;
|
|
5343
|
+
}
|
|
5344
|
+
|
|
5345
|
+
.kbq-navbar-itemContent-ca07c9 {
|
|
5346
|
+
white-space: nowrap;
|
|
5347
|
+
text-overflow: ellipsis;
|
|
5348
|
+
overflow: hidden;
|
|
5349
|
+
}
|
|
5350
|
+
|
|
5351
|
+
.kbq-navbar-itemBadge-3ef4ba {
|
|
5352
|
+
background-color: var(--kbq-background-error);
|
|
5353
|
+
color: var(--kbq-foreground-white);
|
|
5354
|
+
block-size: var(--kbq-size-l);
|
|
5355
|
+
inline-size: var(--kbq-size-l);
|
|
5356
|
+
border-radius: var(--kbq-size-xxs);
|
|
5357
|
+
place-content: center;
|
|
5358
|
+
margin-inline-start: auto;
|
|
5359
|
+
display: grid;
|
|
5360
|
+
}
|
|
5361
|
+
|
|
5362
|
+
.kbq-navbar-navbar-9d3c75[data-collapsed="true"] .kbq-navbar-itemBadge-3ef4ba {
|
|
5363
|
+
position: absolute;
|
|
5364
|
+
inset-block-start: calc(-1 * var(--kbq-size-3xs));
|
|
5365
|
+
inset-inline-end: calc(-1 * var(--kbq-size-3xs));
|
|
5366
|
+
}
|
|
5367
|
+
|
|
5368
|
+
.kbq-navbar-itemMenuIcon-dc5e9e {
|
|
5369
|
+
color: var(--kbq-icon-contrast-fade);
|
|
5370
|
+
margin-inline-start: auto;
|
|
5371
|
+
}
|
|
5372
|
+
|
|
5373
|
+
.kbq-navbar-itemBadge-3ef4ba + .kbq-navbar-itemMenuIcon-dc5e9e {
|
|
5374
|
+
margin-inline-start: unset;
|
|
5375
|
+
}
|
|
5376
|
+
|
|
5377
|
+
.kbq-navbar-footer-851065 {
|
|
5378
|
+
padding: var(--kbq-size-xxl) 0 var(--kbq-size-s);
|
|
5379
|
+
flex-direction: column;
|
|
5380
|
+
gap: 1px;
|
|
5381
|
+
margin-block-start: auto;
|
|
5382
|
+
display: flex;
|
|
5383
|
+
}
|
|
5384
|
+
|
|
5385
|
+
.kbq-navbar-toggleWrapper-e7247f {
|
|
5386
|
+
block-size: var(--kbq-size-3xl);
|
|
5387
|
+
inline-size: var(--kbq-size-3xl);
|
|
5388
|
+
padding: var(--kbq-size-3xs);
|
|
5389
|
+
background-color: #0000;
|
|
5390
|
+
border: none;
|
|
5391
|
+
outline: none;
|
|
5392
|
+
place-content: stretch;
|
|
5393
|
+
display: none;
|
|
5394
|
+
position: absolute;
|
|
5395
|
+
inset-block-start: var(--kbq-size-3xl);
|
|
5396
|
+
inset-inline-end: calc(-1 * var(--kbq-size-l));
|
|
5397
|
+
}
|
|
5398
|
+
|
|
5399
|
+
.kbq-navbar-navbar-9d3c75:is(:hover, :focus-within) .kbq-navbar-toggleWrapper-e7247f {
|
|
5400
|
+
display: grid;
|
|
5401
|
+
}
|
|
5402
|
+
|
|
5403
|
+
.kbq-navbar-toggleButton-2ebeeb {
|
|
5404
|
+
z-index: 1;
|
|
5405
|
+
box-shadow: var(--kbq-shadow-popup);
|
|
5406
|
+
background-color: var(--kbq-background-card);
|
|
5407
|
+
color: var(--kbq-icon-contrast-fade);
|
|
5408
|
+
border-radius: 50%;
|
|
5409
|
+
place-content: center;
|
|
5410
|
+
display: grid;
|
|
5411
|
+
}
|
|
5412
|
+
|
|
5413
|
+
.kbq-navbar-navbar-9d3c75[data-collapsed="true"] .kbq-navbar-toggleButton-2ebeeb {
|
|
5414
|
+
transform: rotate(180deg);
|
|
5415
|
+
}
|
|
5416
|
+
|
|
5417
|
+
.kbq-navbar-toggleButton-2ebeeb:hover {
|
|
5418
|
+
cursor: pointer;
|
|
5419
|
+
color: var(--kbq-states-icon-contrast-hover);
|
|
5420
|
+
}
|
|
5421
|
+
|
|
5422
|
+
.kbq-navbar-toggleButton-2ebeeb:active {
|
|
5423
|
+
color: var(--kbq-states-icon-contrast-active);
|
|
5424
|
+
}
|
|
5425
|
+
|
|
5426
|
+
.kbq-navbar-toggleWrapper-e7247f:focus-visible .kbq-navbar-toggleButton-2ebeeb {
|
|
5427
|
+
outline: var(--kbq-size-3xs) solid var(--kbq-states-line-focus-theme);
|
|
5428
|
+
outline-offset: -1px;
|
|
5429
|
+
}
|
|
5274
5430
|
.kbq-spacing-mbs_0-be7021 {
|
|
5275
5431
|
margin-block-start: 0;
|
|
5276
5432
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@koobiq/react-components",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.24.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -28,10 +28,10 @@
|
|
|
28
28
|
"@koobiq/design-tokens": "^3.15.0",
|
|
29
29
|
"@types/react-transition-group": "^4.4.12",
|
|
30
30
|
"react-transition-group": "^4.4.5",
|
|
31
|
-
"@koobiq/logger": "0.
|
|
32
|
-
"@koobiq/react-icons": "0.
|
|
33
|
-
"@koobiq/react-primitives": "0.
|
|
34
|
-
"@koobiq/react-core": "0.
|
|
31
|
+
"@koobiq/logger": "0.24.0",
|
|
32
|
+
"@koobiq/react-icons": "0.24.0",
|
|
33
|
+
"@koobiq/react-primitives": "0.24.0",
|
|
34
|
+
"@koobiq/react-core": "0.24.0"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
37
|
"@koobiq/design-tokens": "^3.15.0",
|