@remember-web/primitive 0.1.17 → 0.1.19

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 (67) hide show
  1. package/dist/src/Buttons/Button/index.cjs.js +5 -6
  2. package/dist/src/Buttons/Button/index.cjs.js.map +1 -1
  3. package/dist/src/Buttons/Button/index.d.ts +3 -8
  4. package/dist/src/Buttons/Button/index.d.ts.map +1 -1
  5. package/dist/src/Buttons/Button/index.esm.js +3 -4
  6. package/dist/src/Buttons/Button/index.esm.js.map +1 -1
  7. package/dist/src/Buttons/Button/styles.cjs.js +1 -1
  8. package/dist/src/Buttons/Button/styles.cjs.js.map +1 -1
  9. package/dist/src/Buttons/Button/styles.d.ts +1 -2
  10. package/dist/src/Buttons/Button/styles.d.ts.map +1 -1
  11. package/dist/src/Buttons/Button/styles.esm.js +1 -1
  12. package/dist/src/Buttons/Button/styles.esm.js.map +1 -1
  13. package/dist/src/Buttons/Button/types.d.ts +4 -6
  14. package/dist/src/Buttons/Button/types.d.ts.map +1 -1
  15. package/dist/src/Common/Flex/index.cjs.js +8 -7
  16. package/dist/src/Common/Flex/index.cjs.js.map +1 -1
  17. package/dist/src/Common/Flex/index.d.ts +5 -4
  18. package/dist/src/Common/Flex/index.d.ts.map +1 -1
  19. package/dist/src/Common/Flex/index.esm.js +8 -7
  20. package/dist/src/Common/Flex/index.esm.js.map +1 -1
  21. package/dist/src/Common/Grid/index.cjs.js +1 -0
  22. package/dist/src/Common/Grid/index.cjs.js.map +1 -1
  23. package/dist/src/Common/Grid/index.d.ts +1 -0
  24. package/dist/src/Common/Grid/index.d.ts.map +1 -1
  25. package/dist/src/Common/Grid/index.esm.js +1 -0
  26. package/dist/src/Common/Grid/index.esm.js.map +1 -1
  27. package/dist/src/Common/Typography/index.cjs.js +4 -7
  28. package/dist/src/Common/Typography/index.cjs.js.map +1 -1
  29. package/dist/src/Common/Typography/index.d.ts +6 -9
  30. package/dist/src/Common/Typography/index.d.ts.map +1 -1
  31. package/dist/src/Common/Typography/index.esm.js +4 -7
  32. package/dist/src/Common/Typography/index.esm.js.map +1 -1
  33. package/dist/src/Common/index.d.ts +1 -1
  34. package/dist/src/Common/index.d.ts.map +1 -1
  35. package/dist/src/Control/BaseToggle/ToggleIcon/index.cjs.js +14 -3
  36. package/dist/src/Control/BaseToggle/ToggleIcon/index.cjs.js.map +1 -1
  37. package/dist/src/Control/BaseToggle/ToggleIcon/index.d.ts.map +1 -1
  38. package/dist/src/Control/BaseToggle/ToggleIcon/index.esm.js +9 -3
  39. package/dist/src/Control/BaseToggle/ToggleIcon/index.esm.js.map +1 -1
  40. package/dist/src/Control/BaseToggle/styles.cjs.js +2 -2
  41. package/dist/src/Control/BaseToggle/styles.cjs.js.map +1 -1
  42. package/dist/src/Control/BaseToggle/styles.esm.js +2 -2
  43. package/dist/src/Control/BaseToggle/styles.esm.js.map +1 -1
  44. package/dist/src/Modals/Dialog/index.cjs.js +1 -1
  45. package/dist/src/Modals/Dialog/index.cjs.js.map +1 -1
  46. package/dist/src/Modals/Dialog/index.esm.js +1 -1
  47. package/dist/src/Modals/Dialog/index.esm.js.map +1 -1
  48. package/dist/src/Paginations/CompactPagination/index.cjs.js +1 -1
  49. package/dist/src/Paginations/CompactPagination/index.cjs.js.map +1 -1
  50. package/dist/src/Paginations/CompactPagination/index.esm.js +1 -1
  51. package/dist/src/Paginations/CompactPagination/index.esm.js.map +1 -1
  52. package/dist/src/index.cjs.js +6 -6
  53. package/dist/src/index.esm.js +1 -1
  54. package/package.json +2 -2
  55. package/src/Buttons/Button/Button.stories.tsx +1 -1
  56. package/src/Buttons/Button/index.tsx +32 -39
  57. package/src/Buttons/Button/styles.ts +2 -3
  58. package/src/Buttons/Button/types.ts +6 -12
  59. package/src/Common/Divider/Divider.stories.tsx +1 -1
  60. package/src/Common/Flex/index.tsx +29 -28
  61. package/src/Common/Grid/index.tsx +1 -0
  62. package/src/Common/Typography/index.tsx +24 -37
  63. package/src/Common/index.ts +1 -1
  64. package/src/Control/BaseToggle/ToggleIcon/index.tsx +14 -1
  65. package/src/Control/BaseToggle/styles.ts +10 -10
  66. package/src/Modals/Dialog/index.tsx +1 -1
  67. package/src/Paginations/CompactPagination/index.tsx +1 -1
@@ -1,54 +1,41 @@
1
1
  'use client';
2
2
 
3
+ import { type TypographyStyle } from '@remember-web/mixin';
3
4
  import type {
4
- ComponentPropsWithoutRef,
5
- ComponentPropsWithRef,
6
5
  CSSProperties,
7
- ElementType,
8
- ReactElement,
6
+ ComponentProps,
7
+ ForwardedRef,
9
8
  ReactNode,
10
9
  } from 'react';
11
10
  import { forwardRef } from 'react';
12
- import { type TypographyStyle } from '@remember-web/mixin';
11
+ import type { PolymorphicComponent } from 'styled-components';
13
12
 
14
13
  import { StyledTypography } from './styles';
15
14
 
16
- const Typography = <T extends ElementType>(
17
- {
18
- variant,
19
- as,
20
- color,
21
- children,
22
- ellipsis,
23
- maxWidth,
24
- ...props
25
- }: TypographyProps<T>,
26
- ref: ComponentPropsWithRef<T>['ref']
27
- ) => (
28
- <StyledTypography
29
- ref={ref}
30
- as={as}
31
- $variant={variant}
32
- $color={color}
33
- $ellipsis={ellipsis}
34
- $maxWidth={maxWidth}
35
- {...props}
36
- >
37
- {children}
38
- </StyledTypography>
39
- );
15
+ const Typography = forwardRef(function (
16
+ { variant, color, children, ellipsis, maxWidth, ...props }: TypographyProps,
17
+ ref: ForwardedRef<HTMLDivElement | null>
18
+ ) {
19
+ return (
20
+ <StyledTypography
21
+ ref={ref}
22
+ $variant={variant}
23
+ $color={color}
24
+ $ellipsis={ellipsis}
25
+ $maxWidth={maxWidth}
26
+ {...props}
27
+ >
28
+ {children}
29
+ </StyledTypography>
30
+ );
31
+ }) as PolymorphicComponent<'web', TypographyProps>;
40
32
 
41
- type TypographyProps<T extends ElementType> = {
33
+ type TypographyProps = {
42
34
  variant: TypographyStyle;
43
- as?: T;
44
35
  color?: string;
45
36
  children?: ReactNode;
46
37
  ellipsis?: number;
47
38
  maxWidth?: CSSProperties['maxWidth'];
48
- } & ComponentPropsWithoutRef<T>;
49
-
50
- type TypographyComponentWithRef = <T extends ElementType = 'div'>(
51
- props: TypographyProps<T> & { ref?: ComponentPropsWithRef<T>['ref'] }
52
- ) => ReactElement | null;
39
+ } & ComponentProps<'div'>;
53
40
 
54
- export default forwardRef(Typography) as TypographyComponentWithRef;
41
+ export default Typography;
@@ -1,5 +1,5 @@
1
1
  export * from './Divider';
2
- export * from './Flex';
2
+ export { default as Flex } from './Flex';
3
3
  export * from './Grid';
4
4
  export * from './Spinner';
5
5
  export { default as Typography } from './Typography';
@@ -19,6 +19,7 @@ import {
19
19
  type SvgSizeProps,
20
20
  type WithSvgSizeComponentType,
21
21
  } from '@remember-web/icon/util';
22
+ import styled from 'styled-components';
22
23
 
23
24
  import type { ToggleStatusType, ToggleVariantType } from '../types';
24
25
 
@@ -68,5 +69,17 @@ export function ToggleIcon({
68
69
 
69
70
  const Icon = ICON_NAME[variant][status];
70
71
 
71
- return <Icon className={className} size={iconSize} />;
72
+ return (
73
+ <ToggleIconContainer className={`toggleIcon ${className}`}>
74
+ <Icon size={iconSize} />
75
+ </ToggleIconContainer>
76
+ );
72
77
  }
78
+
79
+ const ToggleIconContainer = styled.div`
80
+ border-radius: 50%;
81
+
82
+ > svg {
83
+ display: block;
84
+ }
85
+ `;
@@ -13,7 +13,7 @@ export const ToggleRoot = styled.label<{ $gap?: number }>`
13
13
  user-select: none;
14
14
  align-items: center;
15
15
 
16
- & > svg {
16
+ & > .toggleIcon {
17
17
  transition: filter 0.2s ease-in-out;
18
18
  flex-shrink: 0;
19
19
  }
@@ -23,7 +23,7 @@ export const ToggleRoot = styled.label<{ $gap?: number }>`
23
23
  }
24
24
 
25
25
  @media (hover: hover) {
26
- &:hover > svg {
26
+ &:hover > .toggleIcon {
27
27
  filter: grayscale(0.05) brightness(0.95);
28
28
  }
29
29
  }
@@ -36,32 +36,32 @@ export const ToggleInput = styled.input`
36
36
  height: 0px;
37
37
  margin-left: -1px;
38
38
 
39
- &:checked ~ svg.offIcon {
39
+ &:checked ~ .toggleIcon.offIcon {
40
40
  display: none;
41
41
  }
42
42
 
43
- &:not(:checked) ~ svg.onIcon {
43
+ &:not(:checked) ~ .toggleIcon.onIcon {
44
44
  display: none;
45
45
  }
46
46
 
47
- &[type='checkbox']:indeterminate ~ svg.offIcon,
48
- &[type='checkbox']:indeterminate ~ svg.onIcon {
47
+ &[type='checkbox']:indeterminate ~ .toggleIcon.offIcon,
48
+ &[type='checkbox']:indeterminate ~ .toggleIcon.onIcon {
49
49
  display: none;
50
50
  }
51
51
 
52
- &[type='checkbox']:not(:indeterminate) ~ svg.indeterminateIcon {
52
+ &[type='checkbox']:not(:indeterminate) ~ .toggleIcon.indeterminateIcon {
53
53
  display: none;
54
54
  }
55
55
 
56
- &:disabled ~ svg {
56
+ &:disabled ~ .toggleIcon {
57
57
  filter: grayscale(1) brightness(1.1);
58
58
  }
59
59
 
60
- &:not(:disabled):active ~ svg {
60
+ &:not(:disabled):active ~ .toggleIcon {
61
61
  filter: grayscale(0.1) brightness(0.9);
62
62
  }
63
63
 
64
- &:focus-visible ~ svg {
64
+ &:focus-visible ~ .toggleIcon {
65
65
  outline: solid 2px ${primary100};
66
66
  outline-offset: -1px;
67
67
  }
@@ -4,7 +4,7 @@ import type { DialogContentProps, DialogProps } from '@radix-ui/react-dialog';
4
4
  import { Root, Trigger, Close, Portal } from '@radix-ui/react-dialog';
5
5
  import { IconClose, PictogramAlert, PictogramCheck } from '@remember-web/icon';
6
6
 
7
- import { Flex } from '@/Common/Flex';
7
+ import Flex from '@/Common/Flex';
8
8
 
9
9
  import {
10
10
  DialogContent,
@@ -3,7 +3,7 @@
3
3
  import { IconArrow2Left, IconArrow2Right } from '@remember-web/icon';
4
4
  import { contents000, contents300 } from '@remember-web/mixin';
5
5
 
6
- import { Flex } from '@/Common/Flex';
6
+ import Flex from '@/Common/Flex';
7
7
 
8
8
  import {
9
9
  ArrowButton,