@moises.ai/design-system 3.9.23 → 3.9.25

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moises.ai/design-system",
3
- "version": "3.9.23",
3
+ "version": "3.9.25",
4
4
  "description": "Design System package based on @radix-ui/themes with custom defaults",
5
5
  "private": false,
6
6
  "type": "module",
@@ -370,8 +370,8 @@
370
370
  @media (max-width: 500px) {
371
371
  .DataTable :global(.rt-TableColumnHeaderCell:nth-child(2)),
372
372
  .DataTable :global(.rt-TableCell:nth-child(2)) {
373
- max-width: 200px;
374
- min-width: 200px;
373
+ max-width: 180px;
374
+ min-width: 100px;
375
375
  }
376
376
  }
377
377
 
@@ -1,7 +1,7 @@
1
1
  import { ScrollArea } from '@radix-ui/themes'
2
2
  import classNames from 'classnames'
3
3
  import { DropdownMenu as DropdownMenuRadix } from 'radix-ui'
4
- import React, { memo } from 'react'
4
+ import React, { memo, useState } from 'react'
5
5
  import { createRenderItem, styles } from '../../lib/menu'
6
6
  import { Theme } from '../theme/Theme'
7
7
 
@@ -20,8 +20,16 @@ export const DropdownMenu = memo(
20
20
  closeOnSelect = true,
21
21
  sideOffset = 5,
22
22
  matchTriggerWidth = false,
23
+ wrapCloseMenu,
23
24
  ...props
24
25
  }) => {
26
+ const isControlled = props.open !== undefined
27
+ const [internalOpen, setInternalOpen] = useState(false)
28
+ const open = isControlled ? props.open : internalOpen
29
+ const onOpenChange = isControlled ? props.onOpenChange : setInternalOpen
30
+ const baseClose = () => onOpenChange(false)
31
+ const closeMenu = wrapCloseMenu ? wrapCloseMenu(baseClose) : baseClose
32
+
25
33
  const contentStyle = {
26
34
  ...(matchTriggerWidth && {
27
35
  width: 'var(--radix-dropdown-menu-trigger-width)',
@@ -34,8 +42,8 @@ export const DropdownMenu = memo(
34
42
  {options?.length > 0 && (
35
43
  <DropdownMenuRadix.Root
36
44
  {...props}
37
- open={disabled ? false : props.open}
38
- onOpenChange={disabled ? undefined : props.onOpenChange}
45
+ open={disabled ? false : open}
46
+ onOpenChange={disabled ? undefined : onOpenChange}
39
47
  >
40
48
  <DropdownMenuRadix.Trigger
41
49
  asChild
@@ -72,6 +80,7 @@ export const DropdownMenu = memo(
72
80
  size,
73
81
  onSelectionChange,
74
82
  closeOnSelect,
83
+ closeMenu,
75
84
  ),
76
85
  )}
77
86
  </ScrollArea>
@@ -100,6 +109,7 @@ export const DropdownMenu = memo(
100
109
  size,
101
110
  onSelectionChange,
102
111
  closeOnSelect,
112
+ closeMenu,
103
113
  ),
104
114
  )}
105
115
  </DropdownMenuRadix.Content>
@@ -24,6 +24,13 @@ export const ProfileMenu = ({
24
24
  if (isMobile) close()
25
25
  }
26
26
 
27
+ const wrapCloseMenu = isMobile
28
+ ? (baseClose) => () => {
29
+ baseClose()
30
+ close()
31
+ }
32
+ : undefined
33
+
27
34
  const trigger = <MenuTrigger user={user} collapsed={collapsed} />
28
35
  return (
29
36
  <DropdownMenu
@@ -42,6 +49,7 @@ export const ProfileMenu = ({
42
49
  options={menuOptions}
43
50
  side={isMobileViewport ? 'top' : 'right'}
44
51
  {...props}
52
+ wrapCloseMenu={wrapCloseMenu}
45
53
  onSelectionChange={handleSelectionChange}
46
54
  />
47
55
  )
@@ -18,7 +18,7 @@ export const Default = {
18
18
  {
19
19
  type: 'custom',
20
20
  key: 'credits-header',
21
- customRender: () => <div key="credits-header">
21
+ customRender: (closeMenu) => <div key="credits-header">
22
22
  <div style={{ display: 'flex', alignItems: 'center', gap: 8 }} className="showActiveTrigger">
23
23
  <div>
24
24
  <Text style={{ fontSize: 14, fontWeight: 'normal', lineHeight: '20px' }}>Credits:</Text>{` `}
@@ -31,6 +31,7 @@ export const Default = {
31
31
  title="Upgrade"
32
32
  style={{ border: 'none', cursor: 'pointer', backgroundColor: '#00dae8', color: '#061415', fontSize: 12, fontWeight: 500, padding: '4px 8px', borderRadius: 4 }}
33
33
  onClick={() => {
34
+ closeMenu?.()
34
35
  alert('Upgrade clicked')
35
36
  }}
36
37
  >
@@ -223,8 +223,11 @@ sectionTitle {
223
223
 
224
224
  .setlistsContent {
225
225
  /* gap: 4px; */
226
- margin: 1px 0;
227
- /* padding-bottom: 16px; */
226
+ /* margin: 1px 0; */
227
+ /* margin: 1px 0 16px 0; */
228
+ margin: 1px 0 16px 0;
229
+
230
+ /* padding-bottom: 15px; */
228
231
  }
229
232
 
230
233
  .scrollShadow {
@@ -84,6 +84,30 @@ export const Default = {
84
84
  name: 'Alex Smith',
85
85
  plan: 'Premium',
86
86
  menuOptions: [
87
+ {
88
+ type: 'custom',
89
+ key: 'credits-header',
90
+ customRender: (closeMenu) => (
91
+ <div key="credits-header">
92
+ <div style={{ display: 'flex', alignItems: 'center', gap: 8 }} className="showActiveTrigger">
93
+ <Text as="span" style={{ fontSize: 14, fontWeight: 'normal', lineHeight: '20px' }}>Credits: </Text>
94
+ <Text as="span" style={{ color: 'var(--gray-12)', fontSize: 14 }}>45/60</Text>
95
+ <button
96
+ type="button"
97
+ aria-label="Upgrade"
98
+ style={{ border: 'none', cursor: 'pointer', backgroundColor: 'var(--cyan-9)', color: 'var(--gray-1)', fontSize: 12, fontWeight: 500, padding: '4px 8px', borderRadius: 4 }}
99
+ onClick={() => {
100
+ closeMenu?.()
101
+ console.log('Upgrade clicked - menu should close')
102
+ }}
103
+ >
104
+ Upgrade
105
+ </button>
106
+ </div>
107
+ </div>
108
+ ),
109
+ },
110
+ { type: 'separator', key: 'sep-credits' },
87
111
  {
88
112
  type: 'item',
89
113
  key: 'account-settings',
@@ -14,6 +14,7 @@ export const createRenderItem = (MenuPrimitives) => {
14
14
  size = '2',
15
15
  onSelectionChange,
16
16
  closeOnSelect = true,
17
+ closeMenu,
17
18
  ) => {
18
19
  switch (opt.type) {
19
20
  case 'custom':
@@ -33,7 +34,7 @@ export const createRenderItem = (MenuPrimitives) => {
33
34
  disabled={opt.disabled}
34
35
  asChild
35
36
  >
36
- {opt.customRender()}
37
+ {opt.customRender(closeMenu)}
37
38
  </MenuPrimitives.Item>
38
39
  )
39
40
 
@@ -79,7 +80,7 @@ export const createRenderItem = (MenuPrimitives) => {
79
80
 
80
81
  <MenuPrimitives.SubContent className={styles.menuSubContent}>
81
82
  {opt?.children?.map((child) =>
82
- renderItem(child, size, onSelectionChange, closeOnSelect),
83
+ renderItem(child, size, onSelectionChange, closeOnSelect, closeMenu),
83
84
  )}
84
85
  </MenuPrimitives.SubContent>
85
86
  </MenuPrimitives.Sub>