@sikka/hawa 0.0.118 → 0.0.120

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.
@@ -0,0 +1,11 @@
1
+ import * as React from "react";
2
+ interface Props {
3
+ isOpen: boolean;
4
+ onClose: () => void;
5
+ items: {
6
+ label: string;
7
+ onClick: () => void;
8
+ }[];
9
+ }
10
+ export declare const AppSidebar: React.FC<Props>;
11
+ export {};
@@ -1,9 +1,13 @@
1
1
  import React from "react";
2
2
  type HawaAppLayoutTypes = {
3
3
  logoLink: string;
4
- username: string;
5
- userEmail: string;
6
- drawerItems: any;
4
+ drawerItems: {
5
+ label: string;
6
+ icon: any;
7
+ slug: string;
8
+ action: () => void;
9
+ }[];
10
+ currentPage?: string;
7
11
  };
8
12
  export declare const HawaAppLayout: React.FunctionComponent<HawaAppLayoutTypes>;
9
13
  export {};
@@ -4,3 +4,4 @@ export * from "./HawaSiteLayout";
4
4
  export * from "./HawaAppLayout";
5
5
  export * from "./HawaContainer";
6
6
  export * from "./SimpleGrid";
7
+ export * from "./AppSidebar";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sikka/hawa",
3
- "version": "0.0.118",
3
+ "version": "0.0.120",
4
4
  "description": "UI Kit",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.es.js",
@@ -0,0 +1,38 @@
1
+ import * as React from "react"
2
+
3
+ interface Props {
4
+ isOpen: boolean
5
+ onClose: () => void
6
+ items: { label: string; onClick: () => void }[]
7
+ }
8
+
9
+ export const AppSidebar: React.FC<Props> = ({ isOpen, onClose, items }) => {
10
+ if (!isOpen) {
11
+ return null
12
+ }
13
+
14
+ return (
15
+ <div className="fixed inset-0 z-40 flex bg-gray-600 bg-opacity-75">
16
+ <div className="w-1/3 rounded-l-lg bg-gray-800 shadow-2xl">
17
+ <button
18
+ onClick={onClose}
19
+ className="p-4 text-gray-400 hover:text-white focus:text-white focus:outline-none"
20
+ >
21
+ Close
22
+ </button>
23
+ <nav>
24
+ {items.map((item) => (
25
+ <a
26
+ href="#"
27
+ onClick={item.onClick}
28
+ className="block p-4 font-bold text-white hover:bg-gray-700 hover:text-gray-400"
29
+ >
30
+ {item.label}
31
+ </a>
32
+ ))}
33
+ </nav>
34
+ </div>
35
+ <div className="w-2/3 bg-gray-50"></div>
36
+ </div>
37
+ )
38
+ }
@@ -3,9 +3,8 @@ import React, { useState } from "react"
3
3
 
4
4
  type HawaAppLayoutTypes = {
5
5
  logoLink: string
6
- username: string
7
- userEmail: string
8
- drawerItems: any
6
+ drawerItems: { label: string; icon: any; slug: string; action: () => void }[]
7
+ currentPage?: string
9
8
  }
10
9
  export const HawaAppLayout: React.FunctionComponent<HawaAppLayoutTypes> = (
11
10
  props: any
@@ -13,15 +12,29 @@ export const HawaAppLayout: React.FunctionComponent<HawaAppLayoutTypes> = (
13
12
  const [openSideMenu, setOpenSideMenu] = useState(false)
14
13
 
15
14
  return (
16
- <div className="fixed top-0 left-0 m-0 w-full p-0">
15
+ <div className="flex">
17
16
  <div
18
17
  onMouseEnter={() => setOpenSideMenu(true)}
19
18
  onMouseLeave={() => setOpenSideMenu(false)}
20
- className="absolute top-0 z-10 flex h-screen w-12 flex-col gap-0 bg-blue-300 transition-all hover:w-40"
19
+ className="top-0 z-10 flex h-screen w-12 flex-col gap-0 bg-blue-300 transition-all hover:w-40"
21
20
  >
22
- <div className="m-1 bg-red-300 p-2">logo</div>
23
- {props.drawerItems.map((dItem) => (
24
- <div className="pl-3 m-1 flex cursor-pointer flex-row items-center overflow-x-clip rounded-lg bg-orange-400 p-2 transition-all hover:bg-green-300">
21
+ <div className="m-1 flex flex-row bg-red-300 p-2">
22
+ <div>symbol</div>
23
+ <div className={openSideMenu ? "scale-100" : "scale-0"}>
24
+ logo text
25
+ </div>
26
+ </div>
27
+ {props.drawerItems.map((dItem, i) => (
28
+ <div
29
+ key={i}
30
+ onClick={() => dItem.action(dItem.slug)}
31
+ className={clsx(
32
+ "m-1 flex cursor-pointer flex-row items-center overflow-x-clip rounded-lg p-2 pl-3 transition-all hover:bg-primary-400",
33
+ props.currentPage === dItem.slug
34
+ ? "bg-primary-600 text-white"
35
+ : ""
36
+ )}
37
+ >
25
38
  <div className="flex items-center justify-center">{dItem.icon}</div>
26
39
  <div
27
40
  className={clsx(
@@ -29,41 +42,13 @@ export const HawaAppLayout: React.FunctionComponent<HawaAppLayoutTypes> = (
29
42
  openSideMenu ? "opacity-100" : "opacity-0"
30
43
  )}
31
44
  >
32
- {dItem.text}
45
+ {dItem.label}
33
46
  </div>
34
47
  </div>
35
48
  ))}
36
49
  </div>
37
50
 
38
- {/*
39
- <div className="relative flex flex-row bg-yellow-300">
40
- <div className="relative left-10 h-screen w-full bg-orange-300">
41
- <div className="m-0 flex flex-row justify-between bg-red-300 p-2">
42
- <div></div>
43
- <div>page title</div>
44
- <div className="relative mr-2 h-10 w-10 overflow-hidden rounded-full bg-gray-100 dark:bg-gray-600">
45
- <AvatarIcon />
46
- </div>
47
- </div>
48
-
49
- <div>{props.children}</div>
50
- </div>
51
- </div> */}
51
+ <div className="w-full bg-red-200">{props.children}</div>
52
52
  </div>
53
53
  )
54
54
  }
55
-
56
- const AvatarIcon = () => (
57
- <svg
58
- className="absolute -left-1 h-12 w-12 text-gray-400"
59
- fill="currentColor"
60
- viewBox="0 0 20 20"
61
- xmlns="http://www.w3.org/2000/svg"
62
- >
63
- <path
64
- fill-rule="evenodd"
65
- d="M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z"
66
- clip-rule="evenodd"
67
- ></path>
68
- </svg>
69
- )
@@ -4,3 +4,4 @@ export * from "./HawaSiteLayout"
4
4
  export * from "./HawaAppLayout"
5
5
  export * from "./HawaContainer"
6
6
  export * from "./SimpleGrid"
7
+ export * from "./AppSidebar"
package/src/styles.css CHANGED
@@ -508,6 +508,12 @@ video {
508
508
  .relative {
509
509
  position: relative;
510
510
  }
511
+ .inset-0 {
512
+ top: 0px;
513
+ right: 0px;
514
+ bottom: 0px;
515
+ left: 0px;
516
+ }
511
517
  .left-0 {
512
518
  left: 0px;
513
519
  }
@@ -547,12 +553,6 @@ video {
547
553
  .top-5 {
548
554
  top: 1.25rem;
549
555
  }
550
- .left-10 {
551
- left: 2.5rem;
552
- }
553
- .-left-1 {
554
- left: -0.25rem;
555
- }
556
556
  .top-auto {
557
557
  top: auto;
558
558
  }
@@ -565,6 +565,9 @@ video {
565
565
  .top-2 {
566
566
  top: 0.5rem;
567
567
  }
568
+ .-left-1 {
569
+ left: -0.25rem;
570
+ }
568
571
  .z-10 {
569
572
  z-index: 10;
570
573
  }
@@ -583,12 +586,12 @@ video {
583
586
  .m-2 {
584
587
  margin: 0.5rem;
585
588
  }
586
- .m-0 {
587
- margin: 0px;
588
- }
589
589
  .m-1 {
590
590
  margin: 0.25rem;
591
591
  }
592
+ .m-0 {
593
+ margin: 0px;
594
+ }
592
595
  .mx-1 {
593
596
  margin-left: 0.25rem;
594
597
  margin-right: 0.25rem;
@@ -761,12 +764,12 @@ video {
761
764
  .h-0\.5 {
762
765
  height: 0.125rem;
763
766
  }
764
- .h-12 {
765
- height: 3rem;
766
- }
767
767
  .h-9 {
768
768
  height: 2.25rem;
769
769
  }
770
+ .h-12 {
771
+ height: 3rem;
772
+ }
770
773
  .h-20 {
771
774
  height: 5rem;
772
775
  }
@@ -826,12 +829,15 @@ video {
826
829
  .w-1 {
827
830
  width: 0.25rem;
828
831
  }
829
- .w-12 {
830
- width: 3rem;
831
- }
832
832
  .w-1\/3 {
833
833
  width: 33.333333%;
834
834
  }
835
+ .w-2\/3 {
836
+ width: 66.666667%;
837
+ }
838
+ .w-12 {
839
+ width: 3rem;
840
+ }
835
841
  .w-80 {
836
842
  width: 20rem;
837
843
  }
@@ -890,6 +896,16 @@ video {
890
896
  --tw-rotate: 180deg;
891
897
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
892
898
  }
899
+ .scale-100 {
900
+ --tw-scale-x: 1;
901
+ --tw-scale-y: 1;
902
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
903
+ }
904
+ .scale-0 {
905
+ --tw-scale-x: 0;
906
+ --tw-scale-y: 0;
907
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
908
+ }
893
909
  .transform {
894
910
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
895
911
  }
@@ -1312,22 +1328,25 @@ video {
1312
1328
  --tw-bg-opacity: 1;
1313
1329
  background-color: rgb(116 177 251 / var(--tw-bg-opacity));
1314
1330
  }
1315
- .bg-orange-400 {
1331
+ .bg-gray-600 {
1316
1332
  --tw-bg-opacity: 1;
1317
- background-color: rgb(251 146 60 / var(--tw-bg-opacity));
1333
+ background-color: rgb(75 85 99 / var(--tw-bg-opacity));
1318
1334
  }
1319
- .bg-yellow-300 {
1335
+ .bg-gray-800 {
1320
1336
  --tw-bg-opacity: 1;
1321
- background-color: rgb(253 224 71 / var(--tw-bg-opacity));
1337
+ background-color: rgb(31 41 55 / var(--tw-bg-opacity));
1322
1338
  }
1323
- .bg-orange-300 {
1339
+ .bg-primary-600 {
1324
1340
  --tw-bg-opacity: 1;
1325
- background-color: rgb(253 186 116 / var(--tw-bg-opacity));
1341
+ background-color: rgb(6 92 198 / var(--tw-bg-opacity));
1326
1342
  }
1327
1343
  .bg-primary-300 {
1328
1344
  --tw-bg-opacity: 1;
1329
1345
  background-color: rgb(156 199 252 / var(--tw-bg-opacity));
1330
1346
  }
1347
+ .bg-opacity-75 {
1348
+ --tw-bg-opacity: 0.75;
1349
+ }
1331
1350
  .bg-\[url\(\'https\:\/\/via\.placeholder\.com\/50\'\)\] {
1332
1351
  background-image: url('https://via.placeholder.com/50');
1333
1352
  }
@@ -1650,6 +1669,11 @@ video {
1650
1669
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
1651
1670
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1652
1671
  }
1672
+ .shadow-2xl {
1673
+ --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
1674
+ --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
1675
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1676
+ }
1653
1677
  .ring-1 {
1654
1678
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
1655
1679
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
@@ -1806,9 +1830,13 @@ body {
1806
1830
  --tw-bg-opacity: 1;
1807
1831
  background-color: rgb(29 78 216 / var(--tw-bg-opacity));
1808
1832
  }
1809
- .hover\:bg-green-300:hover {
1833
+ .hover\:bg-gray-700:hover {
1810
1834
  --tw-bg-opacity: 1;
1811
- background-color: rgb(134 239 172 / var(--tw-bg-opacity));
1835
+ background-color: rgb(55 65 81 / var(--tw-bg-opacity));
1836
+ }
1837
+ .hover\:bg-primary-400:hover {
1838
+ --tw-bg-opacity: 1;
1839
+ background-color: rgb(116 177 251 / var(--tw-bg-opacity));
1812
1840
  }
1813
1841
  .hover\:text-gray-900:hover {
1814
1842
  --tw-text-opacity: 1;
@@ -1822,6 +1850,10 @@ body {
1822
1850
  --tw-text-opacity: 1;
1823
1851
  color: rgb(37 99 235 / var(--tw-text-opacity));
1824
1852
  }
1853
+ .hover\:text-gray-400:hover {
1854
+ --tw-text-opacity: 1;
1855
+ color: rgb(156 163 175 / var(--tw-text-opacity));
1856
+ }
1825
1857
  .hover\:underline:hover {
1826
1858
  -webkit-text-decoration-line: underline;
1827
1859
  text-decoration-line: underline;
@@ -1838,6 +1870,10 @@ body {
1838
1870
  --tw-border-opacity: 1;
1839
1871
  border-color: rgb(59 130 246 / var(--tw-border-opacity));
1840
1872
  }
1873
+ .focus\:text-white:focus {
1874
+ --tw-text-opacity: 1;
1875
+ color: rgb(255 255 255 / var(--tw-text-opacity));
1876
+ }
1841
1877
  .focus\:outline-none:focus {
1842
1878
  outline: 2px solid transparent;
1843
1879
  outline-offset: 2px;