xertica-ui 2.7.0 → 2.8.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 (228) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +19 -11
  3. package/bin/generate-tokens.ts +25 -9
  4. package/components/assistant/xertica-assistant/xertica-assistant.tsx +1 -1
  5. package/components/ui/button/button.test.tsx +2 -2
  6. package/components/ui/button/button.tsx +6 -6
  7. package/components/ui/card/card.tsx +14 -2
  8. package/components/ui/input/input.tsx +1 -1
  9. package/components/ui/input-otp/input-otp.tsx +1 -1
  10. package/components/ui/search/search.tsx +1 -1
  11. package/components/ui/select/select.tsx +2 -2
  12. package/components/ui/switch/switch.tsx +1 -1
  13. package/components/ui/textarea/textarea.tsx +1 -1
  14. package/contexts/BrandColorsContext.tsx +50 -2
  15. package/contexts/theme-data.ts +100 -3
  16. package/dist/AssistantChart-BFBJXVcm.js +3383 -0
  17. package/dist/AssistantChart-BTnE94FR.cjs +3551 -0
  18. package/dist/AssistantChart-BvccsQMx.cjs +3551 -0
  19. package/dist/AssistantChart-CkskcBVD.js +3383 -0
  20. package/dist/AssistantChart-CrPkO9ip.js +3383 -0
  21. package/dist/AssistantChart-DKz2O1R8.cjs +3551 -0
  22. package/dist/AssistantChart-DYL6UEvo.cjs +3551 -0
  23. package/dist/AssistantChart-keo-ogKi.js +3383 -0
  24. package/dist/AudioPlayer-AoU5MTiM.cjs +1282 -0
  25. package/dist/AudioPlayer-Bx1vrblm.js +1278 -0
  26. package/dist/AudioPlayer-D0-I6J3J.cjs +1282 -0
  27. package/dist/AudioPlayer-DIWX_Yg7.cjs +1282 -0
  28. package/dist/AudioPlayer-DrWJnS7c.js +1278 -0
  29. package/dist/AudioPlayer-_P-Z7pAK.js +1278 -0
  30. package/dist/BrandColorsContext-B25Bpr3b.cjs +819 -0
  31. package/dist/BrandColorsContext-BCieATdW.js +812 -0
  32. package/dist/BrandColorsContext-DP0DXAXS.js +824 -0
  33. package/dist/BrandColorsContext-DjpC9wR_.cjs +798 -0
  34. package/dist/BrandColorsContext-MpXFhte7.cjs +831 -0
  35. package/dist/BrandColorsContext-V3tOc-Zw.js +791 -0
  36. package/dist/CodeBlock-CK4rO6lM.js +221 -0
  37. package/dist/CodeBlock-CKXamfVd.cjs +223 -0
  38. package/dist/CodeBlock-CVmE7isS.cjs +223 -0
  39. package/dist/CodeBlock-D7i5-cMv.js +221 -0
  40. package/dist/CodeBlock-Dg56j2ut.cjs +223 -0
  41. package/dist/CodeBlock-Dt6nUQoo.js +221 -0
  42. package/dist/CustomTooltipContent-Bxynuq7T.js +33 -0
  43. package/dist/CustomTooltipContent-BzjOSA0P.cjs +54 -0
  44. package/dist/CustomTooltipContent-C-ZeCNsf.js +33 -0
  45. package/dist/CustomTooltipContent-CON_QrXm.cjs +54 -0
  46. package/dist/CustomTooltipContent-UR_n2QfW.js +33 -0
  47. package/dist/CustomTooltipContent-v1SXjoFn.cjs +54 -0
  48. package/dist/FeatureCard-4n_8a63v.cjs +497 -0
  49. package/dist/FeatureCard-BLiAWT3w.js +485 -0
  50. package/dist/FeatureCard-BXRW97Ef.cjs +497 -0
  51. package/dist/FeatureCard-CDgLlWE2.js +485 -0
  52. package/dist/FeatureCard-CgQ8lq-I.cjs +497 -0
  53. package/dist/FeatureCard-Cp8cVC6T.cjs +497 -0
  54. package/dist/FeatureCard-D0MwrTRP.js +485 -0
  55. package/dist/FeatureCard-uE5i0in_.js +485 -0
  56. package/dist/ImageWithFallback-BOh1FM3I.js +98 -0
  57. package/dist/ImageWithFallback-BQO7952C.js +98 -0
  58. package/dist/ImageWithFallback-BkMXHCvV.cjs +122 -0
  59. package/dist/ImageWithFallback-C72nwszA.cjs +122 -0
  60. package/dist/ImageWithFallback-CCUMDuEC.cjs +122 -0
  61. package/dist/ImageWithFallback-DQD5TTlY.js +98 -0
  62. package/dist/LanguageSelector-1XhM7R1i.cjs +48 -0
  63. package/dist/LanguageSelector-B3ZVNc55.js +46 -0
  64. package/dist/LanguageSelector-Cj6zl0CM.js +46 -0
  65. package/dist/LanguageSelector-DK1zD4VH.cjs +48 -0
  66. package/dist/LanguageSelector-DseCAa0p.cjs +48 -0
  67. package/dist/LanguageSelector-Du09anfM.js +46 -0
  68. package/dist/LanguageSelector-PZHlFfEs.cjs +48 -0
  69. package/dist/LanguageSelector-SB-NJSmx.js +46 -0
  70. package/dist/PasswordStrengthMeter-B3S6i_k4.cjs +179 -0
  71. package/dist/PasswordStrengthMeter-B8ky1nJI.js +173 -0
  72. package/dist/PasswordStrengthMeter-C5VEopH-.cjs +179 -0
  73. package/dist/PasswordStrengthMeter-CIm7_jNT.js +173 -0
  74. package/dist/PasswordStrengthMeter-DKSAbQzu.js +173 -0
  75. package/dist/PasswordStrengthMeter-DxLu54p-.cjs +179 -0
  76. package/dist/PasswordStrengthMeter-k-e9Pole.cjs +179 -0
  77. package/dist/PasswordStrengthMeter-pAi2viq5.js +173 -0
  78. package/dist/ThemeToggle-4pQbVkpK.js +215 -0
  79. package/dist/ThemeToggle-B6rIVLvC.cjs +219 -0
  80. package/dist/ThemeToggle-BUOTps5l.cjs +219 -0
  81. package/dist/ThemeToggle-CO5mPl6e.js +215 -0
  82. package/dist/ThemeToggle-DbZQ0JSV.cjs +219 -0
  83. package/dist/ThemeToggle-vLXEq2TS.js +215 -0
  84. package/dist/VerifyEmailPage-BTjI2c9n.js +2954 -0
  85. package/dist/VerifyEmailPage-CJGfDSOx.js +2954 -0
  86. package/dist/VerifyEmailPage-DOlZUNc0.cjs +2963 -0
  87. package/dist/VerifyEmailPage-DQPRl_RJ.js +2954 -0
  88. package/dist/VerifyEmailPage-DrdqMbLC.cjs +2963 -0
  89. package/dist/VerifyEmailPage-hyDfeCRa.cjs +2963 -0
  90. package/dist/VerifyEmailPage-kKSXl8vu.cjs +2963 -0
  91. package/dist/VerifyEmailPage-w4N-bDhU.js +2954 -0
  92. package/dist/XerticaOrbe-B9tegV1n.js +1925 -0
  93. package/dist/XerticaOrbe-BQ_NjwPS.cjs +1927 -0
  94. package/dist/XerticaOrbe-BdUX171Q.cjs +1927 -0
  95. package/dist/XerticaOrbe-BdlKXRHU.cjs +1927 -0
  96. package/dist/XerticaOrbe-CByPAFE5.js +1925 -0
  97. package/dist/XerticaOrbe-Ccu9eFMu.js +1925 -0
  98. package/dist/XerticaProvider-BVid1oqn.cjs +46 -0
  99. package/dist/XerticaProvider-Bz_YfNY4.js +44 -0
  100. package/dist/XerticaProvider-CtvYfRbZ.cjs +46 -0
  101. package/dist/XerticaProvider-DMiyExQS.js +44 -0
  102. package/dist/XerticaProvider-DP2lzKip.cjs +46 -0
  103. package/dist/XerticaProvider-De79hhgp.js +44 -0
  104. package/dist/XerticaProvider-Dkk1Vbsy.js +44 -0
  105. package/dist/XerticaProvider-EdzH9Nrw.cjs +46 -0
  106. package/dist/alert-dialog-9XYAn5z5.js +819 -0
  107. package/dist/alert-dialog-B281hud0.cjs +872 -0
  108. package/dist/alert-dialog-BVWbrcrw.cjs +872 -0
  109. package/dist/alert-dialog-B_Ko1xpu.js +819 -0
  110. package/dist/alert-dialog-CIxE8T-J.cjs +872 -0
  111. package/dist/alert-dialog-DW-_iPuf.js +819 -0
  112. package/dist/assistant.cjs.js +2 -2
  113. package/dist/assistant.es.js +2 -2
  114. package/dist/avatar-BJwIMbZ_.js +54 -0
  115. package/dist/avatar-C4Zh5fAJ.cjs +77 -0
  116. package/dist/avatar-CTEUKZUT.js +54 -0
  117. package/dist/avatar-D1bZhlhL.cjs +77 -0
  118. package/dist/avatar-DKIxHeKG.cjs +77 -0
  119. package/dist/avatar-v16eZC8p.js +54 -0
  120. package/dist/blocks.cjs.js +2 -2
  121. package/dist/blocks.es.js +2 -2
  122. package/dist/brand.cjs.js +4 -4
  123. package/dist/brand.es.js +4 -4
  124. package/dist/breadcrumb-B1mUiaWB.cjs +98 -0
  125. package/dist/breadcrumb-BIRgmem-.js +90 -0
  126. package/dist/breadcrumb-BSng-oUf.cjs +98 -0
  127. package/dist/breadcrumb-CES7furU.js +90 -0
  128. package/dist/breadcrumb-CP275kbF.cjs +98 -0
  129. package/dist/breadcrumb-D7hr1EvJ.js +90 -0
  130. package/dist/button-BYtQygX5.cjs +85 -0
  131. package/dist/button-BnAW-a_w.js +62 -0
  132. package/dist/button-CUPDQews.js +62 -0
  133. package/dist/button-DFa-rtPy.js +62 -0
  134. package/dist/button-DV1G6XrI.cjs +85 -0
  135. package/dist/button-Kd9Fj53S.cjs +85 -0
  136. package/dist/cli.js +94 -10
  137. package/dist/components/ui/card/card.d.ts +11 -1
  138. package/dist/contexts/theme-data.d.ts +15 -1
  139. package/dist/dropdown-menu-B9wTZ0uX.cjs +225 -0
  140. package/dist/dropdown-menu-BeBtZOrs.cjs +225 -0
  141. package/dist/dropdown-menu-D7mRDGis.js +190 -0
  142. package/dist/dropdown-menu-D8ZmqHB7.js +190 -0
  143. package/dist/dropdown-menu-_AWBeOts.cjs +225 -0
  144. package/dist/dropdown-menu-qGzLO_HO.js +190 -0
  145. package/dist/hooks.cjs.js +1 -1
  146. package/dist/hooks.es.js +1 -1
  147. package/dist/index.cjs.js +24 -24
  148. package/dist/index.es.js +24 -24
  149. package/dist/input-B53E6K8G.js +65 -0
  150. package/dist/input-B7Q7vcoG.cjs +91 -0
  151. package/dist/input-BysqLMK1.js +65 -0
  152. package/dist/input-CStdFsaH.cjs +91 -0
  153. package/dist/input-CXYth6nW.cjs +91 -0
  154. package/dist/input-CX_fWE2D.cjs +91 -0
  155. package/dist/input-CitUVnEn.js +65 -0
  156. package/dist/input-wkBYTp-B.js +65 -0
  157. package/dist/layout.cjs.js +1 -1
  158. package/dist/layout.es.js +1 -1
  159. package/dist/media.cjs.js +1 -1
  160. package/dist/media.es.js +1 -1
  161. package/dist/pages.cjs.js +1 -1
  162. package/dist/pages.es.js +1 -1
  163. package/dist/rich-text-editor-BHiRUzWZ.js +2894 -0
  164. package/dist/rich-text-editor-BWMRUMJ2.js +2894 -0
  165. package/dist/rich-text-editor-BoE6Ks5x.cjs +2968 -0
  166. package/dist/rich-text-editor-BzuEwR_X.js +2894 -0
  167. package/dist/rich-text-editor-CcopGbQ-.js +2894 -0
  168. package/dist/rich-text-editor-CmxSRJIi.cjs +2968 -0
  169. package/dist/rich-text-editor-DyYAu28v.cjs +2968 -0
  170. package/dist/rich-text-editor-JS_eMQCC.cjs +2968 -0
  171. package/dist/select-BNfFJwYp.js +130 -0
  172. package/dist/select-CN8IDjGB.js +130 -0
  173. package/dist/select-CwRzQHA7.cjs +161 -0
  174. package/dist/select-CwgD3nMD.js +130 -0
  175. package/dist/select-DEHUm_AC.cjs +161 -0
  176. package/dist/select-DJDgpVm3.cjs +161 -0
  177. package/dist/select-DSLWQLmo.cjs +161 -0
  178. package/dist/select-YFx0wCYT.js +130 -0
  179. package/dist/sidebar-BF7JEL7U.js +1151 -0
  180. package/dist/sidebar-Bjr2doX5.cjs +1154 -0
  181. package/dist/sidebar-CMrNCmhb.cjs +1154 -0
  182. package/dist/sidebar-CO9x8AVn.cjs +1154 -0
  183. package/dist/sidebar-Cn_KB4c6.js +1151 -0
  184. package/dist/sidebar-Db_C30ph.cjs +1154 -0
  185. package/dist/sidebar-miPHsRz4.js +1151 -0
  186. package/dist/sidebar-pZF8mLLu.js +1151 -0
  187. package/dist/skeleton-BX2XTjMO.cjs +87 -0
  188. package/dist/skeleton-BoLK0iV7.js +78 -0
  189. package/dist/skeleton-Bysq8yeB.js +79 -0
  190. package/dist/skeleton-C7nspYnC.cjs +87 -0
  191. package/dist/skeleton-DL4V5Vub.cjs +87 -0
  192. package/dist/skeleton-DSMhdqp1.js +78 -0
  193. package/dist/skeleton-DhJswvTW.cjs +88 -0
  194. package/dist/skeleton-DicUfozA.js +78 -0
  195. package/dist/slider-77T_Eqw4.js +56 -0
  196. package/dist/slider-B6puMLXS.cjs +78 -0
  197. package/dist/slider-B785N7lZ.js +56 -0
  198. package/dist/slider-C6yssKyZ.cjs +78 -0
  199. package/dist/slider-CKZO9gVh.cjs +78 -0
  200. package/dist/slider-Cn-ImSze.js +56 -0
  201. package/dist/tooltip-BiJVGob3.cjs +72 -0
  202. package/dist/tooltip-D2OPn-1v.cjs +72 -0
  203. package/dist/tooltip-DlCHQuh1.js +48 -0
  204. package/dist/tooltip-fQ2Va0G8.cjs +72 -0
  205. package/dist/tooltip-oAw00FX2.js +48 -0
  206. package/dist/tooltip-u147L0wD.js +48 -0
  207. package/dist/ui.cjs.js +13 -13
  208. package/dist/ui.es.js +13 -13
  209. package/dist/xertica-assistant-C2A0R94j.js +2173 -0
  210. package/dist/xertica-assistant-CSUprvTR.js +2173 -0
  211. package/dist/xertica-assistant-Caubm0HR.js +2173 -0
  212. package/dist/xertica-assistant-DEexPM2u.cjs +2180 -0
  213. package/dist/xertica-assistant-Dh1dmEx3.cjs +2180 -0
  214. package/dist/xertica-assistant-GGcyHEZG.cjs +2180 -0
  215. package/dist/xertica-assistant-USefPe2L.js +2173 -0
  216. package/dist/xertica-assistant-cwSHFwfv.cjs +2180 -0
  217. package/dist/xertica-ui.css +1 -1
  218. package/package.json +3 -2
  219. package/styles/xertica/base.css +38 -0
  220. package/styles/xertica/tokens.css +9 -0
  221. package/templates/src/app/App.tsx +5 -1
  222. package/templates/src/features/home/ui/HomeContent.tsx +12 -13
  223. package/templates/src/features/template/ui/TemplateContent.tsx +569 -26
  224. package/templates/src/locales/en/pages/templates.json +112 -4
  225. package/templates/src/locales/es/pages/templates.json +112 -4
  226. package/templates/src/locales/pt-BR/pages/templates.json +112 -4
  227. package/templates/src/styles/xertica/tokens.css +9 -0
  228. package/templates/vite.config.ts +25 -0
@@ -0,0 +1,225 @@
1
+ 'use strict';
2
+
3
+ const jsxRuntime = require('react/jsx-runtime');
4
+ const DropdownMenuPrimitive = require('@radix-ui/react-dropdown-menu');
5
+ const lucideReact = require('lucide-react');
6
+ const button = require('./button-Kd9Fj53S.cjs');
7
+
8
+ function _interopNamespaceDefault(e) {
9
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } });
10
+ if (e) {
11
+ for (const k in e) {
12
+ if (k !== 'default') {
13
+ const d = Object.getOwnPropertyDescriptor(e, k);
14
+ Object.defineProperty(n, k, d.get ? d : {
15
+ enumerable: true,
16
+ get: () => e[k]
17
+ });
18
+ }
19
+ }
20
+ }
21
+ n.default = e;
22
+ return Object.freeze(n);
23
+ }
24
+
25
+ const DropdownMenuPrimitive__namespace = /*#__PURE__*/_interopNamespaceDefault(DropdownMenuPrimitive);
26
+
27
+ function DropdownMenu({ ...props }) {
28
+ return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Root, { "data-slot": "dropdown-menu", ...props });
29
+ }
30
+ function DropdownMenuPortal({
31
+ ...props
32
+ }) {
33
+ return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, { "data-slot": "dropdown-menu-portal", ...props });
34
+ }
35
+ function DropdownMenuTrigger({
36
+ ...props
37
+ }) {
38
+ return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Trigger, { "data-slot": "dropdown-menu-trigger", ...props });
39
+ }
40
+ function DropdownMenuContent({
41
+ className,
42
+ sideOffset = 4,
43
+ ...props
44
+ }) {
45
+ return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
46
+ DropdownMenuPrimitive__namespace.Content,
47
+ {
48
+ "data-slot": "dropdown-menu-content",
49
+ sideOffset,
50
+ className: button.cn(
51
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",
52
+ className
53
+ ),
54
+ ...props
55
+ }
56
+ ) });
57
+ }
58
+ function DropdownMenuGroup({ ...props }) {
59
+ return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Group, { "data-slot": "dropdown-menu-group", ...props });
60
+ }
61
+ function DropdownMenuItem({
62
+ className,
63
+ inset,
64
+ variant = "default",
65
+ ...props
66
+ }) {
67
+ return /* @__PURE__ */ jsxRuntime.jsx(
68
+ DropdownMenuPrimitive__namespace.Item,
69
+ {
70
+ "data-slot": "dropdown-menu-item",
71
+ "data-inset": inset,
72
+ "data-variant": variant,
73
+ className: button.cn(
74
+ "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
75
+ className
76
+ ),
77
+ ...props
78
+ }
79
+ );
80
+ }
81
+ function DropdownMenuCheckboxItem({
82
+ className,
83
+ children,
84
+ checked,
85
+ ...props
86
+ }) {
87
+ return /* @__PURE__ */ jsxRuntime.jsxs(
88
+ DropdownMenuPrimitive__namespace.CheckboxItem,
89
+ {
90
+ "data-slot": "dropdown-menu-checkbox-item",
91
+ className: button.cn(
92
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
93
+ className
94
+ ),
95
+ checked,
96
+ ...props,
97
+ children: [
98
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { className: "size-4" }) }) }),
99
+ children
100
+ ]
101
+ }
102
+ );
103
+ }
104
+ function DropdownMenuRadioGroup({
105
+ ...props
106
+ }) {
107
+ return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.RadioGroup, { "data-slot": "dropdown-menu-radio-group", ...props });
108
+ }
109
+ function DropdownMenuRadioItem({
110
+ className,
111
+ children,
112
+ ...props
113
+ }) {
114
+ return /* @__PURE__ */ jsxRuntime.jsxs(
115
+ DropdownMenuPrimitive__namespace.RadioItem,
116
+ {
117
+ "data-slot": "dropdown-menu-radio-item",
118
+ className: button.cn(
119
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
120
+ className
121
+ ),
122
+ ...props,
123
+ children: [
124
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleIcon, { className: "size-2 fill-current" }) }) }),
125
+ children
126
+ ]
127
+ }
128
+ );
129
+ }
130
+ function DropdownMenuLabel({
131
+ className,
132
+ inset,
133
+ ...props
134
+ }) {
135
+ return /* @__PURE__ */ jsxRuntime.jsx(
136
+ DropdownMenuPrimitive__namespace.Label,
137
+ {
138
+ "data-slot": "dropdown-menu-label",
139
+ "data-inset": inset,
140
+ className: button.cn("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8", className),
141
+ ...props
142
+ }
143
+ );
144
+ }
145
+ function DropdownMenuSeparator({
146
+ className,
147
+ ...props
148
+ }) {
149
+ return /* @__PURE__ */ jsxRuntime.jsx(
150
+ DropdownMenuPrimitive__namespace.Separator,
151
+ {
152
+ "data-slot": "dropdown-menu-separator",
153
+ className: button.cn("bg-border -mx-1 my-1 h-px", className),
154
+ ...props
155
+ }
156
+ );
157
+ }
158
+ function DropdownMenuShortcut({ className, ...props }) {
159
+ return /* @__PURE__ */ jsxRuntime.jsx(
160
+ "span",
161
+ {
162
+ "data-slot": "dropdown-menu-shortcut",
163
+ className: button.cn("text-muted-foreground ml-auto text-xs tracking-widest", className),
164
+ ...props
165
+ }
166
+ );
167
+ }
168
+ function DropdownMenuSub({ ...props }) {
169
+ return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Sub, { "data-slot": "dropdown-menu-sub", ...props });
170
+ }
171
+ function DropdownMenuSubTrigger({
172
+ className,
173
+ inset,
174
+ children,
175
+ ...props
176
+ }) {
177
+ return /* @__PURE__ */ jsxRuntime.jsxs(
178
+ DropdownMenuPrimitive__namespace.SubTrigger,
179
+ {
180
+ "data-slot": "dropdown-menu-sub-trigger",
181
+ "data-inset": inset,
182
+ className: button.cn(
183
+ "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8",
184
+ className
185
+ ),
186
+ ...props,
187
+ children: [
188
+ children,
189
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRightIcon, { className: "ml-auto size-4" })
190
+ ]
191
+ }
192
+ );
193
+ }
194
+ function DropdownMenuSubContent({
195
+ className,
196
+ ...props
197
+ }) {
198
+ return /* @__PURE__ */ jsxRuntime.jsx(
199
+ DropdownMenuPrimitive__namespace.SubContent,
200
+ {
201
+ "data-slot": "dropdown-menu-sub-content",
202
+ className: button.cn(
203
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg",
204
+ className
205
+ ),
206
+ ...props
207
+ }
208
+ );
209
+ }
210
+
211
+ exports.DropdownMenu = DropdownMenu;
212
+ exports.DropdownMenuCheckboxItem = DropdownMenuCheckboxItem;
213
+ exports.DropdownMenuContent = DropdownMenuContent;
214
+ exports.DropdownMenuGroup = DropdownMenuGroup;
215
+ exports.DropdownMenuItem = DropdownMenuItem;
216
+ exports.DropdownMenuLabel = DropdownMenuLabel;
217
+ exports.DropdownMenuPortal = DropdownMenuPortal;
218
+ exports.DropdownMenuRadioGroup = DropdownMenuRadioGroup;
219
+ exports.DropdownMenuRadioItem = DropdownMenuRadioItem;
220
+ exports.DropdownMenuSeparator = DropdownMenuSeparator;
221
+ exports.DropdownMenuShortcut = DropdownMenuShortcut;
222
+ exports.DropdownMenuSub = DropdownMenuSub;
223
+ exports.DropdownMenuSubContent = DropdownMenuSubContent;
224
+ exports.DropdownMenuSubTrigger = DropdownMenuSubTrigger;
225
+ exports.DropdownMenuTrigger = DropdownMenuTrigger;
@@ -0,0 +1,190 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
3
+ import { CheckIcon, CircleIcon, ChevronRightIcon } from 'lucide-react';
4
+ import { c as cn } from './button-DFa-rtPy.js';
5
+
6
+ function DropdownMenu({ ...props }) {
7
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
8
+ }
9
+ function DropdownMenuPortal({
10
+ ...props
11
+ }) {
12
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { "data-slot": "dropdown-menu-portal", ...props });
13
+ }
14
+ function DropdownMenuTrigger({
15
+ ...props
16
+ }) {
17
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Trigger, { "data-slot": "dropdown-menu-trigger", ...props });
18
+ }
19
+ function DropdownMenuContent({
20
+ className,
21
+ sideOffset = 4,
22
+ ...props
23
+ }) {
24
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
25
+ DropdownMenuPrimitive.Content,
26
+ {
27
+ "data-slot": "dropdown-menu-content",
28
+ sideOffset,
29
+ className: cn(
30
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",
31
+ className
32
+ ),
33
+ ...props
34
+ }
35
+ ) });
36
+ }
37
+ function DropdownMenuGroup({ ...props }) {
38
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Group, { "data-slot": "dropdown-menu-group", ...props });
39
+ }
40
+ function DropdownMenuItem({
41
+ className,
42
+ inset,
43
+ variant = "default",
44
+ ...props
45
+ }) {
46
+ return /* @__PURE__ */ jsx(
47
+ DropdownMenuPrimitive.Item,
48
+ {
49
+ "data-slot": "dropdown-menu-item",
50
+ "data-inset": inset,
51
+ "data-variant": variant,
52
+ className: cn(
53
+ "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
54
+ className
55
+ ),
56
+ ...props
57
+ }
58
+ );
59
+ }
60
+ function DropdownMenuCheckboxItem({
61
+ className,
62
+ children,
63
+ checked,
64
+ ...props
65
+ }) {
66
+ return /* @__PURE__ */ jsxs(
67
+ DropdownMenuPrimitive.CheckboxItem,
68
+ {
69
+ "data-slot": "dropdown-menu-checkbox-item",
70
+ className: cn(
71
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
72
+ className
73
+ ),
74
+ checked,
75
+ ...props,
76
+ children: [
77
+ /* @__PURE__ */ jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-4" }) }) }),
78
+ children
79
+ ]
80
+ }
81
+ );
82
+ }
83
+ function DropdownMenuRadioGroup({
84
+ ...props
85
+ }) {
86
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.RadioGroup, { "data-slot": "dropdown-menu-radio-group", ...props });
87
+ }
88
+ function DropdownMenuRadioItem({
89
+ className,
90
+ children,
91
+ ...props
92
+ }) {
93
+ return /* @__PURE__ */ jsxs(
94
+ DropdownMenuPrimitive.RadioItem,
95
+ {
96
+ "data-slot": "dropdown-menu-radio-item",
97
+ className: cn(
98
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
99
+ className
100
+ ),
101
+ ...props,
102
+ children: [
103
+ /* @__PURE__ */ jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CircleIcon, { className: "size-2 fill-current" }) }) }),
104
+ children
105
+ ]
106
+ }
107
+ );
108
+ }
109
+ function DropdownMenuLabel({
110
+ className,
111
+ inset,
112
+ ...props
113
+ }) {
114
+ return /* @__PURE__ */ jsx(
115
+ DropdownMenuPrimitive.Label,
116
+ {
117
+ "data-slot": "dropdown-menu-label",
118
+ "data-inset": inset,
119
+ className: cn("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8", className),
120
+ ...props
121
+ }
122
+ );
123
+ }
124
+ function DropdownMenuSeparator({
125
+ className,
126
+ ...props
127
+ }) {
128
+ return /* @__PURE__ */ jsx(
129
+ DropdownMenuPrimitive.Separator,
130
+ {
131
+ "data-slot": "dropdown-menu-separator",
132
+ className: cn("bg-border -mx-1 my-1 h-px", className),
133
+ ...props
134
+ }
135
+ );
136
+ }
137
+ function DropdownMenuShortcut({ className, ...props }) {
138
+ return /* @__PURE__ */ jsx(
139
+ "span",
140
+ {
141
+ "data-slot": "dropdown-menu-shortcut",
142
+ className: cn("text-muted-foreground ml-auto text-xs tracking-widest", className),
143
+ ...props
144
+ }
145
+ );
146
+ }
147
+ function DropdownMenuSub({ ...props }) {
148
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Sub, { "data-slot": "dropdown-menu-sub", ...props });
149
+ }
150
+ function DropdownMenuSubTrigger({
151
+ className,
152
+ inset,
153
+ children,
154
+ ...props
155
+ }) {
156
+ return /* @__PURE__ */ jsxs(
157
+ DropdownMenuPrimitive.SubTrigger,
158
+ {
159
+ "data-slot": "dropdown-menu-sub-trigger",
160
+ "data-inset": inset,
161
+ className: cn(
162
+ "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8",
163
+ className
164
+ ),
165
+ ...props,
166
+ children: [
167
+ children,
168
+ /* @__PURE__ */ jsx(ChevronRightIcon, { className: "ml-auto size-4" })
169
+ ]
170
+ }
171
+ );
172
+ }
173
+ function DropdownMenuSubContent({
174
+ className,
175
+ ...props
176
+ }) {
177
+ return /* @__PURE__ */ jsx(
178
+ DropdownMenuPrimitive.SubContent,
179
+ {
180
+ "data-slot": "dropdown-menu-sub-content",
181
+ className: cn(
182
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg",
183
+ className
184
+ ),
185
+ ...props
186
+ }
187
+ );
188
+ }
189
+
190
+ export { DropdownMenu as D, DropdownMenuCheckboxItem as a, DropdownMenuContent as b, DropdownMenuGroup as c, DropdownMenuItem as d, DropdownMenuLabel as e, DropdownMenuPortal as f, DropdownMenuRadioGroup as g, DropdownMenuRadioItem as h, DropdownMenuSeparator as i, DropdownMenuShortcut as j, DropdownMenuSub as k, DropdownMenuSubContent as l, DropdownMenuSubTrigger as m, DropdownMenuTrigger as n };
@@ -0,0 +1,190 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
3
+ import { CheckIcon, CircleIcon, ChevronRightIcon } from 'lucide-react';
4
+ import { c as cn } from './button-BnAW-a_w.js';
5
+
6
+ function DropdownMenu({ ...props }) {
7
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
8
+ }
9
+ function DropdownMenuPortal({
10
+ ...props
11
+ }) {
12
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { "data-slot": "dropdown-menu-portal", ...props });
13
+ }
14
+ function DropdownMenuTrigger({
15
+ ...props
16
+ }) {
17
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Trigger, { "data-slot": "dropdown-menu-trigger", ...props });
18
+ }
19
+ function DropdownMenuContent({
20
+ className,
21
+ sideOffset = 4,
22
+ ...props
23
+ }) {
24
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
25
+ DropdownMenuPrimitive.Content,
26
+ {
27
+ "data-slot": "dropdown-menu-content",
28
+ sideOffset,
29
+ className: cn(
30
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",
31
+ className
32
+ ),
33
+ ...props
34
+ }
35
+ ) });
36
+ }
37
+ function DropdownMenuGroup({ ...props }) {
38
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Group, { "data-slot": "dropdown-menu-group", ...props });
39
+ }
40
+ function DropdownMenuItem({
41
+ className,
42
+ inset,
43
+ variant = "default",
44
+ ...props
45
+ }) {
46
+ return /* @__PURE__ */ jsx(
47
+ DropdownMenuPrimitive.Item,
48
+ {
49
+ "data-slot": "dropdown-menu-item",
50
+ "data-inset": inset,
51
+ "data-variant": variant,
52
+ className: cn(
53
+ "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
54
+ className
55
+ ),
56
+ ...props
57
+ }
58
+ );
59
+ }
60
+ function DropdownMenuCheckboxItem({
61
+ className,
62
+ children,
63
+ checked,
64
+ ...props
65
+ }) {
66
+ return /* @__PURE__ */ jsxs(
67
+ DropdownMenuPrimitive.CheckboxItem,
68
+ {
69
+ "data-slot": "dropdown-menu-checkbox-item",
70
+ className: cn(
71
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
72
+ className
73
+ ),
74
+ checked,
75
+ ...props,
76
+ children: [
77
+ /* @__PURE__ */ jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-4" }) }) }),
78
+ children
79
+ ]
80
+ }
81
+ );
82
+ }
83
+ function DropdownMenuRadioGroup({
84
+ ...props
85
+ }) {
86
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.RadioGroup, { "data-slot": "dropdown-menu-radio-group", ...props });
87
+ }
88
+ function DropdownMenuRadioItem({
89
+ className,
90
+ children,
91
+ ...props
92
+ }) {
93
+ return /* @__PURE__ */ jsxs(
94
+ DropdownMenuPrimitive.RadioItem,
95
+ {
96
+ "data-slot": "dropdown-menu-radio-item",
97
+ className: cn(
98
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
99
+ className
100
+ ),
101
+ ...props,
102
+ children: [
103
+ /* @__PURE__ */ jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CircleIcon, { className: "size-2 fill-current" }) }) }),
104
+ children
105
+ ]
106
+ }
107
+ );
108
+ }
109
+ function DropdownMenuLabel({
110
+ className,
111
+ inset,
112
+ ...props
113
+ }) {
114
+ return /* @__PURE__ */ jsx(
115
+ DropdownMenuPrimitive.Label,
116
+ {
117
+ "data-slot": "dropdown-menu-label",
118
+ "data-inset": inset,
119
+ className: cn("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8", className),
120
+ ...props
121
+ }
122
+ );
123
+ }
124
+ function DropdownMenuSeparator({
125
+ className,
126
+ ...props
127
+ }) {
128
+ return /* @__PURE__ */ jsx(
129
+ DropdownMenuPrimitive.Separator,
130
+ {
131
+ "data-slot": "dropdown-menu-separator",
132
+ className: cn("bg-border -mx-1 my-1 h-px", className),
133
+ ...props
134
+ }
135
+ );
136
+ }
137
+ function DropdownMenuShortcut({ className, ...props }) {
138
+ return /* @__PURE__ */ jsx(
139
+ "span",
140
+ {
141
+ "data-slot": "dropdown-menu-shortcut",
142
+ className: cn("text-muted-foreground ml-auto text-xs tracking-widest", className),
143
+ ...props
144
+ }
145
+ );
146
+ }
147
+ function DropdownMenuSub({ ...props }) {
148
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Sub, { "data-slot": "dropdown-menu-sub", ...props });
149
+ }
150
+ function DropdownMenuSubTrigger({
151
+ className,
152
+ inset,
153
+ children,
154
+ ...props
155
+ }) {
156
+ return /* @__PURE__ */ jsxs(
157
+ DropdownMenuPrimitive.SubTrigger,
158
+ {
159
+ "data-slot": "dropdown-menu-sub-trigger",
160
+ "data-inset": inset,
161
+ className: cn(
162
+ "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8",
163
+ className
164
+ ),
165
+ ...props,
166
+ children: [
167
+ children,
168
+ /* @__PURE__ */ jsx(ChevronRightIcon, { className: "ml-auto size-4" })
169
+ ]
170
+ }
171
+ );
172
+ }
173
+ function DropdownMenuSubContent({
174
+ className,
175
+ ...props
176
+ }) {
177
+ return /* @__PURE__ */ jsx(
178
+ DropdownMenuPrimitive.SubContent,
179
+ {
180
+ "data-slot": "dropdown-menu-sub-content",
181
+ className: cn(
182
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg",
183
+ className
184
+ ),
185
+ ...props
186
+ }
187
+ );
188
+ }
189
+
190
+ export { DropdownMenu as D, DropdownMenuCheckboxItem as a, DropdownMenuContent as b, DropdownMenuGroup as c, DropdownMenuItem as d, DropdownMenuLabel as e, DropdownMenuPortal as f, DropdownMenuRadioGroup as g, DropdownMenuRadioItem as h, DropdownMenuSeparator as i, DropdownMenuShortcut as j, DropdownMenuSub as k, DropdownMenuSubContent as l, DropdownMenuSubTrigger as m, DropdownMenuTrigger as n };