@enya-learning/nova 0.4.3 → 0.6.0

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.
Files changed (146) hide show
  1. package/README.md +8 -19
  2. package/dist/chunks/dist-fahbq1psobj0ox6s.js +1327 -0
  3. package/dist/chunks/dist-fahbq1psobj0ox6s.js.map +1 -0
  4. package/dist/chunks/dist-o8x0ip0z71xkr2oh.js +37 -0
  5. package/dist/chunks/dist-o8x0ip0z71xkr2oh.js.map +1 -0
  6. package/dist/components/accordion.js +62 -0
  7. package/dist/components/accordion.js.map +1 -0
  8. package/dist/components/alert-dialog.js +108 -0
  9. package/dist/components/alert-dialog.js.map +1 -0
  10. package/dist/components/alert.js +49 -0
  11. package/dist/components/alert.js.map +1 -0
  12. package/dist/components/aspect-ratio.js +16 -0
  13. package/dist/components/aspect-ratio.js.map +1 -0
  14. package/dist/components/avatar.js +58 -0
  15. package/dist/components/avatar.js.map +1 -0
  16. package/dist/components/badge.js +33 -0
  17. package/dist/components/badge.js.map +1 -0
  18. package/dist/components/box.js +16 -0
  19. package/dist/components/box.js.map +1 -0
  20. package/dist/components/breadcrumb.js +85 -0
  21. package/dist/components/breadcrumb.js.map +1 -0
  22. package/dist/components/button-group.js +47 -0
  23. package/dist/components/button-group.js.map +1 -0
  24. package/dist/components/button.js +48 -3
  25. package/dist/components/button.js.map +1 -0
  26. package/dist/components/calendar.js +3004 -0
  27. package/dist/components/calendar.js.map +1 -0
  28. package/dist/components/card.js +65 -0
  29. package/dist/components/card.js.map +1 -0
  30. package/dist/components/carousel.js +1198 -0
  31. package/dist/components/carousel.js.map +1 -0
  32. package/dist/components/chart.js +10596 -0
  33. package/dist/components/chart.js.map +1 -0
  34. package/dist/components/checkbox.js +23 -0
  35. package/dist/components/checkbox.js.map +1 -0
  36. package/dist/components/collapsible.js +28 -0
  37. package/dist/components/collapsible.js.map +1 -0
  38. package/dist/components/combobox.js +192 -0
  39. package/dist/components/combobox.js.map +1 -0
  40. package/dist/components/command.js +663 -0
  41. package/dist/components/command.js.map +1 -0
  42. package/dist/components/context-menu.js +153 -0
  43. package/dist/components/context-menu.js.map +1 -0
  44. package/dist/components/dialog.js +104 -0
  45. package/dist/components/dialog.js.map +1 -0
  46. package/dist/components/direction.js +6 -0
  47. package/dist/components/drawer.js +1042 -0
  48. package/dist/components/drawer.js.map +1 -0
  49. package/dist/components/dropdown-menu.js +157 -0
  50. package/dist/components/dropdown-menu.js.map +1 -0
  51. package/dist/components/empty.js +67 -0
  52. package/dist/components/empty.js.map +1 -0
  53. package/dist/components/enya-logo.js +42 -42
  54. package/dist/components/enya-logo.js.map +1 -1
  55. package/dist/components/field.js +119 -0
  56. package/dist/components/field.js.map +1 -0
  57. package/dist/components/heading.js +39 -0
  58. package/dist/components/heading.js.map +1 -0
  59. package/dist/components/hover-card.js +40 -0
  60. package/dist/components/hover-card.js.map +1 -0
  61. package/dist/components/input-group.js +85 -0
  62. package/dist/components/input-group.js.map +1 -0
  63. package/dist/components/input-otp.js +417 -0
  64. package/dist/components/input-otp.js.map +1 -0
  65. package/dist/components/input.js +18 -0
  66. package/dist/components/input.js.map +1 -0
  67. package/dist/components/item.js +133 -0
  68. package/dist/components/item.js.map +1 -0
  69. package/dist/components/kbd.js +23 -0
  70. package/dist/components/kbd.js.map +1 -0
  71. package/dist/components/label.js +16 -0
  72. package/dist/components/label.js.map +1 -0
  73. package/dist/components/menubar.js +154 -0
  74. package/dist/components/menubar.js.map +1 -0
  75. package/dist/components/native-select.js +45 -0
  76. package/dist/components/native-select.js.map +1 -0
  77. package/dist/components/navigation-menu.js +95 -0
  78. package/dist/components/navigation-menu.js.map +1 -0
  79. package/dist/components/pagination.js +98 -0
  80. package/dist/components/pagination.js.map +1 -0
  81. package/dist/components/popover.js +62 -0
  82. package/dist/components/popover.js.map +1 -0
  83. package/dist/components/progress.js +50 -0
  84. package/dist/components/progress.js.map +1 -0
  85. package/dist/components/radio-group.js +30 -0
  86. package/dist/components/radio-group.js.map +1 -0
  87. package/dist/components/resizable.js +1562 -0
  88. package/dist/components/resizable.js.map +1 -0
  89. package/dist/components/scroll-area.js +40 -0
  90. package/dist/components/scroll-area.js.map +1 -0
  91. package/dist/components/select.js +116 -0
  92. package/dist/components/select.js.map +1 -0
  93. package/dist/components/separator.js +17 -0
  94. package/dist/components/separator.js.map +1 -0
  95. package/dist/components/sheet.js +99 -0
  96. package/dist/components/sheet.js.map +1 -0
  97. package/dist/components/sidebar.js +399 -0
  98. package/dist/components/sidebar.js.map +1 -0
  99. package/dist/components/skeleton.js +15 -0
  100. package/dist/components/skeleton.js.map +1 -0
  101. package/dist/components/slider.js +36 -0
  102. package/dist/components/slider.js.map +1 -0
  103. package/dist/components/sonner.js +738 -0
  104. package/dist/components/sonner.js.map +1 -0
  105. package/dist/components/spinner.js +19 -0
  106. package/dist/components/spinner.js.map +1 -0
  107. package/dist/components/switch.js +21 -0
  108. package/dist/components/switch.js.map +1 -0
  109. package/dist/components/table.js +76 -0
  110. package/dist/components/table.js.map +1 -0
  111. package/dist/components/tabs.js +51 -0
  112. package/dist/components/tabs.js.map +1 -0
  113. package/dist/components/text.js +47 -0
  114. package/dist/components/text.js.map +1 -0
  115. package/dist/components/textarea.js +16 -0
  116. package/dist/components/textarea.js.map +1 -0
  117. package/dist/components/toggle-group.js +55 -0
  118. package/dist/components/toggle-group.js.map +1 -0
  119. package/dist/components/toggle.js +39 -0
  120. package/dist/components/toggle.js.map +1 -0
  121. package/dist/components/tooltip.js +46 -0
  122. package/dist/components/tooltip.js.map +1 -0
  123. package/dist/index.js +25 -23241
  124. package/dist/src/components/badge/badge.d.ts +1 -1
  125. package/dist/src/components/box/box.d.ts +7 -0
  126. package/dist/src/components/box/index.d.ts +1 -0
  127. package/dist/src/components/button/button.d.ts +1 -1
  128. package/dist/src/components/heading/heading.d.ts +15 -0
  129. package/dist/src/components/heading/index.d.ts +1 -0
  130. package/dist/src/components/item/item.d.ts +1 -1
  131. package/dist/src/components/spinner/spinner.d.ts +2 -1
  132. package/dist/src/components/tabs/tabs.d.ts +1 -1
  133. package/dist/src/components/text/index.d.ts +1 -0
  134. package/dist/src/components/text/text.d.ts +13 -0
  135. package/dist/src/index.d.ts +4 -53
  136. package/dist/styles/nova-binding.css +355 -255
  137. package/dist/styles/nova.css +205 -38
  138. package/dist/styles/typography.css +22 -130
  139. package/package.json +31 -10
  140. package/src/eslint/no-primitive-colors.js +2 -2
  141. package/src/eslint/no-primitive-colors.test.ts +97 -0
  142. package/dist/chunks/button-kvgr8g13fe959ju0.js +0 -81
  143. package/dist/chunks/button-kvgr8g13fe959ju0.js.map +0 -1
  144. package/dist/index.js.map +0 -1
  145. package/dist/styles/globals.css +0 -77
  146. package/dist/styles/theme-nova.css +0 -201
@@ -0,0 +1,133 @@
1
+ "use client";
2
+ import { t as s } from "../chunks/dist-o8x0ip0z71xkr2oh.js";
3
+ import { t as a } from "../chunks/utils-kyb5nny4y41y7hd8.js";
4
+ import { Separator as l } from "./separator.js";
5
+ import { jsx as i } from "react/jsx-runtime";
6
+ import { mergeProps as m } from "@base-ui/react/merge-props";
7
+ import { useRender as d } from "@base-ui/react/use-render";
8
+ import "react";
9
+ function N({ className: t, ...e }) {
10
+ return /* @__PURE__ */ i("div", {
11
+ role: "list",
12
+ "data-slot": "item-group",
13
+ className: a("group/item-group flex w-full flex-col gap-4 has-data-[size=sm]:gap-2.5 has-data-[size=xs]:gap-2", t),
14
+ ...e
15
+ });
16
+ }
17
+ function h({ className: t, ...e }) {
18
+ return /* @__PURE__ */ i(l, {
19
+ "data-slot": "item-separator",
20
+ orientation: "horizontal",
21
+ className: a("my-2", t),
22
+ ...e
23
+ });
24
+ }
25
+ var u = s("group/item flex w-full flex-wrap items-center rounded-2xl border text-sm transition-colors duration-100 outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 [a]:transition-colors [a]:hover:bg-surface-muted", {
26
+ variants: {
27
+ variant: {
28
+ default: "border-transparent",
29
+ outline: "border-border",
30
+ muted: "border-transparent bg-surface-muted/50"
31
+ },
32
+ size: {
33
+ default: "gap-3.5 px-4 py-3.5",
34
+ sm: "gap-3.5 px-3.5 py-3",
35
+ xs: "gap-2.5 px-3 py-2.5 in-data-[slot=dropdown-menu-content]:p-0"
36
+ }
37
+ },
38
+ defaultVariants: {
39
+ variant: "default",
40
+ size: "default"
41
+ }
42
+ });
43
+ function I({ className: t, variant: e = "default", size: r = "default", render: n, ...o }) {
44
+ return d({
45
+ defaultTagName: "div",
46
+ props: m({ className: a(u({
47
+ variant: e,
48
+ size: r,
49
+ className: t
50
+ })) }, o),
51
+ render: n,
52
+ state: {
53
+ slot: "item",
54
+ variant: e,
55
+ size: r
56
+ }
57
+ });
58
+ }
59
+ var f = s("flex shrink-0 items-center justify-center gap-2 group-has-data-[slot=item-description]/item:translate-y-0.5 group-has-data-[slot=item-description]/item:self-start [&_svg]:pointer-events-none", {
60
+ variants: { variant: {
61
+ default: "bg-transparent",
62
+ icon: "[&_svg:not([class*='size-'])]:size-4",
63
+ image: "size-10 overflow-hidden rounded-lg group-data-[size=sm]/item:size-8 group-data-[size=xs]/item:size-6 group-data-[size=xs]/item:rounded-md [&_img]:size-full [&_img]:object-cover"
64
+ } },
65
+ defaultVariants: { variant: "default" }
66
+ });
67
+ function y({ className: t, variant: e = "default", ...r }) {
68
+ return /* @__PURE__ */ i("div", {
69
+ "data-slot": "item-media",
70
+ "data-variant": e,
71
+ className: a(f({
72
+ variant: e,
73
+ className: t
74
+ })),
75
+ ...r
76
+ });
77
+ }
78
+ function w({ className: t, ...e }) {
79
+ return /* @__PURE__ */ i("div", {
80
+ "data-slot": "item-content",
81
+ className: a("flex flex-1 flex-col gap-1 group-data-[size=xs]/item:gap-0.5 [&+[data-slot=item-content]]:flex-none", t),
82
+ ...e
83
+ });
84
+ }
85
+ function j({ className: t, ...e }) {
86
+ return /* @__PURE__ */ i("div", {
87
+ "data-slot": "item-title",
88
+ className: a("line-clamp-1 flex w-fit items-center gap-2 text-sm leading-snug font-medium underline-offset-4", t),
89
+ ...e
90
+ });
91
+ }
92
+ function V({ className: t, ...e }) {
93
+ return /* @__PURE__ */ i("p", {
94
+ "data-slot": "item-description",
95
+ className: a("line-clamp-2 text-start text-sm font-normal text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary", t),
96
+ ...e
97
+ });
98
+ }
99
+ function _({ className: t, ...e }) {
100
+ return /* @__PURE__ */ i("div", {
101
+ "data-slot": "item-actions",
102
+ className: a("flex items-center gap-2", t),
103
+ ...e
104
+ });
105
+ }
106
+ function M({ className: t, ...e }) {
107
+ return /* @__PURE__ */ i("div", {
108
+ "data-slot": "item-header",
109
+ className: a("flex basis-full items-center justify-between gap-2", t),
110
+ ...e
111
+ });
112
+ }
113
+ function S({ className: t, ...e }) {
114
+ return /* @__PURE__ */ i("div", {
115
+ "data-slot": "item-footer",
116
+ className: a("flex basis-full items-center justify-between gap-2", t),
117
+ ...e
118
+ });
119
+ }
120
+ export {
121
+ I as Item,
122
+ _ as ItemActions,
123
+ w as ItemContent,
124
+ V as ItemDescription,
125
+ S as ItemFooter,
126
+ N as ItemGroup,
127
+ M as ItemHeader,
128
+ y as ItemMedia,
129
+ h as ItemSeparator,
130
+ j as ItemTitle
131
+ };
132
+
133
+ //# sourceMappingURL=item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item.js","names":[],"sources":["../../src/components/item/item.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { mergeProps } from \"@base-ui/react/merge-props\"\nimport { useRender } from \"@base-ui/react/use-render\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils\"\nimport { Separator } from \"../separator\"\n\nfunction ItemGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n role=\"list\"\n data-slot=\"item-group\"\n className={cn(\n \"group/item-group flex w-full flex-col gap-4 has-data-[size=sm]:gap-2.5 has-data-[size=xs]:gap-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ItemSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"item-separator\"\n orientation=\"horizontal\"\n className={cn(\"my-2\", className)}\n {...props}\n />\n )\n}\n\nconst itemVariants = cva(\n \"group/item flex w-full flex-wrap items-center rounded-2xl border text-sm transition-colors duration-100 outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 [a]:transition-colors [a]:hover:bg-surface-muted\",\n {\n variants: {\n variant: {\n default: \"border-transparent\",\n outline: \"border-border\",\n muted: \"border-transparent bg-surface-muted/50\",\n },\n size: {\n default: \"gap-3.5 px-4 py-3.5\",\n sm: \"gap-3.5 px-3.5 py-3\",\n xs: \"gap-2.5 px-3 py-2.5 in-data-[slot=dropdown-menu-content]:p-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Item({\n className,\n variant = \"default\",\n size = \"default\",\n render,\n ...props\n}: useRender.ComponentProps<\"div\"> & VariantProps<typeof itemVariants>) {\n return useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n className: cn(itemVariants({ variant, size, className })),\n },\n props\n ),\n render,\n state: {\n slot: \"item\",\n variant,\n size,\n },\n })\n}\n\nconst itemMediaVariants = cva(\n \"flex shrink-0 items-center justify-center gap-2 group-has-data-[slot=item-description]/item:translate-y-0.5 group-has-data-[slot=item-description]/item:self-start [&_svg]:pointer-events-none\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"[&_svg:not([class*='size-'])]:size-4\",\n image:\n \"size-10 overflow-hidden rounded-lg group-data-[size=sm]/item:size-8 group-data-[size=xs]/item:size-6 group-data-[size=xs]/item:rounded-md [&_img]:size-full [&_img]:object-cover\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction ItemMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof itemMediaVariants>) {\n return (\n <div\n data-slot=\"item-media\"\n data-variant={variant}\n className={cn(itemMediaVariants({ variant, className }))}\n {...props}\n />\n )\n}\n\nfunction ItemContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-content\"\n className={cn(\n \"flex flex-1 flex-col gap-1 group-data-[size=xs]/item:gap-0.5 [&+[data-slot=item-content]]:flex-none\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ItemTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-title\"\n className={cn(\n \"line-clamp-1 flex w-fit items-center gap-2 text-sm leading-snug font-medium underline-offset-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ItemDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"item-description\"\n className={cn(\n \"line-clamp-2 text-start text-sm font-normal text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ItemActions({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-actions\"\n className={cn(\"flex items-center gap-2\", className)}\n {...props}\n />\n )\n}\n\nfunction ItemHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-header\"\n className={cn(\n \"flex basis-full items-center justify-between gap-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ItemFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-footer\"\n className={cn(\n \"flex basis-full items-center justify-between gap-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Item,\n ItemMedia,\n ItemContent,\n ItemActions,\n ItemGroup,\n ItemSeparator,\n ItemTitle,\n ItemDescription,\n ItemHeader,\n ItemFooter,\n}\n"],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ "use client";
2
+ import { t as n } from "../chunks/utils-kyb5nny4y41y7hd8.js";
3
+ import { jsx as o } from "react/jsx-runtime";
4
+ function i({ className: t, ...e }) {
5
+ return /* @__PURE__ */ o("kbd", {
6
+ "data-slot": "kbd",
7
+ className: n("pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-sm bg-surface-3 px-1 font-sans text-xs font-medium text-muted-foreground select-none in-data-[slot=tooltip-content]:bg-surface-1/20 in-data-[slot=tooltip-content]:text-surface-1 dark:in-data-[slot=tooltip-content]:bg-surface-1/10 [&_svg:not([class*='size-'])]:size-3", t),
8
+ ...e
9
+ });
10
+ }
11
+ function r({ className: t, ...e }) {
12
+ return /* @__PURE__ */ o("kbd", {
13
+ "data-slot": "kbd-group",
14
+ className: n("inline-flex items-center gap-1", t),
15
+ ...e
16
+ });
17
+ }
18
+ export {
19
+ i as Kbd,
20
+ r as KbdGroup
21
+ };
22
+
23
+ //# sourceMappingURL=kbd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kbd.js","names":[],"sources":["../../src/components/kbd/kbd.tsx"],"sourcesContent":["import { cn } from \"../../lib/utils\"\n\nfunction Kbd({ className, ...props }: React.ComponentProps<\"kbd\">) {\n return (\n <kbd\n data-slot=\"kbd\"\n className={cn(\n \"pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-sm bg-surface-3 px-1 font-sans text-xs font-medium text-muted-foreground select-none in-data-[slot=tooltip-content]:bg-surface-1/20 in-data-[slot=tooltip-content]:text-surface-1 dark:in-data-[slot=tooltip-content]:bg-surface-1/10 [&_svg:not([class*='size-'])]:size-3\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction KbdGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <kbd\n data-slot=\"kbd-group\"\n className={cn(\"inline-flex items-center gap-1\", className)}\n {...props}\n />\n )\n}\n\nexport { Kbd, KbdGroup }\n"],"mappings":";;;AAEA,SAAS,EAAI,EAAE,WAAA,GAAW,GAAG,EAAA,GAAsC;AACjE,SACE,gBAAA,EAAC,OAAD;AAAA,IACE,aAAU;AAAA,IACV,WAAW,EACT,0WACA,CACF;AAAA,IACA,GAAI;AAAA,EACL,CAAA;AAEL;AAEA,SAAS,EAAS,EAAE,WAAA,GAAW,GAAG,EAAA,GAAsC;AACtE,SACE,gBAAA,EAAC,OAAD;AAAA,IACE,aAAU;AAAA,IACV,WAAW,EAAG,kCAAkC,CAAS;AAAA,IACzD,GAAI;AAAA,EACL,CAAA;AAEL"}
@@ -0,0 +1,16 @@
1
+ "use client";
2
+ import { t as a } from "../chunks/utils-kyb5nny4y41y7hd8.js";
3
+ import { jsx as o } from "react/jsx-runtime";
4
+ import "react";
5
+ function i({ className: e, ...t }) {
6
+ return /* @__PURE__ */ o("label", {
7
+ "data-slot": "label",
8
+ className: a("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50", e),
9
+ ...t
10
+ });
11
+ }
12
+ export {
13
+ i as Label
14
+ };
15
+
16
+ //# sourceMappingURL=label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label.js","names":[],"sources":["../../src/components/label/label.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Label({ className, ...props }: React.ComponentProps<\"label\">) {\n return (\n <label\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n"],"mappings":";;;;AAMA,SAAS,EAAM,EAAE,WAAA,GAAW,GAAG,EAAA,GAAwC;AACrE,SACE,gBAAA,EAAC,SAAD;AAAA,IACE,aAAU;AAAA,IACV,WAAW,EACT,uNACA,CACF;AAAA,IACA,GAAI;AAAA,EACL,CAAA;AAEL"}
@@ -0,0 +1,154 @@
1
+ "use client";
2
+ import { t as o } from "../chunks/utils-kyb5nny4y41y7hd8.js";
3
+ import { DropdownMenu as m, DropdownMenuContent as l, DropdownMenuGroup as p, DropdownMenuItem as f, DropdownMenuLabel as b, DropdownMenuPortal as g, DropdownMenuRadioGroup as x, DropdownMenuSeparator as v, DropdownMenuShortcut as M, DropdownMenuSub as h, DropdownMenuSubContent as w, DropdownMenuSubTrigger as z, DropdownMenuTrigger as D } from "./dropdown-menu.js";
4
+ import { jsx as n, jsxs as i } from "react/jsx-runtime";
5
+ import { HugeiconsIcon as u } from "@hugeicons/react";
6
+ import { CheckIcon as c } from "@hugeicons/core-free-icons";
7
+ import "react";
8
+ import { Menu as s } from "@base-ui/react/menu";
9
+ import { Menubar as N } from "@base-ui/react/menubar";
10
+ function G({ className: e, ...t }) {
11
+ return /* @__PURE__ */ n(N, {
12
+ "data-slot": "menubar",
13
+ className: o("flex h-9 items-center rounded-4xl border p-1", e),
14
+ ...t
15
+ });
16
+ }
17
+ function T({ ...e }) {
18
+ return /* @__PURE__ */ n(m, {
19
+ "data-slot": "menubar-menu",
20
+ ...e
21
+ });
22
+ }
23
+ function L({ ...e }) {
24
+ return /* @__PURE__ */ n(p, {
25
+ "data-slot": "menubar-group",
26
+ ...e
27
+ });
28
+ }
29
+ function P({ ...e }) {
30
+ return /* @__PURE__ */ n(g, {
31
+ "data-slot": "menubar-portal",
32
+ ...e
33
+ });
34
+ }
35
+ function H({ className: e, ...t }) {
36
+ return /* @__PURE__ */ n(D, {
37
+ "data-slot": "menubar-trigger",
38
+ className: o("flex items-center rounded-xl px-2 py-0.75 text-sm font-medium outline-hidden select-none hover:bg-surface-muted aria-expanded:bg-surface-muted", e),
39
+ ...t
40
+ });
41
+ }
42
+ function $({ className: e, align: t = "start", alignOffset: a = -4, sideOffset: r = 8, ...d }) {
43
+ return /* @__PURE__ */ n(l, {
44
+ "data-slot": "menubar-content",
45
+ align: t,
46
+ alignOffset: a,
47
+ sideOffset: r,
48
+ className: o("min-w-48 rounded-2xl bg-popover p-1 text-popover-foreground shadow-2xl ring-1 ring-foreground/5 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-start-2 data-[side=inline-start]:slide-in-from-end-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95", e),
49
+ ...d
50
+ });
51
+ }
52
+ function q({ className: e, inset: t, variant: a = "default", ...r }) {
53
+ return /* @__PURE__ */ n(f, {
54
+ "data-slot": "menubar-item",
55
+ "data-inset": t,
56
+ "data-variant": a,
57
+ className: o("group/menubar-item gap-2.5 rounded-xl px-3 py-2 text-sm focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:ps-9.5 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive!", e),
58
+ ...r
59
+ });
60
+ }
61
+ function A({ className: e, children: t, checked: a, inset: r, ...d }) {
62
+ return /* @__PURE__ */ i(s.CheckboxItem, {
63
+ "data-slot": "menubar-checkbox-item",
64
+ "data-inset": r,
65
+ className: o("relative flex cursor-default items-center gap-2.5 rounded-xl py-2 ps-9.5 pe-3 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:ps-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0", e),
66
+ checked: a,
67
+ ...d,
68
+ children: [/* @__PURE__ */ n("span", {
69
+ className: "pointer-events-none absolute start-3 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4",
70
+ children: /* @__PURE__ */ n(s.CheckboxItemIndicator, { children: /* @__PURE__ */ n(u, { icon: c }) })
71
+ }), t]
72
+ });
73
+ }
74
+ function B({ ...e }) {
75
+ return /* @__PURE__ */ n(x, {
76
+ "data-slot": "menubar-radio-group",
77
+ ...e
78
+ });
79
+ }
80
+ function E({ className: e, children: t, inset: a, ...r }) {
81
+ return /* @__PURE__ */ i(s.RadioItem, {
82
+ "data-slot": "menubar-radio-item",
83
+ "data-inset": a,
84
+ className: o("relative flex cursor-default items-center gap-2.5 rounded-xl py-2 ps-9.5 pe-3 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:ps-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", e),
85
+ ...r,
86
+ children: [/* @__PURE__ */ n("span", {
87
+ className: "pointer-events-none absolute start-3 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4",
88
+ children: /* @__PURE__ */ n(s.RadioItemIndicator, { children: /* @__PURE__ */ n(u, { icon: c }) })
89
+ }), t]
90
+ });
91
+ }
92
+ function F({ className: e, inset: t, ...a }) {
93
+ return /* @__PURE__ */ n(b, {
94
+ "data-slot": "menubar-label",
95
+ "data-inset": t,
96
+ className: o("px-3.5 py-2.5 text-xs text-muted-foreground data-inset:ps-9.5", e),
97
+ ...a
98
+ });
99
+ }
100
+ function J({ className: e, ...t }) {
101
+ return /* @__PURE__ */ n(v, {
102
+ "data-slot": "menubar-separator",
103
+ className: o("-mx-1 my-1 h-px bg-border/50", e),
104
+ ...t
105
+ });
106
+ }
107
+ function K({ className: e, ...t }) {
108
+ return /* @__PURE__ */ n(M, {
109
+ "data-slot": "menubar-shortcut",
110
+ className: o("ms-auto text-xs tracking-widest text-muted-foreground group-focus/menubar-item:text-accent-foreground", e),
111
+ ...t
112
+ });
113
+ }
114
+ function O({ ...e }) {
115
+ return /* @__PURE__ */ n(h, {
116
+ "data-slot": "menubar-sub",
117
+ ...e
118
+ });
119
+ }
120
+ function Q({ className: e, inset: t, ...a }) {
121
+ return /* @__PURE__ */ n(z, {
122
+ "data-slot": "menubar-sub-trigger",
123
+ "data-inset": t,
124
+ className: o("gap-2 rounded-xl px-3 py-2 text-sm focus:bg-accent focus:text-accent-foreground data-inset:ps-9.5 data-open:bg-accent data-open:text-accent-foreground [&_svg:not([class*='size-'])]:size-4", e),
125
+ ...a
126
+ });
127
+ }
128
+ function U({ className: e, ...t }) {
129
+ return /* @__PURE__ */ n(w, {
130
+ "data-slot": "menubar-sub-content",
131
+ className: o("min-w-32 rounded-2xl bg-popover p-1 text-popover-foreground shadow-2xl ring-1 ring-foreground/5 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", e),
132
+ ...t
133
+ });
134
+ }
135
+ export {
136
+ G as Menubar,
137
+ A as MenubarCheckboxItem,
138
+ $ as MenubarContent,
139
+ L as MenubarGroup,
140
+ q as MenubarItem,
141
+ F as MenubarLabel,
142
+ T as MenubarMenu,
143
+ P as MenubarPortal,
144
+ B as MenubarRadioGroup,
145
+ E as MenubarRadioItem,
146
+ J as MenubarSeparator,
147
+ K as MenubarShortcut,
148
+ O as MenubarSub,
149
+ U as MenubarSubContent,
150
+ Q as MenubarSubTrigger,
151
+ H as MenubarTrigger
152
+ };
153
+
154
+ //# sourceMappingURL=menubar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menubar.js","names":[],"sources":["../../src/components/menubar/menubar.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { Menu as MenuPrimitive } from \"@base-ui/react/menu\"\nimport { Menubar as MenubarPrimitive } from \"@base-ui/react/menubar\"\n\nimport { cn } from \"../../lib/utils\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n} from \"../dropdown-menu\"\nimport { HugeiconsIcon } from \"@hugeicons/react\"\nimport { CheckIcon } from \"@hugeicons/core-free-icons\"\n\nfunction Menubar({ className, ...props }: MenubarPrimitive.Props) {\n return (\n <MenubarPrimitive\n data-slot=\"menubar\"\n className={cn(\"flex h-9 items-center rounded-4xl border p-1\", className)}\n {...props}\n />\n )\n}\n\nfunction MenubarMenu({ ...props }: React.ComponentProps<typeof DropdownMenu>) {\n return <DropdownMenu data-slot=\"menubar-menu\" {...props} />\n}\n\nfunction MenubarGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuGroup>) {\n return <DropdownMenuGroup data-slot=\"menubar-group\" {...props} />\n}\n\nfunction MenubarPortal({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPortal>) {\n return <DropdownMenuPortal data-slot=\"menubar-portal\" {...props} />\n}\n\nfunction MenubarTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuTrigger>) {\n return (\n <DropdownMenuTrigger\n data-slot=\"menubar-trigger\"\n className={cn(\n \"flex items-center rounded-xl px-2 py-0.75 text-sm font-medium outline-hidden select-none hover:bg-surface-muted aria-expanded:bg-surface-muted\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarContent({\n className,\n align = \"start\",\n alignOffset = -4,\n sideOffset = 8,\n ...props\n}: React.ComponentProps<typeof DropdownMenuContent>) {\n return (\n <DropdownMenuContent\n data-slot=\"menubar-content\"\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className={cn(\n \"min-w-48 rounded-2xl bg-popover p-1 text-popover-foreground shadow-2xl ring-1 ring-foreground/5 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-start-2 data-[side=inline-start]:slide-in-from-end-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof DropdownMenuItem>) {\n return (\n <DropdownMenuItem\n data-slot=\"menubar-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"group/menubar-item gap-2.5 rounded-xl px-3 py-2 text-sm focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:ps-9.5 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive!\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: MenuPrimitive.CheckboxItem.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.CheckboxItem\n data-slot=\"menubar-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-2.5 rounded-xl py-2 ps-9.5 pe-3 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:ps-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute start-3 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4\">\n <MenuPrimitive.CheckboxItemIndicator>\n <HugeiconsIcon icon={CheckIcon} />\n </MenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </MenuPrimitive.CheckboxItem>\n )\n}\n\nfunction MenubarRadioGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuRadioGroup>) {\n return <DropdownMenuRadioGroup data-slot=\"menubar-radio-group\" {...props} />\n}\n\nfunction MenubarRadioItem({\n className,\n children,\n inset,\n ...props\n}: MenuPrimitive.RadioItem.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.RadioItem\n data-slot=\"menubar-radio-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-2.5 rounded-xl py-2 ps-9.5 pe-3 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:ps-9.5 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute start-3 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4\">\n <MenuPrimitive.RadioItemIndicator>\n <HugeiconsIcon icon={CheckIcon} />\n </MenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </MenuPrimitive.RadioItem>\n )\n}\n\nfunction MenubarLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuLabel> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuLabel\n data-slot=\"menubar-label\"\n data-inset={inset}\n className={cn(\n \"px-3.5 py-2.5 text-xs text-muted-foreground data-inset:ps-9.5\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuSeparator>) {\n return (\n <DropdownMenuSeparator\n data-slot=\"menubar-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border/50\", className)}\n {...props}\n />\n )\n}\n\nfunction MenubarShortcut({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuShortcut>) {\n return (\n <DropdownMenuShortcut\n data-slot=\"menubar-shortcut\"\n className={cn(\n \"ms-auto text-xs tracking-widest text-muted-foreground group-focus/menubar-item:text-accent-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarSub({\n ...props\n}: React.ComponentProps<typeof DropdownMenuSub>) {\n return <DropdownMenuSub data-slot=\"menubar-sub\" {...props} />\n}\n\nfunction MenubarSubTrigger({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuSubTrigger> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuSubTrigger\n data-slot=\"menubar-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"gap-2 rounded-xl px-3 py-2 text-sm focus:bg-accent focus:text-accent-foreground data-inset:ps-9.5 data-open:bg-accent data-open:text-accent-foreground [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuSubContent>) {\n return (\n <DropdownMenuSubContent\n data-slot=\"menubar-sub-content\"\n className={cn(\n \"min-w-32 rounded-2xl bg-popover p-1 text-popover-foreground shadow-2xl ring-1 ring-foreground/5 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Menubar,\n MenubarPortal,\n MenubarMenu,\n MenubarTrigger,\n MenubarContent,\n MenubarGroup,\n MenubarSeparator,\n MenubarLabel,\n MenubarItem,\n MenubarShortcut,\n MenubarCheckboxItem,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarSub,\n MenubarSubTrigger,\n MenubarSubContent,\n}\n"],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ "use client";
2
+ import { t as a } from "../chunks/utils-kyb5nny4y41y7hd8.js";
3
+ import { jsx as r, jsxs as o } from "react/jsx-runtime";
4
+ import { HugeiconsIcon as n } from "@hugeicons/react";
5
+ import { ChevronDownIcon as s } from "@hugeicons/core-free-icons";
6
+ import "react";
7
+ function v({ className: t, size: e = "default", ...i }) {
8
+ return /* @__PURE__ */ o("div", {
9
+ className: a("group/native-select relative w-fit has-[select:disabled]:opacity-50", t),
10
+ "data-slot": "native-select-wrapper",
11
+ "data-size": e,
12
+ children: [/* @__PURE__ */ r("select", {
13
+ "data-slot": "native-select",
14
+ "data-size": e,
15
+ className: "h-9 w-full min-w-0 appearance-none rounded-4xl border border-border bg-border/30 py-1 ps-3 pe-8 text-sm transition-colors outline-none select-none selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 data-[size=sm]:h-8 dark:bg-border/30 dark:hover:bg-border/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40",
16
+ ...i
17
+ }), /* @__PURE__ */ r(n, {
18
+ icon: s,
19
+ className: "pointer-events-none absolute end-3.5 top-1/2 size-4 -translate-y-1/2 text-muted-foreground select-none",
20
+ "aria-hidden": "true",
21
+ "data-slot": "native-select-icon"
22
+ })]
23
+ });
24
+ }
25
+ function b({ className: t, ...e }) {
26
+ return /* @__PURE__ */ r("option", {
27
+ "data-slot": "native-select-option",
28
+ className: a("bg-[Canvas] text-[CanvasText]", t),
29
+ ...e
30
+ });
31
+ }
32
+ function m({ className: t, ...e }) {
33
+ return /* @__PURE__ */ r("optgroup", {
34
+ "data-slot": "native-select-optgroup",
35
+ className: a("bg-[Canvas] text-[CanvasText]", t),
36
+ ...e
37
+ });
38
+ }
39
+ export {
40
+ v as NativeSelect,
41
+ m as NativeSelectOptGroup,
42
+ b as NativeSelectOption
43
+ };
44
+
45
+ //# sourceMappingURL=native-select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-select.js","names":[],"sources":["../../src/components/native-select/native-select.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"../../lib/utils\"\nimport { HugeiconsIcon } from \"@hugeicons/react\"\nimport { ChevronDownIcon } from \"@hugeicons/core-free-icons\"\n\ntype NativeSelectProps = Omit<React.ComponentProps<\"select\">, \"size\"> & {\n size?: \"sm\" | \"default\"\n}\n\nfunction NativeSelect({\n className,\n size = \"default\",\n ...props\n}: NativeSelectProps) {\n return (\n <div\n className={cn(\n \"group/native-select relative w-fit has-[select:disabled]:opacity-50\",\n className\n )}\n data-slot=\"native-select-wrapper\"\n data-size={size}\n >\n <select\n data-slot=\"native-select\"\n data-size={size}\n className=\"h-9 w-full min-w-0 appearance-none rounded-4xl border border-border bg-border/30 py-1 ps-3 pe-8 text-sm transition-colors outline-none select-none selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 data-[size=sm]:h-8 dark:bg-border/30 dark:hover:bg-border/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40\"\n {...props}\n />\n <HugeiconsIcon\n icon={ChevronDownIcon}\n className=\"pointer-events-none absolute end-3.5 top-1/2 size-4 -translate-y-1/2 text-muted-foreground select-none\"\n aria-hidden=\"true\"\n data-slot=\"native-select-icon\"\n />\n </div>\n )\n}\n\nfunction NativeSelectOption({\n className,\n ...props\n}: React.ComponentProps<\"option\">) {\n return (\n <option\n data-slot=\"native-select-option\"\n className={cn(\"bg-[Canvas] text-[CanvasText]\", className)}\n {...props}\n />\n )\n}\n\nfunction NativeSelectOptGroup({\n className,\n ...props\n}: React.ComponentProps<\"optgroup\">) {\n return (\n <optgroup\n data-slot=\"native-select-optgroup\"\n className={cn(\"bg-[Canvas] text-[CanvasText]\", className)}\n {...props}\n />\n )\n}\n\nexport { NativeSelect, NativeSelectOptGroup, NativeSelectOption }\n"],"mappings":";;;;;;AAUA,SAAS,EAAa,EACpB,WAAA,GACA,MAAA,IAAO,WACP,GAAG,EAAA,GACiB;AACpB,SACE,gBAAA,EAAC,OAAD;AAAA,IACE,WAAW,EACT,uEACA,CACF;AAAA,IACA,aAAU;AAAA,IACV,aAAW;AAAA,cANb,CAQE,gBAAA,EAAC,UAAD;AAAA,MACE,aAAU;AAAA,MACV,aAAW;AAAA,MACX,WAAU;AAAA,MACV,GAAI;AAAA,IACL,CAAA,GACD,gBAAA,EAAC,GAAD;AAAA,MACE,MAAM;AAAA,MACN,WAAU;AAAA,MACV,eAAY;AAAA,MACZ,aAAU;AAAA,IACX,CAAA,CACE;AAAA;AAET;AAEA,SAAS,EAAmB,EAC1B,WAAA,GACA,GAAG,EAAA,GAC8B;AACjC,SACE,gBAAA,EAAC,UAAD;AAAA,IACE,aAAU;AAAA,IACV,WAAW,EAAG,iCAAiC,CAAS;AAAA,IACxD,GAAI;AAAA,EACL,CAAA;AAEL;AAEA,SAAS,EAAqB,EAC5B,WAAA,GACA,GAAG,EAAA,GACgC;AACnC,SACE,gBAAA,EAAC,YAAD;AAAA,IACE,aAAU;AAAA,IACV,WAAW,EAAG,iCAAiC,CAAS;AAAA,IACxD,GAAI;AAAA,EACL,CAAA;AAEL"}
@@ -0,0 +1,95 @@
1
+ "use client";
2
+ import { t as l } from "../chunks/dist-o8x0ip0z71xkr2oh.js";
3
+ import { t as n } from "../chunks/utils-kyb5nny4y41y7hd8.js";
4
+ import { jsx as e, jsxs as s } from "react/jsx-runtime";
5
+ import { HugeiconsIcon as g } from "@hugeicons/react";
6
+ import { ChevronDownIcon as m } from "@hugeicons/core-free-icons";
7
+ import { NavigationMenu as i } from "@base-ui/react/navigation-menu";
8
+ function y({ align: t = "start", className: a, children: o, ...r }) {
9
+ return /* @__PURE__ */ s(i.Root, {
10
+ "data-slot": "navigation-menu",
11
+ className: n("group/navigation-menu relative flex max-w-max flex-1 items-center justify-center", a),
12
+ ...r,
13
+ children: [o, /* @__PURE__ */ e(p, { align: t })]
14
+ });
15
+ }
16
+ function N({ className: t, ...a }) {
17
+ return /* @__PURE__ */ e(i.List, {
18
+ "data-slot": "navigation-menu-list",
19
+ className: n("group flex flex-1 list-none items-center justify-center gap-0", t),
20
+ ...a
21
+ });
22
+ }
23
+ function z({ className: t, ...a }) {
24
+ return /* @__PURE__ */ e(i.Item, {
25
+ "data-slot": "navigation-menu-item",
26
+ className: n("relative", t),
27
+ ...a
28
+ });
29
+ }
30
+ var c = l("group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-2xl px-4.5 py-2.5 text-sm font-medium transition-all outline-none hover:bg-surface-muted focus:bg-surface-muted focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-popup-open:bg-surface-muted/50 data-popup-open:hover:bg-surface-muted data-open:bg-surface-muted/50 data-open:hover:bg-surface-muted data-open:focus:bg-surface-muted");
31
+ function M({ className: t, children: a, ...o }) {
32
+ return /* @__PURE__ */ s(i.Trigger, {
33
+ "data-slot": "navigation-menu-trigger",
34
+ className: n(c(), "group", t),
35
+ ...o,
36
+ children: [
37
+ a,
38
+ " ",
39
+ /* @__PURE__ */ e(g, {
40
+ icon: m,
41
+ className: "relative top-px ms-1 size-3 transition duration-300 group-data-popup-open/navigation-menu-trigger:rotate-180 group-data-open/navigation-menu-trigger:rotate-180",
42
+ "aria-hidden": "true"
43
+ })
44
+ ]
45
+ });
46
+ }
47
+ function j({ className: t, ...a }) {
48
+ return /* @__PURE__ */ e(i.Content, {
49
+ "data-slot": "navigation-menu-content",
50
+ className: n("data-ending-style:data-activation-direction=left:translate-x-[50%] rtl:data-ending-style:data-activation-direction=left:-translate-x-[50%] data-ending-style:data-activation-direction=right:translate-x-[-50%] rtl:data-ending-style:data-activation-direction=right:-translate-x-[-50%] data-starting-style:data-activation-direction=left:translate-x-[-50%] rtl:data-starting-style:data-activation-direction=left:-translate-x-[-50%] data-starting-style:data-activation-direction=right:translate-x-[50%] rtl:data-starting-style:data-activation-direction=right:-translate-x-[50%] isolate z-50 h-full w-auto p-2.5 pe-3 transition-[opacity,transform,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] group-data-[viewport=false]/navigation-menu:rounded-2xl group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:shadow-2xl group-data-[viewport=false]/navigation-menu:ring-1 group-data-[viewport=false]/navigation-menu:ring-foreground/5 group-data-[viewport=false]/navigation-menu:duration-300 data-ending-style:opacity-0 data-starting-style:opacity-0 data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none group-data-[viewport=false]/navigation-menu:data-open:animate-in group-data-[viewport=false]/navigation-menu:data-open:fade-in-0 group-data-[viewport=false]/navigation-menu:data-open:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-closed:animate-out group-data-[viewport=false]/navigation-menu:data-closed:fade-out-0 group-data-[viewport=false]/navigation-menu:data-closed:zoom-out-95", t),
51
+ ...a
52
+ });
53
+ }
54
+ function p({ className: t, side: a = "bottom", sideOffset: o = 8, align: r = "start", alignOffset: d = 0, ...u }) {
55
+ return /* @__PURE__ */ e(i.Portal, { children: /* @__PURE__ */ e(i.Positioner, {
56
+ side: a,
57
+ sideOffset: o,
58
+ align: r,
59
+ alignOffset: d,
60
+ className: n("isolate z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-instant:transition-none data-[side=bottom]:before:start-0 data-[side=bottom]:before:end-0 data-[side=bottom]:before:top-[-10px]", t),
61
+ ...u,
62
+ children: /* @__PURE__ */ e(i.Popup, {
63
+ className: "data-[ending-style]:easing-[ease] xs:w-(--popup-width) relative h-(--popup-height) w-(--popup-width) origin-(--transform-origin) rounded-2xl bg-popover text-popover-foreground shadow ring-1 ring-foreground/5 transition-[opacity,transform,width,height,scale,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:scale-90 data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:scale-90 data-starting-style:opacity-0",
64
+ children: /* @__PURE__ */ e(i.Viewport, { className: "relative size-full overflow-hidden" })
65
+ })
66
+ }) });
67
+ }
68
+ function I({ className: t, ...a }) {
69
+ return /* @__PURE__ */ e(i.Link, {
70
+ "data-slot": "navigation-menu-link",
71
+ className: n("flex items-center gap-1.5 rounded-2xl p-3 text-sm transition-all outline-none hover:bg-surface-muted focus:bg-surface-muted focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 in-data-[slot=navigation-menu-content]:rounded-xl data-[active=true]:bg-surface-muted/50 data-[active=true]:hover:bg-surface-muted data-[active=true]:focus:bg-surface-muted [&_svg:not([class*='size-'])]:size-4", t),
72
+ ...a
73
+ });
74
+ }
75
+ function k({ className: t, ...a }) {
76
+ return /* @__PURE__ */ e(i.Icon, {
77
+ "data-slot": "navigation-menu-indicator",
78
+ className: n("top-full z-1 flex h-1.5 items-end justify-center overflow-hidden data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:animate-in data-[state=visible]:fade-in", t),
79
+ ...a,
80
+ children: /* @__PURE__ */ e("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-ss-sm bg-border shadow-md" })
81
+ });
82
+ }
83
+ export {
84
+ y as NavigationMenu,
85
+ j as NavigationMenuContent,
86
+ k as NavigationMenuIndicator,
87
+ z as NavigationMenuItem,
88
+ I as NavigationMenuLink,
89
+ N as NavigationMenuList,
90
+ p as NavigationMenuPositioner,
91
+ M as NavigationMenuTrigger,
92
+ c as navigationMenuTriggerStyle
93
+ };
94
+
95
+ //# sourceMappingURL=navigation-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-menu.js","names":[],"sources":["../../src/components/navigation-menu/navigation-menu.tsx"],"sourcesContent":["import { NavigationMenu as NavigationMenuPrimitive } from \"@base-ui/react/navigation-menu\"\nimport { cva } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils\"\nimport { HugeiconsIcon } from \"@hugeicons/react\"\nimport { ChevronDownIcon } from \"@hugeicons/core-free-icons\"\n\nfunction NavigationMenu({\n align = \"start\",\n className,\n children,\n ...props\n}: NavigationMenuPrimitive.Root.Props &\n Pick<NavigationMenuPrimitive.Positioner.Props, \"align\">) {\n return (\n <NavigationMenuPrimitive.Root\n data-slot=\"navigation-menu\"\n className={cn(\n \"group/navigation-menu relative flex max-w-max flex-1 items-center justify-center\",\n className\n )}\n {...props}\n >\n {children}\n <NavigationMenuPositioner align={align} />\n </NavigationMenuPrimitive.Root>\n )\n}\n\nfunction NavigationMenuList({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.List>) {\n return (\n <NavigationMenuPrimitive.List\n data-slot=\"navigation-menu-list\"\n className={cn(\n \"group flex flex-1 list-none items-center justify-center gap-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction NavigationMenuItem({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Item>) {\n return (\n <NavigationMenuPrimitive.Item\n data-slot=\"navigation-menu-item\"\n className={cn(\"relative\", className)}\n {...props}\n />\n )\n}\n\nconst navigationMenuTriggerStyle = cva(\n \"group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-2xl px-4.5 py-2.5 text-sm font-medium transition-all outline-none hover:bg-surface-muted focus:bg-surface-muted focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-popup-open:bg-surface-muted/50 data-popup-open:hover:bg-surface-muted data-open:bg-surface-muted/50 data-open:hover:bg-surface-muted data-open:focus:bg-surface-muted\"\n)\n\nfunction NavigationMenuTrigger({\n className,\n children,\n ...props\n}: NavigationMenuPrimitive.Trigger.Props) {\n return (\n <NavigationMenuPrimitive.Trigger\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), \"group\", className)}\n {...props}\n >\n {children}{\" \"}\n <HugeiconsIcon\n icon={ChevronDownIcon}\n className=\"relative top-px ms-1 size-3 transition duration-300 group-data-popup-open/navigation-menu-trigger:rotate-180 group-data-open/navigation-menu-trigger:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n )\n}\n\nfunction NavigationMenuContent({\n className,\n ...props\n}: NavigationMenuPrimitive.Content.Props) {\n return (\n <NavigationMenuPrimitive.Content\n data-slot=\"navigation-menu-content\"\n className={cn(\n \"data-ending-style:data-activation-direction=left:translate-x-[50%] rtl:data-ending-style:data-activation-direction=left:-translate-x-[50%] data-ending-style:data-activation-direction=right:translate-x-[-50%] rtl:data-ending-style:data-activation-direction=right:-translate-x-[-50%] data-starting-style:data-activation-direction=left:translate-x-[-50%] rtl:data-starting-style:data-activation-direction=left:-translate-x-[-50%] data-starting-style:data-activation-direction=right:translate-x-[50%] rtl:data-starting-style:data-activation-direction=right:-translate-x-[50%] isolate z-50 h-full w-auto p-2.5 pe-3 transition-[opacity,transform,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] group-data-[viewport=false]/navigation-menu:rounded-2xl group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:shadow-2xl group-data-[viewport=false]/navigation-menu:ring-1 group-data-[viewport=false]/navigation-menu:ring-foreground/5 group-data-[viewport=false]/navigation-menu:duration-300 data-ending-style:opacity-0 data-starting-style:opacity-0 data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none group-data-[viewport=false]/navigation-menu:data-open:animate-in group-data-[viewport=false]/navigation-menu:data-open:fade-in-0 group-data-[viewport=false]/navigation-menu:data-open:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-closed:animate-out group-data-[viewport=false]/navigation-menu:data-closed:fade-out-0 group-data-[viewport=false]/navigation-menu:data-closed:zoom-out-95\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction NavigationMenuPositioner({\n className,\n side = \"bottom\",\n sideOffset = 8,\n align = \"start\",\n alignOffset = 0,\n ...props\n}: NavigationMenuPrimitive.Positioner.Props) {\n return (\n <NavigationMenuPrimitive.Portal>\n <NavigationMenuPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n className={cn(\n \"isolate z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-instant:transition-none data-[side=bottom]:before:start-0 data-[side=bottom]:before:end-0 data-[side=bottom]:before:top-[-10px]\",\n className\n )}\n {...props}\n >\n <NavigationMenuPrimitive.Popup className=\"data-[ending-style]:easing-[ease] xs:w-(--popup-width) relative h-(--popup-height) w-(--popup-width) origin-(--transform-origin) rounded-2xl bg-popover text-popover-foreground shadow ring-1 ring-foreground/5 transition-[opacity,transform,width,height,scale,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:scale-90 data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:scale-90 data-starting-style:opacity-0\">\n <NavigationMenuPrimitive.Viewport className=\"relative size-full overflow-hidden\" />\n </NavigationMenuPrimitive.Popup>\n </NavigationMenuPrimitive.Positioner>\n </NavigationMenuPrimitive.Portal>\n )\n}\n\nfunction NavigationMenuLink({\n className,\n ...props\n}: NavigationMenuPrimitive.Link.Props) {\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(\n \"flex items-center gap-1.5 rounded-2xl p-3 text-sm transition-all outline-none hover:bg-surface-muted focus:bg-surface-muted focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 in-data-[slot=navigation-menu-content]:rounded-xl data-[active=true]:bg-surface-muted/50 data-[active=true]:hover:bg-surface-muted data-[active=true]:focus:bg-surface-muted [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction NavigationMenuIndicator({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Icon>) {\n return (\n <NavigationMenuPrimitive.Icon\n data-slot=\"navigation-menu-indicator\"\n className={cn(\n \"top-full z-1 flex h-1.5 items-end justify-center overflow-hidden data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:animate-in data-[state=visible]:fade-in\",\n className\n )}\n {...props}\n >\n <div className=\"relative top-[60%] h-2 w-2 rotate-45 rounded-ss-sm bg-border shadow-md\" />\n </NavigationMenuPrimitive.Icon>\n )\n}\n\nexport {\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuIndicator,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuTrigger,\n navigationMenuTriggerStyle,\n NavigationMenuPositioner,\n}\n"],"mappings":";;;;;;;AAOA,SAAS,EAAe,EACtB,OAAA,IAAQ,SACR,WAAA,GACA,UAAA,GACA,GAAG,EAAA,GAEsD;AACzD,SACE,gBAAA,EAAC,EAAwB,MAAzB;AAAA,IACE,aAAU;AAAA,IACV,WAAW,EACT,oFACA,CACF;AAAA,IACA,GAAI;AAAA,cANN,CAQG,GACD,gBAAA,EAAC,GAAD,EAAiC,OAAA,EAAQ,CAAA,CACb;AAAA;AAElC;AAEA,SAAS,EAAmB,EAC1B,WAAA,GACA,GAAG,EAAA,GACgE;AACnE,SACE,gBAAA,EAAC,EAAwB,MAAzB;AAAA,IACE,aAAU;AAAA,IACV,WAAW,EACT,iEACA,CACF;AAAA,IACA,GAAI;AAAA,EACL,CAAA;AAEL;AAEA,SAAS,EAAmB,EAC1B,WAAA,GACA,GAAG,EAAA,GACgE;AACnE,SACE,gBAAA,EAAC,EAAwB,MAAzB;AAAA,IACE,aAAU;AAAA,IACV,WAAW,EAAG,YAAY,CAAS;AAAA,IACnC,GAAI;AAAA,EACL,CAAA;AAEL;AAEA,IAAM,IAA6B,EACjC,ifACF;AAEA,SAAS,EAAsB,EAC7B,WAAA,GACA,UAAA,GACA,GAAG,EAAA,GACqC;AACxC,SACE,gBAAA,EAAC,EAAwB,SAAzB;AAAA,IACE,aAAU;AAAA,IACV,WAAW,EAAG,EAA2B,GAAG,SAAS,CAAS;AAAA,IAC9D,GAAI;AAAA,cAHN;AAAA,MAKG;AAAA,MAAU;AAAA,MACX,gBAAA,EAAC,GAAD;AAAA,QACE,MAAM;AAAA,QACN,WAAU;AAAA,QACV,eAAY;AAAA,MACb,CAAA;AAAA,IAC8B;AAAA;AAErC;AAEA,SAAS,EAAsB,EAC7B,WAAA,GACA,GAAG,EAAA,GACqC;AACxC,SACE,gBAAA,EAAC,EAAwB,SAAzB;AAAA,IACE,aAAU;AAAA,IACV,WAAW,EACT,i7DACA,CACF;AAAA,IACA,GAAI;AAAA,EACL,CAAA;AAEL;AAEA,SAAS,EAAyB,EAChC,WAAA,GACA,MAAA,IAAO,UACP,YAAA,IAAa,GACb,OAAA,IAAQ,SACR,aAAA,IAAc,GACd,GAAG,EAAA,GACwC;AAC3C,SACE,gBAAA,EAAC,EAAwB,QAAzB,EAAA,UACE,gBAAA,EAAC,EAAwB,YAAzB;AAAA,IACQ,MAAA;AAAA,IACM,YAAA;AAAA,IACL,OAAA;AAAA,IACM,aAAA;AAAA,IACb,WAAW,EACT,qTACA,CACF;AAAA,IACA,GAAI;AAAA,cAEJ,gBAAA,EAAC,EAAwB,OAAzB;AAAA,MAA+B,WAAU;AAAA,gBACvC,gBAAA,EAAC,EAAwB,UAAzB,EAAkC,WAAU,qCAAsC,CAAA;AAAA,IACrD,CAAA;AAAA,EACG,CAAA,EACN,CAAA;AAEpC;AAEA,SAAS,EAAmB,EAC1B,WAAA,GACA,GAAG,EAAA,GACkC;AACrC,SACE,gBAAA,EAAC,EAAwB,MAAzB;AAAA,IACE,aAAU;AAAA,IACV,WAAW,EACT,6ZACA,CACF;AAAA,IACA,GAAI;AAAA,EACL,CAAA;AAEL;AAEA,SAAS,EAAwB,EAC/B,WAAA,GACA,GAAG,EAAA,GACgE;AACnE,SACE,gBAAA,EAAC,EAAwB,MAAzB;AAAA,IACE,aAAU;AAAA,IACV,WAAW,EACT,8LACA,CACF;AAAA,IACA,GAAI;AAAA,cAEJ,gBAAA,EAAC,OAAD,EAAK,WAAU,yEAA0E,CAAA;AAAA,EAC7D,CAAA;AAElC"}