@sikka/hawa 0.1.85 → 0.1.87

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.
@@ -89,6 +89,7 @@ const DropdownMenuItem = React.forwardRef<
89
89
  }
90
90
  >(({ className, inset, ...props }, ref) => (
91
91
  <DropdownMenuPrimitive.Item
92
+ disabled={props.disabled}
92
93
  ref={ref}
93
94
  className={cn(
94
95
  "relative flex cursor-pointer select-none items-center justify-between rounded-sm px-2 py-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
@@ -238,6 +239,7 @@ export type SubItem = {
238
239
  icon?: any
239
240
  action?: () => void
240
241
  highlighted?: boolean
242
+ disabled?: boolean
241
243
  }
242
244
 
243
245
  export type MenuItemType = {
@@ -249,6 +251,7 @@ export type MenuItemType = {
249
251
  action?: () => void
250
252
  highlighted?: boolean
251
253
  subitems?: SubItem[] // Note the use of the optional modifier
254
+ disabled?: boolean
252
255
  }
253
256
  interface DropdownMenuProps {
254
257
  trigger?: any
@@ -306,6 +309,7 @@ export const DropdownMenu: React.FC<DropdownMenuProps> = ({
306
309
  <DropdownMenuSubContent>
307
310
  {item.subitems.map((subitem, subIndex) => (
308
311
  <DropdownMenuItem
312
+ disabled={subitem.disabled}
309
313
  className="flex flex-row gap-2"
310
314
  onSelect={() => subitem.action()}
311
315
  key={subIndex}
@@ -319,6 +323,7 @@ export const DropdownMenu: React.FC<DropdownMenuProps> = ({
319
323
  </DropdownMenuSub>
320
324
  ) : (
321
325
  <DropdownMenuItem
326
+ disabled={item.disabled}
322
327
  className="flex flex-row gap-2"
323
328
  key={index}
324
329
  onSelect={(e) => {
@@ -50,6 +50,8 @@ export * from "./HawaLandingCard"
50
50
  export * from "./HawaButton"
51
51
  export * from "./HawaStoreButtons"
52
52
 
53
+ export * from "./ActionCard"
54
+
53
55
  // v0.1
54
56
  export * from "./Button"
55
57
  export * from "./Carousel"
@@ -1,9 +1,13 @@
1
1
  import { BsInstagram, BsTwitter } from "react-icons/bs"
2
2
  import { FaSnapchatGhost, FaTiktok } from "react-icons/fa"
3
+ import { Button } from "../elements"
4
+ import { cn } from "../util"
3
5
 
4
6
  type FooterTypes = {
5
7
  logoText?: string
6
8
  logoURL?: string
9
+ copyRights?: string
10
+ variation?: "default" | "minimal"
7
11
  socialLinks?: {
8
12
  twitter?: string
9
13
  instagram?: string
@@ -19,12 +23,45 @@ type FooterTypes = {
19
23
  }[]
20
24
  }
21
25
 
22
- export const Footer: React.FunctionComponent<FooterTypes> = ({ ...props }) => {
26
+ export const Footer: React.FunctionComponent<FooterTypes> = ({
27
+ variation = "default",
28
+ ...props
29
+ }) => {
30
+ let variationStyles = {
31
+ default: "rounded border",
32
+ minimal: "border-t",
33
+ }
23
34
  return (
24
- <div className="sticky bottom-0 left-0 flex w-full flex-row gap-8 bg-blue-200 p-4">
25
- {props.logoText && (
26
- <div>
27
- <div className="text-2xl font-bold">{props.logoText}</div>
35
+ <div
36
+ className={cn(
37
+ "flex w-full flex-row items-center justify-between gap-8 rounded bg-background p-4",
38
+ variationStyles[variation]
39
+ )}
40
+ >
41
+ <div className="flex flex-col items-center gap-2">
42
+ <div className="flex flex-row items-center gap-2">
43
+ {props.logoURL && (
44
+ <div>
45
+ <img className="h-8" src={props.logoURL} />
46
+ </div>
47
+ )}
48
+ {props.logoText && (
49
+ <div>
50
+ <div className="text-2xl font-bold text-primary">
51
+ {props.logoText}
52
+ </div>
53
+ </div>
54
+ )}
55
+ </div>
56
+ {props.copyRights && props.footerLinks && (
57
+ <div className="text-xs text-muted-foreground">
58
+ © {props.copyRights} {new Date().getFullYear()}
59
+ </div>
60
+ )}
61
+ </div>
62
+ {props.copyRights && !props.footerLinks && (
63
+ <div className="text-xs text-muted-foreground">
64
+ © {props.copyRights} {new Date().getFullYear()}
28
65
  </div>
29
66
  )}
30
67
  {props.footerLinks?.map((pagesSection) => (
@@ -45,24 +82,24 @@ export const Footer: React.FunctionComponent<FooterTypes> = ({ ...props }) => {
45
82
  {props.socialLinks && (
46
83
  <div className="flex flex-row gap-2">
47
84
  {props.socialLinks.twitter && (
48
- <div className="flex h-6 w-6 items-center justify-center rounded bg-white">
85
+ <Button size="smallIcon" variant="ghost">
49
86
  <BsTwitter />
50
- </div>
87
+ </Button>
51
88
  )}
52
89
  {props.socialLinks.instagram && (
53
- <div className="flex h-6 w-6 items-center justify-center rounded bg-white">
90
+ <Button size="smallIcon" variant="ghost">
54
91
  <BsInstagram />
55
- </div>
92
+ </Button>
56
93
  )}
57
94
  {props.socialLinks.tiktok && (
58
- <div className="flex h-6 w-6 items-center justify-center rounded bg-white">
95
+ <Button size="smallIcon" variant="ghost">
59
96
  <FaTiktok />
60
- </div>
97
+ </Button>
61
98
  )}
62
99
  {props.socialLinks.snapchat && (
63
- <div className="flex h-6 w-6 items-center justify-center rounded bg-white">
100
+ <Button size="smallIcon" variant="ghost">
64
101
  <FaSnapchatGhost />
65
- </div>
102
+ </Button>
66
103
  )}
67
104
  </div>
68
105
  )}
package/src/styles.css CHANGED
@@ -758,6 +758,9 @@ video {
758
758
  .bottom-14 {
759
759
  bottom: 3.5rem;
760
760
  }
761
+ .bottom-2 {
762
+ bottom: 0.5rem;
763
+ }
761
764
  .bottom-4 {
762
765
  bottom: 1rem;
763
766
  }
@@ -1075,9 +1078,6 @@ video {
1075
1078
  .hidden {
1076
1079
  display: none;
1077
1080
  }
1078
- .aspect-\[2\/3\] {
1079
- aspect-ratio: 2/3;
1080
- }
1081
1081
  .aspect-square {
1082
1082
  aspect-ratio: 1 / 1;
1083
1083
  }
@@ -1096,9 +1096,6 @@ video {
1096
1096
  .h-11 {
1097
1097
  height: 2.75rem;
1098
1098
  }
1099
- .h-12 {
1100
- height: 3rem;
1101
- }
1102
1099
  .h-14 {
1103
1100
  height: 3.5rem;
1104
1101
  }
@@ -1180,6 +1177,9 @@ video {
1180
1177
  .h-\[32px\] {
1181
1178
  height: 32px;
1182
1179
  }
1180
+ .h-\[400px\] {
1181
+ height: 400px;
1182
+ }
1183
1183
  .h-\[calc\(100\%-3\.5rem\)\] {
1184
1184
  height: calc(100% - 3.5rem);
1185
1185
  }
@@ -1228,6 +1228,9 @@ video {
1228
1228
  .min-h-\[80px\] {
1229
1229
  min-height: 80px;
1230
1230
  }
1231
+ .min-h-screen {
1232
+ min-height: 100vh;
1233
+ }
1231
1234
  .w-0 {
1232
1235
  width: 0px;
1233
1236
  }
@@ -1309,6 +1312,9 @@ video {
1309
1312
  .w-\[1\.2rem\] {
1310
1313
  width: 1.2rem;
1311
1314
  }
1315
+ .w-\[1000px\] {
1316
+ width: 1000px;
1317
+ }
1312
1318
  .w-\[12px\] {
1313
1319
  width: 12px;
1314
1320
  }
@@ -1345,15 +1351,9 @@ video {
1345
1351
  .w-\[42px\] {
1346
1352
  width: 42px;
1347
1353
  }
1348
- .w-\[500px\] {
1349
- width: 500px;
1350
- }
1351
1354
  .w-\[64px\] {
1352
1355
  width: 64px;
1353
1356
  }
1354
- .w-\[90\%\] {
1355
- width: 90%;
1356
- }
1357
1357
  .w-\[calc\(1\%\)\] {
1358
1358
  width: calc(1%);
1359
1359
  }
@@ -1576,19 +1576,6 @@ video {
1576
1576
  .snap-x {
1577
1577
  scroll-snap-type: x var(--tw-scroll-snap-strictness);
1578
1578
  }
1579
- .snap-mandatory {
1580
- --tw-scroll-snap-strictness: mandatory;
1581
- }
1582
- .snap-start {
1583
- scroll-snap-align: start;
1584
- }
1585
- .snap-always {
1586
- scroll-snap-stop: always;
1587
- }
1588
- .scroll-px-10 {
1589
- scroll-padding-left: 2.5rem;
1590
- scroll-padding-right: 2.5rem;
1591
- }
1592
1579
  .appearance-none {
1593
1580
  -webkit-appearance: none;
1594
1581
  -moz-appearance: none;
@@ -1769,15 +1756,9 @@ video {
1769
1756
  .overflow-y-clip {
1770
1757
  overflow-y: clip;
1771
1758
  }
1772
- .overflow-x-scroll {
1773
- overflow-x: scroll;
1774
- }
1775
1759
  .overflow-y-scroll {
1776
1760
  overflow-y: scroll;
1777
1761
  }
1778
- .scroll-smooth {
1779
- scroll-behavior: smooth;
1780
- }
1781
1762
  .truncate {
1782
1763
  overflow: hidden;
1783
1764
  text-overflow: ellipsis;
@@ -2027,10 +2008,6 @@ video {
2027
2008
  --tw-bg-opacity: 1;
2028
2009
  background-color: rgb(219 234 254 / var(--tw-bg-opacity));
2029
2010
  }
2030
- .bg-blue-200 {
2031
- --tw-bg-opacity: 1;
2032
- background-color: rgb(191 219 254 / var(--tw-bg-opacity));
2033
- }
2034
2011
  .bg-blue-300 {
2035
2012
  --tw-bg-opacity: 1;
2036
2013
  background-color: rgb(147 197 253 / var(--tw-bg-opacity));
@@ -2117,10 +2094,6 @@ video {
2117
2094
  --tw-bg-opacity: 1;
2118
2095
  background-color: rgb(220 252 231 / var(--tw-bg-opacity));
2119
2096
  }
2120
- .bg-green-300 {
2121
- --tw-bg-opacity: 1;
2122
- background-color: rgb(134 239 172 / var(--tw-bg-opacity));
2123
- }
2124
2097
  .bg-green-500 {
2125
2098
  --tw-bg-opacity: 1;
2126
2099
  background-color: rgb(34 197 94 / var(--tw-bg-opacity));
@@ -2138,10 +2111,6 @@ video {
2138
2111
  .bg-muted {
2139
2112
  background-color: hsl(var(--muted));
2140
2113
  }
2141
- .bg-orange-100 {
2142
- --tw-bg-opacity: 1;
2143
- background-color: rgb(255 237 213 / var(--tw-bg-opacity));
2144
- }
2145
2114
  .bg-orange-400 {
2146
2115
  --tw-bg-opacity: 1;
2147
2116
  background-color: rgb(251 146 60 / var(--tw-bg-opacity));
@@ -2188,10 +2157,6 @@ video {
2188
2157
  --tw-bg-opacity: 1;
2189
2158
  background-color: rgb(127 29 29 / var(--tw-bg-opacity));
2190
2159
  }
2191
- .bg-rose-100 {
2192
- --tw-bg-opacity: 1;
2193
- background-color: rgb(255 228 230 / var(--tw-bg-opacity));
2194
- }
2195
2160
  .bg-secondary {
2196
2161
  background-color: hsl(var(--secondary));
2197
2162
  }
@@ -2236,16 +2201,14 @@ video {
2236
2201
  .bg-opacity-80 {
2237
2202
  --tw-bg-opacity: 0.8;
2238
2203
  }
2239
- .bg-gradient-to-t {
2240
- background-image: linear-gradient(to top, var(--tw-gradient-stops));
2241
- }
2242
2204
  .bg-none {
2243
2205
  background-image: none;
2244
2206
  }
2245
- .from-black {
2246
- --tw-gradient-from: #000 var(--tw-gradient-from-position);
2247
- --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);
2248
- --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
2207
+ .bg-cover {
2208
+ background-size: cover;
2209
+ }
2210
+ .bg-center {
2211
+ background-position: center;
2249
2212
  }
2250
2213
  .fill-current {
2251
2214
  fill: currentColor;
@@ -2716,9 +2679,6 @@ video {
2716
2679
  --tw-text-opacity: 1;
2717
2680
  color: rgb(255 255 255 / var(--tw-text-opacity));
2718
2681
  }
2719
- .text-white\/50 {
2720
- color: rgb(255 255 255 / 0.5);
2721
- }
2722
2682
  .text-yellow-700 {
2723
2683
  --tw-text-opacity: 1;
2724
2684
  color: rgb(161 98 7 / var(--tw-text-opacity));
@@ -2918,6 +2878,9 @@ video {
2918
2878
  .duration-300 {
2919
2879
  transition-duration: 300ms;
2920
2880
  }
2881
+ .duration-500 {
2882
+ transition-duration: 500ms;
2883
+ }
2921
2884
  .will-change-\[opacity\2c transform\] {
2922
2885
  will-change: opacity,transform;
2923
2886
  }
@@ -2968,6 +2931,9 @@ video {
2968
2931
  .duration-300 {
2969
2932
  animation-duration: 300ms;
2970
2933
  }
2934
+ .duration-500 {
2935
+ animation-duration: 500ms;
2936
+ }
2971
2937
  .delay-100 {
2972
2938
  animation-delay: 100ms;
2973
2939
  }
@@ -3269,6 +3235,10 @@ body {
3269
3235
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
3270
3236
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
3271
3237
  }
3238
+ .hover\:drop-shadow-2xl:hover {
3239
+ --tw-drop-shadow: drop-shadow(0 25px 25px rgb(0 0 0 / 0.15));
3240
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
3241
+ }
3272
3242
  .hover\:drop-shadow-lg:hover {
3273
3243
  --tw-drop-shadow: drop-shadow(0 10px 8px rgb(0 0 0 / 0.04)) drop-shadow(0 4px 3px rgb(0 0 0 / 0.1));
3274
3244
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
@@ -4049,10 +4019,6 @@ body {
4049
4019
  display: flex;
4050
4020
  }
4051
4021
 
4052
- .sm\:w-\[44\%\] {
4053
- width: 44%;
4054
- }
4055
-
4056
4022
  .sm\:columns-2 {
4057
4023
  -moz-columns: 2;
4058
4024
  columns: 2;
@@ -4164,10 +4130,6 @@ body {
4164
4130
  width: 12rem;
4165
4131
  }
4166
4132
 
4167
- .md\:w-\[30\%\] {
4168
- width: 30%;
4169
- }
4170
-
4171
4133
  .md\:w-full {
4172
4134
  width: 100%;
4173
4135
  }
@@ -4197,6 +4159,10 @@ body {
4197
4159
  grid-template-columns: repeat(2, minmax(0, 1fr));
4198
4160
  }
4199
4161
 
4162
+ .md\:grid-cols-3 {
4163
+ grid-template-columns: repeat(3, minmax(0, 1fr));
4164
+ }
4165
+
4200
4166
  .md\:flex-row {
4201
4167
  flex-direction: row;
4202
4168
  }