@hanzo/ui 4.6.0 → 4.7.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 (290) hide show
  1. package/dist/index.d.mts +16 -0
  2. package/dist/index.d.ts +16 -0
  3. package/dist/index.js +9458 -0
  4. package/dist/index.mjs +9449 -0
  5. package/dist/lib/utils.d.mts +2 -0
  6. package/dist/lib/utils.d.ts +2 -0
  7. package/dist/lib/utils.js +47 -0
  8. package/dist/lib/utils.mjs +28 -0
  9. package/dist/src/utils.d.mts +7 -0
  10. package/dist/src/utils.d.ts +7 -0
  11. package/dist/src/utils.js +47 -0
  12. package/dist/src/utils.mjs +28 -0
  13. package/dist/tailwind/index.d.mts +2 -0
  14. package/dist/tailwind/index.d.ts +2 -0
  15. package/dist/tailwind/index.js +2048 -0
  16. package/dist/tailwind/index.mjs +2017 -0
  17. package/dist/types/index.d.mts +12 -0
  18. package/dist/types/index.d.ts +12 -0
  19. package/dist/types/index.js +79 -0
  20. package/dist/types/index.mjs +56 -0
  21. package/package.json +151 -25
  22. package/MCP-INSTRUCTIONS.md +0 -73
  23. package/README-MCP.md +0 -175
  24. package/assets/ai-icons.tsx +0 -207
  25. package/assets/crypto.tsx +0 -33
  26. package/assets/file-type-icon.tsx +0 -66
  27. package/assets/file.tsx +0 -45
  28. package/assets/general.tsx +0 -2318
  29. package/assets/hanzo-logo.svg +0 -9
  30. package/assets/hanzo-logo.tsx +0 -15
  31. package/assets/index.ts +0 -8
  32. package/assets/index.tsx +0 -4
  33. package/assets/llm-provider.tsx +0 -1094
  34. package/blocks/components/accordian-block.tsx +0 -48
  35. package/blocks/components/block-component-props.ts +0 -11
  36. package/blocks/components/bullet-cards-block.tsx +0 -46
  37. package/blocks/components/card-block/index.tsx +0 -171
  38. package/blocks/components/card-block/link-out-button.tsx +0 -20
  39. package/blocks/components/card-block/util.ts +0 -28
  40. package/blocks/components/carte-blanche-block/index.tsx +0 -127
  41. package/blocks/components/carte-blanche-block/variant-content-left.tsx +0 -49
  42. package/blocks/components/content.tsx +0 -70
  43. package/blocks/components/cta-block.tsx +0 -115
  44. package/blocks/components/enh-heading-block.tsx +0 -204
  45. package/blocks/components/grid-block/grid-block-mutator.ts +0 -12
  46. package/blocks/components/grid-block/index.tsx +0 -83
  47. package/blocks/components/grid-block/mutator-registry.ts +0 -10
  48. package/blocks/components/grid-block/table-borders.mutator.ts +0 -47
  49. package/blocks/components/group-block.tsx +0 -83
  50. package/blocks/components/heading-block.tsx +0 -88
  51. package/blocks/components/image-block.tsx +0 -111
  52. package/blocks/components/index.ts +0 -30
  53. package/blocks/components/screenful-block/content.tsx +0 -123
  54. package/blocks/components/screenful-block/index.tsx +0 -107
  55. package/blocks/components/screenful-block/poster-background.tsx +0 -34
  56. package/blocks/components/screenful-block/video-background.tsx +0 -45
  57. package/blocks/components/space-block.tsx +0 -66
  58. package/blocks/components/video-block.tsx +0 -138
  59. package/blocks/def/accordian-block.ts +0 -14
  60. package/blocks/def/block.ts +0 -7
  61. package/blocks/def/bullet-cards-block.ts +0 -22
  62. package/blocks/def/card-block.ts +0 -22
  63. package/blocks/def/carte-blanche-block.ts +0 -21
  64. package/blocks/def/cta-block.ts +0 -19
  65. package/blocks/def/element-block.ts +0 -11
  66. package/blocks/def/enh-heading-block.ts +0 -44
  67. package/blocks/def/grid-block.ts +0 -16
  68. package/blocks/def/group-block.ts +0 -11
  69. package/blocks/def/heading-block.ts +0 -15
  70. package/blocks/def/image-block.ts +0 -31
  71. package/blocks/def/index.ts +0 -35
  72. package/blocks/def/screenful-block.ts +0 -54
  73. package/blocks/def/space-block.ts +0 -64
  74. package/blocks/def/video-block.ts +0 -9
  75. package/blocks/index.ts +0 -2
  76. package/components/index.ts +0 -56
  77. package/dist/button.d.ts +0 -1
  78. package/dist/button.js +0 -1
  79. package/dist/hooks/index.d.ts +0 -7
  80. package/dist/hooks/index.js +0 -7
  81. package/dist/hooks/use-click-away.d.ts +0 -2
  82. package/dist/hooks/use-click-away.js +0 -23
  83. package/dist/hooks/use-combined-refs.d.ts +0 -3
  84. package/dist/hooks/use-combined-refs.js +0 -18
  85. package/dist/hooks/use-copy-clipboard.d.ts +0 -9
  86. package/dist/hooks/use-copy-clipboard.js +0 -21
  87. package/dist/hooks/use-debounce.d.ts +0 -1
  88. package/dist/hooks/use-debounce.js +0 -13
  89. package/dist/hooks/use-fill-ids.d.ts +0 -8
  90. package/dist/hooks/use-fill-ids.js +0 -20
  91. package/dist/hooks/use-map.d.ts +0 -1
  92. package/dist/hooks/use-map.js +0 -20
  93. package/dist/hooks/use-measure.d.ts +0 -8
  94. package/dist/hooks/use-measure.js +0 -25
  95. package/dist/hooks/use-reverse-video-playback.d.ts +0 -1
  96. package/dist/hooks/use-reverse-video-playback.js +0 -41
  97. package/dist/hooks/use-scroll-restoration.d.ts +0 -8
  98. package/dist/hooks/use-scroll-restoration.js +0 -36
  99. package/dist/mcp/enhanced-server.d.ts +0 -29
  100. package/dist/mcp/enhanced-server.js +0 -1128
  101. package/dist/mcp/index.d.ts +0 -28
  102. package/dist/mcp/index.js +0 -436
  103. package/dist/registry/api.d.ts +0 -37
  104. package/dist/registry/api.js +0 -129
  105. package/dist/registry/index.d.ts +0 -353
  106. package/dist/registry/index.js +0 -45
  107. package/dist/utils.d.ts +0 -1
  108. package/dist/utils.js +0 -1
  109. package/environment.d.ts +0 -6
  110. package/helpers/file.ts +0 -33
  111. package/helpers/memoization.ts +0 -40
  112. package/primitives/accordion.tsx +0 -74
  113. package/primitives/action-button.tsx +0 -42
  114. package/primitives/alert-dialog.tsx +0 -185
  115. package/primitives/alert.tsx +0 -74
  116. package/primitives/apply-typography.tsx +0 -55
  117. package/primitives/aspect-ratio.tsx +0 -5
  118. package/primitives/avatar.tsx +0 -57
  119. package/primitives/background-beams.tsx +0 -142
  120. package/primitives/badge.tsx +0 -44
  121. package/primitives/breadcrumb.tsx +0 -130
  122. package/primitives/breakpoint-indicator.tsx +0 -19
  123. package/primitives/button.tsx +0 -82
  124. package/primitives/calendar.tsx +0 -72
  125. package/primitives/card.tsx +0 -97
  126. package/primitives/carousel.tsx +0 -237
  127. package/primitives/chat/chat-input-area.tsx +0 -87
  128. package/primitives/chat/chat-input.tsx +0 -71
  129. package/primitives/chat/files-preview.tsx +0 -330
  130. package/primitives/chat/index.ts +0 -6
  131. package/primitives/chat/json-form.tsx +0 -8
  132. package/primitives/chat/message-list.tsx +0 -307
  133. package/primitives/chat/message.tsx +0 -569
  134. package/primitives/chat/sqlite-preview.tsx +0 -215
  135. package/primitives/checkbox.tsx +0 -31
  136. package/primitives/collapsible.tsx +0 -9
  137. package/primitives/combobox.tsx +0 -239
  138. package/primitives/command.tsx +0 -149
  139. package/primitives/context-menu.tsx +0 -206
  140. package/primitives/copy-to-clipboard-icon.tsx +0 -60
  141. package/primitives/dialog-video-controller.tsx +0 -38
  142. package/primitives/dialog.tsx +0 -123
  143. package/primitives/dot-pattern.tsx +0 -57
  144. package/primitives/dots-loader.tsx +0 -13
  145. package/primitives/drawer.tsx +0 -110
  146. package/primitives/dropdown-menu.tsx +0 -199
  147. package/primitives/error-message.tsx +0 -19
  148. package/primitives/file-uploader.tsx +0 -200
  149. package/primitives/form.tsx +0 -183
  150. package/primitives/hover-card.tsx +0 -28
  151. package/primitives/icons/github.tsx +0 -14
  152. package/primitives/icons/index.ts +0 -18
  153. package/primitives/icons/youtube-logo.tsx +0 -59
  154. package/primitives/index-common.ts +0 -303
  155. package/primitives/index-next.ts +0 -4
  156. package/primitives/input-otp.tsx +0 -65
  157. package/primitives/input.tsx +0 -125
  158. package/primitives/label.tsx +0 -20
  159. package/primitives/list-adaptor.ts +0 -12
  160. package/primitives/list-box.tsx +0 -74
  161. package/primitives/loading-spinner.tsx +0 -33
  162. package/primitives/markdown-preview.tsx +0 -609
  163. package/primitives/mermaid.tsx +0 -196
  164. package/primitives/navigation-menu.tsx +0 -147
  165. package/primitives/next/image.tsx +0 -90
  166. package/primitives/next/index.ts +0 -7
  167. package/primitives/next/inline-icon.tsx +0 -36
  168. package/primitives/next/link-element.tsx +0 -109
  169. package/primitives/next/mdx-link.tsx +0 -22
  170. package/primitives/next/media-stack.tsx +0 -69
  171. package/primitives/next/nav-items.tsx +0 -45
  172. package/primitives/next/youtube-embed.tsx +0 -83
  173. package/primitives/pagination.tsx +0 -117
  174. package/primitives/popover.tsx +0 -32
  175. package/primitives/pretty-json-print.tsx +0 -28
  176. package/primitives/progress.tsx +0 -26
  177. package/primitives/prompt-textarea.tsx +0 -72
  178. package/primitives/qr-code.tsx +0 -112
  179. package/primitives/radio-group.tsx +0 -42
  180. package/primitives/resizable.tsx +0 -47
  181. package/primitives/scroll-area.tsx +0 -57
  182. package/primitives/search-input.tsx +0 -66
  183. package/primitives/select.tsx +0 -122
  184. package/primitives/separator.tsx +0 -25
  185. package/primitives/sheet.tsx +0 -139
  186. package/primitives/skeleton.tsx +0 -17
  187. package/primitives/slider.tsx +0 -62
  188. package/primitives/sonner.tsx +0 -35
  189. package/primitives/step-indicator.tsx +0 -69
  190. package/primitives/stepper.tsx +0 -272
  191. package/primitives/switch.tsx +0 -26
  192. package/primitives/table.tsx +0 -105
  193. package/primitives/tabs.tsx +0 -50
  194. package/primitives/text-area.tsx +0 -26
  195. package/primitives/text-link.tsx +0 -25
  196. package/primitives/textarea.tsx +0 -61
  197. package/primitives/textfield.tsx +0 -75
  198. package/primitives/toast.tsx +0 -30
  199. package/primitives/toggle-group.tsx +0 -63
  200. package/primitives/toggle.tsx +0 -44
  201. package/primitives/tooltip.tsx +0 -47
  202. package/primitives/video-player.tsx +0 -23
  203. package/public/r/accordion.json +0 -11
  204. package/public/r/alert.json +0 -11
  205. package/public/r/avatar.json +0 -11
  206. package/public/r/badge.json +0 -11
  207. package/public/r/button.json +0 -11
  208. package/public/r/card.json +0 -11
  209. package/public/r/checkbox.json +0 -11
  210. package/public/r/default.json +0 -6
  211. package/public/r/dialog.json +0 -11
  212. package/public/r/input.json +0 -11
  213. package/public/r/label.json +0 -11
  214. package/public/r/new-york.json +0 -6
  215. package/public/r/popover.json +0 -11
  216. package/public/r/select.json +0 -11
  217. package/public/r/table.json +0 -11
  218. package/public/r/tabs.json +0 -11
  219. package/public/r/toast.json +0 -11
  220. package/registry.json +0 -184
  221. package/src/button.ts +0 -1
  222. package/src/hooks/index.ts +0 -7
  223. package/src/hooks/use-click-away.ts +0 -31
  224. package/src/hooks/use-combined-refs.ts +0 -22
  225. package/src/hooks/use-copy-clipboard.ts +0 -30
  226. package/src/hooks/use-debounce.ts +0 -17
  227. package/src/hooks/use-fill-ids.ts +0 -25
  228. package/src/hooks/use-map.ts +0 -26
  229. package/src/hooks/use-measure.ts +0 -42
  230. package/src/hooks/use-reverse-video-playback.ts +0 -43
  231. package/src/hooks/use-scroll-restoration.ts +0 -50
  232. package/src/mcp/README.md +0 -141
  233. package/src/mcp/enhanced-server.ts +0 -1208
  234. package/src/mcp/index.ts +0 -518
  235. package/src/mcp/package.json +0 -10
  236. package/src/registry/api.ts +0 -164
  237. package/src/registry/index.ts +0 -60
  238. package/src/registry/package.json +0 -10
  239. package/src/utils.ts +0 -1
  240. package/tailwind/colors.tailwind.js +0 -53
  241. package/tailwind/fontFamily.tailwind.ts +0 -7
  242. package/tailwind/fontSize.tailwind.ts +0 -13
  243. package/tailwind/index.ts +0 -7
  244. package/tailwind/safelist.tailwind.js +0 -26
  245. package/tailwind/screens.tailwind.js +0 -8
  246. package/tailwind/spacing.tailwind.js +0 -65
  247. package/tailwind/tailwind.config.hanzo-preset.d.ts +0 -5
  248. package/tailwind/tailwind.config.hanzo-preset.js +0 -915
  249. package/tailwind/tw-font-desc.ts +0 -15
  250. package/tailwind/typo-plugin/get-plugin-styles.js +0 -679
  251. package/tailwind/typo-plugin/index.d.ts +0 -9
  252. package/tailwind/typo-plugin/index.js +0 -141
  253. package/tailwind/typo-plugin/utils.js +0 -60
  254. package/tailwind/typography-test.mdx +0 -35
  255. package/tailwind/z-index.tailwind.js +0 -71
  256. package/test/test-registry.js +0 -73
  257. package/test-imports.mjs +0 -19
  258. package/tsconfig.json +0 -22
  259. package/types/animation-def.ts +0 -3
  260. package/types/breakpoints.ts +0 -11
  261. package/types/bullet-item.ts +0 -10
  262. package/types/button-def.ts +0 -39
  263. package/types/dimensions.ts +0 -8
  264. package/types/grid-def.ts +0 -56
  265. package/types/image-def.ts +0 -32
  266. package/types/index.ts +0 -29
  267. package/types/link-def.ts +0 -56
  268. package/types/media-stack-def.ts +0 -31
  269. package/types/t-shirt-size.ts +0 -5
  270. package/types/tshirt-dimensions.ts +0 -20
  271. package/types/video-def.ts +0 -25
  272. package/util/blob.ts +0 -28
  273. package/util/copy-to-clipboard.ts +0 -17
  274. package/util/create-shadow-root.ts +0 -22
  275. package/util/date.ts +0 -83
  276. package/util/debounce.ts +0 -11
  277. package/util/file.ts +0 -15
  278. package/util/format-and-abbreviate-as-currency.ts +0 -125
  279. package/util/format-text.ts +0 -33
  280. package/util/format-to-max-char.ts +0 -68
  281. package/util/index-client.ts +0 -3
  282. package/util/index.ts +0 -9
  283. package/util/number-abbreviate.ts +0 -49
  284. package/util/specifier.ts +0 -43
  285. package/util/spread-to-transform.ts +0 -24
  286. package/util/step-animation.ts +0 -90
  287. package/util/timing.ts +0 -3
  288. package/util/toasts.tsx +0 -17
  289. package/util/two-way-map.ts +0 -19
  290. package/utils.ts +0 -9
@@ -1,206 +0,0 @@
1
- import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
2
- import { Check, ChevronRight, Circle } from 'lucide-react';
3
- import * as React from 'react';
4
-
5
- import { cn } from '../src/utils';
6
-
7
- const ContextMenu = ContextMenuPrimitive.Root;
8
-
9
- const ContextMenuTrigger = ContextMenuPrimitive.Trigger;
10
-
11
- const ContextMenuGroup = ContextMenuPrimitive.Group;
12
-
13
- const ContextMenuPortal = ContextMenuPrimitive.Portal;
14
-
15
- const ContextMenuSub = ContextMenuPrimitive.Sub;
16
-
17
- const ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
18
-
19
- type ContextMenuSubTriggerProps = React.ComponentPropsWithoutRef<
20
- typeof ContextMenuPrimitive.SubTrigger
21
- > & {
22
- inset?: boolean;
23
- ref?: React.RefObject<
24
- React.ComponentRef<typeof ContextMenuPrimitive.SubTrigger>
25
- >;
26
- };
27
-
28
- const ContextMenuSubTrigger = ({
29
- className,
30
- inset,
31
- children,
32
- ref,
33
- ...props
34
- }: ContextMenuSubTriggerProps) => (
35
- <ContextMenuPrimitive.SubTrigger
36
- className={cn(
37
- 'focus:bg-accent data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none focus:text-white',
38
- inset && 'pl-8',
39
- className,
40
- )}
41
- ref={ref}
42
- {...props}
43
- >
44
- {children}
45
- <ChevronRight className="ml-auto h-4 w-4" />
46
- </ContextMenuPrimitive.SubTrigger>
47
- );
48
- ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
49
-
50
- const ContextMenuSubContent = ({
51
- className,
52
- ...props
53
- }: React.ComponentProps<typeof ContextMenuPrimitive.SubContent>) => (
54
- <ContextMenuPrimitive.SubContent
55
- className={cn(
56
- '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] overflow-hidden rounded-md border bg-gray-300 p-1 text-white shadow-md',
57
- className,
58
- )}
59
- {...props}
60
- />
61
- );
62
- ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
63
-
64
- const ContextMenuContent = ({
65
- className,
66
- ...props
67
- }: React.ComponentProps<typeof ContextMenuPrimitive.Content>) => (
68
- <ContextMenuPrimitive.Portal>
69
- <ContextMenuPrimitive.Content
70
- className={cn(
71
- 'animate-in fade-in-80 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] overflow-hidden rounded-md border border-gray-600 bg-gray-300 p-1 text-gray-50 shadow-md',
72
- className,
73
- )}
74
- {...props}
75
- />
76
- </ContextMenuPrimitive.Portal>
77
- );
78
- ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
79
-
80
- const ContextMenuItem = ({
81
- className,
82
- inset,
83
- ...props
84
- }: React.ComponentProps<typeof ContextMenuPrimitive.Item> & {
85
- inset?: boolean;
86
- }) => (
87
- <ContextMenuPrimitive.Item
88
- className={cn(
89
- 'relative flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none focus:bg-gray-200 focus:text-white data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
90
- inset && 'pl-8',
91
- className,
92
- )}
93
- {...props}
94
- />
95
- );
96
- ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
97
-
98
- const ContextMenuCheckboxItem = ({
99
- className,
100
- children,
101
- checked,
102
- ...props
103
- }: React.ComponentProps<typeof ContextMenuPrimitive.CheckboxItem>) => (
104
- <ContextMenuPrimitive.CheckboxItem
105
- checked={checked}
106
- className={cn(
107
- 'focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
108
- className,
109
- )}
110
- {...props}
111
- >
112
- <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
113
- <ContextMenuPrimitive.ItemIndicator>
114
- <Check className="h-4 w-4" />
115
- </ContextMenuPrimitive.ItemIndicator>
116
- </span>
117
- {children}
118
- </ContextMenuPrimitive.CheckboxItem>
119
- );
120
- ContextMenuCheckboxItem.displayName =
121
- ContextMenuPrimitive.CheckboxItem.displayName;
122
-
123
- const ContextMenuRadioItem = ({
124
- className,
125
- children,
126
- ...props
127
- }: React.ComponentProps<typeof ContextMenuPrimitive.RadioItem>) => (
128
- <ContextMenuPrimitive.RadioItem
129
- className={cn(
130
- 'focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
131
- className,
132
- )}
133
- {...props}
134
- >
135
- <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
136
- <ContextMenuPrimitive.ItemIndicator>
137
- <Circle className="h-2 w-2 fill-current" />
138
- </ContextMenuPrimitive.ItemIndicator>
139
- </span>
140
- {children}
141
- </ContextMenuPrimitive.RadioItem>
142
- );
143
- ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
144
-
145
- const ContextMenuLabel = ({
146
- className,
147
- inset,
148
- ...props
149
- }: React.ComponentProps<typeof ContextMenuPrimitive.Label> & {
150
- inset?: boolean;
151
- }) => (
152
- <ContextMenuPrimitive.Label
153
- className={cn(
154
- 'text-text-default px-2 py-1.5 text-sm font-semibold',
155
- inset && 'pl-8',
156
- className,
157
- )}
158
- {...props}
159
- />
160
- );
161
- ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
162
-
163
- const ContextMenuSeparator = ({
164
- className,
165
- ...props
166
- }: React.ComponentProps<typeof ContextMenuPrimitive.Separator>) => (
167
- <ContextMenuPrimitive.Separator
168
- className={cn('bg-border -mx-1 my-1 h-px', className)}
169
- {...props}
170
- />
171
- );
172
- ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
173
-
174
- const ContextMenuShortcut = ({
175
- className,
176
- ...props
177
- }: React.HTMLAttributes<HTMLSpanElement>) => {
178
- return (
179
- <span
180
- className={cn(
181
- 'text-text-secondary ml-auto text-xs tracking-widest',
182
- className,
183
- )}
184
- {...props}
185
- />
186
- );
187
- };
188
- ContextMenuShortcut.displayName = 'ContextMenuShortcut';
189
-
190
- export {
191
- ContextMenu,
192
- ContextMenuTrigger,
193
- ContextMenuContent,
194
- ContextMenuItem,
195
- ContextMenuCheckboxItem,
196
- ContextMenuRadioItem,
197
- ContextMenuLabel,
198
- ContextMenuSeparator,
199
- ContextMenuShortcut,
200
- ContextMenuGroup,
201
- ContextMenuPortal,
202
- ContextMenuSub,
203
- ContextMenuSubContent,
204
- ContextMenuSubTrigger,
205
- ContextMenuRadioGroup,
206
- };
@@ -1,60 +0,0 @@
1
- import { CheckCircle2, CopyIcon } from 'lucide-react';
2
- import React, { cloneElement, type ReactElement } from 'react';
3
-
4
- import { useCopyClipboard } from '../src/hooks';
5
- import { cn } from '../src/utils';
6
- import { Button } from './button';
7
-
8
- type CopyToClipboardIconProps = {
9
- string?: string;
10
- children?: ReactElement<{
11
- className?: string;
12
- onClick?: () => void;
13
- }>;
14
- className?: string;
15
- onCopyClipboard?: () => void;
16
- asChild?: boolean;
17
- };
18
-
19
- const CopyToClipboardIcon = ({
20
- string,
21
- children,
22
- className,
23
- onCopyClipboard,
24
- asChild = false,
25
- }: CopyToClipboardIconProps) => {
26
- const { isCopied, onCopy } = useCopyClipboard({
27
- string,
28
- onCopyClipboard,
29
- });
30
-
31
- const ClipboardIcon = isCopied ? CheckCircle2 : CopyIcon;
32
-
33
- if (asChild && children) {
34
- return cloneElement(children, {
35
- onClick: onCopy,
36
- className: cn(children.props?.className, className),
37
- });
38
- }
39
-
40
- return (
41
- <Button
42
- className={cn(
43
- 'text-text-secondary hover:bg-bg-tertiary bg-bg-tertiary flex h-8 w-8 gap-2 rounded-lg text-xs font-normal transition-colors hover:text-white',
44
- className,
45
- )}
46
- disabled={!string}
47
- onClick={onCopy}
48
- size={'icon'}
49
- type="button"
50
- variant="tertiary"
51
- >
52
- <ClipboardIcon
53
- className={cn('h-3.5 w-3.5', isCopied && 'text-green-500')}
54
- />
55
- {children}
56
- </Button>
57
- );
58
- };
59
-
60
- export { CopyToClipboardIcon, useCopyClipboard };
@@ -1,38 +0,0 @@
1
- 'use client'
2
-
3
- import React, { PropsWithChildren, useState } from 'react'
4
-
5
- const DialogVideoController: React.FC<PropsWithChildren> = ({
6
- children,
7
- }) => {
8
-
9
- const [open, setOpen] = useState<boolean>(false)
10
-
11
- const onOpenChange = (b: boolean) => {
12
- setOpen(b)
13
- const videos = document.getElementsByTagName('video')
14
- const videoArray = Array.from(videos)
15
- videoArray.forEach((v) => {
16
- if (b) {
17
- v.pause()
18
- }
19
- else {
20
- v.play()
21
- }
22
- })
23
- }
24
-
25
- // https://stackoverflow.com/a/49052730/11645689
26
- const updatedChildren = React.Children.map(
27
- children,
28
- (child) => (React.cloneElement(
29
- child as any, { open, onOpenChange }
30
- ))
31
- )
32
-
33
- return (<>
34
- {updatedChildren}
35
- </>)
36
- }
37
-
38
- export default DialogVideoController
@@ -1,123 +0,0 @@
1
- import * as DialogPrimitive from '@radix-ui/react-dialog';
2
- import { X } from 'lucide-react';
3
- import * as React from 'react';
4
-
5
- import { cn } from '../src/utils';
6
-
7
- const Dialog = DialogPrimitive.Root;
8
-
9
- const DialogTrigger = DialogPrimitive.Trigger;
10
-
11
- const DialogPortal = DialogPrimitive.Portal;
12
-
13
- const DialogOverlay = ({
14
- className,
15
- ...props
16
- }: React.ComponentProps<typeof DialogPrimitive.Overlay>) => (
17
- <DialogPrimitive.Overlay
18
- className={cn(
19
- 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50',
20
- 'bg-bg-dark/90',
21
- className,
22
- )}
23
- {...props}
24
- />
25
- );
26
- DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
27
-
28
- const DialogContent = ({
29
- className,
30
- children,
31
- showCloseButton = false,
32
- ...props
33
- }: React.ComponentProps<typeof DialogPrimitive.Content> & {
34
- showCloseButton?: boolean;
35
- }) => (
36
- <DialogPortal>
37
- <DialogOverlay />
38
- <DialogPrimitive.Content
39
- className={cn(
40
- 'bg-bg-default 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 border-divider fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:rounded-lg md:w-full',
41
- className,
42
- )}
43
- {...props}
44
- >
45
- {children}
46
- <DialogPrimitive.Close
47
- className={cn(
48
- 'ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-text-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none',
49
- !showCloseButton && 'hidden',
50
- )}
51
- >
52
- <X className="h-4 w-4" />
53
- <span className="sr-only">Close</span>
54
- </DialogPrimitive.Close>
55
- </DialogPrimitive.Content>
56
- </DialogPortal>
57
- );
58
- DialogContent.displayName = DialogPrimitive.Content.displayName;
59
-
60
- const DialogHeader = ({
61
- className,
62
- ...props
63
- }: React.HTMLAttributes<HTMLDivElement>) => (
64
- <div
65
- className={cn(
66
- 'flex flex-col space-y-1.5 text-center sm:text-left',
67
- className,
68
- )}
69
- {...props}
70
- />
71
- );
72
- DialogHeader.displayName = 'DialogHeader';
73
-
74
- const DialogFooter = ({
75
- className,
76
- ...props
77
- }: React.HTMLAttributes<HTMLDivElement>) => (
78
- <div
79
- className={cn(
80
- 'flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2',
81
- className,
82
- )}
83
- {...props}
84
- />
85
- );
86
- DialogFooter.displayName = 'DialogFooter';
87
-
88
- const DialogTitle = ({
89
- className,
90
- ...props
91
- }: React.ComponentProps<typeof DialogPrimitive.Title>) => (
92
- <DialogPrimitive.Title
93
- className={cn(
94
- 'text-lg leading-none font-semibold tracking-tight',
95
- className,
96
- )}
97
- {...props}
98
- />
99
- );
100
- DialogTitle.displayName = DialogPrimitive.Title.displayName;
101
-
102
- const DialogDescription = ({
103
- className,
104
- ...props
105
- }: React.ComponentProps<typeof DialogPrimitive.Description>) => (
106
- <DialogPrimitive.Description
107
- className={cn('text-text-secondary text-sm', className)}
108
- {...props}
109
- />
110
- );
111
- DialogDescription.displayName = DialogPrimitive.Description.displayName;
112
-
113
- export {
114
- Dialog,
115
- DialogPortal,
116
- DialogOverlay,
117
- DialogTrigger,
118
- DialogContent,
119
- DialogHeader,
120
- DialogFooter,
121
- DialogTitle,
122
- DialogDescription,
123
- };
@@ -1,57 +0,0 @@
1
- import { useId } from 'react';
2
-
3
- import { cn } from '../src/utils';
4
-
5
- interface DotPatternProps {
6
- width?: any;
7
- height?: any;
8
- x?: any;
9
- y?: any;
10
- cx?: any;
11
- cy?: any;
12
- cr?: any;
13
- className?: string;
14
- [key: string]: any;
15
- }
16
-
17
- function DotPattern({
18
- width = 16,
19
- height = 16,
20
- x = 0,
21
- y = 0,
22
- cx = 1,
23
- cy = 1,
24
- cr = 1,
25
- className,
26
- ...props
27
- }: DotPatternProps) {
28
- const id = useId();
29
-
30
- return (
31
- <svg
32
- aria-hidden="true"
33
- className={cn(
34
- 'pointer-events-none absolute inset-0 h-full w-full fill-neutral-400/80',
35
- className,
36
- )}
37
- {...props}
38
- >
39
- <defs>
40
- <pattern
41
- height={height}
42
- id={id}
43
- patternContentUnits="userSpaceOnUse"
44
- patternUnits="userSpaceOnUse"
45
- width={width}
46
- x={x}
47
- y={y}
48
- >
49
- <circle cx={cx} cy={cy} id="pattern-circle" r={cr} />
50
- </pattern>
51
- </defs>
52
- <rect fill={`url(#${id})`} height="100%" strokeWidth={0} width="100%" />
53
- </svg>
54
- );
55
- }
56
-
57
- export { DotPattern };
@@ -1,13 +0,0 @@
1
- const DotsLoader = ({ className }: { className?: string }) => {
2
- return (
3
- <div className={className}>
4
- <div className="flex h-4 space-x-1.5">
5
- <div className="h-2 w-2 animate-[loaderDots_0.6s_0s_infinite_alternate] rounded-full bg-slate-100" />
6
- <div className="h-2 w-2 animate-[loaderDots_0.6s_0.3s_infinite_alternate] rounded-full bg-slate-100" />
7
- <div className="h-2 w-2 animate-[loaderDots_0.6s_0.6s_infinite_alternate] rounded-full bg-slate-100" />
8
- </div>
9
- </div>
10
- );
11
- };
12
-
13
- export { DotsLoader };
@@ -1,110 +0,0 @@
1
- import * as React from 'react';
2
- import { Drawer as DrawerPrimitive } from 'vaul';
3
-
4
- import { cn } from '../src/utils';
5
-
6
- const Drawer = ({
7
- shouldScaleBackground = false,
8
- ...props
9
- }: React.ComponentProps<typeof DrawerPrimitive.Root>) => (
10
- <DrawerPrimitive.Root
11
- shouldScaleBackground={shouldScaleBackground}
12
- {...props}
13
- />
14
- );
15
- Drawer.displayName = 'Drawer';
16
-
17
- const DrawerTrigger = DrawerPrimitive.Trigger;
18
-
19
- const DrawerPortal = DrawerPrimitive.Portal;
20
-
21
- const DrawerClose = DrawerPrimitive.Close;
22
-
23
- const DrawerOverlay = ({
24
- className,
25
- ...props
26
- }: React.ComponentProps<typeof DrawerPrimitive.Overlay>) => (
27
- <DrawerPrimitive.Overlay
28
- className={cn('fixed inset-0 z-50 bg-black/70', className)}
29
- {...props}
30
- />
31
- );
32
- DrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;
33
-
34
- const DrawerContent = ({
35
- className,
36
- children,
37
- ...props
38
- }: React.ComponentProps<typeof DrawerPrimitive.Content>) => (
39
- <DrawerPortal>
40
- <DrawerOverlay />
41
- <DrawerPrimitive.Content
42
- className={cn(
43
- 'fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-gray-500 px-6 pb-6 focus:outline-hidden',
44
- className,
45
- )}
46
- {...props}
47
- >
48
- <div className="mx-auto mt-4 h-2 w-[100px] rounded-full bg-gray-300" />
49
- {children}
50
- </DrawerPrimitive.Content>
51
- </DrawerPortal>
52
- );
53
- DrawerContent.displayName = 'DrawerContent';
54
-
55
- const DrawerHeader = ({
56
- className,
57
- ...props
58
- }: React.HTMLAttributes<HTMLDivElement>) => (
59
- <div className={cn('pt-5 pb-0', className)} {...props} />
60
- );
61
- DrawerHeader.displayName = 'DrawerHeader';
62
-
63
- const DrawerFooter = ({
64
- className,
65
- ...props
66
- }: React.HTMLAttributes<HTMLDivElement>) => (
67
- <div
68
- className={cn('mt-auto flex flex-col gap-2 p-4', className)}
69
- {...props}
70
- />
71
- );
72
- DrawerFooter.displayName = 'DrawerFooter';
73
-
74
- const DrawerTitle = ({
75
- className,
76
- ...props
77
- }: React.ComponentProps<typeof DrawerPrimitive.Title>) => (
78
- <DrawerPrimitive.Title
79
- className={cn(
80
- 'text-lg leading-none font-semibold tracking-tight',
81
- className,
82
- )}
83
- {...props}
84
- />
85
- );
86
- DrawerTitle.displayName = DrawerPrimitive.Title.displayName;
87
-
88
- const DrawerDescription = ({
89
- className,
90
- ...props
91
- }: React.ComponentProps<typeof DrawerPrimitive.Description>) => (
92
- <DrawerPrimitive.Description
93
- className={cn('text-text-secondary text-sm', className)}
94
- {...props}
95
- />
96
- );
97
- DrawerDescription.displayName = DrawerPrimitive.Description.displayName;
98
-
99
- export {
100
- Drawer,
101
- DrawerPortal,
102
- DrawerOverlay,
103
- DrawerTrigger,
104
- DrawerClose,
105
- DrawerContent,
106
- DrawerHeader,
107
- DrawerFooter,
108
- DrawerTitle,
109
- DrawerDescription,
110
- };