@bitrise/bitkit-v2 0.3.458 → 0.3.460-beta.2893

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 (70) hide show
  1. package/dist/components/BitkitMultiselectMenu/BitkitMultiselectMenu.d.ts +3 -3
  2. package/dist/components/BitkitMultiselectMenu/BitkitMultiselectMenu.js.map +1 -1
  3. package/dist/components/BitkitSelectMenu/BitkitSelectMenu.d.ts +7 -2
  4. package/dist/components/BitkitSelectMenu/BitkitSelectMenu.js.map +1 -1
  5. package/dist/components/BitkitSelectMenu/SelectMenuShell.d.ts +3 -3
  6. package/dist/components/BitkitSelectMenu/SelectMenuShell.js +23 -4
  7. package/dist/components/BitkitSelectMenu/SelectMenuShell.js.map +1 -1
  8. package/dist/components/BitkitUISideNav/BitkitUISideNav.d.ts +37 -0
  9. package/dist/components/BitkitUISideNav/BitkitUISideNav.js +126 -0
  10. package/dist/components/BitkitUISideNav/BitkitUISideNav.js.map +1 -0
  11. package/dist/components/BitkitUISideNav/UISideNavBody.d.ts +7 -0
  12. package/dist/components/BitkitUISideNav/UISideNavBody.js +20 -0
  13. package/dist/components/BitkitUISideNav/UISideNavBody.js.map +1 -0
  14. package/dist/components/BitkitUISideNav/UISideNavContext.d.ts +32 -0
  15. package/dist/components/BitkitUISideNav/UISideNavContext.js +28 -0
  16. package/dist/components/BitkitUISideNav/UISideNavContext.js.map +1 -0
  17. package/dist/components/BitkitUISideNav/UISideNavFooter.d.ts +16 -0
  18. package/dist/components/BitkitUISideNav/UISideNavFooter.js +28 -0
  19. package/dist/components/BitkitUISideNav/UISideNavFooter.js.map +1 -0
  20. package/dist/components/BitkitUISideNav/UISideNavFooterHeading.d.ts +12 -0
  21. package/dist/components/BitkitUISideNav/UISideNavFooterHeading.js +26 -0
  22. package/dist/components/BitkitUISideNav/UISideNavFooterHeading.js.map +1 -0
  23. package/dist/components/BitkitUISideNav/UISideNavItem.d.ts +26 -0
  24. package/dist/components/BitkitUISideNav/UISideNavItem.js +33 -0
  25. package/dist/components/BitkitUISideNav/UISideNavItem.js.map +1 -0
  26. package/dist/components/BitkitUISideNav/UISideNavLink.d.ts +30 -0
  27. package/dist/components/BitkitUISideNav/UISideNavLink.js +60 -0
  28. package/dist/components/BitkitUISideNav/UISideNavLink.js.map +1 -0
  29. package/dist/components/BitkitUISideNav/UISideNavWorkspaceSelector.d.ts +45 -0
  30. package/dist/components/BitkitUISideNav/UISideNavWorkspaceSelector.js +105 -0
  31. package/dist/components/BitkitUISideNav/UISideNavWorkspaceSelector.js.map +1 -0
  32. package/dist/components/index.d.ts +2 -0
  33. package/dist/icons/IconFile.d.ts +8 -0
  34. package/dist/icons/IconFile.js +31 -0
  35. package/dist/icons/IconFile.js.map +1 -0
  36. package/dist/icons/IconPin.d.ts +8 -0
  37. package/dist/icons/IconPin.js +31 -0
  38. package/dist/icons/IconPin.js.map +1 -0
  39. package/dist/icons/IconUnpin.d.ts +8 -0
  40. package/dist/icons/IconUnpin.js +31 -0
  41. package/dist/icons/IconUnpin.js.map +1 -0
  42. package/dist/icons/index.d.ts +3 -0
  43. package/dist/main.js +7 -1
  44. package/dist/svgs/16x16/icon-file-16.js +23 -0
  45. package/dist/svgs/16x16/icon-file-16.js.map +1 -0
  46. package/dist/svgs/16x16/icon-pin-16.js +23 -0
  47. package/dist/svgs/16x16/icon-pin-16.js.map +1 -0
  48. package/dist/svgs/16x16/icon-unpin-16.js +25 -0
  49. package/dist/svgs/16x16/icon-unpin-16.js.map +1 -0
  50. package/dist/svgs/24x24/icon-file-24.js +23 -0
  51. package/dist/svgs/24x24/icon-file-24.js.map +1 -0
  52. package/dist/svgs/24x24/icon-pin-24.js +23 -0
  53. package/dist/svgs/24x24/icon-pin-24.js.map +1 -0
  54. package/dist/svgs/24x24/icon-unpin-24.js +25 -0
  55. package/dist/svgs/24x24/icon-unpin-24.js.map +1 -0
  56. package/dist/theme/semantic-tokens/index.d.ts +17 -2
  57. package/dist/theme/semantic-tokens/semanticColors.d.ts +17 -2
  58. package/dist/theme/semantic-tokens/semanticColors.js +5 -2
  59. package/dist/theme/semantic-tokens/semanticColors.js.map +1 -1
  60. package/dist/theme/slot-recipes/DatePickerSelect.recipe.d.ts +12 -0
  61. package/dist/theme/slot-recipes/Select.recipe.d.ts +19 -1
  62. package/dist/theme/slot-recipes/Select.recipe.js +36 -1
  63. package/dist/theme/slot-recipes/Select.recipe.js.map +1 -1
  64. package/dist/theme/slot-recipes/UISideNav.recipe.d.ts +117 -0
  65. package/dist/theme/slot-recipes/UISideNav.recipe.js +448 -0
  66. package/dist/theme/slot-recipes/UISideNav.recipe.js.map +1 -0
  67. package/dist/theme/slot-recipes/index.d.ts +141 -1
  68. package/dist/theme/slot-recipes/index.js +3 -1
  69. package/dist/theme/slot-recipes/index.js.map +1 -1
  70. package/package.json +1 -1
@@ -0,0 +1,12 @@
1
+ import { TextProps } from '@chakra-ui/react/text';
2
+ export interface BitkitUISideNavFooterHeadingProps extends Omit<TextProps, 'children'> {
3
+ /** The heading, e.g. `Help`. Drawn uppercase, so write it in normal case. */
4
+ children: string;
5
+ }
6
+ /**
7
+ * Starts a further section inside a footer that already holds rows, bringing a rule of its own.
8
+ * A footer that is nothing but one titled section says the same thing with `label` — and without
9
+ * the second rule, since the footer already draws one at its top.
10
+ */
11
+ declare const UISideNavFooterHeading: import('react').ForwardRefExoticComponent<BitkitUISideNavFooterHeadingProps & import('react').RefAttributes<HTMLParagraphElement>>;
12
+ export default UISideNavFooterHeading;
@@ -0,0 +1,26 @@
1
+ import { useUISideNavContext } from "./UISideNavContext.js";
2
+ import { forwardRef } from "react";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { Text } from "@chakra-ui/react/text";
5
+ //#region lib/components/BitkitUISideNav/UISideNavFooterHeading.tsx
6
+ /**
7
+ * Starts a further section inside a footer that already holds rows, bringing a rule of its own.
8
+ * A footer that is nothing but one titled section says the same thing with `label` — and without
9
+ * the second rule, since the footer already draws one at its top.
10
+ */
11
+ var UISideNavFooterHeading = forwardRef((props, ref) => {
12
+ const { children, css, ...rest } = props;
13
+ const { styles } = useUISideNavContext();
14
+ return /* @__PURE__ */ jsx(Text, {
15
+ ref,
16
+ "data-section": "",
17
+ ...rest,
18
+ css: [styles.footerHeading, css],
19
+ children
20
+ });
21
+ });
22
+ UISideNavFooterHeading.displayName = "BitkitUISideNav.FooterHeading";
23
+ //#endregion
24
+ export { UISideNavFooterHeading as default };
25
+
26
+ //# sourceMappingURL=UISideNavFooterHeading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UISideNavFooterHeading.js","names":[],"sources":["../../../lib/components/BitkitUISideNav/UISideNavFooterHeading.tsx"],"sourcesContent":["import { Text, type TextProps } from '@chakra-ui/react/text';\nimport { forwardRef } from 'react';\n\nimport { useUISideNavContext } from './UISideNavContext';\n\nexport interface BitkitUISideNavFooterHeadingProps extends Omit<TextProps, 'children'> {\n /** The heading, e.g. `Help`. Drawn uppercase, so write it in normal case. */\n children: string;\n}\n\n/**\n * Starts a further section inside a footer that already holds rows, bringing a rule of its own.\n * A footer that is nothing but one titled section says the same thing with `label` — and without\n * the second rule, since the footer already draws one at its top.\n */\nconst UISideNavFooterHeading = forwardRef<HTMLParagraphElement, BitkitUISideNavFooterHeadingProps>((props, ref) => {\n const { children, css, ...rest } = props;\n\n const { styles } = useUISideNavContext();\n\n return (\n <Text ref={ref} data-section=\"\" {...rest} css={[styles.footerHeading, css]}>\n {children}\n </Text>\n );\n});\n\nUISideNavFooterHeading.displayName = 'BitkitUISideNav.FooterHeading';\n\nexport default UISideNavFooterHeading;\n"],"mappings":";;;;;;;;;;AAeA,IAAM,yBAAyB,YAAqE,OAAO,QAAQ;CACjH,MAAM,EAAE,UAAU,KAAK,GAAG,SAAS;CAEnC,MAAM,EAAE,WAAW,oBAAoB;CAEvC,OACE,oBAAC,MAAD;EAAW;EAAK,gBAAa;EAAG,GAAI;EAAM,KAAK,CAAC,OAAO,eAAe,GAAG;EACtE;CACG,CAAA;AAEV,CAAC;AAED,uBAAuB,cAAc"}
@@ -0,0 +1,26 @@
1
+ import { HTMLChakraProps } from '@chakra-ui/react/styled-system';
2
+ import { BitkitIconComponent } from '../../icons';
3
+ export interface BitkitUISideNavItemProps extends Omit<HTMLChakraProps<'a'>, 'children'> {
4
+ /**
5
+ * The destination. Always an anchor: the platform navigation moves between server-rendered
6
+ * product areas, so every row is a real link rather than a button with a handler.
7
+ */
8
+ href: string;
9
+ /**
10
+ * The row's label. A string rather than `ReactNode` because the collapsed rail clips it and
11
+ * the expanded rail truncates it, neither of which survives arbitrary markup.
12
+ */
13
+ children: string;
14
+ /** Shown at rest. In the collapsed rail this is the only thing visible. */
15
+ icon: BitkitIconComponent;
16
+ /** Marks the row as the current product area. The consumer decides what counts as current. */
17
+ selected?: boolean;
18
+ /**
19
+ * Swapped in for `icon` while selected. The design pairs an outline icon with its filled
20
+ * counterpart, e.g. `IconDashboard` with `IconDashboardFilled`. Without it the outline icon
21
+ * stays and only the row's colour and marker change.
22
+ */
23
+ selectedIcon?: BitkitIconComponent;
24
+ }
25
+ declare const UISideNavItem: import('react').ForwardRefExoticComponent<BitkitUISideNavItemProps & import('react').RefAttributes<HTMLAnchorElement>>;
26
+ export default UISideNavItem;
@@ -0,0 +1,33 @@
1
+ import { useUISideNavContext } from "./UISideNavContext.js";
2
+ import { Box } from "@chakra-ui/react/box";
3
+ import { chakra } from "@chakra-ui/react/styled-system";
4
+ import { forwardRef } from "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import { Text } from "@chakra-ui/react/text";
7
+ //#region lib/components/BitkitUISideNav/UISideNavItem.tsx
8
+ var UISideNavItem = forwardRef((props, ref) => {
9
+ const { children, css, icon: Icon, selected, selectedIcon: SelectedIcon, ...rest } = props;
10
+ const { styles } = useUISideNavContext();
11
+ const RowIcon = selected && SelectedIcon ? SelectedIcon : Icon;
12
+ return /* @__PURE__ */ jsxs(chakra.a, {
13
+ ref,
14
+ "aria-current": selected ? "page" : void 0,
15
+ "data-selected": selected ? "" : void 0,
16
+ ...rest,
17
+ css: [styles.item, css],
18
+ children: [
19
+ /* @__PURE__ */ jsx(RowIcon, { css: styles.itemIcon }),
20
+ /* @__PURE__ */ jsx(Text, {
21
+ as: "span",
22
+ css: styles.itemLabel,
23
+ children
24
+ }),
25
+ selected && /* @__PURE__ */ jsx(Box, { css: styles.itemIndicator })
26
+ ]
27
+ });
28
+ });
29
+ UISideNavItem.displayName = "BitkitUISideNav.Item";
30
+ //#endregion
31
+ export { UISideNavItem as default };
32
+
33
+ //# sourceMappingURL=UISideNavItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UISideNavItem.js","names":[],"sources":["../../../lib/components/BitkitUISideNav/UISideNavItem.tsx"],"sourcesContent":["import { Box } from '@chakra-ui/react/box';\nimport { chakra, type HTMLChakraProps } from '@chakra-ui/react/styled-system';\nimport { Text } from '@chakra-ui/react/text';\nimport { forwardRef } from 'react';\n\nimport { type BitkitIconComponent } from '../../icons';\nimport { useUISideNavContext } from './UISideNavContext';\n\nexport interface BitkitUISideNavItemProps extends Omit<HTMLChakraProps<'a'>, 'children'> {\n /**\n * The destination. Always an anchor: the platform navigation moves between server-rendered\n * product areas, so every row is a real link rather than a button with a handler.\n */\n href: string;\n /**\n * The row's label. A string rather than `ReactNode` because the collapsed rail clips it and\n * the expanded rail truncates it, neither of which survives arbitrary markup.\n */\n children: string;\n /** Shown at rest. In the collapsed rail this is the only thing visible. */\n icon: BitkitIconComponent;\n /** Marks the row as the current product area. The consumer decides what counts as current. */\n selected?: boolean;\n /**\n * Swapped in for `icon` while selected. The design pairs an outline icon with its filled\n * counterpart, e.g. `IconDashboard` with `IconDashboardFilled`. Without it the outline icon\n * stays and only the row's colour and marker change.\n */\n selectedIcon?: BitkitIconComponent;\n}\n\nconst UISideNavItem = forwardRef<HTMLAnchorElement, BitkitUISideNavItemProps>((props, ref) => {\n const { children, css, icon: Icon, selected, selectedIcon: SelectedIcon, ...rest } = props;\n\n const { styles } = useUISideNavContext();\n\n const RowIcon = selected && SelectedIcon ? SelectedIcon : Icon;\n\n return (\n <chakra.a\n ref={ref}\n aria-current={selected ? 'page' : undefined}\n data-selected={selected ? '' : undefined}\n {...rest}\n css={[styles.item, css]}\n >\n <RowIcon css={styles.itemIcon} />\n <Text as=\"span\" css={styles.itemLabel}>\n {children}\n </Text>\n {selected && <Box css={styles.itemIndicator} />}\n </chakra.a>\n );\n});\n\nUISideNavItem.displayName = 'BitkitUISideNav.Item';\n\nexport default UISideNavItem;\n"],"mappings":";;;;;;;AA+BA,IAAM,gBAAgB,YAAyD,OAAO,QAAQ;CAC5F,MAAM,EAAE,UAAU,KAAK,MAAM,MAAM,UAAU,cAAc,cAAc,GAAG,SAAS;CAErF,MAAM,EAAE,WAAW,oBAAoB;CAEvC,MAAM,UAAU,YAAY,eAAe,eAAe;CAE1D,OACE,qBAAC,OAAO,GAAR;EACO;EACL,gBAAc,WAAW,SAAS,KAAA;EAClC,iBAAe,WAAW,KAAK,KAAA;EAC/B,GAAI;EACJ,KAAK,CAAC,OAAO,MAAM,GAAG;EALxB,UAAA;GAOE,oBAAC,SAAD,EAAS,KAAK,OAAO,SAAW,CAAA;GAChC,oBAAC,MAAD;IAAM,IAAG;IAAO,KAAK,OAAO;IACzB;GACG,CAAA;GACL,YAAY,oBAAC,KAAD,EAAK,KAAK,OAAO,cAAgB,CAAA;EACtC;;AAEd,CAAC;AAED,cAAc,cAAc"}
@@ -0,0 +1,30 @@
1
+ import { HTMLChakraProps } from '@chakra-ui/react/styled-system';
2
+ import { BitkitIconComponent } from '../../icons';
3
+ interface UISideNavLinkCommonProps {
4
+ children: string;
5
+ icon: BitkitIconComponent;
6
+ /**
7
+ * A second line under the label, for a row that reports something rather than just naming a
8
+ * destination. It steps the row up to 56px and the label down to the smaller semibold size.
9
+ */
10
+ secondaryText?: string;
11
+ /**
12
+ * A coloured dot on the icon's trailing bottom corner. Use it with `secondaryText`, which is
13
+ * what spells the state out; the dot alone only carries colour.
14
+ */
15
+ status?: 'critical' | 'neutral' | 'success';
16
+ }
17
+ export interface BitkitUISideNavLinkAsAnchorProps extends UISideNavLinkCommonProps, Omit<HTMLChakraProps<'a'>, 'children'> {
18
+ href: string;
19
+ /** Adds the north-east arrow and the usual `target`/`rel` pair for a link leaving the app. */
20
+ isExternal?: boolean;
21
+ }
22
+ export interface BitkitUISideNavLinkAsButtonProps extends UISideNavLinkCommonProps, Omit<HTMLChakraProps<'button'>, 'children'> {
23
+ href?: undefined;
24
+ isExternal?: undefined;
25
+ /** Makes the row a button instead of a link — for one that opens a dialog rather than navigating. */
26
+ onClick: NonNullable<HTMLChakraProps<'button'>['onClick']>;
27
+ }
28
+ export type BitkitUISideNavLinkProps = BitkitUISideNavLinkAsAnchorProps | BitkitUISideNavLinkAsButtonProps;
29
+ declare const UISideNavLink: import('react').ForwardRefExoticComponent<BitkitUISideNavLinkProps & import('react').RefAttributes<HTMLAnchorElement | HTMLButtonElement>>;
30
+ export default UISideNavLink;
@@ -0,0 +1,60 @@
1
+ import IconArrowNortheast from "../../icons/IconArrowNortheast.js";
2
+ import { useUISideNavContext } from "./UISideNavContext.js";
3
+ import { Box } from "@chakra-ui/react/box";
4
+ import { chakra } from "@chakra-ui/react/styled-system";
5
+ import { forwardRef } from "react";
6
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
7
+ import { Text } from "@chakra-ui/react/text";
8
+ //#region lib/components/BitkitUISideNav/UISideNavLink.tsx
9
+ var UISideNavLink = forwardRef((props, ref) => {
10
+ const { children, icon: Icon, secondaryText, status } = props;
11
+ const { styles } = useUISideNavContext();
12
+ const content = /* @__PURE__ */ jsxs(Fragment$1, { children: [
13
+ /* @__PURE__ */ jsxs(Box, {
14
+ css: styles.linkIconBlock,
15
+ children: [/* @__PURE__ */ jsx(Icon, { css: styles.linkIcon }), status && /* @__PURE__ */ jsx(Box, {
16
+ css: styles.linkStatusDot,
17
+ "data-status": status
18
+ })]
19
+ }),
20
+ /* @__PURE__ */ jsxs(Box, {
21
+ css: styles.linkTextBlock,
22
+ children: [/* @__PURE__ */ jsx(Text, {
23
+ as: "span",
24
+ css: styles.linkLabel,
25
+ children
26
+ }), secondaryText && /* @__PURE__ */ jsx(Text, {
27
+ as: "span",
28
+ css: styles.linkSecondaryText,
29
+ children: secondaryText
30
+ })]
31
+ }),
32
+ props.isExternal && /* @__PURE__ */ jsx(IconArrowNortheast, { css: styles.linkIcon })
33
+ ] });
34
+ if (props.href === void 0) {
35
+ const { children: _children, css, href: _href, icon: _icon, isExternal: _isExternal, secondaryText: _secondaryText, status: _status, ...rest } = props;
36
+ return /* @__PURE__ */ jsx(chakra.button, {
37
+ ref,
38
+ "data-with-secondary": secondaryText ? "" : void 0,
39
+ type: "button",
40
+ ...rest,
41
+ css: [styles.link, css],
42
+ children: content
43
+ });
44
+ }
45
+ const { children: _children, css, icon: _icon, isExternal, secondaryText: _secondaryText, status: _status, ...rest } = props;
46
+ return /* @__PURE__ */ jsx(chakra.a, {
47
+ ref,
48
+ "data-with-secondary": secondaryText ? "" : void 0,
49
+ rel: isExternal ? "noopener noreferrer" : void 0,
50
+ target: isExternal ? "_blank" : void 0,
51
+ ...rest,
52
+ css: [styles.link, css],
53
+ children: content
54
+ });
55
+ });
56
+ UISideNavLink.displayName = "BitkitUISideNav.Link";
57
+ //#endregion
58
+ export { UISideNavLink as default };
59
+
60
+ //# sourceMappingURL=UISideNavLink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UISideNavLink.js","names":[],"sources":["../../../lib/components/BitkitUISideNav/UISideNavLink.tsx"],"sourcesContent":["import { Box } from '@chakra-ui/react/box';\nimport { chakra, type HTMLChakraProps } from '@chakra-ui/react/styled-system';\nimport { Text } from '@chakra-ui/react/text';\nimport { forwardRef, type Ref } from 'react';\n\nimport { type BitkitIconComponent, IconArrowNortheast } from '../../icons';\nimport { useUISideNavContext } from './UISideNavContext';\n\ninterface UISideNavLinkCommonProps {\n children: string;\n icon: BitkitIconComponent;\n /**\n * A second line under the label, for a row that reports something rather than just naming a\n * destination. It steps the row up to 56px and the label down to the smaller semibold size.\n */\n secondaryText?: string;\n /**\n * A coloured dot on the icon's trailing bottom corner. Use it with `secondaryText`, which is\n * what spells the state out; the dot alone only carries colour.\n */\n status?: 'critical' | 'neutral' | 'success';\n}\n\nexport interface BitkitUISideNavLinkAsAnchorProps\n extends UISideNavLinkCommonProps, Omit<HTMLChakraProps<'a'>, 'children'> {\n href: string;\n /** Adds the north-east arrow and the usual `target`/`rel` pair for a link leaving the app. */\n isExternal?: boolean;\n}\n\nexport interface BitkitUISideNavLinkAsButtonProps\n extends UISideNavLinkCommonProps, Omit<HTMLChakraProps<'button'>, 'children'> {\n href?: undefined;\n isExternal?: undefined;\n /** Makes the row a button instead of a link — for one that opens a dialog rather than navigating. */\n onClick: NonNullable<HTMLChakraProps<'button'>['onClick']>;\n}\n\nexport type BitkitUISideNavLinkProps = BitkitUISideNavLinkAsAnchorProps | BitkitUISideNavLinkAsButtonProps;\n\nconst UISideNavLink = forwardRef<HTMLAnchorElement | HTMLButtonElement, BitkitUISideNavLinkProps>((props, ref) => {\n const { children, icon: Icon, secondaryText, status } = props;\n\n const { styles } = useUISideNavContext();\n\n const content = (\n <>\n <Box css={styles.linkIconBlock}>\n <Icon css={styles.linkIcon} />\n {status && <Box css={styles.linkStatusDot} data-status={status} />}\n </Box>\n <Box css={styles.linkTextBlock}>\n <Text as=\"span\" css={styles.linkLabel}>\n {children}\n </Text>\n {secondaryText && (\n <Text as=\"span\" css={styles.linkSecondaryText}>\n {secondaryText}\n </Text>\n )}\n </Box>\n {props.isExternal && <IconArrowNortheast css={styles.linkIcon} />}\n </>\n );\n\n if (props.href === undefined) {\n const {\n children: _children,\n css,\n href: _href,\n icon: _icon,\n isExternal: _isExternal,\n secondaryText: _secondaryText,\n status: _status,\n ...rest\n } = props;\n\n return (\n <chakra.button\n ref={ref as Ref<HTMLButtonElement>}\n data-with-secondary={secondaryText ? '' : undefined}\n type=\"button\"\n {...rest}\n css={[styles.link, css]}\n >\n {content}\n </chakra.button>\n );\n }\n\n const {\n children: _children,\n css,\n icon: _icon,\n isExternal,\n secondaryText: _secondaryText,\n status: _status,\n ...rest\n } = props;\n\n return (\n <chakra.a\n ref={ref as Ref<HTMLAnchorElement>}\n data-with-secondary={secondaryText ? '' : undefined}\n rel={isExternal ? 'noopener noreferrer' : undefined}\n target={isExternal ? '_blank' : undefined}\n {...rest}\n css={[styles.link, css]}\n >\n {content}\n </chakra.a>\n );\n});\n\nUISideNavLink.displayName = 'BitkitUISideNav.Link';\n\nexport default UISideNavLink;\n"],"mappings":";;;;;;;;AAwCA,IAAM,gBAAgB,YAA6E,OAAO,QAAQ;CAChH,MAAM,EAAE,UAAU,MAAM,MAAM,eAAe,WAAW;CAExD,MAAM,EAAE,WAAW,oBAAoB;CAEvC,MAAM,UACJ,qBAAA,YAAA,EAAA,UAAA;EACE,qBAAC,KAAD;GAAK,KAAK,OAAO;GAAjB,UAAA,CACE,oBAAC,MAAD,EAAM,KAAK,OAAO,SAAW,CAAA,GAC5B,UAAU,oBAAC,KAAD;IAAK,KAAK,OAAO;IAAe,eAAa;GAAS,CAAA,CAC9D;;EACL,qBAAC,KAAD;GAAK,KAAK,OAAO;GAAjB,UAAA,CACE,oBAAC,MAAD;IAAM,IAAG;IAAO,KAAK,OAAO;IACzB;GACG,CAAA,GACL,iBACC,oBAAC,MAAD;IAAM,IAAG;IAAO,KAAK,OAAO;IACzB,UAAA;GACG,CAAA,CAEL;;EACJ,MAAM,cAAc,oBAAC,oBAAD,EAAoB,KAAK,OAAO,SAAW,CAAA;CAChE,EAAA,CAAA;CAGJ,IAAI,MAAM,SAAS,KAAA,GAAW;EAC5B,MAAM,EACJ,UAAU,WACV,KACA,MAAM,OACN,MAAM,OACN,YAAY,aACZ,eAAe,gBACf,QAAQ,SACR,GAAG,SACD;EAEJ,OACE,oBAAC,OAAO,QAAR;GACO;GACL,uBAAqB,gBAAgB,KAAK,KAAA;GAC1C,MAAK;GACL,GAAI;GACJ,KAAK,CAAC,OAAO,MAAM,GAAG;GAErB,UAAA;EACY,CAAA;CAEnB;CAEA,MAAM,EACJ,UAAU,WACV,KACA,MAAM,OACN,YACA,eAAe,gBACf,QAAQ,SACR,GAAG,SACD;CAEJ,OACE,oBAAC,OAAO,GAAR;EACO;EACL,uBAAqB,gBAAgB,KAAK,KAAA;EAC1C,KAAK,aAAa,wBAAwB,KAAA;EAC1C,QAAQ,aAAa,WAAW,KAAA;EAChC,GAAI;EACJ,KAAK,CAAC,OAAO,MAAM,GAAG;EAErB,UAAA;CACO,CAAA;AAEd,CAAC;AAED,cAAc,cAAc"}
@@ -0,0 +1,45 @@
1
+ import { Select, SelectTriggerProps } from '@chakra-ui/react/select';
2
+ import { BitkitSelectMenuEmptyStateProps, BitkitSelectMenuErrorStateProps, BitkitSelectMenuItemProps, BitkitSelectMenuScrollProps, BitkitSelectMenuSearchProps } from '../BitkitSelectMenu/BitkitSelectMenu';
3
+ import { BitkitSelectMenuActionChild } from '../BitkitSelectMenu/BitkitSelectMenuAction';
4
+ export type BitkitUISideNavWorkspaceProps = Pick<BitkitSelectMenuItemProps, 'label' | 'value'> & {
5
+ /**
6
+ * The workspace's logo. Leave it off and the avatar falls back to the initials of `label` —
7
+ * a workspace always has one, unlike a plain menu item.
8
+ */
9
+ avatar?: string;
10
+ };
11
+ /**
12
+ * The list length at which the design adds the search input. Below it the menu is short enough
13
+ * to read at a glance and a search field would only be in the way. Exported for the stories,
14
+ * which label each list by the side of this it falls on — not part of the package's surface.
15
+ */
16
+ export declare const searchableFrom = 6;
17
+ export type BitkitUISideNavWorkspaceSelectorProps = Omit<SelectTriggerProps, 'children' | 'onChange'> & {
18
+ /**
19
+ * A single `BitkitSelectMenuAction` shown under the list, typically "Create workspace". Its
20
+ * presence is the toggle — there is no boolean for it.
21
+ */
22
+ children?: BitkitSelectMenuActionChild;
23
+ isLoading?: boolean;
24
+ /** The small uppercase caption above the workspace name. */
25
+ label?: string;
26
+ onValueChange?: (value: string) => void;
27
+ /** The selected workspace's `value`. */
28
+ value?: string;
29
+ workspaces: Array<BitkitUISideNavWorkspaceProps>;
30
+ } & Omit<BitkitSelectMenuSearchProps, 'searchPlaceholder'> & BitkitSelectMenuScrollProps & BitkitSelectMenuEmptyStateProps & BitkitSelectMenuErrorStateProps;
31
+ declare const UISideNavWorkspaceSelector: import('react').ForwardRefExoticComponent<Omit<Select.TriggerProps, "children" | "onChange"> & {
32
+ /**
33
+ * A single `BitkitSelectMenuAction` shown under the list, typically "Create workspace". Its
34
+ * presence is the toggle — there is no boolean for it.
35
+ */
36
+ children?: BitkitSelectMenuActionChild;
37
+ isLoading?: boolean;
38
+ /** The small uppercase caption above the workspace name. */
39
+ label?: string;
40
+ onValueChange?: (value: string) => void;
41
+ /** The selected workspace's `value`. */
42
+ value?: string;
43
+ workspaces: Array<BitkitUISideNavWorkspaceProps>;
44
+ } & Omit<BitkitSelectMenuSearchProps, "searchPlaceholder"> & BitkitSelectMenuScrollProps & BitkitSelectMenuEmptyStateProps & BitkitSelectMenuErrorStateProps & import('react').RefAttributes<HTMLButtonElement>>;
45
+ export default UISideNavWorkspaceSelector;
@@ -0,0 +1,105 @@
1
+ import IconChevronDown from "../../icons/IconChevronDown.js";
2
+ import BitkitAvatar from "../BitkitAvatar/BitkitAvatar.js";
3
+ import BitkitSelectMenu from "../BitkitSelectMenu/BitkitSelectMenu.js";
4
+ import { useUISideNavContext } from "./UISideNavContext.js";
5
+ import { Box } from "@chakra-ui/react/box";
6
+ import { forwardRef, useState } from "react";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ import { Portal } from "@chakra-ui/react/portal";
9
+ import { Text } from "@chakra-ui/react/text";
10
+ import { createListCollection } from "@chakra-ui/react/collection";
11
+ import { Select } from "@chakra-ui/react/select";
12
+ var UISideNavWorkspaceSelector = forwardRef((props, ref) => {
13
+ const { children, css, emptyHelperText, emptyLabel, errorHelperText, errorLabel, isLoading, label = "Workspace", onScrolledToBottom, onSearchChange, onValueChange, searchValue, value, workspaces, ...rest } = props;
14
+ const { isMobile, menuContainerRef, setMenuOpen, styles } = useUISideNavContext();
15
+ const [ownQuery, setOwnQuery] = useState("");
16
+ const isSearchDelegated = onSearchChange !== void 0;
17
+ const query = isSearchDelegated ? searchValue : ownQuery;
18
+ const hasSearch = isSearchDelegated || workspaces.length >= 6;
19
+ const items = (isSearchDelegated || !ownQuery ? workspaces : workspaces.filter((workspace) => workspace.label.toLowerCase().includes(ownQuery.toLowerCase()))).map((workspace) => ({
20
+ ...workspace,
21
+ avatar: workspace.avatar ?? null
22
+ }));
23
+ const collection = createListCollection({ items });
24
+ const selected = workspaces.find((workspace) => workspace.value === value);
25
+ return /* @__PURE__ */ jsxs(Select.Root, {
26
+ collection,
27
+ css: styles.workspaceRoot,
28
+ onOpenChange: (details) => {
29
+ setMenuOpen(details.open);
30
+ if (!details.open) setOwnQuery("");
31
+ },
32
+ onValueChange: (details) => onValueChange?.(details.value[0]),
33
+ positioning: isMobile ? {
34
+ gutter: 0,
35
+ offset: { crossAxis: 16 },
36
+ overflowPadding: 16
37
+ } : {
38
+ gutter: -8,
39
+ offset: { crossAxis: 16 },
40
+ placement: "bottom-start"
41
+ },
42
+ size: "lg",
43
+ value: value === void 0 ? void 0 : [value],
44
+ children: [/* @__PURE__ */ jsxs(Select.Control, {
45
+ css: styles.workspaceControl,
46
+ children: [/* @__PURE__ */ jsx(Select.HiddenSelect, {}), /* @__PURE__ */ jsxs(Select.Trigger, {
47
+ ref,
48
+ ...rest,
49
+ css: [styles.workspace, css],
50
+ children: [
51
+ selected?.avatar ? /* @__PURE__ */ jsx(BitkitAvatar, {
52
+ borderColor: "border/minimal",
53
+ borderWidth: "1",
54
+ name: selected.label,
55
+ size: "40",
56
+ src: selected.avatar,
57
+ variant: "image"
58
+ }) : /* @__PURE__ */ jsx(BitkitAvatar, {
59
+ borderColor: "border/minimal",
60
+ borderWidth: "1",
61
+ name: selected?.label ?? "",
62
+ size: "40",
63
+ variant: "letters"
64
+ }),
65
+ /* @__PURE__ */ jsxs(Box, {
66
+ css: styles.workspaceTextBlock,
67
+ children: [/* @__PURE__ */ jsx(Text, {
68
+ css: styles.workspaceLabel,
69
+ children: label
70
+ }), /* @__PURE__ */ jsx(Text, {
71
+ css: styles.workspaceValue,
72
+ children: selected?.label
73
+ })]
74
+ }),
75
+ /* @__PURE__ */ jsx(Select.Indicator, {
76
+ css: styles.workspaceChevron,
77
+ children: /* @__PURE__ */ jsx(IconChevronDown, {})
78
+ })
79
+ ]
80
+ })]
81
+ }), /* @__PURE__ */ jsx(Portal, {
82
+ container: isMobile ? menuContainerRef : void 0,
83
+ children: /* @__PURE__ */ jsx(Select.Positioner, { children: /* @__PURE__ */ jsx(BitkitSelectMenu, {
84
+ collection,
85
+ contentProps: { css: styles.workspaceMenu },
86
+ emptyHelperText,
87
+ emptyLabel,
88
+ errorHelperText,
89
+ errorLabel,
90
+ isLoading,
91
+ onScrolledToBottom,
92
+ onSearchChange: hasSearch ? onSearchChange ?? setOwnQuery : void 0,
93
+ searchPlaceholder: "Search your workspaces",
94
+ searchValue: query,
95
+ size: "lg",
96
+ children
97
+ }) })
98
+ })]
99
+ });
100
+ });
101
+ UISideNavWorkspaceSelector.displayName = "BitkitUISideNav.WorkspaceSelector";
102
+ //#endregion
103
+ export { UISideNavWorkspaceSelector as default };
104
+
105
+ //# sourceMappingURL=UISideNavWorkspaceSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UISideNavWorkspaceSelector.js","names":[],"sources":["../../../lib/components/BitkitUISideNav/UISideNavWorkspaceSelector.tsx"],"sourcesContent":["import { Box } from '@chakra-ui/react/box';\nimport { createListCollection } from '@chakra-ui/react/collection';\nimport { Portal } from '@chakra-ui/react/portal';\nimport { Select, type SelectTriggerProps } from '@chakra-ui/react/select';\nimport { Text } from '@chakra-ui/react/text';\nimport { forwardRef, useState } from 'react';\n\nimport { IconChevronDown } from '../../icons';\nimport BitkitAvatar from '../BitkitAvatar/BitkitAvatar';\nimport BitkitSelectMenu, {\n type BitkitSelectMenuEmptyStateProps,\n type BitkitSelectMenuErrorStateProps,\n type BitkitSelectMenuItemProps,\n type BitkitSelectMenuScrollProps,\n type BitkitSelectMenuSearchProps,\n} from '../BitkitSelectMenu/BitkitSelectMenu';\nimport { type BitkitSelectMenuActionChild } from '../BitkitSelectMenu/BitkitSelectMenuAction';\nimport { useUISideNavContext } from './UISideNavContext';\n\nexport type BitkitUISideNavWorkspaceProps = Pick<BitkitSelectMenuItemProps, 'label' | 'value'> & {\n /**\n * The workspace's logo. Leave it off and the avatar falls back to the initials of `label` —\n * a workspace always has one, unlike a plain menu item.\n */\n avatar?: string;\n};\n\n/**\n * The list length at which the design adds the search input. Below it the menu is short enough\n * to read at a glance and a search field would only be in the way. Exported for the stories,\n * which label each list by the side of this it falls on — not part of the package's surface.\n */\nexport const searchableFrom = 6;\n\nexport type BitkitUISideNavWorkspaceSelectorProps = Omit<SelectTriggerProps, 'children' | 'onChange'> & {\n /**\n * A single `BitkitSelectMenuAction` shown under the list, typically \"Create workspace\". Its\n * presence is the toggle — there is no boolean for it.\n */\n children?: BitkitSelectMenuActionChild;\n isLoading?: boolean;\n /** The small uppercase caption above the workspace name. */\n label?: string;\n onValueChange?: (value: string) => void;\n /** The selected workspace's `value`. */\n value?: string;\n workspaces: Array<BitkitUISideNavWorkspaceProps>;\n // The copy is the design's, not the consumer's, so the placeholder is not on the way through.\n} & Omit<BitkitSelectMenuSearchProps, 'searchPlaceholder'> &\n BitkitSelectMenuScrollProps &\n BitkitSelectMenuEmptyStateProps &\n BitkitSelectMenuErrorStateProps;\n\nconst UISideNavWorkspaceSelector = forwardRef<HTMLButtonElement, BitkitUISideNavWorkspaceSelectorProps>(\n (props, ref) => {\n const {\n children,\n css,\n emptyHelperText,\n emptyLabel,\n errorHelperText,\n errorLabel,\n isLoading,\n label = 'Workspace',\n onScrolledToBottom,\n onSearchChange,\n onValueChange,\n searchValue,\n value,\n workspaces,\n ...rest\n } = props;\n\n const { isMobile, menuContainerRef, setMenuOpen, styles } = useUISideNavContext();\n\n const [ownQuery, setOwnQuery] = useState('');\n\n // A consumer that passes `onSearchChange` is searching somewhere we cannot see — a server, a\n // paged list — so `workspaces` is already the result and its length says nothing about how\n // many there are. They keep the input and the filtering; otherwise both are ours.\n const isSearchDelegated = onSearchChange !== undefined;\n const query = isSearchDelegated ? searchValue : ownQuery;\n const hasSearch = isSearchDelegated || workspaces.length >= searchableFrom;\n\n const matches =\n isSearchDelegated || !ownQuery\n ? workspaces\n : workspaces.filter((workspace) => workspace.label.toLowerCase().includes(ownQuery.toLowerCase()));\n\n // `null` rather than nothing for a workspace without a logo: that is what tells the menu to\n // draw the initials, where an absent `avatar` would leave the row with no avatar at all.\n const items: Array<BitkitSelectMenuItemProps> = matches.map((workspace) => ({\n ...workspace,\n avatar: workspace.avatar ?? null,\n }));\n\n const collection = createListCollection({ items });\n const selected = workspaces.find((workspace) => workspace.value === value);\n\n return (\n <Select.Root\n collection={collection}\n css={styles.workspaceRoot}\n onOpenChange={(details) => {\n setMenuOpen(details.open);\n if (!details.open) setOwnQuery('');\n }}\n onValueChange={(details) => onValueChange?.(details.value[0])}\n // Tucked into the rail rather than hung off it: inset from the rail's edge and lapping\n // over the workspace cell, so the menu reads as the cell unfolding.\n positioning={\n isMobile\n ? { gutter: 0, offset: { crossAxis: 16 }, overflowPadding: 16 }\n : { gutter: -8, offset: { crossAxis: 16 }, placement: 'bottom-start' }\n }\n size=\"lg\"\n value={value === undefined ? undefined : [value]}\n >\n <Select.Control css={styles.workspaceControl}>\n <Select.HiddenSelect />\n <Select.Trigger ref={ref} {...rest} css={[styles.workspace, css]}>\n {selected?.avatar ? (\n <BitkitAvatar\n borderColor=\"border/minimal\"\n borderWidth=\"1\"\n name={selected.label}\n size=\"40\"\n src={selected.avatar}\n variant=\"image\"\n />\n ) : (\n <BitkitAvatar\n borderColor=\"border/minimal\"\n borderWidth=\"1\"\n name={selected?.label ?? ''}\n size=\"40\"\n variant=\"letters\"\n />\n )}\n <Box css={styles.workspaceTextBlock}>\n <Text css={styles.workspaceLabel}>{label}</Text>\n <Text css={styles.workspaceValue}>{selected?.label}</Text>\n </Box>\n <Select.Indicator css={styles.workspaceChevron}>\n <IconChevronDown />\n </Select.Indicator>\n </Select.Trigger>\n </Select.Control>\n {/*\n In the drawer the menu goes to the panel rather than the document: the panel scrolls\n under its own header, so a menu left in the flow would travel with the rows and be\n clipped by them, and anywhere outside the panel is outside the dialog's focus trap.\n */}\n <Portal container={isMobile ? menuContainerRef : undefined}>\n <Select.Positioner>\n <BitkitSelectMenu\n collection={collection}\n contentProps={{ css: styles.workspaceMenu }}\n emptyHelperText={emptyHelperText}\n emptyLabel={emptyLabel}\n errorHelperText={errorHelperText}\n errorLabel={errorLabel}\n isLoading={isLoading}\n onScrolledToBottom={onScrolledToBottom}\n onSearchChange={hasSearch ? (onSearchChange ?? setOwnQuery) : undefined}\n searchPlaceholder=\"Search your workspaces\"\n searchValue={query}\n size=\"lg\"\n >\n {children}\n </BitkitSelectMenu>\n </Select.Positioner>\n </Portal>\n </Select.Root>\n );\n },\n);\n\nUISideNavWorkspaceSelector.displayName = 'BitkitUISideNav.WorkspaceSelector';\n\nexport default UISideNavWorkspaceSelector;\n"],"mappings":";;;;;;;;;;;AAqDA,IAAM,6BAA6B,YAChC,OAAO,QAAQ;CACd,MAAM,EACJ,UACA,KACA,iBACA,YACA,iBACA,YACA,WACA,QAAQ,aACR,oBACA,gBACA,eACA,aACA,OACA,YACA,GAAG,SACD;CAEJ,MAAM,EAAE,UAAU,kBAAkB,aAAa,WAAW,oBAAoB;CAEhF,MAAM,CAAC,UAAU,eAAe,SAAS,EAAE;CAK3C,MAAM,oBAAoB,mBAAmB,KAAA;CAC7C,MAAM,QAAQ,oBAAoB,cAAc;CAChD,MAAM,YAAY,qBAAqB,WAAW,UAAA;CASlD,MAAM,SANJ,qBAAqB,CAAC,WAClB,aACA,WAAW,QAAQ,cAAc,UAAU,MAAM,YAAY,CAAC,CAAC,SAAS,SAAS,YAAY,CAAC,CAAC,EAAA,CAI7C,KAAK,eAAe;EAC1E,GAAG;EACH,QAAQ,UAAU,UAAU;CAC9B,EAAE;CAEF,MAAM,aAAa,qBAAqB,EAAE,MAAM,CAAC;CACjD,MAAM,WAAW,WAAW,MAAM,cAAc,UAAU,UAAU,KAAK;CAEzE,OACE,qBAAC,OAAO,MAAR;EACc;EACZ,KAAK,OAAO;EACZ,eAAe,YAAY;GACzB,YAAY,QAAQ,IAAI;GACxB,IAAI,CAAC,QAAQ,MAAM,YAAY,EAAE;EACnC;EACA,gBAAgB,YAAY,gBAAgB,QAAQ,MAAM,EAAE;EAG5D,aACE,WACI;GAAE,QAAQ;GAAG,QAAQ,EAAE,WAAW,GAAG;GAAG,iBAAiB;EAAG,IAC5D;GAAE,QAAQ;GAAI,QAAQ,EAAE,WAAW,GAAG;GAAG,WAAW;EAAe;EAEzE,MAAK;EACL,OAAO,UAAU,KAAA,IAAY,KAAA,IAAY,CAAC,KAAK;EAhBjD,UAAA,CAkBE,qBAAC,OAAO,SAAR;GAAgB,KAAK,OAAO;GAA5B,UAAA,CACE,oBAAC,OAAO,cAAR,CAAsB,CAAA,GACtB,qBAAC,OAAO,SAAR;IAAqB;IAAK,GAAI;IAAM,KAAK,CAAC,OAAO,WAAW,GAAG;IAA/D,UAAA;KACG,UAAU,SACT,oBAAC,cAAD;MACE,aAAY;MACZ,aAAY;MACZ,MAAM,SAAS;MACf,MAAK;MACL,KAAK,SAAS;MACd,SAAQ;KACT,CAAA,IAED,oBAAC,cAAD;MACE,aAAY;MACZ,aAAY;MACZ,MAAM,UAAU,SAAS;MACzB,MAAK;MACL,SAAQ;KACT,CAAA;KAEH,qBAAC,KAAD;MAAK,KAAK,OAAO;MAAjB,UAAA,CACE,oBAAC,MAAD;OAAM,KAAK,OAAO;OAAiB,UAAA;MAAY,CAAA,GAC/C,oBAAC,MAAD;OAAM,KAAK,OAAO;OAAiB,UAAA,UAAU;MAAY,CAAA,CACtD;;KACL,oBAAC,OAAO,WAAR;MAAkB,KAAK,OAAO;MAC5B,UAAA,oBAAC,iBAAD,CAAkB,CAAA;KACF,CAAA;IACJ;GACF,CAAA,CAAA;EAMhB,CAAA,GAAA,oBAAC,QAAD;GAAQ,WAAW,WAAW,mBAAmB,KAAA;GAC/C,UAAA,oBAAC,OAAO,YAAR,EAAA,UACE,oBAAC,kBAAD;IACc;IACZ,cAAc,EAAE,KAAK,OAAO,cAAc;IACzB;IACL;IACK;IACL;IACD;IACS;IACpB,gBAAgB,YAAa,kBAAkB,cAAe,KAAA;IAC9D,mBAAkB;IAClB,aAAa;IACb,MAAK;IAEJ;GACe,CAAA,EACD,CAAA;EACb,CAAA,CACG;;AAEjB,CACF;AAEA,2BAA2B,cAAc"}
@@ -93,3 +93,5 @@ export { default as BitkitToggleButton, type BitkitToggleButtonProps } from './B
93
93
  export { default as BitkitTooltip, type BitkitTooltipProps } from './BitkitTooltip/BitkitTooltip';
94
94
  export { default as BitkitTour, type BitkitTourInstance, type BitkitTourOptions, type BitkitTourProps, type BitkitTourSecondaryAction, type BitkitTourStep, useBitkitTour, } from './BitkitTour/BitkitTour';
95
95
  export { default as BitkitTreeView, type BitkitTreeViewBranchProps, type BitkitTreeViewExpandedChangeDetails, type BitkitTreeViewLeafProps, type BitkitTreeViewNodeRenderProps, type BitkitTreeViewRootProps, type BitkitTreeViewSelectionChangeDetails, createTreeCollection, } from './BitkitTreeView/BitkitTreeView';
96
+ export { default as BitkitUISideNav, type BitkitUISideNavBodyProps, type BitkitUISideNavFooterHeadingProps, type BitkitUISideNavFooterProps, type BitkitUISideNavItemProps, type BitkitUISideNavLinkAsAnchorProps, type BitkitUISideNavLinkAsButtonProps, type BitkitUISideNavLinkProps, type BitkitUISideNavProps, type BitkitUISideNavWorkspaceProps, type BitkitUISideNavWorkspaceSelectorProps, uiSideNavRailWidth, } from './BitkitUISideNav/BitkitUISideNav';
97
+ export { useUISideNav } from './BitkitUISideNav/UISideNavContext';
@@ -0,0 +1,8 @@
1
+ import { IconProps } from '@chakra-ui/react/icon';
2
+ export interface IconFileProps extends IconProps {
3
+ size?: '16' | '24';
4
+ }
5
+ declare const IconFile: import('react').ForwardRefExoticComponent<IconFileProps> & {
6
+ __bitkitIcon: true;
7
+ };
8
+ export default IconFile;
@@ -0,0 +1,31 @@
1
+ import { bitkitIcon } from "./bitkitIcon.js";
2
+ import ForwardRef from "../svgs/16x16/icon-file-16.js";
3
+ import ForwardRef$1 from "../svgs/24x24/icon-file-24.js";
4
+ import { Icon } from "@chakra-ui/react/icon";
5
+ import { jsx } from "react/jsx-runtime";
6
+ //#region lib/icons/IconFile.tsx
7
+ var IconFile = bitkitIcon(function IconFile({ size = "24", ...props }, ref) {
8
+ if (size === "16") return /* @__PURE__ */ jsx(Icon, {
9
+ asChild: true,
10
+ ref,
11
+ ...props,
12
+ children: /* @__PURE__ */ jsx(ForwardRef, {
13
+ width: "16",
14
+ height: "16"
15
+ })
16
+ });
17
+ return /* @__PURE__ */ jsx(Icon, {
18
+ asChild: true,
19
+ ref,
20
+ ...props,
21
+ children: /* @__PURE__ */ jsx(ForwardRef$1, {
22
+ width: "24",
23
+ height: "24"
24
+ })
25
+ });
26
+ });
27
+ IconFile.displayName = "IconFile";
28
+ //#endregion
29
+ export { IconFile as default };
30
+
31
+ //# sourceMappingURL=IconFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconFile.js","names":[],"sources":["../../lib/icons/IconFile.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-file-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-file-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconFileProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconFile = bitkitIcon(function IconFile({ size = '24', ...props }: IconFileProps, ref: Ref<SVGSVGElement>) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconFile.displayName = 'IconFile';\n\nexport default IconFile;\n"],"mappings":";;;;;;AAaA,IAAM,WAAW,WAAW,SAAS,SAAS,EAAE,OAAO,MAAM,GAAG,SAAwB,KAAyB;CAC/G,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,SAAS,cAAc"}
@@ -0,0 +1,8 @@
1
+ import { IconProps } from '@chakra-ui/react/icon';
2
+ export interface IconPinProps extends IconProps {
3
+ size?: '16' | '24';
4
+ }
5
+ declare const IconPin: import('react').ForwardRefExoticComponent<IconPinProps> & {
6
+ __bitkitIcon: true;
7
+ };
8
+ export default IconPin;
@@ -0,0 +1,31 @@
1
+ import { bitkitIcon } from "./bitkitIcon.js";
2
+ import ForwardRef from "../svgs/16x16/icon-pin-16.js";
3
+ import ForwardRef$1 from "../svgs/24x24/icon-pin-24.js";
4
+ import { Icon } from "@chakra-ui/react/icon";
5
+ import { jsx } from "react/jsx-runtime";
6
+ //#region lib/icons/IconPin.tsx
7
+ var IconPin = bitkitIcon(function IconPin({ size = "24", ...props }, ref) {
8
+ if (size === "16") return /* @__PURE__ */ jsx(Icon, {
9
+ asChild: true,
10
+ ref,
11
+ ...props,
12
+ children: /* @__PURE__ */ jsx(ForwardRef, {
13
+ width: "16",
14
+ height: "16"
15
+ })
16
+ });
17
+ return /* @__PURE__ */ jsx(Icon, {
18
+ asChild: true,
19
+ ref,
20
+ ...props,
21
+ children: /* @__PURE__ */ jsx(ForwardRef$1, {
22
+ width: "24",
23
+ height: "24"
24
+ })
25
+ });
26
+ });
27
+ IconPin.displayName = "IconPin";
28
+ //#endregion
29
+ export { IconPin as default };
30
+
31
+ //# sourceMappingURL=IconPin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconPin.js","names":[],"sources":["../../lib/icons/IconPin.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-pin-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-pin-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconPinProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconPin = bitkitIcon(function IconPin({ size = '24', ...props }: IconPinProps, ref: Ref<SVGSVGElement>) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconPin.displayName = 'IconPin';\n\nexport default IconPin;\n"],"mappings":";;;;;;AAaA,IAAM,UAAU,WAAW,SAAS,QAAQ,EAAE,OAAO,MAAM,GAAG,SAAuB,KAAyB;CAC5G,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,QAAQ,cAAc"}
@@ -0,0 +1,8 @@
1
+ import { IconProps } from '@chakra-ui/react/icon';
2
+ export interface IconUnpinProps extends IconProps {
3
+ size?: '16' | '24';
4
+ }
5
+ declare const IconUnpin: import('react').ForwardRefExoticComponent<IconUnpinProps> & {
6
+ __bitkitIcon: true;
7
+ };
8
+ export default IconUnpin;
@@ -0,0 +1,31 @@
1
+ import { bitkitIcon } from "./bitkitIcon.js";
2
+ import ForwardRef from "../svgs/16x16/icon-unpin-16.js";
3
+ import ForwardRef$1 from "../svgs/24x24/icon-unpin-24.js";
4
+ import { Icon } from "@chakra-ui/react/icon";
5
+ import { jsx } from "react/jsx-runtime";
6
+ //#region lib/icons/IconUnpin.tsx
7
+ var IconUnpin = bitkitIcon(function IconUnpin({ size = "24", ...props }, ref) {
8
+ if (size === "16") return /* @__PURE__ */ jsx(Icon, {
9
+ asChild: true,
10
+ ref,
11
+ ...props,
12
+ children: /* @__PURE__ */ jsx(ForwardRef, {
13
+ width: "16",
14
+ height: "16"
15
+ })
16
+ });
17
+ return /* @__PURE__ */ jsx(Icon, {
18
+ asChild: true,
19
+ ref,
20
+ ...props,
21
+ children: /* @__PURE__ */ jsx(ForwardRef$1, {
22
+ width: "24",
23
+ height: "24"
24
+ })
25
+ });
26
+ });
27
+ IconUnpin.displayName = "IconUnpin";
28
+ //#endregion
29
+ export { IconUnpin as default };
30
+
31
+ //# sourceMappingURL=IconUnpin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconUnpin.js","names":[],"sources":["../../lib/icons/IconUnpin.tsx"],"sourcesContent":["// This file is auto-generated by 'scripts/generateIconComponents.ts'. Do not edit it manually.\n\nimport { Icon, type IconProps } from '@chakra-ui/react/icon';\nimport { type Ref } from 'react';\n\nimport SVG16 from '../svgs/16x16/icon-unpin-16.svg?react';\nimport SVG24 from '../svgs/24x24/icon-unpin-24.svg?react';\nimport { bitkitIcon } from './bitkitIcon';\n\nexport interface IconUnpinProps extends IconProps {\n size?: '16' | '24';\n}\n\nconst IconUnpin = bitkitIcon(function IconUnpin({ size = '24', ...props }: IconUnpinProps, ref: Ref<SVGSVGElement>) {\n if (size === '16') {\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG16 width=\"16\" height=\"16\" />\n </Icon>\n );\n }\n\n return (\n <Icon asChild ref={ref} {...props}>\n <SVG24 width=\"24\" height=\"24\" />\n </Icon>\n );\n});\n\nIconUnpin.displayName = 'IconUnpin';\n\nexport default IconUnpin;\n"],"mappings":";;;;;;AAaA,IAAM,YAAY,WAAW,SAAS,UAAU,EAAE,OAAO,MAAM,GAAG,SAAyB,KAAyB;CAClH,IAAI,SAAS,MACX,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,YAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;CAIV,OACE,oBAAC,MAAD;EAAM,SAAA;EAAa;EAAK,GAAI;EAC1B,UAAA,oBAAC,cAAD;GAAO,OAAM;GAAK,QAAO;EAAM,CAAA;CAC3B,CAAA;AAEV,CAAC;AAED,UAAU,cAAc"}
@@ -132,6 +132,7 @@ export { default as IconExtraBuildCapacity, type IconExtraBuildCapacityProps } f
132
132
  export { default as IconEye, type IconEyeProps } from './IconEye';
133
133
  export { default as IconEyeSlash, type IconEyeSlashProps } from './IconEyeSlash';
134
134
  export { default as IconFastlane, type IconFastlaneProps } from './IconFastlane';
135
+ export { default as IconFile, type IconFileProps } from './IconFile';
135
136
  export { default as IconFileDoc, type IconFileDocProps } from './IconFileDoc';
136
137
  export { default as IconFilePdf, type IconFilePdfProps } from './IconFilePdf';
137
138
  export { default as IconFilePlist, type IconFilePlistProps } from './IconFilePlist';
@@ -224,6 +225,7 @@ export { default as IconPeople, type IconPeopleProps } from './IconPeople';
224
225
  export { default as IconPercent, type IconPercentProps } from './IconPercent';
225
226
  export { default as IconPerson, type IconPersonProps } from './IconPerson';
226
227
  export { default as IconPersonWithDesk, type IconPersonWithDeskProps } from './IconPersonWithDesk';
228
+ export { default as IconPin, type IconPinProps } from './IconPin';
227
229
  export { default as IconPlay, type IconPlayProps } from './IconPlay';
228
230
  export { default as IconPlus, type IconPlusProps } from './IconPlus';
229
231
  export { default as IconPlusCircle, type IconPlusCircleProps } from './IconPlusCircle';
@@ -292,6 +294,7 @@ export { default as IconTrigger, type IconTriggerProps } from './IconTrigger';
292
294
  export { default as IconUbuntu, type IconUbuntuProps } from './IconUbuntu';
293
295
  export { default as IconUbuntuColor, type IconUbuntuColorProps } from './IconUbuntuColor';
294
296
  export { default as IconUnity3D, type IconUnity3DProps } from './IconUnity3D';
297
+ export { default as IconUnpin, type IconUnpinProps } from './IconUnpin';
295
298
  export { default as IconUpload, type IconUploadProps } from './IconUpload';
296
299
  export { default as IconValidateShield, type IconValidateShieldProps } from './IconValidateShield';
297
300
  export { default as IconVideo, type IconVideoProps } from './IconVideo';