@koobiq/react-components 0.24.0 → 0.26.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.
Files changed (94) hide show
  1. package/dist/components/ActionsPanel/ActionPanel.module.css.js +17 -0
  2. package/dist/components/ActionsPanel/ActionsPanel.d.ts +11 -0
  3. package/dist/components/ActionsPanel/ActionsPanel.js +170 -0
  4. package/dist/components/ActionsPanel/ActionsPanelContext.d.ts +3 -0
  5. package/dist/components/ActionsPanel/ActionsPanelContext.js +6 -0
  6. package/dist/components/ActionsPanel/components/ActionsPanelAction/ActionsPanelAction.d.ts +2 -0
  7. package/dist/components/ActionsPanel/components/ActionsPanelAction/ActionsPanelAction.js +22 -0
  8. package/dist/components/ActionsPanel/components/ActionsPanelAction/ActionsPanelAction.module.css.js +8 -0
  9. package/dist/components/ActionsPanel/components/ActionsPanelAction/index.d.ts +2 -0
  10. package/dist/components/ActionsPanel/components/ActionsPanelAction/types.d.ts +5 -0
  11. package/dist/components/ActionsPanel/components/ActionsPanelClearButton/ActionsPanelClearButton.d.ts +5 -0
  12. package/dist/components/ActionsPanel/components/ActionsPanelClearButton/ActionsPanelClearButton.js +30 -0
  13. package/dist/components/ActionsPanel/components/ActionsPanelClearButton/ActionsPanelClearButton.module.css.js +8 -0
  14. package/dist/components/ActionsPanel/components/ActionsPanelClearButton/index.d.ts +1 -0
  15. package/dist/components/ActionsPanel/components/ActionsPanelContainer/ActionPanelContainer.module.css.js +11 -0
  16. package/dist/components/ActionsPanel/components/ActionsPanelContainer/ActionsPanelContainer.d.ts +2 -0
  17. package/dist/components/ActionsPanel/components/ActionsPanelContainer/ActionsPanelContainer.js +32 -0
  18. package/dist/components/ActionsPanel/components/ActionsPanelContainer/index.d.ts +2 -0
  19. package/dist/components/ActionsPanel/components/ActionsPanelContainer/types.d.ts +5 -0
  20. package/dist/components/ActionsPanel/components/ActionsPanelCounter/ActionsPanelCounter.d.ts +6 -0
  21. package/dist/components/ActionsPanel/components/ActionsPanelCounter/ActionsPanelCounter.js +44 -0
  22. package/dist/components/ActionsPanel/components/ActionsPanelCounter/ActionsPanelCounter.module.css.js +17 -0
  23. package/dist/components/ActionsPanel/components/ActionsPanelCounter/index.d.ts +1 -0
  24. package/dist/components/ActionsPanel/components/ActionsPanelDivider/ActionsPanelDivider.d.ts +3 -0
  25. package/dist/components/ActionsPanel/components/ActionsPanelDivider/ActionsPanelDivider.js +18 -0
  26. package/dist/components/ActionsPanel/components/ActionsPanelDivider/ActionsPanelDivider.module.css.js +8 -0
  27. package/dist/components/ActionsPanel/components/ActionsPanelDivider/index.d.ts +1 -0
  28. package/dist/components/ActionsPanel/components/ActionsPanelMoreAction/ActionsPanelMoreAction.d.ts +2 -0
  29. package/dist/components/ActionsPanel/components/ActionsPanelMoreAction/ActionsPanelMoreAction.js +72 -0
  30. package/dist/components/ActionsPanel/components/ActionsPanelMoreAction/ActionsPanelMoreAction.module.css.js +14 -0
  31. package/dist/components/ActionsPanel/components/ActionsPanelMoreAction/index.d.ts +2 -0
  32. package/dist/components/ActionsPanel/components/ActionsPanelMoreAction/types.d.ts +9 -0
  33. package/dist/components/ActionsPanel/components/index.d.ts +4 -0
  34. package/dist/components/ActionsPanel/hooks/index.d.ts +1 -0
  35. package/dist/components/ActionsPanel/hooks/useInlinePaddingSize.d.ts +6 -0
  36. package/dist/components/ActionsPanel/hooks/useInlinePaddingSize.js +17 -0
  37. package/dist/components/ActionsPanel/index.d.ts +5 -0
  38. package/dist/components/ActionsPanel/intl.json.js +7 -0
  39. package/dist/components/ActionsPanel/types.d.ts +47 -0
  40. package/dist/components/Breadcrumbs/components/BreadcrumbsCollapse/BreadcrumbsCollapse.js +9 -5
  41. package/dist/components/Breadcrumbs/intl.json.js +7 -0
  42. package/dist/components/Breadcrumbs/types.d.ts +2 -0
  43. package/dist/components/ContenPanel/ContentPanel.d.ts +3 -2
  44. package/dist/components/ContenPanel/ContentPanel.js +9 -9
  45. package/dist/components/Divider/Divider.d.ts +14 -4
  46. package/dist/components/Divider/Divider.js +23 -8
  47. package/dist/components/Divider/types.d.ts +4 -3
  48. package/dist/components/Navbar/components/NavbarItem.d.ts +4 -0
  49. package/dist/components/Navbar/components/NavbarItem.js +11 -1
  50. package/dist/components/SearchInput/SearchInput.d.ts +1 -1
  51. package/dist/components/Select/Select.d.ts +4 -0
  52. package/dist/components/SelectNext/Select.d.ts +13 -0
  53. package/dist/components/SelectNext/Select.js +258 -0
  54. package/dist/components/SelectNext/Select.module.css.js +23 -0
  55. package/dist/components/SelectNext/SelectContext.d.ts +2 -0
  56. package/dist/components/SelectNext/SelectContext.js +5 -0
  57. package/dist/components/SelectNext/components/SelectList/SelectList.d.ts +37 -0
  58. package/dist/components/SelectNext/components/SelectList/SelectList.js +131 -0
  59. package/dist/components/SelectNext/components/SelectList/SelectList.module.css.js +11 -0
  60. package/dist/components/SelectNext/components/SelectList/index.d.ts +1 -0
  61. package/dist/components/SelectNext/components/SelectOption/SelectOption.d.ts +37 -0
  62. package/dist/components/SelectNext/components/SelectOption/SelectOption.js +48 -0
  63. package/dist/components/SelectNext/components/SelectOption/index.d.ts +1 -0
  64. package/dist/components/SelectNext/components/SelectSection/SelectSection.d.ts +9 -0
  65. package/dist/components/SelectNext/components/SelectSection/SelectSection.js +51 -0
  66. package/dist/components/SelectNext/components/SelectSection/index.d.ts +1 -0
  67. package/dist/components/SelectNext/components/Tag/Tag.d.ts +18 -0
  68. package/dist/components/SelectNext/components/Tag/Tag.js +67 -0
  69. package/dist/components/SelectNext/components/Tag/index.d.ts +1 -0
  70. package/dist/components/SelectNext/components/Tag/intl.json.js +7 -0
  71. package/dist/components/SelectNext/components/Tag/utils.d.ts +3 -0
  72. package/dist/components/SelectNext/components/Tag/utils.js +9 -0
  73. package/dist/components/SelectNext/components/TagGroup/TagGroup.d.ts +13 -0
  74. package/dist/components/SelectNext/components/TagGroup/TagGroup.js +25 -0
  75. package/dist/components/SelectNext/components/TagGroup/TagGroup.module.css.js +20 -0
  76. package/dist/components/SelectNext/components/TagGroup/TagGroupMultiline.d.ts +3 -0
  77. package/dist/components/SelectNext/components/TagGroup/TagGroupMultiline.js +44 -0
  78. package/dist/components/SelectNext/components/TagGroup/TagGroupResponsive.d.ts +3 -0
  79. package/dist/components/SelectNext/components/TagGroup/TagGroupResponsive.js +65 -0
  80. package/dist/components/SelectNext/components/TagGroup/index.d.ts +1 -0
  81. package/dist/components/SelectNext/components/TagGroup/utils.d.ts +1 -0
  82. package/dist/components/SelectNext/components/TagGroup/utils.js +4 -0
  83. package/dist/components/SelectNext/components/index.d.ts +5 -0
  84. package/dist/components/SelectNext/index.d.ts +2 -0
  85. package/dist/components/SelectNext/intl.d.ts +2 -0
  86. package/dist/components/SelectNext/intl.js +21 -0
  87. package/dist/components/SelectNext/types.d.ts +99 -0
  88. package/dist/components/SelectNext/types.js +12 -0
  89. package/dist/components/SelectNext/utils.d.ts +9 -0
  90. package/dist/components/SelectNext/utils.js +26 -0
  91. package/dist/components/index.d.ts +3 -1
  92. package/dist/index.js +14 -1
  93. package/dist/style.css +324 -47
  94. package/package.json +5 -5
@@ -0,0 +1,99 @@
1
+ import type { ComponentRef, CSSProperties, ReactElement, ReactNode, Ref } from 'react';
2
+ import type { ExtendableProps } from '@koobiq/react-core';
3
+ import type { AriaSelectProps, SelectState } from '@koobiq/react-primitives';
4
+ import type { SelectionMode } from '@react-types/select';
5
+ import type { FormFieldLabelProps, FormFieldErrorProps, FormFieldSelectProps, FormFieldCaptionProps, FormFieldPropLabelAlign, FormFieldControlGroupProps, FormFieldPropLabelPlacement } from '../FormField';
6
+ import type { IconButtonProps } from '../IconButton';
7
+ import type { PopoverProps } from '../Popover';
8
+ import type { SearchInputProps } from '../SearchInput';
9
+ import type { SelectListProps } from './components';
10
+ export declare const selectNextPropSelectedTagsOverflow: readonly ["multiline", "responsive"];
11
+ export type SelectNextPropSelectedTagsOverflow = (typeof selectNextPropSelectedTagsOverflow)[number];
12
+ export declare const selectNextPropLabelPlacement: readonly ["top", "side"];
13
+ export type SelectNextPropLabelPlacement = FormFieldPropLabelPlacement;
14
+ export declare const selectNextPropLabelAlign: readonly ["start", "end"];
15
+ export type SelectNextPropLabelAlign = FormFieldPropLabelAlign;
16
+ export type SelectNextProps<T extends object, M extends SelectionMode = 'single'> = ExtendableProps<{
17
+ /**
18
+ * Defines how selected tags are displayed when they exceed the available space.
19
+ *
20
+ *- `"multiline"` — tags wrap to multiple lines.
21
+ *- `"responsive"` — tags collapse into a summary (e.g., "3 more").
22
+ * @default 'responsive'
23
+ */
24
+ selectedTagsOverflow?: SelectNextPropSelectedTagsOverflow;
25
+ /** Handler that is called when the clear button is clicked. */
26
+ onClear?: () => void;
27
+ /** Sets the CSS [`className`](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the element. */
28
+ className?: string;
29
+ /** Whether the field can be emptied. */
30
+ isClearable?: boolean;
31
+ /** Addon placed before the children. */
32
+ startAddon?: ReactNode;
33
+ /** Addon placed after the children. */
34
+ endAddon?: ReactNode;
35
+ /** Inline styles. */
36
+ style?: CSSProperties;
37
+ /**
38
+ * If `true`, the label is hidden. Be sure to add aria-label to the input element.
39
+ */
40
+ isLabelHidden?: boolean;
41
+ /**
42
+ * The label's overall position relative to the element it is labeling.
43
+ * @default 'top'
44
+ */
45
+ labelPlacement?: SelectNextPropLabelPlacement;
46
+ /**
47
+ * The label's horizontal alignment relative to the element it is labeling.
48
+ * @default 'start'
49
+ */
50
+ labelAlign?: SelectNextPropLabelAlign;
51
+ /** The helper text content. */
52
+ caption?: ReactNode;
53
+ /**
54
+ * If true, the input will take up the full width of its container.
55
+ */
56
+ fullWidth?: boolean;
57
+ /** The load more spinner to render when loading additional items. */
58
+ isLoading?: boolean;
59
+ /** Handler that is called when more items should be loaded, e.g. while scrolling near the bottom. */
60
+ onLoadMore?: () => void;
61
+ /** Unique identifier for testing purposes. */
62
+ 'data-testid'?: string | number;
63
+ /** Ref to the control */
64
+ ref?: Ref<HTMLDivElement>;
65
+ /** A render function for displaying the selected value. */
66
+ renderValue?: (state: SelectState<T, M>, states: {
67
+ isInvalid?: boolean;
68
+ isDisabled?: boolean;
69
+ isRequired?: boolean;
70
+ }) => ReactNode;
71
+ /** Content to display when no items are available. */
72
+ noItemsText?: ReactNode;
73
+ /** Content to display when items are loading. */
74
+ loadingText?: ReactNode;
75
+ /** Enables search input for filtering items in the list. */
76
+ isSearchable?: boolean;
77
+ /** The value of the Select search input (controlled). */
78
+ inputValue?: string;
79
+ /** The default value of the Select search input (uncontrolled). */
80
+ defaultInputValue?: string;
81
+ /** Handler that is called when the Select search input value changes. */
82
+ onInputChange?: (value: string) => void;
83
+ /** The filter function used to determine if an option should be included in the Select list. */
84
+ defaultFilter?: (textValue: string, inputValue: string) => boolean;
85
+ /** The props used for each slot inside. */
86
+ slotProps?: {
87
+ popover?: PopoverProps;
88
+ label?: FormFieldLabelProps;
89
+ clearButton?: IconButtonProps;
90
+ control?: FormFieldSelectProps;
91
+ caption?: FormFieldCaptionProps;
92
+ group?: FormFieldControlGroupProps;
93
+ errorMessage?: FormFieldErrorProps;
94
+ list?: Omit<SelectListProps<T, M>, 'state'>;
95
+ 'search-input'?: SearchInputProps;
96
+ };
97
+ }, Omit<AriaSelectProps<T, M>, 'description' | 'validationState' | 'selectedKey' | 'onSelectionChange' | 'defaultSelectedKey'>>;
98
+ export type SelectNextComponent = <T extends object, M extends SelectionMode = 'single'>(props: SelectNextProps<T, M>) => ReactElement | null;
99
+ export type SelectNextRef = ComponentRef<'div'>;
@@ -0,0 +1,12 @@
1
+ import { formFieldPropLabelPlacement, formFieldPropLabelAlign } from "../FormField/types.js";
2
+ const selectNextPropSelectedTagsOverflow = [
3
+ "multiline",
4
+ "responsive"
5
+ ];
6
+ const selectNextPropLabelPlacement = formFieldPropLabelPlacement;
7
+ const selectNextPropLabelAlign = formFieldPropLabelAlign;
8
+ export {
9
+ selectNextPropLabelAlign,
10
+ selectNextPropLabelPlacement,
11
+ selectNextPropSelectedTagsOverflow
12
+ };
@@ -0,0 +1,9 @@
1
+ import type { Collection, Node } from '@react-types/shared';
2
+ export declare function useCollectionRender<T>(collection: Collection<Node<T>>, parent: Node<T> | null): import("react").ReactNode;
3
+ export declare function CollectionRoot<T>({ collection, }: {
4
+ collection: Collection<Node<T>>;
5
+ }): import("react").ReactNode;
6
+ export declare function CollectionBranch<T>({ collection, parent, }: {
7
+ collection: Collection<Node<T>>;
8
+ parent: Node<T>;
9
+ }): import("react").ReactNode;
@@ -0,0 +1,26 @@
1
+ import { useCachedChildren } from "@koobiq/react-primitives";
2
+ function useCollectionRender(collection, parent) {
3
+ return useCachedChildren({
4
+ items: parent ? collection.getChildren(parent.key) : collection,
5
+ dependencies: [],
6
+ children(node) {
7
+ return node.render(node);
8
+ }
9
+ });
10
+ }
11
+ function CollectionRoot({
12
+ collection
13
+ }) {
14
+ return useCollectionRender(collection, null);
15
+ }
16
+ function CollectionBranch({
17
+ collection,
18
+ parent
19
+ }) {
20
+ return useCollectionRender(collection, parent);
21
+ }
22
+ export {
23
+ CollectionBranch,
24
+ CollectionRoot,
25
+ useCollectionRender
26
+ };
@@ -27,6 +27,7 @@ export * from './Tooltip';
27
27
  export * from './List';
28
28
  export * from './AnimatedIcon';
29
29
  export * from './Select';
30
+ export * from './SelectNext';
30
31
  export * from './Divider';
31
32
  export * from './Menu';
32
33
  export * from './ButtonToggleGroup';
@@ -45,6 +46,7 @@ export * from './Breadcrumbs';
45
46
  export * from './Accordion';
46
47
  export * from './ContenPanel';
47
48
  export * from './Navbar';
49
+ export * from './ActionsPanel';
48
50
  export * from './layout';
49
51
  export { useListData, useAsyncList, type ListData, type ListOptions, type AsyncListData, type AsyncListOptions, type AsyncListLoadFunction, type AsyncListLoadOptions, type TimeValue, type DateValue, } from '@koobiq/react-primitives';
50
- export { useRouter, useLocale, useFilter, type Locale, type SortDescriptor, type Selection, RouterProvider, useDateFormatter, } from '@koobiq/react-core';
52
+ export { useRouter, useLocale, useFilter, type Locale, type Key, type SortDescriptor, type Selection, RouterProvider, useDateFormatter, } from '@koobiq/react-core';
package/dist/index.js CHANGED
@@ -75,7 +75,9 @@ import { ListItemText } from "./components/List/components/ListItemText/ListItem
75
75
  import { AnimatedIcon } from "./components/AnimatedIcon/AnimatedIcon.js";
76
76
  import { Select } from "./components/Select/Select.js";
77
77
  import { selectPropLabelAlign, selectPropLabelPlacement, selectPropSelectedTagsOverflow } from "./components/Select/types.js";
78
- import { Divider } from "./components/Divider/Divider.js";
78
+ import { SelectNext } from "./components/SelectNext/Select.js";
79
+ import { selectNextPropLabelAlign, selectNextPropLabelPlacement, selectNextPropSelectedTagsOverflow } from "./components/SelectNext/types.js";
80
+ import { Divider, DividerNode } from "./components/Divider/Divider.js";
79
81
  import { dividerPropDisplay } from "./components/Divider/types.js";
80
82
  import { Menu } from "./components/Menu/Menu.js";
81
83
  import { ButtonToggleGroup } from "./components/ButtonToggleGroup/ButtonToggleGroup.js";
@@ -113,6 +115,9 @@ import { ContentPanelContainer } from "./components/ContenPanel/components/Conte
113
115
  import { ContentPanelContainerContext } from "./components/ContenPanel/components/ContentPanelContainer/ContentPanelContainerContext.js";
114
116
  import { Navbar, NavbarComponent } from "./components/Navbar/Navbar.js";
115
117
  import { navbarPropVariant } from "./components/Navbar/types.js";
118
+ import { ActionsPanel } from "./components/ActionsPanel/ActionsPanel.js";
119
+ import { ActionsPanelContainer } from "./components/ActionsPanel/components/ActionsPanelContainer/ActionsPanelContainer.js";
120
+ import { ActionsPanelContext } from "./components/ActionsPanel/ActionsPanelContext.js";
116
121
  import { flex, flexPropAlignItems, flexPropDirection, flexPropFlex, flexPropGap, flexPropJustifyContent, flexPropOrder, flexPropWrap } from "./components/layout/flex/flex.js";
117
122
  import { spacing, spacingGap } from "./components/layout/spacing/spacing.js";
118
123
  export {
@@ -121,6 +126,9 @@ export {
121
126
  AccordionGroup,
122
127
  AccordionGroupStateContext,
123
128
  AccordionStateContext,
129
+ ActionsPanel,
130
+ ActionsPanelContainer,
131
+ ActionsPanelContext,
124
132
  Alert,
125
133
  AnimatedIcon,
126
134
  Autocomplete,
@@ -145,6 +153,7 @@ export {
145
153
  DatePicker,
146
154
  DatePickerRender,
147
155
  Divider,
156
+ DividerNode,
148
157
  FlexBox,
149
158
  Form,
150
159
  FormContext,
@@ -191,6 +200,7 @@ export {
191
200
  RouterProvider,
192
201
  SearchInput,
193
202
  Select,
203
+ SelectNext,
194
204
  SidePanel,
195
205
  SidePanelContent,
196
206
  SidePanelFooter,
@@ -273,6 +283,9 @@ export {
273
283
  searchInputPropLabelAlign,
274
284
  searchInputPropLabelPlacement,
275
285
  searchInputPropVariant,
286
+ selectNextPropLabelAlign,
287
+ selectNextPropLabelPlacement,
288
+ selectNextPropSelectedTagsOverflow,
276
289
  selectPropLabelAlign,
277
290
  selectPropLabelPlacement,
278
291
  selectPropSelectedTagsOverflow,
package/dist/style.css CHANGED
@@ -3323,8 +3323,12 @@
3323
3323
  display: flex;
3324
3324
  }
3325
3325
  .kbq-divider-16da20 {
3326
+ --divider-color: var(--kbq-line-contrast-less);
3327
+ --divider-inline-padding: var(--kbq-size-xxs);
3328
+ --divider-block-padding: var(--kbq-size-xxs);
3329
+ --divider-size: 1px;
3326
3330
  border-style: solid;
3327
- border-color: var(--kbq-line-contrast-less);
3331
+ border-color: var(--divider-color);
3328
3332
  flex-shrink: 0;
3329
3333
  margin: 0;
3330
3334
  }
@@ -3342,15 +3346,15 @@
3342
3346
  }
3343
3347
 
3344
3348
  .kbq-divider-vertical-a4e613 {
3345
- --divider-paddings: 0 var(--kbq-size-xxs);
3346
- border-width: 0 1px 0 0;
3349
+ --divider-paddings: 0 var(--divider-inline-padding);
3350
+ border-width: 0 var(--divider-size) 0 0;
3347
3351
  block-size: 100%;
3348
3352
  inline-size: 0;
3349
3353
  }
3350
3354
 
3351
3355
  .kbq-divider-horizontal-22c78d {
3352
- --divider-paddings: var(--kbq-size-xxs) 0;
3353
- border-width: 0 0 1px;
3356
+ --divider-paddings: var(--divider-block-padding) 0;
3357
+ border-width: 0 0 var(--divider-size);
3354
3358
  block-size: 0;
3355
3359
  inline-size: 100%;
3356
3360
  }
@@ -3585,6 +3589,167 @@
3585
3589
  --tag-outline-color: none;
3586
3590
  cursor: not-allowed;
3587
3591
  }
3592
+ .kbq-select-addon-1077d8 {
3593
+ pointer-events: none;
3594
+ }
3595
+
3596
+ .kbq-select-addon-1077d8 > :not(.kbq-select-chevron-5918a1) {
3597
+ pointer-events: all;
3598
+ }
3599
+
3600
+ .kbq-select-chevron-5918a1 {
3601
+ inline-size: var(--kbq-size-xxl);
3602
+ block-size: var(--kbq-size-xxl);
3603
+ margin-inline-end: calc(-1 * var(--kbq-size-s));
3604
+ padding-inline-end: var(--kbq-size-xxs);
3605
+ display: inline-flex;
3606
+ }
3607
+
3608
+ .kbq-select-chevron-5918a1 > svg {
3609
+ margin: auto;
3610
+ }
3611
+
3612
+ .kbq-select-body-698617 {
3613
+ inline-size: 100%;
3614
+ }
3615
+
3616
+ .kbq-select-body-698617 > :first-child + * {
3617
+ margin: 0;
3618
+ margin-block-start: var(--kbq-size-xs);
3619
+ }
3620
+
3621
+ .kbq-select-body-698617 > :first-child + * + * {
3622
+ margin: 0;
3623
+ margin-block-start: var(--kbq-size-xxs);
3624
+ }
3625
+
3626
+ .kbq-select-list-51ca7a {
3627
+ inline-size: 100%;
3628
+ }
3629
+
3630
+ .kbq-select-list-51ca7a:empty {
3631
+ display: none;
3632
+ }
3633
+
3634
+ .kbq-select-popover-756d4e {
3635
+ border-radius: var(--kbq-size-s);
3636
+ opacity: 0;
3637
+ transform: translateY(-8px);
3638
+ }
3639
+
3640
+ .kbq-select-popover-756d4e:has(.kbq-select-list-51ca7a:only-child:empty) {
3641
+ opacity: 0;
3642
+ }
3643
+
3644
+ .kbq-select-popover-756d4e[data-transition="entering"], .kbq-select-popover-756d4e[data-transition="entered"] {
3645
+ opacity: 1;
3646
+ transform: translateY(0);
3647
+ }
3648
+
3649
+ .kbq-select-popover-756d4e[data-transition="exiting"], .kbq-select-popover-756d4e[data-transition="exited"] {
3650
+ opacity: 0;
3651
+ transform: translateY(-8px);
3652
+ }
3653
+
3654
+ .kbq-select-clearButton-8498d2 {
3655
+ margin-inline-end: var(--kbq-size-xxs);
3656
+ }
3657
+ .kbq-selectlist-68b1db {
3658
+ flex-direction: column;
3659
+ inline-size: 100%;
3660
+ display: flex;
3661
+ }
3662
+
3663
+ .kbq-selectlist-search-800542 {
3664
+ padding-block: var(--kbq-size-xxs);
3665
+ padding-inline: var(--kbq-size-3xs);
3666
+ box-sizing: border-box;
3667
+ }
3668
+ .kbq-searchinput-input-f896b1::-webkit-search-decoration {
3669
+ appearance: none;
3670
+ }
3671
+
3672
+ .kbq-searchinput-input-f896b1::-webkit-search-cancel-button {
3673
+ appearance: none;
3674
+ }
3675
+
3676
+ .kbq-searchinput-input-f896b1::-webkit-search-results-button {
3677
+ appearance: none;
3678
+ }
3679
+
3680
+ .kbq-searchinput-input-f896b1::-webkit-search-results-decoration {
3681
+ appearance: none;
3682
+ }
3683
+
3684
+ .kbq-searchinput-startAddon-08187f {
3685
+ pointer-events: none;
3686
+ }
3687
+
3688
+ .kbq-searchinput-startAddon-08187f > :not(.kbq-searchinput-searchIcon-8bce0f) {
3689
+ pointer-events: all;
3690
+ }
3691
+
3692
+ .kbq-searchinput-clearButton-71f872 {
3693
+ margin-inline-end: calc(-1 * var(--kbq-size-xxs));
3694
+ }
3695
+
3696
+ .kbq-searchinput-body-972749 {
3697
+ inline-size: 100%;
3698
+ min-inline-size: fit-content;
3699
+ }
3700
+
3701
+ .kbq-searchinput-body-972749 > :first-child + * {
3702
+ margin: 0;
3703
+ margin-block-start: var(--kbq-size-xs);
3704
+ }
3705
+
3706
+ .kbq-searchinput-body-972749 > :first-child + * + * {
3707
+ margin: 0;
3708
+ margin-block-start: var(--kbq-size-xxs);
3709
+ }
3710
+ .kbq-taggroup-container-5d455a {
3711
+ inline-size: calc(100% + var(--kbq-size-s));
3712
+ margin-inline-start: calc(-1 * var(--kbq-size-s));
3713
+ display: flex;
3714
+ }
3715
+
3716
+ .kbq-taggroup-hasStartAddon-eb7d88 {
3717
+ inline-size: 100%;
3718
+ margin-inline-start: unset;
3719
+ }
3720
+
3721
+ .kbq-taggroup-b97495 {
3722
+ gap: var(--kbq-size-xxs);
3723
+ inline-size: 100%;
3724
+ padding-block: var(--kbq-size-xxs);
3725
+ flex-wrap: wrap;
3726
+ display: flex;
3727
+ overflow: hidden;
3728
+ }
3729
+
3730
+ .kbq-taggroup-b97495[data-limit-tags="responsive"] {
3731
+ gap: unset;
3732
+ flex-wrap: nowrap;
3733
+ }
3734
+
3735
+ .kbq-taggroup-b97495[data-limit-tags="responsive"] .kbq-taggroup-tag-262753 {
3736
+ margin-inline-end: var(--kbq-size-xxs);
3737
+ }
3738
+
3739
+ .kbq-taggroup-more-db5a34 {
3740
+ text-align: end;
3741
+ white-space: nowrap;
3742
+ box-sizing: border-box;
3743
+ padding: var(--kbq-size-3xs) calc(var(--kbq-size-xs) + var(--kbq-size-xxs)) var(--kbq-size-3xs) var(--kbq-size-xxs);
3744
+ flex: 0 0 60px;
3745
+ align-self: center;
3746
+ }
3747
+
3748
+ :is(.kbq-taggroup-tag-262753, .kbq-taggroup-more-db5a34)[aria-hidden="true"] {
3749
+ visibility: hidden;
3750
+ position: absolute;
3751
+ inset-inline-start: -300vw;
3752
+ }
3588
3753
  .kbq-menu-popover-e1857c {
3589
3754
  border-radius: var(--kbq-size-s);
3590
3755
  min-inline-size: 200px;
@@ -4345,48 +4510,6 @@
4345
4510
  margin: 0;
4346
4511
  margin-block-start: var(--kbq-size-xxs);
4347
4512
  }
4348
- .kbq-searchinput-input-f896b1::-webkit-search-decoration {
4349
- appearance: none;
4350
- }
4351
-
4352
- .kbq-searchinput-input-f896b1::-webkit-search-cancel-button {
4353
- appearance: none;
4354
- }
4355
-
4356
- .kbq-searchinput-input-f896b1::-webkit-search-results-button {
4357
- appearance: none;
4358
- }
4359
-
4360
- .kbq-searchinput-input-f896b1::-webkit-search-results-decoration {
4361
- appearance: none;
4362
- }
4363
-
4364
- .kbq-searchinput-startAddon-08187f {
4365
- pointer-events: none;
4366
- }
4367
-
4368
- .kbq-searchinput-startAddon-08187f > :not(.kbq-searchinput-searchIcon-8bce0f) {
4369
- pointer-events: all;
4370
- }
4371
-
4372
- .kbq-searchinput-clearButton-71f872 {
4373
- margin-inline-end: calc(-1 * var(--kbq-size-xxs));
4374
- }
4375
-
4376
- .kbq-searchinput-body-972749 {
4377
- inline-size: 100%;
4378
- min-inline-size: fit-content;
4379
- }
4380
-
4381
- .kbq-searchinput-body-972749 > :first-child + * {
4382
- margin: 0;
4383
- margin-block-start: var(--kbq-size-xs);
4384
- }
4385
-
4386
- .kbq-searchinput-body-972749 > :first-child + * + * {
4387
- margin: 0;
4388
- margin-block-start: var(--kbq-size-xxs);
4389
- }
4390
4513
  .kbq-form-40d37e {
4391
4514
  --gap-y: var(--kbq-size-xl);
4392
4515
  --label-inline-size: ;
@@ -5274,6 +5397,7 @@ body[data-resizing="true"] .kbq-contentpanel-3541ee {
5274
5397
  .kbq-navbar-navbar-9d3c75 {
5275
5398
  background-color: var(--kbq-background-bg-tertiary);
5276
5399
  border-inline-end: 1px solid var(--kbq-line-contrast-less);
5400
+ box-sizing: content-box;
5277
5401
  flex-direction: column;
5278
5402
  block-size: 100%;
5279
5403
  min-inline-size: 240px;
@@ -5316,6 +5440,10 @@ body[data-resizing="true"] .kbq-contentpanel-3541ee {
5316
5440
  padding: var(--kbq-size-xxs);
5317
5441
  }
5318
5442
 
5443
+ .kbq-navbar-appItem-08f75b .kbq-navbar-itemIcon-50a6ed {
5444
+ min-block-size: 32px;
5445
+ }
5446
+
5319
5447
  .kbq-navbar-item-1b3022 {
5320
5448
  block-size: 40px;
5321
5449
  inline-size: 100%;
@@ -5327,6 +5455,10 @@ body[data-resizing="true"] .kbq-contentpanel-3541ee {
5327
5455
  position: relative;
5328
5456
  }
5329
5457
 
5458
+ .kbq-navbar-item-1b3022[data-selected="true"] {
5459
+ --list-item-bg-color: var(--kbq-states-background-transparent-active);
5460
+ }
5461
+
5330
5462
  .kbq-navbar-navbar-9d3c75[data-collapsed="true"] .kbq-navbar-item-1b3022 {
5331
5463
  box-sizing: border-box;
5332
5464
  padding: var(--kbq-size-xxs);
@@ -5427,6 +5559,151 @@ body[data-resizing="true"] .kbq-contentpanel-3541ee {
5427
5559
  outline: var(--kbq-size-3xs) solid var(--kbq-states-line-focus-theme);
5428
5560
  outline-offset: -1px;
5429
5561
  }
5562
+ .kbq-actionpanel-f0ec9d {
5563
+ --actions-panel-start-position: 100%;
5564
+ --actions-panel-padding: var(--kbq-size-s);
5565
+ --actions-panel-block-size: var(--kbq-size-5xl);
5566
+ --actions-panel-border-radius: var(--kbq-size-l);
5567
+ --actions-panel-box-shadow: var(--kbq-shadow-card);
5568
+ --actions-panel-bg-color: var(--kbq-background-contrast);
5569
+ --actions-panel-color: var(--kbq-foreground-on-contrast);
5570
+ --actions-panel-vertical-divider-color: var(--kbq-line-contrast-fade);
5571
+ pointer-events: none;
5572
+ margin-inline: var(--kbq-size-s);
5573
+ z-index: var(--kbq-layer-absolute);
5574
+ justify-content: center;
5575
+ align-items: center;
5576
+ margin-block-end: var(--kbq-size-l);
5577
+ display: flex;
5578
+ position: fixed;
5579
+ inset-block-end: 0;
5580
+ inset-inline: 0;
5581
+ }
5582
+
5583
+ .kbq-actionpanel-f0ec9d[data-transition="entering"] {
5584
+ opacity: 1;
5585
+ transition: transform var(--kbq-transition-slow), opacity var(--kbq-transition-slow);
5586
+ transform: translate(0);
5587
+ }
5588
+
5589
+ .kbq-actionpanel-f0ec9d[data-transition="entered"] {
5590
+ opacity: 1;
5591
+ transform: translate(0);
5592
+ }
5593
+
5594
+ .kbq-actionpanel-f0ec9d[data-transition="exiting"] {
5595
+ transform: translate(0, var(--actions-panel-start-position));
5596
+ opacity: 0;
5597
+ transition: transform var(--kbq-transition-slow), opacity var(--kbq-transition-slow);
5598
+ }
5599
+
5600
+ .kbq-actionpanel-f0ec9d[data-transition="exited"] {
5601
+ transform: translate(0, var(--actions-panel-start-position));
5602
+ opacity: 0;
5603
+ }
5604
+
5605
+ .kbq-actionpanel-container-b084cf {
5606
+ justify-content: center;
5607
+ inline-size: 100%;
5608
+ display: flex;
5609
+ }
5610
+
5611
+ .kbq-actionpanel-actions-0c0847 {
5612
+ pointer-events: auto;
5613
+ box-sizing: border-box;
5614
+ color: var(--actions-panel-color);
5615
+ padding: var(--actions-panel-padding);
5616
+ background: var(--actions-panel-bg-color);
5617
+ block-size: var(--actions-panel-block-size);
5618
+ box-shadow: var(--actions-panel-box-shadow);
5619
+ border-radius: var(--actions-panel-border-radius);
5620
+ align-items: center;
5621
+ display: flex;
5622
+ }
5623
+
5624
+ .kbq-actionpanel-actions-0c0847[data-only-counter-hidden="true"] .kbq-actionpanel-more-1622be {
5625
+ visibility: hidden;
5626
+ pointer-events: none;
5627
+ inline-size: 0;
5628
+ margin: 0;
5629
+ padding: 0;
5630
+ overflow: hidden;
5631
+ }
5632
+ .kbq-actionspanelaction-da3850 {
5633
+ flex-shrink: 0;
5634
+ margin-inline-start: var(--kbq-size-xxs);
5635
+ }
5636
+
5637
+ .kbq-actionspanelaction-da3850:first-child {
5638
+ margin-inline-start: unset;
5639
+ }
5640
+
5641
+ .kbq-actionspanelaction-da3850[aria-hidden="true"] {
5642
+ visibility: hidden;
5643
+ position: absolute;
5644
+ inset-inline-start: -300vw;
5645
+ }
5646
+ .kbq-actionspanelcounter-a1a48c {
5647
+ order: -1;
5648
+ }
5649
+
5650
+ .kbq-actionspanelcounter-a1a48c[aria-hidden="true"] {
5651
+ visibility: hidden;
5652
+ position: absolute;
5653
+ inset-inline-start: -300vw;
5654
+ }
5655
+
5656
+ .kbq-actionspanelcounter-text-378809 {
5657
+ padding-inline: var(--kbq-size-m);
5658
+ padding-block: var(--kbq-size-xs);
5659
+ }
5660
+
5661
+ .kbq-actionspanelcounter-counterValue-bbeca7 {
5662
+ text-align: start;
5663
+ min-inline-size: 1ch;
5664
+ display: inline-block;
5665
+ }
5666
+
5667
+ .kbq-actionspanelcounter-extraCounter-feb01d {
5668
+ color: inherit;
5669
+ margin-inline-start: var(--kbq-size-xs);
5670
+ }
5671
+ .kbq-actionspaneldivider-b8d764 {
5672
+ --divider-color: var(--actions-panel-vertical-divider-color);
5673
+ block-size: var(--kbq-size-m);
5674
+ }
5675
+ .kbq-actionspanelmoreaction-4f2721 {
5676
+ flex-shrink: 0;
5677
+ }
5678
+
5679
+ .kbq-actionspanelmoreaction-4f2721[aria-hidden="true"] {
5680
+ visibility: hidden;
5681
+ position: absolute;
5682
+ inset-inline-start: -300vw;
5683
+ }
5684
+
5685
+ .kbq-actionspanelmoreaction-4f2721[aria-expanded="true"] {
5686
+ background-color: var(--button-bg-color-active);
5687
+ }
5688
+
5689
+ .kbq-actionspanelmoreaction-menuTitle-06612f {
5690
+ padding: var(--kbq-size-s) var(--kbq-size-l);
5691
+ }
5692
+
5693
+ .kbq-actionspanelmoreaction-extraCounter-9d3cb2 {
5694
+ margin-inline-start: var(--kbq-size-xs);
5695
+ }
5696
+ .kbq-actionspanelclearbutton-2a7ca4 {
5697
+ margin-inline-start: auto;
5698
+ }
5699
+ .kbq-actionpanelcontainer-2fad9f {
5700
+ position: relative;
5701
+ overflow: hidden;
5702
+ }
5703
+
5704
+ .kbq-actionpanelcontainer-panel-0ab5be {
5705
+ position: absolute;
5706
+ }
5430
5707
  .kbq-spacing-mbs_0-be7021 {
5431
5708
  margin-block-start: 0;
5432
5709
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@koobiq/react-components",
3
- "version": "0.24.0",
3
+ "version": "0.26.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.24.0",
32
- "@koobiq/react-icons": "0.24.0",
33
- "@koobiq/react-primitives": "0.24.0",
34
- "@koobiq/react-core": "0.24.0"
31
+ "@koobiq/logger": "0.26.0",
32
+ "@koobiq/react-core": "0.26.0",
33
+ "@koobiq/react-icons": "0.26.0",
34
+ "@koobiq/react-primitives": "0.26.0"
35
35
  },
36
36
  "peerDependencies": {
37
37
  "@koobiq/design-tokens": "^3.15.0",