@hanzo/ui 4.5.4 → 4.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/README.md +229 -0
  2. package/bin/create-registry.js +1 -1
  3. package/bin/test-mcp.sh +1 -1
  4. package/bin/update-registry.js +2 -2
  5. package/dist/index.d.mts +16 -0
  6. package/dist/index.d.ts +16 -0
  7. package/dist/index.js +9458 -0
  8. package/dist/index.mjs +9449 -0
  9. package/dist/lib/utils.d.mts +2 -0
  10. package/dist/lib/utils.d.ts +2 -0
  11. package/dist/lib/utils.js +47 -0
  12. package/dist/lib/utils.mjs +28 -0
  13. package/dist/src/utils.d.mts +7 -0
  14. package/dist/src/utils.d.ts +7 -0
  15. package/dist/src/utils.js +47 -0
  16. package/dist/src/utils.mjs +28 -0
  17. package/dist/tailwind/index.d.mts +2 -0
  18. package/dist/tailwind/index.d.ts +2 -0
  19. package/dist/tailwind/index.js +2048 -0
  20. package/dist/tailwind/index.mjs +2017 -0
  21. package/dist/types/index.d.mts +12 -0
  22. package/dist/types/index.d.ts +12 -0
  23. package/dist/types/index.js +79 -0
  24. package/dist/types/index.mjs +56 -0
  25. package/package.json +170 -23
  26. package/style/theme-provider.tsx +1 -1
  27. package/MCP-INSTRUCTIONS.md +0 -73
  28. package/README-MCP.md +0 -175
  29. package/blocks/components/accordian-block.tsx +0 -48
  30. package/blocks/components/block-component-props.ts +0 -11
  31. package/blocks/components/bullet-cards-block.tsx +0 -46
  32. package/blocks/components/card-block/index.tsx +0 -171
  33. package/blocks/components/card-block/link-out-button.tsx +0 -20
  34. package/blocks/components/card-block/util.ts +0 -28
  35. package/blocks/components/carte-blanche-block/index.tsx +0 -127
  36. package/blocks/components/carte-blanche-block/variant-content-left.tsx +0 -49
  37. package/blocks/components/content.tsx +0 -70
  38. package/blocks/components/cta-block.tsx +0 -115
  39. package/blocks/components/enh-heading-block.tsx +0 -204
  40. package/blocks/components/grid-block/grid-block-mutator.ts +0 -12
  41. package/blocks/components/grid-block/index.tsx +0 -83
  42. package/blocks/components/grid-block/mutator-registry.ts +0 -10
  43. package/blocks/components/grid-block/table-borders.mutator.ts +0 -47
  44. package/blocks/components/group-block.tsx +0 -83
  45. package/blocks/components/heading-block.tsx +0 -88
  46. package/blocks/components/image-block.tsx +0 -111
  47. package/blocks/components/index.ts +0 -30
  48. package/blocks/components/screenful-block/content.tsx +0 -123
  49. package/blocks/components/screenful-block/index.tsx +0 -107
  50. package/blocks/components/screenful-block/poster-background.tsx +0 -34
  51. package/blocks/components/screenful-block/video-background.tsx +0 -45
  52. package/blocks/components/space-block.tsx +0 -66
  53. package/blocks/components/video-block.tsx +0 -138
  54. package/blocks/def/accordian-block.ts +0 -14
  55. package/blocks/def/block.ts +0 -7
  56. package/blocks/def/bullet-cards-block.ts +0 -22
  57. package/blocks/def/card-block.ts +0 -22
  58. package/blocks/def/carte-blanche-block.ts +0 -21
  59. package/blocks/def/cta-block.ts +0 -19
  60. package/blocks/def/element-block.ts +0 -11
  61. package/blocks/def/enh-heading-block.ts +0 -44
  62. package/blocks/def/grid-block.ts +0 -16
  63. package/blocks/def/group-block.ts +0 -11
  64. package/blocks/def/heading-block.ts +0 -15
  65. package/blocks/def/image-block.ts +0 -31
  66. package/blocks/def/index.ts +0 -35
  67. package/blocks/def/screenful-block.ts +0 -54
  68. package/blocks/def/space-block.ts +0 -64
  69. package/blocks/def/video-block.ts +0 -9
  70. package/blocks/index.ts +0 -2
  71. package/dist/mcp/enhanced-server.d.ts +0 -29
  72. package/dist/mcp/enhanced-server.js +0 -1128
  73. package/dist/mcp/index.d.ts +0 -28
  74. package/dist/mcp/index.js +0 -436
  75. package/dist/registry/api.d.ts +0 -37
  76. package/dist/registry/api.js +0 -129
  77. package/dist/registry/index.d.ts +0 -353
  78. package/dist/registry/index.js +0 -45
  79. package/environment.d.ts +0 -6
  80. package/primitives/accordion.tsx +0 -66
  81. package/primitives/action-button.tsx +0 -42
  82. package/primitives/apply-typography.tsx +0 -55
  83. package/primitives/aspect-ratio.tsx +0 -5
  84. package/primitives/avatar.tsx +0 -49
  85. package/primitives/badge.tsx +0 -36
  86. package/primitives/breadcrumb.tsx +0 -115
  87. package/primitives/breakpoint-indicator.tsx +0 -19
  88. package/primitives/button.tsx +0 -85
  89. package/primitives/calendar.tsx +0 -72
  90. package/primitives/card.tsx +0 -83
  91. package/primitives/carousel.tsx +0 -237
  92. package/primitives/checkbox.tsx +0 -32
  93. package/primitives/combobox.tsx +0 -239
  94. package/primitives/command.tsx +0 -157
  95. package/primitives/context-menu.tsx +0 -200
  96. package/primitives/dialog-video-controller.tsx +0 -38
  97. package/primitives/dialog.tsx +0 -157
  98. package/primitives/drawer.tsx +0 -138
  99. package/primitives/form.tsx +0 -178
  100. package/primitives/icons/github.tsx +0 -14
  101. package/primitives/icons/index.ts +0 -18
  102. package/primitives/icons/youtube-logo.tsx +0 -59
  103. package/primitives/index-common.ts +0 -224
  104. package/primitives/index-next.ts +0 -2
  105. package/primitives/input-otp.tsx +0 -65
  106. package/primitives/input.tsx +0 -30
  107. package/primitives/label.tsx +0 -28
  108. package/primitives/list-adaptor.ts +0 -12
  109. package/primitives/list-box.tsx +0 -74
  110. package/primitives/loading-spinner.tsx +0 -33
  111. package/primitives/navigation-menu.tsx +0 -147
  112. package/primitives/next/image.tsx +0 -90
  113. package/primitives/next/index.ts +0 -7
  114. package/primitives/next/inline-icon.tsx +0 -36
  115. package/primitives/next/link-element.tsx +0 -109
  116. package/primitives/next/mdx-link.tsx +0 -22
  117. package/primitives/next/media-stack.tsx +0 -69
  118. package/primitives/next/nav-items.tsx +0 -45
  119. package/primitives/next/youtube-embed.tsx +0 -83
  120. package/primitives/popover.tsx +0 -37
  121. package/primitives/progress.tsx +0 -27
  122. package/primitives/radio-group.tsx +0 -56
  123. package/primitives/scroll-area.tsx +0 -47
  124. package/primitives/select.tsx +0 -169
  125. package/primitives/separator.tsx +0 -29
  126. package/primitives/sheet.tsx +0 -178
  127. package/primitives/skeleton.tsx +0 -20
  128. package/primitives/slider.tsx +0 -72
  129. package/primitives/sonner.tsx +0 -35
  130. package/primitives/step-indicator.tsx +0 -69
  131. package/primitives/switch.tsx +0 -35
  132. package/primitives/table.tsx +0 -117
  133. package/primitives/tabs.tsx +0 -60
  134. package/primitives/text-area.tsx +0 -26
  135. package/primitives/toggle-group.tsx +0 -63
  136. package/primitives/toggle.tsx +0 -73
  137. package/primitives/tooltip.tsx +0 -48
  138. package/primitives/video-player.tsx +0 -23
  139. package/public/r/accordion.json +0 -11
  140. package/public/r/alert.json +0 -11
  141. package/public/r/avatar.json +0 -11
  142. package/public/r/badge.json +0 -11
  143. package/public/r/button.json +0 -11
  144. package/public/r/card.json +0 -11
  145. package/public/r/checkbox.json +0 -11
  146. package/public/r/default.json +0 -6
  147. package/public/r/dialog.json +0 -11
  148. package/public/r/input.json +0 -11
  149. package/public/r/label.json +0 -11
  150. package/public/r/new-york.json +0 -6
  151. package/public/r/popover.json +0 -11
  152. package/public/r/select.json +0 -11
  153. package/public/r/table.json +0 -11
  154. package/public/r/tabs.json +0 -11
  155. package/public/r/toast.json +0 -11
  156. package/registry.json +0 -184
  157. package/src/mcp/README.md +0 -141
  158. package/src/mcp/enhanced-server.ts +0 -1208
  159. package/src/mcp/index.ts +0 -518
  160. package/src/mcp/package.json +0 -10
  161. package/src/registry/api.ts +0 -164
  162. package/src/registry/index.ts +0 -60
  163. package/src/registry/package.json +0 -10
  164. package/tailwind/colors.tailwind.js +0 -53
  165. package/tailwind/fontFamily.tailwind.ts +0 -7
  166. package/tailwind/fontSize.tailwind.ts +0 -13
  167. package/tailwind/index.ts +0 -7
  168. package/tailwind/safelist.tailwind.js +0 -26
  169. package/tailwind/screens.tailwind.js +0 -8
  170. package/tailwind/spacing.tailwind.js +0 -65
  171. package/tailwind/tailwind.config.hanzo-preset.d.ts +0 -5
  172. package/tailwind/tailwind.config.hanzo-preset.js +0 -915
  173. package/tailwind/tw-font-desc.ts +0 -15
  174. package/tailwind/typo-plugin/get-plugin-styles.js +0 -679
  175. package/tailwind/typo-plugin/index.d.ts +0 -9
  176. package/tailwind/typo-plugin/index.js +0 -141
  177. package/tailwind/typo-plugin/utils.js +0 -60
  178. package/tailwind/typography-test.mdx +0 -35
  179. package/tailwind/z-index.tailwind.js +0 -71
  180. package/test/test-registry.js +0 -73
  181. package/tsconfig.json +0 -22
  182. package/types/animation-def.ts +0 -3
  183. package/types/breakpoints.ts +0 -11
  184. package/types/bullet-item.ts +0 -10
  185. package/types/button-def.ts +0 -39
  186. package/types/dimensions.ts +0 -8
  187. package/types/grid-def.ts +0 -56
  188. package/types/image-def.ts +0 -32
  189. package/types/index.ts +0 -29
  190. package/types/link-def.ts +0 -56
  191. package/types/media-stack-def.ts +0 -31
  192. package/types/t-shirt-size.ts +0 -5
  193. package/types/tshirt-dimensions.ts +0 -20
  194. package/types/video-def.ts +0 -25
  195. package/util/format-and-abbreviate-as-currency.ts +0 -125
  196. package/util/format-to-max-char.ts +0 -68
  197. package/util/index-client.ts +0 -3
  198. package/util/index.ts +0 -78
  199. package/util/number-abbreviate.ts +0 -49
  200. package/util/specifier.ts +0 -43
  201. package/util/spread-to-transform.ts +0 -24
  202. package/util/step-animation.ts +0 -90
  203. package/util/two-way-map.ts +0 -19
@@ -1,141 +0,0 @@
1
- import plugin from 'tailwindcss/plugin'
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,73 +0,0 @@
1
- // Small test for the registry functionality
2
- // This script checks if the registry is accessible
3
- const https = require('https');
4
-
5
- function fetchJson(url) {
6
- return new Promise((resolve, reject) => {
7
- https.get(url, (res) => {
8
- let data = '';
9
-
10
- // Handle HTTP errors
11
- if (res.statusCode !== 200) {
12
- reject(new Error(`HTTP error: ${res.statusCode} ${res.statusMessage}`));
13
- return;
14
- }
15
-
16
- // Collect data chunks
17
- res.on('data', (chunk) => {
18
- data += chunk;
19
- });
20
-
21
- // Process complete response
22
- res.on('end', () => {
23
- try {
24
- const parsed = JSON.parse(data);
25
- resolve(parsed);
26
- } catch (error) {
27
- reject(new Error(`Invalid JSON: ${error.message}`));
28
- }
29
- });
30
-
31
- }).on('error', (err) => {
32
- reject(err);
33
- });
34
- });
35
- }
36
-
37
- async function main() {
38
- try {
39
- // Define registry URL
40
- const registryUrl = "https://ui.hanzo.ai/registry/registry.json";
41
-
42
- // Fetch the registry
43
- console.log(`Fetching registry from ${registryUrl}...`);
44
- const registry = await fetchJson(registryUrl);
45
-
46
- console.log(`Successfully fetched registry with ${registry.items.length} items`);
47
-
48
- // Display some basic information
49
- console.log(`Registry name: ${registry.name}`);
50
- console.log(`Homepage: ${registry.homepage || 'Not specified'}`);
51
-
52
- // Count items by type
53
- const typeCount = {};
54
- registry.items.forEach(item => {
55
- const type = item.type;
56
- typeCount[type] = (typeCount[type] || 0) + 1;
57
- });
58
-
59
- console.log("Items by type:");
60
- Object.entries(typeCount).forEach(([type, count]) => {
61
- console.log(` ${type}: ${count} items`);
62
- });
63
-
64
- // Test complete
65
- console.log("Registry test completed successfully!");
66
- } catch (error) {
67
- console.error("Error testing registry:", error);
68
- process.exit(1);
69
- }
70
- }
71
-
72
- // Run the test
73
- main();
package/tsconfig.json DELETED
@@ -1,22 +0,0 @@
1
- {
2
- "extends": "../tsconfig.hanzo.base.json",
3
- "include": [
4
- "src/**/*.ts",
5
- "src/**/*.tsx"
6
- ],
7
- "exclude": [
8
- "node_modules",
9
- "dist",
10
- "bin",
11
- "test"
12
- ],
13
- "compilerOptions": {
14
- "noEmit": false,
15
- "declaration": true,
16
- "outDir": "./dist",
17
- "skipLibCheck": true,
18
- "rootDir": "./src",
19
- "types": ["node"],
20
- "verbatimModuleSyntax": false
21
- }
22
- }
@@ -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 { type 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,29 +0,0 @@
1
-
2
- export type { default as AnimationDef } from './animation-def'
3
- export { type Breakpoint, Breakpoints } from './breakpoints'
4
- export type { default as BulletItem } from './bullet-item'
5
-
6
- export type {
7
- ButtonDef,
8
- SubmitServerAction,
9
- ButtonModalProps,
10
- ButtonModalDef,
11
- } from './button-def'
12
-
13
- export type { default as Dimensions } from './dimensions'
14
-
15
- export type { default as GridDef, GridColumnSpec } from './grid-def'
16
- export {
17
- COMMON_GRID_1_COL,
18
- COMMON_GRID_2_COL,
19
- COMMON_GRID_3_COL,
20
- COMMON_GRID_4_COL
21
- } from './grid-def'
22
-
23
- export type { default as ImageDef } from './image-def'
24
- export type { default as LinkDef } from './link-def'
25
- export type { default as TShirtDimensions } from './tshirt-dimensions'
26
- export type { default as TShirtSize } from './t-shirt-size'
27
- export type { default as VideoDef } from './video-def'
28
-
29
- 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
- }