@modul/mbui 0.0.20 → 0.0.21-beta-test-8a4f2b68

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 (37) hide show
  1. package/dist/Icon/icons/Share.js +2 -2
  2. package/dist/Icon/icons/Share.js.map +1 -1
  3. package/dist/Select/SelectAccount.d.ts +8 -0
  4. package/dist/Select/SelectAccount.js +50 -0
  5. package/dist/Select/SelectAccount.js.map +1 -0
  6. package/dist/Select/SelectAccountCard.js +5 -33
  7. package/dist/Select/SelectAccountCard.js.map +1 -1
  8. package/dist/Select/SelectAsync.js +12 -73
  9. package/dist/Select/SelectAsync.js.map +1 -1
  10. package/dist/Select/SelectBase.js +13 -73
  11. package/dist/Select/SelectBase.js.map +1 -1
  12. package/dist/Select/components/components.d.ts +15 -0
  13. package/dist/Select/components/components.js +80 -0
  14. package/dist/Select/components/components.js.map +1 -0
  15. package/dist/Select/components/index.d.ts +1 -0
  16. package/dist/Select/components/index.js +17 -0
  17. package/dist/Select/components/index.js.map +1 -0
  18. package/dist/Select/index.d.ts +1 -0
  19. package/dist/Select/index.js +3 -1
  20. package/dist/Select/index.js.map +1 -1
  21. package/dist/Switch/Switch.d.ts +2 -2
  22. package/dist/Switch/Switch.js +3 -3
  23. package/dist/Switch/Switch.js.map +1 -1
  24. package/dist/index.d.ts +2 -3
  25. package/dist/index.js +4 -4
  26. package/dist/index.js.map +1 -1
  27. package/package.json +2 -2
  28. package/src/Icon/icons/Share.tsx +4 -4
  29. package/src/Select/SelectAccount.tsx +101 -0
  30. package/src/Select/SelectAccountCard.tsx +1 -51
  31. package/src/Select/SelectAsync.tsx +1 -162
  32. package/src/Select/SelectBase.tsx +19 -168
  33. package/src/Select/components/components.tsx +186 -0
  34. package/src/Select/components/index.tsx +15 -0
  35. package/src/Select/index.ts +1 -0
  36. package/src/Switch/Switch.tsx +15 -21
  37. package/src/index.ts +4 -4
@@ -0,0 +1,186 @@
1
+ import React from 'react'
2
+ import {
3
+ components,
4
+ ControlProps,
5
+ OptionProps,
6
+ DropdownIndicatorProps,
7
+ StylesConfig,
8
+ SingleValueProps,
9
+ MenuProps,
10
+ PlaceholderProps,
11
+ ValueContainerProps,
12
+ InputProps,
13
+ LoadingIndicatorProps,
14
+ IndicatorsContainerProps,
15
+ } from 'react-select'
16
+ import { cn } from '../../@/lib/utils'
17
+ import { CheckSmall, DropdownSmallOld } from '../../Icon'
18
+
19
+ const Input = ({ ...props }: InputProps) => {
20
+ return (
21
+ <components.Input
22
+ className="col-start-1 col-end-3 row-start-1 row-end-2"
23
+ {...props}
24
+ />
25
+ )
26
+ }
27
+
28
+ const selectTriggerClasses: string = `
29
+ flex
30
+ items-center
31
+ py-[12px]
32
+ px-[16px]
33
+ h-[44px]
34
+ text-left
35
+ border-[1px]
36
+ border-input
37
+ rounded-sm
38
+ cursor-pointer
39
+ `
40
+ const Control = ({ children, ...props }: ControlProps) => {
41
+ const { isFocused } = props
42
+ return (
43
+ <components.Control
44
+ className={cn(selectTriggerClasses, { 'outline outline-primary outline-offset-2 outline-2': isFocused })}
45
+ {...props}
46
+ >
47
+ {children}
48
+ </components.Control>
49
+ )
50
+ }
51
+
52
+ const colourStyles: StylesConfig = {
53
+ control: () => ({}),
54
+ option: () => ({}),
55
+ input: () => ({}),
56
+ dropdownIndicator: () => ({}),
57
+ indicatorsContainer: () => ({}),
58
+ menu: () => ({}),
59
+ menuList: () => ({}),
60
+ singleValue: () => ({}),
61
+ valueContainer: () => ({}),
62
+ }
63
+
64
+ const optionClasses =
65
+ 'flex items-center first:rounded-t-sm last:rounded-b-sm px-[16px] py-[12px] w-full cursor-default select-none outline-none'
66
+
67
+ const Option = ({ children, ...props }: OptionProps) => {
68
+ const { isSelected, isFocused, isDisabled } = props
69
+ return (
70
+ <components.Option
71
+ className={cn(
72
+ optionClasses,
73
+ 'items-start',
74
+ { 'bg-light': isFocused },
75
+ { 'opacity-50 pointer-events-none': isDisabled }
76
+ )}
77
+ {...props}
78
+ >
79
+ <span className="flex basis-0 grow">{children}</span>
80
+
81
+ <span className="ml-[16px] shrink-0 size-[24px]">
82
+ {isSelected && (
83
+ <CheckSmall
84
+ width="24"
85
+ height="24"
86
+ className="text-primary"
87
+ />
88
+ )}
89
+ </span>
90
+ </components.Option>
91
+ )
92
+ }
93
+
94
+ const IndicatorsContainer = ({ children, ...props }: IndicatorsContainerProps) => {
95
+ return (
96
+ <components.IndicatorsContainer
97
+ className="flex items-center gap-x-[8px] shrink-0"
98
+ {...props}
99
+ >
100
+ {children}
101
+ </components.IndicatorsContainer>
102
+ )
103
+ }
104
+
105
+ const LoadingIndicator = ({ ...props }: LoadingIndicatorProps) => {
106
+ return (
107
+ <components.LoadingIndicator
108
+ className="text-light shrink-0"
109
+ {...props}
110
+ />
111
+ )
112
+ }
113
+
114
+ const DropdownIndicator = ({ children, ...props }: DropdownIndicatorProps) => {
115
+ return (
116
+ <components.DropdownIndicator
117
+ className="shrink-0"
118
+ {...props}
119
+ >
120
+ <DropdownSmallOld
121
+ className="text-light"
122
+ width="12"
123
+ height="12"
124
+ />
125
+ </components.DropdownIndicator>
126
+ )
127
+ }
128
+
129
+ const ValueContainer = ({ children, ...props }: ValueContainerProps) => {
130
+ return (
131
+ <components.ValueContainer
132
+ className="flex-1 grid"
133
+ {...props}
134
+ >
135
+ {children}
136
+ </components.ValueContainer>
137
+ )
138
+ }
139
+
140
+ const SingleValue = ({ children, ...props }: SingleValueProps) => {
141
+ return (
142
+ <components.SingleValue
143
+ className="col-start-1 col-end-3 row-start-1 row-end-2"
144
+ {...props}
145
+ >
146
+ {children}
147
+ </components.SingleValue>
148
+ )
149
+ }
150
+
151
+ const Menu = ({ children, ...props }: MenuProps) => {
152
+ return (
153
+ <components.Menu
154
+ className="z-[1] absolute inset-x-0 bg-page shadow-sm mt-[8px] rounded-sm"
155
+ {...props}
156
+ >
157
+ {children}
158
+ </components.Menu>
159
+ )
160
+ }
161
+
162
+ const Placeholder = ({ children, ...props }: PlaceholderProps) => {
163
+ return (
164
+ <components.Placeholder
165
+ className="col-start-1 col-end-3 row-start-1 row-end-2 text-[16px] text-light truncate"
166
+ {...props}
167
+ >
168
+ {children}
169
+ </components.Placeholder>
170
+ )
171
+ }
172
+
173
+ export {
174
+ Input,
175
+ Control,
176
+ colourStyles,
177
+ optionClasses,
178
+ Option,
179
+ IndicatorsContainer,
180
+ LoadingIndicator,
181
+ DropdownIndicator,
182
+ ValueContainer,
183
+ SingleValue,
184
+ Menu,
185
+ Placeholder,
186
+ }
@@ -0,0 +1,15 @@
1
+ export {
2
+ Input,
3
+ Control,
4
+ colourStyles,
5
+ optionClasses,
6
+ Option,
7
+ IndicatorsContainer,
8
+ LoadingIndicator,
9
+ DropdownIndicator,
10
+ ValueContainer,
11
+ SingleValue,
12
+ Menu,
13
+ Placeholder,
14
+
15
+ } from './components'
@@ -1,4 +1,5 @@
1
1
  export { SelectAccountCard } from './SelectAccountCard'
2
+ export { SelectAccount } from './SelectAccount'
2
3
  export { SelectAsync } from './SelectAsync'
3
4
  export { SelectBase } from './SelectBase'
4
5
  export { Select } from './Select'
@@ -1,13 +1,12 @@
1
-
2
- import * as React from "react"
3
- import * as SwitchPrimitives from "@radix-ui/react-switch"
4
- import { cn } from "../@/lib/utils"
1
+ import * as React from 'react'
2
+ import * as SwitchPrimitives from '@radix-ui/react-switch'
3
+ import { cn } from '../@/lib/utils'
5
4
 
6
5
  const rootClasses = `
7
6
  inline-flex
8
7
  items-center
9
- w-[32px]
10
- h-[18px]
8
+ w-[44px]
9
+ h-[24px]
11
10
  bg-light
12
11
  shadow-sm
13
12
  rounded-full
@@ -20,6 +19,7 @@ const rootClasses = `
20
19
  disabled:cursor-not-allowed peer shrink-0
21
20
  disabled:opacity-50
22
21
  transition-colors cursor-pointer
22
+ [&+input]:hidden
23
23
  `
24
24
  const ThumbClasses = `
25
25
  size-[18px]
@@ -37,22 +37,16 @@ const ThumbClasses = `
37
37
  `
38
38
 
39
39
  const Switch = React.forwardRef<
40
- React.ElementRef<typeof SwitchPrimitives.Root>,
41
- React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>
40
+ React.ElementRef<typeof SwitchPrimitives.Root>,
41
+ React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>
42
42
  >(({ className, ...props }, ref) => (
43
- <SwitchPrimitives.Root
44
- className={cn(
45
- rootClasses,
46
- className
47
- )}
48
- {...props}
49
- ref={ref}
50
- >
51
- <span className=""></span>
52
- <SwitchPrimitives.Thumb
53
- className={ThumbClasses}
54
- />
55
- </SwitchPrimitives.Root>
43
+ <SwitchPrimitives.Root
44
+ className={cn(rootClasses, className)}
45
+ {...props}
46
+ ref={ref}
47
+ >
48
+ <SwitchPrimitives.Thumb className={ThumbClasses} />
49
+ </SwitchPrimitives.Root>
56
50
  ))
57
51
 
58
52
  Switch.displayName = SwitchPrimitives.Root.displayName
package/src/index.ts CHANGED
@@ -30,11 +30,10 @@ import { Alert } from './Alert'
30
30
  import { Switch } from './Switch'
31
31
  import { Label } from './Label'
32
32
  import { Textarea } from './Textarea'
33
- import { SelectAccountCard, SelectAsync } from './Select'
33
+ import { SelectAccountCard, SelectAsync, SelectAccount, Select } from './Select'
34
34
  import { Form, FormLabel, FormField, FormItem, FormControl, FormDescription, FormMessage } from './Form'
35
35
  import { Calendar } from './Calendar'
36
36
  import { DatePicker } from './DatePicker'
37
- import { Select } from './Select'
38
37
  import { Progress } from './Progress'
39
38
  import {
40
39
  AlertDialog,
@@ -95,6 +94,9 @@ export {
95
94
  Label,
96
95
  Textarea,
97
96
  SelectAccountCard,
97
+ SelectAccount,
98
+ SelectAsync,
99
+ Select,
98
100
  Form,
99
101
  FormLabel,
100
102
  FormField,
@@ -104,9 +106,7 @@ export {
104
106
  FormMessage,
105
107
  Calendar,
106
108
  DatePicker,
107
- SelectAsync,
108
109
  InputMask,
109
- Select,
110
110
  AlertDialog,
111
111
  AlertDialogTrigger,
112
112
  AlertDialogContent,