@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,9 +0,0 @@
1
- // Vue components entry point
2
- // Export all Vue components for @hanzo/ui
3
-
4
- export * from './components'
5
- export * from './composables'
6
- export * from './utils'
7
-
8
- // Re-export core utilities
9
- export { cn } from '../core/utils'
@@ -1,8 +0,0 @@
1
- {
2
- "name": "@hanzo/ui-vue",
3
- "version": "1.0.0",
4
- "exports": {
5
- ".": "./index.ts",
6
- "./components": "./components/index.ts"
7
- }
8
- }
package/helpers/file.ts DELETED
@@ -1,33 +0,0 @@
1
- export const getFileExt = (fileName: string): string => {
2
- if (!fileName) return '';
3
- const parts = fileName.split('.');
4
- return parts.length > 1 ? parts[parts.length - 1].toLowerCase() : '';
5
- };
6
-
7
- export const formatFileSize = (bytes: number): string => {
8
- if (bytes === 0) return '0 Bytes';
9
- const k = 1024;
10
- const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
11
- const i = Math.floor(Math.log(bytes) / Math.log(k));
12
- return Math.round(bytes / Math.pow(k, i) * 100) / 100 + ' ' + sizes[i];
13
- };
14
-
15
- export const isImageFile = (fileName: string): boolean => {
16
- const ext = getFileExt(fileName);
17
- return ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'svg', 'webp'].includes(ext);
18
- };
19
-
20
- export const isPdfFile = (fileName: string): boolean => {
21
- const ext = getFileExt(fileName);
22
- return ext === 'pdf';
23
- };
24
-
25
- export const isVideoFile = (fileName: string): boolean => {
26
- const ext = getFileExt(fileName);
27
- return ['mp4', 'avi', 'mov', 'wmv', 'flv', 'mkv', 'webm'].includes(ext);
28
- };
29
-
30
- export const isAudioFile = (fileName: string): boolean => {
31
- const ext = getFileExt(fileName);
32
- return ['mp3', 'wav', 'ogg', 'aac', 'flac', 'wma'].includes(ext);
33
- };
@@ -1,40 +0,0 @@
1
- import React from 'react';
2
-
3
- // Memoization helpers for markdown components
4
- export const memoCompareNodes = (
5
- prevProps: { children?: React.ReactNode },
6
- nextProps: { children?: React.ReactNode }
7
- ): boolean => {
8
- return prevProps.children === nextProps.children;
9
- };
10
-
11
- export const memoizeMarkdownComponents = <T extends Record<string, React.ComponentType<any>>>(
12
- components: T
13
- ): T => {
14
- const memoized: any = {};
15
-
16
- for (const key in components) {
17
- if (components.hasOwnProperty(key)) {
18
- memoized[key] = React.memo(components[key]);
19
- }
20
- }
21
-
22
- return memoized as T;
23
- };
24
-
25
- // Helper to check if props are equal for memoization
26
- export const arePropsEqual = <T extends Record<string, any>>(
27
- prevProps: T,
28
- nextProps: T,
29
- keys?: string[]
30
- ): boolean => {
31
- const keysToCheck = keys || Object.keys(prevProps);
32
-
33
- for (const key of keysToCheck) {
34
- if (prevProps[key] !== nextProps[key]) {
35
- return false;
36
- }
37
- }
38
-
39
- return true;
40
- };
@@ -1,74 +0,0 @@
1
- import * as AccordionPrimitive from '@radix-ui/react-accordion';
2
- import { ChevronDown } from 'lucide-react';
3
- import React from 'react';
4
-
5
- import { cn } from '../src/utils';
6
-
7
- const Accordion = AccordionPrimitive.Root;
8
-
9
- type AccordionItemProps = React.ComponentPropsWithoutRef<
10
- typeof AccordionPrimitive.Item
11
- > & {
12
- ref?: React.RefObject<React.ComponentRef<typeof AccordionPrimitive.Item>>;
13
- };
14
-
15
- const AccordionItem = ({ className, ref, ...props }: AccordionItemProps) => (
16
- <AccordionPrimitive.Item className={cn('', className)} ref={ref} {...props} />
17
- );
18
- AccordionItem.displayName = 'AccordionItem';
19
-
20
- type AccordionTriggerProps = React.ComponentPropsWithoutRef<
21
- typeof AccordionPrimitive.Trigger
22
- > & {
23
- hideArrow?: boolean;
24
- ref?: React.RefObject<React.ComponentRef<typeof AccordionPrimitive.Trigger>>;
25
- };
26
-
27
- const AccordionTrigger = ({
28
- className,
29
- children,
30
- hideArrow = false,
31
- ref,
32
- ...props
33
- }: AccordionTriggerProps) => (
34
- <AccordionPrimitive.Header className="flex">
35
- <AccordionPrimitive.Trigger
36
- className={cn(
37
- 'flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180',
38
- className,
39
- )}
40
- ref={ref}
41
- {...props}
42
- >
43
- {children}
44
- {hideArrow ? null : (
45
- <ChevronDown className="h-4 w-4 shrink-0 transition-transform duration-200" />
46
- )}
47
- </AccordionPrimitive.Trigger>
48
- </AccordionPrimitive.Header>
49
- );
50
- AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
51
-
52
- type AccordionContentProps = React.ComponentPropsWithoutRef<
53
- typeof AccordionPrimitive.Content
54
- > & {
55
- ref?: React.RefObject<React.ComponentRef<typeof AccordionPrimitive.Content>>;
56
- };
57
-
58
- const AccordionContent = ({
59
- className,
60
- children,
61
- ref,
62
- ...props
63
- }: AccordionContentProps) => (
64
- <AccordionPrimitive.Content
65
- className="data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down w-full overflow-hidden text-sm transition-all"
66
- ref={ref}
67
- {...props}
68
- >
69
- <div className={cn('pt-0 pb-4', className)}>{children}</div>
70
- </AccordionPrimitive.Content>
71
- );
72
- AccordionContent.displayName = AccordionPrimitive.Content.displayName;
73
-
74
- export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
@@ -1,42 +0,0 @@
1
- 'use client'
2
- import React from 'react'
3
-
4
- import { cn, type VariantProps } from '../util'
5
-
6
- import type { ButtonDef, ButtonModalDef } from '../types'
7
- import type { buttonVariants } from './button'
8
- import DVC from './dialog-video-controller'
9
-
10
- const ActionButton: React.FC<
11
- VariantProps<typeof buttonVariants> &
12
- {
13
- def: ButtonDef
14
- className?: string
15
- }
16
- > = ({
17
- def,
18
- className='',
19
- ...rest
20
- }) => {
21
- if (def.action.type === 'modal') {
22
- const m = def.action.def as ButtonModalDef
23
- const Modal = m.Comp
24
- return (
25
- <DVC>
26
- <Modal
27
- title={m.title}
28
- byline={m.byline}
29
- buttonText={def.text}
30
- buttonProps={{...def.props, ...rest, className: cn((def.props?.className ?? ''), className)}}
31
- action={m.action}
32
- actionEnclosure={m.actionEnclosure}
33
- {...m.props}
34
- />
35
- </DVC>
36
- )
37
- }
38
- // no other types supported yet
39
- return <></>
40
- }
41
-
42
- export default ActionButton
@@ -1,185 +0,0 @@
1
- import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
2
- import React from 'react';
3
-
4
- import { cn } from '../src/utils';
5
- import { buttonVariants } from './button';
6
-
7
- const AlertDialog = AlertDialogPrimitive.Root;
8
-
9
- const AlertDialogTrigger = AlertDialogPrimitive.Trigger;
10
-
11
- const AlertDialogPortal = AlertDialogPrimitive.Portal;
12
-
13
- type AlertDialogOverlayProps = React.ComponentPropsWithoutRef<
14
- typeof AlertDialogPrimitive.Overlay
15
- > & {
16
- ref?: React.RefObject<
17
- React.ComponentRef<typeof AlertDialogPrimitive.Overlay>
18
- >;
19
- };
20
-
21
- const AlertDialogOverlay = ({
22
- className,
23
- children,
24
- ref,
25
- ...props
26
- }: AlertDialogOverlayProps) => (
27
- <AlertDialogPrimitive.Overlay
28
- className={cn(
29
- '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 backdrop-blur-sm',
30
- 'bg-bg-dark/90',
31
- className,
32
- )}
33
- {...props}
34
- ref={ref}
35
- />
36
- );
37
- AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
38
-
39
- type AlertDialogContentProps = React.ComponentPropsWithoutRef<
40
- typeof AlertDialogPrimitive.Content
41
- > & {
42
- ref?: React.RefObject<
43
- React.ComponentRef<typeof AlertDialogPrimitive.Content>
44
- >;
45
- };
46
-
47
- const AlertDialogContent = ({
48
- className,
49
- ref,
50
- ...props
51
- }: AlertDialogContentProps) => (
52
- <AlertDialogPortal>
53
- <AlertDialogOverlay />
54
- <AlertDialogPrimitive.Content
55
- className={cn(
56
- '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)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg',
57
- className,
58
- )}
59
- ref={ref}
60
- {...props}
61
- />
62
- </AlertDialogPortal>
63
- );
64
- AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
65
-
66
- const AlertDialogHeader = ({
67
- className,
68
- ...props
69
- }: React.HTMLAttributes<HTMLDivElement>) => (
70
- <div
71
- className={cn(
72
- 'flex flex-col space-y-2 text-center sm:text-left',
73
- className,
74
- )}
75
- {...props}
76
- />
77
- );
78
- AlertDialogHeader.displayName = 'AlertDialogHeader';
79
-
80
- const AlertDialogFooter = ({
81
- className,
82
- ...props
83
- }: React.HTMLAttributes<HTMLDivElement>) => (
84
- <div className={cn('flex', className)} {...props} />
85
- );
86
- AlertDialogFooter.displayName = 'AlertDialogFooter';
87
-
88
- type AlertDialogTitleProps = React.ComponentPropsWithoutRef<
89
- typeof AlertDialogPrimitive.Title
90
- > & {
91
- ref?: React.RefObject<React.ComponentRef<typeof AlertDialogPrimitive.Title>>;
92
- };
93
-
94
- const AlertDialogTitle = ({
95
- className,
96
- ref,
97
- ...props
98
- }: AlertDialogTitleProps) => (
99
- <AlertDialogPrimitive.Title
100
- className={cn('text-lg font-semibold', className)}
101
- ref={ref}
102
- {...props}
103
- />
104
- );
105
- AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
106
-
107
- type AlertDialogDescriptionProps = React.ComponentPropsWithoutRef<
108
- typeof AlertDialogPrimitive.Description
109
- > & {
110
- ref?: React.RefObject<
111
- React.ComponentRef<typeof AlertDialogPrimitive.Description>
112
- >;
113
- };
114
-
115
- const AlertDialogDescription = ({
116
- className,
117
- ref,
118
- ...props
119
- }: AlertDialogDescriptionProps) => (
120
- <AlertDialogPrimitive.Description
121
- className={cn('text-text-secondary text-sm', className)}
122
- ref={ref}
123
- {...props}
124
- />
125
- );
126
- AlertDialogDescription.displayName =
127
- AlertDialogPrimitive.Description.displayName;
128
-
129
- type AlertDialogActionProps = React.ComponentPropsWithoutRef<
130
- typeof AlertDialogPrimitive.Action
131
- > & {
132
- ref?: React.RefObject<React.ComponentRef<typeof AlertDialogPrimitive.Action>>;
133
- };
134
-
135
- const AlertDialogAction = ({
136
- className,
137
- ref,
138
- ...props
139
- }: AlertDialogActionProps) => (
140
- <AlertDialogPrimitive.Action
141
- className={cn(
142
- buttonVariants({ variant: 'default', size: 'sm' }),
143
- className,
144
- )}
145
- ref={ref}
146
- {...props}
147
- />
148
- );
149
- AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
150
-
151
- type AlertDialogCancelProps = React.ComponentPropsWithoutRef<
152
- typeof AlertDialogPrimitive.Cancel
153
- > & {
154
- ref?: React.RefObject<React.ComponentRef<typeof AlertDialogPrimitive.Cancel>>;
155
- };
156
-
157
- const AlertDialogCancel = ({
158
- className,
159
- ref,
160
- ...props
161
- }: AlertDialogCancelProps) => (
162
- <AlertDialogPrimitive.Cancel
163
- className={cn(
164
- buttonVariants({ variant: 'outline', size: 'sm' }),
165
- className,
166
- )}
167
- ref={ref}
168
- {...props}
169
- />
170
- );
171
- AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
172
-
173
- export {
174
- AlertDialog,
175
- AlertDialogPortal,
176
- AlertDialogOverlay,
177
- AlertDialogTrigger,
178
- AlertDialogContent,
179
- AlertDialogHeader,
180
- AlertDialogFooter,
181
- AlertDialogTitle,
182
- AlertDialogDescription,
183
- AlertDialogAction,
184
- AlertDialogCancel,
185
- };
@@ -1,74 +0,0 @@
1
- import { cva, type VariantProps } from 'class-variance-authority';
2
- import React from 'react';
3
-
4
- import { cn } from '../src/utils';
5
-
6
- const alertVariants = cva(
7
- '[&>svg]:text-text-default relative w-full rounded-lg border p-4 [&>svg]:absolute [&>svg]:top-4 [&>svg]:left-4 [&>svg+div]:translate-y-[-3px] [&>svg~*]:pl-7',
8
- {
9
- variants: {
10
- variant: {
11
- default: 'bg-bg-tertiary text-text-default',
12
- info: 'text-text-secondary [&>svg]:text-text-secondary bg-gray-250 border-gray-100 border-gray-200',
13
- destructive:
14
- 'border-[#4d0408] bg-[#2d0607] text-[#ff9ea1] [&>svg]:text-[#ff9ea1]',
15
- warning:
16
- 'border-yellow-800 bg-yellow-900 text-yellow-400 [&>svg]:text-yellow-400',
17
- success:
18
- 'border-green-800 bg-green-900 text-green-400 [&>svg]:text-green-400',
19
- download:
20
- 'border-gray-800 bg-gray-900 text-cyan-400 [&>svg]:text-cyan-400',
21
- },
22
- },
23
- defaultVariants: {
24
- variant: 'default',
25
- },
26
- },
27
- );
28
-
29
- type AlertProps = React.HTMLAttributes<HTMLDivElement> &
30
- VariantProps<typeof alertVariants> & {
31
- ref?: React.RefObject<HTMLDivElement>;
32
- };
33
-
34
- const Alert = ({ className, variant, ref, ...props }: AlertProps) => (
35
- <div
36
- className={cn(alertVariants({ variant }), className)}
37
- ref={ref}
38
- role="alert"
39
- {...props}
40
- />
41
- );
42
- Alert.displayName = 'Alert';
43
-
44
- type AlertTitleProps = React.HTMLAttributes<HTMLHeadingElement> & {
45
- ref?: React.RefObject<HTMLParagraphElement>;
46
- };
47
-
48
- const AlertTitle = ({ className, ref, ...props }: AlertTitleProps) => (
49
- <h5
50
- className={cn('mb-1 leading-none font-medium tracking-tight', className)}
51
- ref={ref}
52
- {...props}
53
- />
54
- );
55
- AlertTitle.displayName = 'AlertTitle';
56
-
57
- type AlertDescriptionProps = React.HTMLAttributes<HTMLParagraphElement> & {
58
- ref?: React.RefObject<HTMLParagraphElement>;
59
- };
60
-
61
- const AlertDescription = ({
62
- className,
63
- ref,
64
- ...props
65
- }: AlertDescriptionProps) => (
66
- <div
67
- className={cn('text-sm [&_p]:leading-relaxed', className)}
68
- ref={ref}
69
- {...props}
70
- />
71
- );
72
- AlertDescription.displayName = 'AlertDescription';
73
-
74
- export { Alert, AlertTitle, AlertDescription };
@@ -1,55 +0,0 @@
1
- import React, { PropsWithChildren } from 'react'
2
-
3
- import { cn } from '../util'
4
-
5
- type TypographySize = 'responsive' | 'sm' | 'base' | 'lg' | 'xl' // if t-shirt size, do *not* be responsive
6
-
7
- const ApplyTypography: React.FC<
8
- React.ComponentProps<'div'> & {
9
- asTag?: 'div' | 'section' | 'nav' | 'main' | 'article',
10
- size?: TypographySize
11
- }
12
- > = ({
13
- children,
14
- className='',
15
- asTag='div',
16
- size='responsive',
17
- ...rest
18
- }) => {
19
-
20
- // responsive version by default
21
- let typoClasses =
22
- 'typography gap-3 ' +
23
- 'xs:typography-sm ' +
24
- 'sm:typography sm:gap-4 ' +
25
- 'lg:typography-lg lg:gap-5 ' +
26
- 'xl:typography-xl xl:gap-6 ' +
27
- 'typography-headings:font-heading ' // only effects h1-h3 (in plugin)
28
-
29
- switch (size) {
30
- case 'sm': {
31
- typoClasses = 'typography typography-sm gap-3 typography-headings:font-heading typography-p:text-sm '
32
- } break
33
- case 'base': {
34
- typoClasses = 'typography gap-4 typography-headings:font-heading '
35
- } break
36
- case 'lg': {
37
- typoClasses = 'typography typography-lg gap-5 typography-headings:font-heading typography-p:text-lg '
38
- } break
39
- case 'xl': {
40
- typoClasses = 'typography typography-xl gap-6 typography-headings:font-heading typography-p:text-lg '
41
- } break
42
- }
43
-
44
- const Tag = asTag
45
- return (
46
- <Tag {...rest} className={cn(typoClasses, className)}>
47
- {children}
48
- </Tag>
49
- )
50
- }
51
-
52
- export {
53
- type TypographySize,
54
- ApplyTypography as default
55
- }
@@ -1,5 +0,0 @@
1
- "use client"
2
- import * as AspectRatioPrimitive from "@radix-ui/react-aspect-ratio"
3
- const AspectRatio = AspectRatioPrimitive.Root
4
-
5
- export default AspectRatio
@@ -1,57 +0,0 @@
1
- import * as AvatarPrimitive from '@radix-ui/react-avatar';
2
- import React from 'react';
3
-
4
- import { cn } from '../src/utils';
5
-
6
- type AvatarProps = React.ComponentPropsWithoutRef<
7
- typeof AvatarPrimitive.Root
8
- > & {
9
- ref?: React.RefObject<React.ComponentRef<typeof AvatarPrimitive.Root>>;
10
- };
11
-
12
- const Avatar = ({ className, ref, ...props }: AvatarProps) => (
13
- <AvatarPrimitive.Root
14
- className={cn(
15
- 'relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full',
16
- className,
17
- )}
18
- ref={ref}
19
- {...props}
20
- />
21
- );
22
- Avatar.displayName = AvatarPrimitive.Root.displayName;
23
-
24
- type AvatarImageProps = React.ComponentPropsWithoutRef<
25
- typeof AvatarPrimitive.Image
26
- > & {
27
- ref?: React.RefObject<React.ComponentRef<typeof AvatarPrimitive.Image>>;
28
- };
29
-
30
- const AvatarImage = ({ className, ref, ...props }: AvatarImageProps) => (
31
- <AvatarPrimitive.Image
32
- className={cn('aspect-square h-full w-full', className)}
33
- ref={ref}
34
- {...props}
35
- />
36
- );
37
- AvatarImage.displayName = AvatarPrimitive.Image.displayName;
38
-
39
- type AvatarFallbackProps = React.ComponentPropsWithoutRef<
40
- typeof AvatarPrimitive.Fallback
41
- > & {
42
- ref?: React.RefObject<React.ComponentRef<typeof AvatarPrimitive.Fallback>>;
43
- };
44
-
45
- const AvatarFallback = ({ className, ref, ...props }: AvatarFallbackProps) => (
46
- <AvatarPrimitive.Fallback
47
- className={cn(
48
- 'bg-muted flex h-full w-full items-center justify-center rounded-full',
49
- className,
50
- )}
51
- ref={ref}
52
- {...props}
53
- />
54
- );
55
- AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
56
-
57
- export { Avatar, AvatarImage, AvatarFallback };