@hanzo/ui 5.0.2 → 5.1.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 (371) hide show
  1. package/dist/accordion.js +1 -0
  2. package/dist/accordion.mjs +1 -0
  3. package/dist/alert-dialog.js +1 -0
  4. package/dist/alert-dialog.mjs +1 -0
  5. package/dist/alert.js +1 -0
  6. package/dist/alert.mjs +1 -0
  7. package/dist/avatar.js +1 -0
  8. package/dist/avatar.mjs +1 -0
  9. package/dist/badge.js +1 -0
  10. package/dist/badge.mjs +1 -0
  11. package/dist/breadcrumb.js +1 -0
  12. package/dist/breadcrumb.mjs +1 -0
  13. package/dist/calendar.js +1 -0
  14. package/dist/calendar.mjs +1 -0
  15. package/dist/carousel.js +1 -0
  16. package/dist/carousel.mjs +1 -0
  17. package/dist/checkbox.js +1 -0
  18. package/dist/checkbox.mjs +1 -0
  19. package/dist/chunk-3H5S2OQ3.mjs +1 -0
  20. package/dist/chunk-5GRJ7UQX.js +1 -0
  21. package/dist/chunk-63HNMH7C.js +1 -0
  22. package/dist/chunk-72TOQ4DM.mjs +1 -0
  23. package/dist/chunk-7AEFTV5R.mjs +1 -0
  24. package/dist/chunk-7M4AVV2R.js +1 -0
  25. package/dist/chunk-DKPVJSBC.js +1 -0
  26. package/dist/chunk-EI7MMDWY.js +1 -0
  27. package/dist/chunk-GANGDIZG.mjs +1 -0
  28. package/dist/chunk-GRGT2Z4K.js +1 -0
  29. package/dist/chunk-JCUUC6NY.mjs +1 -0
  30. package/dist/chunk-JUQMWLIN.js +1 -0
  31. package/dist/chunk-PRVEIITE.js +1 -0
  32. package/dist/chunk-SH52AKNZ.js +1 -0
  33. package/dist/chunk-TU67EJEW.mjs +1 -0
  34. package/dist/chunk-WN5KN73U.mjs +1 -0
  35. package/dist/chunk-YSXGDEY5.mjs +1 -0
  36. package/dist/chunk-Z76OOVUE.mjs +1 -0
  37. package/dist/collapsible.js +1 -0
  38. package/dist/collapsible.mjs +1 -0
  39. package/dist/command.js +1 -0
  40. package/dist/command.mjs +1 -0
  41. package/dist/context-menu.js +1 -0
  42. package/dist/context-menu.mjs +1 -0
  43. package/dist/dialog.js +1 -0
  44. package/dist/dialog.mjs +1 -0
  45. package/dist/drawer.js +1 -0
  46. package/dist/drawer.mjs +1 -0
  47. package/dist/dropdown-menu.js +1 -0
  48. package/dist/dropdown-menu.mjs +1 -0
  49. package/dist/form.js +1 -0
  50. package/dist/form.mjs +1 -0
  51. package/dist/hover-card.js +1 -0
  52. package/dist/hover-card.mjs +1 -0
  53. package/dist/index.js +1 -9079
  54. package/dist/index.mjs +1 -8700
  55. package/dist/input-otp.js +1 -0
  56. package/dist/input-otp.mjs +1 -0
  57. package/dist/lib/utils.js +1 -0
  58. package/dist/lib/utils.mjs +1 -0
  59. package/dist/navigation-menu.js +1 -0
  60. package/dist/navigation-menu.mjs +1 -0
  61. package/dist/popover.js +1 -0
  62. package/dist/popover.mjs +1 -0
  63. package/dist/progress.js +1 -0
  64. package/dist/progress.mjs +1 -0
  65. package/dist/radio-group.js +1 -0
  66. package/dist/radio-group.mjs +1 -0
  67. package/dist/resizable.js +1 -0
  68. package/dist/resizable.mjs +1 -0
  69. package/dist/scroll-area.js +1 -0
  70. package/dist/scroll-area.mjs +1 -0
  71. package/dist/select.js +1 -0
  72. package/dist/select.mjs +1 -0
  73. package/dist/separator.js +1 -0
  74. package/dist/separator.mjs +1 -0
  75. package/dist/sheet.js +1 -0
  76. package/dist/sheet.mjs +1 -0
  77. package/dist/skeleton.js +1 -0
  78. package/dist/skeleton.mjs +1 -0
  79. package/dist/slider.js +1 -0
  80. package/dist/slider.mjs +1 -0
  81. package/dist/sonner.js +1 -0
  82. package/dist/sonner.mjs +1 -0
  83. package/dist/src/utils.js +1 -0
  84. package/dist/src/utils.mjs +1 -0
  85. package/dist/switch.js +1 -0
  86. package/dist/switch.mjs +1 -0
  87. package/dist/table.js +1 -0
  88. package/dist/table.mjs +1 -0
  89. package/dist/tabs.js +1 -0
  90. package/dist/tabs.mjs +1 -0
  91. package/dist/tailwind/index.js +1 -0
  92. package/dist/tailwind/index.mjs +1 -0
  93. package/dist/textarea.js +1 -0
  94. package/dist/textarea.mjs +1 -0
  95. package/dist/toggle-group.js +1 -0
  96. package/dist/toggle-group.mjs +1 -0
  97. package/dist/toggle.js +1 -0
  98. package/dist/toggle.mjs +1 -0
  99. package/dist/tooltip.js +1 -0
  100. package/dist/tooltip.mjs +1 -0
  101. package/dist/types/index.js +1 -0
  102. package/dist/types/index.mjs +1 -0
  103. package/package.json +110 -81
  104. package/assets/ai-icons.tsx +0 -207
  105. package/assets/crypto.tsx +0 -33
  106. package/assets/file-type-icon.tsx +0 -66
  107. package/assets/file.tsx +0 -45
  108. package/assets/general.tsx +0 -2318
  109. package/assets/hanzo-logo.svg +0 -9
  110. package/assets/hanzo-logo.tsx +0 -17
  111. package/assets/index.ts +0 -122
  112. package/assets/index.tsx +0 -4
  113. package/assets/llm-provider.tsx +0 -1094
  114. package/blocks/auth/index.ts +0 -6
  115. package/blocks/auth/login-2fa.tsx +0 -165
  116. package/blocks/auth/login-basic.tsx +0 -94
  117. package/blocks/auth/login-social.tsx +0 -148
  118. package/blocks/auth/magic-link.tsx +0 -129
  119. package/blocks/auth/password-reset.tsx +0 -97
  120. package/blocks/auth/signup.tsx +0 -157
  121. package/blocks/components/accordian-block.tsx +0 -48
  122. package/blocks/components/block-component-props.ts +0 -11
  123. package/blocks/components/bullet-cards-block.tsx +0 -46
  124. package/blocks/components/card-block/index.tsx +0 -171
  125. package/blocks/components/card-block/link-out-button.tsx +0 -20
  126. package/blocks/components/card-block/util.ts +0 -28
  127. package/blocks/components/carte-blanche-block/index.tsx +0 -127
  128. package/blocks/components/carte-blanche-block/variant-content-left.tsx +0 -49
  129. package/blocks/components/content.tsx +0 -70
  130. package/blocks/components/cta-block.tsx +0 -115
  131. package/blocks/components/enh-heading-block.tsx +0 -204
  132. package/blocks/components/grid-block/grid-block-mutator.ts +0 -12
  133. package/blocks/components/grid-block/index.tsx +0 -83
  134. package/blocks/components/grid-block/mutator-registry.ts +0 -10
  135. package/blocks/components/grid-block/table-borders.mutator.ts +0 -47
  136. package/blocks/components/group-block.tsx +0 -83
  137. package/blocks/components/heading-block.tsx +0 -88
  138. package/blocks/components/image-block.tsx +0 -111
  139. package/blocks/components/index.ts +0 -30
  140. package/blocks/components/screenful-block/content.tsx +0 -123
  141. package/blocks/components/screenful-block/index.tsx +0 -107
  142. package/blocks/components/screenful-block/poster-background.tsx +0 -34
  143. package/blocks/components/screenful-block/video-background.tsx +0 -45
  144. package/blocks/components/space-block.tsx +0 -66
  145. package/blocks/components/video-block.tsx +0 -138
  146. package/blocks/data-display/activity-feed.tsx +0 -242
  147. package/blocks/data-display/data-table.tsx +0 -235
  148. package/blocks/data-display/stats-grid.tsx +0 -194
  149. package/blocks/def/accordian-block.ts +0 -14
  150. package/blocks/def/block.ts +0 -7
  151. package/blocks/def/bullet-cards-block.ts +0 -22
  152. package/blocks/def/card-block.ts +0 -22
  153. package/blocks/def/carte-blanche-block.ts +0 -21
  154. package/blocks/def/cta-block.ts +0 -19
  155. package/blocks/def/element-block.ts +0 -11
  156. package/blocks/def/enh-heading-block.ts +0 -44
  157. package/blocks/def/grid-block.ts +0 -16
  158. package/blocks/def/group-block.ts +0 -11
  159. package/blocks/def/heading-block.ts +0 -15
  160. package/blocks/def/image-block.ts +0 -31
  161. package/blocks/def/index.ts +0 -35
  162. package/blocks/def/screenful-block.ts +0 -54
  163. package/blocks/def/space-block.ts +0 -64
  164. package/blocks/def/video-block.ts +0 -9
  165. package/blocks/ecommerce/checkout.tsx +0 -242
  166. package/blocks/ecommerce/index.ts +0 -7
  167. package/blocks/ecommerce/product-detail.tsx +0 -257
  168. package/blocks/ecommerce/product-grid.tsx +0 -148
  169. package/blocks/ecommerce/shopping-cart.tsx +0 -181
  170. package/blocks/index.ts +0 -2
  171. package/blocks/marketing/cta-section.tsx +0 -207
  172. package/blocks/marketing/faq.tsx +0 -159
  173. package/blocks/marketing/features-grid.tsx +0 -156
  174. package/blocks/marketing/hero-section.tsx +0 -192
  175. package/blocks/marketing/index.ts +0 -6
  176. package/blocks/marketing/pricing-table.tsx +0 -121
  177. package/blocks/marketing/testimonials.tsx +0 -196
  178. package/components/index.ts +0 -9
  179. package/dist/index.js.map +0 -1
  180. package/dist/index.mjs.map +0 -1
  181. package/dist/tailwind.js +0 -2025
  182. package/dist/tailwind.js.map +0 -1
  183. package/dist/tailwind.mjs +0 -2013
  184. package/dist/tailwind.mjs.map +0 -1
  185. package/dist/types.js +0 -59
  186. package/dist/types.js.map +0 -1
  187. package/dist/types.mjs +0 -53
  188. package/dist/types.mjs.map +0 -1
  189. package/dist/utils.js +0 -30
  190. package/dist/utils.js.map +0 -1
  191. package/dist/utils.mjs +0 -26
  192. package/dist/utils.mjs.map +0 -1
  193. package/frameworks/core/index.ts +0 -6
  194. package/frameworks/core/utils/index.ts +0 -64
  195. package/frameworks/react/components/button.tsx +0 -26
  196. package/frameworks/react/components/index.ts +0 -5
  197. package/frameworks/react/hooks/index.ts +0 -5
  198. package/frameworks/react/index.ts +0 -9
  199. package/frameworks/react/package.json +0 -8
  200. package/frameworks/react/utils/index.ts +0 -2
  201. package/frameworks/react-native/index.ts +0 -9
  202. package/frameworks/react-native/package.json +0 -8
  203. package/frameworks/registry.json +0 -371
  204. package/frameworks/setup.sh +0 -69
  205. package/frameworks/svelte/index.ts +0 -9
  206. package/frameworks/svelte/package.json +0 -8
  207. package/frameworks/tracker.json +0 -1854
  208. package/frameworks/vue/index.ts +0 -9
  209. package/frameworks/vue/package.json +0 -8
  210. package/helpers/file.ts +0 -33
  211. package/helpers/memoization.ts +0 -40
  212. package/primitives/accordion.tsx +0 -74
  213. package/primitives/action-button.tsx +0 -42
  214. package/primitives/alert-dialog.tsx +0 -185
  215. package/primitives/alert.tsx +0 -74
  216. package/primitives/apply-typography.tsx +0 -55
  217. package/primitives/aspect-ratio.tsx +0 -5
  218. package/primitives/avatar.tsx +0 -57
  219. package/primitives/background-beams.tsx +0 -142
  220. package/primitives/badge.tsx +0 -45
  221. package/primitives/breadcrumb.tsx +0 -130
  222. package/primitives/breakpoint-indicator.tsx +0 -19
  223. package/primitives/button.tsx +0 -72
  224. package/primitives/calendar.tsx +0 -72
  225. package/primitives/card.tsx +0 -97
  226. package/primitives/carousel.tsx +0 -238
  227. package/primitives/chat/chat-input-area.tsx +0 -88
  228. package/primitives/chat/chat-input.tsx +0 -71
  229. package/primitives/chat/files-preview.tsx +0 -331
  230. package/primitives/chat/index.ts +0 -6
  231. package/primitives/chat/json-form.tsx +0 -8
  232. package/primitives/chat/message-list.tsx +0 -308
  233. package/primitives/chat/message.tsx +0 -569
  234. package/primitives/chat/sqlite-preview.tsx +0 -215
  235. package/primitives/checkbox.tsx +0 -32
  236. package/primitives/collapsible.tsx +0 -9
  237. package/primitives/combobox.tsx +0 -239
  238. package/primitives/command.tsx +0 -151
  239. package/primitives/context-menu.tsx +0 -206
  240. package/primitives/copy-to-clipboard-icon.tsx +0 -60
  241. package/primitives/dialog-video-controller.tsx +0 -38
  242. package/primitives/dialog.tsx +0 -128
  243. package/primitives/dot-pattern.tsx +0 -57
  244. package/primitives/dots-loader.tsx +0 -13
  245. package/primitives/drawer.tsx +0 -113
  246. package/primitives/dropdown-menu.tsx +0 -199
  247. package/primitives/error-message.tsx +0 -19
  248. package/primitives/file-uploader.tsx +0 -203
  249. package/primitives/form.tsx +0 -185
  250. package/primitives/hover-card.tsx +0 -28
  251. package/primitives/icons/github.tsx +0 -14
  252. package/primitives/icons/index.ts +0 -18
  253. package/primitives/icons/youtube-logo.tsx +0 -59
  254. package/primitives/index-client.ts +0 -4
  255. package/primitives/index-common.ts +0 -304
  256. package/primitives/index-next.ts +0 -4
  257. package/primitives/input-otp.tsx +0 -65
  258. package/primitives/input.tsx +0 -128
  259. package/primitives/label.tsx +0 -21
  260. package/primitives/list-adaptor.ts +0 -12
  261. package/primitives/list-box.tsx +0 -74
  262. package/primitives/loading-spinner.tsx +0 -33
  263. package/primitives/markdown-preview.tsx +0 -612
  264. package/primitives/mermaid.tsx +0 -196
  265. package/primitives/navigation-menu.tsx +0 -147
  266. package/primitives/next/image.tsx +0 -91
  267. package/primitives/next/index.ts +0 -7
  268. package/primitives/next/inline-icon.tsx +0 -36
  269. package/primitives/next/link-element.tsx +0 -109
  270. package/primitives/next/mdx-link.tsx +0 -22
  271. package/primitives/next/media-stack.tsx +0 -52
  272. package/primitives/next/nav-items.tsx +0 -45
  273. package/primitives/next/youtube-embed.tsx +0 -83
  274. package/primitives/pagination.tsx +0 -117
  275. package/primitives/popover.tsx +0 -34
  276. package/primitives/pretty-json-print.tsx +0 -28
  277. package/primitives/progress.tsx +0 -27
  278. package/primitives/prompt-textarea.tsx +0 -72
  279. package/primitives/qr-code.tsx +0 -112
  280. package/primitives/radio-group.tsx +0 -42
  281. package/primitives/resizable.tsx +0 -47
  282. package/primitives/scroll-area.tsx +0 -57
  283. package/primitives/search-input.tsx +0 -66
  284. package/primitives/select.tsx +0 -122
  285. package/primitives/separator.tsx +0 -26
  286. package/primitives/sheet.tsx +0 -139
  287. package/primitives/skeleton.tsx +0 -18
  288. package/primitives/slider.tsx +0 -63
  289. package/primitives/sonner.tsx +0 -35
  290. package/primitives/step-indicator.tsx +0 -69
  291. package/primitives/stepper.tsx +0 -272
  292. package/primitives/switch.tsx +0 -27
  293. package/primitives/table.tsx +0 -105
  294. package/primitives/tabs.tsx +0 -50
  295. package/primitives/text-area.tsx +0 -26
  296. package/primitives/text-link.tsx +0 -27
  297. package/primitives/textarea.tsx +0 -64
  298. package/primitives/textfield.tsx +0 -78
  299. package/primitives/toast.tsx +0 -30
  300. package/primitives/toggle-group.tsx +0 -63
  301. package/primitives/toggle.tsx +0 -44
  302. package/primitives/tooltip.tsx +0 -47
  303. package/primitives/video-player.tsx +0 -23
  304. package/src/button.ts +0 -1
  305. package/src/hooks/index.ts +0 -7
  306. package/src/hooks/use-click-away.ts +0 -31
  307. package/src/hooks/use-combined-refs.ts +0 -22
  308. package/src/hooks/use-copy-clipboard.ts +0 -30
  309. package/src/hooks/use-debounce.ts +0 -17
  310. package/src/hooks/use-fill-ids.ts +0 -25
  311. package/src/hooks/use-map.ts +0 -26
  312. package/src/hooks/use-measure.ts +0 -42
  313. package/src/hooks/use-reverse-video-playback.ts +0 -43
  314. package/src/hooks/use-scroll-restoration.ts +0 -50
  315. package/src/index-lean.ts +0 -87
  316. package/src/index.ts +0 -54
  317. package/src/mcp/README.md +0 -141
  318. package/src/mcp/enhanced-server.ts +0 -1208
  319. package/src/mcp/index.ts +0 -518
  320. package/src/mcp/package.json +0 -10
  321. package/src/registry/api.ts +0 -164
  322. package/src/registry/index.ts +0 -60
  323. package/src/registry/package.json +0 -10
  324. package/src/utils.ts +0 -19
  325. package/tailwind/colors.tailwind.js +0 -53
  326. package/tailwind/fontFamily.tailwind.ts +0 -7
  327. package/tailwind/fontSize.tailwind.ts +0 -13
  328. package/tailwind/index.ts +0 -7
  329. package/tailwind/safelist.tailwind.js +0 -26
  330. package/tailwind/screens.tailwind.js +0 -8
  331. package/tailwind/spacing.tailwind.js +0 -65
  332. package/tailwind/tailwind.config.hanzo-preset.d.ts +0 -5
  333. package/tailwind/tailwind.config.hanzo-preset.js +0 -915
  334. package/tailwind/tw-font-desc.ts +0 -15
  335. package/tailwind/typo-plugin/get-plugin-styles.js +0 -679
  336. package/tailwind/typo-plugin/index.d.ts +0 -9
  337. package/tailwind/typo-plugin/index.js +0 -141
  338. package/tailwind/typo-plugin/utils.js +0 -60
  339. package/tailwind/typography-test.mdx +0 -35
  340. package/tailwind/z-index.tailwind.js +0 -71
  341. package/types/animation-def.ts +0 -3
  342. package/types/breakpoints.ts +0 -11
  343. package/types/bullet-item.ts +0 -10
  344. package/types/button-def.ts +0 -39
  345. package/types/dimensions.ts +0 -8
  346. package/types/grid-def.ts +0 -56
  347. package/types/image-def.ts +0 -32
  348. package/types/index.ts +0 -30
  349. package/types/link-def.ts +0 -56
  350. package/types/media-stack-def.ts +0 -31
  351. package/types/t-shirt-size.ts +0 -5
  352. package/types/tshirt-dimensions.ts +0 -20
  353. package/types/video-def.ts +0 -25
  354. package/util/blob.ts +0 -33
  355. package/util/copy-to-clipboard.ts +0 -17
  356. package/util/create-shadow-root.ts +0 -22
  357. package/util/date.ts +0 -84
  358. package/util/debounce.ts +0 -11
  359. package/util/file.ts +0 -15
  360. package/util/format-and-abbreviate-as-currency.ts +0 -125
  361. package/util/format-text.ts +0 -34
  362. package/util/format-to-max-char.ts +0 -68
  363. package/util/index-client.ts +0 -3
  364. package/util/index.ts +0 -112
  365. package/util/number-abbreviate.ts +0 -49
  366. package/util/specifier.ts +0 -43
  367. package/util/spread-to-transform.ts +0 -25
  368. package/util/step-animation.ts +0 -90
  369. package/util/timing.ts +0 -3
  370. package/util/toasts.tsx +0 -17
  371. package/util/two-way-map.ts +0 -19
@@ -1,66 +0,0 @@
1
- import { SearchIcon, XIcon } from 'lucide-react';
2
- import React from 'react';
3
-
4
- import { cn } from '../src/utils';
5
- import { Button } from './button';
6
- import { Input } from './input';
7
-
8
- export type SearchInputProps = React.InputHTMLAttributes<HTMLInputElement> & {
9
- classNames?: {
10
- container?: string;
11
- input?: string;
12
- button?: string;
13
- };
14
- };
15
-
16
- const SearchInput = ({
17
- className,
18
- value,
19
- onChange,
20
- classNames,
21
- ...props
22
- }: SearchInputProps) => {
23
- return (
24
- <div
25
- className={cn(
26
- 'shadow-border-input focus-within:shadow-border-input-focus relative flex h-10 flex-1 items-center overflow-hidden rounded-full shadow-[0_0_0_1px_currentColor] transition-shadow',
27
- classNames?.container,
28
- )}
29
- >
30
- <Input
31
- className={cn(
32
- 'placeholder:!text-text-placeholder !h-full border-none bg-transparent py-2 pl-10',
33
- classNames?.input,
34
- )}
35
- onChange={(e) => {
36
- onChange?.(e);
37
- }}
38
- placeholder="Search..."
39
- spellCheck={false}
40
- value={value}
41
- {...props}
42
- />
43
- <SearchIcon className="text-text-tertiary absolute top-1/2 left-4 -z-[1px] h-4 w-4 -translate-y-1/2" />
44
- {value && (
45
- <Button
46
- className={cn('absolute right-1 h-8 w-8 p-2', classNames?.button)}
47
- onClick={() => {
48
- onChange?.({
49
- target: { value: '' },
50
- } as React.ChangeEvent<HTMLInputElement>);
51
- }}
52
- size="auto"
53
- type="button"
54
- variant="tertiary"
55
- >
56
- <XIcon />
57
- <span className="sr-only">Clear</span>
58
- </Button>
59
- )}
60
- </div>
61
- );
62
- };
63
-
64
- SearchInput.displayName = 'SearchInput';
65
-
66
- export { SearchInput };
@@ -1,122 +0,0 @@
1
- import { CheckIcon } from '@radix-ui/react-icons';
2
- import * as SelectPrimitive from '@radix-ui/react-select';
3
- import { ChevronDown } from 'lucide-react';
4
- import React from 'react';
5
-
6
- import { cn } from '../src/utils';
7
-
8
- const Select = SelectPrimitive.Root;
9
-
10
- const SelectGroup = SelectPrimitive.Group;
11
-
12
- const SelectValue = SelectPrimitive.Value;
13
-
14
- const SelectTrigger = ({
15
- className,
16
- children,
17
- ...props
18
- }: React.ComponentProps<typeof SelectPrimitive.Trigger>) => (
19
- <SelectPrimitive.Trigger
20
- className={cn(
21
- 'h-input border-divider bg-bg-secondary relative flex w-full items-center justify-between rounded-md border px-4 py-2 text-sm shadow-xs',
22
- 'focus:ring-border-input-focus placeholder:text-text-secondary focus:ring-1 focus:outline-hidden focus:ring-inset disabled:cursor-not-allowed disabled:opacity-50',
23
- 'peer/select [&[data-placeholder]>svg]:mt-0',
24
- 'pt-6 data-[placeholder]:pt-2',
25
- 'aria-expanded:ring-border-input-focus aria-expanded:ring-1 aria-expanded:ring-inset',
26
- className,
27
- )}
28
- {...props}
29
- >
30
- {children}
31
- <SelectPrimitive.Icon asChild>
32
- <ChevronDown className="absolute top-[23px] right-3 h-4 w-4 opacity-50" />
33
- </SelectPrimitive.Icon>
34
- </SelectPrimitive.Trigger>
35
- );
36
- SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
37
-
38
- const SelectContent = ({
39
- className,
40
- children,
41
- position = 'popper',
42
- ...props
43
- }: React.ComponentProps<typeof SelectPrimitive.Content>) => (
44
- <SelectPrimitive.Portal>
45
- <SelectPrimitive.Content
46
- className={cn(
47
- '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 border-divider bg-bg-dark relative z-50 min-w-[8rem] overflow-hidden rounded-md border text-gray-50/70 shadow-md',
48
- position === 'popper' &&
49
- 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',
50
- className,
51
- )}
52
- position={position}
53
- {...props}
54
- >
55
- <SelectPrimitive.Viewport
56
- className={cn(
57
- 'p-1',
58
- position === 'popper' &&
59
- 'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]',
60
- )}
61
- >
62
- {children}
63
- </SelectPrimitive.Viewport>
64
- </SelectPrimitive.Content>
65
- </SelectPrimitive.Portal>
66
- );
67
- SelectContent.displayName = SelectPrimitive.Content.displayName;
68
-
69
- const SelectLabel = ({
70
- className,
71
- ...props
72
- }: React.ComponentProps<typeof SelectPrimitive.Label>) => (
73
- <SelectPrimitive.Label
74
- className={cn('px-2 py-1.5 text-sm font-semibold', className)}
75
- {...props}
76
- />
77
- );
78
- SelectLabel.displayName = SelectPrimitive.Label.displayName;
79
-
80
- const SelectItem = ({
81
- className,
82
- children,
83
- ...props
84
- }: React.ComponentProps<typeof SelectPrimitive.Item>) => (
85
- <SelectPrimitive.Item
86
- className={cn(
87
- 'focus:bg-bg-secondary focus:text-text-default relative flex w-full cursor-default items-center rounded-xs py-2 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
88
- className,
89
- )}
90
- {...props}
91
- >
92
- <span className="absolute right-2 flex h-3.5 w-3.5 items-center justify-center">
93
- <SelectPrimitive.ItemIndicator>
94
- <CheckIcon className="h-4 w-4" />
95
- </SelectPrimitive.ItemIndicator>
96
- </span>
97
- <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>
98
- </SelectPrimitive.Item>
99
- );
100
- SelectItem.displayName = SelectPrimitive.Item.displayName;
101
-
102
- const SelectSeparator = ({
103
- className,
104
- ...props
105
- }: React.ComponentProps<typeof SelectPrimitive.Separator>) => (
106
- <SelectPrimitive.Separator
107
- className={cn('bg-muted -mx-1 my-1 h-px', className)}
108
- {...props}
109
- />
110
- );
111
- SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
112
-
113
- export {
114
- Select,
115
- SelectGroup,
116
- SelectValue,
117
- SelectTrigger,
118
- SelectContent,
119
- SelectLabel,
120
- SelectItem,
121
- SelectSeparator,
122
- };
@@ -1,26 +0,0 @@
1
- import * as SeparatorPrimitive from '@radix-ui/react-separator';
2
- import React from 'react';
3
-
4
- import { cn } from '../src/utils';
5
-
6
- const Separator = ({
7
- className,
8
- orientation = 'horizontal',
9
- decorative = true,
10
- ...props
11
- }: React.ComponentProps<typeof SeparatorPrimitive.Root>) => (
12
- <SeparatorPrimitive.Root
13
- className={cn(
14
- 'bg-divider shrink-0',
15
- orientation === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]',
16
- className,
17
- )}
18
- decorative={decorative}
19
- orientation={orientation}
20
- {...props}
21
- />
22
- );
23
- Separator.displayName = SeparatorPrimitive.Root.displayName;
24
-
25
- export { Separator };
26
- export default Separator;
@@ -1,139 +0,0 @@
1
- import * as SheetPrimitive from '@radix-ui/react-dialog';
2
- import { cva, type VariantProps } from 'class-variance-authority';
3
- import { X } from 'lucide-react';
4
- import React from 'react';
5
-
6
- import { cn } from '../src/utils';
7
-
8
- const Sheet = SheetPrimitive.Root;
9
-
10
- const SheetTrigger = SheetPrimitive.Trigger;
11
-
12
- const SheetClose = SheetPrimitive.Close;
13
-
14
- const SheetPortal = SheetPrimitive.Portal;
15
-
16
- const SheetOverlay = ({
17
- className,
18
- ...props
19
- }: React.ComponentProps<typeof SheetPrimitive.Overlay>) => (
20
- <SheetPrimitive.Overlay
21
- className={cn(
22
- '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 bg-black/70',
23
- className,
24
- )}
25
- {...props}
26
- />
27
- );
28
- SheetOverlay.displayName = SheetPrimitive.Overlay.displayName;
29
-
30
- const sheetVariants = cva(
31
- 'data-[state=open]:animate-in data-[state=closed]:animate-out bg-bg-dark border-divider fixed z-50 gap-4 p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500',
32
- {
33
- variants: {
34
- side: {
35
- top: 'data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 border-b',
36
- bottom:
37
- 'data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 border-t',
38
- left: 'data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 max-w-lg border-r',
39
- right:
40
- 'data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 max-w-lg border-l',
41
- },
42
- },
43
- defaultVariants: {
44
- side: 'right',
45
- },
46
- },
47
- );
48
-
49
- interface SheetContentProps
50
- extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,
51
- VariantProps<typeof sheetVariants> {
52
- container?: HTMLElement;
53
- overlayClassName?: string;
54
- hideCloseButton?: boolean;
55
- }
56
-
57
- const SheetContent = ({
58
- side = 'right',
59
- className,
60
- children,
61
- container,
62
- overlayClassName,
63
- hideCloseButton,
64
- ...props
65
- }: SheetContentProps) => (
66
- <SheetPortal container={container}>
67
- <SheetOverlay className={overlayClassName} />
68
- <SheetPrimitive.Content
69
- className={cn(sheetVariants({ side }), className)}
70
- {...props}
71
- >
72
- {children}
73
- {!hideCloseButton && (
74
- <SheetPrimitive.Close className="ring-offset-background focus:ring-ring data-[state=open]:bg-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">
75
- <X className="h-4 w-4" />
76
- <span className="sr-only">Close</span>
77
- </SheetPrimitive.Close>
78
- )}
79
- </SheetPrimitive.Content>
80
- </SheetPortal>
81
- );
82
- SheetContent.displayName = SheetPrimitive.Content.displayName;
83
-
84
- const SheetHeader = ({
85
- className,
86
- ...props
87
- }: React.HTMLAttributes<HTMLDivElement>) => (
88
- <div
89
- className={cn(
90
- 'flex flex-col space-y-2 text-center sm:text-left',
91
- className,
92
- )}
93
- {...props}
94
- />
95
- );
96
- SheetHeader.displayName = 'SheetHeader';
97
-
98
- const SheetFooter = ({
99
- className,
100
- ...props
101
- }: React.HTMLAttributes<HTMLDivElement>) => (
102
- <div className={cn('mt-3 flex flex-col gap-2', className)} {...props} />
103
- );
104
- SheetFooter.displayName = 'SheetFooter';
105
-
106
- const SheetTitle = ({
107
- className,
108
- ...props
109
- }: React.ComponentProps<typeof SheetPrimitive.Title>) => (
110
- <SheetPrimitive.Title
111
- className={cn('text-text-default text-lg font-semibold', className)}
112
- {...props}
113
- />
114
- );
115
- SheetTitle.displayName = SheetPrimitive.Title.displayName;
116
-
117
- const SheetDescription = ({
118
- className,
119
- ...props
120
- }: React.ComponentProps<typeof SheetPrimitive.Description>) => (
121
- <SheetPrimitive.Description
122
- className={cn('text-text-secondary text-sm', className)}
123
- {...props}
124
- />
125
- );
126
- SheetDescription.displayName = SheetPrimitive.Description.displayName;
127
-
128
- export {
129
- Sheet,
130
- SheetPortal,
131
- SheetOverlay,
132
- SheetTrigger,
133
- SheetClose,
134
- SheetContent,
135
- SheetHeader,
136
- SheetFooter,
137
- SheetTitle,
138
- SheetDescription,
139
- };
@@ -1,18 +0,0 @@
1
- import React from 'react';
2
-
3
- import { cn } from '../src/utils';
4
-
5
- function Skeleton({
6
- className,
7
- ...props
8
- }: React.HTMLAttributes<HTMLDivElement>) {
9
- return (
10
- <div
11
- className={cn('bg-bg-secondary animate-pulse rounded-md', className)}
12
- {...props}
13
- />
14
- );
15
- }
16
-
17
- export { Skeleton };
18
- export default Skeleton;
@@ -1,63 +0,0 @@
1
- 'use client';
2
-
3
- import * as SliderPrimitive from '@radix-ui/react-slider';
4
- import React from 'react';
5
- import { cn } from '../src/utils';
6
-
7
- function Slider({
8
- className,
9
- defaultValue,
10
- value,
11
- min = 0,
12
- max = 100,
13
- ...props
14
- }: React.ComponentProps<typeof SliderPrimitive.Root>) {
15
- const _values = React.useMemo(
16
- () =>
17
- Array.isArray(value)
18
- ? value
19
- : Array.isArray(defaultValue)
20
- ? defaultValue
21
- : [min, max],
22
- [value, defaultValue, min, max],
23
- );
24
-
25
- return (
26
- <SliderPrimitive.Root
27
- data-slot="slider"
28
- defaultValue={defaultValue}
29
- value={value}
30
- min={min}
31
- max={max}
32
- className={cn(
33
- 'relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col',
34
- className,
35
- )}
36
- {...props}
37
- >
38
- <SliderPrimitive.Track
39
- data-slot="slider-track"
40
- className={cn(
41
- 'bg-bg-quaternary relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5',
42
- )}
43
- >
44
- <SliderPrimitive.Range
45
- data-slot="slider-range"
46
- className={cn(
47
- 'bg-brand absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full',
48
- )}
49
- />
50
- </SliderPrimitive.Track>
51
- {Array.from({ length: _values.length }, (_, index) => (
52
- <SliderPrimitive.Thumb
53
- data-slot="slider-thumb"
54
- key={index}
55
- className="border-brand-500 bg-brand ring-brand/50 block size-4 shrink-0 rounded-full border shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50"
56
- />
57
- ))}
58
- </SliderPrimitive.Root>
59
- );
60
- }
61
-
62
- export { Slider };
63
- export default Slider;
@@ -1,35 +0,0 @@
1
- 'use client'
2
-
3
- import { useTheme } from 'next-themes'
4
- import { Toaster as Sonner } from 'sonner'
5
- import { toast } from 'sonner'
6
-
7
- type ToasterProps = React.ComponentProps<typeof Sonner>
8
-
9
- const Toaster = ({ ...props }: ToasterProps) => {
10
- const { theme = 'system' } = useTheme()
11
-
12
- return (
13
- <Sonner
14
- theme={theme as ToasterProps['theme']}
15
- className='toaster group'
16
- toastOptions={{
17
- classNames: {
18
- toast:
19
- 'group toast group-[.toaster]:bg-level-2 group-[.toaster]:text-foreground group-[.toaster]:border-muted-3 group-[.toaster]:shadow-lg',
20
- description: 'group-[.toast]:text-foreground',
21
- actionButton:
22
- 'group-[.toast]:bg-primary group-[.toast]:text-primary-fg',
23
- cancelButton:
24
- 'group-[.toast]:bg-transparent group-[.toast]:text-foreground',
25
- },
26
- }}
27
- {...props}
28
- />
29
- )
30
- }
31
-
32
- export {
33
- toast,
34
- Toaster
35
- }
@@ -1,69 +0,0 @@
1
- import React from 'react'
2
-
3
- import { cn } from '../util'
4
-
5
- const StepIndicator: React.FC<{
6
- steps: string[]
7
- currentStep: number
8
- dotSizeRem: number
9
- className?: string
10
- muted?: boolean
11
- }> = ({
12
- steps,
13
- currentStep,
14
- dotSizeRem,
15
- className='',
16
- muted=false
17
- }) => {
18
-
19
- const pX = `calc(${1 / (steps.length * 2) * 100}% - ${dotSizeRem / 2}rem)`
20
-
21
- // This code current throws 'Warning: Each child in a list should have a unique "key" prop.'
22
- // As is evident, we supply keys that should suffice. < shrug >
23
- return (
24
- <div className={cn('flex flex-col', className)}>
25
- <div
26
- key='one'
27
- /* id='FOO' */
28
- className='flex flex-row items-center justify-start w-full'
29
- style={{ paddingLeft: pX, paddingRight: pX }}
30
- >
31
- {steps.map((ignore, index) => (<>
32
- {index !== 0 && (
33
- <div
34
- key={`sep-${index}`}
35
- className={cn(
36
- 'h-[1px] grow',
37
- currentStep >= index ? (muted ? 'bg-muted' : 'bg-foreground') : (muted ? 'bg-muted-3' : 'bg-level-3'),
38
- )}
39
- />
40
- )}
41
- <div
42
- key={`circle-${index}`}
43
- style={{width: `${dotSizeRem}rem`, height: `${dotSizeRem}rem`}}
44
- className={cn(
45
- 'shrink-0 rounded-full border-[1.5px]',
46
- currentStep >= index ? (muted ? 'bg-muted border-muted' : 'bg-foreground border-foreground') : '',
47
- //currentStep > index || currentStep === steps.length - 1 ? (muted ? 'bg-muted border-muted' : 'bg-foreground border-foreground') : ''
48
- )}
49
- />
50
- </>))}
51
- </div>
52
- <div key='two' className={'grid ' + `grid-cols-${steps.length}` /* These are white listed already */} >
53
- {steps.map((label, index) => (
54
- <div
55
- key={index}
56
- className={cn(
57
- 'text-center whitespace-nowrap',
58
- (muted ? 'text-muted' : 'text-foreground')
59
- )}
60
- >
61
- {label}
62
- </div>
63
- ))}
64
- </div>
65
- </div>
66
- )
67
- }
68
-
69
- export default StepIndicator