@remember-web/primitive 0.4.8 → 0.5.1

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 (46) hide show
  1. package/dist/src/Common/Divider/index.cjs.js +32 -23
  2. package/dist/src/Common/Divider/index.cjs.js.map +1 -1
  3. package/dist/src/Common/Divider/index.d.ts +15 -2
  4. package/dist/src/Common/Divider/index.d.ts.map +1 -1
  5. package/dist/src/Common/Divider/index.esm.js +30 -3
  6. package/dist/src/Common/Divider/index.esm.js.map +1 -1
  7. package/dist/src/ModalScreen/index.cjs.js +63 -0
  8. package/dist/src/ModalScreen/index.cjs.js.map +1 -0
  9. package/dist/src/ModalScreen/index.d.ts +23 -0
  10. package/dist/src/ModalScreen/index.d.ts.map +1 -0
  11. package/dist/src/ModalScreen/index.esm.js +57 -0
  12. package/dist/src/ModalScreen/index.esm.js.map +1 -0
  13. package/dist/src/ModalScreen/radix.cjs.js +49 -0
  14. package/dist/src/ModalScreen/radix.cjs.js.map +1 -0
  15. package/dist/src/ModalScreen/radix.d.ts +15 -0
  16. package/dist/src/ModalScreen/radix.d.ts.map +1 -0
  17. package/dist/src/ModalScreen/radix.esm.js +43 -0
  18. package/dist/src/ModalScreen/radix.esm.js.map +1 -0
  19. package/dist/src/ModalScreen/styles.cjs.js +20 -0
  20. package/dist/src/ModalScreen/styles.cjs.js.map +1 -0
  21. package/dist/src/ModalScreen/styles.d.ts +5 -0
  22. package/dist/src/ModalScreen/styles.d.ts.map +1 -0
  23. package/dist/src/ModalScreen/styles.esm.js +11 -0
  24. package/dist/src/ModalScreen/styles.esm.js.map +1 -0
  25. package/dist/src/index.cjs.js +39 -62
  26. package/dist/src/index.cjs.js.map +1 -1
  27. package/dist/src/index.d.ts +8 -7
  28. package/dist/src/index.d.ts.map +1 -1
  29. package/dist/src/index.esm.js +7 -13
  30. package/dist/src/index.esm.js.map +1 -1
  31. package/dist/src/radix.cjs.js +33 -0
  32. package/dist/src/radix.cjs.js.map +1 -0
  33. package/dist/src/radix.d.ts +20 -0
  34. package/dist/src/radix.d.ts.map +1 -0
  35. package/dist/src/radix.esm.js +9 -0
  36. package/dist/src/radix.esm.js.map +1 -0
  37. package/package.json +8 -4
  38. package/src/Common/Divider/index.tsx +52 -3
  39. package/src/ModalScreen/ModalScreen.Bottom.stories.tsx +308 -0
  40. package/src/ModalScreen/ModalScreen.Header.stories.tsx +261 -0
  41. package/src/ModalScreen/ModalScreen.stories.tsx +269 -0
  42. package/src/ModalScreen/index.tsx +79 -0
  43. package/src/ModalScreen/radix.tsx +77 -0
  44. package/src/ModalScreen/styles.ts +54 -0
  45. package/src/index.ts +8 -7
  46. package/src/radix.ts +24 -0
@@ -2,86 +2,63 @@
2
2
 
3
3
  var index = require('./Avatars/Avatar/index.cjs.js');
4
4
  var styles = require('./Avatars/Avatar/styles.cjs.js');
5
- var index$1 = require('./Buttons/Button/index.cjs.js');
6
5
  var utils = require('./Badge/utils.cjs.js');
7
6
  var Badge = require('./Badge/Badge.cjs.js');
8
7
  var style = require('./Badge/style.cjs.js');
9
- var index$2 = require('./Common/Divider/index.cjs.js');
10
- var index$3 = require('./Common/Flex/index.cjs.js');
11
- var index$4 = require('./Common/Grid/index.cjs.js');
12
- var index$5 = require('./Common/Spinner/index.cjs.js');
13
- var index$6 = require('./Common/Skeleton/index.cjs.js');
14
- var index$7 = require('./Common/Typography/index.cjs.js');
8
+ var index$1 = require('./Buttons/Button/index.cjs.js');
9
+ var index$2 = require('./Chips/Chip/index.cjs.js');
10
+ var index$3 = require('./Common/Divider/index.cjs.js');
11
+ var index$4 = require('./Common/Flex/index.cjs.js');
12
+ var index$5 = require('./Common/Grid/index.cjs.js');
13
+ var index$6 = require('./Common/Spinner/index.cjs.js');
14
+ var index$7 = require('./Common/Skeleton/index.cjs.js');
15
+ var index$8 = require('./Common/Typography/index.cjs.js');
15
16
  var styles$1 = require('./Common/Typography/styles.cjs.js');
16
17
  var Checkbox = require('./Control/Checkbox.cjs.js');
17
- var Toggle = require('./Control/Toggle.cjs.js');
18
- var index$8 = require('./Control/Switch/index.cjs.js');
19
18
  var Radio = require('./Control/Radio.cjs.js');
20
- var index$9 = require('./Logos/RememberLogo/index.cjs.js');
21
- var index$a = require('./Logos/RememberMobileLogo/index.cjs.js');
22
- var index$b = require('./Logos/RememberSquareLogo/index.cjs.js');
23
- var index$c = require('./Logos/RememberServiceLogo/index.cjs.js');
24
- var index$d = require('./Modals/Dialog/index.cjs.js');
25
- var index$e = require('./Paginations/Pagination/index.cjs.js');
26
- var index$f = require('./Paginations/CompactPagination/index.cjs.js');
27
- var index$g = require('./Inputs/TextInput/index.cjs.js');
28
- var index$h = require('./Inputs/Select/index.cjs.js');
29
- var index$i = require('./Floating/DropdownMenu/index.cjs.js');
30
- var index$j = require('./Floating/Popover/index.cjs.js');
31
- var index$k = require('./Floating/Tooltip/index.cjs.js');
32
- var styles$2 = require('./Floating/DropdownMenu/styles.cjs.js');
33
- var styles$3 = require('./Floating/Popover/styles.cjs.js');
34
- var index$l = require('./Chips/Chip/index.cjs.js');
35
- var index$m = require('./Labels/Label/index.cjs.js');
19
+ var Toggle = require('./Control/Toggle.cjs.js');
20
+ var index$9 = require('./Inputs/TextInput/index.cjs.js');
21
+ var index$a = require('./Inputs/Select/index.cjs.js');
22
+ var index$b = require('./Labels/Label/index.cjs.js');
23
+ var index$c = require('./Logos/RememberLogo/index.cjs.js');
24
+ var index$d = require('./Logos/RememberMobileLogo/index.cjs.js');
25
+ var index$e = require('./Logos/RememberSquareLogo/index.cjs.js');
26
+ var index$f = require('./Logos/RememberServiceLogo/index.cjs.js');
27
+ var index$g = require('./ModalScreen/index.cjs.js');
28
+ var index$h = require('./Paginations/Pagination/index.cjs.js');
29
+ var index$i = require('./Paginations/CompactPagination/index.cjs.js');
36
30
 
37
31
 
38
32
 
39
33
  exports.Avatar = index;
40
34
  exports.StyledAvatar = styles.StyledAvatar;
41
- exports.Button = index$1.Button;
42
35
  exports.badgePseudo = utils.badgePseudo;
43
36
  exports.Badge = Badge.Badge;
44
37
  exports.getBadgePseudoCss = style.getBadgePseudoCss;
45
- exports.Divider = index$2.Divider;
46
- exports.Flex = index$3.Flex;
47
- exports.Grid = index$4.Grid;
48
- exports.Spinner = index$5.Spinner;
49
- exports.Skeleton = index$6.Skeleton;
50
- exports.Typography = index$7.Typography;
38
+ exports.Button = index$1.Button;
39
+ exports.Chip = index$2.Chip;
40
+ exports.Divider = index$3.Divider;
41
+ exports.Flex = index$4.Flex;
42
+ exports.Grid = index$5.Grid;
43
+ exports.Spinner = index$6.Spinner;
44
+ exports.Skeleton = index$7.Skeleton;
45
+ exports.Typography = index$8.Typography;
51
46
  exports.StyledTypography = styles$1.StyledTypography;
52
47
  exports.Checkbox = Checkbox.Checkbox;
53
48
  exports._Checkbox = Checkbox._Checkbox;
49
+ exports.Radio = Radio.Radio;
54
50
  exports.CircleBaseToggle = Toggle.CircleBaseToggle;
55
51
  exports.Toggle = Toggle.Toggle;
56
52
  exports._Toggle = Toggle._Toggle;
57
- exports.Switch = index$8.Switch;
58
- exports.Radio = Radio.Radio;
59
- exports.RememberLogo = index$9.RememberLogo;
60
- exports.getViewBoxWidth = index$9.getViewBoxWidth;
61
- exports.RememberMobileLogo = index$a.RememberMobileLogo;
62
- exports.RememberSquareLogo = index$b.RememberSquareLogo;
63
- exports.RememberServiceLogo = index$c.RememberServiceLogo;
64
- exports.Dialog = index$d.Dialog;
65
- exports.Pagination = index$e.Pagination;
66
- exports.CompactPagination = index$f.CompactPagination;
67
- exports.TextInput = index$g;
68
- exports.Select = index$h;
69
- exports.DropdownMenu = index$i;
70
- exports.Popover = index$j;
71
- exports.Tooltip = index$k;
72
- exports.DropdownMenuItemDisabledCSS = styles$2.DropdownMenuItemDisabledCSS;
73
- exports.DropdownMenuItemHoverCSS = styles$2.DropdownMenuItemHoverCSS;
74
- exports.StyledDropdownMenuContent = styles$2.StyledDropdownMenuContent;
75
- exports.StyledDropdownMenuContentWrapper = styles$2.StyledDropdownMenuContentWrapper;
76
- exports.StyledDropdownMenuItem = styles$2.StyledDropdownMenuItem;
77
- exports.StyledDropdownMenuSection = styles$2.StyledDropdownMenuSection;
78
- exports.StyledDropdownMenuSectionTitle = styles$2.StyledDropdownMenuSectionTitle;
79
- exports.dropdownMenuItemCSS = styles$2.dropdownMenuItemCSS;
80
- exports.getDropdownMenuItemCss = styles$2.getDropdownMenuItemCss;
81
- exports.StyledPopoverContent = styles$3.StyledPopoverContent;
82
- exports.StyledPopoverContentWrapper = styles$3.StyledPopoverContentWrapper;
83
- exports.showFadeIn = styles$3.showFadeIn;
84
- exports.showFadeOut = styles$3.showFadeOut;
85
- exports.Chip = index$l.Chip;
86
- exports.Label = index$m;
53
+ exports.TextInput = index$9;
54
+ exports.Select = index$a;
55
+ exports.Label = index$b;
56
+ exports.RememberLogo = index$c.RememberLogo;
57
+ exports.getViewBoxWidth = index$c.getViewBoxWidth;
58
+ exports.RememberMobileLogo = index$d.RememberMobileLogo;
59
+ exports.RememberSquareLogo = index$e.RememberSquareLogo;
60
+ exports.RememberServiceLogo = index$f.RememberServiceLogo;
61
+ exports.ModalScreen = index$g.ModalScreen;
62
+ exports.Pagination = index$h.Pagination;
63
+ exports.CompactPagination = index$i.CompactPagination;
87
64
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,13 +1,14 @@
1
1
  export * from './Avatars';
2
- export * from './Buttons';
3
2
  export * from './Badge';
3
+ export * from './Buttons';
4
+ export * from './Chips';
4
5
  export * from './Common';
5
- export * from './Control';
6
- export * from './Logos';
7
- export * from './Modals';
8
- export * from './Paginations';
6
+ export { _Checkbox, Checkbox } from './Control/Checkbox';
7
+ export { Radio } from './Control/Radio';
8
+ export { _Toggle, CircleBaseToggle, Toggle } from './Control/Toggle';
9
9
  export * from './Inputs';
10
- export * from './Floating';
11
- export * from './Chips';
12
10
  export * from './Labels';
11
+ export * from './Logos';
12
+ export * from './ModalScreen';
13
+ export * from './Paginations';
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACrE,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
@@ -1,9 +1,10 @@
1
1
  export { default as Avatar } from './Avatars/Avatar/index.esm.js';
2
2
  export { StyledAvatar } from './Avatars/Avatar/styles.esm.js';
3
- export { Button } from './Buttons/Button/index.esm.js';
4
3
  export { badgePseudo } from './Badge/utils.esm.js';
5
4
  export { Badge } from './Badge/Badge.esm.js';
6
5
  export { getBadgePseudoCss } from './Badge/style.esm.js';
6
+ export { Button } from './Buttons/Button/index.esm.js';
7
+ export { Chip } from './Chips/Chip/index.esm.js';
7
8
  export { Divider } from './Common/Divider/index.esm.js';
8
9
  export { Flex } from './Common/Flex/index.esm.js';
9
10
  export { Grid } from './Common/Grid/index.esm.js';
@@ -12,23 +13,16 @@ export { Skeleton } from './Common/Skeleton/index.esm.js';
12
13
  export { Typography } from './Common/Typography/index.esm.js';
13
14
  export { StyledTypography } from './Common/Typography/styles.esm.js';
14
15
  export { Checkbox, _Checkbox } from './Control/Checkbox.esm.js';
15
- export { CircleBaseToggle, Toggle, _Toggle } from './Control/Toggle.esm.js';
16
- export { Switch } from './Control/Switch/index.esm.js';
17
16
  export { Radio } from './Control/Radio.esm.js';
17
+ export { CircleBaseToggle, Toggle, _Toggle } from './Control/Toggle.esm.js';
18
+ export { default as TextInput } from './Inputs/TextInput/index.esm.js';
19
+ export { default as Select } from './Inputs/Select/index.esm.js';
20
+ export { default as Label } from './Labels/Label/index.esm.js';
18
21
  export { RememberLogo, getViewBoxWidth } from './Logos/RememberLogo/index.esm.js';
19
22
  export { RememberMobileLogo } from './Logos/RememberMobileLogo/index.esm.js';
20
23
  export { RememberSquareLogo } from './Logos/RememberSquareLogo/index.esm.js';
21
24
  export { RememberServiceLogo } from './Logos/RememberServiceLogo/index.esm.js';
22
- export { Dialog } from './Modals/Dialog/index.esm.js';
25
+ export { ModalScreen } from './ModalScreen/index.esm.js';
23
26
  export { Pagination } from './Paginations/Pagination/index.esm.js';
24
27
  export { CompactPagination } from './Paginations/CompactPagination/index.esm.js';
25
- export { default as TextInput } from './Inputs/TextInput/index.esm.js';
26
- export { default as Select } from './Inputs/Select/index.esm.js';
27
- export { default as DropdownMenu } from './Floating/DropdownMenu/index.esm.js';
28
- export { default as Popover } from './Floating/Popover/index.esm.js';
29
- export { default as Tooltip } from './Floating/Tooltip/index.esm.js';
30
- export { DropdownMenuItemDisabledCSS, DropdownMenuItemHoverCSS, StyledDropdownMenuContent, StyledDropdownMenuContentWrapper, StyledDropdownMenuItem, StyledDropdownMenuSection, StyledDropdownMenuSectionTitle, dropdownMenuItemCSS, getDropdownMenuItemCss } from './Floating/DropdownMenu/styles.esm.js';
31
- export { StyledPopoverContent, StyledPopoverContentWrapper, showFadeIn, showFadeOut } from './Floating/Popover/styles.esm.js';
32
- export { Chip } from './Chips/Chip/index.esm.js';
33
- export { default as Label } from './Labels/Label/index.esm.js';
34
28
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,33 @@
1
+ 'use strict';
2
+
3
+ var index = require('./Control/Switch/index.cjs.js');
4
+ var index$1 = require('./Floating/DropdownMenu/index.cjs.js');
5
+ var index$2 = require('./Floating/Popover/index.cjs.js');
6
+ var index$3 = require('./Floating/Tooltip/index.cjs.js');
7
+ var styles = require('./Floating/DropdownMenu/styles.cjs.js');
8
+ var styles$1 = require('./Floating/Popover/styles.cjs.js');
9
+ var radix = require('./ModalScreen/radix.cjs.js');
10
+ var index$4 = require('./Modals/Dialog/index.cjs.js');
11
+
12
+
13
+
14
+ exports.Switch = index.Switch;
15
+ exports.DropdownMenu = index$1;
16
+ exports.Popover = index$2;
17
+ exports.Tooltip = index$3;
18
+ exports.DropdownMenuItemDisabledCSS = styles.DropdownMenuItemDisabledCSS;
19
+ exports.DropdownMenuItemHoverCSS = styles.DropdownMenuItemHoverCSS;
20
+ exports.StyledDropdownMenuContent = styles.StyledDropdownMenuContent;
21
+ exports.StyledDropdownMenuContentWrapper = styles.StyledDropdownMenuContentWrapper;
22
+ exports.StyledDropdownMenuItem = styles.StyledDropdownMenuItem;
23
+ exports.StyledDropdownMenuSection = styles.StyledDropdownMenuSection;
24
+ exports.StyledDropdownMenuSectionTitle = styles.StyledDropdownMenuSectionTitle;
25
+ exports.dropdownMenuItemCSS = styles.dropdownMenuItemCSS;
26
+ exports.getDropdownMenuItemCss = styles.getDropdownMenuItemCss;
27
+ exports.StyledPopoverContent = styles$1.StyledPopoverContent;
28
+ exports.StyledPopoverContentWrapper = styles$1.StyledPopoverContentWrapper;
29
+ exports.showFadeIn = styles$1.showFadeIn;
30
+ exports.showFadeOut = styles$1.showFadeOut;
31
+ exports.ModalScreen = radix.ModalScreen;
32
+ exports.Dialog = index$4.Dialog;
33
+ //# sourceMappingURL=radix.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radix.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @remember-web/primitive/radix
3
+ *
4
+ * Radix UI에 의존하는 모든 컴포넌트를 한 곳에서 export합니다.
5
+ * Radix UI를 사용하지 않는 프로젝트는 이 파일을 import하지 않으면 됩니다.
6
+ *
7
+ * @example
8
+ * ```tsx
9
+ * // Radix 사용 프로젝트
10
+ * import { Dialog, ModalScreen, Popover, Tooltip, Divider } from '@remember-web/primitive/radix';
11
+ *
12
+ * // Native 사용 프로젝트
13
+ * import { ModalScreen } from '@remember-web/primitive';
14
+ * ```
15
+ */
16
+ export * from './Control/Switch';
17
+ export * from './Floating';
18
+ export * from './ModalScreen/radix';
19
+ export * from './Modals/Dialog';
20
+ //# sourceMappingURL=radix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radix.d.ts","sourceRoot":"","sources":["../../src/radix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,cAAc,kBAAkB,CAAC;AAEjC,cAAc,YAAY,CAAC;AAE3B,cAAc,qBAAqB,CAAC;AAEpC,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,9 @@
1
+ export { Switch } from './Control/Switch/index.esm.js';
2
+ export { default as DropdownMenu } from './Floating/DropdownMenu/index.esm.js';
3
+ export { default as Popover } from './Floating/Popover/index.esm.js';
4
+ export { default as Tooltip } from './Floating/Tooltip/index.esm.js';
5
+ export { DropdownMenuItemDisabledCSS, DropdownMenuItemHoverCSS, StyledDropdownMenuContent, StyledDropdownMenuContentWrapper, StyledDropdownMenuItem, StyledDropdownMenuSection, StyledDropdownMenuSectionTitle, dropdownMenuItemCSS, getDropdownMenuItemCss } from './Floating/DropdownMenu/styles.esm.js';
6
+ export { StyledPopoverContent, StyledPopoverContentWrapper, showFadeIn, showFadeOut } from './Floating/Popover/styles.esm.js';
7
+ export { ModalScreen } from './ModalScreen/radix.esm.js';
8
+ export { Dialog } from './Modals/Dialog/index.esm.js';
9
+ //# sourceMappingURL=radix.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radix.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remember-web/primitive",
3
- "version": "0.4.8",
3
+ "version": "0.5.1",
4
4
  "description": "Remember Web Primitive Components",
5
5
  "homepage": "https://dramancompany.github.io/remember-web-packages/",
6
6
  "author": "Remember",
@@ -31,17 +31,21 @@
31
31
  "require": "./dist/src/index.cjs.js",
32
32
  "import": "./dist/src/index.esm.js",
33
33
  "types": "./dist/src/index.d.ts"
34
+ },
35
+ "./radix": {
36
+ "require": "./dist/src/radix.cjs.js",
37
+ "import": "./dist/src/radix.esm.js",
38
+ "types": "./dist/src/radix.d.ts"
34
39
  }
35
40
  },
36
41
  "dependencies": {
37
42
  "@babel/runtime": "^7.24.4",
38
- "@radix-ui/react-dialog": "^1.0.5",
43
+ "@radix-ui/react-dialog": "^1.1.15",
39
44
  "@radix-ui/react-label": "^2.0.2",
40
45
  "@radix-ui/react-popover": "^1.0.7",
41
- "@radix-ui/react-separator": "^1.0.3",
42
46
  "@radix-ui/react-switch": "^1.0.3",
43
47
  "@radix-ui/react-tooltip": "^1.0.7",
44
- "@remember-web/icon": "^0.4.4",
48
+ "@remember-web/icon": "^0.5.0",
45
49
  "@remember-web/mixin": "^0.4.0",
46
50
  "@remember-web/shared": "^0.1.2"
47
51
  },
@@ -1,16 +1,65 @@
1
1
  'use client';
2
2
 
3
- import * as SeparatorPrimitive from '@radix-ui/react-separator';
4
3
  import { divider } from '@remember-web/mixin';
4
+ import { forwardRef } from 'react';
5
5
  import styled from 'styled-components';
6
6
 
7
- export interface DividerProps extends SeparatorPrimitive.SeparatorProps {
7
+ interface SeparatorProps extends React.ComponentPropsWithoutRef<'div'> {
8
+ /**
9
+ * Either `vertical` or `horizontal`. Defaults to `horizontal`.
10
+ */
11
+ orientation?: (typeof ORIENTATIONS)[number];
12
+ /**
13
+ * Whether or not the component is purely decorative. When true, accessibility-related attributes
14
+ * are updated so that that the rendered element is removed from the accessibility tree.
15
+ */
16
+ decorative?: boolean;
17
+ }
18
+
19
+ export interface DividerProps extends SeparatorProps {
8
20
  color?: string;
9
21
  $width?: string | number;
10
22
  $height?: string | number;
11
23
  }
12
24
 
13
- const StyledDivider = styled(SeparatorPrimitive.Root)<DividerProps>`
25
+ const DEFAULT_ORIENTATION = 'horizontal';
26
+ const ORIENTATIONS = ['horizontal', 'vertical'] as const;
27
+
28
+ function isValidOrientation(
29
+ orientation: any
30
+ ): orientation is (typeof ORIENTATIONS)[number] {
31
+ return ORIENTATIONS.includes(orientation);
32
+ }
33
+
34
+ const _Separator = forwardRef<React.ComponentRef<'div'>, SeparatorProps>(
35
+ (props, forwardedRef) => {
36
+ const {
37
+ decorative,
38
+ orientation: orientationProp = DEFAULT_ORIENTATION,
39
+ ...domProps
40
+ } = props;
41
+ const orientation = isValidOrientation(orientationProp)
42
+ ? orientationProp
43
+ : DEFAULT_ORIENTATION;
44
+ // `aria-orientation` defaults to `horizontal` so we only need it if `orientation` is vertical
45
+ const ariaOrientation =
46
+ orientation === 'vertical' ? orientation : undefined;
47
+ const semanticProps = decorative
48
+ ? { role: 'none' }
49
+ : { 'aria-orientation': ariaOrientation, role: 'separator' };
50
+
51
+ return (
52
+ <div
53
+ data-orientation={orientation}
54
+ {...semanticProps}
55
+ {...domProps}
56
+ ref={forwardedRef}
57
+ />
58
+ );
59
+ }
60
+ );
61
+
62
+ const StyledDivider = styled(_Separator)<DividerProps>`
14
63
  background-color: ${({ color = divider }) => color};
15
64
  &[data-orientation='horizontal'] {
16
65
  height: 1px;