@bitrise/bitkit-v2 0.3.201 → 0.3.203

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 (41) hide show
  1. package/dist/components/BitkitCombobox/BitkitCombobox.d.ts +6 -4
  2. package/dist/components/BitkitCombobox/BitkitCombobox.js +13 -14
  3. package/dist/components/BitkitCombobox/BitkitCombobox.js.map +1 -1
  4. package/dist/components/BitkitMultiselect/BitkitMultiselect.d.ts +20 -0
  5. package/dist/components/BitkitMultiselect/BitkitMultiselect.js +183 -0
  6. package/dist/components/BitkitMultiselect/BitkitMultiselect.js.map +1 -0
  7. package/dist/components/BitkitMultiselectMenu/BitkitMultiselectMenu.d.ts +17 -0
  8. package/dist/components/BitkitMultiselectMenu/BitkitMultiselectMenu.js +66 -0
  9. package/dist/components/BitkitMultiselectMenu/BitkitMultiselectMenu.js.map +1 -0
  10. package/dist/components/BitkitNativeSelect/BitkitNativeSelect.js +1 -1
  11. package/dist/components/BitkitNativeSelect/BitkitNativeSelect.js.map +1 -1
  12. package/dist/components/BitkitSelect/BitkitSelect.d.ts +2 -3
  13. package/dist/components/BitkitSelect/BitkitSelect.js +12 -6
  14. package/dist/components/BitkitSelect/BitkitSelect.js.map +1 -1
  15. package/dist/components/BitkitSelectMenu/BitkitSelectMenu.d.ts +16 -7
  16. package/dist/components/BitkitSelectMenu/BitkitSelectMenu.js +63 -71
  17. package/dist/components/BitkitSelectMenu/BitkitSelectMenu.js.map +1 -1
  18. package/dist/components/BitkitSelectMenu/SelectMenuShell.d.ts +29 -0
  19. package/dist/components/BitkitSelectMenu/SelectMenuShell.js +115 -0
  20. package/dist/components/BitkitSelectMenu/SelectMenuShell.js.map +1 -0
  21. package/dist/components/index.d.ts +2 -0
  22. package/dist/main.js +5 -3
  23. package/dist/theme/common/ComboboxAndSelect.common.js +0 -7
  24. package/dist/theme/common/ComboboxAndSelect.common.js.map +1 -1
  25. package/dist/theme/slot-recipes/Combobox.recipe.d.ts +1 -1
  26. package/dist/theme/slot-recipes/Multiselect.recipe.d.ts +48 -0
  27. package/dist/theme/slot-recipes/Multiselect.recipe.js +150 -0
  28. package/dist/theme/slot-recipes/Multiselect.recipe.js.map +1 -0
  29. package/dist/theme/slot-recipes/SectionHeading.recipe.d.ts +1 -1
  30. package/dist/theme/slot-recipes/Select.recipe.js +191 -18
  31. package/dist/theme/slot-recipes/Select.recipe.js.map +1 -1
  32. package/dist/theme/slot-recipes/Sidebar.recipe.d.ts +1 -1
  33. package/dist/theme/slot-recipes/TagsInput.recipe.d.ts +1 -1
  34. package/dist/theme/slot-recipes/index.js +2 -0
  35. package/dist/theme/slot-recipes/index.js.map +1 -1
  36. package/dist/utilities/AssetSelectChevron.js +0 -1
  37. package/dist/utilities/AssetSelectChevron.js.map +1 -1
  38. package/package.json +1 -1
  39. package/dist/theme/slot-recipes/DatePickerSelect.recipe.d.ts +0 -27
  40. package/dist/theme/slot-recipes/Select.recipe.d.ts +0 -21
  41. package/dist/theme/slot-recipes/index.d.ts +0 -2044
@@ -1,35 +1,44 @@
1
1
  import { ListCollection } from '@chakra-ui/react/collection';
2
2
  import { SelectContentProps } from '@chakra-ui/react/select';
3
- import { AnchorHTMLAttributes } from 'react';
4
3
  import { BitkitIconComponent } from '../../icons';
5
4
  export type BitkitSelectMenuCreateItemProps = {
6
- createItemHref?: string;
7
5
  createItemLabel?: string;
8
- createItemProps?: AnchorHTMLAttributes<HTMLAnchorElement>;
9
6
  onCreateItem?: () => void;
10
7
  };
11
8
  export type BitkitSelectMenuSearchProps = {
12
9
  hasSearch?: boolean;
13
10
  } & ({
14
11
  hasSearch: true;
15
- onSearchChange?: (searchText: string) => void;
12
+ onSearchChange: (searchText: string) => void;
13
+ searchValue: string;
16
14
  } | {
17
15
  hasSearch?: false;
18
16
  onSearchChange?: never;
17
+ searchValue?: never;
19
18
  });
20
19
  export type BitkitSelectMenuItemProps = {
21
20
  value: string;
22
21
  label: string;
23
22
  group?: string;
24
23
  icon?: BitkitIconComponent;
24
+ avatar?: string;
25
+ helperText?: string;
26
+ disabled?: boolean;
27
+ loading?: boolean;
28
+ };
29
+ export type BitkitSelectMenuEmptyStateProps = {
30
+ emptyLabel?: string;
31
+ emptyHelperText?: string;
25
32
  };
26
33
  export type BitkitSelectMenuProps = {
27
34
  collection: ListCollection<BitkitSelectMenuItemProps>;
28
- contentProps?: BitkitSelectContentProps;
35
+ /** Forwarded to the underlying Select/Combobox.Content. Kept for internal callers
36
+ * (e.g. BitkitCalendar's in-grid selects that need to tweak max-height / width). The
37
+ * public components (BitkitSelect, BitkitCombobox) do not expose this escape hatch. */
38
+ contentProps?: SelectContentProps;
29
39
  isLoading?: boolean;
30
40
  size?: 'md' | 'lg';
31
41
  variant?: 'select' | 'combobox';
32
- } & BitkitSelectMenuCreateItemProps & BitkitSelectMenuSearchProps;
33
- export type BitkitSelectContentProps = SelectContentProps;
42
+ } & BitkitSelectMenuCreateItemProps & BitkitSelectMenuSearchProps & BitkitSelectMenuEmptyStateProps;
34
43
  declare const BitkitSelectMenu: import('react').ForwardRefExoticComponent<BitkitSelectMenuProps & import('react').RefAttributes<HTMLDivElement>>;
35
44
  export default BitkitSelectMenu;
@@ -1,6 +1,6 @@
1
1
  import IconCheck from "../../icons/IconCheck.js";
2
- import IconMagnifier from "../../icons/IconMagnifier.js";
3
- import IconPlus from "../../icons/IconPlus.js";
2
+ import BitkitAvatar from "../BitkitAvatar/BitkitAvatar.js";
3
+ import { SelectMenuShell } from "./SelectMenuShell.js";
4
4
  import { Box } from "@chakra-ui/react/box";
5
5
  import { useSlotRecipe } from "@chakra-ui/react/styled-system";
6
6
  import { Text } from "@chakra-ui/react/text";
@@ -9,91 +9,83 @@ import { jsx, jsxs } from "react/jsx-runtime";
9
9
  import { Spinner } from "@chakra-ui/react/spinner";
10
10
  import { Select } from "@chakra-ui/react/select";
11
11
  import { Combobox } from "@chakra-ui/react/combobox";
12
- import { Input } from "@chakra-ui/react/input";
13
- import { InputGroup } from "@chakra-ui/react/input-group";
14
- import { Separator } from "@chakra-ui/react/separator";
15
12
  //#region lib/components/BitkitSelectMenu/BitkitSelectMenu.tsx
16
13
  var BitkitSelectMenu = forwardRef((props, ref) => {
17
- const { collection, contentProps = {}, createItemHref, createItemLabel = "Create item", createItemProps, hasSearch = false, isLoading = false, onCreateItem, onSearchChange, size, variant = "select" } = props;
14
+ const { collection, variant = "select", size, ...shellProps } = props;
18
15
  const NS = variant === "combobox" ? Combobox : Select;
19
16
  const styles = useSlotRecipe({ key: "select" })({ size });
20
17
  const iconSize = size === "md" ? "16" : "24";
21
- return /* @__PURE__ */ jsxs(NS.Content, {
22
- css: styles.content,
23
- ref,
24
- ...contentProps,
18
+ return /* @__PURE__ */ jsx(SelectMenuShell, {
19
+ NS,
20
+ collection,
21
+ contentRef: ref,
22
+ iconSize,
23
+ renderItem: (item) => /* @__PURE__ */ jsx(SelectMenuItem, {
24
+ NS,
25
+ item,
26
+ iconSize,
27
+ styles
28
+ }, item.value),
29
+ size,
30
+ styles,
31
+ ...shellProps
32
+ });
33
+ });
34
+ BitkitSelectMenu.displayName = "BitkitSelectMenu";
35
+ var SelectMenuItem = ({ NS, item, iconSize, styles }) => {
36
+ const Icon = item.icon;
37
+ if (item.loading) return /* @__PURE__ */ jsxs(Box, {
38
+ css: styles.item,
39
+ children: [/* @__PURE__ */ jsx(Spinner, {
40
+ variant: "purple",
41
+ css: styles.itemLoading
42
+ }), /* @__PURE__ */ jsx(Text, {
43
+ css: styles.itemLoadingLabel,
44
+ children: "Loading..."
45
+ })]
46
+ });
47
+ return /* @__PURE__ */ jsxs(NS.Item, {
48
+ css: styles.item,
49
+ item,
25
50
  children: [
26
- hasSearch && /* @__PURE__ */ jsx(InputGroup, {
27
- startElement: /* @__PURE__ */ jsx(IconMagnifier, {
28
- size: iconSize,
29
- color: "icon/tertiary"
30
- }),
31
- css: styles.searchInputGroup,
32
- children: /* @__PURE__ */ jsx(Input, {
33
- placeholder: "Search...",
34
- css: styles.searchInput,
35
- onChange: (e) => onSearchChange?.(e.target.value)
51
+ item.avatar && /* @__PURE__ */ jsx(Box, {
52
+ "data-slot": "avatar",
53
+ css: { "[data-disabled] &": { opacity: .5 } },
54
+ children: /* @__PURE__ */ jsx(BitkitAvatar, {
55
+ variant: "image",
56
+ src: item.avatar,
57
+ name: item.label,
58
+ size: iconSize === "24" ? "32" : "24"
36
59
  })
37
60
  }),
38
- /* @__PURE__ */ jsx(Box, {
39
- overflowY: "auto",
40
- children: isLoading ? /* @__PURE__ */ jsxs(Box, {
61
+ /* @__PURE__ */ jsxs(Box, {
62
+ css: styles.itemContent,
63
+ children: [/* @__PURE__ */ jsxs(Box, {
41
64
  display: "flex",
42
65
  alignItems: "center",
43
- gap: "12",
44
- justifyContent: "left",
45
- css: styles.item,
46
- children: [/* @__PURE__ */ jsx(Spinner, { variant: "purple" }), /* @__PURE__ */ jsx(Text, {
47
- color: "text/secondary",
48
- textStyle: "body/md/regular",
49
- children: "Loading..."
66
+ gap: "8",
67
+ children: [Icon && !item.avatar && /* @__PURE__ */ jsx(Icon, {
68
+ color: "icon/primary",
69
+ size: iconSize
70
+ }), /* @__PURE__ */ jsx(Text, {
71
+ css: styles.itemLabel,
72
+ children: item.label
50
73
  })]
51
- }) : collection.group().map(([type, group]) => /* @__PURE__ */ jsxs(NS.ItemGroup, { children: [type && /* @__PURE__ */ jsxs(NS.ItemGroupLabel, {
52
- css: styles.itemGroupLabel,
53
- children: [/* @__PURE__ */ jsx(Text, {
54
- color: "text/tertiary",
55
- flexShrink: "0",
56
- textStyle: "heading/h6",
57
- children: type
58
- }), /* @__PURE__ */ jsx(Separator, { flex: "1" })]
59
- }), group.map((item) => {
60
- const Icon = item.icon;
61
- return /* @__PURE__ */ jsxs(NS.Item, {
62
- css: styles.item,
63
- item,
64
- children: [/* @__PURE__ */ jsxs(Box, {
65
- display: "flex",
66
- alignItems: "center",
67
- gap: "8",
68
- children: [Icon && /* @__PURE__ */ jsx(Icon, {
69
- color: "icon/primary",
70
- size: iconSize
71
- }), item.label]
72
- }), /* @__PURE__ */ jsx(NS.ItemIndicator, {
73
- asChild: true,
74
- children: /* @__PURE__ */ jsx(IconCheck, {
75
- size: iconSize,
76
- css: styles.itemIndicator
77
- })
78
- })]
79
- }, item.value);
80
- })] }, type))
74
+ }), item.helperText && /* @__PURE__ */ jsx(Text, {
75
+ css: styles.itemHelperText,
76
+ children: item.helperText
77
+ })]
81
78
  }),
82
- (createItemHref || onCreateItem) && /* @__PURE__ */ jsxs(Box, {
83
- as: createItemHref ? "a" : "button",
84
- css: styles.createItem,
85
- ...createItemHref ? { href: createItemHref } : {},
86
- onClick: onCreateItem,
87
- ...createItemProps,
88
- children: [/* @__PURE__ */ jsx(IconPlus, {
79
+ /* @__PURE__ */ jsx(NS.ItemIndicator, {
80
+ asChild: true,
81
+ children: /* @__PURE__ */ jsx(IconCheck, {
89
82
  size: iconSize,
90
- color: "button/secondary/icon"
91
- }), createItemLabel]
83
+ css: styles.itemIndicator
84
+ })
92
85
  })
93
86
  ]
94
87
  });
95
- });
96
- BitkitSelectMenu.displayName = "BitkitSelectMenu";
88
+ };
97
89
  //#endregion
98
90
  export { BitkitSelectMenu as default };
99
91
 
@@ -1 +1 @@
1
- {"version":3,"file":"BitkitSelectMenu.js","names":[],"sources":["../../../lib/components/BitkitSelectMenu/BitkitSelectMenu.tsx"],"sourcesContent":["import { Box } from '@chakra-ui/react/box';\nimport { type ListCollection } from '@chakra-ui/react/collection';\nimport { Combobox } from '@chakra-ui/react/combobox';\nimport { Input } from '@chakra-ui/react/input';\nimport { InputGroup } from '@chakra-ui/react/input-group';\nimport { Select, type SelectContentProps } from '@chakra-ui/react/select';\nimport { Separator } from '@chakra-ui/react/separator';\nimport { Spinner } from '@chakra-ui/react/spinner';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { Text } from '@chakra-ui/react/text';\nimport { type AnchorHTMLAttributes, forwardRef, type HTMLAttributes } from 'react';\n\nimport { type BitkitIconComponent, IconCheck, IconMagnifier, IconPlus } from '../../icons';\n\nexport type BitkitSelectMenuCreateItemProps = {\n createItemHref?: string;\n createItemLabel?: string;\n createItemProps?: AnchorHTMLAttributes<HTMLAnchorElement>;\n onCreateItem?: () => void;\n};\n\nexport type BitkitSelectMenuSearchProps = {\n hasSearch?: boolean;\n} & (\n | {\n hasSearch: true;\n onSearchChange?: (searchText: string) => void;\n }\n | {\n hasSearch?: false;\n onSearchChange?: never;\n }\n);\n\nexport type BitkitSelectMenuItemProps = {\n value: string;\n label: string;\n group?: string;\n icon?: BitkitIconComponent;\n};\n\nexport type BitkitSelectMenuProps = {\n collection: ListCollection<BitkitSelectMenuItemProps>;\n contentProps?: BitkitSelectContentProps;\n isLoading?: boolean;\n size?: 'md' | 'lg';\n variant?: 'select' | 'combobox';\n} & BitkitSelectMenuCreateItemProps &\n BitkitSelectMenuSearchProps;\n\nexport type BitkitSelectContentProps = SelectContentProps;\n\nconst BitkitSelectMenu = forwardRef<HTMLDivElement, BitkitSelectMenuProps>((props: BitkitSelectMenuProps, ref) => {\n const {\n collection,\n contentProps = {},\n createItemHref,\n createItemLabel = 'Create item',\n createItemProps,\n hasSearch = false,\n isLoading = false,\n onCreateItem,\n onSearchChange,\n size,\n variant = 'select',\n } = props;\n\n const NS = variant === 'combobox' ? Combobox : Select;\n\n const recipe = useSlotRecipe({ key: 'select' });\n const styles = recipe({ size });\n\n const iconSize = size === 'md' ? '16' : '24';\n\n return (\n <NS.Content css={styles.content} ref={ref} {...contentProps}>\n {hasSearch && (\n <InputGroup\n startElement={<IconMagnifier size={iconSize} color=\"icon/tertiary\" />}\n css={styles.searchInputGroup}\n >\n <Input placeholder=\"Search...\" css={styles.searchInput} onChange={(e) => onSearchChange?.(e.target.value)} />\n </InputGroup>\n )}\n <Box overflowY=\"auto\">\n {isLoading ? (\n <Box display=\"flex\" alignItems=\"center\" gap=\"12\" justifyContent=\"left\" css={styles.item}>\n <Spinner variant=\"purple\" />\n <Text color=\"text/secondary\" textStyle=\"body/md/regular\">\n Loading...\n </Text>\n </Box>\n ) : (\n collection.group().map(([type, group]) => (\n <NS.ItemGroup key={type}>\n {type && (\n <NS.ItemGroupLabel css={styles.itemGroupLabel}>\n <Text color=\"text/tertiary\" flexShrink=\"0\" textStyle=\"heading/h6\">\n {type}\n </Text>\n <Separator flex=\"1\" />\n </NS.ItemGroupLabel>\n )}\n {group.map((item) => {\n const Icon = item.icon;\n return (\n <NS.Item key={item.value} css={styles.item} item={item}>\n <Box display=\"flex\" alignItems=\"center\" gap=\"8\">\n {Icon && <Icon color=\"icon/primary\" size={iconSize} />}\n {item.label}\n </Box>\n <NS.ItemIndicator asChild>\n <IconCheck size={iconSize} css={styles.itemIndicator} />\n </NS.ItemIndicator>\n </NS.Item>\n );\n })}\n </NS.ItemGroup>\n ))\n )}\n </Box>\n {(createItemHref || onCreateItem) && (\n <Box\n as={createItemHref ? 'a' : 'button'}\n css={styles.createItem}\n {...(createItemHref ? { href: createItemHref } : {})}\n onClick={onCreateItem}\n {...(createItemProps as HTMLAttributes<HTMLDivElement>)}\n >\n <IconPlus size={iconSize} color=\"button/secondary/icon\" />\n {createItemLabel}\n </Box>\n )}\n </NS.Content>\n );\n});\n\nBitkitSelectMenu.displayName = 'BitkitSelectMenu';\n\nexport default BitkitSelectMenu;\n"],"mappings":";;;;;;;;;;;;;;;AAoDA,IAAM,mBAAmB,YAAmD,OAA8B,QAAQ;CAChH,MAAM,EACJ,YACA,eAAe,EAAE,EACjB,gBACA,kBAAkB,eAClB,iBACA,YAAY,OACZ,YAAY,OACZ,cACA,gBACA,MACA,UAAU,aACR;CAEJ,MAAM,KAAK,YAAY,aAAa,WAAW;CAG/C,MAAM,SADS,cAAc,EAAE,KAAK,UAAU,CAAC,CACzB,EAAE,MAAM,CAAC;CAE/B,MAAM,WAAW,SAAS,OAAO,OAAO;AAExC,QACE,qBAAC,GAAG,SAAJ;EAAY,KAAK,OAAO;EAAc;EAAK,GAAI;YAA/C;GACG,aACC,oBAAC,YAAD;IACE,cAAc,oBAAC,eAAD;KAAe,MAAM;KAAU,OAAM;KAAkB,CAAA;IACrE,KAAK,OAAO;cAEZ,oBAAC,OAAD;KAAO,aAAY;KAAY,KAAK,OAAO;KAAa,WAAW,MAAM,iBAAiB,EAAE,OAAO,MAAM;KAAI,CAAA;IAClG,CAAA;GAEf,oBAAC,KAAD;IAAK,WAAU;cACZ,YACC,qBAAC,KAAD;KAAK,SAAQ;KAAO,YAAW;KAAS,KAAI;KAAK,gBAAe;KAAO,KAAK,OAAO;eAAnF,CACE,oBAAC,SAAD,EAAS,SAAQ,UAAW,CAAA,EAC5B,oBAAC,MAAD;MAAM,OAAM;MAAiB,WAAU;gBAAkB;MAElD,CAAA,CACH;SAEN,WAAW,OAAO,CAAC,KAAK,CAAC,MAAM,WAC7B,qBAAC,GAAG,WAAJ,EAAA,UAAA,CACG,QACC,qBAAC,GAAG,gBAAJ;KAAmB,KAAK,OAAO;eAA/B,CACE,oBAAC,MAAD;MAAM,OAAM;MAAgB,YAAW;MAAI,WAAU;gBAClD;MACI,CAAA,EACP,oBAAC,WAAD,EAAW,MAAK,KAAM,CAAA,CACJ;QAErB,MAAM,KAAK,SAAS;KACnB,MAAM,OAAO,KAAK;AAClB,YACE,qBAAC,GAAG,MAAJ;MAA0B,KAAK,OAAO;MAAY;gBAAlD,CACE,qBAAC,KAAD;OAAK,SAAQ;OAAO,YAAW;OAAS,KAAI;iBAA5C,CACG,QAAQ,oBAAC,MAAD;QAAM,OAAM;QAAe,MAAM;QAAY,CAAA,EACrD,KAAK,MACF;UACN,oBAAC,GAAG,eAAJ;OAAkB,SAAA;iBAChB,oBAAC,WAAD;QAAW,MAAM;QAAU,KAAK,OAAO;QAAiB,CAAA;OACvC,CAAA,CACX;QARI,KAAK,MAQT;MAEZ,CACW,EAAA,EAvBI,KAuBJ,CACf;IAEA,CAAA;IACJ,kBAAkB,iBAClB,qBAAC,KAAD;IACE,IAAI,iBAAiB,MAAM;IAC3B,KAAK,OAAO;IACZ,GAAK,iBAAiB,EAAE,MAAM,gBAAgB,GAAG,EAAE;IACnD,SAAS;IACT,GAAK;cALP,CAOE,oBAAC,UAAD;KAAU,MAAM;KAAU,OAAM;KAA0B,CAAA,EACzD,gBACG;;GAEG;;EAEf;AAEF,iBAAiB,cAAc"}
1
+ {"version":3,"file":"BitkitSelectMenu.js","names":[],"sources":["../../../lib/components/BitkitSelectMenu/BitkitSelectMenu.tsx"],"sourcesContent":["import { Box } from '@chakra-ui/react/box';\nimport { type ListCollection } from '@chakra-ui/react/collection';\nimport { Combobox } from '@chakra-ui/react/combobox';\nimport { Select, type SelectContentProps } from '@chakra-ui/react/select';\nimport { Spinner } from '@chakra-ui/react/spinner';\nimport { type SystemStyleObject, useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { Text } from '@chakra-ui/react/text';\nimport { forwardRef } from 'react';\n\nimport { type BitkitIconComponent, IconCheck } from '../../icons';\nimport BitkitAvatar from '../BitkitAvatar/BitkitAvatar';\nimport { SelectMenuShell } from './SelectMenuShell';\n\nexport type BitkitSelectMenuCreateItemProps = {\n createItemLabel?: string;\n onCreateItem?: () => void;\n};\n\nexport type BitkitSelectMenuSearchProps = {\n hasSearch?: boolean;\n} & (\n | {\n hasSearch: true;\n onSearchChange: (searchText: string) => void;\n searchValue: string;\n }\n | {\n hasSearch?: false;\n onSearchChange?: never;\n searchValue?: never;\n }\n);\n\nexport type BitkitSelectMenuItemProps = {\n value: string;\n label: string;\n group?: string;\n icon?: BitkitIconComponent;\n avatar?: string;\n helperText?: string;\n disabled?: boolean;\n loading?: boolean;\n};\n\nexport type BitkitSelectMenuEmptyStateProps = {\n emptyLabel?: string;\n emptyHelperText?: string;\n};\n\nexport type BitkitSelectMenuProps = {\n collection: ListCollection<BitkitSelectMenuItemProps>;\n /** Forwarded to the underlying Select/Combobox.Content. Kept for internal callers\n * (e.g. BitkitCalendar's in-grid selects that need to tweak max-height / width). The\n * public components (BitkitSelect, BitkitCombobox) do not expose this escape hatch. */\n contentProps?: SelectContentProps;\n isLoading?: boolean;\n size?: 'md' | 'lg';\n variant?: 'select' | 'combobox';\n} & BitkitSelectMenuCreateItemProps &\n BitkitSelectMenuSearchProps &\n BitkitSelectMenuEmptyStateProps;\n\nconst BitkitSelectMenu = forwardRef<HTMLDivElement, BitkitSelectMenuProps>((props, ref) => {\n const { collection, variant = 'select', size, ...shellProps } = props;\n const NS = variant === 'combobox' ? Combobox : Select;\n const recipe = useSlotRecipe({ key: 'select' });\n const styles = recipe({ size });\n const iconSize = size === 'md' ? '16' : '24';\n\n return (\n <SelectMenuShell\n NS={NS}\n collection={collection}\n contentRef={ref}\n iconSize={iconSize}\n renderItem={(item) => <SelectMenuItem key={item.value} NS={NS} item={item} iconSize={iconSize} styles={styles} />}\n size={size}\n styles={styles}\n {...shellProps}\n />\n );\n});\n\nBitkitSelectMenu.displayName = 'BitkitSelectMenu';\n\ntype SelectMenuItemRenderProps = {\n NS: typeof Select | typeof Combobox;\n item: BitkitSelectMenuItemProps;\n iconSize: '16' | '24';\n styles: Record<string, SystemStyleObject>;\n};\n\nconst SelectMenuItem = ({ NS, item, iconSize, styles }: SelectMenuItemRenderProps) => {\n const Icon = item.icon;\n\n if (item.loading) {\n // Rendered as a plain Box, not NS.Item — Zag's state machine won't track it as\n // an option, so keyboard nav skips it and it can't be selected.\n return (\n <Box css={styles.item}>\n <Spinner variant=\"purple\" css={styles.itemLoading} />\n <Text css={styles.itemLoadingLabel}>Loading...</Text>\n </Box>\n );\n }\n\n return (\n <NS.Item css={styles.item} item={item}>\n {item.avatar && (\n <Box data-slot=\"avatar\" css={{ '[data-disabled] &': { opacity: 0.5 } }}>\n <BitkitAvatar variant=\"image\" src={item.avatar} name={item.label} size={iconSize === '24' ? '32' : '24'} />\n </Box>\n )}\n <Box css={styles.itemContent}>\n <Box display=\"flex\" alignItems=\"center\" gap=\"8\">\n {Icon && !item.avatar && <Icon color=\"icon/primary\" size={iconSize} />}\n <Text css={styles.itemLabel}>{item.label}</Text>\n </Box>\n {item.helperText && <Text css={styles.itemHelperText}>{item.helperText}</Text>}\n </Box>\n <NS.ItemIndicator asChild>\n <IconCheck size={iconSize} css={styles.itemIndicator} />\n </NS.ItemIndicator>\n </NS.Item>\n );\n};\n\nexport default BitkitSelectMenu;\n"],"mappings":";;;;;;;;;;;;AA8DA,IAAM,mBAAmB,YAAmD,OAAO,QAAQ;CACzF,MAAM,EAAE,YAAY,UAAU,UAAU,MAAM,GAAG,eAAe;CAChE,MAAM,KAAK,YAAY,aAAa,WAAW;CAE/C,MAAM,SADS,cAAc,EAAE,KAAK,UAAU,CAAC,CACzB,EAAE,MAAM,CAAC;CAC/B,MAAM,WAAW,SAAS,OAAO,OAAO;AAExC,QACE,oBAAC,iBAAD;EACM;EACQ;EACZ,YAAY;EACF;EACV,aAAa,SAAS,oBAAC,gBAAD;GAAqC;GAAU;GAAgB;GAAkB;GAAU,EAAtE,KAAK,MAAiE;EAC3G;EACE;EACR,GAAI;EACJ,CAAA;EAEJ;AAEF,iBAAiB,cAAc;AAS/B,IAAM,kBAAkB,EAAE,IAAI,MAAM,UAAU,aAAwC;CACpF,MAAM,OAAO,KAAK;AAElB,KAAI,KAAK,QAGP,QACE,qBAAC,KAAD;EAAK,KAAK,OAAO;YAAjB,CACE,oBAAC,SAAD;GAAS,SAAQ;GAAS,KAAK,OAAO;GAAe,CAAA,EACrD,oBAAC,MAAD;GAAM,KAAK,OAAO;aAAkB;GAAiB,CAAA,CACjD;;AAIV,QACE,qBAAC,GAAG,MAAJ;EAAS,KAAK,OAAO;EAAY;YAAjC;GACG,KAAK,UACJ,oBAAC,KAAD;IAAK,aAAU;IAAS,KAAK,EAAE,qBAAqB,EAAE,SAAS,IAAK,EAAE;cACpE,oBAAC,cAAD;KAAc,SAAQ;KAAQ,KAAK,KAAK;KAAQ,MAAM,KAAK;KAAO,MAAM,aAAa,OAAO,OAAO;KAAQ,CAAA;IACvG,CAAA;GAER,qBAAC,KAAD;IAAK,KAAK,OAAO;cAAjB,CACE,qBAAC,KAAD;KAAK,SAAQ;KAAO,YAAW;KAAS,KAAI;eAA5C,CACG,QAAQ,CAAC,KAAK,UAAU,oBAAC,MAAD;MAAM,OAAM;MAAe,MAAM;MAAY,CAAA,EACtE,oBAAC,MAAD;MAAM,KAAK,OAAO;gBAAY,KAAK;MAAa,CAAA,CAC5C;QACL,KAAK,cAAc,oBAAC,MAAD;KAAM,KAAK,OAAO;eAAiB,KAAK;KAAkB,CAAA,CAC1E;;GACN,oBAAC,GAAG,eAAJ;IAAkB,SAAA;cAChB,oBAAC,WAAD;KAAW,MAAM;KAAU,KAAK,OAAO;KAAiB,CAAA;IACvC,CAAA;GACX"}
@@ -0,0 +1,29 @@
1
+ import { ListCollection } from '@chakra-ui/react/collection';
2
+ import { Combobox } from '@chakra-ui/react/combobox';
3
+ import { Select, SelectContentProps } from '@chakra-ui/react/select';
4
+ import { SystemStyleObject } from '@chakra-ui/react/styled-system';
5
+ import { ReactNode, Ref } from 'react';
6
+ import { BitkitSelectMenuCreateItemProps, BitkitSelectMenuEmptyStateProps, BitkitSelectMenuSearchProps } from './BitkitSelectMenu';
7
+ /**
8
+ * Internal shared shell for BitkitSelectMenu and BitkitMultiselectMenu.
9
+ * Handles Content wrapper, search, loading, empty state, groups, and create button —
10
+ * the caller only provides per-item rendering via renderItem.
11
+ */
12
+ export type SelectMenuShellProps<T extends {
13
+ value: string;
14
+ group?: string;
15
+ }> = {
16
+ NS: typeof Select | typeof Combobox;
17
+ collection: ListCollection<T>;
18
+ contentProps?: SelectContentProps;
19
+ contentRef?: Ref<HTMLDivElement>;
20
+ iconSize: '16' | '24';
21
+ isLoading?: boolean;
22
+ renderItem: (item: T) => ReactNode;
23
+ size?: 'md' | 'lg';
24
+ styles: Record<string, SystemStyleObject>;
25
+ } & BitkitSelectMenuCreateItemProps & BitkitSelectMenuSearchProps & BitkitSelectMenuEmptyStateProps;
26
+ export declare const SelectMenuShell: <T extends {
27
+ value: string;
28
+ group?: string;
29
+ }>({ NS, collection, contentProps, contentRef, createItemLabel, emptyHelperText, emptyLabel, hasSearch, iconSize, isLoading, onCreateItem, onSearchChange, renderItem, searchValue, size, styles, }: SelectMenuShellProps<T>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,115 @@
1
+ import IconCross from "../../icons/IconCross.js";
2
+ import IconMagnifier from "../../icons/IconMagnifier.js";
3
+ import IconPlus from "../../icons/IconPlus.js";
4
+ import BitkitGroupHeading from "../BitkitGroupHeading/BitkitGroupHeading.js";
5
+ import { Box } from "@chakra-ui/react/box";
6
+ import { chakra } from "@chakra-ui/react/styled-system";
7
+ import { Text } from "@chakra-ui/react/text";
8
+ import { jsx, jsxs } from "react/jsx-runtime";
9
+ import { Spinner } from "@chakra-ui/react/spinner";
10
+ //#region lib/components/BitkitSelectMenu/SelectMenuShell.tsx
11
+ var SelectMenuShell = ({ NS, collection, contentProps, contentRef, createItemLabel = "Create item", emptyHelperText, emptyLabel = "No matching options", hasSearch = false, iconSize, isLoading = false, onCreateItem, onSearchChange, renderItem, searchValue, size, styles }) => {
12
+ const isEmpty = collection.size === 0;
13
+ return /* @__PURE__ */ jsxs(NS.Content, {
14
+ css: styles.content,
15
+ ref: contentRef,
16
+ ...contentProps,
17
+ children: [
18
+ !hasSearch && onCreateItem && /* @__PURE__ */ jsx("span", {
19
+ "data-autofocus": "",
20
+ tabIndex: -1,
21
+ "aria-hidden": "true"
22
+ }),
23
+ hasSearch && searchValue !== void 0 && onSearchChange && /* @__PURE__ */ jsx(SelectMenuSearch, {
24
+ iconSize,
25
+ styles,
26
+ value: searchValue,
27
+ onSearchChange
28
+ }),
29
+ /* @__PURE__ */ jsxs(Box, {
30
+ css: styles.itemList,
31
+ children: [
32
+ isLoading && /* @__PURE__ */ jsxs(Box, {
33
+ display: "flex",
34
+ alignItems: "center",
35
+ gap: "12",
36
+ justifyContent: "left",
37
+ css: styles.item,
38
+ children: [/* @__PURE__ */ jsx(Spinner, { variant: "purple" }), /* @__PURE__ */ jsx(Text, {
39
+ color: "text/secondary",
40
+ textStyle: size === "md" ? "body/md/regular" : "body/lg/regular",
41
+ children: "Loading..."
42
+ })]
43
+ }),
44
+ !isLoading && isEmpty && /* @__PURE__ */ jsxs(Box, {
45
+ css: styles.emptyState,
46
+ children: [/* @__PURE__ */ jsx(Text, {
47
+ css: styles.itemLabel,
48
+ children: emptyLabel
49
+ }), emptyHelperText && /* @__PURE__ */ jsx(Text, {
50
+ css: styles.itemHelperText,
51
+ children: emptyHelperText
52
+ })]
53
+ }),
54
+ !isLoading && !isEmpty && collection.group().map(([type, group]) => /* @__PURE__ */ jsxs(NS.ItemGroup, { children: [type && /* @__PURE__ */ jsx(NS.ItemGroupLabel, {
55
+ asChild: true,
56
+ children: /* @__PURE__ */ jsx(BitkitGroupHeading, {
57
+ label: type,
58
+ paddingBlock: "12",
59
+ paddingInline: "16"
60
+ })
61
+ }), group.map(renderItem)] }, type))
62
+ ]
63
+ }),
64
+ onCreateItem && /* @__PURE__ */ jsxs(chakra.button, {
65
+ type: "button",
66
+ css: styles.createItem,
67
+ onClick: onCreateItem,
68
+ onKeyDown: stopMenuSelectionKeys,
69
+ children: [/* @__PURE__ */ jsx(IconPlus, {
70
+ size: iconSize,
71
+ color: "button/secondary/icon"
72
+ }), createItemLabel]
73
+ })
74
+ ]
75
+ });
76
+ };
77
+ /**
78
+ * Zag's Select.Content keyDown handler fires ITEM.CLICK and preventDefaults on Enter/Space
79
+ * regardless of which descendant is focused. For the create row (a real <button> sibling of
80
+ * the items list), that hijacks its native activation. Stopping propagation at the element
81
+ * keeps its own onClick firing via the browser's native keyboard-activation path.
82
+ */
83
+ var stopMenuSelectionKeys = (event) => {
84
+ if (event.key === "Enter" || event.key === " ") event.stopPropagation();
85
+ };
86
+ var SelectMenuSearch = ({ iconSize, onSearchChange, styles, value }) => /* @__PURE__ */ jsxs(Box, {
87
+ css: styles.searchInputGroup,
88
+ children: [
89
+ /* @__PURE__ */ jsx(IconMagnifier, {
90
+ size: iconSize,
91
+ color: "icon/tertiary"
92
+ }),
93
+ /* @__PURE__ */ jsx(chakra.input, {
94
+ "aria-label": "Search",
95
+ css: styles.searchInput,
96
+ placeholder: "Search...",
97
+ value,
98
+ onChange: (event) => onSearchChange(event.target.value),
99
+ onKeyDown: (event) => {
100
+ if (event.key === " ") event.stopPropagation();
101
+ }
102
+ }),
103
+ value && /* @__PURE__ */ jsx(chakra.button, {
104
+ type: "button",
105
+ css: styles.searchClear,
106
+ "aria-label": "Clear search",
107
+ onClick: () => onSearchChange(""),
108
+ children: /* @__PURE__ */ jsx(IconCross, { size: iconSize })
109
+ })
110
+ ]
111
+ });
112
+ //#endregion
113
+ export { SelectMenuShell };
114
+
115
+ //# sourceMappingURL=SelectMenuShell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectMenuShell.js","names":[],"sources":["../../../lib/components/BitkitSelectMenu/SelectMenuShell.tsx"],"sourcesContent":["import { Box } from '@chakra-ui/react/box';\nimport { type ListCollection } from '@chakra-ui/react/collection';\nimport { type Combobox } from '@chakra-ui/react/combobox';\nimport { type Select, type SelectContentProps } from '@chakra-ui/react/select';\nimport { Spinner } from '@chakra-ui/react/spinner';\nimport { chakra, type SystemStyleObject } from '@chakra-ui/react/styled-system';\nimport { Text } from '@chakra-ui/react/text';\nimport { type ChangeEvent, type KeyboardEvent as ReactKeyboardEvent, type ReactNode, type Ref } from 'react';\n\nimport { IconCross, IconMagnifier, IconPlus } from '../../icons';\nimport BitkitGroupHeading from '../BitkitGroupHeading/BitkitGroupHeading';\nimport {\n type BitkitSelectMenuCreateItemProps,\n type BitkitSelectMenuEmptyStateProps,\n type BitkitSelectMenuSearchProps,\n} from './BitkitSelectMenu';\n\n/**\n * Internal shared shell for BitkitSelectMenu and BitkitMultiselectMenu.\n * Handles Content wrapper, search, loading, empty state, groups, and create button —\n * the caller only provides per-item rendering via renderItem.\n */\nexport type SelectMenuShellProps<T extends { value: string; group?: string }> = {\n NS: typeof Select | typeof Combobox;\n collection: ListCollection<T>;\n contentProps?: SelectContentProps;\n contentRef?: Ref<HTMLDivElement>;\n iconSize: '16' | '24';\n isLoading?: boolean;\n renderItem: (item: T) => ReactNode;\n size?: 'md' | 'lg';\n styles: Record<string, SystemStyleObject>;\n} & BitkitSelectMenuCreateItemProps &\n BitkitSelectMenuSearchProps &\n BitkitSelectMenuEmptyStateProps;\n\nexport const SelectMenuShell = <T extends { value: string; group?: string }>({\n NS,\n collection,\n contentProps,\n contentRef,\n createItemLabel = 'Create item',\n emptyHelperText,\n emptyLabel = 'No matching options',\n hasSearch = false,\n iconSize,\n isLoading = false,\n onCreateItem,\n onSearchChange,\n renderItem,\n searchValue,\n size,\n styles,\n}: SelectMenuShellProps<T>) => {\n const isEmpty = collection.size === 0;\n\n return (\n <NS.Content css={styles.content} ref={contentRef} {...contentProps}>\n {/*\n Without a search input, Zag's getInitialFocus (see @zag-js/dom-query) picks the first\n tabbable descendant as the menu's initial focus target — which would be the create\n button, visually confusing. A hidden [data-autofocus] span wins over tabbables in\n getInitialFocus's querySelector, so we focus an invisible element instead and Zag's\n aria-activedescendant drives the highlight like a normal Select would.\n */}\n {!hasSearch && onCreateItem && <span data-autofocus=\"\" tabIndex={-1} aria-hidden=\"true\" />}\n {hasSearch && searchValue !== undefined && onSearchChange && (\n <SelectMenuSearch iconSize={iconSize} styles={styles} value={searchValue} onSearchChange={onSearchChange} />\n )}\n <Box css={styles.itemList}>\n {isLoading && (\n <Box display=\"flex\" alignItems=\"center\" gap=\"12\" justifyContent=\"left\" css={styles.item}>\n <Spinner variant=\"purple\" />\n <Text color=\"text/secondary\" textStyle={size === 'md' ? 'body/md/regular' : 'body/lg/regular'}>\n Loading...\n </Text>\n </Box>\n )}\n {!isLoading && isEmpty && (\n <Box css={styles.emptyState}>\n <Text css={styles.itemLabel}>{emptyLabel}</Text>\n {emptyHelperText && <Text css={styles.itemHelperText}>{emptyHelperText}</Text>}\n </Box>\n )}\n {!isLoading &&\n !isEmpty &&\n collection.group().map(([type, group]) => (\n <NS.ItemGroup key={type}>\n {type && (\n <NS.ItemGroupLabel asChild>\n <BitkitGroupHeading label={type} paddingBlock=\"12\" paddingInline=\"16\" />\n </NS.ItemGroupLabel>\n )}\n {group.map(renderItem)}\n </NS.ItemGroup>\n ))}\n </Box>\n {onCreateItem && (\n <chakra.button type=\"button\" css={styles.createItem} onClick={onCreateItem} onKeyDown={stopMenuSelectionKeys}>\n <IconPlus size={iconSize} color=\"button/secondary/icon\" />\n {createItemLabel}\n </chakra.button>\n )}\n </NS.Content>\n );\n};\n\n/**\n * Zag's Select.Content keyDown handler fires ITEM.CLICK and preventDefaults on Enter/Space\n * regardless of which descendant is focused. For the create row (a real <button> sibling of\n * the items list), that hijacks its native activation. Stopping propagation at the element\n * keeps its own onClick firing via the browser's native keyboard-activation path.\n */\nconst stopMenuSelectionKeys = (event: ReactKeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.stopPropagation();\n }\n};\n\ntype SelectMenuSearchProps = {\n iconSize: '16' | '24';\n onSearchChange: (searchText: string) => void;\n styles: Record<string, SystemStyleObject>;\n value: string;\n};\n\nconst SelectMenuSearch = ({ iconSize, onSearchChange, styles, value }: SelectMenuSearchProps) => (\n <Box css={styles.searchInputGroup}>\n <IconMagnifier size={iconSize} color=\"icon/tertiary\" />\n <chakra.input\n aria-label=\"Search\"\n css={styles.searchInput}\n placeholder=\"Search...\"\n value={value}\n onChange={(event: ChangeEvent<HTMLInputElement>) => onSearchChange(event.target.value)}\n onKeyDown={(event) => {\n // Zag's Select.Content keyDown listener fires ITEM.CLICK + preventDefault on Space\n // regardless of which descendant is focused. That would eat the space before the\n // input can type it. Enter is left alone so \"type-then-Enter-to-select\" still works.\n if (event.key === ' ') event.stopPropagation();\n }}\n />\n {value && (\n <chakra.button\n type=\"button\"\n css={styles.searchClear}\n aria-label=\"Clear search\"\n onClick={() => onSearchChange('')}\n >\n <IconCross size={iconSize} />\n </chakra.button>\n )}\n </Box>\n);\n"],"mappings":";;;;;;;;;;AAoCA,IAAa,mBAAgE,EAC3E,IACA,YACA,cACA,YACA,kBAAkB,eAClB,iBACA,aAAa,uBACb,YAAY,OACZ,UACA,YAAY,OACZ,cACA,gBACA,YACA,aACA,MACA,aAC6B;CAC7B,MAAM,UAAU,WAAW,SAAS;AAEpC,QACE,qBAAC,GAAG,SAAJ;EAAY,KAAK,OAAO;EAAS,KAAK;EAAY,GAAI;YAAtD;GAQG,CAAC,aAAa,gBAAgB,oBAAC,QAAD;IAAM,kBAAe;IAAG,UAAU;IAAI,eAAY;IAAS,CAAA;GACzF,aAAa,gBAAgB,KAAA,KAAa,kBACzC,oBAAC,kBAAD;IAA4B;IAAkB;IAAQ,OAAO;IAA6B;IAAkB,CAAA;GAE9G,qBAAC,KAAD;IAAK,KAAK,OAAO;cAAjB;KACG,aACC,qBAAC,KAAD;MAAK,SAAQ;MAAO,YAAW;MAAS,KAAI;MAAK,gBAAe;MAAO,KAAK,OAAO;gBAAnF,CACE,oBAAC,SAAD,EAAS,SAAQ,UAAW,CAAA,EAC5B,oBAAC,MAAD;OAAM,OAAM;OAAiB,WAAW,SAAS,OAAO,oBAAoB;iBAAmB;OAExF,CAAA,CACH;;KAEP,CAAC,aAAa,WACb,qBAAC,KAAD;MAAK,KAAK,OAAO;gBAAjB,CACE,oBAAC,MAAD;OAAM,KAAK,OAAO;iBAAY;OAAkB,CAAA,EAC/C,mBAAmB,oBAAC,MAAD;OAAM,KAAK,OAAO;iBAAiB;OAAuB,CAAA,CAC1E;;KAEP,CAAC,aACA,CAAC,WACD,WAAW,OAAO,CAAC,KAAK,CAAC,MAAM,WAC7B,qBAAC,GAAG,WAAJ,EAAA,UAAA,CACG,QACC,oBAAC,GAAG,gBAAJ;MAAmB,SAAA;gBACjB,oBAAC,oBAAD;OAAoB,OAAO;OAAM,cAAa;OAAK,eAAc;OAAO,CAAA;MACtD,CAAA,EAErB,MAAM,IAAI,WAAW,CACT,EAAA,EAPI,KAOJ,CACf;KACA;;GACL,gBACC,qBAAC,OAAO,QAAR;IAAe,MAAK;IAAS,KAAK,OAAO;IAAY,SAAS;IAAc,WAAW;cAAvF,CACE,oBAAC,UAAD;KAAU,MAAM;KAAU,OAAM;KAA0B,CAAA,EACzD,gBACa;;GAEP;;;;;;;;;AAUjB,IAAM,yBAAyB,UAA8B;AAC3D,KAAI,MAAM,QAAQ,WAAW,MAAM,QAAQ,IACzC,OAAM,iBAAiB;;AAW3B,IAAM,oBAAoB,EAAE,UAAU,gBAAgB,QAAQ,YAC5D,qBAAC,KAAD;CAAK,KAAK,OAAO;WAAjB;EACE,oBAAC,eAAD;GAAe,MAAM;GAAU,OAAM;GAAkB,CAAA;EACvD,oBAAC,OAAO,OAAR;GACE,cAAW;GACX,KAAK,OAAO;GACZ,aAAY;GACL;GACP,WAAW,UAAyC,eAAe,MAAM,OAAO,MAAM;GACtF,YAAY,UAAU;AAIpB,QAAI,MAAM,QAAQ,IAAK,OAAM,iBAAiB;;GAEhD,CAAA;EACD,SACC,oBAAC,OAAO,QAAR;GACE,MAAK;GACL,KAAK,OAAO;GACZ,cAAW;GACX,eAAe,eAAe,GAAG;aAEjC,oBAAC,WAAD,EAAW,MAAM,UAAY,CAAA;GACf,CAAA;EAEd"}
@@ -37,6 +37,8 @@ export { default as BitkitLink, type BitkitLinkProps } from './BitkitLink/Bitkit
37
37
  export { default as BitkitLinkButton, type BitkitLinkButtonProps } from './BitkitLinkButton/BitkitLinkButton';
38
38
  export { default as BitkitMarkdown, type BitkitMarkdownProps } from './BitkitMarkdown/BitkitMarkdown';
39
39
  export { default as BitkitMarkdownCard, type BitkitMarkdownCardProps } from './BitkitMarkdownCard/BitkitMarkdownCard';
40
+ export { default as BitkitMultiselect, type BitkitMultiselectProps } from './BitkitMultiselect/BitkitMultiselect';
41
+ export { default as BitkitMultiselectMenu, type BitkitMultiselectMenuItemProps, type BitkitMultiselectMenuProps, } from './BitkitMultiselectMenu/BitkitMultiselectMenu';
40
42
  export { default as BitkitNativeSelect, type BitkitNativeSelectProps } from './BitkitNativeSelect/BitkitNativeSelect';
41
43
  export { default as BitkitNoteCard, type BitkitNoteCardProps } from './BitkitNoteCard/BitkitNoteCard';
42
44
  export { default as BitkitNumberInput, type BitkitNumberInputProps } from './BitkitNumberInput/BitkitNumberInput';
package/dist/main.js CHANGED
@@ -288,6 +288,7 @@ import BitkitAlert from "./components/BitkitAlert/BitkitAlert.js";
288
288
  import BitkitAvatar from "./components/BitkitAvatar/BitkitAvatar.js";
289
289
  import BitkitBadge from "./components/BitkitBadge/BitkitBadge.js";
290
290
  import BitkitButton from "./components/BitkitButton/BitkitButton.js";
291
+ import BitkitGroupHeading from "./components/BitkitGroupHeading/BitkitGroupHeading.js";
291
292
  import BitkitSelectMenu from "./components/BitkitSelectMenu/BitkitSelectMenu.js";
292
293
  import BitkitCalendar from "./components/BitkitCalendar/BitkitCalendar.js";
293
294
  import BitkitCard from "./components/BitkitCard/BitkitCard.js";
@@ -312,7 +313,6 @@ import BitkitEmptyState from "./components/BitkitEmptyState/BitkitEmptyState.js"
312
313
  import BitkitExpandableCard from "./components/BitkitExpandableCard/BitkitExpandableCard.js";
313
314
  import BitkitExplainerList_default from "./components/BitkitExplainerList/BitkitExplainerList.js";
314
315
  import BitkitFileInput from "./components/BitkitFileInput/BitkitFileInput.js";
315
- import BitkitGroupHeading from "./components/BitkitGroupHeading/BitkitGroupHeading.js";
316
316
  import BitkitIconButton from "./components/BitkitIconButton/BitkitIconButton.js";
317
317
  import BitkitInlineLoading from "./components/BitkitInlineLoading/BitkitInlineLoading.js";
318
318
  import BitkitLabeledData from "./components/BitkitLabeledData/BitkitLabeledData.js";
@@ -322,6 +322,9 @@ import BitkitOrderedList_default from "./components/BitkitOrderedList/BitkitOrde
322
322
  import BitkitUnorderedList_default from "./components/BitkitUnorderedList/BitkitUnorderedList.js";
323
323
  import BitkitMarkdown from "./components/BitkitMarkdown/BitkitMarkdown.js";
324
324
  import BitkitMarkdownCard from "./components/BitkitMarkdownCard/BitkitMarkdownCard.js";
325
+ import BitkitMultiselectMenu from "./components/BitkitMultiselectMenu/BitkitMultiselectMenu.js";
326
+ import BitkitTag from "./components/BitkitTag/BitkitTag.js";
327
+ import BitkitMultiselect from "./components/BitkitMultiselect/BitkitMultiselect.js";
325
328
  import BitkitNativeSelect from "./components/BitkitNativeSelect/BitkitNativeSelect.js";
326
329
  import BitkitNoteCard from "./components/BitkitNoteCard/BitkitNoteCard.js";
327
330
  import BitkitNumberInput from "./components/BitkitNumberInput/BitkitNumberInput.js";
@@ -345,7 +348,6 @@ import BitkitStat from "./components/BitkitStat/BitkitStat.js";
345
348
  import BitkitSteps_default from "./components/BitkitSteps/BitkitSteps.js";
346
349
  import BitkitStepsCard_default from "./components/BitkitStepsCard/BitkitStepsCard.js";
347
350
  import BitkitTabs from "./components/BitkitTabs/BitkitTabs.js";
348
- import BitkitTag from "./components/BitkitTag/BitkitTag.js";
349
351
  import BitkitTagsInput from "./components/BitkitTagsInput/BitkitTagsInput.js";
350
352
  import BitkitTextInput from "./components/BitkitTextInput/BitkitTextInput.js";
351
353
  import createBitkitToast from "./components/BitkitToast/BitkitToast.js";
@@ -354,4 +356,4 @@ import BitkitToggleButton from "./components/BitkitToggleButton/BitkitToggleButt
354
356
  import BitkitTreeView, { createTreeCollection } from "./components/BitkitTreeView/BitkitTreeView.js";
355
357
  import bitkitTheme from "./theme/index.js";
356
358
  import Provider from "./providers/BitkitProvider.js";
357
- export { BitkitAccordion, BitkitActionBar, BitkitAlert, BitkitAvatar, BitkitBadge, BitkitButton, BitkitCalendar, BitkitCard, BitkitCheckbox, BitkitCheckboxGroup, BitkitCloseButton, BitkitCodeSnippet, BitkitCollapsible, BitkitColorButton, BitkitCombobox, BitkitControlButton, BitkitDefinitionTooltip, BitkitDialog, BitkitDialogBody, BitkitDialogButtons, BitkitDialogContent, BitkitDialogRoot, BitkitDraggableCard, BitkitDrawer, BitkitEmptyState, BitkitExpandableCard, BitkitExplainerList_default as BitkitExplainerList, BitkitField, BitkitFileInput, BitkitGroupHeading, BitkitIconButton, BitkitInlineLoading, BitkitLabel, BitkitLabelTooltip, BitkitLabeledData, BitkitLink, BitkitLinkButton, BitkitMarkdown, BitkitMarkdownCard, BitkitNativeSelect, BitkitNoteCard, BitkitNumberInput, BitkitOrderedList_default as BitkitOrderedList, BitkitOverflowContent, BitkitOverflowTooltip, BitkitPageFooter_default as BitkitPageFooter, BitkitPagination, BitkitPaginationLoadMore, Provider as BitkitProvider, BitkitRadio, BitkitRadioGroup, BitkitRibbon, BitkitSearchInput, BitkitSectionHeading, BitkitSegmentedControl_default as BitkitSegmentedControl, BitkitSelect, BitkitSelectMenu, BitkitSelectableTag_default as BitkitSelectableTag, BitkitSettingsCard_default as BitkitSettingsCard, BitkitSidebar_default as BitkitSidebar, BitkitSplitButton_default as BitkitSplitButton, BitkitStat, BitkitSteps_default as BitkitSteps, BitkitStepsCard_default as BitkitStepsCard, BitkitTabs, BitkitTag, BitkitTagsInput, BitkitTextInput, BitkitToggle, BitkitToggleButton, BitkitTooltip, BitkitTreeView, BitkitUnorderedList_default as BitkitUnorderedList, IconAbortCircle, IconAbortCircleFilled, IconAddons, IconAgent, IconAnchor, IconAndroid, IconApp, IconAppSettings, IconAppStore, IconAppStoreColor, IconApple, IconArchive, IconArchiveDelete, IconArchiveRestore, IconArrowBackAndDown, IconArrowBackAndUp, IconArrowDown, IconArrowForwardAndDown, IconArrowForwardAndUp, IconArrowLeft, IconArrowNortheast, IconArrowNorthwest, IconArrowRight, IconArrowUp, IconArrowsHorizontal, IconArrowsVertical, IconAutomation, IconAws, IconAwsColor, IconBadge3RdParty, IconBadgeBitrise, IconBadgeUpgrade, IconBadgeVersionOk, IconBazel, IconBell, IconBitbot, IconBitbotError, IconBitbucket, IconBitbucketColor, IconBitbucketNeutral, IconBitbucketWhite, IconBlockCircle, IconBook, IconBoxArrowDown, IconBoxDot, IconBoxLinesOverflow, IconBoxLinesWrap, IconBranch, IconBrowserstackColor, IconBug, IconBuild, IconBuildCache, IconBuildCacheFilled, IconBuildEnvSetup, IconCalendar, IconChangePlan, IconChat, IconCheck, IconCheckCircle, IconCheckCircleFilled, IconChevronDown, IconChevronLeft, IconChevronRight, IconChevronUp, IconCi, IconCiFilled, IconCircle, IconCircleDashed, IconCircleHalfFilled, IconClaude, IconClaudeColor, IconClock, IconCode, IconCodePush, IconCodeSigning, IconCoffee, IconCommit, IconConfigure, IconConnectedAccounts, IconContainer, IconCopy, IconCordova, IconCpu, IconCreditcard, IconCredits, IconCross, IconCrossCircle, IconCrossCircleFilled, IconCrown, IconCycle, IconDashboard, IconDashboardFilled, IconDeployment, IconDetails, IconDoc, IconDollar, IconDot, IconDotnet, IconDotnetColor, IconDotnetText, IconDotnetTextColor, IconDoubleCircle, IconDownload, IconDragHandle, IconEc2Ami, IconEnterprise, IconErrorCircle, IconErrorCircleFilled, IconExpand, IconExtraBuildCapacity, IconEye, IconEyeSlash, IconFastlane, IconFileDoc, IconFilePdf, IconFilePlist, IconFileZip, IconFilter, IconFlag, IconFlutter, IconFolder, IconFullscreen, IconFullscreenExit, IconGauge, IconGit, IconGithub, IconGitlab, IconGitlabColor, IconGitlabWhite, IconGlobe, IconGo, IconGoogleColor, IconGooglePlay, IconGooglePlayColor, IconGradle, IconGroup, IconHashtag, IconHeadset, IconHeart, IconHistory, IconHourglass, IconImage, IconInfoCircle, IconInfoCircleFilled, IconInsights, IconInsightsFilled, IconInstall, IconInteraction, IconInvoice, IconIonic, IconJapanese, IconJava, IconJavaColor, IconJavaDuke, IconJavaDukeColor, IconKey, IconKotlin, IconKotlinColor, IconKotlinWhite, IconLaptop, IconLaunchdarkly, IconLegacyApp, IconLightbulb, IconLink, IconLinux, IconLock, IconLockOpen, IconLogin, IconLogout, IconMacos, IconMagicWand, IconMagnifier, IconMail, IconMedal, IconMemory, IconMenuGrid, IconMenuHamburger, IconMessage, IconMessageAlert, IconMessageQuestion, IconMicrophone, IconMinus, IconMinusCircle, IconMinusCircleFilled, IconMobile, IconMobileLandscape, IconMonitorChart, IconMoreHorizontal, IconMoreVertical, IconNews, IconNextjs, IconNodejs, IconOpenInNew, IconOther, IconOutsideContributor, IconOverview, IconPause, IconPencil, IconPeople, IconPercent, IconPerson, IconPersonWithDesk, IconPlay, IconPlus, IconPlusCircle, IconPlusCircleFilled, IconPower, IconProject, IconProjectSettings, IconPull, IconPush, IconPuzzle, IconPython, IconPythonColor, IconQuestionCircle, IconQuestionCircleFilled, IconReact, IconRefresh, IconRegex, IconRelease, IconReleaseFilled, IconRemoteAccess, IconReplace, IconResponsiveness, IconReviewerApproved, IconReviewerAssigned, IconReviewerRejected, IconRuby, IconRubyColor, IconSave, IconSecurityShield, IconSettings, IconSettingsFilled, IconShuffle, IconSiren, IconSkip, IconSkipCircle, IconSkipCircleFilled, IconSlack, IconSlackColor, IconSparkle, IconSparkleFilled, IconSpinnerOnDisabled, IconSpinnerPurple, IconSpinnerPurpleDouble, IconSpinnerWhite, IconStability, IconStack, IconStar, IconStep, IconStop, IconStopwatch, IconTag, IconTasks, IconTeams, IconTeamsColor, IconTemplateCode, IconTerminal, IconTestQuarantine, IconThemeDarkToggle, IconThumbDown, IconThumbUp, IconTools, IconTrash, IconTrigger, IconUbuntu, IconUbuntuColor, IconUnity3D, IconUpload, IconValidateShield, IconVideo, IconWarning, IconWarningYellow, IconWebUi, IconWebhooks, IconWorkflow, IconWorkflowFlow, IconXTwitter, IconXamarin, IconXcode, bitkitIcon, bitkitTheme as bitriseTheme, createBitkitToast, createTreeCollection };
359
+ export { BitkitAccordion, BitkitActionBar, BitkitAlert, BitkitAvatar, BitkitBadge, BitkitButton, BitkitCalendar, BitkitCard, BitkitCheckbox, BitkitCheckboxGroup, BitkitCloseButton, BitkitCodeSnippet, BitkitCollapsible, BitkitColorButton, BitkitCombobox, BitkitControlButton, BitkitDefinitionTooltip, BitkitDialog, BitkitDialogBody, BitkitDialogButtons, BitkitDialogContent, BitkitDialogRoot, BitkitDraggableCard, BitkitDrawer, BitkitEmptyState, BitkitExpandableCard, BitkitExplainerList_default as BitkitExplainerList, BitkitField, BitkitFileInput, BitkitGroupHeading, BitkitIconButton, BitkitInlineLoading, BitkitLabel, BitkitLabelTooltip, BitkitLabeledData, BitkitLink, BitkitLinkButton, BitkitMarkdown, BitkitMarkdownCard, BitkitMultiselect, BitkitMultiselectMenu, BitkitNativeSelect, BitkitNoteCard, BitkitNumberInput, BitkitOrderedList_default as BitkitOrderedList, BitkitOverflowContent, BitkitOverflowTooltip, BitkitPageFooter_default as BitkitPageFooter, BitkitPagination, BitkitPaginationLoadMore, Provider as BitkitProvider, BitkitRadio, BitkitRadioGroup, BitkitRibbon, BitkitSearchInput, BitkitSectionHeading, BitkitSegmentedControl_default as BitkitSegmentedControl, BitkitSelect, BitkitSelectMenu, BitkitSelectableTag_default as BitkitSelectableTag, BitkitSettingsCard_default as BitkitSettingsCard, BitkitSidebar_default as BitkitSidebar, BitkitSplitButton_default as BitkitSplitButton, BitkitStat, BitkitSteps_default as BitkitSteps, BitkitStepsCard_default as BitkitStepsCard, BitkitTabs, BitkitTag, BitkitTagsInput, BitkitTextInput, BitkitToggle, BitkitToggleButton, BitkitTooltip, BitkitTreeView, BitkitUnorderedList_default as BitkitUnorderedList, IconAbortCircle, IconAbortCircleFilled, IconAddons, IconAgent, IconAnchor, IconAndroid, IconApp, IconAppSettings, IconAppStore, IconAppStoreColor, IconApple, IconArchive, IconArchiveDelete, IconArchiveRestore, IconArrowBackAndDown, IconArrowBackAndUp, IconArrowDown, IconArrowForwardAndDown, IconArrowForwardAndUp, IconArrowLeft, IconArrowNortheast, IconArrowNorthwest, IconArrowRight, IconArrowUp, IconArrowsHorizontal, IconArrowsVertical, IconAutomation, IconAws, IconAwsColor, IconBadge3RdParty, IconBadgeBitrise, IconBadgeUpgrade, IconBadgeVersionOk, IconBazel, IconBell, IconBitbot, IconBitbotError, IconBitbucket, IconBitbucketColor, IconBitbucketNeutral, IconBitbucketWhite, IconBlockCircle, IconBook, IconBoxArrowDown, IconBoxDot, IconBoxLinesOverflow, IconBoxLinesWrap, IconBranch, IconBrowserstackColor, IconBug, IconBuild, IconBuildCache, IconBuildCacheFilled, IconBuildEnvSetup, IconCalendar, IconChangePlan, IconChat, IconCheck, IconCheckCircle, IconCheckCircleFilled, IconChevronDown, IconChevronLeft, IconChevronRight, IconChevronUp, IconCi, IconCiFilled, IconCircle, IconCircleDashed, IconCircleHalfFilled, IconClaude, IconClaudeColor, IconClock, IconCode, IconCodePush, IconCodeSigning, IconCoffee, IconCommit, IconConfigure, IconConnectedAccounts, IconContainer, IconCopy, IconCordova, IconCpu, IconCreditcard, IconCredits, IconCross, IconCrossCircle, IconCrossCircleFilled, IconCrown, IconCycle, IconDashboard, IconDashboardFilled, IconDeployment, IconDetails, IconDoc, IconDollar, IconDot, IconDotnet, IconDotnetColor, IconDotnetText, IconDotnetTextColor, IconDoubleCircle, IconDownload, IconDragHandle, IconEc2Ami, IconEnterprise, IconErrorCircle, IconErrorCircleFilled, IconExpand, IconExtraBuildCapacity, IconEye, IconEyeSlash, IconFastlane, IconFileDoc, IconFilePdf, IconFilePlist, IconFileZip, IconFilter, IconFlag, IconFlutter, IconFolder, IconFullscreen, IconFullscreenExit, IconGauge, IconGit, IconGithub, IconGitlab, IconGitlabColor, IconGitlabWhite, IconGlobe, IconGo, IconGoogleColor, IconGooglePlay, IconGooglePlayColor, IconGradle, IconGroup, IconHashtag, IconHeadset, IconHeart, IconHistory, IconHourglass, IconImage, IconInfoCircle, IconInfoCircleFilled, IconInsights, IconInsightsFilled, IconInstall, IconInteraction, IconInvoice, IconIonic, IconJapanese, IconJava, IconJavaColor, IconJavaDuke, IconJavaDukeColor, IconKey, IconKotlin, IconKotlinColor, IconKotlinWhite, IconLaptop, IconLaunchdarkly, IconLegacyApp, IconLightbulb, IconLink, IconLinux, IconLock, IconLockOpen, IconLogin, IconLogout, IconMacos, IconMagicWand, IconMagnifier, IconMail, IconMedal, IconMemory, IconMenuGrid, IconMenuHamburger, IconMessage, IconMessageAlert, IconMessageQuestion, IconMicrophone, IconMinus, IconMinusCircle, IconMinusCircleFilled, IconMobile, IconMobileLandscape, IconMonitorChart, IconMoreHorizontal, IconMoreVertical, IconNews, IconNextjs, IconNodejs, IconOpenInNew, IconOther, IconOutsideContributor, IconOverview, IconPause, IconPencil, IconPeople, IconPercent, IconPerson, IconPersonWithDesk, IconPlay, IconPlus, IconPlusCircle, IconPlusCircleFilled, IconPower, IconProject, IconProjectSettings, IconPull, IconPush, IconPuzzle, IconPython, IconPythonColor, IconQuestionCircle, IconQuestionCircleFilled, IconReact, IconRefresh, IconRegex, IconRelease, IconReleaseFilled, IconRemoteAccess, IconReplace, IconResponsiveness, IconReviewerApproved, IconReviewerAssigned, IconReviewerRejected, IconRuby, IconRubyColor, IconSave, IconSecurityShield, IconSettings, IconSettingsFilled, IconShuffle, IconSiren, IconSkip, IconSkipCircle, IconSkipCircleFilled, IconSlack, IconSlackColor, IconSparkle, IconSparkleFilled, IconSpinnerOnDisabled, IconSpinnerPurple, IconSpinnerPurpleDouble, IconSpinnerWhite, IconStability, IconStack, IconStar, IconStep, IconStop, IconStopwatch, IconTag, IconTasks, IconTeams, IconTeamsColor, IconTemplateCode, IconTerminal, IconTestQuarantine, IconThemeDarkToggle, IconThumbDown, IconThumbUp, IconTools, IconTrash, IconTrigger, IconUbuntu, IconUbuntuColor, IconUnity3D, IconUpload, IconValidateShield, IconVideo, IconWarning, IconWarningYellow, IconWebUi, IconWebhooks, IconWorkflow, IconWorkflowFlow, IconXTwitter, IconXamarin, IconXcode, bitkitIcon, bitkitTheme as bitriseTheme, createBitkitToast, createTreeCollection };
@@ -36,13 +36,6 @@ var base = {
36
36
  color: "icon/interactive",
37
37
  display: "flex",
38
38
  justifyContent: "center"
39
- },
40
- itemGroupLabel: {
41
- alignItems: "center",
42
- display: "flex",
43
- gap: "16",
44
- paddingBlock: "12",
45
- paddingInline: "16"
46
39
  }
47
40
  };
48
41
  var variants = { size: {
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxAndSelect.common.js","names":[],"sources":["../../../lib/theme/common/ComboboxAndSelect.common.ts"],"sourcesContent":["import { type SystemStyleObject } from '@chakra-ui/react/styled-system';\n\nimport { rem } from '../themeUtils';\n\nexport const base: Record<string, SystemStyleObject> = {\n content: {\n background: 'background/primary',\n border: '1px solid',\n borderColor: 'border/minimal',\n zIndex: 'select',\n overflowY: 'auto',\n boxShadow: 'elevation/lg',\n _open: {\n animationStyle: 'slide-fade-in',\n animationDuration: 'fast',\n },\n _closed: {\n animationStyle: 'slide-fade-out',\n animationDuration: 'fastest',\n },\n },\n item: {\n position: 'relative',\n userSelect: 'none',\n display: 'flex',\n alignItems: 'center',\n gap: '12',\n cursor: 'option',\n justifyContent: 'space-between',\n flex: '1',\n textAlign: 'start',\n lineHeight: rem(24),\n _highlighted: {\n bg: 'background/hover',\n },\n _selected: {\n bg: 'background/selected',\n },\n },\n itemIndicator: {\n alignItems: 'center',\n color: 'icon/interactive',\n display: 'flex',\n justifyContent: 'center',\n },\n itemGroupLabel: {\n alignItems: 'center',\n display: 'flex',\n gap: '16',\n paddingBlock: '12',\n paddingInline: '16',\n },\n};\n\nexport const variants: Record<'size', Record<'md' | 'lg', Record<string, SystemStyleObject>>> = {\n size: {\n lg: {\n item: {\n paddingInline: '16',\n paddingBlock: '12',\n textStyle: 'body/lg/regular',\n _selected: {\n textStyle: 'body/lg/semibold',\n },\n },\n itemIndicator: {\n width: '24',\n height: '24',\n },\n },\n md: {\n item: {\n paddingBlock: '8',\n paddingInline: '16',\n textStyle: 'body/md/regular',\n _selected: {\n textStyle: 'body/md/semibold',\n },\n },\n itemIndicator: {\n width: '16',\n height: '16',\n },\n },\n },\n};\n"],"mappings":";;AAIA,IAAa,OAA0C;CACrD,SAAS;EACP,YAAY;EACZ,QAAQ;EACR,aAAa;EACb,QAAQ;EACR,WAAW;EACX,WAAW;EACX,OAAO;GACL,gBAAgB;GAChB,mBAAmB;GACpB;EACD,SAAS;GACP,gBAAgB;GAChB,mBAAmB;GACpB;EACF;CACD,MAAM;EACJ,UAAU;EACV,YAAY;EACZ,SAAS;EACT,YAAY;EACZ,KAAK;EACL,QAAQ;EACR,gBAAgB;EAChB,MAAM;EACN,WAAW;EACX,YAAY,IAAI,GAAG;EACnB,cAAc,EACZ,IAAI,oBACL;EACD,WAAW,EACT,IAAI,uBACL;EACF;CACD,eAAe;EACb,YAAY;EACZ,OAAO;EACP,SAAS;EACT,gBAAgB;EACjB;CACD,gBAAgB;EACd,YAAY;EACZ,SAAS;EACT,KAAK;EACL,cAAc;EACd,eAAe;EAChB;CACF;AAED,IAAa,WAAmF,EAC9F,MAAM;CACJ,IAAI;EACF,MAAM;GACJ,eAAe;GACf,cAAc;GACd,WAAW;GACX,WAAW,EACT,WAAW,oBACZ;GACF;EACD,eAAe;GACb,OAAO;GACP,QAAQ;GACT;EACF;CACD,IAAI;EACF,MAAM;GACJ,cAAc;GACd,eAAe;GACf,WAAW;GACX,WAAW,EACT,WAAW,oBACZ;GACF;EACD,eAAe;GACb,OAAO;GACP,QAAQ;GACT;EACF;CACF,EACF"}
1
+ {"version":3,"file":"ComboboxAndSelect.common.js","names":[],"sources":["../../../lib/theme/common/ComboboxAndSelect.common.ts"],"sourcesContent":["import { type SystemStyleObject } from '@chakra-ui/react/styled-system';\n\nimport { rem } from '../themeUtils';\n\nexport const base: Record<string, SystemStyleObject> = {\n content: {\n background: 'background/primary',\n border: '1px solid',\n borderColor: 'border/minimal',\n zIndex: 'select',\n overflowY: 'auto',\n boxShadow: 'elevation/lg',\n _open: {\n animationStyle: 'slide-fade-in',\n animationDuration: 'fast',\n },\n _closed: {\n animationStyle: 'slide-fade-out',\n animationDuration: 'fastest',\n },\n },\n item: {\n position: 'relative',\n userSelect: 'none',\n display: 'flex',\n alignItems: 'center',\n gap: '12',\n cursor: 'option',\n justifyContent: 'space-between',\n flex: '1',\n textAlign: 'start',\n lineHeight: rem(24),\n _highlighted: {\n bg: 'background/hover',\n },\n _selected: {\n bg: 'background/selected',\n },\n },\n itemIndicator: {\n alignItems: 'center',\n color: 'icon/interactive',\n display: 'flex',\n justifyContent: 'center',\n },\n};\n\nexport const variants: Record<'size', Record<'md' | 'lg', Record<string, SystemStyleObject>>> = {\n size: {\n lg: {\n item: {\n paddingInline: '16',\n paddingBlock: '12',\n textStyle: 'body/lg/regular',\n _selected: {\n textStyle: 'body/lg/semibold',\n },\n },\n itemIndicator: {\n width: '24',\n height: '24',\n },\n },\n md: {\n item: {\n paddingBlock: '8',\n paddingInline: '16',\n textStyle: 'body/md/regular',\n _selected: {\n textStyle: 'body/md/semibold',\n },\n },\n itemIndicator: {\n width: '16',\n height: '16',\n },\n },\n },\n};\n"],"mappings":";;AAIA,IAAa,OAA0C;CACrD,SAAS;EACP,YAAY;EACZ,QAAQ;EACR,aAAa;EACb,QAAQ;EACR,WAAW;EACX,WAAW;EACX,OAAO;GACL,gBAAgB;GAChB,mBAAmB;GACpB;EACD,SAAS;GACP,gBAAgB;GAChB,mBAAmB;GACpB;EACF;CACD,MAAM;EACJ,UAAU;EACV,YAAY;EACZ,SAAS;EACT,YAAY;EACZ,KAAK;EACL,QAAQ;EACR,gBAAgB;EAChB,MAAM;EACN,WAAW;EACX,YAAY,IAAI,GAAG;EACnB,cAAc,EACZ,IAAI,oBACL;EACD,WAAW,EACT,IAAI,uBACL;EACF;CACD,eAAe;EACb,YAAY;EACZ,OAAO;EACP,SAAS;EACT,gBAAgB;EACjB;CACF;AAED,IAAa,WAAmF,EAC9F,MAAM;CACJ,IAAI;EACF,MAAM;GACJ,eAAe;GACf,cAAc;GACd,WAAW;GACX,WAAW,EACT,WAAW,oBACZ;GACF;EACD,eAAe;GACb,OAAO;GACP,QAAQ;GACT;EACF;CACD,IAAI;EACF,MAAM;GACJ,cAAc;GACd,eAAe;GACf,WAAW;GACX,WAAW,EACT,WAAW,oBACZ;GACF;EACD,eAAe;GACb,OAAO;GACP,QAAQ;GACT;EACF;CACF,EACF"}
@@ -1,4 +1,4 @@
1
- declare const comboboxSlotRecipe: import('@chakra-ui/react').SlotRecipeDefinition<"content" | "input" | "label" | "list" | "root" | "item" | "itemIndicator" | "trigger" | "positioner" | "clearTrigger" | "control" | "itemText" | "itemGroup" | "itemGroupLabel" | "indicatorGroup" | "empty" | "emptyHelperText", {
1
+ declare const comboboxSlotRecipe: import('@chakra-ui/react').SlotRecipeDefinition<"content" | "input" | "label" | "list" | "root" | "item" | "itemIndicator" | "trigger" | "positioner" | "clearTrigger" | "control" | "emptyHelperText" | "itemText" | "itemGroup" | "itemGroupLabel" | "indicatorGroup" | "empty", {
2
2
  size: {
3
3
  md: {
4
4
  input: import('@chakra-ui/react').SystemStyleObject;
@@ -0,0 +1,48 @@
1
+ export declare const multiselectSlotRecipe: import('@chakra-ui/react').SlotRecipeDefinition<"overlay" | "trigger" | "indicator" | "control" | "indicatorGroup" | "tagsBlock" | "placeholderText", {
2
+ constrained: {
3
+ true: {
4
+ overlay: {
5
+ overflow: "hidden";
6
+ };
7
+ tagsBlock: {
8
+ flexWrap: "nowrap";
9
+ };
10
+ };
11
+ false: {};
12
+ };
13
+ size: {
14
+ lg: {
15
+ overlay: {
16
+ minHeight: "48";
17
+ paddingBlock: string;
18
+ };
19
+ trigger: {
20
+ textStyle: "body/lg/regular";
21
+ };
22
+ placeholderText: {
23
+ textStyle: "body/lg/regular";
24
+ lineHeight: string;
25
+ };
26
+ };
27
+ md: {
28
+ indicatorGroup: {
29
+ height: "40";
30
+ };
31
+ overlay: {
32
+ minHeight: "40";
33
+ paddingBlock: string;
34
+ '&:has([data-slot="tag"])': {
35
+ paddingInlineStart: string;
36
+ };
37
+ };
38
+ trigger: {
39
+ textStyle: "body/md/regular";
40
+ };
41
+ placeholderText: {
42
+ textStyle: "body/md/regular";
43
+ lineHeight: string;
44
+ };
45
+ };
46
+ };
47
+ }>;
48
+ export default multiselectSlotRecipe;