@sikka/hawa 0.0.185 → 0.0.187
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/dist/styles.css +15 -5
- package/es/blocks/AuthForms/ResetPasswordForm.d.ts +3 -0
- package/es/blocks/AuthForms/SignUpForm.d.ts +1 -0
- package/es/elements/HawaTabs.d.ts +1 -0
- package/es/elements/HawaTextField.d.ts +1 -0
- package/es/index.es.js +1 -1
- package/lib/blocks/AuthForms/ResetPasswordForm.d.ts +3 -0
- package/lib/blocks/AuthForms/SignUpForm.d.ts +1 -0
- package/lib/elements/HawaTabs.d.ts +1 -0
- package/lib/elements/HawaTextField.d.ts +1 -0
- package/lib/index.js +1 -1
- package/package.json +20 -4
- package/src/blocks/AuthForms/ResetPasswordForm.tsx +12 -0
- package/src/blocks/AuthForms/SignUpForm.tsx +40 -43
- package/src/elements/HawaCheckbox.tsx +3 -2
- package/src/elements/HawaMenu.tsx +3 -2
- package/src/elements/HawaPhoneInput.tsx +1 -1
- package/src/elements/HawaSelect.tsx +1 -1
- package/src/elements/HawaTabs.tsx +11 -5
- package/src/elements/HawaTextField.tsx +14 -19
- package/src/layout/HawaAppLayout.tsx +33 -9
- package/src/layout/HawaContainer.tsx +1 -1
- package/src/styles.css +15 -5
- package/src/tailwind.css +1 -1
package/package.json
CHANGED
|
@@ -1,9 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sikka/hawa",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"description": "UI Kit",
|
|
3
|
+
"version": "0.0.187",
|
|
4
|
+
"description": "SaaS Oriented UI Kit",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.es.js",
|
|
7
|
+
"author": "Sikka Software <contact@sikka.io> (http://sikka.io)",
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"keywords": [
|
|
10
|
+
"ui",
|
|
11
|
+
"kit",
|
|
12
|
+
"saas",
|
|
13
|
+
"kit",
|
|
14
|
+
"hawa"
|
|
15
|
+
],
|
|
16
|
+
"repository": {
|
|
17
|
+
"type": "git",
|
|
18
|
+
"url": "https://github.com/sikka-software/hawa.git"
|
|
19
|
+
},
|
|
20
|
+
"bugs": {
|
|
21
|
+
"url": "https://github.com/sikka-software/hawa/issues",
|
|
22
|
+
"email": "hawa@sikka.io"
|
|
23
|
+
},
|
|
24
|
+
"homepage": "https://hawa.style",
|
|
7
25
|
"scripts": {
|
|
8
26
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
9
27
|
"start": "start-storybook -p 6006 -s public",
|
|
@@ -14,8 +32,6 @@
|
|
|
14
32
|
"build-lib": "rollup -c",
|
|
15
33
|
"build:styles": " node tools/build-styles"
|
|
16
34
|
},
|
|
17
|
-
"author": "Sikka Software",
|
|
18
|
-
"license": "MIT",
|
|
19
35
|
"devDependencies": {
|
|
20
36
|
"@babel/core": "^7.12.10",
|
|
21
37
|
"@babel/preset-react": "^7.12.10",
|
|
@@ -5,6 +5,7 @@ import { HawaContainer } from "../../layout"
|
|
|
5
5
|
|
|
6
6
|
type ResetPasswordType = {
|
|
7
7
|
handleResetPassword: () => void
|
|
8
|
+
handleRouteToSignUp: () => void
|
|
8
9
|
sent: any
|
|
9
10
|
texts: {
|
|
10
11
|
emailLabel: string
|
|
@@ -13,6 +14,8 @@ type ResetPasswordType = {
|
|
|
13
14
|
emailInvalidText: string
|
|
14
15
|
emailSentText: string
|
|
15
16
|
resetPassword: string
|
|
17
|
+
signUpText: string
|
|
18
|
+
dontHaveAccount: string
|
|
16
19
|
}
|
|
17
20
|
}
|
|
18
21
|
|
|
@@ -53,6 +56,15 @@ export const ResetPasswordForm: React.FunctionComponent<ResetPasswordType> = (
|
|
|
53
56
|
},
|
|
54
57
|
}}
|
|
55
58
|
/>
|
|
59
|
+
<div className=" pb-2 text-left text-sm dark:text-gray-300">
|
|
60
|
+
{props.texts.dontHaveAccount ?? "Don't have an account? "}
|
|
61
|
+
<span
|
|
62
|
+
onClick={props.handleRouteToSignUp}
|
|
63
|
+
className="cursor-pointer text-blue-600 dark:text-blue-400"
|
|
64
|
+
>
|
|
65
|
+
{props.texts.signUpText ?? "Sign Up"}
|
|
66
|
+
</span>
|
|
67
|
+
</div>
|
|
56
68
|
<HawaButton
|
|
57
69
|
color="primary"
|
|
58
70
|
width="full"
|
|
@@ -41,6 +41,7 @@ type SignUpFormTypes = {
|
|
|
41
41
|
googleButtonLabel: string
|
|
42
42
|
githubButtonLabel: string
|
|
43
43
|
twitterButtonLabel: string
|
|
44
|
+
refCode: string
|
|
44
45
|
}
|
|
45
46
|
showUserSource: any
|
|
46
47
|
viaGoogle: boolean
|
|
@@ -194,13 +195,13 @@ export const SignUpForm: React.FunctionComponent<SignUpFormTypes> = (props) => {
|
|
|
194
195
|
{props.showRefCode && (
|
|
195
196
|
<Controller
|
|
196
197
|
control={control}
|
|
197
|
-
name="
|
|
198
|
+
name="refCode"
|
|
198
199
|
render={({ field }) => (
|
|
199
200
|
<HawaTextField
|
|
200
201
|
width="full"
|
|
201
202
|
type="text"
|
|
202
203
|
defaultValue={field.value ?? ""}
|
|
203
|
-
label={
|
|
204
|
+
label={props.texts.refCode}
|
|
204
205
|
placeholder={props.texts.passwordPlaceholder}
|
|
205
206
|
helperText={errors.password?.message}
|
|
206
207
|
value={field.value ?? ""}
|
|
@@ -235,49 +236,45 @@ export const SignUpForm: React.FunctionComponent<SignUpFormTypes> = (props) => {
|
|
|
235
236
|
</div>
|
|
236
237
|
)}
|
|
237
238
|
{props.showTermsOption && (
|
|
238
|
-
<
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
/>
|
|
265
|
-
</div>
|
|
239
|
+
<Controller
|
|
240
|
+
control={control}
|
|
241
|
+
name="terms_accepted"
|
|
242
|
+
render={({ field }) => (
|
|
243
|
+
<HawaCheckbox
|
|
244
|
+
id="terms_accepted"
|
|
245
|
+
helperText={errors.terms_accepted?.message}
|
|
246
|
+
onChange={(e) => {
|
|
247
|
+
console.log("changing ", e)
|
|
248
|
+
field.onChange(e)
|
|
249
|
+
}}
|
|
250
|
+
label={
|
|
251
|
+
<span>
|
|
252
|
+
{props.texts.iAcceptText}{" "}
|
|
253
|
+
<a
|
|
254
|
+
onClick={props.handleRouteToTOS}
|
|
255
|
+
className="cursor-pointer text-blue-800"
|
|
256
|
+
>
|
|
257
|
+
{props.texts.termsText}
|
|
258
|
+
</a>
|
|
259
|
+
</span>
|
|
260
|
+
}
|
|
261
|
+
/>
|
|
262
|
+
)}
|
|
263
|
+
rules={{ required: props.texts.termsRequiredText }}
|
|
264
|
+
/>
|
|
266
265
|
)}
|
|
267
266
|
{props.showNewsletterOption && (
|
|
268
|
-
<
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
/>
|
|
280
|
-
</div>
|
|
267
|
+
<Controller
|
|
268
|
+
control={control}
|
|
269
|
+
name="newsletter_accepted"
|
|
270
|
+
render={({ field }) => (
|
|
271
|
+
<HawaCheckbox
|
|
272
|
+
id="newsletter_accepted"
|
|
273
|
+
label={props.texts.subscribeToNewsletter}
|
|
274
|
+
onChange={field.onChange}
|
|
275
|
+
/>
|
|
276
|
+
)}
|
|
277
|
+
/>
|
|
281
278
|
)}
|
|
282
279
|
<HawaButton
|
|
283
280
|
isLoading={props.isLoading}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import clsx from "clsx"
|
|
1
2
|
import React, { useEffect, useState } from "react"
|
|
2
3
|
|
|
3
4
|
type TCheckBoxTypes = {
|
|
@@ -19,11 +20,11 @@ export const HawaCheckbox: React.FunctionComponent<TCheckBoxTypes> = (
|
|
|
19
20
|
}, [val])
|
|
20
21
|
return (
|
|
21
22
|
<div
|
|
22
|
-
className={
|
|
23
|
+
className={clsx(
|
|
23
24
|
props.centered
|
|
24
25
|
? "flex h-full items-center justify-center"
|
|
25
26
|
: "flex h-full items-start "
|
|
26
|
-
}
|
|
27
|
+
)}
|
|
27
28
|
>
|
|
28
29
|
<input
|
|
29
30
|
type="checkbox"
|
|
@@ -49,6 +49,7 @@ export const HawaMenu: React.FunctionComponent<TMenuTypes> = ({
|
|
|
49
49
|
handleClose()
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
+
console.log("ref is", ref.current?.getBoundingClientRect())
|
|
52
53
|
document.addEventListener("click", handleClickOutside, true)
|
|
53
54
|
return () => {
|
|
54
55
|
document.removeEventListener("click", handleClickOutside, true)
|
|
@@ -63,8 +64,8 @@ export const HawaMenu: React.FunctionComponent<TMenuTypes> = ({
|
|
|
63
64
|
"bottom-left": "bottom-12 left-0",
|
|
64
65
|
}
|
|
65
66
|
let animationStyles = {
|
|
66
|
-
opened: "max-h-fit",
|
|
67
|
-
closed: "h-0 ",
|
|
67
|
+
opened: "max-h-fit h-max visible opacity-100 block",
|
|
68
|
+
closed: "h-0 invisible opacity-0 hidden",
|
|
68
69
|
}
|
|
69
70
|
return (
|
|
70
71
|
<div
|
|
@@ -18,7 +18,7 @@ const Option: React.FunctionComponent<OptionTypes> = ({
|
|
|
18
18
|
}) => (
|
|
19
19
|
<div
|
|
20
20
|
ref={innerRef}
|
|
21
|
-
className="m-2 flex flex-row items-center justify-between rounded p-1 px-3 hover:bg-
|
|
21
|
+
className="m-2 flex flex-row items-center justify-between rounded p-1 px-3 hover:bg-buttonPrimary-500 hover:text-white"
|
|
22
22
|
{...innerProps}
|
|
23
23
|
>
|
|
24
24
|
{children}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import clsx from "clsx"
|
|
2
2
|
import React, { useState } from "react"
|
|
3
3
|
|
|
4
|
-
// TODO: add option to increase space between tabs and content
|
|
5
|
-
// TODO: make the blued border rounded
|
|
6
4
|
type TabsTypes = {
|
|
7
5
|
options?: any
|
|
8
6
|
onChangeTab?: any
|
|
@@ -11,10 +9,12 @@ type TabsTypes = {
|
|
|
11
9
|
orientation?: "horizontal" | "vertical"
|
|
12
10
|
direction?: "rtl" | "ltr"
|
|
13
11
|
marginBetween?: any
|
|
12
|
+
width?: "full" | "normal"
|
|
14
13
|
}
|
|
15
14
|
export const HawaTabs: React.FunctionComponent<TabsTypes> = ({
|
|
16
15
|
orientation = "horizontal",
|
|
17
16
|
direction = "ltr",
|
|
17
|
+
width = "normal",
|
|
18
18
|
marginBetween = 0,
|
|
19
19
|
...props
|
|
20
20
|
}) => {
|
|
@@ -29,7 +29,11 @@ export const HawaTabs: React.FunctionComponent<TabsTypes> = ({
|
|
|
29
29
|
vertical:
|
|
30
30
|
"inline-block py-2 px-4 rounded-none rounded-br-none rounded-tl-none hover:text-gray-900 hover:bg-gray-100 dark:hover:bg-gray-800 dark:hover:text-white",
|
|
31
31
|
horizontal:
|
|
32
|
-
"inline-block py-2 px-4 rounded rounded-br-none rounded-bl-none hover:text-gray-900 hover:bg-gray-100 dark:hover:bg-gray-800 dark:hover:text-white",
|
|
32
|
+
"bg-gray-100 inline-block py-2 px-4 rounded rounded-br-none rounded-bl-none hover:text-gray-900 hover:bg-gray-100 dark:hover:bg-gray-800 dark:hover:text-white",
|
|
33
|
+
}
|
|
34
|
+
let widthStyles = {
|
|
35
|
+
full: "w-full min-w-full",
|
|
36
|
+
normal: "w-fit",
|
|
33
37
|
}
|
|
34
38
|
console.log("selected i : ", selectedOption)
|
|
35
39
|
console.log("selected object : ", props.options[selectedOption])
|
|
@@ -51,7 +55,7 @@ export const HawaTabs: React.FunctionComponent<TabsTypes> = ({
|
|
|
51
55
|
vertical:
|
|
52
56
|
"sticky top-2 h-fit flex flex-col w-fit flex-wrap rounded border-b-buttonPrimary-500 bg-gray-100 text-center text-sm font-medium text-gray-500 dark:text-gray-400",
|
|
53
57
|
horizontal:
|
|
54
|
-
"flex w-fit flex-wrap rounded rounded-br-none rounded-bl-none border-b-buttonPrimary-500
|
|
58
|
+
"flex w-fit flex-wrap rounded rounded-br-none rounded-bl-none border-b-buttonPrimary-500 text-center text-sm font-medium text-gray-500 dark:text-gray-400",
|
|
55
59
|
}
|
|
56
60
|
return (
|
|
57
61
|
<div
|
|
@@ -59,6 +63,7 @@ export const HawaTabs: React.FunctionComponent<TabsTypes> = ({
|
|
|
59
63
|
className={clsx(
|
|
60
64
|
containerStyle[orientation],
|
|
61
65
|
props.options[selectedOption] ? "border-b-2" : "border-b-0"
|
|
66
|
+
// "bg-red-400"
|
|
62
67
|
)}
|
|
63
68
|
>
|
|
64
69
|
<ul
|
|
@@ -78,7 +83,8 @@ export const HawaTabs: React.FunctionComponent<TabsTypes> = ({
|
|
|
78
83
|
? direction === "rtl"
|
|
79
84
|
? "rounded-none rounded-r border-l-2"
|
|
80
85
|
: "rounded-none rounded-l border-r-2"
|
|
81
|
-
: "border-b-2"
|
|
86
|
+
: "border-b-2",
|
|
87
|
+
widthStyles[width]
|
|
82
88
|
)}
|
|
83
89
|
>
|
|
84
90
|
{/*
|
|
@@ -17,6 +17,7 @@ type TextFieldTypes = {
|
|
|
17
17
|
inputProps?: any
|
|
18
18
|
onChange?: any
|
|
19
19
|
ref?: any
|
|
20
|
+
icon?: any
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
export const HawaTextField: React.FunctionComponent<TextFieldTypes> = ({
|
|
@@ -36,6 +37,10 @@ export const HawaTextField: React.FunctionComponent<TextFieldTypes> = ({
|
|
|
36
37
|
}
|
|
37
38
|
|
|
38
39
|
let defaultStyle = "flex h-fit max-h-fit flex-col justify-center"
|
|
40
|
+
let defaultInputStyle =
|
|
41
|
+
"block w-full rounded border border-gray-300 bg-gray-50 p-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:placeholder-gray-400 dark:focus:border-blue-500 dark:focus:ring-blue-500"
|
|
42
|
+
// "mb-0 block w-full rounded border border-gray-300 bg-gray-50 p-2 text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:placeholder-gray-400 dark:focus:border-blue-500 dark:focus:ring-blue-500",
|
|
43
|
+
|
|
39
44
|
return (
|
|
40
45
|
<div
|
|
41
46
|
// ref={props.ref}
|
|
@@ -53,7 +58,7 @@ export const HawaTextField: React.FunctionComponent<TextFieldTypes> = ({
|
|
|
53
58
|
<textarea
|
|
54
59
|
id="message"
|
|
55
60
|
rows={4}
|
|
56
|
-
className=
|
|
61
|
+
className={defaultInputStyle}
|
|
57
62
|
onChange={props.onChange}
|
|
58
63
|
type={props.type}
|
|
59
64
|
aria-label={props.label}
|
|
@@ -62,32 +67,22 @@ export const HawaTextField: React.FunctionComponent<TextFieldTypes> = ({
|
|
|
62
67
|
value={props.value}
|
|
63
68
|
{...props}
|
|
64
69
|
/>
|
|
65
|
-
) :
|
|
70
|
+
) : (
|
|
66
71
|
<div className="relative">
|
|
67
|
-
<div className="absolute top-1/2 left-3 -translate-y-1/2">
|
|
68
|
-
<FaSearch color="gray" />
|
|
69
|
-
</div>
|
|
70
72
|
<input
|
|
71
73
|
{...props}
|
|
72
|
-
className=
|
|
73
|
-
/>
|
|
74
|
-
</div>
|
|
75
|
-
) : (
|
|
76
|
-
<div>
|
|
77
|
-
<input
|
|
78
|
-
onChange={props.onChange}
|
|
79
|
-
type={props.type}
|
|
80
|
-
aria-label={props.label}
|
|
81
|
-
placeholder={props.placeholder}
|
|
82
|
-
defaultValue={props.defaultValue}
|
|
83
|
-
value={props.value}
|
|
84
|
-
className="mb-0 block w-full rounded border border-gray-300 bg-gray-50 p-2.5 text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:placeholder-gray-400 dark:focus:border-blue-500 dark:focus:ring-blue-500"
|
|
74
|
+
className={clsx(defaultInputStyle, props.icon ? "pr-10" : "")}
|
|
85
75
|
/>
|
|
76
|
+
{props.icon && (
|
|
77
|
+
<div className="absolute top-1/2 right-3 -translate-y-1/2">
|
|
78
|
+
{props.icon}
|
|
79
|
+
</div>
|
|
80
|
+
)}
|
|
86
81
|
</div>
|
|
87
82
|
)}
|
|
88
83
|
|
|
89
84
|
{props.helperText && (
|
|
90
|
-
<p className="mb-
|
|
85
|
+
<p className="mb-0 mt-1 text-xs text-red-600 dark:text-red-500">
|
|
91
86
|
{/* <span className="font-medium">Oh, snapp!</span> */}
|
|
92
87
|
{props.helperText}
|
|
93
88
|
</p>
|
|
@@ -5,8 +5,9 @@ import { HawaMenu } from "../elements"
|
|
|
5
5
|
import { HiMenu } from "react-icons/hi"
|
|
6
6
|
import useBreakpoint from "../hooks/useBreakpoint"
|
|
7
7
|
import { FaChevronRight } from "react-icons/fa"
|
|
8
|
-
// TODO: add ability to control the width of the drawer
|
|
9
8
|
// TODO: when no navbar, the drawer can't be opened
|
|
9
|
+
// TODO: when no pagetitle, navbar gets messy
|
|
10
|
+
// TODO: the user menu avatar clickable area is exceeding the topbar
|
|
10
11
|
type HawaAppLayoutTypes = {
|
|
11
12
|
drawerItems: {
|
|
12
13
|
label: string
|
|
@@ -46,6 +47,7 @@ export const HawaAppLayout: React.FunctionComponent<HawaAppLayoutTypes> = ({
|
|
|
46
47
|
const [openSideMenu, setOpenSideMenu] = useState(true)
|
|
47
48
|
const [openSubItem, setOpenSubitem] = useState("")
|
|
48
49
|
const { isOpen, onClose, onOpen } = useDiscloser(false)
|
|
50
|
+
const [keepOpen, setKeepOpen] = useState(true)
|
|
49
51
|
const ref = useRef(null)
|
|
50
52
|
const isRTL = direction === "rtl"
|
|
51
53
|
let size
|
|
@@ -54,7 +56,6 @@ export const HawaAppLayout: React.FunctionComponent<HawaAppLayoutTypes> = ({
|
|
|
54
56
|
} else {
|
|
55
57
|
size = 1200
|
|
56
58
|
}
|
|
57
|
-
const [keepOpen, setKeepOpen] = useState(false)
|
|
58
59
|
useEffect(() => {
|
|
59
60
|
const handleClickOutside = (event) => {
|
|
60
61
|
if (ref.current && !ref.current.contains(event.target) && !keepOpen) {
|
|
@@ -165,7 +166,7 @@ export const HawaAppLayout: React.FunctionComponent<HawaAppLayoutTypes> = ({
|
|
|
165
166
|
handleOpen={onOpen}
|
|
166
167
|
open={isOpen}
|
|
167
168
|
>
|
|
168
|
-
<div className="relative
|
|
169
|
+
<div className="relative h-8 w-8 cursor-pointer overflow-hidden rounded-full dark:bg-gray-600">
|
|
169
170
|
<svg
|
|
170
171
|
className="absolute -left-1 h-10 w-10 text-gray-400"
|
|
171
172
|
fill="currentColor"
|
|
@@ -338,12 +339,19 @@ export const HawaAppLayout: React.FunctionComponent<HawaAppLayoutTypes> = ({
|
|
|
338
339
|
onClick={() => {
|
|
339
340
|
dItem.subItems
|
|
340
341
|
? openSubItem === dItem.slug
|
|
341
|
-
?
|
|
342
|
+
? // ||
|
|
343
|
+
// dItem.subItems.find(
|
|
344
|
+
// (e) => e.slug === props.currentPage
|
|
345
|
+
// )
|
|
346
|
+
setOpenSubitem("")
|
|
342
347
|
: setOpenSubitem(dItem.slug)
|
|
343
348
|
: dItem.action()
|
|
344
349
|
}}
|
|
345
350
|
className={clsx(
|
|
346
|
-
props.currentPage === dItem.slug
|
|
351
|
+
props.currentPage === dItem.slug ||
|
|
352
|
+
dItem.subItems?.find(
|
|
353
|
+
(e) => e.slug === props.currentPage
|
|
354
|
+
)
|
|
347
355
|
? "bg-buttonPrimary-500 text-white"
|
|
348
356
|
: "hover:bg-layoutPrimary-300",
|
|
349
357
|
"m-2 my-1 flex cursor-pointer flex-row items-center justify-between overflow-x-clip rounded p-2 pl-3 transition-all ",
|
|
@@ -367,7 +375,11 @@ export const HawaAppLayout: React.FunctionComponent<HawaAppLayoutTypes> = ({
|
|
|
367
375
|
<div
|
|
368
376
|
className={clsx(
|
|
369
377
|
openSubItem && dItem.slug === openSubItem
|
|
370
|
-
?
|
|
378
|
+
? // ||
|
|
379
|
+
// dItem.subItems.find(
|
|
380
|
+
// (e) => e.slug === props.currentPage
|
|
381
|
+
// )
|
|
382
|
+
"-rotate-90"
|
|
371
383
|
: "rotate-90"
|
|
372
384
|
)}
|
|
373
385
|
>
|
|
@@ -382,6 +394,9 @@ export const HawaAppLayout: React.FunctionComponent<HawaAppLayoutTypes> = ({
|
|
|
382
394
|
"flex flex-col gap-0 whitespace-nowrap bg-layoutPrimary-300",
|
|
383
395
|
"m-1 cursor-pointer rounded p-1",
|
|
384
396
|
"overflow-clip transition-all",
|
|
397
|
+
// dItem.subItems.find(
|
|
398
|
+
// (e) => e.slug === props.currentPage
|
|
399
|
+
// ) ||
|
|
385
400
|
openSubItem == dItem.slug && openSideMenu
|
|
386
401
|
? ""
|
|
387
402
|
: "my-0 py-0",
|
|
@@ -389,6 +404,9 @@ export const HawaAppLayout: React.FunctionComponent<HawaAppLayoutTypes> = ({
|
|
|
389
404
|
)}
|
|
390
405
|
style={{
|
|
391
406
|
height:
|
|
407
|
+
// dItem.subItems.find(
|
|
408
|
+
// (e) => e.slug === props.currentPage
|
|
409
|
+
// ) ||
|
|
392
410
|
openSubItem == dItem.slug && openSideMenu
|
|
393
411
|
? 6 + 33 * dItem.subItems?.length
|
|
394
412
|
: 0,
|
|
@@ -397,11 +415,17 @@ export const HawaAppLayout: React.FunctionComponent<HawaAppLayoutTypes> = ({
|
|
|
397
415
|
{dItem.subItems?.map((subIt) => (
|
|
398
416
|
<div
|
|
399
417
|
className={clsx(
|
|
400
|
-
"flex flex-row gap-2 overflow-x-clip rounded p-2 px-
|
|
401
|
-
isRTL ? "text-right" : "text-left"
|
|
418
|
+
"flex flex-row gap-2 overflow-x-clip rounded p-2 px-2 text-xs",
|
|
419
|
+
isRTL ? "text-right" : "text-left",
|
|
420
|
+
props.currentPage === subIt.slug
|
|
421
|
+
? "bg-buttonPrimary-500 text-white hover:bg-buttonPrimary-500"
|
|
422
|
+
: "hover:bg-layoutPrimary-500"
|
|
402
423
|
)}
|
|
403
424
|
dir={direction}
|
|
404
|
-
onClick={() =>
|
|
425
|
+
onClick={() => {
|
|
426
|
+
subIt.action()
|
|
427
|
+
// setOpenSubitem(dItem.slug)
|
|
428
|
+
}}
|
|
405
429
|
>
|
|
406
430
|
<div className="flex items-center justify-center">
|
|
407
431
|
{subIt.icon}
|
|
@@ -12,7 +12,7 @@ export const HawaContainer: React.FunctionComponent<ContainerTypes> = ({
|
|
|
12
12
|
maxWidth = "normal",
|
|
13
13
|
variant = "contained",
|
|
14
14
|
centered = false,
|
|
15
|
-
direction = "
|
|
15
|
+
direction = "ltr",
|
|
16
16
|
...props
|
|
17
17
|
}) => {
|
|
18
18
|
let defaultStyle = "flex w-full flex-col rounded p-4"
|
package/src/styles.css
CHANGED
|
@@ -385,7 +385,7 @@ video {
|
|
|
385
385
|
--button-secondary-500: #ffc011;
|
|
386
386
|
--button-secondary-700: #b48d24;
|
|
387
387
|
|
|
388
|
-
--border-radius:
|
|
388
|
+
--border-radius: 0px;
|
|
389
389
|
}
|
|
390
390
|
input[type="number"]::-webkit-inner-spin-button,
|
|
391
391
|
input[type="number"]::-webkit-outer-spin-button {
|
|
@@ -608,8 +608,8 @@ video {
|
|
|
608
608
|
.top-2 {
|
|
609
609
|
top: 0.5rem;
|
|
610
610
|
}
|
|
611
|
-
.
|
|
612
|
-
|
|
611
|
+
.right-3 {
|
|
612
|
+
right: 0.75rem;
|
|
613
613
|
}
|
|
614
614
|
.-top-10 {
|
|
615
615
|
top: -2.5rem;
|
|
@@ -851,6 +851,10 @@ video {
|
|
|
851
851
|
.h-11 {
|
|
852
852
|
height: 2.75rem;
|
|
853
853
|
}
|
|
854
|
+
.h-max {
|
|
855
|
+
height: -moz-max-content;
|
|
856
|
+
height: max-content;
|
|
857
|
+
}
|
|
854
858
|
.h-0 {
|
|
855
859
|
height: 0px;
|
|
856
860
|
}
|
|
@@ -961,6 +965,9 @@ video {
|
|
|
961
965
|
.w-40 {
|
|
962
966
|
width: 10rem;
|
|
963
967
|
}
|
|
968
|
+
.min-w-full {
|
|
969
|
+
min-width: 100%;
|
|
970
|
+
}
|
|
964
971
|
.min-w-min {
|
|
965
972
|
min-width: -moz-min-content;
|
|
966
973
|
min-width: min-content;
|
|
@@ -1611,12 +1618,15 @@ video {
|
|
|
1611
1618
|
.pr-3 {
|
|
1612
1619
|
padding-right: 0.75rem;
|
|
1613
1620
|
}
|
|
1614
|
-
.
|
|
1615
|
-
padding-
|
|
1621
|
+
.pr-10 {
|
|
1622
|
+
padding-right: 2.5rem;
|
|
1616
1623
|
}
|
|
1617
1624
|
.pl-3 {
|
|
1618
1625
|
padding-left: 0.75rem;
|
|
1619
1626
|
}
|
|
1627
|
+
.pb-2 {
|
|
1628
|
+
padding-bottom: 0.5rem;
|
|
1629
|
+
}
|
|
1620
1630
|
.pt-0 {
|
|
1621
1631
|
padding-top: 0px;
|
|
1622
1632
|
}
|
package/src/tailwind.css
CHANGED