@channel.io/bezier-react 2.0.5 → 2.0.6

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 (62) hide show
  1. package/dist/cjs/components/AlphaButton/Button.js +18 -10
  2. package/dist/cjs/components/AlphaButton/Button.js.map +1 -1
  3. package/dist/cjs/components/AlphaFloatingButton/FloatingButton.js +18 -9
  4. package/dist/cjs/components/AlphaFloatingButton/FloatingButton.js.map +1 -1
  5. package/dist/cjs/components/AlphaFloatingIconButton/FloatingIconButton.js +57 -0
  6. package/dist/cjs/components/AlphaFloatingIconButton/FloatingIconButton.js.map +1 -0
  7. package/dist/cjs/components/AlphaFloatingIconButton/FloatingIconButton.module.scss.js +8 -0
  8. package/dist/cjs/components/AlphaFloatingIconButton/FloatingIconButton.module.scss.js.map +1 -0
  9. package/dist/cjs/components/AlphaIconButton/IconButton.js +5 -5
  10. package/dist/cjs/components/AlphaIconButton/IconButton.js.map +1 -1
  11. package/dist/cjs/index.js +2 -0
  12. package/dist/cjs/index.js.map +1 -1
  13. package/dist/cjs/styles.css +1 -1
  14. package/dist/esm/components/AlphaButton/Button.mjs +18 -10
  15. package/dist/esm/components/AlphaButton/Button.mjs.map +1 -1
  16. package/dist/esm/components/AlphaFloatingButton/FloatingButton.mjs +18 -9
  17. package/dist/esm/components/AlphaFloatingButton/FloatingButton.mjs.map +1 -1
  18. package/dist/esm/components/AlphaFloatingIconButton/FloatingIconButton.mjs +55 -0
  19. package/dist/esm/components/AlphaFloatingIconButton/FloatingIconButton.mjs.map +1 -0
  20. package/dist/esm/components/AlphaFloatingIconButton/FloatingIconButton.module.scss.mjs +4 -0
  21. package/dist/esm/components/AlphaFloatingIconButton/FloatingIconButton.module.scss.mjs.map +1 -0
  22. package/dist/esm/components/AlphaIconButton/IconButton.mjs +5 -5
  23. package/dist/esm/components/AlphaIconButton/IconButton.mjs.map +1 -1
  24. package/dist/esm/index.mjs +1 -0
  25. package/dist/esm/index.mjs.map +1 -1
  26. package/dist/esm/styles.css +1 -1
  27. package/dist/types/components/AlphaButton/Button.d.ts.map +1 -1
  28. package/dist/types/components/AlphaButton/Button.types.d.ts +3 -2
  29. package/dist/types/components/AlphaButton/Button.types.d.ts.map +1 -1
  30. package/dist/types/components/AlphaFloatingButton/FloatingButton.d.ts.map +1 -1
  31. package/dist/types/components/AlphaFloatingButton/FloatingButton.types.d.ts +3 -2
  32. package/dist/types/components/AlphaFloatingButton/FloatingButton.types.d.ts.map +1 -1
  33. package/dist/types/components/AlphaFloatingIconButton/FloatingIconButton.d.ts +4 -0
  34. package/dist/types/components/AlphaFloatingIconButton/FloatingIconButton.d.ts.map +1 -0
  35. package/dist/types/components/AlphaFloatingIconButton/FloatingIconButton.types.d.ts +37 -0
  36. package/dist/types/components/AlphaFloatingIconButton/FloatingIconButton.types.d.ts.map +1 -0
  37. package/dist/types/components/AlphaFloatingIconButton/index.d.ts +3 -0
  38. package/dist/types/components/AlphaFloatingIconButton/index.d.ts.map +1 -0
  39. package/dist/types/components/AlphaIconButton/IconButton.d.ts.map +1 -1
  40. package/dist/types/components/AlphaIconButton/IconButton.types.d.ts +3 -2
  41. package/dist/types/components/AlphaIconButton/IconButton.types.d.ts.map +1 -1
  42. package/dist/types/components/AlphaIconButton/index.d.ts +1 -1
  43. package/dist/types/components/AlphaIconButton/index.d.ts.map +1 -1
  44. package/dist/types/index.d.ts +1 -0
  45. package/dist/types/index.d.ts.map +1 -1
  46. package/package.json +1 -1
  47. package/src/components/AlphaButton/AlphaButton.stories.tsx +2 -2
  48. package/src/components/AlphaButton/Button.tsx +34 -20
  49. package/src/components/AlphaButton/Button.types.ts +4 -2
  50. package/src/components/AlphaFloatingButton/AlphaFloatingButton.stories.tsx +2 -2
  51. package/src/components/AlphaFloatingButton/FloatingButton.tsx +30 -17
  52. package/src/components/AlphaFloatingButton/FloatingButton.types.ts +4 -2
  53. package/src/components/AlphaFloatingIconButton/AlphaFloatingIconButton.stories.tsx +28 -0
  54. package/src/components/AlphaFloatingIconButton/FloatingIconButton.module.scss +175 -0
  55. package/src/components/AlphaFloatingIconButton/FloatingIconButton.tsx +91 -0
  56. package/src/components/AlphaFloatingIconButton/FloatingIconButton.types.ts +64 -0
  57. package/src/components/AlphaFloatingIconButton/index.ts +2 -0
  58. package/src/components/AlphaIconButton/AlphaIconButton.stories.tsx +1 -1
  59. package/src/components/AlphaIconButton/IconButton.tsx +6 -4
  60. package/src/components/AlphaIconButton/IconButton.types.ts +5 -3
  61. package/src/components/AlphaIconButton/index.ts +1 -1
  62. package/src/index.ts +1 -0
@@ -1,13 +1,24 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
+ var bezierIcons = require('@channel.io/bezier-icons');
4
5
  var index = require('../../node_modules/classnames/index.js');
5
6
  var Button_module = require('./Button.module.scss.js');
6
- var Icon = require('../Icon/Icon.js');
7
7
  var Text = require('../Text/Text.js');
8
8
  var Spinner = require('../Spinner/Spinner.js');
9
9
  var BaseButton = require('../BaseButton/BaseButton.js');
10
+ var Icon = require('../Icon/Icon.js');
10
11
 
12
+ function SideContent({
13
+ size,
14
+ content
15
+ }) {
16
+ return bezierIcons.isBezierIcon(content) ? /*#__PURE__*/React.createElement(Icon.Icon, {
17
+ source: content,
18
+ size: size,
19
+ className: Button_module.default.ButtonIcon
20
+ }) : content;
21
+ }
11
22
  function getIconSize(size) {
12
23
  return {
13
24
  xs: 'xxs',
@@ -38,12 +49,11 @@ function getTypography(size) {
38
49
  const Button = /*#__PURE__*/React.forwardRef(function Button({
39
50
  as = BaseButton.BaseButton,
40
51
  text,
41
- prefixIcon,
42
- suffixIcon,
52
+ prefixContent,
53
+ suffixContent,
43
54
  color = 'blue',
44
55
  variant = 'primary',
45
56
  size = 'm',
46
- disabled,
47
57
  active,
48
58
  className,
49
59
  loading,
@@ -55,18 +65,16 @@ const Button = /*#__PURE__*/React.forwardRef(function Button({
55
65
  className: index.default(Button_module.default.Button, Button_module.default[`size-${size}`], Button_module.default[`variant-${variant}`], Button_module.default[`color-${color}`], active && Button_module.default.active, className)
56
66
  }, rest), /*#__PURE__*/React.createElement("div", {
57
67
  className: index.default(Button_module.default.ButtonContent, loading && Button_module.default.loading)
58
- }, prefixIcon && /*#__PURE__*/React.createElement(Icon.Icon, {
68
+ }, /*#__PURE__*/React.createElement(SideContent, {
59
69
  size: getIconSize(size),
60
- source: prefixIcon,
61
- className: Button_module.default.ButtonIcon
70
+ content: prefixContent
62
71
  }), /*#__PURE__*/React.createElement(Text.Text, {
63
72
  className: Button_module.default.ButtonText,
64
73
  typo: getTypography(size),
65
74
  bold: true
66
- }, text), suffixIcon && /*#__PURE__*/React.createElement(Icon.Icon, {
75
+ }, text), /*#__PURE__*/React.createElement(SideContent, {
67
76
  size: getIconSize(size),
68
- source: suffixIcon,
69
- className: Button_module.default.ButtonIcon
77
+ content: suffixContent
70
78
  })), loading && /*#__PURE__*/React.createElement("div", {
71
79
  className: Button_module.default.ButtonLoader
72
80
  }, /*#__PURE__*/React.createElement(Spinner.Spinner, {
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sources":["../../../../src/components/AlphaButton/Button.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport { type ButtonProps } from '~/src/components/AlphaButton/Button.types'\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { type ButtonSize } from '~/src/components/Button'\nimport { Icon } from '~/src/components/Icon'\nimport { Spinner } from '~/src/components/Spinner'\nimport { Text } from '~/src/components/Text'\n\nimport styles from './Button.module.scss'\n\nfunction getIconSize(size: ButtonSize) {\n return (\n {\n xs: 'xxs',\n s: 'xs',\n m: 's',\n l: 's',\n xl: 'm',\n } as const\n )[size]\n}\n\nfunction getSpinnerSize(size: ButtonSize) {\n return (\n {\n xs: 'xs',\n s: 'xs',\n m: 's',\n l: 's',\n xl: 's',\n } as const\n )[size]\n}\n\nfunction getTypography(size: ButtonSize) {\n return (\n {\n xs: '13',\n s: '13',\n m: '14',\n l: '15',\n xl: '18',\n } as const\n )[size]\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n function Button(\n {\n as = BaseButton,\n text,\n prefixIcon,\n suffixIcon,\n color = 'blue',\n variant = 'primary',\n size = 'm',\n disabled,\n active,\n className,\n loading,\n ...rest\n },\n forwardedRef\n ) {\n const Comp = as as typeof BaseButton\n\n return (\n <Comp\n ref={forwardedRef}\n className={classNames(\n styles.Button,\n styles[`size-${size}`],\n styles[`variant-${variant}`],\n styles[`color-${color}`],\n active && styles.active,\n className\n )}\n {...rest}\n >\n <div\n className={classNames(\n styles.ButtonContent,\n loading && styles.loading\n )}\n >\n {prefixIcon && (\n <Icon\n size={getIconSize(size)}\n source={prefixIcon}\n className={styles.ButtonIcon}\n />\n )}\n\n {/* TODO: use AlphaText later, add typo */}\n <Text\n className={styles.ButtonText}\n typo={getTypography(size)}\n bold\n >\n {text}\n </Text>\n\n {suffixIcon && (\n <Icon\n size={getIconSize(size)}\n source={suffixIcon}\n className={styles.ButtonIcon}\n />\n )}\n </div>\n\n {/* TODO: use AlphaSpinner */}\n {loading && (\n <div className={styles.ButtonLoader}>\n <Spinner size={getSpinnerSize(size)} />\n </div>\n )}\n </Comp>\n )\n }\n)\n"],"names":["getIconSize","size","xs","s","m","l","xl","getSpinnerSize","getTypography","Button","forwardRef","as","BaseButton","text","prefixIcon","suffixIcon","color","variant","disabled","active","className","loading","rest","forwardedRef","Comp","React","createElement","Object","assign","ref","classNames","styles","ButtonContent","Icon","source","ButtonIcon","Text","ButtonText","typo","bold","ButtonLoader","Spinner"],"mappings":"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"}
1
+ {"version":3,"file":"Button.js","sources":["../../../../src/components/AlphaButton/Button.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport { isBezierIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport {\n type ButtonProps,\n type ButtonSize,\n} from '~/src/components/AlphaButton/Button.types'\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { Icon, type IconSize } from '~/src/components/Icon'\nimport { Spinner } from '~/src/components/Spinner'\nimport { Text } from '~/src/components/Text'\n\nimport styles from './Button.module.scss'\n\nfunction SideContent({\n size,\n content,\n}: {\n size: IconSize\n content?: ButtonProps['prefixContent']\n}) {\n return isBezierIcon(content) ? (\n <Icon\n source={content}\n size={size}\n className={styles.ButtonIcon}\n />\n ) : (\n content\n )\n}\n\nfunction getIconSize(size: ButtonSize) {\n return (\n {\n xs: 'xxs',\n s: 'xs',\n m: 's',\n l: 's',\n xl: 'm',\n } as const\n )[size]\n}\n\nfunction getSpinnerSize(size: ButtonSize) {\n return (\n {\n xs: 'xs',\n s: 'xs',\n m: 's',\n l: 's',\n xl: 's',\n } as const\n )[size]\n}\n\nfunction getTypography(size: ButtonSize) {\n return (\n {\n xs: '13',\n s: '13',\n m: '14',\n l: '15',\n xl: '18',\n } as const\n )[size]\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n function Button(\n {\n as = BaseButton,\n text,\n prefixContent,\n suffixContent,\n color = 'blue',\n variant = 'primary',\n size = 'm',\n active,\n className,\n loading,\n ...rest\n },\n forwardedRef\n ) {\n const Comp = as as typeof BaseButton\n\n return (\n <Comp\n ref={forwardedRef}\n className={classNames(\n styles.Button,\n styles[`size-${size}`],\n styles[`variant-${variant}`],\n styles[`color-${color}`],\n active && styles.active,\n className\n )}\n {...rest}\n >\n <div\n className={classNames(\n styles.ButtonContent,\n loading && styles.loading\n )}\n >\n <SideContent\n size={getIconSize(size)}\n content={prefixContent}\n />\n\n {/* TODO: use AlphaText later, add typo */}\n <Text\n className={styles.ButtonText}\n typo={getTypography(size)}\n bold\n >\n {text}\n </Text>\n\n <SideContent\n size={getIconSize(size)}\n content={suffixContent}\n />\n </div>\n\n {/* TODO: use AlphaSpinner */}\n {loading && (\n <div className={styles.ButtonLoader}>\n <Spinner size={getSpinnerSize(size)} />\n </div>\n )}\n </Comp>\n )\n }\n)\n"],"names":["SideContent","size","content","isBezierIcon","React","createElement","Icon","source","className","styles","ButtonIcon","getIconSize","xs","s","m","l","xl","getSpinnerSize","getTypography","Button","forwardRef","as","BaseButton","text","prefixContent","suffixContent","color","variant","active","loading","rest","forwardedRef","Comp","Object","assign","ref","classNames","ButtonContent","Text","ButtonText","typo","bold","ButtonLoader","Spinner"],"mappings":"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"}
@@ -1,13 +1,24 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
+ var bezierIcons = require('@channel.io/bezier-icons');
4
5
  var index = require('../../node_modules/classnames/index.js');
5
6
  var FloatingButton_module = require('./FloatingButton.module.scss.js');
6
- var Icon = require('../Icon/Icon.js');
7
7
  var Text = require('../Text/Text.js');
8
8
  var Spinner = require('../Spinner/Spinner.js');
9
9
  var BaseButton = require('../BaseButton/BaseButton.js');
10
+ var Icon = require('../Icon/Icon.js');
10
11
 
12
+ function SideContent({
13
+ size,
14
+ content
15
+ }) {
16
+ return bezierIcons.isBezierIcon(content) ? /*#__PURE__*/React.createElement(Icon.Icon, {
17
+ source: content,
18
+ size: size,
19
+ className: FloatingButton_module.default.ButtonIcon
20
+ }) : content;
21
+ }
11
22
  function getIconSize(size) {
12
23
  return {
13
24
  xs: 'xxs',
@@ -38,8 +49,8 @@ function getTypography(size) {
38
49
  const FloatingButton = /*#__PURE__*/React.forwardRef(function Button({
39
50
  as = BaseButton.BaseButton,
40
51
  text,
41
- prefixIcon,
42
- suffixIcon,
52
+ prefixContent,
53
+ suffixContent,
43
54
  color = 'blue',
44
55
  variant = 'primary',
45
56
  size = 'm',
@@ -54,18 +65,16 @@ const FloatingButton = /*#__PURE__*/React.forwardRef(function Button({
54
65
  className: index.default(FloatingButton_module.default.FloatingButton, FloatingButton_module.default[`size-${size}`], FloatingButton_module.default[`variant-${variant}`], FloatingButton_module.default[`color-${color}`], active && FloatingButton_module.default.active, className)
55
66
  }, rest), /*#__PURE__*/React.createElement("div", {
56
67
  className: index.default(FloatingButton_module.default.ButtonContent, loading && FloatingButton_module.default.loading)
57
- }, prefixIcon && /*#__PURE__*/React.createElement(Icon.Icon, {
68
+ }, /*#__PURE__*/React.createElement(SideContent, {
58
69
  size: getIconSize(size),
59
- source: prefixIcon,
60
- className: FloatingButton_module.default.ButtonIcon
70
+ content: prefixContent
61
71
  }), /*#__PURE__*/React.createElement(Text.Text, {
62
72
  className: FloatingButton_module.default.ButtonText,
63
73
  typo: getTypography(size),
64
74
  bold: true
65
- }, text), suffixIcon && /*#__PURE__*/React.createElement(Icon.Icon, {
75
+ }, text), /*#__PURE__*/React.createElement(SideContent, {
66
76
  size: getIconSize(size),
67
- source: suffixIcon,
68
- className: FloatingButton_module.default.ButtonIcon
77
+ content: suffixContent
69
78
  })), loading && /*#__PURE__*/React.createElement("div", {
70
79
  className: FloatingButton_module.default.ButtonLoader
71
80
  }, /*#__PURE__*/React.createElement(Spinner.Spinner, {
@@ -1 +1 @@
1
- {"version":3,"file":"FloatingButton.js","sources":["../../../../src/components/AlphaFloatingButton/FloatingButton.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport {\n type FloatingButtonProps,\n type FloatingButtonSize,\n} from '~/src/components/AlphaFloatingButton/FloatingButton.types'\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { Icon } from '~/src/components/Icon'\nimport { Spinner } from '~/src/components/Spinner'\nimport { Text } from '~/src/components/Text'\n\nimport styles from './FloatingButton.module.scss'\n\nfunction getIconSize(size: FloatingButtonSize) {\n return (\n {\n xs: 'xxs',\n s: 'xs',\n m: 's',\n l: 's',\n xl: 'm',\n } as const\n )[size]\n}\n\nfunction getSpinnerSize(size: FloatingButtonSize) {\n return (\n {\n xs: 'xs',\n s: 'xs',\n m: 's',\n l: 's',\n xl: 's',\n } as const\n )[size]\n}\n\nfunction getTypography(size: FloatingButtonSize) {\n return (\n {\n xs: '13',\n s: '13',\n m: '14',\n l: '15',\n xl: '18',\n } as const\n )[size]\n}\n\nexport const FloatingButton = forwardRef<\n HTMLButtonElement,\n FloatingButtonProps\n>(function Button(\n {\n as = BaseButton,\n text,\n prefixIcon,\n suffixIcon,\n color = 'blue',\n variant = 'primary',\n size = 'm',\n active,\n className,\n loading,\n ...rest\n },\n forwardedRef\n) {\n const Comp = as as typeof BaseButton\n\n return (\n <Comp\n ref={forwardedRef}\n className={classNames(\n styles.FloatingButton,\n styles[`size-${size}`],\n styles[`variant-${variant}`],\n styles[`color-${color}`],\n active && styles.active,\n className\n )}\n {...rest}\n >\n <div\n className={classNames(styles.ButtonContent, loading && styles.loading)}\n >\n {prefixIcon && (\n <Icon\n size={getIconSize(size)}\n source={prefixIcon}\n className={styles.ButtonIcon}\n />\n )}\n\n {/* TODO: use AlphaText later, add typo */}\n <Text\n className={styles.ButtonText}\n typo={getTypography(size)}\n bold\n >\n {text}\n </Text>\n\n {suffixIcon && (\n <Icon\n size={getIconSize(size)}\n source={suffixIcon}\n className={styles.ButtonIcon}\n />\n )}\n </div>\n\n {/* TODO: use AlphaSpinner */}\n {loading && (\n <div className={styles.ButtonLoader}>\n <Spinner size={getSpinnerSize(size)} />\n </div>\n )}\n </Comp>\n )\n})\n"],"names":["getIconSize","size","xs","s","m","l","xl","getSpinnerSize","getTypography","FloatingButton","forwardRef","Button","as","BaseButton","text","prefixIcon","suffixIcon","color","variant","active","className","loading","rest","forwardedRef","Comp","React","createElement","Object","assign","ref","classNames","styles","ButtonContent","Icon","source","ButtonIcon","Text","ButtonText","typo","bold","ButtonLoader","Spinner"],"mappings":"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"}
1
+ {"version":3,"file":"FloatingButton.js","sources":["../../../../src/components/AlphaFloatingButton/FloatingButton.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport { isBezierIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport {\n type FloatingButtonProps,\n type FloatingButtonSize,\n} from '~/src/components/AlphaFloatingButton/FloatingButton.types'\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { Icon, type IconSize } from '~/src/components/Icon'\nimport { Spinner } from '~/src/components/Spinner'\nimport { Text } from '~/src/components/Text'\n\nimport styles from './FloatingButton.module.scss'\n\nfunction SideContent({\n size,\n content,\n}: {\n size: IconSize\n content?: FloatingButtonProps['prefixContent']\n}) {\n return isBezierIcon(content) ? (\n <Icon\n source={content}\n size={size}\n className={styles.ButtonIcon}\n />\n ) : (\n content\n )\n}\n\nfunction getIconSize(size: FloatingButtonSize) {\n return (\n {\n xs: 'xxs',\n s: 'xs',\n m: 's',\n l: 's',\n xl: 'm',\n } as const\n )[size]\n}\n\nfunction getSpinnerSize(size: FloatingButtonSize) {\n return (\n {\n xs: 'xs',\n s: 'xs',\n m: 's',\n l: 's',\n xl: 's',\n } as const\n )[size]\n}\n\nfunction getTypography(size: FloatingButtonSize) {\n return (\n {\n xs: '13',\n s: '13',\n m: '14',\n l: '15',\n xl: '18',\n } as const\n )[size]\n}\n\nexport const FloatingButton = forwardRef<\n HTMLButtonElement,\n FloatingButtonProps\n>(function Button(\n {\n as = BaseButton,\n text,\n prefixContent,\n suffixContent,\n color = 'blue',\n variant = 'primary',\n size = 'm',\n active,\n className,\n loading,\n ...rest\n },\n forwardedRef\n) {\n const Comp = as as typeof BaseButton\n\n return (\n <Comp\n ref={forwardedRef}\n className={classNames(\n styles.FloatingButton,\n styles[`size-${size}`],\n styles[`variant-${variant}`],\n styles[`color-${color}`],\n active && styles.active,\n className\n )}\n {...rest}\n >\n <div\n className={classNames(styles.ButtonContent, loading && styles.loading)}\n >\n <SideContent\n size={getIconSize(size)}\n content={prefixContent}\n />\n\n {/* TODO: use AlphaText later, add typo */}\n <Text\n className={styles.ButtonText}\n typo={getTypography(size)}\n bold\n >\n {text}\n </Text>\n\n <SideContent\n size={getIconSize(size)}\n content={suffixContent}\n />\n </div>\n\n {/* TODO: use AlphaSpinner */}\n {loading && (\n <div className={styles.ButtonLoader}>\n <Spinner size={getSpinnerSize(size)} />\n </div>\n )}\n </Comp>\n )\n})\n"],"names":["SideContent","size","content","isBezierIcon","React","createElement","Icon","source","className","styles","ButtonIcon","getIconSize","xs","s","m","l","xl","getSpinnerSize","getTypography","FloatingButton","forwardRef","Button","as","BaseButton","text","prefixContent","suffixContent","color","variant","active","loading","rest","forwardedRef","Comp","Object","assign","ref","classNames","ButtonContent","Text","ButtonText","typo","bold","ButtonLoader","Spinner"],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var bezierIcons = require('@channel.io/bezier-icons');
5
+ var index = require('../../node_modules/classnames/index.js');
6
+ var FloatingIconButton_module = require('./FloatingIconButton.module.scss.js');
7
+ var Icon = require('../Icon/Icon.js');
8
+ var Spinner = require('../Spinner/Spinner.js');
9
+ var BaseButton = require('../BaseButton/BaseButton.js');
10
+
11
+ function getIconSize(size) {
12
+ return {
13
+ xs: 'xxs',
14
+ s: 'xs',
15
+ m: 's',
16
+ l: 's',
17
+ xl: 'm'
18
+ }[size];
19
+ }
20
+ function getSpinnerSize(size) {
21
+ return {
22
+ xs: 'xs',
23
+ s: 'xs',
24
+ m: 's',
25
+ l: 's',
26
+ xl: 's'
27
+ }[size];
28
+ }
29
+ const FloatingIconButton = /*#__PURE__*/React.forwardRef(function FloatingIconButton({
30
+ as = BaseButton.BaseButton,
31
+ color = 'blue',
32
+ variant = 'primary',
33
+ size = 'm',
34
+ active,
35
+ content,
36
+ loading,
37
+ className,
38
+ ...rest
39
+ }, forwardedRef) {
40
+ const Comp = as;
41
+ return /*#__PURE__*/React.createElement(Comp, Object.assign({
42
+ ref: forwardedRef,
43
+ className: index.default(FloatingIconButton_module.default.FloatingIconButton, FloatingIconButton_module.default[`size-${size}`], FloatingIconButton_module.default[`variant-${variant}`], FloatingIconButton_module.default[`color-${color}`], active && FloatingIconButton_module.default.active, className)
44
+ }, rest), /*#__PURE__*/React.createElement("div", {
45
+ className: index.default(FloatingIconButton_module.default.ButtonContent, loading && FloatingIconButton_module.default.loading)
46
+ }, bezierIcons.isBezierIcon(content) ? /*#__PURE__*/React.createElement(Icon.Icon, {
47
+ size: getIconSize(size),
48
+ source: content
49
+ }) : content), loading && /*#__PURE__*/React.createElement("div", {
50
+ className: FloatingIconButton_module.default.ButtonLoader
51
+ }, /*#__PURE__*/React.createElement(Spinner.Spinner, {
52
+ size: getSpinnerSize(size)
53
+ })));
54
+ });
55
+
56
+ exports.FloatingIconButton = FloatingIconButton;
57
+ //# sourceMappingURL=FloatingIconButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FloatingIconButton.js","sources":["../../../../src/components/AlphaFloatingIconButton/FloatingIconButton.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport { isBezierIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport { type AlphaFloatingIconButtonProps } from '~/src/components/AlphaFloatingIconButton'\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { type ButtonSize } from '~/src/components/Button'\nimport { Icon } from '~/src/components/Icon'\nimport { Spinner } from '~/src/components/Spinner'\n\nimport styles from './FloatingIconButton.module.scss'\n\nfunction getIconSize(size: ButtonSize) {\n return (\n {\n xs: 'xxs',\n s: 'xs',\n m: 's',\n l: 's',\n xl: 'm',\n } as const\n )[size]\n}\n\nfunction getSpinnerSize(size: ButtonSize) {\n return (\n {\n xs: 'xs',\n s: 'xs',\n m: 's',\n l: 's',\n xl: 's',\n } as const\n )[size]\n}\n\nexport const FloatingIconButton = forwardRef<\n HTMLButtonElement,\n AlphaFloatingIconButtonProps\n>(function FloatingIconButton(\n {\n as = BaseButton,\n color = 'blue',\n variant = 'primary',\n size = 'm',\n active,\n content,\n loading,\n className,\n ...rest\n },\n forwardedRef\n) {\n const Comp = as as typeof BaseButton\n\n return (\n <Comp\n ref={forwardedRef}\n className={classNames(\n styles.FloatingIconButton,\n styles[`size-${size}`],\n styles[`variant-${variant}`],\n styles[`color-${color}`],\n active && styles.active,\n className\n )}\n {...rest}\n >\n <div\n className={classNames(styles.ButtonContent, loading && styles.loading)}\n >\n {isBezierIcon(content) ? (\n <Icon\n size={getIconSize(size)}\n source={content}\n />\n ) : (\n content\n )}\n </div>\n\n {/* TODO: use AlphaSpinner */}\n {loading && (\n <div className={styles.ButtonLoader}>\n <Spinner size={getSpinnerSize(size)} />\n </div>\n )}\n </Comp>\n )\n})\n"],"names":["getIconSize","size","xs","s","m","l","xl","getSpinnerSize","FloatingIconButton","forwardRef","as","BaseButton","color","variant","active","content","loading","className","rest","forwardedRef","Comp","React","createElement","Object","assign","ref","classNames","styles","ButtonContent","isBezierIcon","Icon","source","ButtonLoader","Spinner"],"mappings":";;;;;;;;;;AAaA,SAASA,WAAWA,CAACC,IAAgB,EAAE;EACrC,OACE;AACEC,IAAAA,EAAE,EAAE,KAAK;AACTC,IAAAA,CAAC,EAAE,IAAI;AACPC,IAAAA,CAAC,EAAE,GAAG;AACNC,IAAAA,CAAC,EAAE,GAAG;AACNC,IAAAA,EAAE,EAAE,GAAA;GACL,CACDL,IAAI,CAAC,CAAA;AACT,CAAA;AAEA,SAASM,cAAcA,CAACN,IAAgB,EAAE;EACxC,OACE;AACEC,IAAAA,EAAE,EAAE,IAAI;AACRC,IAAAA,CAAC,EAAE,IAAI;AACPC,IAAAA,CAAC,EAAE,GAAG;AACNC,IAAAA,CAAC,EAAE,GAAG;AACNC,IAAAA,EAAE,EAAE,GAAA;GACL,CACDL,IAAI,CAAC,CAAA;AACT,CAAA;MAEaO,kBAAkB,gBAAGC,gBAAU,CAG1C,SAASD,kBAAkBA,CAC3B;AACEE,EAAAA,EAAE,GAAGC,qBAAU;AACfC,EAAAA,KAAK,GAAG,MAAM;AACdC,EAAAA,OAAO,GAAG,SAAS;AACnBZ,EAAAA,IAAI,GAAG,GAAG;EACVa,MAAM;EACNC,OAAO;EACPC,OAAO;EACPC,SAAS;EACT,GAAGC,IAAAA;AACL,CAAC,EACDC,YAAY,EACZ;EACA,MAAMC,IAAI,GAAGV,EAAuB,CAAA;EAEpC,oBACEW,KAAA,CAAAC,aAAA,CAACF,IAAI,EAAAG,MAAA,CAAAC,MAAA,CAAA;AACHC,IAAAA,GAAG,EAAEN,YAAa;AAClBF,IAAAA,SAAS,EAAES,aAAU,CACnBC,iCAAM,CAACnB,kBAAkB,EACzBmB,iCAAM,CAAE,QAAO1B,IAAK,CAAA,CAAC,CAAC,EACtB0B,iCAAM,CAAE,CAAA,QAAA,EAAUd,OAAQ,CAAA,CAAC,CAAC,EAC5Bc,iCAAM,CAAE,SAAQf,KAAM,CAAA,CAAC,CAAC,EACxBE,MAAM,IAAIa,iCAAM,CAACb,MAAM,EACvBG,SACF,CAAA;AAAE,GAAA,EACEC,IAAI,CAAA,eAERG,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IACEL,SAAS,EAAES,aAAU,CAACC,iCAAM,CAACC,aAAa,EAAEZ,OAAO,IAAIW,iCAAM,CAACX,OAAO,CAAA;GAEpEa,EAAAA,wBAAY,CAACd,OAAO,CAAC,gBACpBM,KAAA,CAAAC,aAAA,CAACQ,SAAI,EAAA;AACH7B,IAAAA,IAAI,EAAED,WAAW,CAACC,IAAI,CAAE;AACxB8B,IAAAA,MAAM,EAAEhB,OAAAA;GACT,CAAC,GAEFA,OAEC,CAAC,EAGLC,OAAO,iBACNK,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKL,SAAS,EAAEU,iCAAM,CAACK,YAAAA;AAAa,GAAA,eAClCX,KAAA,CAAAC,aAAA,CAACW,eAAO,EAAA;IAAChC,IAAI,EAAEM,cAAc,CAACN,IAAI,CAAA;GAAI,CACnC,CAEH,CAAC,CAAA;AAEX,CAAC;;;;"}
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var styles = {"FloatingIconButton":"b-pDR7b","size-xs":"b-u5Zl3","size-s":"b-3wbJg","size-m":"b-C7fAv","size-l":"b-FwA2i","size-xl":"b-VPiwI","variant-primary":"b-eSXS9","color-blue":"b-6Qpq3","color-cobalt":"b-dIPru","color-red":"b-wZj6M","color-orange":"b-Vb6Hw","color-green":"b-nSxKM","color-pink":"b-4raYA","color-purple":"b-ppJl-","color-dark-grey":"b-3T-00","color-light-grey":"b-lJzxe","variant-secondary":"b-Q-xex","active":"b-9pRbB","ButtonLoader":"b-hkZIN","ButtonContent":"b-8juuH","loading":"b-w7dD7"};
6
+
7
+ exports.default = styles;
8
+ //# sourceMappingURL=FloatingIconButton.module.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FloatingIconButton.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
+ var bezierIcons = require('@channel.io/bezier-icons');
4
5
  var index = require('../../node_modules/classnames/index.js');
5
6
  var IconButton_module = require('./IconButton.module.scss.js');
6
7
  var Icon = require('../Icon/Icon.js');
@@ -30,10 +31,9 @@ const IconButton = /*#__PURE__*/React.forwardRef(function IconButton({
30
31
  color = 'blue',
31
32
  variant = 'primary',
32
33
  size = 'm',
33
- disabled,
34
34
  active,
35
35
  shape = 'rectangle',
36
- icon,
36
+ content,
37
37
  loading,
38
38
  className,
39
39
  ...rest
@@ -44,11 +44,11 @@ const IconButton = /*#__PURE__*/React.forwardRef(function IconButton({
44
44
  className: index.default(IconButton_module.default.IconButton, IconButton_module.default[`size-${size}`], IconButton_module.default[`variant-${variant}`], IconButton_module.default[`color-${color}`], IconButton_module.default[`shape-${shape}`], active && IconButton_module.default.active, className)
45
45
  }, rest), /*#__PURE__*/React.createElement("div", {
46
46
  className: index.default(IconButton_module.default.ButtonContent, loading && IconButton_module.default.loading)
47
- }, icon && /*#__PURE__*/React.createElement(Icon.Icon, {
47
+ }, bezierIcons.isBezierIcon(content) ? /*#__PURE__*/React.createElement(Icon.Icon, {
48
48
  size: getIconSize(size),
49
- source: icon,
49
+ source: content,
50
50
  className: IconButton_module.default.ButtonIcon
51
- })), loading && /*#__PURE__*/React.createElement("div", {
51
+ }) : content), loading && /*#__PURE__*/React.createElement("div", {
52
52
  className: IconButton_module.default.ButtonLoader
53
53
  }, /*#__PURE__*/React.createElement(Spinner.Spinner, {
54
54
  size: getSpinnerSize(size)
@@ -1 +1 @@
1
- {"version":3,"file":"IconButton.js","sources":["../../../../src/components/AlphaIconButton/IconButton.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport { type AlphaIconButtonProps } from '~/src/components/AlphaIconButton'\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { type ButtonSize } from '~/src/components/Button'\nimport { Icon } from '~/src/components/Icon'\nimport { Spinner } from '~/src/components/Spinner'\n\nimport styles from './IconButton.module.scss'\n\nfunction getIconSize(size: ButtonSize) {\n return (\n {\n xs: 'xxs',\n s: 'xs',\n m: 's',\n l: 's',\n xl: 'm',\n } as const\n )[size]\n}\n\nfunction getSpinnerSize(size: ButtonSize) {\n return (\n {\n xs: 'xs',\n s: 'xs',\n m: 's',\n l: 's',\n xl: 's',\n } as const\n )[size]\n}\n\nexport const IconButton = forwardRef<HTMLButtonElement, AlphaIconButtonProps>(\n function IconButton(\n {\n as = BaseButton,\n color = 'blue',\n variant = 'primary',\n size = 'm',\n disabled,\n active,\n shape = 'rectangle',\n icon,\n loading,\n className,\n ...rest\n },\n forwardedRef\n ) {\n const Comp = as as typeof BaseButton\n\n return (\n <Comp\n ref={forwardedRef}\n className={classNames(\n styles.IconButton,\n styles[`size-${size}`],\n styles[`variant-${variant}`],\n styles[`color-${color}`],\n styles[`shape-${shape}`],\n active && styles.active,\n className\n )}\n {...rest}\n >\n <div\n className={classNames(\n styles.ButtonContent,\n loading && styles.loading\n )}\n >\n {icon && (\n <Icon\n size={getIconSize(size)}\n source={icon}\n className={styles.ButtonIcon}\n />\n )}\n </div>\n\n {/* TODO: use AlphaSpinner */}\n {loading && (\n <div className={styles.ButtonLoader}>\n <Spinner size={getSpinnerSize(size)} />\n </div>\n )}\n </Comp>\n )\n }\n)\n"],"names":["getIconSize","size","xs","s","m","l","xl","getSpinnerSize","IconButton","forwardRef","as","BaseButton","color","variant","disabled","active","shape","icon","loading","className","rest","forwardedRef","Comp","React","createElement","Object","assign","ref","classNames","styles","ButtonContent","Icon","source","ButtonIcon","ButtonLoader","Spinner"],"mappings":";;;;;;;;;AAYA,SAASA,WAAWA,CAACC,IAAgB,EAAE;EACrC,OACE;AACEC,IAAAA,EAAE,EAAE,KAAK;AACTC,IAAAA,CAAC,EAAE,IAAI;AACPC,IAAAA,CAAC,EAAE,GAAG;AACNC,IAAAA,CAAC,EAAE,GAAG;AACNC,IAAAA,EAAE,EAAE,GAAA;GACL,CACDL,IAAI,CAAC,CAAA;AACT,CAAA;AAEA,SAASM,cAAcA,CAACN,IAAgB,EAAE;EACxC,OACE;AACEC,IAAAA,EAAE,EAAE,IAAI;AACRC,IAAAA,CAAC,EAAE,IAAI;AACPC,IAAAA,CAAC,EAAE,GAAG;AACNC,IAAAA,CAAC,EAAE,GAAG;AACNC,IAAAA,EAAE,EAAE,GAAA;GACL,CACDL,IAAI,CAAC,CAAA;AACT,CAAA;MAEaO,UAAU,gBAAGC,gBAAU,CAClC,SAASD,UAAUA,CACjB;AACEE,EAAAA,EAAE,GAAGC,qBAAU;AACfC,EAAAA,KAAK,GAAG,MAAM;AACdC,EAAAA,OAAO,GAAG,SAAS;AACnBZ,EAAAA,IAAI,GAAG,GAAG;EACVa,QAAQ;EACRC,MAAM;AACNC,EAAAA,KAAK,GAAG,WAAW;EACnBC,IAAI;EACJC,OAAO;EACPC,SAAS;EACT,GAAGC,IAAAA;AACL,CAAC,EACDC,YAAY,EACZ;EACA,MAAMC,IAAI,GAAGZ,EAAuB,CAAA;EAEpC,oBACEa,KAAA,CAAAC,aAAA,CAACF,IAAI,EAAAG,MAAA,CAAAC,MAAA,CAAA;AACHC,IAAAA,GAAG,EAAEN,YAAa;AAClBF,IAAAA,SAAS,EAAES,aAAU,CACnBC,yBAAM,CAACrB,UAAU,EACjBqB,yBAAM,CAAE,CAAO5B,KAAAA,EAAAA,IAAK,EAAC,CAAC,EACtB4B,yBAAM,CAAE,CAAA,QAAA,EAAUhB,OAAQ,CAAC,CAAA,CAAC,EAC5BgB,yBAAM,CAAE,CAAQjB,MAAAA,EAAAA,KAAM,EAAC,CAAC,EACxBiB,yBAAM,CAAE,CAAA,MAAA,EAAQb,KAAM,CAAC,CAAA,CAAC,EACxBD,MAAM,IAAIc,yBAAM,CAACd,MAAM,EACvBI,SACF,CAAA;AAAE,GAAA,EACEC,IAAI,CAAA,eAERG,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IACEL,SAAS,EAAES,aAAU,CACnBC,yBAAM,CAACC,aAAa,EACpBZ,OAAO,IAAIW,yBAAM,CAACX,OACpB,CAAA;AAAE,GAAA,EAEDD,IAAI,iBACHM,KAAA,CAAAC,aAAA,CAACO,SAAI,EAAA;AACH9B,IAAAA,IAAI,EAAED,WAAW,CAACC,IAAI,CAAE;AACxB+B,IAAAA,MAAM,EAAEf,IAAK;IACbE,SAAS,EAAEU,yBAAM,CAACI,UAAAA;AAAW,GAC9B,CAEA,CAAC,EAGLf,OAAO,iBACNK,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKL,SAAS,EAAEU,yBAAM,CAACK,YAAAA;AAAa,GAAA,eAClCX,KAAA,CAAAC,aAAA,CAACW,eAAO,EAAA;IAAClC,IAAI,EAAEM,cAAc,CAACN,IAAI,CAAA;GAAI,CACnC,CAEH,CAAC,CAAA;AAEX,CACF;;;;"}
1
+ {"version":3,"file":"IconButton.js","sources":["../../../../src/components/AlphaIconButton/IconButton.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport { isBezierIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport { type AlphaIconButtonProps } from '~/src/components/AlphaIconButton'\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { type ButtonSize } from '~/src/components/Button'\nimport { Icon } from '~/src/components/Icon'\nimport { Spinner } from '~/src/components/Spinner'\n\nimport styles from './IconButton.module.scss'\n\nfunction getIconSize(size: ButtonSize) {\n return (\n {\n xs: 'xxs',\n s: 'xs',\n m: 's',\n l: 's',\n xl: 'm',\n } as const\n )[size]\n}\n\nfunction getSpinnerSize(size: ButtonSize) {\n return (\n {\n xs: 'xs',\n s: 'xs',\n m: 's',\n l: 's',\n xl: 's',\n } as const\n )[size]\n}\n\nexport const IconButton = forwardRef<HTMLButtonElement, AlphaIconButtonProps>(\n function IconButton(\n {\n as = BaseButton,\n color = 'blue',\n variant = 'primary',\n size = 'm',\n active,\n shape = 'rectangle',\n content,\n loading,\n className,\n ...rest\n },\n forwardedRef\n ) {\n const Comp = as as typeof BaseButton\n\n return (\n <Comp\n ref={forwardedRef}\n className={classNames(\n styles.IconButton,\n styles[`size-${size}`],\n styles[`variant-${variant}`],\n styles[`color-${color}`],\n styles[`shape-${shape}`],\n active && styles.active,\n className\n )}\n {...rest}\n >\n <div\n className={classNames(\n styles.ButtonContent,\n loading && styles.loading\n )}\n >\n {isBezierIcon(content) ? (\n <Icon\n size={getIconSize(size)}\n source={content}\n className={styles.ButtonIcon}\n />\n ) : (\n content\n )}\n </div>\n\n {/* TODO: use AlphaSpinner */}\n {loading && (\n <div className={styles.ButtonLoader}>\n <Spinner size={getSpinnerSize(size)} />\n </div>\n )}\n </Comp>\n )\n }\n)\n"],"names":["getIconSize","size","xs","s","m","l","xl","getSpinnerSize","IconButton","forwardRef","as","BaseButton","color","variant","active","shape","content","loading","className","rest","forwardedRef","Comp","React","createElement","Object","assign","ref","classNames","styles","ButtonContent","isBezierIcon","Icon","source","ButtonIcon","ButtonLoader","Spinner"],"mappings":";;;;;;;;;;AAaA,SAASA,WAAWA,CAACC,IAAgB,EAAE;EACrC,OACE;AACEC,IAAAA,EAAE,EAAE,KAAK;AACTC,IAAAA,CAAC,EAAE,IAAI;AACPC,IAAAA,CAAC,EAAE,GAAG;AACNC,IAAAA,CAAC,EAAE,GAAG;AACNC,IAAAA,EAAE,EAAE,GAAA;GACL,CACDL,IAAI,CAAC,CAAA;AACT,CAAA;AAEA,SAASM,cAAcA,CAACN,IAAgB,EAAE;EACxC,OACE;AACEC,IAAAA,EAAE,EAAE,IAAI;AACRC,IAAAA,CAAC,EAAE,IAAI;AACPC,IAAAA,CAAC,EAAE,GAAG;AACNC,IAAAA,CAAC,EAAE,GAAG;AACNC,IAAAA,EAAE,EAAE,GAAA;GACL,CACDL,IAAI,CAAC,CAAA;AACT,CAAA;MAEaO,UAAU,gBAAGC,gBAAU,CAClC,SAASD,UAAUA,CACjB;AACEE,EAAAA,EAAE,GAAGC,qBAAU;AACfC,EAAAA,KAAK,GAAG,MAAM;AACdC,EAAAA,OAAO,GAAG,SAAS;AACnBZ,EAAAA,IAAI,GAAG,GAAG;EACVa,MAAM;AACNC,EAAAA,KAAK,GAAG,WAAW;EACnBC,OAAO;EACPC,OAAO;EACPC,SAAS;EACT,GAAGC,IAAAA;AACL,CAAC,EACDC,YAAY,EACZ;EACA,MAAMC,IAAI,GAAGX,EAAuB,CAAA;EAEpC,oBACEY,KAAA,CAAAC,aAAA,CAACF,IAAI,EAAAG,MAAA,CAAAC,MAAA,CAAA;AACHC,IAAAA,GAAG,EAAEN,YAAa;AAClBF,IAAAA,SAAS,EAAES,aAAU,CACnBC,yBAAM,CAACpB,UAAU,EACjBoB,yBAAM,CAAE,CAAO3B,KAAAA,EAAAA,IAAK,EAAC,CAAC,EACtB2B,yBAAM,CAAE,CAAA,QAAA,EAAUf,OAAQ,CAAC,CAAA,CAAC,EAC5Be,yBAAM,CAAE,CAAQhB,MAAAA,EAAAA,KAAM,EAAC,CAAC,EACxBgB,yBAAM,CAAE,CAAA,MAAA,EAAQb,KAAM,CAAC,CAAA,CAAC,EACxBD,MAAM,IAAIc,yBAAM,CAACd,MAAM,EACvBI,SACF,CAAA;AAAE,GAAA,EACEC,IAAI,CAAA,eAERG,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IACEL,SAAS,EAAES,aAAU,CACnBC,yBAAM,CAACC,aAAa,EACpBZ,OAAO,IAAIW,yBAAM,CAACX,OACpB,CAAA;GAECa,EAAAA,wBAAY,CAACd,OAAO,CAAC,gBACpBM,KAAA,CAAAC,aAAA,CAACQ,SAAI,EAAA;AACH9B,IAAAA,IAAI,EAAED,WAAW,CAACC,IAAI,CAAE;AACxB+B,IAAAA,MAAM,EAAEhB,OAAQ;IAChBE,SAAS,EAAEU,yBAAM,CAACK,UAAAA;GACnB,CAAC,GAEFjB,OAEC,CAAC,EAGLC,OAAO,iBACNK,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKL,SAAS,EAAEU,yBAAM,CAACM,YAAAA;AAAa,GAAA,eAClCZ,KAAA,CAAAC,aAAA,CAACY,eAAO,EAAA;IAAClC,IAAI,EAAEM,cAAc,CAACN,IAAI,CAAA;GAAI,CACnC,CAEH,CAAC,CAAA;AAEX,CACF;;;;"}
package/dist/cjs/index.js CHANGED
@@ -7,6 +7,7 @@ var AvatarGroup = require('./components/AlphaAvatarGroup/AvatarGroup.js');
7
7
  var Button = require('./components/AlphaButton/Button.js');
8
8
  var DialogPrimitive = require('./components/AlphaDialogPrimitive/DialogPrimitive.js');
9
9
  var FloatingButton = require('./components/AlphaFloatingButton/FloatingButton.js');
10
+ var FloatingIconButton = require('./components/AlphaFloatingIconButton/FloatingIconButton.js');
10
11
  var IconButton = require('./components/AlphaIconButton/IconButton.js');
11
12
  var TooltipPrimitive = require('./components/AlphaTooltipPrimitive/TooltipPrimitive.js');
12
13
  var AppProvider = require('./components/AppProvider/AppProvider.js');
@@ -88,6 +89,7 @@ exports.AlphaDialogPrimitivePortal = DialogPrimitive.DialogPrimitivePortal;
88
89
  exports.AlphaDialogPrimitiveTitle = DialogPrimitive.DialogPrimitiveTitle;
89
90
  exports.AlphaDialogPrimitiveTrigger = DialogPrimitive.DialogPrimitiveTrigger;
90
91
  exports.AlphaFloatingButton = FloatingButton.FloatingButton;
92
+ exports.AlphaFloatingIconButton = FloatingIconButton.FloatingIconButton;
91
93
  exports.AlphaIconButton = IconButton.IconButton;
92
94
  exports.AlphaTooltipPrimitive = TooltipPrimitive.TooltipPrimitive;
93
95
  exports.AlphaTooltipPrimitiveArrow = TooltipPrimitive.TooltipPrimitiveArrow;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}