@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,23 @@
1
+ "use client";
2
+ import { t as o } from "../chunks/utils-kyb5nny4y41y7hd8.js";
3
+ import { jsx as r } from "react/jsx-runtime";
4
+ import { HugeiconsIcon as t } from "@hugeicons/react";
5
+ import { CheckIcon as d } from "@hugeicons/core-free-icons";
6
+ import { Checkbox as e } from "@base-ui/react/checkbox";
7
+ function p({ className: i, ...a }) {
8
+ return /* @__PURE__ */ r(e.Root, {
9
+ "data-slot": "checkbox",
10
+ className: o("peer relative flex size-4 shrink-0 items-center justify-center rounded-[6px] border border-border transition-shadow outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-border/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary", i),
11
+ ...a,
12
+ children: /* @__PURE__ */ r(e.Indicator, {
13
+ "data-slot": "checkbox-indicator",
14
+ className: "grid place-content-center text-current transition-none [&>svg]:size-3.5",
15
+ children: /* @__PURE__ */ r(t, { icon: d })
16
+ })
17
+ });
18
+ }
19
+ export {
20
+ p as Checkbox
21
+ };
22
+
23
+ //# sourceMappingURL=checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.js","names":[],"sources":["../../src/components/checkbox/checkbox.tsx"],"sourcesContent":["\"use client\"\n\nimport { Checkbox as CheckboxPrimitive } from \"@base-ui/react/checkbox\"\n\nimport { cn } from \"../../lib/utils\"\nimport { HugeiconsIcon } from \"@hugeicons/react\"\nimport { CheckIcon } from \"@hugeicons/core-free-icons\"\n\nfunction Checkbox({ className, ...props }: CheckboxPrimitive.Root.Props) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"peer relative flex size-4 shrink-0 items-center justify-center rounded-[6px] border border-border transition-shadow outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-border/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current transition-none [&>svg]:size-3.5\"\n >\n <HugeiconsIcon icon={CheckIcon} />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nexport { Checkbox }\n"],"mappings":";;;;;;AAQA,SAAS,EAAS,EAAE,WAAA,GAAW,GAAG,EAAA,GAAuC;AACvE,SACE,gBAAA,EAAC,EAAkB,MAAnB;AAAA,IACE,aAAU;AAAA,IACV,WAAW,EACT,+qBACA,CACF;AAAA,IACA,GAAI;AAAA,cAEJ,gBAAA,EAAC,EAAkB,WAAnB;AAAA,MACE,aAAU;AAAA,MACV,WAAU;AAAA,gBAEV,gBAAA,EAAC,GAAD,EAAe,MAAM,EAAY,CAAA;AAAA,IACN,CAAA;AAAA,EACP,CAAA;AAE5B"}
@@ -0,0 +1,28 @@
1
+ "use client";
2
+ import { jsx as o } from "react/jsx-runtime";
3
+ import { Collapsible as t } from "@base-ui/react/collapsible";
4
+ function r({ ...l }) {
5
+ return /* @__PURE__ */ o(t.Root, {
6
+ "data-slot": "collapsible",
7
+ ...l
8
+ });
9
+ }
10
+ function a({ ...l }) {
11
+ return /* @__PURE__ */ o(t.Trigger, {
12
+ "data-slot": "collapsible-trigger",
13
+ ...l
14
+ });
15
+ }
16
+ function n({ ...l }) {
17
+ return /* @__PURE__ */ o(t.Panel, {
18
+ "data-slot": "collapsible-content",
19
+ ...l
20
+ });
21
+ }
22
+ export {
23
+ r as Collapsible,
24
+ n as CollapsibleContent,
25
+ a as CollapsibleTrigger
26
+ };
27
+
28
+ //# sourceMappingURL=collapsible.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collapsible.js","names":[],"sources":["../../src/components/collapsible/collapsible.tsx"],"sourcesContent":["import { Collapsible as CollapsiblePrimitive } from \"@base-ui/react/collapsible\"\n\nfunction Collapsible({ ...props }: CollapsiblePrimitive.Root.Props) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />\n}\n\nfunction CollapsibleTrigger({ ...props }: CollapsiblePrimitive.Trigger.Props) {\n return (\n <CollapsiblePrimitive.Trigger data-slot=\"collapsible-trigger\" {...props} />\n )\n}\n\nfunction CollapsibleContent({ ...props }: CollapsiblePrimitive.Panel.Props) {\n return (\n <CollapsiblePrimitive.Panel data-slot=\"collapsible-content\" {...props} />\n )\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n"],"mappings":";;;AAEA,SAAS,EAAY,EAAE,GAAG,EAAA,GAA0C;AAClE,SAAO,gBAAA,EAAC,EAAqB,MAAtB;AAAA,IAA2B,aAAU;AAAA,IAAc,GAAI;AAAA,EAAQ,CAAA;AACxE;AAEA,SAAS,EAAmB,EAAE,GAAG,EAAA,GAA6C;AAC5E,SACE,gBAAA,EAAC,EAAqB,SAAtB;AAAA,IAA8B,aAAU;AAAA,IAAsB,GAAI;AAAA,EAAQ,CAAA;AAE9E;AAEA,SAAS,EAAmB,EAAE,GAAG,EAAA,GAA2C;AAC1E,SACE,gBAAA,EAAC,EAAqB,OAAtB;AAAA,IAA4B,aAAU;AAAA,IAAsB,GAAI;AAAA,EAAQ,CAAA;AAE5E"}
@@ -0,0 +1,192 @@
1
+ "use client";
2
+ import { t as n } from "../chunks/utils-kyb5nny4y41y7hd8.js";
3
+ import { Button as b } from "./button.js";
4
+ import { InputGroup as x, InputGroupAddon as h, InputGroupButton as m, InputGroupInput as g } from "./input-group.js";
5
+ import { jsx as t, jsxs as s } from "react/jsx-runtime";
6
+ import { HugeiconsIcon as c } from "@hugeicons/react";
7
+ import { Cancel01Icon as u, CheckIcon as f, ChevronDownIcon as v } from "@hugeicons/core-free-icons";
8
+ import * as C from "react";
9
+ import { Combobox as a } from "@base-ui/react";
10
+ var R = a.Root;
11
+ function _({ ...o }) {
12
+ return /* @__PURE__ */ t(a.Value, {
13
+ "data-slot": "combobox-value",
14
+ ...o
15
+ });
16
+ }
17
+ function w({ className: o, children: e, ...r }) {
18
+ return /* @__PURE__ */ s(a.Trigger, {
19
+ "data-slot": "combobox-trigger",
20
+ className: n("[&_svg:not([class*='size-'])]:size-4", o),
21
+ ...r,
22
+ children: [e, /* @__PURE__ */ t(c, {
23
+ icon: v,
24
+ className: "pointer-events-none size-4 text-muted-foreground"
25
+ })]
26
+ });
27
+ }
28
+ function N({ className: o, ...e }) {
29
+ return /* @__PURE__ */ t(a.Clear, {
30
+ "data-slot": "combobox-clear",
31
+ render: /* @__PURE__ */ t(m, {
32
+ variant: "ghost",
33
+ size: "icon-xs"
34
+ }),
35
+ className: n(o),
36
+ ...e,
37
+ children: /* @__PURE__ */ t(c, {
38
+ icon: u,
39
+ className: "pointer-events-none"
40
+ })
41
+ });
42
+ }
43
+ function P({ className: o, children: e, disabled: r = !1, showTrigger: i = !0, showClear: l = !1, ...d }) {
44
+ return /* @__PURE__ */ s(x, {
45
+ className: n("w-auto", o),
46
+ children: [
47
+ /* @__PURE__ */ t(a.Input, {
48
+ render: /* @__PURE__ */ t(g, { disabled: r }),
49
+ ...d
50
+ }),
51
+ /* @__PURE__ */ s(h, {
52
+ align: "inline-end",
53
+ children: [i && /* @__PURE__ */ t(m, {
54
+ size: "icon-xs",
55
+ variant: "ghost",
56
+ render: /* @__PURE__ */ t(w, {}),
57
+ "data-slot": "input-group-button",
58
+ className: "group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent",
59
+ disabled: r
60
+ }), l && /* @__PURE__ */ t(N, { disabled: r })]
61
+ }),
62
+ e
63
+ ]
64
+ });
65
+ }
66
+ function A({ className: o, side: e = "bottom", sideOffset: r = 6, align: i = "start", alignOffset: l = 0, anchor: d, ...p }) {
67
+ return /* @__PURE__ */ t(a.Portal, { children: /* @__PURE__ */ t(a.Positioner, {
68
+ side: e,
69
+ sideOffset: r,
70
+ align: i,
71
+ alignOffset: l,
72
+ anchor: d,
73
+ className: "isolate z-50",
74
+ children: /* @__PURE__ */ t(a.Popup, {
75
+ "data-slot": "combobox-content",
76
+ "data-chips": !!d,
77
+ className: n("group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-2xl bg-popover text-popover-foreground shadow-2xl ring-1 ring-foreground/5 duration-100 data-[chips=true]:min-w-(--anchor-width) 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-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-9 *:data-[slot=input-group]:border-none *:data-[slot=input-group]:bg-border/30 *:data-[slot=input-group]:shadow-none 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", o),
78
+ ...p
79
+ })
80
+ }) });
81
+ }
82
+ function B({ className: o, ...e }) {
83
+ return /* @__PURE__ */ t(a.List, {
84
+ "data-slot": "combobox-list",
85
+ className: n("no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0", o),
86
+ ...e
87
+ });
88
+ }
89
+ function E({ className: o, children: e, ...r }) {
90
+ return /* @__PURE__ */ s(a.Item, {
91
+ "data-slot": "combobox-item",
92
+ className: n("relative flex w-full cursor-default items-center gap-2.5 rounded-xl py-2 ps-3 pe-8 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", o),
93
+ ...r,
94
+ children: [e, /* @__PURE__ */ t(a.ItemIndicator, {
95
+ render: /* @__PURE__ */ t("span", { className: "pointer-events-none absolute end-2 flex size-4 items-center justify-center" }),
96
+ children: /* @__PURE__ */ t(c, {
97
+ icon: f,
98
+ className: "pointer-events-none"
99
+ })
100
+ })]
101
+ });
102
+ }
103
+ function S({ className: o, ...e }) {
104
+ return /* @__PURE__ */ t(a.Group, {
105
+ "data-slot": "combobox-group",
106
+ className: n(o),
107
+ ...e
108
+ });
109
+ }
110
+ function T({ className: o, ...e }) {
111
+ return /* @__PURE__ */ t(a.GroupLabel, {
112
+ "data-slot": "combobox-label",
113
+ className: n("px-3.5 py-2.5 text-xs text-muted-foreground", o),
114
+ ...e
115
+ });
116
+ }
117
+ function V({ ...o }) {
118
+ return /* @__PURE__ */ t(a.Collection, {
119
+ "data-slot": "combobox-collection",
120
+ ...o
121
+ });
122
+ }
123
+ function D({ className: o, ...e }) {
124
+ return /* @__PURE__ */ t(a.Empty, {
125
+ "data-slot": "combobox-empty",
126
+ className: n("hidden w-full justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex", o),
127
+ ...e
128
+ });
129
+ }
130
+ function H({ className: o, ...e }) {
131
+ return /* @__PURE__ */ t(a.Separator, {
132
+ "data-slot": "combobox-separator",
133
+ className: n("-mx-1 my-1 h-px bg-border/50", o),
134
+ ...e
135
+ });
136
+ }
137
+ function $({ className: o, ...e }) {
138
+ return /* @__PURE__ */ t(a.Chips, {
139
+ "data-slot": "combobox-chips",
140
+ className: n("flex min-h-9 flex-wrap items-center gap-1.5 rounded-4xl border border-border bg-border/30 bg-clip-padding px-2.5 py-1.5 text-sm transition-colors focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/50 has-aria-invalid:border-destructive has-aria-invalid:ring-[3px] has-aria-invalid:ring-destructive/20 has-data-[slot=combobox-chip]:px-1.5 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40", o),
141
+ ...e
142
+ });
143
+ }
144
+ function q({ className: o, children: e, showRemove: r = !0, ...i }) {
145
+ return /* @__PURE__ */ s(a.Chip, {
146
+ "data-slot": "combobox-chip",
147
+ className: n("flex h-[calc(--spacing(5.5))] w-fit items-center justify-center gap-1 rounded-4xl bg-muted-foreground/10 px-2 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pe-0", o),
148
+ ...i,
149
+ children: [e, r && /* @__PURE__ */ t(a.ChipRemove, {
150
+ render: /* @__PURE__ */ t(b, {
151
+ variant: "ghost",
152
+ size: "icon-xs"
153
+ }),
154
+ className: "-ms-1 opacity-50 hover:opacity-100",
155
+ "data-slot": "combobox-chip-remove",
156
+ children: /* @__PURE__ */ t(c, {
157
+ icon: u,
158
+ className: "pointer-events-none"
159
+ })
160
+ })]
161
+ });
162
+ }
163
+ function F({ className: o, ...e }) {
164
+ return /* @__PURE__ */ t(a.Input, {
165
+ "data-slot": "combobox-chip-input",
166
+ className: n("min-w-16 flex-1 outline-none", o),
167
+ ...e
168
+ });
169
+ }
170
+ function J() {
171
+ return C.useRef(null);
172
+ }
173
+ export {
174
+ R as Combobox,
175
+ q as ComboboxChip,
176
+ $ as ComboboxChips,
177
+ F as ComboboxChipsInput,
178
+ V as ComboboxCollection,
179
+ A as ComboboxContent,
180
+ D as ComboboxEmpty,
181
+ S as ComboboxGroup,
182
+ P as ComboboxInput,
183
+ E as ComboboxItem,
184
+ T as ComboboxLabel,
185
+ B as ComboboxList,
186
+ H as ComboboxSeparator,
187
+ w as ComboboxTrigger,
188
+ _ as ComboboxValue,
189
+ J as useComboboxAnchor
190
+ };
191
+
192
+ //# sourceMappingURL=combobox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combobox.js","names":[],"sources":["../../src/components/combobox/combobox.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\"\n\nimport { cn } from \"../../lib/utils\"\nimport { Button } from \"../button\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n} from \"../input-group\"\nimport { HugeiconsIcon } from \"@hugeicons/react\"\nimport {\n ChevronDownIcon,\n Cancel01Icon,\n CheckIcon,\n} from \"@hugeicons/core-free-icons\"\n\nconst Combobox = ComboboxPrimitive.Root\n\nfunction ComboboxValue({ ...props }: ComboboxPrimitive.Value.Props) {\n return <ComboboxPrimitive.Value data-slot=\"combobox-value\" {...props} />\n}\n\nfunction ComboboxTrigger({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Trigger.Props) {\n return (\n <ComboboxPrimitive.Trigger\n data-slot=\"combobox-trigger\"\n className={cn(\"[&_svg:not([class*='size-'])]:size-4\", className)}\n {...props}\n >\n {children}\n <HugeiconsIcon\n icon={ChevronDownIcon}\n className=\"pointer-events-none size-4 text-muted-foreground\"\n />\n </ComboboxPrimitive.Trigger>\n )\n}\n\nfunction ComboboxClear({ className, ...props }: ComboboxPrimitive.Clear.Props) {\n return (\n <ComboboxPrimitive.Clear\n data-slot=\"combobox-clear\"\n render={<InputGroupButton variant=\"ghost\" size=\"icon-xs\" />}\n className={cn(className)}\n {...props}\n >\n <HugeiconsIcon icon={Cancel01Icon} className=\"pointer-events-none\" />\n </ComboboxPrimitive.Clear>\n )\n}\n\nfunction ComboboxInput({\n className,\n children,\n disabled = false,\n showTrigger = true,\n showClear = false,\n ...props\n}: ComboboxPrimitive.Input.Props & {\n showTrigger?: boolean\n showClear?: boolean\n}) {\n return (\n <InputGroup className={cn(\"w-auto\", className)}>\n <ComboboxPrimitive.Input\n render={<InputGroupInput disabled={disabled} />}\n {...props}\n />\n <InputGroupAddon align=\"inline-end\">\n {showTrigger && (\n <InputGroupButton\n size=\"icon-xs\"\n variant=\"ghost\"\n render={<ComboboxTrigger />}\n data-slot=\"input-group-button\"\n className=\"group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent\"\n disabled={disabled}\n />\n )}\n {showClear && <ComboboxClear disabled={disabled} />}\n </InputGroupAddon>\n {children}\n </InputGroup>\n )\n}\n\nfunction ComboboxContent({\n className,\n side = \"bottom\",\n sideOffset = 6,\n align = \"start\",\n alignOffset = 0,\n anchor,\n ...props\n}: ComboboxPrimitive.Popup.Props &\n Pick<\n ComboboxPrimitive.Positioner.Props,\n \"side\" | \"align\" | \"sideOffset\" | \"alignOffset\" | \"anchor\"\n >) {\n return (\n <ComboboxPrimitive.Portal>\n <ComboboxPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n anchor={anchor}\n className=\"isolate z-50\"\n >\n <ComboboxPrimitive.Popup\n data-slot=\"combobox-content\"\n data-chips={!!anchor}\n className={cn(\n \"group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-2xl bg-popover text-popover-foreground shadow-2xl ring-1 ring-foreground/5 duration-100 data-[chips=true]:min-w-(--anchor-width) 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-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-9 *:data-[slot=input-group]:border-none *:data-[slot=input-group]:bg-border/30 *:data-[slot=input-group]:shadow-none 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 </ComboboxPrimitive.Positioner>\n </ComboboxPrimitive.Portal>\n )\n}\n\nfunction ComboboxList({ className, ...props }: ComboboxPrimitive.List.Props) {\n return (\n <ComboboxPrimitive.List\n data-slot=\"combobox-list\"\n className={cn(\n \"no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxItem({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Item.Props) {\n return (\n <ComboboxPrimitive.Item\n data-slot=\"combobox-item\"\n className={cn(\n \"relative flex w-full cursor-default items-center gap-2.5 rounded-xl py-2 ps-3 pe-8 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground 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 {children}\n <ComboboxPrimitive.ItemIndicator\n render={\n <span className=\"pointer-events-none absolute end-2 flex size-4 items-center justify-center\" />\n }\n >\n <HugeiconsIcon icon={CheckIcon} className=\"pointer-events-none\" />\n </ComboboxPrimitive.ItemIndicator>\n </ComboboxPrimitive.Item>\n )\n}\n\nfunction ComboboxGroup({ className, ...props }: ComboboxPrimitive.Group.Props) {\n return (\n <ComboboxPrimitive.Group\n data-slot=\"combobox-group\"\n className={cn(className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxLabel({\n className,\n ...props\n}: ComboboxPrimitive.GroupLabel.Props) {\n return (\n <ComboboxPrimitive.GroupLabel\n data-slot=\"combobox-label\"\n className={cn(\"px-3.5 py-2.5 text-xs text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxCollection({ ...props }: ComboboxPrimitive.Collection.Props) {\n return (\n <ComboboxPrimitive.Collection data-slot=\"combobox-collection\" {...props} />\n )\n}\n\nfunction ComboboxEmpty({ className, ...props }: ComboboxPrimitive.Empty.Props) {\n return (\n <ComboboxPrimitive.Empty\n data-slot=\"combobox-empty\"\n className={cn(\n \"hidden w-full justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxSeparator({\n className,\n ...props\n}: ComboboxPrimitive.Separator.Props) {\n return (\n <ComboboxPrimitive.Separator\n data-slot=\"combobox-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border/50\", className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxChips({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof ComboboxPrimitive.Chips> &\n ComboboxPrimitive.Chips.Props) {\n return (\n <ComboboxPrimitive.Chips\n data-slot=\"combobox-chips\"\n className={cn(\n \"flex min-h-9 flex-wrap items-center gap-1.5 rounded-4xl border border-border bg-border/30 bg-clip-padding px-2.5 py-1.5 text-sm transition-colors focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/50 has-aria-invalid:border-destructive has-aria-invalid:ring-[3px] has-aria-invalid:ring-destructive/20 has-data-[slot=combobox-chip]:px-1.5 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxChip({\n className,\n children,\n showRemove = true,\n ...props\n}: ComboboxPrimitive.Chip.Props & {\n showRemove?: boolean\n}) {\n return (\n <ComboboxPrimitive.Chip\n data-slot=\"combobox-chip\"\n className={cn(\n \"flex h-[calc(--spacing(5.5))] w-fit items-center justify-center gap-1 rounded-4xl bg-muted-foreground/10 px-2 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pe-0\",\n className\n )}\n {...props}\n >\n {children}\n {showRemove && (\n <ComboboxPrimitive.ChipRemove\n render={<Button variant=\"ghost\" size=\"icon-xs\" />}\n className=\"-ms-1 opacity-50 hover:opacity-100\"\n data-slot=\"combobox-chip-remove\"\n >\n <HugeiconsIcon icon={Cancel01Icon} className=\"pointer-events-none\" />\n </ComboboxPrimitive.ChipRemove>\n )}\n </ComboboxPrimitive.Chip>\n )\n}\n\nfunction ComboboxChipsInput({\n className,\n ...props\n}: ComboboxPrimitive.Input.Props) {\n return (\n <ComboboxPrimitive.Input\n data-slot=\"combobox-chip-input\"\n className={cn(\"min-w-16 flex-1 outline-none\", className)}\n {...props}\n />\n )\n}\n\nfunction useComboboxAnchor() {\n return React.useRef<HTMLDivElement | null>(null)\n}\n\nexport {\n Combobox,\n ComboboxInput,\n ComboboxContent,\n ComboboxList,\n ComboboxItem,\n ComboboxGroup,\n ComboboxLabel,\n ComboboxCollection,\n ComboboxEmpty,\n ComboboxSeparator,\n ComboboxChips,\n ComboboxChip,\n ComboboxChipsInput,\n ComboboxTrigger,\n ComboboxValue,\n useComboboxAnchor,\n}\n"],"mappings":"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"}