@sikka/hawa 0.48.0-next → 0.49.0-next
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/accordion/index.js +3 -28
- package/dist/accordion/index.js.map +1 -1
- package/dist/accordion/index.mjs +3 -28
- package/dist/accordion/index.mjs.map +1 -1
- package/dist/alert/index.js +53 -98
- package/dist/alert/index.js.map +1 -1
- package/dist/alert/index.mjs +53 -98
- package/dist/alert/index.mjs.map +1 -1
- package/dist/appLayout/index.d.mts +2 -0
- package/dist/appLayout/index.d.ts +2 -0
- package/dist/appLayout/index.js +263 -409
- package/dist/appLayout/index.js.map +1 -1
- package/dist/appLayout/index.mjs +263 -409
- package/dist/appLayout/index.mjs.map +1 -1
- package/dist/appMenubar/index.js +15 -20
- package/dist/appMenubar/index.js.map +1 -1
- package/dist/appMenubar/index.mjs +15 -20
- package/dist/appMenubar/index.mjs.map +1 -1
- package/dist/appTabs/index.js +28 -37
- package/dist/appTabs/index.js.map +1 -1
- package/dist/appTabs/index.mjs +28 -37
- package/dist/appTabs/index.mjs.map +1 -1
- package/dist/appTopbar/index.js +125 -173
- package/dist/appTopbar/index.js.map +1 -1
- package/dist/appTopbar/index.mjs +125 -173
- package/dist/appTopbar/index.mjs.map +1 -1
- package/dist/avatar/index.js.map +1 -1
- package/dist/avatar/index.mjs.map +1 -1
- package/dist/backToTop/index.js +50 -82
- package/dist/backToTop/index.js.map +1 -1
- package/dist/backToTop/index.mjs +50 -82
- package/dist/backToTop/index.mjs.map +1 -1
- package/dist/badge/index.d.mts +1 -1
- package/dist/badge/index.d.ts +1 -1
- package/dist/badge/index.js +2 -18
- package/dist/badge/index.js.map +1 -1
- package/dist/badge/index.mjs +2 -18
- package/dist/badge/index.mjs.map +1 -1
- package/dist/blocks/auth/index.d.mts +1 -0
- package/dist/blocks/auth/index.d.ts +1 -0
- package/dist/blocks/auth/index.js +539 -792
- package/dist/blocks/auth/index.mjs +433 -604
- package/dist/blocks/feedback/index.js +214 -375
- package/dist/blocks/feedback/index.mjs +12 -25
- package/dist/blocks/index.d.mts +1 -0
- package/dist/blocks/index.d.ts +1 -0
- package/dist/blocks/index.js +940 -1445
- package/dist/blocks/index.mjs +469 -615
- package/dist/blocks/misc/index.js +136 -251
- package/dist/blocks/misc/index.mjs +29 -54
- package/dist/blocks/pricing/index.js +220 -397
- package/dist/blocks/pricing/index.mjs +63 -134
- package/dist/breadcrumb/index.js +1 -5
- package/dist/breadcrumb/index.js.map +1 -1
- package/dist/breadcrumb/index.mjs +1 -5
- package/dist/breadcrumb/index.mjs.map +1 -1
- package/dist/button/index.js +50 -82
- package/dist/button/index.js.map +1 -1
- package/dist/button/index.mjs +50 -82
- package/dist/button/index.mjs.map +1 -1
- package/dist/calendar/index.js +50 -82
- package/dist/calendar/index.js.map +1 -1
- package/dist/calendar/index.mjs +50 -82
- package/dist/calendar/index.mjs.map +1 -1
- package/dist/card/index.js +7 -35
- package/dist/card/index.js.map +1 -1
- package/dist/card/index.mjs +7 -35
- package/dist/card/index.mjs.map +1 -1
- package/dist/carousel/index.js +15 -27
- package/dist/carousel/index.js.map +1 -1
- package/dist/carousel/index.mjs +15 -27
- package/dist/carousel/index.mjs.map +1 -1
- package/dist/checkbox/index.js +2 -13
- package/dist/checkbox/index.js.map +1 -1
- package/dist/checkbox/index.mjs +2 -13
- package/dist/checkbox/index.mjs.map +1 -1
- package/dist/chip/index.js +2 -16
- package/dist/chip/index.js.map +1 -1
- package/dist/chip/index.mjs +2 -16
- package/dist/chip/index.mjs.map +1 -1
- package/dist/{chunk-WUMDFBEK.mjs → chunk-3CHFVHTW.mjs} +43 -54
- package/dist/{chunk-2LUXOXAL.mjs → chunk-5SQBJRWE.mjs} +3 -9
- package/dist/{chunk-C2UOOH4X.mjs → chunk-B53SP2WZ.mjs} +3 -17
- package/dist/chunk-GHGWQVTM.mjs +150 -0
- package/dist/{chunk-5S5DR7KF.mjs → chunk-I23ONEDJ.mjs} +2 -10
- package/dist/{chunk-JFWD2ICY.mjs → chunk-JT7R3L5O.mjs} +54 -62
- package/dist/{chunk-6SJUUJOV.mjs → chunk-KDGJZPWK.mjs} +295 -574
- package/dist/{chunk-AWJSHOYU.mjs → chunk-KSJGXQTE.mjs} +1 -1
- package/dist/{chunk-NMW4GM4G.mjs → chunk-SE2JMXYG.mjs} +104 -144
- package/dist/{chunk-GBLWUEYN.mjs → chunk-ULRL4WI6.mjs} +176 -256
- package/dist/{chunk-IFWYR5W2.mjs → chunk-VUELRPUL.mjs} +57 -117
- package/dist/{chunk-WL7C2A5D.mjs → chunk-WQR4XZGL.mjs} +8 -15
- package/dist/codeBlock/index.js +50 -82
- package/dist/codeBlock/index.js.map +1 -1
- package/dist/codeBlock/index.mjs +50 -82
- package/dist/codeBlock/index.mjs.map +1 -1
- package/dist/colorPicker/index.js +21 -33
- package/dist/colorPicker/index.js.map +1 -1
- package/dist/colorPicker/index.mjs +22 -37
- package/dist/colorPicker/index.mjs.map +1 -1
- package/dist/combobox/index.d.mts +1 -1
- package/dist/combobox/index.d.ts +1 -1
- package/dist/combobox/index.js +141 -223
- package/dist/combobox/index.js.map +1 -1
- package/dist/combobox/index.mjs +141 -223
- package/dist/combobox/index.mjs.map +1 -1
- package/dist/command/index.d.mts +1 -1
- package/dist/command/index.d.ts +1 -1
- package/dist/command/index.js +129 -212
- package/dist/command/index.js.map +1 -1
- package/dist/command/index.mjs +129 -212
- package/dist/command/index.mjs.map +1 -1
- package/dist/dataTable/index.js +254 -394
- package/dist/dataTable/index.js.map +1 -1
- package/dist/dataTable/index.mjs +254 -394
- package/dist/dataTable/index.mjs.map +1 -1
- package/dist/datePicker/index.js +64 -105
- package/dist/datePicker/index.js.map +1 -1
- package/dist/datePicker/index.mjs +64 -105
- package/dist/datePicker/index.mjs.map +1 -1
- package/dist/destroyableCard/index.js +8 -39
- package/dist/destroyableCard/index.js.map +1 -1
- package/dist/destroyableCard/index.mjs +8 -39
- package/dist/destroyableCard/index.mjs.map +1 -1
- package/dist/dialog/index.js +70 -122
- package/dist/dialog/index.js.map +1 -1
- package/dist/dialog/index.mjs +70 -122
- package/dist/dialog/index.mjs.map +1 -1
- package/dist/docsLayout/index.js +169 -358
- package/dist/docsLayout/index.js.map +1 -1
- package/dist/docsLayout/index.mjs +169 -358
- package/dist/docsLayout/index.mjs.map +1 -1
- package/dist/docsSidebar/index.js +9 -16
- package/dist/docsSidebar/index.js.map +1 -1
- package/dist/docsSidebar/index.mjs +9 -16
- package/dist/docsSidebar/index.mjs.map +1 -1
- package/dist/dropdownMenu/index.js +124 -164
- package/dist/dropdownMenu/index.js.map +1 -1
- package/dist/dropdownMenu/index.mjs +124 -164
- package/dist/dropdownMenu/index.mjs.map +1 -1
- package/dist/elements/index.d.mts +3 -3
- package/dist/elements/index.d.ts +3 -3
- package/dist/elements/index.js +841 -1505
- package/dist/elements/index.mjs +381 -718
- package/dist/fileDropzone/index.js +60 -159
- package/dist/fileDropzone/index.js.map +1 -1
- package/dist/fileDropzone/index.mjs +60 -159
- package/dist/fileDropzone/index.mjs.map +1 -1
- package/dist/glow/index.js +4 -16
- package/dist/glow/index.js.map +1 -1
- package/dist/glow/index.mjs +4 -16
- package/dist/glow/index.mjs.map +1 -1
- package/dist/hooks/index.d.mts +1 -5
- package/dist/hooks/index.d.ts +1 -5
- package/dist/hooks/index.js +11 -24
- package/dist/hooks/index.mjs +2 -2
- package/dist/{index-B0aJcA6d.d.ts → index-BgNycocQ.d.mts} +2 -2
- package/dist/{index-B0aJcA6d.d.mts → index-BgNycocQ.d.ts} +2 -2
- package/dist/index.css +1 -6
- package/dist/index.d.mts +7 -8
- package/dist/index.d.ts +7 -8
- package/dist/index.js +1549 -2512
- package/dist/index.mjs +1550 -2516
- package/dist/input/index.js +20 -29
- package/dist/input/index.js.map +1 -1
- package/dist/input/index.mjs +20 -29
- package/dist/input/index.mjs.map +1 -1
- package/dist/interfaceSettings/index.js +122 -163
- package/dist/interfaceSettings/index.js.map +1 -1
- package/dist/interfaceSettings/index.mjs +122 -163
- package/dist/interfaceSettings/index.mjs.map +1 -1
- package/dist/label/index.js +19 -26
- package/dist/label/index.js.map +1 -1
- package/dist/label/index.mjs +19 -26
- package/dist/label/index.mjs.map +1 -1
- package/dist/layout/index.d.mts +2 -0
- package/dist/layout/index.d.ts +2 -0
- package/dist/layout/index.js +434 -790
- package/dist/layout/index.mjs +143 -243
- package/dist/loading/index.js +30 -53
- package/dist/loading/index.js.map +1 -1
- package/dist/loading/index.mjs +30 -53
- package/dist/loading/index.mjs.map +1 -1
- package/dist/logos/index.js +66 -191
- package/dist/logos/index.js.map +1 -1
- package/dist/logos/index.mjs +66 -191
- package/dist/logos/index.mjs.map +1 -1
- package/dist/navbar/index.js +1 -4
- package/dist/navbar/index.js.map +1 -1
- package/dist/navbar/index.mjs +1 -4
- package/dist/navbar/index.mjs.map +1 -1
- package/dist/navigationMenu/index.js +14 -22
- package/dist/navigationMenu/index.js.map +1 -1
- package/dist/navigationMenu/index.mjs +14 -22
- package/dist/navigationMenu/index.mjs.map +1 -1
- package/dist/pagination/index.js +1 -5
- package/dist/pagination/index.js.map +1 -1
- package/dist/pagination/index.mjs +1 -5
- package/dist/pagination/index.mjs.map +1 -1
- package/dist/passwordInput/index.js +36 -65
- package/dist/passwordInput/index.js.map +1 -1
- package/dist/passwordInput/index.mjs +36 -65
- package/dist/passwordInput/index.mjs.map +1 -1
- package/dist/phoneInput/index.js +20 -29
- package/dist/phoneInput/index.js.map +1 -1
- package/dist/phoneInput/index.mjs +20 -29
- package/dist/phoneInput/index.mjs.map +1 -1
- package/dist/pinInput/index.js +14 -16
- package/dist/pinInput/index.js.map +1 -1
- package/dist/pinInput/index.mjs +14 -16
- package/dist/pinInput/index.mjs.map +1 -1
- package/dist/popover/index.js +14 -24
- package/dist/popover/index.js.map +1 -1
- package/dist/popover/index.mjs +14 -24
- package/dist/popover/index.mjs.map +1 -1
- package/dist/progress/index.js +19 -26
- package/dist/progress/index.js.map +1 -1
- package/dist/progress/index.mjs +19 -26
- package/dist/progress/index.mjs.map +1 -1
- package/dist/progressCircle/index.js +67 -71
- package/dist/progressCircle/index.js.map +1 -1
- package/dist/progressCircle/index.mjs +67 -71
- package/dist/progressCircle/index.mjs.map +1 -1
- package/dist/radio/index.js +122 -163
- package/dist/radio/index.js.map +1 -1
- package/dist/radio/index.mjs +122 -163
- package/dist/radio/index.mjs.map +1 -1
- package/dist/scrollArea/index.js.map +1 -1
- package/dist/scrollArea/index.mjs.map +1 -1
- package/dist/scrollIndicator/index.js +1 -4
- package/dist/scrollIndicator/index.js.map +1 -1
- package/dist/scrollIndicator/index.mjs +1 -4
- package/dist/scrollIndicator/index.mjs.map +1 -1
- package/dist/select/index.js +20 -29
- package/dist/select/index.js.map +1 -1
- package/dist/select/index.mjs +20 -29
- package/dist/select/index.mjs.map +1 -1
- package/dist/separator/index.js.map +1 -1
- package/dist/separator/index.mjs.map +1 -1
- package/dist/sheet/index.js +42 -53
- package/dist/sheet/index.js.map +1 -1
- package/dist/sheet/index.mjs +42 -53
- package/dist/sheet/index.mjs.map +1 -1
- package/dist/sidebar/index.js +66 -133
- package/dist/sidebar/index.js.map +1 -1
- package/dist/sidebar/index.mjs +66 -133
- package/dist/sidebar/index.mjs.map +1 -1
- package/dist/signature/index.js +19 -26
- package/dist/signature/index.js.map +1 -1
- package/dist/signature/index.mjs +19 -26
- package/dist/signature/index.mjs.map +1 -1
- package/dist/simpleTable/index.js +50 -81
- package/dist/simpleTable/index.js.map +1 -1
- package/dist/simpleTable/index.mjs +50 -81
- package/dist/simpleTable/index.mjs.map +1 -1
- package/dist/skeleton/index.js.map +1 -1
- package/dist/skeleton/index.mjs.map +1 -1
- package/dist/slider/index.js.map +1 -1
- package/dist/slider/index.mjs.map +1 -1
- package/dist/sonner/index.js.map +1 -1
- package/dist/sonner/index.mjs.map +1 -1
- package/dist/sortButton/index.js +50 -82
- package/dist/sortButton/index.js.map +1 -1
- package/dist/sortButton/index.mjs +50 -82
- package/dist/sortButton/index.mjs.map +1 -1
- package/dist/splitButton/index.js +214 -294
- package/dist/splitButton/index.js.map +1 -1
- package/dist/splitButton/index.mjs +214 -294
- package/dist/splitButton/index.mjs.map +1 -1
- package/dist/stats/index.js +7 -35
- package/dist/stats/index.js.map +1 -1
- package/dist/stats/index.mjs +7 -35
- package/dist/stats/index.mjs.map +1 -1
- package/dist/switch/index.js +24 -34
- package/dist/switch/index.js.map +1 -1
- package/dist/switch/index.mjs +24 -34
- package/dist/switch/index.mjs.map +1 -1
- package/dist/table/index.js +27 -29
- package/dist/table/index.js.map +1 -1
- package/dist/table/index.mjs +27 -29
- package/dist/table/index.mjs.map +1 -1
- package/dist/tabs/index.js +54 -76
- package/dist/tabs/index.js.map +1 -1
- package/dist/tabs/index.mjs +54 -76
- package/dist/tabs/index.mjs.map +1 -1
- package/dist/textarea/index.js +21 -38
- package/dist/textarea/index.js.map +1 -1
- package/dist/textarea/index.mjs +21 -38
- package/dist/textarea/index.mjs.map +1 -1
- package/dist/toast/index.js +2 -10
- package/dist/toast/index.js.map +1 -1
- package/dist/toast/index.mjs +2 -10
- package/dist/toast/index.mjs.map +1 -1
- package/dist/toaster/index.js +3 -16
- package/dist/toaster/index.js.map +1 -1
- package/dist/toaster/index.mjs +3 -16
- package/dist/toaster/index.mjs.map +1 -1
- package/dist/tooltip/index.js +19 -26
- package/dist/tooltip/index.js.map +1 -1
- package/dist/tooltip/index.mjs +19 -26
- package/dist/tooltip/index.mjs.map +1 -1
- package/package.json +12 -12
- package/dist/chunk-JP2N5WKD.mjs +0 -190
package/dist/appTopbar/index.js
CHANGED
@@ -213,17 +213,11 @@ var DropdownMenuSeparator = React.forwardRef(({ className, ...props }, ref) => /
|
|
213
213
|
}
|
214
214
|
));
|
215
215
|
DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
|
216
|
-
var DropdownMenuShortcut = ({
|
217
|
-
className,
|
218
|
-
...props
|
219
|
-
}) => {
|
216
|
+
var DropdownMenuShortcut = ({ className, ...props }) => {
|
220
217
|
return /* @__PURE__ */ React.createElement(
|
221
218
|
"span",
|
222
219
|
{
|
223
|
-
className: cn(
|
224
|
-
"hawa-text-xs hawa-tracking-widest hawa-opacity-60",
|
225
|
-
className
|
226
|
-
),
|
220
|
+
className: cn("hawa-text-xs hawa-tracking-widest hawa-opacity-60", className),
|
227
221
|
...props
|
228
222
|
}
|
229
223
|
);
|
@@ -260,178 +254,144 @@ var DropdownMenu = ({
|
|
260
254
|
default: "hawa-px-2 hawa-py-3 ",
|
261
255
|
sm: "hawa-text-xs hawa-px-1.5 hawa-py-1.5 "
|
262
256
|
};
|
263
|
-
let [values, setValues] = React.useState(
|
264
|
-
|
265
|
-
|
266
|
-
return /* @__PURE__ */ React.createElement(
|
267
|
-
DropdownMenuRoot,
|
257
|
+
let [values, setValues] = React.useState(items.map((item) => item.currentOption));
|
258
|
+
return /* @__PURE__ */ React.createElement(DropdownMenuRoot, { onOpenChange, open, modal: false, dir: direction }, /* @__PURE__ */ React.createElement(
|
259
|
+
DropdownMenuTrigger,
|
268
260
|
{
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
dir: direction
|
261
|
+
asChild: true,
|
262
|
+
className: cn(classNames == null ? void 0 : classNames.trigger, triggerClassname),
|
263
|
+
...triggerProps
|
273
264
|
},
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
className: cn(
|
291
|
-
className,
|
292
|
-
classNames == null ? void 0 : classNames.content,
|
293
|
-
widthStyles[width],
|
294
|
-
"hawa-flex hawa-flex-col hawa-gap-1 hawa-overflow-y-auto"
|
295
|
-
),
|
296
|
-
style: {
|
297
|
-
maxHeight: "var(--radix-dropdown-menu-content-available-height)"
|
298
|
-
},
|
299
|
-
...contentProps
|
265
|
+
trigger
|
266
|
+
), /* @__PURE__ */ React.createElement(import_react.Portal, null, /* @__PURE__ */ React.createElement(
|
267
|
+
DropdownMenuContent,
|
268
|
+
{
|
269
|
+
side,
|
270
|
+
sideOffset,
|
271
|
+
align,
|
272
|
+
alignOffset,
|
273
|
+
className: cn(
|
274
|
+
className,
|
275
|
+
classNames == null ? void 0 : classNames.content,
|
276
|
+
widthStyles[width],
|
277
|
+
"hawa-flex hawa-flex-col hawa-gap-1 hawa-overflow-y-auto"
|
278
|
+
),
|
279
|
+
style: {
|
280
|
+
maxHeight: "var(--radix-dropdown-menu-content-available-height)"
|
300
281
|
},
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
}
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
item.label && item.label
|
325
|
-
), /* @__PURE__ */ React.createElement(DropdownMenuSubContent, null, /* @__PURE__ */ React.createElement(
|
326
|
-
DropdownMenuRadioGroup,
|
327
|
-
{
|
328
|
-
value: values[index],
|
329
|
-
onValueChange: (e) => {
|
330
|
-
let newValues = [...values];
|
331
|
-
newValues[index] = e;
|
332
|
-
setValues(newValues);
|
333
|
-
console.log("changing to ", e);
|
334
|
-
if (item.onOptionChange) {
|
335
|
-
item.onOptionChange(e);
|
336
|
-
}
|
282
|
+
...contentProps
|
283
|
+
},
|
284
|
+
header && header,
|
285
|
+
items && items.map((item, index) => {
|
286
|
+
var _a;
|
287
|
+
const ItemLinkComponent = item.slug ? LinkComponent : "a";
|
288
|
+
if (item.itemType === "separator") {
|
289
|
+
return /* @__PURE__ */ React.createElement(DropdownMenuSeparator, { key: index, className: classNames == null ? void 0 : classNames.separator });
|
290
|
+
} else if (item.itemType === "label") {
|
291
|
+
return /* @__PURE__ */ React.createElement(DropdownMenuLabel, { key: index }, item.label);
|
292
|
+
} else if (item.itemType === "radio") {
|
293
|
+
let dd = item.currentOption;
|
294
|
+
return /* @__PURE__ */ React.createElement(DropdownMenuSub, { key: index }, /* @__PURE__ */ React.createElement(DropdownMenuSubTrigger, { dir: direction, className: cn(sizeStyles[size]) }, item.icon && item.icon, item.label && item.label), /* @__PURE__ */ React.createElement(DropdownMenuSubContent, null, /* @__PURE__ */ React.createElement(
|
295
|
+
DropdownMenuRadioGroup,
|
296
|
+
{
|
297
|
+
value: values[index],
|
298
|
+
onValueChange: (e) => {
|
299
|
+
let newValues = [...values];
|
300
|
+
newValues[index] = e;
|
301
|
+
setValues(newValues);
|
302
|
+
console.log("changing to ", e);
|
303
|
+
if (item.onOptionChange) {
|
304
|
+
item.onOptionChange(e);
|
337
305
|
}
|
338
|
-
}
|
339
|
-
|
340
|
-
)))
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
className: cn(sizeStyles[size])
|
349
|
-
},
|
350
|
-
item.icon && item.icon,
|
351
|
-
item.label && item.label
|
352
|
-
), /* @__PURE__ */ React.createElement(import_react.Portal, null, /* @__PURE__ */ React.createElement(DropdownMenuSubContent, null, item.subitems.map((subitem, subIndex) => {
|
353
|
-
const SubitemLinkComponent = subitem.slug ? LinkComponent : "a";
|
354
|
-
return /* @__PURE__ */ React.createElement(
|
355
|
-
DropdownMenuItem,
|
356
|
-
{
|
357
|
-
key: subIndex,
|
358
|
-
LinkComponent: SubitemLinkComponent,
|
359
|
-
slug: subitem.slug,
|
360
|
-
disabled: subitem.disabled,
|
361
|
-
className: cn(
|
362
|
-
sizeStyles[size],
|
363
|
-
!item.icon && !item.label ? "hawa-px-0 hawa-py-0 focus:hawa-bg-transparent" : "focus:hawa-bg-accent"
|
364
|
-
),
|
365
|
-
onMouseDown: (event) => {
|
366
|
-
if (event.button === 1 || event.button === 0 && event.ctrlKey) {
|
367
|
-
event.preventDefault();
|
368
|
-
if (subitem.onMiddleClick) {
|
369
|
-
subitem.onMiddleClick(item.value);
|
370
|
-
}
|
371
|
-
}
|
372
|
-
},
|
373
|
-
onSelect: () => {
|
374
|
-
subitem.action && subitem.action();
|
375
|
-
if (onItemSelect) {
|
376
|
-
onItemSelect(subitem.value);
|
377
|
-
}
|
378
|
-
}
|
379
|
-
},
|
380
|
-
subitem.icon && subitem.icon,
|
381
|
-
subitem.label && subitem.label
|
382
|
-
);
|
383
|
-
})))) : /* @__PURE__ */ React.createElement(
|
306
|
+
}
|
307
|
+
},
|
308
|
+
(_a = item.options) == null ? void 0 : _a.map((opt, i) => /* @__PURE__ */ React.createElement(DropdownMenuRadioItem, { key: i, value: opt.value }, opt.label))
|
309
|
+
)));
|
310
|
+
} else if (item.itemType === "custom") {
|
311
|
+
return /* @__PURE__ */ React.createElement("div", { key: index }, item.content);
|
312
|
+
} else {
|
313
|
+
return item.subitems ? /* @__PURE__ */ React.createElement(DropdownMenuSub, { key: index }, /* @__PURE__ */ React.createElement(DropdownMenuSubTrigger, { dir: direction, className: cn(sizeStyles[size]) }, item.icon && item.icon, item.label && item.label), /* @__PURE__ */ React.createElement(import_react.Portal, null, /* @__PURE__ */ React.createElement(DropdownMenuSubContent, null, item.subitems.map((subitem, subIndex) => {
|
314
|
+
const SubitemLinkComponent = subitem.slug ? LinkComponent : "a";
|
315
|
+
return /* @__PURE__ */ React.createElement(
|
384
316
|
DropdownMenuItem,
|
385
317
|
{
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
disabled:
|
318
|
+
key: subIndex,
|
319
|
+
LinkComponent: SubitemLinkComponent,
|
320
|
+
slug: subitem.slug,
|
321
|
+
disabled: subitem.disabled,
|
322
|
+
className: cn(
|
323
|
+
sizeStyles[size],
|
324
|
+
!item.icon && !item.label ? "hawa-px-0 hawa-py-0 focus:hawa-bg-transparent" : "focus:hawa-bg-accent"
|
325
|
+
),
|
390
326
|
onMouseDown: (event) => {
|
391
327
|
if (event.button === 1 || event.button === 0 && event.ctrlKey) {
|
392
328
|
event.preventDefault();
|
393
|
-
if (
|
394
|
-
|
329
|
+
if (subitem.onMiddleClick) {
|
330
|
+
subitem.onMiddleClick(item.value);
|
395
331
|
}
|
396
332
|
}
|
397
333
|
},
|
398
|
-
|
399
|
-
|
400
|
-
|
334
|
+
onSelect: () => {
|
335
|
+
subitem.action && subitem.action();
|
336
|
+
if (onItemSelect) {
|
337
|
+
onItemSelect(subitem.value);
|
401
338
|
}
|
402
|
-
}
|
403
|
-
|
404
|
-
|
405
|
-
|
339
|
+
}
|
340
|
+
},
|
341
|
+
subitem.icon && subitem.icon,
|
342
|
+
subitem.label && subitem.label
|
343
|
+
);
|
344
|
+
})))) : /* @__PURE__ */ React.createElement(
|
345
|
+
DropdownMenuItem,
|
346
|
+
{
|
347
|
+
LinkComponent: ItemLinkComponent,
|
348
|
+
slug: item.slug,
|
349
|
+
key: index,
|
350
|
+
disabled: item.disabled,
|
351
|
+
onMouseDown: (event) => {
|
352
|
+
if (event.button === 1 || event.button === 0 && event.ctrlKey) {
|
353
|
+
event.preventDefault();
|
354
|
+
if (item.onMiddleClick) {
|
355
|
+
item.onMiddleClick(item.value);
|
406
356
|
}
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
357
|
+
}
|
358
|
+
},
|
359
|
+
onClick: (event) => {
|
360
|
+
if (item.onClick) {
|
361
|
+
item.onClick(item.value);
|
362
|
+
}
|
363
|
+
},
|
364
|
+
onSelect: (e) => {
|
365
|
+
if (item.presist) {
|
366
|
+
e.preventDefault();
|
367
|
+
}
|
368
|
+
if (item.action) {
|
369
|
+
item.action();
|
370
|
+
if (onItemSelect) {
|
371
|
+
onItemSelect(item.value);
|
416
372
|
}
|
417
|
-
}
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
sizeStyles[size],
|
423
|
-
!item.icon && !item.label ? "hawa-px-0 hawa-py-0 focus:hawa-bg-transparent" : "focus:hawa-bg-accent",
|
424
|
-
item.presist && "focus:hawa-bg-transparent",
|
425
|
-
classNames == null ? void 0 : classNames.item
|
426
|
-
)
|
373
|
+
} else {
|
374
|
+
if (onItemSelect) {
|
375
|
+
onItemSelect(item.value);
|
376
|
+
}
|
377
|
+
}
|
427
378
|
},
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
379
|
+
end: item.end,
|
380
|
+
shortcut: item.shortcut,
|
381
|
+
badged: item.badged,
|
382
|
+
className: cn(
|
383
|
+
sizeStyles[size],
|
384
|
+
!item.icon && !item.label ? "hawa-px-0 hawa-py-0 focus:hawa-bg-transparent" : "focus:hawa-bg-accent",
|
385
|
+
item.presist && "focus:hawa-bg-transparent",
|
386
|
+
classNames == null ? void 0 : classNames.item
|
387
|
+
)
|
388
|
+
},
|
389
|
+
item.icon && item.icon,
|
390
|
+
item.label && item.label
|
391
|
+
);
|
392
|
+
}
|
393
|
+
})
|
394
|
+
)));
|
435
395
|
};
|
436
396
|
|
437
397
|
// layout/appTopbar/AppTopbar.tsx
|
@@ -495,15 +455,7 @@ var AppTopbar = ({ ...props }) => {
|
|
495
455
|
isRTL ? "hawa-flex-row-reverse" : "hawa-flex-row"
|
496
456
|
)
|
497
457
|
},
|
498
|
-
size > 600 ? /* @__PURE__ */ import_react2.default.createElement(
|
499
|
-
"div",
|
500
|
-
{
|
501
|
-
className: isRTL ? "hawa-text-left hawa-text-xs" : "hawa-text-right hawa-text-xs"
|
502
|
-
},
|
503
|
-
/* @__PURE__ */ import_react2.default.createElement("div", { className: "hawa-font-bold" }, props.username),
|
504
|
-
" ",
|
505
|
-
/* @__PURE__ */ import_react2.default.createElement("div", null, props.email)
|
506
|
-
) : null,
|
458
|
+
size > 600 ? /* @__PURE__ */ import_react2.default.createElement("div", { className: isRTL ? "hawa-text-left hawa-text-xs" : "hawa-text-right hawa-text-xs" }, /* @__PURE__ */ import_react2.default.createElement("div", { className: "hawa-font-bold" }, props.username), " ", /* @__PURE__ */ import_react2.default.createElement("div", null, props.email)) : null,
|
507
459
|
/* @__PURE__ */ import_react2.default.createElement(
|
508
460
|
DropdownMenu,
|
509
461
|
{
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../layout/appTopbar/index.ts","../../layout/appTopbar/AppTopbar.tsx","../../util/index.ts","../../elements/dropdownMenu/DropdownMenu.tsx"],"sourcesContent":["export * from \"./AppTopbar\";\n","import React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nimport { DropdownMenu, MenuItemType } from \"@elements/dropdownMenu\";\n\nimport { DirectionType } from \"@_types/commonTypes\";\n\ntype AppTopbarType = {\n direction?: DirectionType;\n size?: number;\n username?: string;\n email?: string;\n profileMenuItems?: MenuItemType[];\n avatarImage?: string;\n};\n\nexport const AppTopbar: React.FC<AppTopbarType> = ({ ...props }) => {\n const isRTL = props.direction === \"ltr\";\n const size = 1200;\n return (\n <div\n className={cn(\n \"hawa-fixed hawa-left-0 hawa-right-0 hawa-top-0 hawa-z-30 hawa-flex hawa-h-14 hawa-w-full hawa-items-center hawa-justify-between hawa-border-b hawa-bg-primary-foreground hawa-p-2\",\n isRTL ? \"hawa-flex-row-reverse\" : \"hawa-flex-row\",\n )}\n >\n {/* Nav Side Of Navbar */}\n {size > 600 ? (\n <div\n // className={cn(\n // \"dark:hawa-text-white\",\n // isRTL\n // ? [\n // size > 600 ? \"hawa-mr-14\" : \"hawa-mr-2\",\n // keepOpen ? \"hawa-mr-40\" : \"\",\n // ]\n // : [\n // size > 600 ? \"hawa-ml-14\" : \"hawa-ml-2\",\n // keepOpen ? \"hawa-ml-40\" : \"\",\n // ]\n // )}\n // style={\n // isRTL\n // ? {\n // marginRight: `${\n // drawerSizeStyle[keepOpen ? \"opened\" : \"closed\"][\n // drawerSize\n // ]\n // }px`,\n // }\n // : {\n // marginLeft: `${\n // drawerSizeStyle[keepOpen ? \"opened\" : \"closed\"][\n // drawerSize\n // ]\n // }px`,\n // }\n // }\n >\n {/* {props.pageTitle} */}\n page title\n </div>\n ) : (\n // Mobile Drawer Menu Button\n <div\n dir={props.direction}\n className=\"hawa-flex hawa-items-center hawa-justify-center hawa-gap-0.5\"\n >\n <div\n // onClick={() => setOpenSideMenu(true)}\n className=\"hawa-z-40 hawa-mx-1 hawa-cursor-pointer hawa-rounded hawa-p-2 hawa-transition-all hover:hawa-bg-gray-100\"\n >\n <svg\n stroke=\"currentColor\"\n fill=\"currentColor\"\n strokeWidth={0}\n viewBox=\"0 0 20 20\"\n aria-hidden=\"true\"\n height=\"1.6em\"\n width=\"1.6em\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z\"\n ></path>\n </svg>\n </div>\n {/* Mobile Page Title */}\n {/* {props.pageTitle ? (\n <div className=\"hawa-text-sm\">{props.pageTitle}</div>\n ) : (\n <div></div>\n )} */}\n Mobile title\n </div>\n )}\n\n <div\n className={cn(\n \"hawa-flex hawa-gap-2 dark:hawa-text-white\",\n isRTL ? \"hawa-flex-row-reverse\" : \"hawa-flex-row\",\n )}\n >\n {/* User Info */}\n {size > 600 ? (\n <div\n className={\n isRTL\n ? \"hawa-text-left hawa-text-xs\"\n : \"hawa-text-right hawa-text-xs\"\n }\n >\n <div className=\"hawa-font-bold\">{props.username}</div>{\" \"}\n <div>{props.email}</div>\n </div>\n ) : null}\n {/* Profile Icon & Menu */}\n <DropdownMenu\n triggerClassname=\"hawa-mx-2\"\n align=\"end\"\n alignOffset={8}\n side={\"bottom\"}\n sideOffset={5}\n // width={props.profileMenuWidth}\n direction={isRTL ? \"rtl\" : \"ltr\"}\n items={props.profileMenuItems || []}\n onItemSelect={(e: any) => console.log(\"selecting item \", e)}\n trigger={\n <div className=\"hawa-relative hawa-h-8 hawa-w-8 hawa-cursor-pointer hawa-overflow-clip hawa-rounded hawa-ring-1 hawa-ring-primary/30 dark:hawa-bg-gray-600\">\n {props.avatarImage ? (\n <img src={props.avatarImage} alt=\"User Avatar\" />\n ) : (\n <svg\n aria-label=\"Avatar Icon\"\n className=\"hawa-absolute hawa--left-1 hawa-h-10 hawa-w-10 hawa-text-gray-400\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z\"\n clipRule=\"evenodd\"\n ></path>\n </svg>\n )}\n </div>\n }\n />\n </div>\n </div>\n );\n};\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\ntype Palette = {\n name: string;\n colors: {\n [key: number]: string;\n };\n};\ntype Rgb = {\n r: number;\n g: number;\n b: number;\n};\nfunction hexToRgb(hex: string): Rgb | null {\n const sanitizedHex = hex.replaceAll(\"##\", \"#\");\n const colorParts = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(\n sanitizedHex\n );\n\n if (!colorParts) {\n return null;\n }\n\n const [, r, g, b] = colorParts;\n\n return {\n r: parseInt(r, 16),\n g: parseInt(g, 16),\n b: parseInt(b, 16)\n } as Rgb;\n}\n\nfunction rgbToHex(r: number, g: number, b: number): string {\n const toHex = (c: number) => `0${c.toString(16)}`.slice(-2);\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nexport function getTextColor(color: string): \"#FFF\" | \"#333\" {\n const rgbColor = hexToRgb(color);\n\n if (!rgbColor) {\n return \"#333\";\n }\n\n const { r, g, b } = rgbColor;\n const luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n\n return luma < 120 ? \"#FFF\" : \"#333\";\n}\n\nfunction lighten(hex: string, intensity: number): string {\n const color = hexToRgb(`#${hex}`);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r + (255 - color.r) * intensity);\n const g = Math.round(color.g + (255 - color.g) * intensity);\n const b = Math.round(color.b + (255 - color.b) * intensity);\n\n return rgbToHex(r, g, b);\n}\n\nfunction darken(hex: string, intensity: number): string {\n const color = hexToRgb(hex);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r * intensity);\n const g = Math.round(color.g * intensity);\n const b = Math.round(color.b * intensity);\n\n return rgbToHex(r, g, b);\n}\nconst parseColor = (color: any) => {\n if (color.startsWith(\"#\")) {\n // Convert hex to RGB\n let r = parseInt(color.slice(1, 3), 16);\n let g = parseInt(color.slice(3, 5), 16);\n let b = parseInt(color.slice(5, 7), 16);\n return [r, g, b];\n } else if (color.startsWith(\"rgb\")) {\n // Extract RGB values from rgb() format\n return color.match(/\\d+/g).map(Number);\n }\n // Default to white if format is unrecognized\n return [255, 255, 255];\n};\nexport const calculateLuminance = (color: any) => {\n const [r, g, b] = parseColor(color)?.map((c: any) => {\n c /= 255;\n return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;\n });\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nfunction getPallette(baseColor: string): Palette {\n const name = baseColor;\n\n const response: Palette = {\n name,\n colors: {\n 500: `#${baseColor}`.replace(\"##\", \"#\")\n }\n };\n\n const intensityMap: {\n [key: number]: number;\n } = {\n 50: 0.95,\n 100: 0.9,\n 200: 0.75,\n 300: 0.6,\n 400: 0.3,\n 600: 0.9,\n 700: 0.75,\n 800: 0.6,\n 900: 0.49\n };\n\n [50, 100, 200, 300, 400].forEach((level) => {\n response.colors[level] = lighten(baseColor, intensityMap[level]);\n });\n [600, 700, 800, 900].forEach((level) => {\n response.colors[level] = darken(baseColor, intensityMap[level]);\n });\n\n return response as Palette;\n}\n\nexport { getPallette };\n\n// const hexToRgb = (hex) => {\n// let d = hex?.split(\"#\")[1];\n// var aRgbHex = d?.match(/.{1,2}/g);\n// var aRgb = [\n// parseInt(aRgbHex[0], 16),\n// parseInt(aRgbHex[1], 16),\n// parseInt(aRgbHex[2], 16)\n// ];\n// return aRgb;\n// };\n// const getTextColor = (backColor) => {\n// let rgbArray = hexToRgb(backColor);\n// if (rgbArray[0] * 0.299 + rgbArray[1] * 0.587 + rgbArray[2] * 0.114 > 186) {\n// return \"#000000\";\n// } else {\n// return \"#ffffff\";\n// }\n// };\n// const replaceAt = function (string, index, replacement) {\n// // if (replacement == \"\" || replacement == \" \") {\n// // return (\n// // string.substring(0, index) +\n// // string.substring(index + replacement.length )\n// // );\n// // }\n// const replaced = string.substring(0, index) + replacement + string.substring(index + 1)\n// return replaced\n// };\n\n// export { hexToRgb, getTextColor, replaceAt };\n","import * as React from \"react\";\n\nimport { Portal } from \"@headlessui/react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { cn } from \"@util/index\";\n\nimport { DirectionType, RadioOptionType } from \"../../types/commonTypes\";\n\nconst DropdownMenuRoot = DropdownMenuPrimitive.Root;\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"hawa-flex hawa-cursor-default hawa-select-none hawa-items-center hawa-justify-between hawa-rounded-sm hawa-text-sm hawa-outline-none focus:hawa-bg-accent data-[state=open]:hawa-bg-accent\",\n inset && \"hawa-pl-8\",\n className,\n )}\n {...props}\n >\n <div className=\"hawa-flex hawa-flex-row hawa-items-center hawa-gap-2\">\n {children}\n </div>{\" \"}\n <svg\n aria-label=\"Chevron Right Icon\"\n stroke=\"currentColor\"\n fill=\"currentColor\"\n strokeWidth=\"0\"\n viewBox=\"0 0 16 16\"\n height=\"1em\"\n width=\"1em\"\n className={cn(props.dir === \"rtl\" ? \"hawa-rotate-180\" : \"\")}\n >\n <path\n fillRule=\"evenodd\"\n 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\"\n ></path>\n </svg>\n </DropdownMenuPrimitive.SubTrigger>\n));\nDropdownMenuSubTrigger.displayName =\n DropdownMenuPrimitive.SubTrigger.displayName;\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"hawa-z-50 hawa-min-w-[8rem] hawa-gap-1 hawa-overflow-hidden hawa-rounded-md hawa-border hawa-bg-popover hawa-p-1 hawa-text-popover-foreground hawa-shadow-lg data-[state=open]:hawa-animate-in data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=open]:hawa-fade-in-0 data-[state=closed]:hawa-zoom-out-95 data-[state=open]:hawa-zoom-in-95 data-[side=bottom]:hawa-slide-in-from-top-2 data-[side=left]:hawa-slide-in-from-right-2 data-[side=right]:hawa-slide-in-from-left-2 data-[side=top]:hawa-slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuSubContent.displayName =\n DropdownMenuPrimitive.SubContent.displayName;\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"hawa-z-50 hawa-overflow-hidden hawa-rounded-md hawa-border hawa-bg-popover hawa-p-1 hawa-text-popover-foreground hawa-shadow-md data-[state=open]:hawa-animate-in data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=open]:hawa-fade-in-0 data-[state=closed]:hawa-zoom-out-95 data-[state=open]:hawa-zoom-in-95 data-[side=bottom]:hawa-slide-in-from-top-2 data-[side=left]:hawa-slide-in-from-right-2 data-[side=right]:hawa-slide-in-from-left-2 data-[side=top]:hawa-slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n </Portal>\n));\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n end?: any;\n shortcut?: React.ReactNode;\n badged?: boolean;\n slug?: string;\n LinkComponent?: any;\n }\n>(({ className, inset, badged, slug, LinkComponent = \"a\", ...props }, ref) => {\n return (\n <LinkComponent href={slug}>\n <DropdownMenuPrimitive.Item\n disabled={props.disabled}\n ref={ref}\n className={cn(\n \"hawa-relative hawa-flex hawa-cursor-pointer hawa-select-none hawa-items-center hawa-justify-between hawa-rounded-sm hawa-text-sm hawa-outline-none hawa-transition-colors focus:hawa-text-accent-foreground data-[disabled]:hawa-pointer-events-none data-[disabled]:hawa-opacity-50\",\n inset && \"hawa-pl-8\",\n props.end &&\n Array.isArray(props.children) &&\n props.children[1] &&\n \"hawa-gap-6\",\n className,\n )}\n {...props}\n >\n <div className=\"hawa-flex hawa-flex-row hawa-items-center hawa-gap-2\">\n {props.children}\n </div>\n\n {props.end && props.end}\n {!props.end && props.shortcut && (\n <DropdownMenuShortcut>{props.shortcut}</DropdownMenuShortcut>\n )}\n {!props.end && badged && (\n <div className=\"hawa-h-3 hawa-w-3 hawa-rounded-full hawa-bg-red-500\" />\n )}\n </DropdownMenuPrimitive.Item>\n </LinkComponent>\n );\n});\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"hawa-relative hawa-flex hawa-cursor-default hawa-select-none hawa-items-center hawa-rounded-sm hawa-py-1.5 hawa-pl-8 hawa-pr-2 hawa-text-sm hawa-outline-none hawa-transition-colors focus:hawa-bg-accent focus:hawa-text-accent-foreground data-[disabled]:hawa-pointer-events-none data-[disabled]:hawa-opacity-50\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"hawa-absolute hawa-left-2 hawa-flex hawa-h-3.5 hawa-w-3.5 hawa-items-center hawa-justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n {/* <Check className=\"h-4 w-4\" /> */}\n <svg\n aria-label=\"Check Mark\"\n stroke=\"currentColor\"\n fill=\"currentColor\"\n strokeWidth=\"0\"\n viewBox=\"0 0 512 512\"\n height=\"0.60em\"\n width=\"0.60em\"\n >\n <path d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"></path>\n </svg>{\" \"}\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n));\nDropdownMenuCheckboxItem.displayName =\n DropdownMenuPrimitive.CheckboxItem.displayName;\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"hawa-relative hawa-flex hawa-cursor-pointer hawa-select-none hawa-items-center hawa-rounded-sm hawa-py-1.5 hawa-pl-8 hawa-pr-2 hawa-text-sm hawa-outline-none hawa-transition-colors focus:hawa-bg-accent focus:hawa-text-accent-foreground data-[disabled]:hawa-pointer-events-none data-[disabled]:hawa-opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"hawa-absolute hawa-left-2 hawa-flex hawa-h-3.5 hawa-w-3.5 hawa-items-center hawa-justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n aria-label=\"Circle\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"hawa-h-2 hawa-w-2 hawa-fill-current\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n </svg>\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n));\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"hawa-px-2 hawa-py-1.5 hawa-text-sm hawa-font-semibold\",\n inset && \"hawa-pl-8\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn(\"hawa--mx-1 hawa-my-1 hawa-h-px hawa-bg-muted\", className)}\n {...props}\n />\n));\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\n\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n \"hawa-text-xs hawa-tracking-widest hawa-opacity-60\",\n className,\n )}\n {...props}\n />\n );\n};\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\ntype ExtendedDropdownMenuContentProps = Partial<\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n> & {\n // Add any additional types or overrides here, for example:\n // side?: \"left\" | \"right\" | \"top\" | \"bottom\"\n};\ntype ExtendedDropdownMenuTriggerProps = Partial<\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Trigger>\n> & {\n // Add any additional types or overrides here, for example:\n // side?: \"left\" | \"right\" | \"top\" | \"bottom\"\n};\n\nexport type SubItem = {\n label?: string;\n value?: any;\n icon?: any;\n action?: () => void;\n onMiddleClick?: (e: any) => void;\n highlighted?: boolean;\n disabled?: boolean;\n slug?: string;\n};\nexport type MenuItemType = {\n icon?: React.ReactNode;\n label?: string;\n shortcut?: React.ReactNode;\n badged?: boolean;\n value?: any;\n content?: any;\n slug?: string;\n end?: any;\n presist?: boolean;\n itemType?: \"separator\" | \"label\" | \"custom\" | \"radio\";\n action?: () => void;\n highlighted?: boolean;\n subitems?: SubItem[];\n options?: RadioOptionType[];\n currentOption?: string;\n onOptionChange?: (value: string) => void;\n disabled?: boolean;\n onMiddleClick?: (e: any) => void;\n onClick?: any;\n};\ninterface DropdownMenuProps {\n trigger?: any;\n items: MenuItemType[];\n direction?: DirectionType;\n classNames?: {\n trigger?: string;\n content?: string;\n item?: string;\n separator?: string;\n };\n className?: ExtendedDropdownMenuContentProps[\"className\"];\n triggerClassname?: ExtendedDropdownMenuTriggerProps[\"className\"];\n triggerProps?: DropdownMenuPrimitive.DropdownMenuTriggerProps;\n sideOffset?: ExtendedDropdownMenuContentProps[\"sideOffset\"];\n side?: ExtendedDropdownMenuContentProps[\"side\"];\n align?: ExtendedDropdownMenuContentProps[\"align\"];\n alignOffset?: ExtendedDropdownMenuContentProps[\"alignOffset\"];\n contentProps?: ExtendedDropdownMenuContentProps;\n width?: \"default\" | \"sm\" | \"lg\" | \"parent\";\n size?: \"default\" | \"sm\";\n onItemSelect?: any;\n onOpenChange?: any;\n header?: React.ReactNode;\n open?: any;\n LinkComponent?: any;\n}\nconst DropdownMenu: React.FC<DropdownMenuProps> = ({\n trigger,\n items,\n direction,\n sideOffset,\n side,\n className,\n classNames,\n contentProps,\n triggerClassname,\n triggerProps,\n align,\n alignOffset,\n onItemSelect,\n size = \"default\",\n width = \"default\",\n header,\n onOpenChange,\n open,\n LinkComponent,\n}) => {\n const widthStyles = {\n default: \"hawa-min-w-[8rem]\",\n sm: \"hawa-w-fit\",\n lg: \"hawa-w-[200px]\",\n parent: \"ddm-w-parent\",\n };\n const sizeStyles = {\n default: \"hawa-px-2 hawa-py-3 \",\n sm: \"hawa-text-xs hawa-px-1.5 hawa-py-1.5 \",\n };\n let [values, setValues] = React.useState(\n items.map((item) => item.currentOption),\n );\n\n return (\n <DropdownMenuRoot\n onOpenChange={onOpenChange}\n open={open}\n modal={false}\n dir={direction}\n >\n <DropdownMenuTrigger\n asChild\n className={cn(classNames?.trigger, triggerClassname)}\n {...triggerProps}\n >\n {trigger}\n </DropdownMenuTrigger>\n <Portal>\n <DropdownMenuContent\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n className={cn(\n className,\n classNames?.content,\n widthStyles[width],\n \"hawa-flex hawa-flex-col hawa-gap-1 hawa-overflow-y-auto\",\n )}\n style={{\n maxHeight: \"var(--radix-dropdown-menu-content-available-height)\",\n }}\n {...contentProps}\n >\n {header && header}\n {items &&\n items.map((item, index) => {\n const ItemLinkComponent = item.slug ? LinkComponent : \"a\";\n if (item.itemType === \"separator\") {\n return (\n <DropdownMenuSeparator\n key={index}\n className={classNames?.separator}\n />\n );\n } else if (item.itemType === \"label\") {\n return (\n <DropdownMenuLabel key={index}>\n {item.label}\n </DropdownMenuLabel>\n );\n } else if (item.itemType === \"radio\") {\n let dd = item.currentOption;\n return (\n <DropdownMenuSub key={index}>\n <DropdownMenuSubTrigger\n dir={direction}\n className={cn(sizeStyles[size])}\n >\n {item.icon && item.icon}\n {item.label && item.label}\n </DropdownMenuSubTrigger>\n <DropdownMenuSubContent>\n <DropdownMenuRadioGroup\n value={values[index]}\n onValueChange={(e) => {\n let newValues = [...values];\n newValues[index] = e;\n setValues(newValues);\n console.log(\"changing to \", e);\n if (item.onOptionChange) {\n item.onOptionChange(e);\n }\n }}\n >\n {item.options?.map((opt, i) => (\n <DropdownMenuRadioItem key={i} value={opt.value}>\n {opt.label}\n </DropdownMenuRadioItem>\n ))}\n </DropdownMenuRadioGroup>\n </DropdownMenuSubContent>\n </DropdownMenuSub>\n );\n } else if (item.itemType === \"custom\") {\n return <div key={index}>{item.content}</div>;\n } else {\n return item.subitems ? (\n <DropdownMenuSub key={index}>\n <DropdownMenuSubTrigger\n dir={direction}\n className={cn(sizeStyles[size])}\n >\n {item.icon && item.icon}\n {item.label && item.label}\n </DropdownMenuSubTrigger>\n <Portal>\n <DropdownMenuSubContent>\n {item.subitems.map((subitem, subIndex) => {\n const SubitemLinkComponent = subitem.slug\n ? LinkComponent\n : \"a\";\n return (\n <DropdownMenuItem\n key={subIndex}\n LinkComponent={SubitemLinkComponent}\n slug={subitem.slug}\n disabled={subitem.disabled}\n className={cn(\n sizeStyles[size],\n !item.icon && !item.label\n ? \"hawa-px-0 hawa-py-0 focus:hawa-bg-transparent\"\n : \"focus:hawa-bg-accent\",\n )}\n onMouseDown={(event: any) => {\n if (\n event.button === 1 ||\n (event.button === 0 && event.ctrlKey)\n ) {\n event.preventDefault(); // This line prevents the default behavior of the middle button\n if (subitem.onMiddleClick) {\n subitem.onMiddleClick(item.value);\n }\n }\n }}\n onSelect={() => {\n subitem.action && subitem.action();\n if (onItemSelect) {\n onItemSelect(subitem.value);\n }\n }}\n >\n {subitem.icon && subitem.icon}\n {subitem.label && subitem.label}\n </DropdownMenuItem>\n );\n })}\n </DropdownMenuSubContent>\n </Portal>\n </DropdownMenuSub>\n ) : (\n <DropdownMenuItem\n LinkComponent={ItemLinkComponent}\n slug={item.slug}\n key={index}\n disabled={item.disabled}\n onMouseDown={(event: any) => {\n if (\n event.button === 1 ||\n (event.button === 0 && event.ctrlKey)\n ) {\n event.preventDefault(); // This line prevents the default behavior of the middle button\n if (item.onMiddleClick) {\n item.onMiddleClick(item.value);\n }\n }\n }}\n onClick={(event: any) => {\n if (item.onClick) {\n item.onClick(item.value);\n }\n }}\n onSelect={(e) => {\n if (item.presist) {\n e.preventDefault();\n }\n if (item.action) {\n item.action();\n if (onItemSelect) {\n onItemSelect(item.value);\n }\n } else {\n if (onItemSelect) {\n onItemSelect(item.value);\n }\n }\n }}\n end={item.end}\n shortcut={item.shortcut}\n badged={item.badged}\n className={cn(\n sizeStyles[size],\n !item.icon && !item.label\n ? \"hawa-px-0 hawa-py-0 focus:hawa-bg-transparent\"\n : \"focus:hawa-bg-accent\",\n item.presist && \"focus:hawa-bg-transparent\",\n classNames?.item,\n )}\n >\n {item.icon && item.icon}\n {item.label && item.label}\n </DropdownMenuItem>\n );\n }\n })}\n </DropdownMenuContent>\n </Portal>\n </DropdownMenuRoot>\n );\n};\n\ninterface DropdownMenuRadioOptionType extends RadioOptionType {\n props?: Omit<DropdownMenuPrimitive.DropdownMenuItemProps, \"value\" | \"label\">;\n}\n\ninterface DropdownMenuRadioProps {\n trigger?: React.ReactNode;\n side?: ExtendedDropdownMenuContentProps[\"side\"];\n align?: ExtendedDropdownMenuContentProps[\"align\"];\n options: DropdownMenuRadioOptionType[];\n value: string;\n onValueChange: any;\n label?: string;\n contentProps?: ExtendedDropdownMenuContentProps;\n radioGroupProps?: React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.RadioGroup\n >;\n}\nconst DropdownMenuRadio: React.FC<DropdownMenuRadioProps> = (props) => {\n const ariaLabel = props.label ? `${props.label} radio group` : undefined;\n const ariaLabelledby = props.label ? `${props.label}-label` : undefined;\n\n return (\n <DropdownMenuRoot>\n <DropdownMenuTrigger asChild>{props.trigger}</DropdownMenuTrigger>\n <DropdownMenuContent\n align={props.align}\n side={props.side}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n {...props.contentProps}\n >\n {props.label && (\n <>\n <DropdownMenuLabel id={`${props.label}-label`}>\n {props.label}\n </DropdownMenuLabel>\n <DropdownMenuSeparator />\n </>\n )}\n <DropdownMenuRadioGroup\n value={props.value}\n onValueChange={props.onValueChange}\n {...props.radioGroupProps}\n >\n {props.options.map((opt, i) => (\n <DropdownMenuRadioItem\n key={i}\n {...opt.props}\n value={opt.value}\n aria-checked={props.value === opt.value}\n >\n {opt.label}\n </DropdownMenuRadioItem>\n ))}\n </DropdownMenuRadioGroup>\n </DropdownMenuContent>\n </DropdownMenuRoot>\n );\n};\n\nexport {\n DropdownMenu,\n DropdownMenuRoot,\n DropdownMenuRadio,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n Portal as DropdownMenuPortal,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,IAAAA,gBAAkB;;;ACAlB,kBAAsC;AACtC,4BAAwB;AAEjB,SAAS,MAAM,QAAsB;AAC1C,aAAO,mCAAQ,kBAAK,MAAM,CAAC;AAC7B;;;ACLA,YAAuB;AAEvB,mBAAuB;AACvB,4BAAuC;AAKvC,IAAM,mBAAyC;AAC/C,IAAM,sBAA4C;AAElD,IAAM,kBAAwC;AAC9C,IAAM,yBAA+C;AAErD,IAAM,yBAA+B,iBAKnC,CAAC,EAAE,WAAW,OAAO,UAAU,GAAG,MAAM,GAAG,QAC3C;AAAA,EAAuB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA,SAAS;AAAA,MACT;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AAAA,EAEJ,oCAAC,SAAI,WAAU,0DACZ,QACH;AAAA,EAAO;AAAA,EACP;AAAA,IAAC;AAAA;AAAA,MACC,cAAW;AAAA,MACX,QAAO;AAAA,MACP,MAAK;AAAA,MACL,aAAY;AAAA,MACZ,SAAQ;AAAA,MACR,QAAO;AAAA,MACP,OAAM;AAAA,MACN,WAAW,GAAG,MAAM,QAAQ,QAAQ,oBAAoB,EAAE;AAAA;AAAA,IAE1D;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,GAAE;AAAA;AAAA,IACH;AAAA,EACH;AACF,CACD;AACD,uBAAuB,cACC,iCAAW;AAEnC,IAAM,yBAA+B,iBAGnC,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAuB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,uBAAuB,cACC,iCAAW;AAEnC,IAAM,sBAA4B,iBAGhC,CAAC,EAAE,WAAW,aAAa,GAAG,GAAG,MAAM,GAAG,QAC1C,oCAAC,2BACC;AAAA,EAAuB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACF,CACD;AACD,oBAAoB,cAAoC,8BAAQ;AAEhE,IAAM,mBAAyB,iBAU7B,CAAC,EAAE,WAAW,OAAO,QAAQ,MAAM,gBAAgB,KAAK,GAAG,MAAM,GAAG,QAAQ;AAC5E,SACE,oCAAC,iBAAc,MAAM,QACnB;AAAA,IAAuB;AAAA,IAAtB;AAAA,MACC,UAAU,MAAM;AAAA,MAChB;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA,SAAS;AAAA,QACT,MAAM,OACJ,MAAM,QAAQ,MAAM,QAAQ,KAC5B,MAAM,SAAS,CAAC,KAChB;AAAA,QACF;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,IAEJ,oCAAC,SAAI,WAAU,0DACZ,MAAM,QACT;AAAA,IAEC,MAAM,OAAO,MAAM;AAAA,IACnB,CAAC,MAAM,OAAO,MAAM,YACnB,oCAAC,4BAAsB,MAAM,QAAS;AAAA,IAEvC,CAAC,MAAM,OAAO,UACb,oCAAC,SAAI,WAAU,uDAAsD;AAAA,EAEzE,CACF;AAEJ,CAAC;AACD,iBAAiB,cAAoC,2BAAK;AAE1D,IAAM,2BAAiC,iBAGrC,CAAC,EAAE,WAAW,UAAU,SAAS,GAAG,MAAM,GAAG,QAC7C;AAAA,EAAuB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,IACC,GAAG;AAAA;AAAA,EAEJ,oCAAC,UAAK,WAAU,qGACd,oCAAuB,qCAAtB,MAEC;AAAA,IAAC;AAAA;AAAA,MACC,cAAW;AAAA,MACX,QAAO;AAAA,MACP,MAAK;AAAA,MACL,aAAY;AAAA,MACZ,SAAQ;AAAA,MACR,QAAO;AAAA,MACP,OAAM;AAAA;AAAA,IAEN,oCAAC,UAAK,GAAE,sRAAqR;AAAA,EAC/R,GAAO,GACT,CACF;AAAA,EACC;AACH,CACD;AACD,yBAAyB,cACD,mCAAa;AAErC,IAAM,wBAA8B,iBAGlC,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QACpC;AAAA,EAAuB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AAAA,EAEJ,oCAAC,UAAK,WAAU,qGACd,oCAAuB,qCAAtB,MACC;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,OAAM;AAAA,MACN,cAAW;AAAA,MACX,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,QAAO;AAAA,MACP,aAAY;AAAA,MACZ,eAAc;AAAA,MACd,gBAAe;AAAA,MACf,WAAU;AAAA;AAAA,IAEV,oCAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,MAAK;AAAA,EACjC,CACF,CACF;AAAA,EACC;AACH,CACD;AACD,sBAAsB,cAAoC,gCAAU;AAEpE,IAAM,oBAA0B,iBAK9B,CAAC,EAAE,WAAW,OAAO,GAAG,MAAM,GAAG,QACjC;AAAA,EAAuB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA,SAAS;AAAA,MACT;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,kBAAkB,cAAoC,4BAAM;AAE5D,IAAM,wBAA8B,iBAGlC,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAuB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA,WAAW,GAAG,gDAAgD,SAAS;AAAA,IACtE,GAAG;AAAA;AACN,CACD;AACD,sBAAsB,cAAoC,gCAAU;AAEpE,IAAM,uBAAuB,CAAC;AAAA,EAC5B;AAAA,EACA,GAAG;AACL,MAA6C;AAC3C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,qBAAqB,cAAc;AAwEnC,IAAM,eAA4C,CAAC;AAAA,EACjD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,cAAc;AAAA,IAClB,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,QAAQ;AAAA,EACV;AACA,QAAM,aAAa;AAAA,IACjB,SAAS;AAAA,IACT,IAAI;AAAA,EACN;AACA,MAAI,CAAC,QAAQ,SAAS,IAAU;AAAA,IAC9B,MAAM,IAAI,CAAC,SAAS,KAAK,aAAa;AAAA,EACxC;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP,KAAK;AAAA;AAAA,IAEL;AAAA,MAAC;AAAA;AAAA,QACC,SAAO;AAAA,QACP,WAAW,GAAG,yCAAY,SAAS,gBAAgB;AAAA,QAClD,GAAG;AAAA;AAAA,MAEH;AAAA,IACH;AAAA,IACA,oCAAC,2BACC;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAW;AAAA,UACT;AAAA,UACA,yCAAY;AAAA,UACZ,YAAY,KAAK;AAAA,UACjB;AAAA,QACF;AAAA,QACA,OAAO;AAAA,UACL,WAAW;AAAA,QACb;AAAA,QACC,GAAG;AAAA;AAAA,MAEH,UAAU;AAAA,MACV,SACC,MAAM,IAAI,CAAC,MAAM,UAAU;AAjYvC;AAkYc,cAAM,oBAAoB,KAAK,OAAO,gBAAgB;AACtD,YAAI,KAAK,aAAa,aAAa;AACjC,iBACE;AAAA,YAAC;AAAA;AAAA,cACC,KAAK;AAAA,cACL,WAAW,yCAAY;AAAA;AAAA,UACzB;AAAA,QAEJ,WAAW,KAAK,aAAa,SAAS;AACpC,iBACE,oCAAC,qBAAkB,KAAK,SACrB,KAAK,KACR;AAAA,QAEJ,WAAW,KAAK,aAAa,SAAS;AACpC,cAAI,KAAK,KAAK;AACd,iBACE,oCAAC,mBAAgB,KAAK,SACpB;AAAA,YAAC;AAAA;AAAA,cACC,KAAK;AAAA,cACL,WAAW,GAAG,WAAW,IAAI,CAAC;AAAA;AAAA,YAE7B,KAAK,QAAQ,KAAK;AAAA,YAClB,KAAK,SAAS,KAAK;AAAA,UACtB,GACA,oCAAC,8BACC;AAAA,YAAC;AAAA;AAAA,cACC,OAAO,OAAO,KAAK;AAAA,cACnB,eAAe,CAAC,MAAM;AACpB,oBAAI,YAAY,CAAC,GAAG,MAAM;AAC1B,0BAAU,KAAK,IAAI;AACnB,0BAAU,SAAS;AACnB,wBAAQ,IAAI,gBAAgB,CAAC;AAC7B,oBAAI,KAAK,gBAAgB;AACvB,uBAAK,eAAe,CAAC;AAAA,gBACvB;AAAA,cACF;AAAA;AAAA,aAEC,UAAK,YAAL,mBAAc,IAAI,CAAC,KAAK,MACvB,oCAAC,yBAAsB,KAAK,GAAG,OAAO,IAAI,SACvC,IAAI,KACP;AAAA,UAEJ,CACF,CACF;AAAA,QAEJ,WAAW,KAAK,aAAa,UAAU;AACrC,iBAAO,oCAAC,SAAI,KAAK,SAAQ,KAAK,OAAQ;AAAA,QACxC,OAAO;AACL,iBAAO,KAAK,WACV,oCAAC,mBAAgB,KAAK,SACpB;AAAA,YAAC;AAAA;AAAA,cACC,KAAK;AAAA,cACL,WAAW,GAAG,WAAW,IAAI,CAAC;AAAA;AAAA,YAE7B,KAAK,QAAQ,KAAK;AAAA,YAClB,KAAK,SAAS,KAAK;AAAA,UACtB,GACA,oCAAC,2BACC,oCAAC,8BACE,KAAK,SAAS,IAAI,CAAC,SAAS,aAAa;AACxC,kBAAM,uBAAuB,QAAQ,OACjC,gBACA;AACJ,mBACE;AAAA,cAAC;AAAA;AAAA,gBACC,KAAK;AAAA,gBACL,eAAe;AAAA,gBACf,MAAM,QAAQ;AAAA,gBACd,UAAU,QAAQ;AAAA,gBAClB,WAAW;AAAA,kBACT,WAAW,IAAI;AAAA,kBACf,CAAC,KAAK,QAAQ,CAAC,KAAK,QAChB,kDACA;AAAA,gBACN;AAAA,gBACA,aAAa,CAAC,UAAe;AAC3B,sBACE,MAAM,WAAW,KAChB,MAAM,WAAW,KAAK,MAAM,SAC7B;AACA,0BAAM,eAAe;AACrB,wBAAI,QAAQ,eAAe;AACzB,8BAAQ,cAAc,KAAK,KAAK;AAAA,oBAClC;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,UAAU,MAAM;AACd,0BAAQ,UAAU,QAAQ,OAAO;AACjC,sBAAI,cAAc;AAChB,iCAAa,QAAQ,KAAK;AAAA,kBAC5B;AAAA,gBACF;AAAA;AAAA,cAEC,QAAQ,QAAQ,QAAQ;AAAA,cACxB,QAAQ,SAAS,QAAQ;AAAA,YAC5B;AAAA,UAEJ,CAAC,CACH,CACF,CACF,IAEA;AAAA,YAAC;AAAA;AAAA,cACC,eAAe;AAAA,cACf,MAAM,KAAK;AAAA,cACX,KAAK;AAAA,cACL,UAAU,KAAK;AAAA,cACf,aAAa,CAAC,UAAe;AAC3B,oBACE,MAAM,WAAW,KAChB,MAAM,WAAW,KAAK,MAAM,SAC7B;AACA,wBAAM,eAAe;AACrB,sBAAI,KAAK,eAAe;AACtB,yBAAK,cAAc,KAAK,KAAK;AAAA,kBAC/B;AAAA,gBACF;AAAA,cACF;AAAA,cACA,SAAS,CAAC,UAAe;AACvB,oBAAI,KAAK,SAAS;AAChB,uBAAK,QAAQ,KAAK,KAAK;AAAA,gBACzB;AAAA,cACF;AAAA,cACA,UAAU,CAAC,MAAM;AACf,oBAAI,KAAK,SAAS;AAChB,oBAAE,eAAe;AAAA,gBACnB;AACA,oBAAI,KAAK,QAAQ;AACf,uBAAK,OAAO;AACZ,sBAAI,cAAc;AAChB,iCAAa,KAAK,KAAK;AAAA,kBACzB;AAAA,gBACF,OAAO;AACL,sBAAI,cAAc;AAChB,iCAAa,KAAK,KAAK;AAAA,kBACzB;AAAA,gBACF;AAAA,cACF;AAAA,cACA,KAAK,KAAK;AAAA,cACV,UAAU,KAAK;AAAA,cACf,QAAQ,KAAK;AAAA,cACb,WAAW;AAAA,gBACT,WAAW,IAAI;AAAA,gBACf,CAAC,KAAK,QAAQ,CAAC,KAAK,QAChB,kDACA;AAAA,gBACJ,KAAK,WAAW;AAAA,gBAChB,yCAAY;AAAA,cACd;AAAA;AAAA,YAEC,KAAK,QAAQ,KAAK;AAAA,YAClB,KAAK,SAAS,KAAK;AAAA,UACtB;AAAA,QAEJ;AAAA,MACF,CAAC;AAAA,IACL,CACF;AAAA,EACF;AAEJ;;;AFnhBO,IAAM,YAAqC,CAAC,EAAE,GAAG,MAAM,MAAM;AAClE,QAAM,QAAQ,MAAM,cAAc;AAClC,QAAM,OAAO;AACb,SACE,8BAAAC,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,QAAQ,0BAA0B;AAAA,MACpC;AAAA;AAAA,IAGC,OAAO,MACN,8BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,MA+B0B;AAAA,IAE3B;AAAA;AAAA,MAGA,8BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,KAAK,MAAM;AAAA,UACX,WAAU;AAAA;AAAA,QAEV,8BAAAA,QAAA;AAAA,UAAC;AAAA;AAAA,YAEC,WAAU;AAAA;AAAA,UAEV,8BAAAA,QAAA;AAAA,YAAC;AAAA;AAAA,cACC,QAAO;AAAA,cACP,MAAK;AAAA,cACL,aAAa;AAAA,cACb,SAAQ;AAAA,cACR,eAAY;AAAA,cACZ,QAAO;AAAA,cACP,OAAM;AAAA;AAAA,YAEN,8BAAAA,QAAA;AAAA,cAAC;AAAA;AAAA,gBACC,UAAS;AAAA,gBACT,UAAS;AAAA,gBACT,GAAE;AAAA;AAAA,YACH;AAAA,UACH;AAAA,QACF;AAAA,QAMQ;AAAA,MAEV;AAAA;AAAA,IAGF,8BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,QAAQ,0BAA0B;AAAA,QACpC;AAAA;AAAA,MAGC,OAAO,MACN,8BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,WACE,QACI,gCACA;AAAA;AAAA,QAGN,8BAAAA,QAAA,cAAC,SAAI,WAAU,oBAAkB,MAAM,QAAS;AAAA,QAAO;AAAA,QACvD,8BAAAA,QAAA,cAAC,aAAK,MAAM,KAAM;AAAA,MACpB,IACE;AAAA,MAEJ,8BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,kBAAiB;AAAA,UACjB,OAAM;AAAA,UACN,aAAa;AAAA,UACb,MAAM;AAAA,UACN,YAAY;AAAA,UAEZ,WAAW,QAAQ,QAAQ;AAAA,UAC3B,OAAO,MAAM,oBAAoB,CAAC;AAAA,UAClC,cAAc,CAAC,MAAW,QAAQ,IAAI,mBAAmB,CAAC;AAAA,UAC1D,SACE,8BAAAA,QAAA,cAAC,SAAI,WAAU,gJACZ,MAAM,cACL,8BAAAA,QAAA,cAAC,SAAI,KAAK,MAAM,aAAa,KAAI,eAAc,IAE/C,8BAAAA,QAAA;AAAA,YAAC;AAAA;AAAA,cACC,cAAW;AAAA,cACX,WAAU;AAAA,cACV,MAAK;AAAA,cACL,SAAQ;AAAA;AAAA,YAER,8BAAAA,QAAA;AAAA,cAAC;AAAA;AAAA,gBACC,UAAS;AAAA,gBACT,GAAE;AAAA,gBACF,UAAS;AAAA;AAAA,YACV;AAAA,UACH,CAEJ;AAAA;AAAA,MAEJ;AAAA,IACF;AAAA,EACF;AAEJ;","names":["import_react","React"]}
|
1
|
+
{"version":3,"sources":["../../layout/appTopbar/index.ts","../../layout/appTopbar/AppTopbar.tsx","../../util/index.ts","../../elements/dropdownMenu/DropdownMenu.tsx"],"sourcesContent":["export * from \"./AppTopbar\";\n","import React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nimport { DropdownMenu, MenuItemType } from \"@elements/dropdownMenu\";\n\nimport { DirectionType } from \"@_types/commonTypes\";\n\ntype AppTopbarType = {\n direction?: DirectionType;\n size?: number;\n username?: string;\n email?: string;\n profileMenuItems?: MenuItemType[];\n avatarImage?: string;\n};\n\nexport const AppTopbar: React.FC<AppTopbarType> = ({ ...props }) => {\n const isRTL = props.direction === \"ltr\";\n const size = 1200;\n return (\n <div\n className={cn(\n \"hawa-fixed hawa-left-0 hawa-right-0 hawa-top-0 hawa-z-30 hawa-flex hawa-h-14 hawa-w-full hawa-items-center hawa-justify-between hawa-border-b hawa-bg-primary-foreground hawa-p-2\",\n isRTL ? \"hawa-flex-row-reverse\" : \"hawa-flex-row\",\n )}\n >\n {/* Nav Side Of Navbar */}\n {size > 600 ? (\n <div\n // className={cn(\n // \"dark:hawa-text-white\",\n // isRTL\n // ? [\n // size > 600 ? \"hawa-mr-14\" : \"hawa-mr-2\",\n // keepOpen ? \"hawa-mr-40\" : \"\",\n // ]\n // : [\n // size > 600 ? \"hawa-ml-14\" : \"hawa-ml-2\",\n // keepOpen ? \"hawa-ml-40\" : \"\",\n // ]\n // )}\n // style={\n // isRTL\n // ? {\n // marginRight: `${\n // drawerSizeStyle[keepOpen ? \"opened\" : \"closed\"][\n // drawerSize\n // ]\n // }px`,\n // }\n // : {\n // marginLeft: `${\n // drawerSizeStyle[keepOpen ? \"opened\" : \"closed\"][\n // drawerSize\n // ]\n // }px`,\n // }\n // }\n >\n {/* {props.pageTitle} */}\n page title\n </div>\n ) : (\n // Mobile Drawer Menu Button\n <div\n dir={props.direction}\n className=\"hawa-flex hawa-items-center hawa-justify-center hawa-gap-0.5\"\n >\n <div\n // onClick={() => setOpenSideMenu(true)}\n className=\"hawa-z-40 hawa-mx-1 hawa-cursor-pointer hawa-rounded hawa-p-2 hawa-transition-all hover:hawa-bg-gray-100\"\n >\n <svg\n stroke=\"currentColor\"\n fill=\"currentColor\"\n strokeWidth={0}\n viewBox=\"0 0 20 20\"\n aria-hidden=\"true\"\n height=\"1.6em\"\n width=\"1.6em\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z\"\n ></path>\n </svg>\n </div>\n {/* Mobile Page Title */}\n {/* {props.pageTitle ? (\n <div className=\"hawa-text-sm\">{props.pageTitle}</div>\n ) : (\n <div></div>\n )} */}\n Mobile title\n </div>\n )}\n\n <div\n className={cn(\n \"hawa-flex hawa-gap-2 dark:hawa-text-white\",\n isRTL ? \"hawa-flex-row-reverse\" : \"hawa-flex-row\",\n )}\n >\n {/* User Info */}\n {size > 600 ? (\n <div className={isRTL ? \"hawa-text-left hawa-text-xs\" : \"hawa-text-right hawa-text-xs\"}>\n <div className=\"hawa-font-bold\">{props.username}</div> <div>{props.email}</div>\n </div>\n ) : null}\n {/* Profile Icon & Menu */}\n <DropdownMenu\n triggerClassname=\"hawa-mx-2\"\n align=\"end\"\n alignOffset={8}\n side={\"bottom\"}\n sideOffset={5}\n // width={props.profileMenuWidth}\n direction={isRTL ? \"rtl\" : \"ltr\"}\n items={props.profileMenuItems || []}\n onItemSelect={(e: any) => console.log(\"selecting item \", e)}\n trigger={\n <div className=\"hawa-relative hawa-h-8 hawa-w-8 hawa-cursor-pointer hawa-overflow-clip hawa-rounded hawa-ring-1 hawa-ring-primary/30 dark:hawa-bg-gray-600\">\n {props.avatarImage ? (\n <img src={props.avatarImage} alt=\"User Avatar\" />\n ) : (\n <svg\n aria-label=\"Avatar Icon\"\n className=\"hawa-absolute hawa--left-1 hawa-h-10 hawa-w-10 hawa-text-gray-400\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z\"\n clipRule=\"evenodd\"\n ></path>\n </svg>\n )}\n </div>\n }\n />\n </div>\n </div>\n );\n};\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\ntype Palette = {\n name: string;\n colors: {\n [key: number]: string;\n };\n};\ntype Rgb = {\n r: number;\n g: number;\n b: number;\n};\nfunction hexToRgb(hex: string): Rgb | null {\n const sanitizedHex = hex.replaceAll(\"##\", \"#\");\n const colorParts = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(sanitizedHex);\n\n if (!colorParts) {\n return null;\n }\n\n const [, r, g, b] = colorParts;\n\n return {\n r: parseInt(r, 16),\n g: parseInt(g, 16),\n b: parseInt(b, 16),\n } as Rgb;\n}\n\nfunction rgbToHex(r: number, g: number, b: number): string {\n const toHex = (c: number) => `0${c.toString(16)}`.slice(-2);\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nexport function getTextColor(color: string): \"#FFF\" | \"#333\" {\n const rgbColor = hexToRgb(color);\n\n if (!rgbColor) {\n return \"#333\";\n }\n\n const { r, g, b } = rgbColor;\n const luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n\n return luma < 120 ? \"#FFF\" : \"#333\";\n}\n\nfunction lighten(hex: string, intensity: number): string {\n const color = hexToRgb(`#${hex}`);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r + (255 - color.r) * intensity);\n const g = Math.round(color.g + (255 - color.g) * intensity);\n const b = Math.round(color.b + (255 - color.b) * intensity);\n\n return rgbToHex(r, g, b);\n}\n\nfunction darken(hex: string, intensity: number): string {\n const color = hexToRgb(hex);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r * intensity);\n const g = Math.round(color.g * intensity);\n const b = Math.round(color.b * intensity);\n\n return rgbToHex(r, g, b);\n}\nconst parseColor = (color: any) => {\n if (color.startsWith(\"#\")) {\n // Convert hex to RGB\n let r = parseInt(color.slice(1, 3), 16);\n let g = parseInt(color.slice(3, 5), 16);\n let b = parseInt(color.slice(5, 7), 16);\n return [r, g, b];\n } else if (color.startsWith(\"rgb\")) {\n // Extract RGB values from rgb() format\n return color.match(/\\d+/g).map(Number);\n }\n // Default to white if format is unrecognized\n return [255, 255, 255];\n};\nexport const calculateLuminance = (color: any) => {\n const [r, g, b] = parseColor(color)?.map((c: any) => {\n c /= 255;\n return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;\n });\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nfunction getPallette(baseColor: string): Palette {\n const name = baseColor;\n\n const response: Palette = {\n name,\n colors: {\n 500: `#${baseColor}`.replace(\"##\", \"#\"),\n },\n };\n\n const intensityMap: {\n [key: number]: number;\n } = {\n 50: 0.95,\n 100: 0.9,\n 200: 0.75,\n 300: 0.6,\n 400: 0.3,\n 600: 0.9,\n 700: 0.75,\n 800: 0.6,\n 900: 0.49,\n };\n\n [50, 100, 200, 300, 400].forEach((level) => {\n response.colors[level] = lighten(baseColor, intensityMap[level]);\n });\n [600, 700, 800, 900].forEach((level) => {\n response.colors[level] = darken(baseColor, intensityMap[level]);\n });\n\n return response as Palette;\n}\n\nexport { getPallette };\n\n// const hexToRgb = (hex) => {\n// let d = hex?.split(\"#\")[1];\n// var aRgbHex = d?.match(/.{1,2}/g);\n// var aRgb = [\n// parseInt(aRgbHex[0], 16),\n// parseInt(aRgbHex[1], 16),\n// parseInt(aRgbHex[2], 16)\n// ];\n// return aRgb;\n// };\n// const getTextColor = (backColor) => {\n// let rgbArray = hexToRgb(backColor);\n// if (rgbArray[0] * 0.299 + rgbArray[1] * 0.587 + rgbArray[2] * 0.114 > 186) {\n// return \"#000000\";\n// } else {\n// return \"#ffffff\";\n// }\n// };\n// const replaceAt = function (string, index, replacement) {\n// // if (replacement == \"\" || replacement == \" \") {\n// // return (\n// // string.substring(0, index) +\n// // string.substring(index + replacement.length )\n// // );\n// // }\n// const replaced = string.substring(0, index) + replacement + string.substring(index + 1)\n// return replaced\n// };\n\n// export { hexToRgb, getTextColor, replaceAt };\n","import * as React from \"react\";\n\nimport { Portal } from \"@headlessui/react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { cn } from \"@util/index\";\n\nimport { DirectionType, RadioOptionType } from \"../../types/commonTypes\";\n\nconst DropdownMenuRoot = DropdownMenuPrimitive.Root;\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"hawa-flex hawa-cursor-default hawa-select-none hawa-items-center hawa-justify-between hawa-rounded-sm hawa-text-sm hawa-outline-none focus:hawa-bg-accent data-[state=open]:hawa-bg-accent\",\n inset && \"hawa-pl-8\",\n className,\n )}\n {...props}\n >\n <div className=\"hawa-flex hawa-flex-row hawa-items-center hawa-gap-2\">{children}</div>{\" \"}\n <svg\n aria-label=\"Chevron Right Icon\"\n stroke=\"currentColor\"\n fill=\"currentColor\"\n strokeWidth=\"0\"\n viewBox=\"0 0 16 16\"\n height=\"1em\"\n width=\"1em\"\n className={cn(props.dir === \"rtl\" ? \"hawa-rotate-180\" : \"\")}\n >\n <path\n fillRule=\"evenodd\"\n 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\"\n ></path>\n </svg>\n </DropdownMenuPrimitive.SubTrigger>\n));\nDropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"hawa-z-50 hawa-min-w-[8rem] hawa-gap-1 hawa-overflow-hidden hawa-rounded-md hawa-border hawa-bg-popover hawa-p-1 hawa-text-popover-foreground hawa-shadow-lg data-[state=open]:hawa-animate-in data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=open]:hawa-fade-in-0 data-[state=closed]:hawa-zoom-out-95 data-[state=open]:hawa-zoom-in-95 data-[side=bottom]:hawa-slide-in-from-top-2 data-[side=left]:hawa-slide-in-from-right-2 data-[side=right]:hawa-slide-in-from-left-2 data-[side=top]:hawa-slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"hawa-z-50 hawa-overflow-hidden hawa-rounded-md hawa-border hawa-bg-popover hawa-p-1 hawa-text-popover-foreground hawa-shadow-md data-[state=open]:hawa-animate-in data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=open]:hawa-fade-in-0 data-[state=closed]:hawa-zoom-out-95 data-[state=open]:hawa-zoom-in-95 data-[side=bottom]:hawa-slide-in-from-top-2 data-[side=left]:hawa-slide-in-from-right-2 data-[side=right]:hawa-slide-in-from-left-2 data-[side=top]:hawa-slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n </Portal>\n));\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n end?: any;\n shortcut?: React.ReactNode;\n badged?: boolean;\n slug?: string;\n LinkComponent?: any;\n }\n>(({ className, inset, badged, slug, LinkComponent = \"a\", ...props }, ref) => {\n return (\n <LinkComponent href={slug}>\n <DropdownMenuPrimitive.Item\n disabled={props.disabled}\n ref={ref}\n className={cn(\n \"hawa-relative hawa-flex hawa-cursor-pointer hawa-select-none hawa-items-center hawa-justify-between hawa-rounded-sm hawa-text-sm hawa-outline-none hawa-transition-colors focus:hawa-text-accent-foreground data-[disabled]:hawa-pointer-events-none data-[disabled]:hawa-opacity-50\",\n inset && \"hawa-pl-8\",\n props.end && Array.isArray(props.children) && props.children[1] && \"hawa-gap-6\",\n className,\n )}\n {...props}\n >\n <div className=\"hawa-flex hawa-flex-row hawa-items-center hawa-gap-2\">{props.children}</div>\n\n {props.end && props.end}\n {!props.end && props.shortcut && (\n <DropdownMenuShortcut>{props.shortcut}</DropdownMenuShortcut>\n )}\n {!props.end && badged && (\n <div className=\"hawa-h-3 hawa-w-3 hawa-rounded-full hawa-bg-red-500\" />\n )}\n </DropdownMenuPrimitive.Item>\n </LinkComponent>\n );\n});\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"hawa-relative hawa-flex hawa-cursor-default hawa-select-none hawa-items-center hawa-rounded-sm hawa-py-1.5 hawa-pl-8 hawa-pr-2 hawa-text-sm hawa-outline-none hawa-transition-colors focus:hawa-bg-accent focus:hawa-text-accent-foreground data-[disabled]:hawa-pointer-events-none data-[disabled]:hawa-opacity-50\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"hawa-absolute hawa-left-2 hawa-flex hawa-h-3.5 hawa-w-3.5 hawa-items-center hawa-justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n {/* <Check className=\"h-4 w-4\" /> */}\n <svg\n aria-label=\"Check Mark\"\n stroke=\"currentColor\"\n fill=\"currentColor\"\n strokeWidth=\"0\"\n viewBox=\"0 0 512 512\"\n height=\"0.60em\"\n width=\"0.60em\"\n >\n <path d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"></path>\n </svg>{\" \"}\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n));\nDropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"hawa-relative hawa-flex hawa-cursor-pointer hawa-select-none hawa-items-center hawa-rounded-sm hawa-py-1.5 hawa-pl-8 hawa-pr-2 hawa-text-sm hawa-outline-none hawa-transition-colors focus:hawa-bg-accent focus:hawa-text-accent-foreground data-[disabled]:hawa-pointer-events-none data-[disabled]:hawa-opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"hawa-absolute hawa-left-2 hawa-flex hawa-h-3.5 hawa-w-3.5 hawa-items-center hawa-justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n aria-label=\"Circle\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"hawa-h-2 hawa-w-2 hawa-fill-current\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n </svg>\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n));\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"hawa-px-2 hawa-py-1.5 hawa-text-sm hawa-font-semibold\",\n inset && \"hawa-pl-8\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn(\"hawa--mx-1 hawa-my-1 hawa-h-px hawa-bg-muted\", className)}\n {...props}\n />\n));\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\n\nconst DropdownMenuShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\"hawa-text-xs hawa-tracking-widest hawa-opacity-60\", className)}\n {...props}\n />\n );\n};\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\ntype ExtendedDropdownMenuContentProps = Partial<\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n> & {\n // Add any additional types or overrides here, for example:\n // side?: \"left\" | \"right\" | \"top\" | \"bottom\"\n};\ntype ExtendedDropdownMenuTriggerProps = Partial<\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Trigger>\n> & {\n // Add any additional types or overrides here, for example:\n // side?: \"left\" | \"right\" | \"top\" | \"bottom\"\n};\n\nexport type SubItem = {\n label?: string;\n value?: any;\n icon?: any;\n action?: () => void;\n onMiddleClick?: (e: any) => void;\n highlighted?: boolean;\n disabled?: boolean;\n slug?: string;\n};\nexport type MenuItemType = {\n icon?: React.ReactNode;\n label?: string;\n shortcut?: React.ReactNode;\n badged?: boolean;\n value?: any;\n content?: any;\n slug?: string;\n end?: any;\n presist?: boolean;\n itemType?: \"separator\" | \"label\" | \"custom\" | \"radio\";\n action?: () => void;\n highlighted?: boolean;\n subitems?: SubItem[];\n options?: RadioOptionType[];\n currentOption?: string;\n onOptionChange?: (value: string) => void;\n disabled?: boolean;\n onMiddleClick?: (e: any) => void;\n onClick?: any;\n};\ninterface DropdownMenuProps {\n trigger?: any;\n items: MenuItemType[];\n direction?: DirectionType;\n classNames?: {\n trigger?: string;\n content?: string;\n item?: string;\n separator?: string;\n };\n className?: ExtendedDropdownMenuContentProps[\"className\"];\n triggerClassname?: ExtendedDropdownMenuTriggerProps[\"className\"];\n triggerProps?: DropdownMenuPrimitive.DropdownMenuTriggerProps;\n sideOffset?: ExtendedDropdownMenuContentProps[\"sideOffset\"];\n side?: ExtendedDropdownMenuContentProps[\"side\"];\n align?: ExtendedDropdownMenuContentProps[\"align\"];\n alignOffset?: ExtendedDropdownMenuContentProps[\"alignOffset\"];\n contentProps?: ExtendedDropdownMenuContentProps;\n width?: \"default\" | \"sm\" | \"lg\" | \"parent\";\n size?: \"default\" | \"sm\";\n onItemSelect?: any;\n onOpenChange?: any;\n header?: React.ReactNode;\n open?: any;\n LinkComponent?: any;\n}\nconst DropdownMenu: React.FC<DropdownMenuProps> = ({\n trigger,\n items,\n direction,\n sideOffset,\n side,\n className,\n classNames,\n contentProps,\n triggerClassname,\n triggerProps,\n align,\n alignOffset,\n onItemSelect,\n size = \"default\",\n width = \"default\",\n header,\n onOpenChange,\n open,\n LinkComponent,\n}) => {\n const widthStyles = {\n default: \"hawa-min-w-[8rem]\",\n sm: \"hawa-w-fit\",\n lg: \"hawa-w-[200px]\",\n parent: \"ddm-w-parent\",\n };\n const sizeStyles = {\n default: \"hawa-px-2 hawa-py-3 \",\n sm: \"hawa-text-xs hawa-px-1.5 hawa-py-1.5 \",\n };\n let [values, setValues] = React.useState(items.map((item) => item.currentOption));\n\n return (\n <DropdownMenuRoot onOpenChange={onOpenChange} open={open} modal={false} dir={direction}>\n <DropdownMenuTrigger\n asChild\n className={cn(classNames?.trigger, triggerClassname)}\n {...triggerProps}\n >\n {trigger}\n </DropdownMenuTrigger>\n <Portal>\n <DropdownMenuContent\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n className={cn(\n className,\n classNames?.content,\n widthStyles[width],\n \"hawa-flex hawa-flex-col hawa-gap-1 hawa-overflow-y-auto\",\n )}\n style={{\n maxHeight: \"var(--radix-dropdown-menu-content-available-height)\",\n }}\n {...contentProps}\n >\n {header && header}\n {items &&\n items.map((item, index) => {\n const ItemLinkComponent = item.slug ? LinkComponent : \"a\";\n if (item.itemType === \"separator\") {\n return <DropdownMenuSeparator key={index} className={classNames?.separator} />;\n } else if (item.itemType === \"label\") {\n return <DropdownMenuLabel key={index}>{item.label}</DropdownMenuLabel>;\n } else if (item.itemType === \"radio\") {\n let dd = item.currentOption;\n return (\n <DropdownMenuSub key={index}>\n <DropdownMenuSubTrigger dir={direction} className={cn(sizeStyles[size])}>\n {item.icon && item.icon}\n {item.label && item.label}\n </DropdownMenuSubTrigger>\n <DropdownMenuSubContent>\n <DropdownMenuRadioGroup\n value={values[index]}\n onValueChange={(e) => {\n let newValues = [...values];\n newValues[index] = e;\n setValues(newValues);\n console.log(\"changing to \", e);\n if (item.onOptionChange) {\n item.onOptionChange(e);\n }\n }}\n >\n {item.options?.map((opt, i) => (\n <DropdownMenuRadioItem key={i} value={opt.value}>\n {opt.label}\n </DropdownMenuRadioItem>\n ))}\n </DropdownMenuRadioGroup>\n </DropdownMenuSubContent>\n </DropdownMenuSub>\n );\n } else if (item.itemType === \"custom\") {\n return <div key={index}>{item.content}</div>;\n } else {\n return item.subitems ? (\n <DropdownMenuSub key={index}>\n <DropdownMenuSubTrigger dir={direction} className={cn(sizeStyles[size])}>\n {item.icon && item.icon}\n {item.label && item.label}\n </DropdownMenuSubTrigger>\n <Portal>\n <DropdownMenuSubContent>\n {item.subitems.map((subitem, subIndex) => {\n const SubitemLinkComponent = subitem.slug ? LinkComponent : \"a\";\n return (\n <DropdownMenuItem\n key={subIndex}\n LinkComponent={SubitemLinkComponent}\n slug={subitem.slug}\n disabled={subitem.disabled}\n className={cn(\n sizeStyles[size],\n !item.icon && !item.label\n ? \"hawa-px-0 hawa-py-0 focus:hawa-bg-transparent\"\n : \"focus:hawa-bg-accent\",\n )}\n onMouseDown={(event: any) => {\n if (event.button === 1 || (event.button === 0 && event.ctrlKey)) {\n event.preventDefault(); // This line prevents the default behavior of the middle button\n if (subitem.onMiddleClick) {\n subitem.onMiddleClick(item.value);\n }\n }\n }}\n onSelect={() => {\n subitem.action && subitem.action();\n if (onItemSelect) {\n onItemSelect(subitem.value);\n }\n }}\n >\n {subitem.icon && subitem.icon}\n {subitem.label && subitem.label}\n </DropdownMenuItem>\n );\n })}\n </DropdownMenuSubContent>\n </Portal>\n </DropdownMenuSub>\n ) : (\n <DropdownMenuItem\n LinkComponent={ItemLinkComponent}\n slug={item.slug}\n key={index}\n disabled={item.disabled}\n onMouseDown={(event: any) => {\n if (event.button === 1 || (event.button === 0 && event.ctrlKey)) {\n event.preventDefault(); // This line prevents the default behavior of the middle button\n if (item.onMiddleClick) {\n item.onMiddleClick(item.value);\n }\n }\n }}\n onClick={(event: any) => {\n if (item.onClick) {\n item.onClick(item.value);\n }\n }}\n onSelect={(e) => {\n if (item.presist) {\n e.preventDefault();\n }\n if (item.action) {\n item.action();\n if (onItemSelect) {\n onItemSelect(item.value);\n }\n } else {\n if (onItemSelect) {\n onItemSelect(item.value);\n }\n }\n }}\n end={item.end}\n shortcut={item.shortcut}\n badged={item.badged}\n className={cn(\n sizeStyles[size],\n !item.icon && !item.label\n ? \"hawa-px-0 hawa-py-0 focus:hawa-bg-transparent\"\n : \"focus:hawa-bg-accent\",\n item.presist && \"focus:hawa-bg-transparent\",\n classNames?.item,\n )}\n >\n {item.icon && item.icon}\n {item.label && item.label}\n </DropdownMenuItem>\n );\n }\n })}\n </DropdownMenuContent>\n </Portal>\n </DropdownMenuRoot>\n );\n};\n\ninterface DropdownMenuRadioOptionType extends RadioOptionType {\n props?: Omit<DropdownMenuPrimitive.DropdownMenuItemProps, \"value\" | \"label\">;\n}\n\ninterface DropdownMenuRadioProps {\n trigger?: React.ReactNode;\n side?: ExtendedDropdownMenuContentProps[\"side\"];\n align?: ExtendedDropdownMenuContentProps[\"align\"];\n options: DropdownMenuRadioOptionType[];\n value: string;\n onValueChange: any;\n label?: string;\n contentProps?: ExtendedDropdownMenuContentProps;\n radioGroupProps?: React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioGroup>;\n}\nconst DropdownMenuRadio: React.FC<DropdownMenuRadioProps> = (props) => {\n const ariaLabel = props.label ? `${props.label} radio group` : undefined;\n const ariaLabelledby = props.label ? `${props.label}-label` : undefined;\n\n return (\n <DropdownMenuRoot>\n <DropdownMenuTrigger asChild>{props.trigger}</DropdownMenuTrigger>\n <DropdownMenuContent\n align={props.align}\n side={props.side}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n {...props.contentProps}\n >\n {props.label && (\n <>\n <DropdownMenuLabel id={`${props.label}-label`}>{props.label}</DropdownMenuLabel>\n <DropdownMenuSeparator />\n </>\n )}\n <DropdownMenuRadioGroup\n value={props.value}\n onValueChange={props.onValueChange}\n {...props.radioGroupProps}\n >\n {props.options.map((opt, i) => (\n <DropdownMenuRadioItem\n key={i}\n {...opt.props}\n value={opt.value}\n aria-checked={props.value === opt.value}\n >\n {opt.label}\n </DropdownMenuRadioItem>\n ))}\n </DropdownMenuRadioGroup>\n </DropdownMenuContent>\n </DropdownMenuRoot>\n );\n};\n\nexport {\n DropdownMenu,\n DropdownMenuRoot,\n DropdownMenuRadio,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n Portal as DropdownMenuPortal,\n};\n"],"mappings":"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","names":["import_react","React"]}
|