@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.
@@ -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,5 @@
1
+ export type NavbarContextProps = {
2
+ isCollapsed?: boolean;
3
+ };
4
+ export declare const NavbarContext: import("react").Context<NavbarContextProps>;
5
+ export declare const useNavbarState: () => NavbarContextProps;
@@ -0,0 +1,8 @@
1
+ "use client";
2
+ import { createContext, useContext } from "react";
3
+ const NavbarContext = createContext({});
4
+ const useNavbarState = () => useContext(NavbarContext);
5
+ export {
6
+ NavbarContext,
7
+ useNavbarState
8
+ };
@@ -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,5 @@
1
+ export * from './NavbarBody';
2
+ export * from './NavbarFooter';
3
+ export * from './NavbarHeader';
4
+ export * from './NavbarItem';
5
+ export * from './NavbarAppItem';
@@ -0,0 +1,2 @@
1
+ export * from './Navbar';
2
+ export * from './types';
@@ -0,0 +1,7 @@
1
+ const intlMessages = {
2
+ "ru-RU": { "show navbar": "Показать", "hide navbar": "Скрыть" },
3
+ "en-US": { "show navbar": "Show", "hide navbar": "Hide" }
4
+ };
5
+ export {
6
+ intlMessages as default
7
+ };
@@ -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'>;
@@ -0,0 +1,4 @@
1
+ const navbarPropVariant = ["vertical", "horizontal"];
2
+ export {
3
+ navbarPropVariant
4
+ };
@@ -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.23.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.23.0",
32
- "@koobiq/react-icons": "0.23.0",
33
- "@koobiq/react-primitives": "0.23.0",
34
- "@koobiq/react-core": "0.23.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",