@sikka/hawa 0.1.94 → 0.1.96

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 CHANGED
@@ -422,7 +422,7 @@ video {
422
422
  --border: 240 5.9% 90%;
423
423
  --input: 240 5.9% 90%;
424
424
  --ring: 240 5% 64.9%;
425
- --radius: 0rem;
425
+ --radius: 1rem;
426
426
  --radius-inner: calc(var(--radius) - calc(var(--radius) / 3));
427
427
 
428
428
  --layout-primary-700: #b7aff7;
@@ -1194,6 +1194,9 @@ video {
1194
1194
  .h-\[400px\] {
1195
1195
  height: 400px;
1196
1196
  }
1197
+ .h-\[80px\] {
1198
+ height: 80px;
1199
+ }
1197
1200
  .h-\[calc\(100\%-3\.5rem\)\] {
1198
1201
  height: calc(100% - 3.5rem);
1199
1202
  }
@@ -2489,6 +2492,9 @@ video {
2489
2492
  font-size: 3.75rem;
2490
2493
  line-height: 1;
2491
2494
  }
2495
+ .text-\[0\.70rem\] {
2496
+ font-size: 0.70rem;
2497
+ }
2492
2498
  .text-\[0\.75rem\] {
2493
2499
  font-size: 0.75rem;
2494
2500
  }
@@ -3316,6 +3322,9 @@ body {
3316
3322
  .focus\:bg-accent:focus {
3317
3323
  background-color: hsl(var(--accent));
3318
3324
  }
3325
+ .focus\:bg-transparent:focus {
3326
+ background-color: transparent;
3327
+ }
3319
3328
  .focus\:text-accent-foreground:focus {
3320
3329
  color: hsl(var(--accent-foreground));
3321
3330
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sikka/hawa",
3
- "version": "0.1.94",
3
+ "version": "0.1.96",
4
4
  "description": "Modern UI Kit made with Tailwind & Radix Primitives",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -48,9 +48,9 @@
48
48
  "@storybook/addon-actions": "^6.5.8",
49
49
  "@storybook/addon-docs": "^6.5.8",
50
50
  "@storybook/addon-essentials": "^6.5.8",
51
+ "@storybook/addon-info": "^5.3.21",
51
52
  "@storybook/addon-links": "^6.5.8",
52
53
  "@storybook/addon-postcss": "^2.0.0",
53
- "@storybook/addon-info": "^5.3.21",
54
54
  "@storybook/addons": "^6.5.8",
55
55
  "@storybook/api": "^7.3.2",
56
56
  "@storybook/builder-webpack5": "^6.5.13",
@@ -76,6 +76,7 @@
76
76
  "react-dom": "^18.2.0",
77
77
  "react-phone-input-2": "^2.15.1",
78
78
  "react-transition-group": "^4.4.2",
79
+ "recharts": "^2.8.0",
79
80
  "rollup": "^2.38.4",
80
81
  "rollup-plugin-cleaner": "^1.0.0",
81
82
  "rollup-plugin-peer-deps-external": "^2.2.4",
@@ -92,7 +93,6 @@
92
93
  "typescript": "^4.8.4",
93
94
  "webpack": "^5.75.0"
94
95
  },
95
-
96
96
  "resolutions": {
97
97
  "@storybook/react-docgen-typescript-plugin": "npm:react-docgen-typescript-plugin@1.0.2",
98
98
  "@storybook/react/webpack": "^5",
@@ -6,9 +6,6 @@ import { Icons } from "../../elements/Icons"
6
6
 
7
7
  type AppLandingTypes = {
8
8
  texts?: {
9
- signIn: string
10
- signUp: string
11
- lang: string
12
9
  newUserText?: string
13
10
  createAccount?: string
14
11
  continueWithGoogle?: string
@@ -122,7 +119,7 @@ export const AppLanding: FC<AppLandingTypes> = (props) => {
122
119
 
123
120
  {!props.withoutSignUp && (
124
121
  <div className="p-3 text-center text-sm font-normal dark:text-gray-300">
125
- {props.texts.newUserText}{" "}
122
+ {props.texts.newUserText}
126
123
  <span
127
124
  onClick={props.handleRouteToSignUp}
128
125
  className="clickable-link"
@@ -13,6 +13,8 @@ import { Button } from "../../elements/Button"
13
13
 
14
14
  type NewPasswordTypes = {
15
15
  handleNewPassword: () => void
16
+ direction?: "rtl" | "ltr"
17
+
16
18
  passwordChanged: any
17
19
  texts: {
18
20
  passwordPlaceholder: string
@@ -45,7 +47,7 @@ export const NewPasswordForm: FC<NewPasswordTypes> = (props) => {
45
47
  }
46
48
 
47
49
  return (
48
- <Card>
50
+ <Card dir={props.direction}>
49
51
  {matchError && (
50
52
  <HawaAlert text={props.texts.passwordMatchError} severity="error" />
51
53
  )}
@@ -1,6 +1,6 @@
1
1
  import * as React from "react"
2
2
  import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu"
3
-
3
+ import { cva, type VariantProps } from "class-variance-authority"
4
4
  import { cn } from "../util"
5
5
 
6
6
  const DropdownMenuRoot = DropdownMenuPrimitive.Root
@@ -19,7 +19,7 @@ const DropdownMenuSubTrigger = React.forwardRef<
19
19
  <DropdownMenuPrimitive.SubTrigger
20
20
  ref={ref}
21
21
  className={cn(
22
- "flex cursor-default select-none items-center justify-between rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent",
22
+ "flex cursor-default select-none items-center justify-between rounded-sm px-2 py-3 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent",
23
23
  inset && "pl-8",
24
24
  className
25
25
  )}
@@ -92,13 +92,13 @@ const DropdownMenuItem = React.forwardRef<
92
92
  disabled={props.disabled}
93
93
  ref={ref}
94
94
  className={cn(
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",
95
+ "relative flex cursor-pointer select-none items-center justify-between rounded-sm text-sm outline-none transition-colors focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
96
96
  inset && "pl-8",
97
97
  className
98
98
  )}
99
99
  {...props}
100
100
  >
101
- <div className="flex flex-row items-center gap-2">{props.children}</div>
101
+ <div className="flex flex-row items-center gap-2 ">{props.children}</div>
102
102
 
103
103
  {props.end && props.end}
104
104
  </DropdownMenuPrimitive.Item>
@@ -241,13 +241,13 @@ export type SubItem = {
241
241
  highlighted?: boolean
242
242
  disabled?: boolean
243
243
  }
244
-
245
244
  export type MenuItemType = {
246
245
  icon?: any
247
- label: string
248
- value: string
246
+ label?: string
247
+ value?: string
249
248
  end?: any
250
249
  presist?: boolean
250
+ type?: "separator" | "label"
251
251
  action?: () => void
252
252
  highlighted?: boolean
253
253
  subitems?: SubItem[] // Note the use of the optional modifier
@@ -265,8 +265,29 @@ interface DropdownMenuProps {
265
265
  align?: ExtendedDropdownMenuContentProps["align"]
266
266
  alignOffset?: ExtendedDropdownMenuContentProps["alignOffset"]
267
267
  width?: "default" | "sm" | "lg" | "parent"
268
+ size?: "default" | "sm"
268
269
  selectCallback?: any
269
270
  }
271
+
272
+ // const dropDownMenuVariants = cva(
273
+ // "inline-flex items-center justify-center select-none rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
274
+ // {
275
+ // variants: {
276
+ // width: {
277
+ // default: "bg-primary text-primary-foreground hover:bg-primary/90",
278
+ // },
279
+ // size: {
280
+ // default: "h-10 px-4 py-2",
281
+ // sm: "h-9 rounded-md px-3",
282
+ // },
283
+ // },
284
+ // defaultVariants: {
285
+ // width: "default",
286
+ // size: "default",
287
+ // },
288
+ // }
289
+ // )
290
+
270
291
  export const DropdownMenu: React.FC<DropdownMenuProps> = ({
271
292
  trigger,
272
293
  items,
@@ -279,6 +300,7 @@ export const DropdownMenu: React.FC<DropdownMenuProps> = ({
279
300
  align,
280
301
  alignOffset,
281
302
  selectCallback,
303
+ size = "default",
282
304
  width = "default",
283
305
  }) => {
284
306
  const widthStyles = {
@@ -287,6 +309,10 @@ export const DropdownMenu: React.FC<DropdownMenuProps> = ({
287
309
  lg: "w-[200px]",
288
310
  parent: "ddm-w-parent",
289
311
  }
312
+ const sizeStyles = {
313
+ default: "px-2 py-3 ",
314
+ sm: "text-xs px-1.5 py-1.5",
315
+ }
290
316
  return (
291
317
  <DropdownMenuRoot dir={direction}>
292
318
  <DropdownMenuTrigger className={triggerClassname}>
@@ -301,59 +327,81 @@ export const DropdownMenu: React.FC<DropdownMenuProps> = ({
301
327
  alignOffset={alignOffset}
302
328
  >
303
329
  {items.map((item, index) => {
304
- return item.subitems ? (
305
- <DropdownMenuSub key={index}>
306
- <DropdownMenuSubTrigger dir={direction}>
307
- {item.icon && item.icon}
308
- {item.label}
309
- </DropdownMenuSubTrigger>
310
- <DropdownMenuPortal>
311
- <DropdownMenuSubContent>
312
- {item.subitems.map((subitem, subIndex) => (
313
- <DropdownMenuItem
314
- disabled={subitem.disabled}
315
- className="flex flex-row gap-2"
316
- onSelect={() => {
317
- subitem.action()
318
- if (selectCallback) {
319
- selectCallback(subitem.value)
320
- }
321
- }}
322
- key={subIndex}
323
- >
324
- {subitem.icon && subitem.icon}
325
- {subitem.label}
326
- </DropdownMenuItem>
327
- ))}
328
- </DropdownMenuSubContent>
329
- </DropdownMenuPortal>
330
- </DropdownMenuSub>
331
- ) : (
332
- <DropdownMenuItem
333
- disabled={item.disabled}
334
- className="flex flex-row gap-2"
335
- key={index}
336
- onSelect={(e) => {
337
- if (item.presist) {
338
- e.preventDefault()
339
- }
340
- if (item.action) {
341
- item.action()
342
- if (selectCallback) {
343
- selectCallback(item.value)
330
+ if (item.type === "separator") {
331
+ return <DropdownMenuSeparator />
332
+ } else if (item.type === "label") {
333
+ return <DropdownMenuLabel>{item.label}</DropdownMenuLabel>
334
+ } else {
335
+ return item.subitems ? (
336
+ <DropdownMenuSub key={index}>
337
+ <DropdownMenuSubTrigger
338
+ className={cn(sizeStyles[size])}
339
+ dir={direction}
340
+ >
341
+ {item.icon && item.icon}
342
+ {item.label && item.label}
343
+ </DropdownMenuSubTrigger>
344
+ <DropdownMenuPortal>
345
+ <DropdownMenuSubContent>
346
+ {item.subitems.map((subitem, subIndex) => (
347
+ <DropdownMenuItem
348
+ className={cn(
349
+ sizeStyles[size],
350
+
351
+ !item.icon && !item.label
352
+ ? "px-0 py-0 focus:bg-transparent"
353
+ : "focus:bg-accent"
354
+ )}
355
+ disabled={subitem.disabled}
356
+ // className="flex flex-row gap-2"
357
+ onSelect={() => {
358
+ subitem.action()
359
+ if (selectCallback) {
360
+ selectCallback(subitem.value)
361
+ }
362
+ }}
363
+ key={subIndex}
364
+ >
365
+ {subitem.icon && subitem.icon}
366
+ {subitem.label && subitem.label}
367
+ </DropdownMenuItem>
368
+ ))}
369
+ </DropdownMenuSubContent>
370
+ </DropdownMenuPortal>
371
+ </DropdownMenuSub>
372
+ ) : (
373
+ <DropdownMenuItem
374
+ disabled={item.disabled}
375
+ key={index}
376
+ onSelect={(e) => {
377
+ if (item.presist) {
378
+ e.preventDefault()
344
379
  }
345
- } else {
346
- if (selectCallback) {
347
- selectCallback(item.value)
380
+ if (item.action) {
381
+ item.action()
382
+ if (selectCallback) {
383
+ selectCallback(item.value)
384
+ }
385
+ } else {
386
+ if (selectCallback) {
387
+ selectCallback(item.value)
388
+ }
348
389
  }
349
- }
350
- }}
351
- end={item.end}
352
- >
353
- {item.icon && item.icon}
354
- {item.label}
355
- </DropdownMenuItem>
356
- )
390
+ }}
391
+ end={item.end}
392
+ className={cn(
393
+ sizeStyles[size],
394
+ !item.icon && !item.label
395
+ ? "px-0 py-0 focus:bg-transparent "
396
+ : "focus:bg-accent ",
397
+ item.presist && "focus:bg-transparent"
398
+ )}
399
+ >
400
+ {item.icon && item.icon}
401
+ {item.label && item.label}
402
+ </DropdownMenuItem>
403
+ )
404
+ }
357
405
  })}
358
406
  </DropdownMenuContent>
359
407
  </DropdownMenuPortal>
@@ -1,6 +1,5 @@
1
- import React, { useRef, useState, useEffect, FC } from "react"
1
+ import React from "react"
2
2
  import ReactDOMServer from "react-dom/server"
3
- import { AiOutlineClose } from "react-icons/ai"
4
3
 
5
4
  let base64 =
6
5
  "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"
@@ -22,7 +21,19 @@ const Image = (props) => {
22
21
  <div className="group relative w-fit">
23
22
  <img src={`data:image/pngg;charset=utf-8;base64,${base64}`} />
24
23
  <div className="absolute right-0 top-0 text-red-900 opacity-0 transition-all hover:opacity-50 group-hover:opacity-100">
25
- <AiOutlineClose />
24
+ <svg
25
+ aria-label="Close Icon"
26
+ aria-hidden="true"
27
+ className="h-4 w-4"
28
+ fill="currentColor"
29
+ viewBox="0 0 20 20"
30
+ >
31
+ <path
32
+ fillRule="evenodd"
33
+ d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z"
34
+ clipRule="evenodd"
35
+ ></path>
36
+ </svg>
26
37
  </div>
27
38
  </div>
28
39
  )
@@ -66,7 +66,7 @@ export const HawaRadio: FC<RadioTypes> = ({
66
66
  props.onChangeTab(opt.value)
67
67
  }}
68
68
  className={cn(
69
- "w-full cursor-pointer",
69
+ "w-full cursor-pointer ",
70
70
  orientation === "horizontal" &&
71
71
  parentDirection === "ltr" &&
72
72
  "rounded-none first:rounded-l last:rounded-r",
@@ -78,6 +78,7 @@ export const HawaRadio: FC<RadioTypes> = ({
78
78
 
79
79
  "last flex flex-row items-center justify-center gap-2 ",
80
80
  selectedOption === opt.value ? activeTabStyle : inactiveTabStyle
81
+ // "bg-red-500"
81
82
  )}
82
83
  key={o}
83
84
  >
@@ -138,7 +139,7 @@ export const HawaRadio: FC<RadioTypes> = ({
138
139
  "inline-flex h-full w-full items-center justify-between rounded-lg border border-gray-200 bg-white p-5 text-gray-500 peer-checked:border-blue-600 peer-checked:text-blue-600 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:peer-checked:text-primary",
139
140
  opt.disabled
140
141
  ? "opacity-50"
141
- : "cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-700 dark:hover:text-gray-300 hover:text-gray-600"
142
+ : "cursor-pointer hover:bg-gray-100 hover:text-gray-600 dark:hover:bg-gray-700 dark:hover:text-gray-300"
142
143
  )}
143
144
  >
144
145
  <div className="block h-full w-full">
@@ -2,8 +2,8 @@ import clsx from "clsx"
2
2
  import React, { FC } from "react"
3
3
  import Select from "react-select"
4
4
  import CreatableSelect from "react-select/creatable"
5
+ import { Label } from "./Label"
5
6
 
6
- // The select bar
7
7
  type ControlTypes = {
8
8
  cx: any
9
9
  children: any
@@ -87,13 +87,13 @@ const Option: FC<OptionTypes> = ({
87
87
  }) => (
88
88
  <div
89
89
  ref={innerRef}
90
- className="flex flex-row items-center justify-between rounded-inner p-1 px-2 hover:text-primary-foreground hover:bg-primary"
90
+ className="flex cursor-pointer select-none flex-row items-center justify-between rounded-inner p-1 px-2 hover:bg-primary hover:text-primary-foreground"
91
91
  {...innerProps}
92
92
  >
93
93
  {children}
94
94
  </div>
95
95
  )
96
- // The main element
96
+
97
97
  type SelectTypes = {
98
98
  label?: string
99
99
  options?: {
@@ -116,12 +116,14 @@ type SelectTypes = {
116
116
  }
117
117
  export const HawaSelect: FC<SelectTypes> = (props) => {
118
118
  return (
119
- <div className=" w-full">
120
- {props.label && (
119
+ <div className=" flex w-full flex-col gap-2">
120
+ {props.label && <Label>{props.label}</Label>}
121
+
122
+ {/* {props.label && (
121
123
  <div className="mb-2 block text-sm font-medium text-gray-900 dark:text-gray-300">
122
124
  {props.label}
123
125
  </div>
124
- )}
126
+ )} */}
125
127
  {!props.isCreatable && (
126
128
  <Select
127
129
  classNames={{
@@ -7,6 +7,7 @@ type StatTypes = {
7
7
  color?: string
8
8
  number?: string
9
9
  helperText?: string
10
+ chart?: any
10
11
  icon?: any
11
12
  variant?:
12
13
  | "default"
@@ -39,6 +40,11 @@ export const HawaStats: FC<StatTypes> = ({ variant = "default", ...props }) => {
39
40
  <p className="text-xs text-muted-foreground">{props.helperText}</p>
40
41
  )
41
42
  )}
43
+ {props.isLoading && props.chart ? (
44
+ <Skeleton className="mt-2 h-4 w-1/2" />
45
+ ) : (
46
+ props.chart
47
+ )}
42
48
  </CardContent>
43
49
  </Card>
44
50
  )
@@ -23,6 +23,7 @@ type TableTypes = {
23
23
  pagination?: boolean
24
24
  columns: ColTypes[]
25
25
  actions?: MenuItemType[]
26
+ actionsWidth?: "default" | "sm" | "lg" | "parent"
26
27
  direction?: "rtl" | "ltr"
27
28
  rows?: RowTypes[][]
28
29
  handleActionClick?: any
@@ -110,58 +111,11 @@ export const HawaTable: FC<TableTypes> = ({
110
111
  }, [slice, page])
111
112
 
112
113
  return (
113
- <div className="relative flex flex-col gap-2 ">
114
+ <div className="relative flex flex-col gap-2 bg-background ">
114
115
  <div className={`overflow-x-auto rounded bg-${headerColor}`}>
115
116
  {props.headerTools && (
116
- <div className="flex flex-row items-center justify-between gap-2 border bg-background px-4 py-2">
117
- <HawaTextField
118
- icon={
119
- <svg
120
- aria-label="Search Icon"
121
- stroke="currentColor"
122
- fill="gray"
123
- strokeWidth="0"
124
- viewBox="0 0 512 512"
125
- height="1em"
126
- width="1em"
127
- >
128
- <path d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"></path>
129
- </svg>
130
- }
131
- placeholder={"Search"}
132
- width="full"
133
- margin="none"
134
- />
135
- <div className="flex flex-row items-center justify-between gap-2">
136
- <Button className="flex flex-row gap-2">
137
- <svg
138
- aria-label="Filter Icon"
139
- stroke="currentColor"
140
- fill="currentColor"
141
- strokeWidth="0"
142
- viewBox="0 0 16 16"
143
- height="1em"
144
- width="1em"
145
- >
146
- <path d="M6 10.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 0 1h-3a.5.5 0 0 1-.5-.5zm-2-3a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5zm-2-3a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5z"></path>
147
- </svg>
148
- {props.texts?.filter ?? "Filter"}
149
- <svg
150
- aria-label="Chevron Right Icon"
151
- stroke="currentColor"
152
- fill="currentColor"
153
- strokeWidth="0"
154
- viewBox="0 0 16 16"
155
- height="1em"
156
- width="1em"
157
- >
158
- <path
159
- fillRule="evenodd"
160
- d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"
161
- ></path>
162
- </svg>
163
- </Button>
164
- </div>
117
+ <div className="flex flex-row items-center justify-between gap-2 border bg-background px-2 py-2">
118
+ {props.headerTools}
165
119
  </div>
166
120
  )}
167
121
  <table
@@ -312,7 +266,7 @@ export const HawaTable: FC<TableTypes> = ({
312
266
  >
313
267
  <div className="flex items-center justify-center">
314
268
  <DropdownMenu
315
- width="sm"
269
+ width={props.actionsWidth}
316
270
  direction={direction}
317
271
  side="right"
318
272
  items={props.actions}
@@ -91,7 +91,7 @@ export const HawaTextField: FC<TextFieldTypes> = ({
91
91
  </div>
92
92
  )}
93
93
  {props.helpertext ? (
94
- <p className="mb-0 mt-1 text-xs text-red-600 dark:text-red-500">
94
+ <p className="mb-0 mt-0 text-xs text-red-600 dark:text-red-500">
95
95
  {props.helpertext}
96
96
  </p>
97
97
  ) : null}
@@ -74,7 +74,10 @@ export const Icons = {
74
74
  ),
75
75
  microsoft: (props: IconProps) => (
76
76
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" {...props}>
77
- <path d="M7.462 0H0v7.19h7.462V0zM16 0H8.538v7.19H16V0zM7.462 8.211H0V16h7.462V8.211zm8.538 0H8.538V16H16V8.211z"></path>
77
+ <path
78
+ fill="currentColor"
79
+ d="M7.462 0H0v7.19h7.462V0zM16 0H8.538v7.19H16V0zM7.462 8.211H0V16h7.462V8.211zm8.538 0H8.538V16H16V8.211z"
80
+ ></path>
78
81
  </svg>
79
82
  ),
80
83
  gitHub: (props: IconProps) => (
@@ -24,6 +24,7 @@ type AppLayoutTypes = {
24
24
  avatarImage?: any
25
25
  drawerSize?: "sm" | "md" | "large"
26
26
  profileMenuItems?: MenuItemType[]
27
+ profileMenuWidth: "default" | "sm" | "lg" | "parent"
27
28
  onSettingsClick?: () => void
28
29
  DrawerFooterActions?: any
29
30
  clickedItem?: any
@@ -203,7 +204,10 @@ export const AppLayout: React.FunctionComponent<AppLayoutTypes> = ({
203
204
  alignOffset={8}
204
205
  side={"bottom"}
205
206
  sideOffset={5}
207
+ width={props.profileMenuWidth}
206
208
  direction={isRTL ? "rtl" : "ltr"}
209
+ items={props.profileMenuItems}
210
+ onItemSelect={(e) => console.log("selecting item ", e)}
207
211
  trigger={
208
212
  <div className="relative h-8 w-8 cursor-pointer overflow-clip rounded ring-1 ring-primary/30 dark:bg-gray-600">
209
213
  {props.avatarImage ? (
@@ -224,8 +228,6 @@ export const AppLayout: React.FunctionComponent<AppLayoutTypes> = ({
224
228
  )}
225
229
  </div>
226
230
  }
227
- items={props.profileMenuItems}
228
- onItemSelect={(e) => console.log("selecting item ", e)}
229
231
  />
230
232
  </div>
231
233
  </div>
package/src/styles.css CHANGED
@@ -422,7 +422,7 @@ video {
422
422
  --border: 240 5.9% 90%;
423
423
  --input: 240 5.9% 90%;
424
424
  --ring: 240 5% 64.9%;
425
- --radius: 0rem;
425
+ --radius: 1rem;
426
426
  --radius-inner: calc(var(--radius) - calc(var(--radius) / 3));
427
427
 
428
428
  --layout-primary-700: #b7aff7;
@@ -1194,6 +1194,9 @@ video {
1194
1194
  .h-\[400px\] {
1195
1195
  height: 400px;
1196
1196
  }
1197
+ .h-\[80px\] {
1198
+ height: 80px;
1199
+ }
1197
1200
  .h-\[calc\(100\%-3\.5rem\)\] {
1198
1201
  height: calc(100% - 3.5rem);
1199
1202
  }
@@ -2489,6 +2492,9 @@ video {
2489
2492
  font-size: 3.75rem;
2490
2493
  line-height: 1;
2491
2494
  }
2495
+ .text-\[0\.70rem\] {
2496
+ font-size: 0.70rem;
2497
+ }
2492
2498
  .text-\[0\.75rem\] {
2493
2499
  font-size: 0.75rem;
2494
2500
  }
@@ -3316,6 +3322,9 @@ body {
3316
3322
  .focus\:bg-accent:focus {
3317
3323
  background-color: hsl(var(--accent));
3318
3324
  }
3325
+ .focus\:bg-transparent:focus {
3326
+ background-color: transparent;
3327
+ }
3319
3328
  .focus\:text-accent-foreground:focus {
3320
3329
  color: hsl(var(--accent-foreground));
3321
3330
  }