@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,141 +0,0 @@
1
- import plugin from 'tailwindcss/plugin.js'
2
- import merge from 'lodash.merge'
3
- import castArray from 'lodash.castarray'
4
- import getStyles from './get-plugin-styles'
5
- import { commonTrailingPseudos } from './utils'
6
-
7
- let baseFontSize = 16
8
-
9
- const computed = {
10
- // Reserved for future "magic properties", for example:
11
- // bulletColor: (color) => ({ 'ul > li::before': { backgroundColor: color } }),
12
- }
13
-
14
- function inWhere(selector, { className, modifier, prefix }) {
15
- let prefixedNot = prefix(`.not-${className}`).slice(1)
16
- let selectorPrefix = selector.startsWith('>')
17
- ? `${modifier === 'DEFAULT' ? `.${className}` : `.${className}-${modifier}`} `
18
- : ''
19
-
20
- // Parse the selector, if every component ends in the same pseudo element(s) then move it to the end
21
- let [trailingPseudo, rebuiltSelector] = commonTrailingPseudos(selector)
22
-
23
- if (trailingPseudo) {
24
- return `:where(${selectorPrefix}${rebuiltSelector}):not(:where([class~="${prefixedNot}"],[class~="${prefixedNot}"] *))${trailingPseudo}`
25
- }
26
-
27
- return `:where(${selectorPrefix}${selector}):not(:where([class~="${prefixedNot}"],[class~="${prefixedNot}"] *))`
28
- }
29
-
30
- function isObject(value) {
31
- return typeof value === 'object' && value !== null
32
- }
33
-
34
- function configToCss(config = {}, { target, className, modifier, prefix }) {
35
- function updateSelector(k, v) {
36
- if (target === 'legacy') {
37
- return [k, v]
38
- }
39
-
40
- if (Array.isArray(v)) {
41
- return [k, v]
42
- }
43
-
44
- if (isObject(v)) {
45
- let nested = Object.values(v).some(isObject)
46
- if (nested) {
47
- return [
48
- inWhere(k, { className, modifier, prefix }),
49
- v,
50
- Object.fromEntries(Object.entries(v).map(([k, v]) => updateSelector(k, v))),
51
- ]
52
- }
53
-
54
- return [inWhere(k, { className, modifier, prefix }), v]
55
- }
56
-
57
- return [k, v]
58
- }
59
-
60
- return Object.fromEntries(
61
- Object.entries(
62
- merge(
63
- {},
64
- ...Object.keys(config)
65
- .filter((key) => computed[key])
66
- .map((key) => computed[key](config[key])),
67
- ...castArray(config.css || {})
68
- )
69
- ).map(([k, v]) => updateSelector(k, v))
70
- )
71
- }
72
-
73
- export default plugin.withOptions(
74
- ({ className = 'prose', target = 'modern', base = 16 } = {}) => {
75
- baseFontSize = base
76
- return function ({ addVariant, addComponents, theme, prefix }) {
77
- let modifiers = theme('typography')
78
-
79
- let options = { className, prefix }
80
-
81
- for (let [name, ...selectors] of [
82
- ['headings', 'h1', 'h2', 'h3', /* 'h4', 'h5', 'h6', 'th' */],
83
- ['h1'],
84
- ['h2'],
85
- ['h3'],
86
- ['h4'],
87
- ['h5'],
88
- ['h6'],
89
- ['p'],
90
- ['a'],
91
- ['blockquote'],
92
- ['figure'],
93
- ['figcaption'],
94
- ['strong'],
95
- ['em'],
96
- ['code'],
97
- ['pre'],
98
- ['ol'],
99
- ['ul'],
100
- ['li'],
101
- ['table'],
102
- ['thead'],
103
- ['tr'],
104
- ['th'],
105
- ['td'],
106
- ['img'],
107
- ['video'],
108
- ['hr'],
109
- ]) {
110
- selectors = selectors.length === 0 ? [name] : selectors
111
-
112
- let selector =
113
- target === 'legacy' ? selectors.map((selector) => `& ${selector}`) : selectors.join(', ')
114
-
115
- addVariant(
116
- `${className}-${name}`,
117
- target === 'legacy' ? selector : `& :is(${inWhere(selector, options)})`
118
- )
119
- }
120
-
121
- addComponents(
122
- Object.keys(modifiers).map((modifier) => ({
123
- [modifier === 'DEFAULT' ? `.${className}` : `.${className}-${modifier}`]: configToCss(
124
- modifiers[modifier],
125
- {
126
- target,
127
- className,
128
- modifier,
129
- prefix,
130
- }
131
- ),
132
- }))
133
- )
134
- }
135
- },
136
- () => {
137
- return {
138
- theme: { typography: getStyles(baseFontSize) },
139
- }
140
- }
141
- )
@@ -1,60 +0,0 @@
1
- import isPlainObject from 'lodash.isplainobject'
2
- import parser from 'postcss-selector-parser'
3
-
4
- const parseSelector = parser()
5
-
6
- export function isUsableColor(color, values) {
7
- return isPlainObject(values) && color !== 'gray' && values[600]
8
- }
9
-
10
- /**
11
- * @param {string} selector
12
- */
13
- export function commonTrailingPseudos(selector) {
14
- let ast = parseSelector.astSync(selector)
15
-
16
- /** @type {import('postcss-selector-parser').Pseudo[][]} */
17
- let matrix = []
18
-
19
- // Put the pseudo elements in reverse order in a sparse, column-major 2D array
20
- for (let [i, sel] of ast.nodes.entries()) {
21
- for (const [j, child] of [...sel.nodes].reverse().entries()) {
22
- // We only care about pseudo elements
23
- if (child.type !== 'pseudo' || !child.value.startsWith('::')) {
24
- break
25
- }
26
-
27
- matrix[j] = matrix[j] || []
28
- matrix[j][i] = child
29
- }
30
- }
31
-
32
- let trailingPseudos = parser.selector()
33
-
34
- // At this point the pseudo elements are in a column-major 2D array
35
- // This means each row contains one "column" of pseudo elements from each selector
36
- // We can compare all the pseudo elements in a row to see if they are the same
37
- for (const pseudos of matrix) {
38
- // It's a sparse 2D array so there are going to be holes in the rows
39
- // We skip those
40
- if (!pseudos) {
41
- continue
42
- }
43
-
44
- let values = new Set([...pseudos.map((p) => p.value)])
45
-
46
- // The pseudo elements are not the same
47
- if (values.size > 1) {
48
- break
49
- }
50
-
51
- pseudos.forEach((pseudo) => pseudo.remove())
52
- trailingPseudos.prepend(pseudos[0])
53
- }
54
-
55
- if (trailingPseudos.nodes.length) {
56
- return [trailingPseudos.toString(), ast.toString()]
57
- }
58
-
59
- return [null, selector]
60
- }
@@ -1,35 +0,0 @@
1
- import { LinkElement as Link } from '@hanzo/ui/primitives'
2
-
3
- ###### In a galaxy far, far away
4
- ##### Join the global rush to own silver
5
- #### And the global rush to gold
6
- ### As well as the rush to crypto
7
- ## THE SILVER RUSH IS HERE
8
- # THE GOLD RUSH IS HERE
9
-
10
-
11
- *Lorem* ipsum dolor sit amet, **consectetur** adipiscing elit, sed do eiusmod tempor
12
- incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
13
- nostrud exercitation ullamco
14
- laboris nisi ut aliquip ex ea commodo consequat.
15
-
16
- 1) Duis aute irure
17
- 2) dolor in reprehenderit
18
- 3) in voluptate velit esse
19
-
20
- Cillum dolore eu fugiat nulla pariatur. Excepteur sint occaefam cupidatat non proident,
21
-
22
- - sunt in culpa
23
- - qui officia deserunt
24
- - mollit anim id est laborum.
25
-
26
- Lorem ipsum dolor sit [amet]('/'), adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
27
-
28
- <Link
29
- def={{
30
- title: 'Enter App',
31
- href: 'https://app.lux.market',
32
- variant: 'primary',
33
- }}
34
- size='lg'
35
- />
@@ -1,71 +0,0 @@
1
- const zIndex = {
2
-
3
- auto: 'auto',
4
- unset: 'unset',
5
-
6
- ...{
7
- 'below-content-3': '-3',
8
- 'below-content-2': '-2',
9
- 'below-content-1': '-1',
10
- 'below-content': '-1',
11
- 'content': '0',
12
- 'above-content': '1',
13
- 'above-content-1': '1',
14
- 'above-content-2': '2',
15
- 'above-content-3': '3',
16
- },
17
- // popups that may scroll w content, appear below header, etc
18
- // for larger, modal popups, please use 'modal'
19
- ...{
20
- 'below-popup-3': '7',
21
- 'below-popup-2': '8',
22
- 'below-popup-1': '9',
23
- 'below-popup': '9',
24
- 'popup': '10',
25
- 'above-popup': '11',
26
- 'above-popup-1': '11',
27
- 'above-popup-2': '12',
28
- 'above-popup-3': '13',
29
- },
30
- ...{
31
- 'below-header-3': '17',
32
- 'below-header-2': '18',
33
- 'below-header-1': '19',
34
- 'below-header': '19',
35
- 'header': '20',
36
- 'above-header': '21',
37
- 'above-header-1': '21',
38
- 'above-header-2': '22',
39
- 'above-header-3': '23',
40
- },
41
- // drawer, dialog, full screen menu
42
- ...{
43
- 'below-modal-3': '27',
44
- 'below-modal-2': '28',
45
- 'below-modal-1': '29',
46
- 'below-modal': '29',
47
- 'modal': '30',
48
- 'above-modal': '31',
49
- 'above-modal-1': '31',
50
- 'above-modal-2': '32',
51
- 'above-modal-3': '33',
52
- },
53
- // "highest": help button, other UI that floats above everything.
54
- ...{
55
- 'below-floating-3': '37',
56
- 'below-floating-2': '38',
57
- 'below-floating-1': '39',
58
- 'below-floating': '39',
59
- 'floating': '40',
60
- 'above-floating': '41',
61
- 'above-floating-1': '41',
62
- 'above-floating-2': '42',
63
- 'above-floating-3': '43',
64
- },
65
- }
66
-
67
- for (let i = 0; i <= 50; i++) {
68
- zIndex[`${i}`] = `${i}`
69
- }
70
-
71
- export default zIndex
@@ -1,3 +0,0 @@
1
- type AnimationDef = string
2
-
3
- export type { AnimationDef as default }
@@ -1,11 +0,0 @@
1
- // @ts-nocheck
2
-
3
- import bps from '../tailwind/screens.tailwind'
4
-
5
- type Breakpoint = keyof typeof bps
6
- const Breakpoints = Object.keys(bps)
7
-
8
- export {
9
- Breakpoints,
10
- type Breakpoint
11
- }
@@ -1,10 +0,0 @@
1
- import React from 'react'
2
-
3
- interface BulletItem {
4
- text: string,
5
- icon?: React.ReactNode // Icon = ReactNode; ReactNode can be a string
6
- }
7
-
8
- export {
9
- type BulletItem as default
10
- }
@@ -1,39 +0,0 @@
1
- import { ButtonProps } from '../primitives/button'
2
-
3
- type SubmitServerAction = (data: any, enclosure?: any) => Promise<any>
4
-
5
- interface ButtonModalProps {
6
- open: boolean
7
- onOpenChange: (b: boolean) => void
8
- buttonText: string
9
- buttonProps: ButtonProps
10
- title: string
11
- byline?: string
12
- action: SubmitServerAction
13
- actionEnclosure?: any
14
- }
15
-
16
- interface ButtonModalDef {
17
- Comp: React.ComponentType<ButtonModalProps>
18
- title: string
19
- props?: any
20
- byline?: string
21
- action?: SubmitServerAction
22
- actionEnclosure?: any
23
- }
24
-
25
- interface ButtonDef {
26
- text: string
27
- props: ButtonProps
28
- action: {
29
- type: 'modal' /* | future: other types */
30
- def: ButtonModalDef /* | future: other supported specifiers, such as Server Actions, or UI Actions or ? */
31
- }
32
- }
33
-
34
- export {
35
- type ButtonDef,
36
- type SubmitServerAction,
37
- type ButtonModalProps,
38
- type ButtonModalDef,
39
- }
@@ -1,8 +0,0 @@
1
- interface Dimensions {
2
- w: number
3
- h: number
4
- }
5
-
6
- export {
7
- type Dimensions as default
8
- }
package/types/grid-def.ts DELETED
@@ -1,56 +0,0 @@
1
- import type { Breakpoint } from './breakpoints'
2
-
3
- type GridColumnSpec = number | { columns: number, gap: number}
4
-
5
- interface GridDef {
6
- /** Must define in ACCENDING order. */
7
- at: {
8
- [key in (Breakpoint)]?: GridColumnSpec
9
- },
10
- mobile?: GridColumnSpec
11
- }
12
-
13
- const COMMON_GRID_1_COL = {
14
- at: {
15
- xs: { columns: 1, gap: 2 },
16
- md: { columns: 1, gap: 3 },
17
- lg: { columns: 1, gap: 6 }
18
- },
19
- mobile: { columns: 1, gap: 2 }
20
- }
21
-
22
- const COMMON_GRID_2_COL = {
23
- at: {
24
- xs: {columns: 1, gap: 2},
25
- md: {columns: 2, gap: 3},
26
- lg: {columns: 2, gap: 6}
27
- },
28
- mobile: {columns: 1, gap: 2}
29
- } as GridDef
30
-
31
- const COMMON_GRID_3_COL = {
32
- at: {
33
- xs: {columns: 1, gap: 2},
34
- md: {columns: 3, gap: 3},
35
- lg: {columns: 3, gap: 6}
36
- },
37
- mobile: {columns: 1, gap: 2}
38
- } as GridDef
39
-
40
- const COMMON_GRID_4_COL = {
41
- at: {
42
- xs: {columns: 1, gap: 2},
43
- md: {columns: 2, gap: 3},
44
- lg: {columns: 4, gap: 6}
45
- },
46
- mobile: {columns: 1, gap: 2}
47
- } as GridDef
48
-
49
- export {
50
- type GridDef as default,
51
- type GridColumnSpec,
52
- COMMON_GRID_1_COL,
53
- COMMON_GRID_2_COL,
54
- COMMON_GRID_3_COL,
55
- COMMON_GRID_4_COL
56
- }
@@ -1,32 +0,0 @@
1
- import type Dimensions from './dimensions'
2
-
3
- /**
4
- * Defines a in image to render.
5
- * ImageDef is part of {@link LinkDef}
6
- */
7
- interface ImageDef {
8
- /** image url */
9
- src: string
10
- /** defaults to short filename */
11
- alt?: string
12
- /** See next js docs */
13
- sizes?: string
14
- /**
15
- * Tailwind class for svg files (usually a text-<color>).
16
- * All affect 'fill' props in the svg file
17
- * must be set to 'currentColor'.
18
- */
19
- svgFillClass?: string
20
- /** rendered dim, unless style prop overrides
21
- * in which case the file resolution should
22
- * be supplied so that both Next and the browser
23
- * can determine the aspect ratio
24
- */
25
- dim: Dimensions
26
-
27
- rounded?: string // any key from tailwind.config.borderRadius
28
- }
29
-
30
- export {
31
- type ImageDef as default
32
- }
package/types/index.ts DELETED
@@ -1,30 +0,0 @@
1
-
2
- export type { default as AnimationDef } from './animation-def'
3
- export type { Breakpoint } from './breakpoints'
4
- export { Breakpoints } from './breakpoints'
5
- export type { default as BulletItem } from './bullet-item'
6
-
7
- export type {
8
- ButtonDef,
9
- SubmitServerAction,
10
- ButtonModalProps,
11
- ButtonModalDef,
12
- } from './button-def'
13
-
14
- export type { default as Dimensions } from './dimensions'
15
-
16
- export type { default as GridDef, GridColumnSpec } from './grid-def'
17
- export {
18
- COMMON_GRID_1_COL,
19
- COMMON_GRID_2_COL,
20
- COMMON_GRID_3_COL,
21
- COMMON_GRID_4_COL
22
- } from './grid-def'
23
-
24
- export type { default as ImageDef } from './image-def'
25
- export type { default as LinkDef } from './link-def'
26
- export type { default as TShirtDimensions } from './tshirt-dimensions'
27
- export type { default as TShirtSize } from './t-shirt-size'
28
- export type { default as VideoDef } from './video-def'
29
-
30
- export type { MediaStackDef, MediaTransform } from './media-stack-def'
package/types/link-def.ts DELETED
@@ -1,56 +0,0 @@
1
- import type { VariantProps } from 'class-variance-authority'
2
- import type { buttonVariants } from '../primitives/button'
3
-
4
-
5
- /**
6
- * A Conf object for the LinkElement primitive.
7
- */
8
- interface LinkDef extends VariantProps<typeof buttonVariants> {
9
- /**
10
- * If the LinkElement is rendered directly and has children,
11
- * the title, icon, iconAfter fields in the supplied LinkDef
12
- * will be ignored.
13
- */
14
- title?: string
15
-
16
- /**
17
- * If the LinkElement is rendered directly and has children,
18
- * the title, icon, iconAfter fields in the supplied LinkDef
19
- * will be ignored.
20
- */
21
- icon?: React.ReactNode
22
-
23
- /**
24
- * If the LinkElement is rendered directly and has children,
25
- * the title, icon, iconAfter fields in the supplied LinkDef
26
- * will be ignored.
27
- */
28
- iconAfter?: boolean
29
-
30
- href: string
31
-
32
- /**
33
- * External links will open in a new tab (via target='_blank') by default,
34
- * while internal ones will open in the same tab.
35
- * @field newTab overrides these defaults in both cases.
36
- * ('external' means the url starts with 'http')
37
- */
38
- newTab?: boolean
39
-
40
- /**
41
- * rendered as a disabled link, shows default cursor, and eats pointer events.
42
- */
43
- disabled?: boolean
44
- /**
45
- *contents for description link.
46
- */
47
- contents?: string
48
-
49
- childMenu?: LinkDef[]
50
- groupName?: string
51
- }
52
-
53
-
54
- export {
55
- type LinkDef as default
56
- }
@@ -1,31 +0,0 @@
1
- import type AnimationDef from './animation-def'
2
- import type ImageDef from './image-def'
3
- import type VideoDef from './video-def'
4
-
5
- /**
6
- * This will be implemented via css transforms,
7
- * so will be a subset of those capabilities.
8
- * Individual transforms will be added as they
9
- * are needed.
10
- */
11
- interface MediaTransform {
12
- /** (X and Y) or [X, Y] */
13
- scale?: number | number[]
14
- }
15
-
16
- interface MediaStackDef {
17
- img?: ImageDef
18
- video?: VideoDef
19
- animation?: AnimationDef
20
- mediaTransform?: MediaTransform
21
- /** prefered order of precedence.
22
- * If an type is missing, it will not be used.
23
- * default (inMediaStack component): ['a', 'v', 'i']
24
- * */
25
- order?: ('a' | 'v' | 'i')[]
26
- }
27
-
28
- export type {
29
- MediaStackDef,
30
- MediaTransform
31
- }
@@ -1,5 +0,0 @@
1
- type TShirtSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl'
2
-
3
- export {
4
- type TShirtSize as default
5
- }
@@ -1,20 +0,0 @@
1
- type ConcreteDimensions = {
2
- w: number
3
- h: number
4
- }
5
-
6
- // TODO: This is only used by VideoDef.
7
- // Is there a better way w @next/video?
8
- type TShirtDimensions = {
9
- xs?: ConcreteDimensions
10
- sm?: ConcreteDimensions
11
- md: ConcreteDimensions
12
- lg?: ConcreteDimensions
13
- xl?: ConcreteDimensions
14
- }
15
-
16
- export {
17
- type TShirtDimensions as default
18
- }
19
-
20
-
@@ -1,25 +0,0 @@
1
- import type TShirtDimensions from './tshirt-dimensions'
2
-
3
- interface VideoDef {
4
- videoProps?: any // For example,
5
- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6
- videoProps: {
7
- autoPlay: true,
8
- loop: true,
9
- muted: true,
10
- playsInline: true
11
- },
12
-
13
- Valueless props are boolean.
14
- NOTE: Must be camalCase as per React conventions! (playsinline => playsInline)
15
- ~~~~~~~~~~~~~~~~~~~~~~~~ */
16
- poster?: string
17
- sources?: string[]
18
- dim: TShirtDimensions
19
- // These are suppored so far: { vh: 60, mobile: {vw: 70} }
20
- sizing?: any
21
- }
22
-
23
- export {
24
- type VideoDef as default
25
- }
package/util/blob.ts DELETED
@@ -1,33 +0,0 @@
1
- export const blobToBase64 = (blob: Blob): Promise<string> => {
2
- const reader = new FileReader();
3
- reader.readAsDataURL(blob);
4
- return new Promise((resolve) => {
5
- reader.onloadend = () => {
6
- resolve(reader.result as string);
7
- };
8
- });
9
- };
10
-
11
- export const dataUrlToFile = (
12
- dataUrl: string,
13
- filename: string,
14
- ): File | undefined => {
15
- const arr = dataUrl.split(',');
16
- if (arr.length < 2) {
17
- return undefined;
18
- }
19
- const mimeArr = arr[0].match(/:(.*?);/);
20
- if (!mimeArr || mimeArr.length < 2) {
21
- return undefined;
22
- }
23
- const mime = mimeArr[1];
24
-
25
- // Convert base64 to binary string, then to Uint8Array (browser-compatible)
26
- const binaryString = atob(arr[1]);
27
- const bytes = new Uint8Array(binaryString.length);
28
- for (let i = 0; i < binaryString.length; i++) {
29
- bytes[i] = binaryString.charCodeAt(i);
30
- }
31
-
32
- return new File([bytes], filename, { type: mime });
33
- };