@channel.io/bezier-react 2.0.9 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/dist/cjs/components/AlphaButton/Button.js +3 -3
  2. package/dist/cjs/components/AlphaButton/Button.js.map +1 -1
  3. package/dist/cjs/components/AlphaButton/Button.module.scss.js +1 -1
  4. package/dist/cjs/components/AlphaFloatingButton/FloatingButton.js +3 -3
  5. package/dist/cjs/components/AlphaFloatingButton/FloatingButton.js.map +1 -1
  6. package/dist/cjs/components/AlphaFloatingButton/FloatingButton.module.scss.js +1 -1
  7. package/dist/cjs/components/AlphaFloatingIconButton/FloatingIconButton.js +3 -3
  8. package/dist/cjs/components/AlphaFloatingIconButton/FloatingIconButton.js.map +1 -1
  9. package/dist/cjs/components/AlphaFloatingIconButton/FloatingIconButton.module.scss.js +1 -1
  10. package/dist/cjs/components/AlphaIconButton/IconButton.js +3 -3
  11. package/dist/cjs/components/AlphaIconButton/IconButton.js.map +1 -1
  12. package/dist/cjs/components/AlphaIconButton/IconButton.module.scss.js +1 -1
  13. package/dist/cjs/components/{AlphaSpinner/Spinner.js → AlphaLoader/Loader.js} +10 -10
  14. package/dist/cjs/components/AlphaLoader/Loader.js.map +1 -0
  15. package/dist/cjs/components/AlphaLoader/Loader.module.scss.js +8 -0
  16. package/dist/cjs/components/AlphaLoader/Loader.module.scss.js.map +1 -0
  17. package/dist/cjs/components/AlphaToggleButton/ToggleButton.js +3 -3
  18. package/dist/cjs/components/AlphaToggleButton/ToggleButton.js.map +1 -1
  19. package/dist/cjs/components/AlphaToggleButton/ToggleButton.module.scss.js +1 -1
  20. package/dist/cjs/components/Select/Select.js +2 -0
  21. package/dist/cjs/components/Select/Select.js.map +1 -1
  22. package/dist/cjs/components/TextField/TextField.js +1 -1
  23. package/dist/cjs/components/TextField/TextField.js.map +1 -1
  24. package/dist/cjs/components/TextField/TextField.module.scss.js +1 -1
  25. package/dist/cjs/hooks/useMergeRefs.js +1 -0
  26. package/dist/cjs/hooks/useMergeRefs.js.map +1 -1
  27. package/dist/cjs/index.js +4 -4
  28. package/dist/cjs/node_modules/tslib/tslib.es6.js.map +1 -1
  29. package/dist/cjs/styles.css +1 -1
  30. package/dist/esm/components/AlphaButton/Button.mjs +3 -3
  31. package/dist/esm/components/AlphaButton/Button.mjs.map +1 -1
  32. package/dist/esm/components/AlphaButton/Button.module.scss.mjs +1 -1
  33. package/dist/esm/components/AlphaFloatingButton/FloatingButton.mjs +3 -3
  34. package/dist/esm/components/AlphaFloatingButton/FloatingButton.mjs.map +1 -1
  35. package/dist/esm/components/AlphaFloatingButton/FloatingButton.module.scss.mjs +1 -1
  36. package/dist/esm/components/AlphaFloatingIconButton/FloatingIconButton.mjs +3 -3
  37. package/dist/esm/components/AlphaFloatingIconButton/FloatingIconButton.mjs.map +1 -1
  38. package/dist/esm/components/AlphaFloatingIconButton/FloatingIconButton.module.scss.mjs +1 -1
  39. package/dist/esm/components/AlphaIconButton/IconButton.mjs +3 -3
  40. package/dist/esm/components/AlphaIconButton/IconButton.mjs.map +1 -1
  41. package/dist/esm/components/AlphaIconButton/IconButton.module.scss.mjs +1 -1
  42. package/dist/esm/components/{AlphaSpinner/Spinner.mjs → AlphaLoader/Loader.mjs} +7 -7
  43. package/dist/esm/components/AlphaLoader/Loader.mjs.map +1 -0
  44. package/dist/esm/components/AlphaLoader/Loader.module.scss.mjs +4 -0
  45. package/dist/esm/components/AlphaLoader/Loader.module.scss.mjs.map +1 -0
  46. package/dist/esm/components/AlphaToggleButton/ToggleButton.mjs +3 -3
  47. package/dist/esm/components/AlphaToggleButton/ToggleButton.mjs.map +1 -1
  48. package/dist/esm/components/AlphaToggleButton/ToggleButton.module.scss.mjs +1 -1
  49. package/dist/esm/components/Select/Select.mjs +2 -0
  50. package/dist/esm/components/Select/Select.mjs.map +1 -1
  51. package/dist/esm/components/TextField/TextField.mjs +1 -1
  52. package/dist/esm/components/TextField/TextField.mjs.map +1 -1
  53. package/dist/esm/components/TextField/TextField.module.scss.mjs +1 -1
  54. package/dist/esm/hooks/useMergeRefs.mjs +1 -0
  55. package/dist/esm/hooks/useMergeRefs.mjs.map +1 -1
  56. package/dist/esm/index.mjs +1 -1
  57. package/dist/esm/node_modules/tslib/tslib.es6.mjs.map +1 -1
  58. package/dist/esm/styles.css +1 -1
  59. package/dist/types/components/AlphaAvatarGroup/AvatarGroup.types.d.ts.map +1 -1
  60. package/dist/types/components/AlphaLoader/Loader.d.ts +5 -0
  61. package/dist/types/components/AlphaLoader/Loader.d.ts.map +1 -0
  62. package/dist/types/components/AlphaLoader/Loader.types.d.ts +13 -0
  63. package/dist/types/components/AlphaLoader/Loader.types.d.ts.map +1 -0
  64. package/dist/types/components/AlphaLoader/index.d.ts +3 -0
  65. package/dist/types/components/AlphaLoader/index.d.ts.map +1 -0
  66. package/dist/types/components/Select/Select.d.ts.map +1 -1
  67. package/dist/types/components/Select/Select.types.d.ts +1 -0
  68. package/dist/types/components/Select/Select.types.d.ts.map +1 -1
  69. package/dist/types/hooks/useMergeRefs.d.ts.map +1 -1
  70. package/dist/types/index.d.ts +1 -1
  71. package/dist/types/index.d.ts.map +1 -1
  72. package/package.json +17 -14
  73. package/src/components/AlphaAvatarGroup/AvatarGroup.types.ts +1 -4
  74. package/src/components/AlphaButton/Button.module.scss +1 -1
  75. package/src/components/AlphaButton/Button.tsx +3 -3
  76. package/src/components/AlphaDialogPrimitive/AlphaDialogPrimitive.stories.tsx +1 -0
  77. package/src/components/AlphaFloatingButton/FloatingButton.module.scss +1 -1
  78. package/src/components/AlphaFloatingButton/FloatingButton.tsx +3 -3
  79. package/src/components/AlphaFloatingIconButton/FloatingIconButton.module.scss +1 -1
  80. package/src/components/AlphaFloatingIconButton/FloatingIconButton.tsx +3 -3
  81. package/src/components/AlphaIconButton/IconButton.module.scss +1 -1
  82. package/src/components/AlphaIconButton/IconButton.tsx +3 -3
  83. package/src/components/AlphaLoader/AlphaLoader.stories.tsx +23 -0
  84. package/src/components/AlphaLoader/Loader.module.scss +75 -0
  85. package/src/components/AlphaLoader/Loader.test.tsx +34 -0
  86. package/src/components/AlphaLoader/Loader.tsx +47 -0
  87. package/src/components/{AlphaSpinner/Spinner.types.ts → AlphaLoader/Loader.types.ts} +6 -6
  88. package/src/components/AlphaLoader/index.ts +2 -0
  89. package/src/components/AlphaToggleButton/ToggleButton.module.scss +1 -1
  90. package/src/components/AlphaToggleButton/ToggleButton.tsx +3 -3
  91. package/src/components/AlphaTooltipPrimitive/AlphaTooltipPrimitive.stories.tsx +1 -0
  92. package/src/components/Banner/Banner.mdx +14 -28
  93. package/src/components/Banner/Banner.stories.tsx +1 -0
  94. package/src/components/Button/Button.mdx +19 -37
  95. package/src/components/Button/Button.stories.tsx +1 -0
  96. package/src/components/ButtonGroup/ButtonGroup.mdx +4 -7
  97. package/src/components/ButtonGroup/ButtonGroup.stories.tsx +2 -0
  98. package/src/components/Icon/Icon.mdx +7 -7
  99. package/src/components/Icon/Icon.stories.tsx +2 -0
  100. package/src/components/LegacyStack/LegacyStack.mdx +16 -29
  101. package/src/components/LegacyStack/LegacyStack.stories.tsx +1 -0
  102. package/src/components/ProgressBar/ProgressBar.mdx +8 -14
  103. package/src/components/ProgressBar/ProgressBar.stories.tsx +2 -0
  104. package/src/components/Select/Select.tsx +2 -0
  105. package/src/components/Select/Select.types.ts +1 -0
  106. package/src/components/Slider/Slider.stories.tsx +1 -1
  107. package/src/components/TextField/TextField.module.scss +2 -1
  108. package/src/components/TextField/TextField.test.tsx +16 -1
  109. package/src/components/TextField/TextField.tsx +1 -1
  110. package/src/hooks/useMergeRefs.ts +1 -0
  111. package/src/index.ts +1 -1
  112. package/dist/cjs/components/AlphaSpinner/Spinner.js.map +0 -1
  113. package/dist/cjs/components/AlphaSpinner/Spinner.module.scss.js +0 -8
  114. package/dist/cjs/components/AlphaSpinner/Spinner.module.scss.js.map +0 -1
  115. package/dist/esm/components/AlphaSpinner/Spinner.mjs.map +0 -1
  116. package/dist/esm/components/AlphaSpinner/Spinner.module.scss.mjs +0 -4
  117. package/dist/esm/components/AlphaSpinner/Spinner.module.scss.mjs.map +0 -1
  118. package/dist/types/components/AlphaSpinner/Spinner.d.ts +0 -5
  119. package/dist/types/components/AlphaSpinner/Spinner.d.ts.map +0 -1
  120. package/dist/types/components/AlphaSpinner/Spinner.types.d.ts +0 -13
  121. package/dist/types/components/AlphaSpinner/Spinner.types.d.ts.map +0 -1
  122. package/dist/types/components/AlphaSpinner/index.d.ts +0 -3
  123. package/dist/types/components/AlphaSpinner/index.d.ts.map +0 -1
  124. package/src/components/AlphaSpinner/AlphaSpinner.stories.tsx +0 -23
  125. package/src/components/AlphaSpinner/Spinner.module.scss +0 -75
  126. package/src/components/AlphaSpinner/Spinner.test.tsx +0 -34
  127. package/src/components/AlphaSpinner/Spinner.tsx +0 -49
  128. package/src/components/AlphaSpinner/index.ts +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"AvatarGroup.types.d.ts","sourceRoot":"","sources":["../../../../src/components/AlphaAvatarGroup/AvatarGroup.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,SAAS,EACV,0BAAyB;AAE1B,OAAO,EAEL,KAAK,eAAe,EACrB,uBAAoC;AAErC,KAAK,uBAAuB,GAAG,MAAM,GAAG,OAAO,CAAA;AAE/C,UAAU,mBAAmB;IAC3B;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAA;IAEX;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;;OAGG;IACH,YAAY,CAAC,EAAE,uBAAuB,CAAA;CACvC;AAED,MAAM,WAAW,gBACf,SAAQ,oBAAoB,CAAC,KAAK,CAAC,EACjC,aAAa,EACb,SAAS,CAAC,eAAe,CAAC,EAC1B,mBAAmB;CAAG"}
1
+ {"version":3,"file":"AvatarGroup.types.d.ts","sourceRoot":"","sources":["../../../../src/components/AlphaAvatarGroup/AvatarGroup.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,SAAS,EACV,0BAAyB;AAE1B,OAAO,EAAE,KAAK,eAAe,EAAE,uBAAoC;AAEnE,KAAK,uBAAuB,GAAG,MAAM,GAAG,OAAO,CAAA;AAE/C,UAAU,mBAAmB;IAC3B;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAA;IAEX;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;;OAGG;IACH,YAAY,CAAC,EAAE,uBAAuB,CAAA;CACvC;AAED,MAAM,WAAW,gBACf,SAAQ,oBAAoB,CAAC,KAAK,CAAC,EACjC,aAAa,EACb,SAAS,CAAC,eAAe,CAAC,EAC1B,mBAAmB;CAAG"}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { type LoaderProps } from './Loader.types';
3
+ export declare const LOADER_TEST_ID = "bezier-loader";
4
+ export declare const Loader: React.ForwardRefExoticComponent<LoaderProps & React.RefAttributes<HTMLSpanElement>>;
5
+ //# sourceMappingURL=Loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Loader.d.ts","sourceRoot":"","sources":["../../../../src/components/AlphaLoader/Loader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAA;AAIzC,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAIjD,eAAO,MAAM,cAAc,kBAAkB,CAAA;AAE7C,eAAO,MAAM,MAAM,qFAoCjB,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { type BezierComponentProps, type ColorProps, type SizeProps } from "../../types/props";
2
+ type LoaderSize = 's' | 'm';
3
+ interface LoaderOwnProps {
4
+ /**
5
+ * The style variant of Loader.
6
+ * @default 'secondary'
7
+ */
8
+ variant?: 'primary' | 'secondary' | 'on-overlay';
9
+ }
10
+ export interface LoaderProps extends Omit<BezierComponentProps<'span'>, keyof ColorProps>, SizeProps<LoaderSize>, ColorProps, LoaderOwnProps {
11
+ }
12
+ export {};
13
+ //# sourceMappingURL=Loader.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Loader.types.d.ts","sourceRoot":"","sources":["../../../../src/components/AlphaLoader/Loader.types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,UAAU,EACf,KAAK,SAAS,EACf,0BAAyB;AAE1B,KAAK,UAAU,GAAG,GAAG,GAAG,GAAG,CAAA;AAE3B,UAAU,cAAc;IACtB;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,YAAY,CAAA;CACjD;AAED,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,MAAM,UAAU,CAAC,EAC1D,SAAS,CAAC,UAAU,CAAC,EACrB,UAAU,EACV,cAAc;CAAG"}
@@ -0,0 +1,3 @@
1
+ export { Loader as AlphaLoader } from './Loader';
2
+ export { type LoaderProps as AlphaLoaderProps } from './Loader.types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/AlphaLoader/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,EAAE,KAAK,WAAW,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAA;AAqBd,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAIjE,eAAO,MAAM,uBAAuB,2BAA2B,CAAA;AAE/D,eAAO,MAAM,MAAM,+EAoKjB,CAAA"}
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAA;AAqBd,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAIjE,eAAO,MAAM,uBAAuB,2BAA2B,CAAA;AAE/D,eAAO,MAAM,MAAM,+EAsKjB,CAAA"}
@@ -18,6 +18,7 @@ interface SelectOwnProps {
18
18
  dropdownMarginY?: OverlayProps['marginY'];
19
19
  dropdownZIndex?: ZIndex;
20
20
  dropdownPosition?: OverlayProps['position'];
21
+ dropdownKeepInContainer?: OverlayProps['keepInContainer'];
21
22
  onClickTrigger?: React.MouseEventHandler;
22
23
  onHideDropdown?: () => void;
23
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Select.types.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/Select.types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE1D,OAAO,KAAK,EACV,oBAAoB,EACpB,+BAA+B,EAC/B,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,SAAS,EACV,0BAAyB;AAC1B,OAAO,EAAE,KAAK,MAAM,EAAE,2BAA0B;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAgC;AAE5D,MAAM,WAAW,SAAS;IACxB,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,GAAG,IAAI,CAAA;IACjD,kBAAkB,IAAI,IAAI,CAAA;IAC1B,UAAU,IAAI,OAAO,GAAG,IAAI,GAAG,IAAI,CAAA;CACpC;AAED,UAAU,cAAc;IACtB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,iBAAiB,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IACtC,eAAe,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAA;IACzC,eAAe,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAA;IACzC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gBAAgB,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAA;IAC3C,cAAc,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAA;IACxC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;CAC5B;AAED,MAAM,WAAW,WACf,SAAQ,oBAAoB,CAAC,QAAQ,CAAC,EACpC,aAAa,EACb,cAAc,EACd,SAAS,CAAC,aAAa,CAAC,EACxB,gBAAgB,CACd,UAAU,GAAG,KAAK,CAAC,SAAS,EAC5B,UAAU,GAAG,KAAK,CAAC,SAAS,CAC7B,EACD,+BAA+B,CAAC,UAAU,CAAC,EAC3C,oBAAoB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACtC,cAAc;CAAG"}
1
+ {"version":3,"file":"Select.types.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/Select.types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE1D,OAAO,KAAK,EACV,oBAAoB,EACpB,+BAA+B,EAC/B,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,SAAS,EACV,0BAAyB;AAC1B,OAAO,EAAE,KAAK,MAAM,EAAE,2BAA0B;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAgC;AAE5D,MAAM,WAAW,SAAS;IACxB,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,GAAG,IAAI,CAAA;IACjD,kBAAkB,IAAI,IAAI,CAAA;IAC1B,UAAU,IAAI,OAAO,GAAG,IAAI,GAAG,IAAI,CAAA;CACpC;AAED,UAAU,cAAc;IACtB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,iBAAiB,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IACtC,eAAe,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAA;IACzC,eAAe,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAA;IACzC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gBAAgB,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAA;IAC3C,uBAAuB,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAAA;IACzD,cAAc,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAA;IACxC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;CAC5B;AAED,MAAM,WAAW,WACf,SAAQ,oBAAoB,CAAC,QAAQ,CAAC,EACpC,aAAa,EACb,cAAc,EACd,SAAS,CAAC,aAAa,CAAC,EACxB,gBAAgB,CACd,UAAU,GAAG,KAAK,CAAC,SAAS,EAC5B,UAAU,GAAG,KAAK,CAAC,SAAS,CAC7B,EACD,+BAA+B,CAAC,UAAU,CAAC,EAC3C,oBAAoB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACtC,cAAc;CAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMergeRefs.d.ts","sourceRoot":"","sources":["../../../src/hooks/useMergeRefs.ts"],"names":[],"mappings":";AAEA,KAAK,QAAQ,CAAC,IAAI,IACd,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GACvB,KAAK,CAAC,gBAAgB,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;AAEvC,KAAK,GAAG,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAA;AAClD,KAAK,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;AA2BlC,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,+BAG7D"}
1
+ {"version":3,"file":"useMergeRefs.d.ts","sourceRoot":"","sources":["../../../src/hooks/useMergeRefs.ts"],"names":[],"mappings":";AAEA,KAAK,QAAQ,CAAC,IAAI,IACd,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GACvB,KAAK,CAAC,gBAAgB,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;AAEvC,KAAK,GAAG,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAA;AAClD,KAAK,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;AA4BlC,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,+BAG7D"}
@@ -7,7 +7,7 @@ export * from "./components/AlphaDialogPrimitive";
7
7
  export * from "./components/AlphaFloatingButton";
8
8
  export * from "./components/AlphaFloatingIconButton";
9
9
  export * from "./components/AlphaIconButton";
10
- export * from "./components/AlphaSpinner";
10
+ export * from "./components/AlphaLoader";
11
11
  export * from "./components/AlphaToggleButton";
12
12
  export * from "./components/AlphaToggleButtonGroup";
13
13
  export * from "./components/AlphaTooltipPrimitive";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,yBAAyB,CAAA;AAGhC,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAGlD,yCAA4C;AAC5C,8CAAiD;AACjD,yCAA4C;AAC5C,kDAAqD;AACrD,iDAAoD;AACpD,qDAAwD;AACxD,6CAAgD;AAChD,0CAA6C;AAC7C,+CAAkD;AAClD,oDAAuD;AACvD,mDAAsD;AACtD,yCAA4C;AAC5C,uCAA0C;AAC1C,oCAAuC;AACvC,yCAA4C;AAC5C,mCAAsC;AACtC,oCAAuC;AACvC,iCAAoC;AACpC,oCAAuC;AACvC,yCAA4C;AAC5C,oCAAuC;AACvC,6CAAgD;AAChD,sCAAyC;AACzC,0CAA6C;AAC7C,qCAAwC;AACxC,mCAAsC;AACtC,6CAAgD;AAChD,yCAA4C;AAC5C,uCAA0C;AAC1C,4CAA+C;AAC/C,uCAA0C;AAC1C,kCAAqC;AACrC,kCAAqC;AACrC,0CAA6C;AAC7C,wCAA2C;AAC3C,yCAA4C;AAC5C,2CAA8C;AAC9C,sCAAyC;AACzC,mCAAsC;AACtC,sCAAyC;AACzC,qCAAwC;AACxC,yCAA4C;AAC5C,qCAAwC;AACxC,yCAA4C;AAC5C,wCAA2C;AAC3C,0CAA6C;AAC7C,8CAAiD;AACjD,oCAAuC;AACvC,oCAAuC;AACvC,8CAAiD;AACjD,qCAAwC;AACxC,mCAAsC;AACtC,oCAAuC;AACvC,oCAAuC;AACvC,kCAAqC;AACrC,iCAAoC;AACpC,kCAAqC;AACrC,sCAAyC;AACzC,uCAA0C;AAC1C,2CAA8C;AAC9C,mCAAsC;AACtC,qCAAwC;AACxC,4CAA+C;AAC/C,4CAA+C;AAG/C,8DAAiE;AAGjE,8BAAiC;AACjC,+BAAkC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,yBAAyB,CAAA;AAGhC,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAGlD,yCAA4C;AAC5C,8CAAiD;AACjD,yCAA4C;AAC5C,kDAAqD;AACrD,iDAAoD;AACpD,qDAAwD;AACxD,6CAAgD;AAChD,yCAA4C;AAC5C,+CAAkD;AAClD,oDAAuD;AACvD,mDAAsD;AACtD,yCAA4C;AAC5C,uCAA0C;AAC1C,oCAAuC;AACvC,yCAA4C;AAC5C,mCAAsC;AACtC,oCAAuC;AACvC,iCAAoC;AACpC,oCAAuC;AACvC,yCAA4C;AAC5C,oCAAuC;AACvC,6CAAgD;AAChD,sCAAyC;AACzC,0CAA6C;AAC7C,qCAAwC;AACxC,mCAAsC;AACtC,6CAAgD;AAChD,yCAA4C;AAC5C,uCAA0C;AAC1C,4CAA+C;AAC/C,uCAA0C;AAC1C,kCAAqC;AACrC,kCAAqC;AACrC,0CAA6C;AAC7C,wCAA2C;AAC3C,yCAA4C;AAC5C,2CAA8C;AAC9C,sCAAyC;AACzC,mCAAsC;AACtC,sCAAyC;AACzC,qCAAwC;AACxC,yCAA4C;AAC5C,qCAAwC;AACxC,yCAA4C;AAC5C,wCAA2C;AAC3C,0CAA6C;AAC7C,8CAAiD;AACjD,oCAAuC;AACvC,oCAAuC;AACvC,8CAAiD;AACjD,qCAAwC;AACxC,mCAAsC;AACtC,oCAAuC;AACvC,oCAAuC;AACvC,kCAAqC;AACrC,iCAAoC;AACpC,kCAAqC;AACrC,sCAAyC;AACzC,uCAA0C;AAC1C,2CAA8C;AAC9C,mCAAsC;AACtC,qCAAwC;AACxC,4CAA+C;AAC/C,4CAA+C;AAG/C,8DAAiE;AAGjE,8BAAiC;AACjC,+BAAkC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@channel.io/bezier-react",
3
- "version": "2.0.9",
3
+ "version": "2.2.0",
4
4
  "description": "React components library that implements Bezier design system.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -63,23 +63,25 @@
63
63
  "@babel/preset-env": "^7.23.9",
64
64
  "@babel/preset-react": "^7.23.3",
65
65
  "@babel/preset-typescript": "^7.23.3",
66
- "@channel.io/bezier-icons": "0.27.0",
66
+ "@channel.io/bezier-icons": "0.30.0",
67
+ "@chromatic-com/storybook": "^1",
67
68
  "@rollup/plugin-alias": "^5.1.0",
68
69
  "@rollup/plugin-babel": "^6.0.4",
69
70
  "@rollup/plugin-commonjs": "^25.0.7",
70
71
  "@rollup/plugin-node-resolve": "^15.2.3",
71
72
  "@rollup/plugin-url": "^8.0.2",
72
- "@storybook/addon-a11y": "7.5.3",
73
- "@storybook/addon-actions": "7.5.3",
74
- "@storybook/addon-controls": "7.5.3",
75
- "@storybook/addon-docs": "7.5.3",
76
- "@storybook/addon-measure": "7.5.3",
77
- "@storybook/addon-outline": "7.5.3",
78
- "@storybook/addon-styling": "^1.3.7",
79
- "@storybook/manager-api": "7.5.3",
80
- "@storybook/react": "7.5.3",
81
- "@storybook/react-webpack5": "7.5.3",
82
- "@storybook/theming": "7.5.3",
73
+ "@storybook/addon-a11y": "^8.1.10",
74
+ "@storybook/addon-actions": "^8.1.10",
75
+ "@storybook/addon-controls": "^8.1.10",
76
+ "@storybook/addon-docs": "^8.1.10",
77
+ "@storybook/addon-measure": "^8.1.10",
78
+ "@storybook/addon-outline": "^8.1.10",
79
+ "@storybook/addon-styling-webpack": "^1.0.0",
80
+ "@storybook/addon-webpack5-compiler-babel": "^3.0.3",
81
+ "@storybook/manager-api": "^8.1.10",
82
+ "@storybook/react": "^8.1.10",
83
+ "@storybook/react-webpack5": "^8.1.10",
84
+ "@storybook/theming": "^8.1.10",
83
85
  "@testing-library/jest-dom": "^6.4.2",
84
86
  "@testing-library/react": "^14.2.1",
85
87
  "@testing-library/user-event": "^14.5.2",
@@ -108,7 +110,8 @@
108
110
  "rollup-plugin-postcss": "^4.0.2",
109
111
  "rollup-plugin-visualizer": "^5.12.0",
110
112
  "sass": "^1.71.1",
111
- "storybook": "7.5.3",
113
+ "sass-loader": "^14.2.1",
114
+ "storybook": "^8.1.10",
112
115
  "ts-patch": "^3.1.2",
113
116
  "ts-prune": "^0.10.3",
114
117
  "tsconfig": "workspace:*",
@@ -4,10 +4,7 @@ import type {
4
4
  SizeProps,
5
5
  } from '~/src/types/props'
6
6
 
7
- import {
8
- type AlphaAvatarProps,
9
- type AlphaAvatarSize,
10
- } from '~/src/components/AlphaAvatar'
7
+ import { type AlphaAvatarSize } from '~/src/components/AlphaAvatar'
11
8
 
12
9
  type AvatarGroupEllipsisType = 'icon' | 'count'
13
10
 
@@ -272,7 +272,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
272
272
 
273
273
  @each $size, $value in $size-map {
274
274
  &:where(.size-#{$size}) {
275
- & :is(.Spinner) {
275
+ & :is(.Loader) {
276
276
  @include dimension.square(#{$value}px);
277
277
  }
278
278
  }
@@ -7,7 +7,7 @@ import {
7
7
  type ButtonProps,
8
8
  type ButtonSize,
9
9
  } from '~/src/components/AlphaButton/Button.types'
10
- import { AlphaSpinner } from '~/src/components/AlphaSpinner'
10
+ import { AlphaLoader } from '~/src/components/AlphaLoader'
11
11
  import { BaseButton } from '~/src/components/BaseButton'
12
12
  import { Icon, type IconSize } from '~/src/components/Icon'
13
13
  import { Text } from '~/src/components/Text'
@@ -121,8 +121,8 @@ export const Button = forwardRef<HTMLButtonElement, ButtonProps>(
121
121
  styles[`size-${getIconSize(size)}`]
122
122
  )}
123
123
  >
124
- <AlphaSpinner
125
- className={styles.Spinner}
124
+ <AlphaLoader
125
+ className={styles.Loader}
126
126
  variant="on-overlay"
127
127
  />
128
128
  </div>
@@ -46,6 +46,7 @@ function DialogComposition() {
46
46
 
47
47
  const meta: Meta<typeof DialogComposition> = {
48
48
  component: DialogComposition,
49
+ tags: ['!autodocs'],
49
50
  }
50
51
 
51
52
  export const Primary: StoryObj = {}
@@ -207,7 +207,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
207
207
 
208
208
  @each $size, $value in $size-map {
209
209
  &:where(.size-#{$size}) {
210
- & :is(.Spinner) {
210
+ & :is(.Loader) {
211
211
  @include dimension.square(#{$value}px);
212
212
  }
213
213
  }
@@ -7,7 +7,7 @@ import {
7
7
  type FloatingButtonProps,
8
8
  type FloatingButtonSize,
9
9
  } from '~/src/components/AlphaFloatingButton/FloatingButton.types'
10
- import { AlphaSpinner } from '~/src/components/AlphaSpinner'
10
+ import { AlphaLoader } from '~/src/components/AlphaLoader'
11
11
  import { BaseButton } from '~/src/components/BaseButton'
12
12
  import { Icon, type IconSize } from '~/src/components/Icon'
13
13
  import { Text } from '~/src/components/Text'
@@ -120,8 +120,8 @@ export const FloatingButton = forwardRef<
120
120
  styles[`size-${getIconSize(size)}`]
121
121
  )}
122
122
  >
123
- <AlphaSpinner
124
- className={styles.Spinner}
123
+ <AlphaLoader
124
+ className={styles.Loader}
125
125
  variant="on-overlay"
126
126
  />
127
127
  </div>
@@ -176,7 +176,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
176
176
 
177
177
  @each $size, $value in $size-map {
178
178
  &:where(.size-#{$size}) {
179
- & :is(.Spinner) {
179
+ & :is(.Loader) {
180
180
  @include dimension.square(#{$value}px);
181
181
  }
182
182
  }
@@ -4,7 +4,7 @@ import { isBezierIcon } from '@channel.io/bezier-icons'
4
4
  import classNames from 'classnames'
5
5
 
6
6
  import { type AlphaFloatingIconButtonProps } from '~/src/components/AlphaFloatingIconButton'
7
- import { AlphaSpinner } from '~/src/components/AlphaSpinner'
7
+ import { AlphaLoader } from '~/src/components/AlphaLoader'
8
8
  import { BaseButton } from '~/src/components/BaseButton'
9
9
  import { type ButtonSize } from '~/src/components/Button'
10
10
  import { Icon } from '~/src/components/Icon'
@@ -75,8 +75,8 @@ export const FloatingIconButton = forwardRef<
75
75
  styles[`size-${getIconSize(size)}`]
76
76
  )}
77
77
  >
78
- <AlphaSpinner
79
- className={styles.Spinner}
78
+ <AlphaLoader
79
+ className={styles.Loader}
80
80
  variant="on-overlay"
81
81
  />
82
82
  </div>
@@ -253,7 +253,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
253
253
 
254
254
  @each $size, $value in $size-map {
255
255
  &:where(.size-#{$size}) {
256
- & :is(.Spinner) {
256
+ & :is(.Loader) {
257
257
  @include dimension.square(#{$value}px);
258
258
  }
259
259
  }
@@ -4,7 +4,7 @@ import { isBezierIcon } from '@channel.io/bezier-icons'
4
4
  import classNames from 'classnames'
5
5
 
6
6
  import { type AlphaIconButtonProps } from '~/src/components/AlphaIconButton'
7
- import { AlphaSpinner } from '~/src/components/AlphaSpinner'
7
+ import { AlphaLoader } from '~/src/components/AlphaLoader'
8
8
  import { BaseButton } from '~/src/components/BaseButton'
9
9
  import { type ButtonSize } from '~/src/components/Button'
10
10
  import { Icon } from '~/src/components/Icon'
@@ -79,8 +79,8 @@ export const IconButton = forwardRef<HTMLButtonElement, AlphaIconButtonProps>(
79
79
  styles[`size-${getIconSize(size)}`]
80
80
  )}
81
81
  >
82
- <AlphaSpinner
83
- className={styles.Spinner}
82
+ <AlphaLoader
83
+ className={styles.Loader}
84
84
  variant="on-overlay"
85
85
  />
86
86
  </div>
@@ -0,0 +1,23 @@
1
+ import React from 'react'
2
+
3
+ import { type Meta, type StoryFn } from '@storybook/react'
4
+
5
+ import { Loader } from './Loader'
6
+ import { type LoaderProps } from './Loader.types'
7
+
8
+ const meta: Meta<typeof Loader> = {
9
+ component: Loader,
10
+ }
11
+
12
+ export default meta
13
+
14
+ const Template: StoryFn<LoaderProps> = ({ ...args }) => <Loader {...args} />
15
+
16
+ export const Primary = {
17
+ render: Template,
18
+
19
+ args: {
20
+ size: 'm',
21
+ variant: 'secondary',
22
+ },
23
+ }
@@ -0,0 +1,75 @@
1
+ @use '../../styles/mixins/dimension';
2
+
3
+ @keyframes rotate {
4
+ 0% {
5
+ transform: rotate(0deg);
6
+ }
7
+
8
+ 100% {
9
+ transform: rotate(360deg);
10
+ }
11
+ }
12
+
13
+ .Loader {
14
+ --b-loader-size: initial;
15
+ --b-loader-track-color: initial;
16
+ --b-loader-indicator-color: initial;
17
+ --b-loader-stroke-thickness: initial;
18
+
19
+ /* NOTE: stroke-width is fixed for the exceptional case of use inside buttons */
20
+ --b-loader-stroke-width: 2px;
21
+ --b-loader-view-box-size: 16;
22
+ --b-loader-stroke-dasharray: 16 9999;
23
+
24
+ @include dimension.square(calc(1px * var(--b-loader-size)));
25
+
26
+ display: inline-flex;
27
+ animation: rotate 1s linear infinite;
28
+
29
+ & :where(.track) {
30
+ fill: none;
31
+ stroke: var(--b-loader-track-color);
32
+ stroke-linecap: round;
33
+ stroke-width: var(--b-loader-stroke-width);
34
+ }
35
+
36
+ & :where(.indicator) {
37
+ fill: none;
38
+ stroke: var(--b-loader-indicator-color);
39
+ stroke-dasharray: var(--b-loader-stroke-dasharray);
40
+ stroke-linecap: round;
41
+ stroke-width: var(--b-loader-stroke-width);
42
+ }
43
+
44
+ &:where(.size-s, .size-m) {
45
+ --b-loader-stroke-width: calc(
46
+ var(--b-loader-stroke-thickness) * var(--b-loader-view-box-size) /
47
+ var(--b-loader-size)
48
+ );
49
+ }
50
+
51
+ &:where(.size-s) {
52
+ --b-loader-size: 28;
53
+ --b-loader-stroke-thickness: 4px;
54
+ }
55
+
56
+ &:where(.size-m) {
57
+ --b-loader-size: 50;
58
+ --b-loader-stroke-thickness: 6px;
59
+ }
60
+
61
+ &:where(.variant-primary) {
62
+ --b-loader-track-color: var(--alpha-color-primary-bg-lightest);
63
+ --b-loader-indicator-color: var(--alpha-color-fg-blue-normal);
64
+ }
65
+
66
+ &:where(.variant-secondary) {
67
+ --b-loader-track-color: var(--alpha-color-bg-black-light);
68
+ --b-loader-indicator-color: var(--alpha-color-fg-black-light);
69
+ }
70
+
71
+ &:where(.variant-on-overlay) {
72
+ --b-loader-track-color: var(--alpha-color-bg-absolute-white-lightest);
73
+ --b-loader-indicator-color: var(--alpha-color-fg-absolute-white-light);
74
+ }
75
+ }
@@ -0,0 +1,34 @@
1
+ import React from 'react'
2
+
3
+ import { render } from '~/src/utils/test'
4
+
5
+ import { LOADER_TEST_ID, Loader } from './Loader'
6
+
7
+ describe('Loader >', () => {
8
+ const renderLoader = (props?: React.ComponentProps<typeof Loader>) =>
9
+ render(<Loader {...props} />)
10
+
11
+ it('should render', () => {
12
+ const { getByTestId } = renderLoader()
13
+ const renderedLoader = getByTestId(LOADER_TEST_ID)
14
+ expect(renderedLoader).toBeInTheDocument()
15
+ })
16
+
17
+ it('should render as a span element by default', () => {
18
+ const { getByTestId } = renderLoader()
19
+ const renderedLoader = getByTestId(LOADER_TEST_ID)
20
+ expect(renderedLoader.tagName).toBe('SPAN')
21
+ })
22
+
23
+ it('should forward ref', () => {
24
+ const ref = React.createRef<HTMLDivElement>()
25
+ renderLoader({ ref })
26
+ expect(ref.current).toBeInTheDocument()
27
+ })
28
+
29
+ it('should receive size', () => {
30
+ const { getByTestId } = renderLoader({ size: 'm' })
31
+ const renderedLoader = getByTestId(LOADER_TEST_ID)
32
+ expect(renderedLoader).toHaveClass('size-m')
33
+ })
34
+ })
@@ -0,0 +1,47 @@
1
+ import React, { forwardRef } from 'react'
2
+
3
+ import classNames from 'classnames'
4
+
5
+ import { type LoaderProps } from './Loader.types'
6
+
7
+ import styles from './Loader.module.scss'
8
+
9
+ export const LOADER_TEST_ID = 'bezier-loader'
10
+
11
+ export const Loader = forwardRef<HTMLSpanElement, LoaderProps>(function Loader(
12
+ { className, size, variant = 'secondary', ...rest },
13
+ forwardedRef
14
+ ) {
15
+ return (
16
+ <span
17
+ className={classNames(
18
+ styles.Loader,
19
+ size && styles[`size-${size}`],
20
+ styles[`variant-${variant}`],
21
+ className
22
+ )}
23
+ ref={forwardedRef}
24
+ data-testid={LOADER_TEST_ID}
25
+ {...rest}
26
+ >
27
+ <svg
28
+ xmlns="http://www.w3.org/2000/svg"
29
+ viewBox="0 0 16 16"
30
+ >
31
+ <circle
32
+ cx="8"
33
+ cy="8"
34
+ r="6.5"
35
+ className={styles.track}
36
+ />
37
+
38
+ <circle
39
+ cx="8"
40
+ cy="8"
41
+ r="6.5"
42
+ className={styles.indicator}
43
+ />
44
+ </svg>
45
+ </span>
46
+ )
47
+ })
@@ -4,18 +4,18 @@ import {
4
4
  type SizeProps,
5
5
  } from '~/src/types/props'
6
6
 
7
- type SpinnerSize = 's' | 'm'
7
+ type LoaderSize = 's' | 'm'
8
8
 
9
- interface SpinnerOwnProps {
9
+ interface LoaderOwnProps {
10
10
  /**
11
- * The style variant of Spinner.
11
+ * The style variant of Loader.
12
12
  * @default 'secondary'
13
13
  */
14
14
  variant?: 'primary' | 'secondary' | 'on-overlay'
15
15
  }
16
16
 
17
- export interface SpinnerProps
17
+ export interface LoaderProps
18
18
  extends Omit<BezierComponentProps<'span'>, keyof ColorProps>,
19
- SizeProps<SpinnerSize>,
19
+ SizeProps<LoaderSize>,
20
20
  ColorProps,
21
- SpinnerOwnProps {}
21
+ LoaderOwnProps {}
@@ -0,0 +1,2 @@
1
+ export { Loader as AlphaLoader } from './Loader'
2
+ export { type LoaderProps as AlphaLoaderProps } from './Loader.types'
@@ -104,7 +104,7 @@
104
104
  justify-content: center;
105
105
 
106
106
  &:where(.size-s) {
107
- & :is(.Spinner) {
107
+ & :is(.Loader) {
108
108
  @include dimension.square(#{map.get($size-map, 's')}px);
109
109
  }
110
110
  }
@@ -4,7 +4,7 @@ import { isBezierIcon } from '@channel.io/bezier-icons'
4
4
  import * as TogglePrimitive from '@radix-ui/react-toggle'
5
5
  import classNames from 'classnames'
6
6
 
7
- import { AlphaSpinner } from '~/src/components/AlphaSpinner'
7
+ import { AlphaLoader } from '~/src/components/AlphaLoader'
8
8
  import { useToggleButtonContext } from '~/src/components/AlphaToggleButton/ToggleButtonContext'
9
9
  import { BaseButton } from '~/src/components/BaseButton'
10
10
  import { Icon, type IconSize } from '~/src/components/Icon'
@@ -104,8 +104,8 @@ export const ToggleButton = forwardRef<HTMLButtonElement, ToggleButtonProps>(
104
104
  styles[`size-${ICON_SIZE}`]
105
105
  )}
106
106
  >
107
- <AlphaSpinner
108
- className={styles.Spinner}
107
+ <AlphaLoader
108
+ className={styles.Loader}
109
109
  variant="secondary"
110
110
  />
111
111
  </div>
@@ -29,6 +29,7 @@ function TooltipComposition() {
29
29
 
30
30
  const meta: Meta<typeof TooltipComposition> = {
31
31
  component: TooltipComposition,
32
+ tags: ['!autodocs'],
32
33
  }
33
34
 
34
35
  export const Primary: StoryObj = {}
@@ -1,6 +1,8 @@
1
- import { ArgsTable, Canvas, Story } from '@storybook/addon-docs'
2
- import { Banner, BannerVariant } from '~/src/components/Banner'
3
1
  import { StackItem, VStack } from '~/src/components/Stack'
2
+ import * as BannerStories from './Banner.stories'
3
+ import { ArgTypes, Canvas, Meta, Story } from '@storybook/addon-docs'
4
+
5
+ <Meta of={BannerStories} />
4
6
 
5
7
  # Banner
6
8
 
@@ -8,57 +10,41 @@ import { StackItem, VStack } from '~/src/components/Stack'
8
10
 
9
11
  안내, 경고, 추천 등의 다양한 정보를 잘 전달하고 싶을 때 사용합니다.
10
12
 
11
- <Canvas>
12
- <Story id="components-banner--overview" />
13
- </Canvas>
13
+ <Canvas of={BannerStories.Overview} />
14
14
 
15
15
  ## Usage
16
16
 
17
17
  - 최소 너비는 200px입니다.
18
18
 
19
- <Canvas>
20
- <Story id="components-banner--usage-min-width" />
21
- </Canvas>
19
+ <Canvas of={BannerStories.UsageMinWidth} />
22
20
 
23
21
  - Parent의 너비를 가득 채웁니다.
24
22
 
25
- <Canvas>
26
- <Story id="components-banner--usage-full-width" />
27
- </Canvas>
23
+ <Canvas of={BannerStories.UsageFullWidth} />
28
24
 
29
25
  - 최대 너비는 없으나, Banner의 텍스트 영역은 좌측 상단에 위치합니다.
30
26
 
31
- <Canvas>
32
- <Story id="components-banner--usage-max-width" />
33
- </Canvas>
27
+ <Canvas of={BannerStories.UsageMaxWidth} />
34
28
 
35
29
  - 연속으로 보여줘야 하는 경우, Banner 간의 간격은 6px 입니다.
36
30
 
37
- <Canvas>
38
- <Story id="components-banner--usage-consecutive" />
39
- </Canvas>
31
+ <Canvas of={BannerStories.UsageConsecutive} />
40
32
 
41
33
  - 아이콘을 제거하여 사용할 수 있습니다.
42
34
 
43
- <Canvas>
44
- <Story id="components-banner--usage-no-icon" />
45
- </Canvas>
35
+ <Canvas of={BannerStories.UsageNoIcon} />
46
36
 
47
37
  ### Link
48
38
 
49
39
  - 링크가 필요한 경우, 마지막에 bold, underlined text로 들어가게 됩니다.
50
40
  - `hasLink={true}` prop을 통해 링크를 enable하고, `linkText` prop으로 링크의 텍스트를 설정할 수 있습니다.
51
41
 
52
- <Canvas>
53
- <Story id="components-banner--usage-link" />
54
- </Canvas>
42
+ <Canvas of={BannerStories.UsageLink} />
55
43
 
56
44
  - `linkTo` prop을 활용하면, 링크를 클릭했을 때 이동할 location을 지정할 수 있습니다.
57
45
  - 기본적으로, 링크를 클릭하면 새 탭으로 해당 location이 열리게 됩니다. (`<a>` 태그, `target="_blank"`, `rel="noopener noreferrer"` 를 기본으로 합니다.)
58
46
 
59
- <Canvas>
60
- <Story id="components-banner--usage-link-to" />
61
- </Canvas>
47
+ <Canvas of={BannerStories.UsageLinkTo} />
62
48
 
63
49
  - Default로 제공되는 링크 메커니즘을 이용할 수 없는 경우가 있습니다. (대표적인 usecase는, SPA에서 `react-router`와 같은 라이브러리가 제공하는 링크 컴포넌를 활용하는 경우입니다.) 이 경우, `renderLink` prop을 지정하여 링크를 어떤 컴포넌트로 렌더링할지 결정할 수 있습니다.
64
50
 
@@ -69,13 +55,13 @@ const renderLink = ({ content, linkTo }) => <Link to={linkTo}>{ content }</Link>
69
55
 
70
56
  <Banner
71
57
  ...
72
- renderLink={renerLink}
58
+ renderLink={renderLink}
73
59
  />
74
60
  ```
75
61
 
76
62
  ## API
77
63
 
78
- <ArgsTable of={Banner} />
64
+ <ArgTypes of={BannerStories} />
79
65
 
80
66
  ## Version
81
67