nitro-web 0.0.110 → 0.0.112
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.
|
@@ -11,7 +11,14 @@ type DropdownProps = {
|
|
|
11
11
|
css?: string
|
|
12
12
|
/** The direction of the menu **/
|
|
13
13
|
dir?: 'bottom-left'|'bottom-right'|'top-left'|'top-right'
|
|
14
|
-
options?: {
|
|
14
|
+
options?: {
|
|
15
|
+
label: string|React.ReactNode,
|
|
16
|
+
onClick?: Function,
|
|
17
|
+
isSelected?: boolean,
|
|
18
|
+
icon?: React.ReactNode,
|
|
19
|
+
iconLeft?: React.ReactNode,
|
|
20
|
+
className?: string
|
|
21
|
+
}[]
|
|
15
22
|
/** Whether the dropdown is hoverable **/
|
|
16
23
|
isHoverable?: boolean
|
|
17
24
|
/** The content to render inside the top of the dropdown **/
|
|
@@ -22,6 +29,7 @@ type DropdownProps = {
|
|
|
22
29
|
menuToggles?: boolean
|
|
23
30
|
/** The minimum width of the menu **/
|
|
24
31
|
minWidth?: number | string
|
|
32
|
+
maxHeight?: number | string
|
|
25
33
|
toggleCallback?: (isActive: boolean) => void
|
|
26
34
|
}
|
|
27
35
|
|
|
@@ -39,6 +47,7 @@ export const Dropdown = forwardRef(function Dropdown({
|
|
|
39
47
|
menuIsOpen,
|
|
40
48
|
menuToggles=true,
|
|
41
49
|
minWidth,
|
|
50
|
+
maxHeight,
|
|
42
51
|
toggleCallback,
|
|
43
52
|
}: DropdownProps, ref) {
|
|
44
53
|
// https://letsbuildui.dev/articles/building-a-dropdown-menu-component-with-react-hooks
|
|
@@ -156,7 +165,11 @@ export const Dropdown = forwardRef(function Dropdown({
|
|
|
156
165
|
})
|
|
157
166
|
}
|
|
158
167
|
<ul
|
|
159
|
-
style={{
|
|
168
|
+
style={{
|
|
169
|
+
minWidth: minWidth,
|
|
170
|
+
maxHeight: maxHeight,
|
|
171
|
+
...(maxHeight ? { overflow: 'auto' } : {}),
|
|
172
|
+
}}
|
|
160
173
|
class={
|
|
161
174
|
twMerge(`${menuStyle} ${ready ? 'is-ready' : ''} absolute invisible opacity-0 select-none min-w-full z-[1] ${menuClassName||''}`)}
|
|
162
175
|
>
|
|
@@ -170,6 +183,7 @@ export const Dropdown = forwardRef(function Dropdown({
|
|
|
170
183
|
className={twMerge(`${optionStyle} ${option.className} ${menuOptionClassName}`)}
|
|
171
184
|
onClick={(e: React.MouseEvent) => onClick(option, e)}
|
|
172
185
|
>
|
|
186
|
+
{ !!option.iconLeft && option.iconLeft }
|
|
173
187
|
<span class="flex-auto">{option.label}</span>
|
|
174
188
|
{ !!option.icon && option.icon }
|
|
175
189
|
{ option.isSelected && <CheckCircleIcon className="size-[22px] text-primary -my-1 -mx-0.5" /> }
|
|
@@ -124,7 +124,7 @@ export function Table<T extends TableRow>({
|
|
|
124
124
|
return (
|
|
125
125
|
<div
|
|
126
126
|
style={{ marginTop: -rowGap }}
|
|
127
|
-
className={twMerge('overflow-x-auto thin-scrollbar', className)}
|
|
127
|
+
className={twMerge('overflow-x-auto thin-scrollbar min-h-full', className)}
|
|
128
128
|
>
|
|
129
129
|
<div
|
|
130
130
|
style={{ borderSpacing: `0 ${rowGap}px` }}
|
|
@@ -98,6 +98,16 @@ export function FieldCurrency({ currency='nzd', currencies, format, onChange, va
|
|
|
98
98
|
let _format = format || defaultFormat
|
|
99
99
|
const _currencies = currencies ?? defaultCurrencies
|
|
100
100
|
const currencyObject = _currencies[currency as keyof typeof _currencies]
|
|
101
|
+
if (!currencyObject && currencies) {
|
|
102
|
+
console.error(
|
|
103
|
+
`The currency field "${props.name}" is using the currency "${currency}" which is not found in your currencies object`
|
|
104
|
+
)
|
|
105
|
+
} else if (!currencyObject && !currencies) {
|
|
106
|
+
console.error(
|
|
107
|
+
`The currency field "${props.name}" is using the currency "${currency}" which is not found in the
|
|
108
|
+
default currencies, please provide a currencies object.`
|
|
109
|
+
)
|
|
110
|
+
}
|
|
101
111
|
const symbol = currencyObject ? currencyObject.symbol : ''
|
|
102
112
|
const digits = currencyObject ? currencyObject.digits : 2
|
|
103
113
|
|
|
@@ -160,13 +170,59 @@ export function FieldCurrency({ currency='nzd', currencies, format, onChange, va
|
|
|
160
170
|
)
|
|
161
171
|
}
|
|
162
172
|
|
|
163
|
-
const defaultCurrencies = {
|
|
164
|
-
nzd: { symbol: '$', digits: 2 },
|
|
165
|
-
aud: { symbol: '$', digits: 2 },
|
|
166
|
-
usd: { symbol: '$', digits: 2 },
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
173
|
+
export const defaultCurrencies: { [key: string]: { name: string, symbol: string, digits: number } } = {
|
|
174
|
+
nzd: { name: 'New Zealand Dollar', symbol: '$', digits: 2 },
|
|
175
|
+
aud: { name: 'Australian Dollar', symbol: '$', digits: 2 },
|
|
176
|
+
usd: { name: 'US Dollar', symbol: '$', digits: 2 },
|
|
177
|
+
btc: { name: 'Bitcoin', symbol: '₿', digits: 8 },
|
|
178
|
+
aed: { name: 'UAE Dirham', symbol: 'د.إ', digits: 2 },
|
|
179
|
+
ars: { name: 'Argentine Peso', symbol: '$', digits: 2 },
|
|
180
|
+
bdt: { name: 'Bangladeshi Taka', symbol: '৳', digits: 2 },
|
|
181
|
+
bhd: { name: 'Bahraini Dinar', symbol: '.د.ب', digits: 3 },
|
|
182
|
+
brl: { name: 'Brazilian Real', symbol: 'R$', digits: 2 },
|
|
183
|
+
cad: { name: 'Canadian Dollar', symbol: '$', digits: 2 },
|
|
184
|
+
chf: { name: 'Swiss Franc', symbol: 'Fr', digits: 2 },
|
|
185
|
+
clp: { name: 'Chilean Peso', symbol: '$', digits: 0 },
|
|
186
|
+
cny: { name: 'Chinese Yuan', symbol: '¥', digits: 2 },
|
|
187
|
+
cop: { name: 'Colombian Peso', symbol: '$', digits: 2 },
|
|
188
|
+
czk: { name: 'Czech Koruna', symbol: 'Kč', digits: 2 },
|
|
189
|
+
dkk: { name: 'Danish Krone', symbol: 'kr', digits: 2 },
|
|
190
|
+
egp: { name: 'Egyptian Pound', symbol: '£', digits: 2 },
|
|
191
|
+
eur: { name: 'Euro', symbol: '€', digits: 2 },
|
|
192
|
+
gbp: { name: 'Great Britain Pound', symbol: '£', digits: 2 },
|
|
193
|
+
hkd: { name: 'Hong Kong Dollar', symbol: '$', digits: 2 },
|
|
194
|
+
huf: { name: 'Hungarian Forint', symbol: 'Ft', digits: 0 },
|
|
195
|
+
idr: { name: 'Indonesian Rupiah', symbol: 'Rp', digits: 0 },
|
|
196
|
+
ils: { name: 'Israeli Shekel', symbol: '₪', digits: 2 },
|
|
197
|
+
inr: { name: 'Indian Rupee', symbol: '₹', digits: 2 },
|
|
198
|
+
jod: { name: 'Jordanian Dinar', symbol: 'د.ا', digits: 3 },
|
|
199
|
+
jpy: { name: 'Japanese Yen', symbol: '¥', digits: 0 },
|
|
200
|
+
kes: { name: 'Kenyan Shilling', symbol: 'Sh', digits: 2 },
|
|
201
|
+
krw: { name: 'South Korean Won', symbol: '₩', digits: 0 },
|
|
202
|
+
kwd: { name: 'Kuwaiti Dinar', symbol: 'د.ك', digits: 3 },
|
|
203
|
+
lkr: { name: 'Sri Lankan Rupee', symbol: 'Rs', digits: 2 },
|
|
204
|
+
mad: { name: 'Moroccan Dirham', symbol: 'د.م.', digits: 2 },
|
|
205
|
+
mxn: { name: 'Mexican Peso', symbol: '$', digits: 2 },
|
|
206
|
+
myr: { name: 'Malaysian Ringgit', symbol: 'RM', digits: 2 },
|
|
207
|
+
ngn: { name: 'Nigerian Naira', symbol: '₦', digits: 2 },
|
|
208
|
+
nok: { name: 'Norwegian Krone', symbol: 'kr', digits: 2 },
|
|
209
|
+
omr: { name: 'Omani Rial', symbol: '﷼', digits: 3 },
|
|
210
|
+
pen: { name: 'Peruvian Sol', symbol: 'S/', digits: 2 },
|
|
211
|
+
php: { name: 'Philippine Peso', symbol: '₱', digits: 2 },
|
|
212
|
+
pkt: { name: 'Pakistani Rupee', symbol: '₨', digits: 2 },
|
|
213
|
+
pln: { name: 'Polish Zloty', symbol: 'zł', digits: 2 },
|
|
214
|
+
qar: { name: 'Qatari Riyal', symbol: '﷼', digits: 2 },
|
|
215
|
+
ron: { name: 'Romanian Leu', symbol: 'lei', digits: 2 },
|
|
216
|
+
rub: { name: 'Russian Ruble', symbol: '₽', digits: 2 },
|
|
217
|
+
sar: { name: 'Saudi Riyal', symbol: '﷼', digits: 2 },
|
|
218
|
+
sek: { name: 'Swedish Krona', symbol: 'kr', digits: 2 },
|
|
219
|
+
sgd: { name: 'Singapore Dollar', symbol: '$', digits: 2 },
|
|
220
|
+
thb: { name: 'Thai Baht', symbol: '฿', digits: 2 },
|
|
221
|
+
try: { name: 'Turkish Lira', symbol: '₺', digits: 2 },
|
|
222
|
+
twd: { name: 'New Taiwan Dollar', symbol: 'NT$', digits: 2 },
|
|
223
|
+
uah: { name: 'Ukrainian Hryvnia', symbol: '₴', digits: 2 },
|
|
224
|
+
vnd: { name: 'Vietnamese Dong', symbol: '₫', digits: 0 },
|
|
225
|
+
zar: { name: 'South African Rand', symbol: 'R', digits: 2 },
|
|
170
226
|
}
|
|
171
227
|
|
|
172
228
|
const defaultFormat = '¤#,##0.00'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nitro-web",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.112",
|
|
4
4
|
"repository": "github:boycce/nitro-web",
|
|
5
5
|
"homepage": "https://boycce.github.io/nitro-web/",
|
|
6
6
|
"description": "Nitro is a battle-tested, modular base project to turbocharge your projects, styled using Tailwind 🚀",
|