@luxonis/depthai-pipeline-lib 1.4.8

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 (240) hide show
  1. package/LICENSE.md +1 -0
  2. package/README.md +14 -0
  3. package/dist/index.css +3 -0
  4. package/dist/panda.css +1474 -0
  5. package/dist/src/components/Node.d.ts +5 -0
  6. package/dist/src/components/Node.js +42 -0
  7. package/dist/src/components/PipelineCanvas.d.ts +7 -0
  8. package/dist/src/components/PipelineCanvas.js +56 -0
  9. package/dist/src/index.d.ts +4 -0
  10. package/dist/src/index.js +2 -0
  11. package/dist/src/services/pipeline.d.ts +51 -0
  12. package/dist/src/services/pipeline.js +40 -0
  13. package/dist/src/styled-system/chunks/src__components__Node.css +195 -0
  14. package/dist/src/styled-system/chunks/src__components__PipelineCanvas.css +25 -0
  15. package/dist/src/styled-system/css/conditions.mjs +34 -0
  16. package/dist/src/styled-system/css/css.d.mts +9 -0
  17. package/dist/src/styled-system/css/css.mjs +44 -0
  18. package/dist/src/styled-system/css/cva.d.mts +6 -0
  19. package/dist/src/styled-system/css/cva.mjs +63 -0
  20. package/dist/src/styled-system/css/cx.d.mts +5 -0
  21. package/dist/src/styled-system/css/cx.mjs +15 -0
  22. package/dist/src/styled-system/css/index.d.mts +5 -0
  23. package/dist/src/styled-system/css/index.mjs +4 -0
  24. package/dist/src/styled-system/css/sva.d.mts +4 -0
  25. package/dist/src/styled-system/css/sva.mjs +35 -0
  26. package/dist/src/styled-system/global.css +70 -0
  27. package/dist/src/styled-system/helpers.mjs +282 -0
  28. package/dist/src/styled-system/patterns/aspect-ratio.d.mts +21 -0
  29. package/dist/src/styled-system/patterns/aspect-ratio.mjs +35 -0
  30. package/dist/src/styled-system/patterns/bleed.d.mts +22 -0
  31. package/dist/src/styled-system/patterns/bleed.mjs +19 -0
  32. package/dist/src/styled-system/patterns/box.d.mts +21 -0
  33. package/dist/src/styled-system/patterns/box.mjs +12 -0
  34. package/dist/src/styled-system/patterns/center.d.mts +21 -0
  35. package/dist/src/styled-system/patterns/center.mjs +18 -0
  36. package/dist/src/styled-system/patterns/circle.d.mts +21 -0
  37. package/dist/src/styled-system/patterns/circle.mjs +22 -0
  38. package/dist/src/styled-system/patterns/container.d.mts +21 -0
  39. package/dist/src/styled-system/patterns/container.mjs +18 -0
  40. package/dist/src/styled-system/patterns/divider.d.mts +23 -0
  41. package/dist/src/styled-system/patterns/divider.mjs +21 -0
  42. package/dist/src/styled-system/patterns/flex.d.mts +27 -0
  43. package/dist/src/styled-system/patterns/flex.mjs +23 -0
  44. package/dist/src/styled-system/patterns/float.d.mts +24 -0
  45. package/dist/src/styled-system/patterns/float.mjs +45 -0
  46. package/dist/src/styled-system/patterns/grid-item.d.mts +26 -0
  47. package/dist/src/styled-system/patterns/grid-item.mjs +22 -0
  48. package/dist/src/styled-system/patterns/grid.d.mts +25 -0
  49. package/dist/src/styled-system/patterns/grid.mjs +20 -0
  50. package/dist/src/styled-system/patterns/hstack.d.mts +22 -0
  51. package/dist/src/styled-system/patterns/hstack.mjs +20 -0
  52. package/dist/src/styled-system/patterns/index.d.mts +21 -0
  53. package/dist/src/styled-system/patterns/index.mjs +20 -0
  54. package/dist/src/styled-system/patterns/link-box.d.mts +21 -0
  55. package/dist/src/styled-system/patterns/link-box.mjs +19 -0
  56. package/dist/src/styled-system/patterns/link-overlay.d.mts +21 -0
  57. package/dist/src/styled-system/patterns/link-overlay.mjs +24 -0
  58. package/dist/src/styled-system/patterns/spacer.d.mts +21 -0
  59. package/dist/src/styled-system/patterns/spacer.mjs +18 -0
  60. package/dist/src/styled-system/patterns/square.d.mts +21 -0
  61. package/dist/src/styled-system/patterns/square.mjs +21 -0
  62. package/dist/src/styled-system/patterns/stack.d.mts +24 -0
  63. package/dist/src/styled-system/patterns/stack.mjs +20 -0
  64. package/dist/src/styled-system/patterns/visually-hidden.d.mts +21 -0
  65. package/dist/src/styled-system/patterns/visually-hidden.mjs +15 -0
  66. package/dist/src/styled-system/patterns/vstack.d.mts +22 -0
  67. package/dist/src/styled-system/patterns/vstack.mjs +20 -0
  68. package/dist/src/styled-system/patterns/wrap.d.mts +25 -0
  69. package/dist/src/styled-system/patterns/wrap.mjs +22 -0
  70. package/dist/src/styled-system/recipes/accordion.d.mts +28 -0
  71. package/dist/src/styled-system/recipes/accordion.mjs +46 -0
  72. package/dist/src/styled-system/recipes/alert-description.d.mts +28 -0
  73. package/dist/src/styled-system/recipes/alert-description.mjs +19 -0
  74. package/dist/src/styled-system/recipes/alert-dialog.d.mts +28 -0
  75. package/dist/src/styled-system/recipes/alert-dialog.mjs +70 -0
  76. package/dist/src/styled-system/recipes/alert-title.d.mts +28 -0
  77. package/dist/src/styled-system/recipes/alert-title.mjs +19 -0
  78. package/dist/src/styled-system/recipes/alert.d.mts +28 -0
  79. package/dist/src/styled-system/recipes/alert.mjs +26 -0
  80. package/dist/src/styled-system/recipes/avatar.d.mts +28 -0
  81. package/dist/src/styled-system/recipes/avatar.mjs +38 -0
  82. package/dist/src/styled-system/recipes/badge.d.mts +28 -0
  83. package/dist/src/styled-system/recipes/badge.mjs +28 -0
  84. package/dist/src/styled-system/recipes/blockquote.d.mts +28 -0
  85. package/dist/src/styled-system/recipes/blockquote.mjs +19 -0
  86. package/dist/src/styled-system/recipes/button.d.mts +29 -0
  87. package/dist/src/styled-system/recipes/button.mjs +37 -0
  88. package/dist/src/styled-system/recipes/calendar.d.mts +28 -0
  89. package/dist/src/styled-system/recipes/calendar.mjs +118 -0
  90. package/dist/src/styled-system/recipes/card-content.d.mts +28 -0
  91. package/dist/src/styled-system/recipes/card-content.mjs +19 -0
  92. package/dist/src/styled-system/recipes/card-description.d.mts +28 -0
  93. package/dist/src/styled-system/recipes/card-description.mjs +19 -0
  94. package/dist/src/styled-system/recipes/card-footer.d.mts +28 -0
  95. package/dist/src/styled-system/recipes/card-footer.mjs +19 -0
  96. package/dist/src/styled-system/recipes/card-header.d.mts +28 -0
  97. package/dist/src/styled-system/recipes/card-header.mjs +19 -0
  98. package/dist/src/styled-system/recipes/card-title.d.mts +28 -0
  99. package/dist/src/styled-system/recipes/card-title.mjs +19 -0
  100. package/dist/src/styled-system/recipes/card.d.mts +28 -0
  101. package/dist/src/styled-system/recipes/card.mjs +19 -0
  102. package/dist/src/styled-system/recipes/checkbox.d.mts +28 -0
  103. package/dist/src/styled-system/recipes/checkbox.mjs +34 -0
  104. package/dist/src/styled-system/recipes/collapsible.d.mts +28 -0
  105. package/dist/src/styled-system/recipes/collapsible.mjs +38 -0
  106. package/dist/src/styled-system/recipes/command-dialog.d.mts +28 -0
  107. package/dist/src/styled-system/recipes/command-dialog.mjs +34 -0
  108. package/dist/src/styled-system/recipes/command.d.mts +28 -0
  109. package/dist/src/styled-system/recipes/command.mjs +66 -0
  110. package/dist/src/styled-system/recipes/context-menu.d.mts +28 -0
  111. package/dist/src/styled-system/recipes/context-menu.mjs +98 -0
  112. package/dist/src/styled-system/recipes/create-recipe.d.mts +1 -0
  113. package/dist/src/styled-system/recipes/create-recipe.mjs +50 -0
  114. package/dist/src/styled-system/recipes/dialog.d.mts +28 -0
  115. package/dist/src/styled-system/recipes/dialog.mjs +66 -0
  116. package/dist/src/styled-system/recipes/dropdown-menu.d.mts +28 -0
  117. package/dist/src/styled-system/recipes/dropdown-menu.mjs +90 -0
  118. package/dist/src/styled-system/recipes/form-control.d.mts +28 -0
  119. package/dist/src/styled-system/recipes/form-control.mjs +19 -0
  120. package/dist/src/styled-system/recipes/form-description.d.mts +28 -0
  121. package/dist/src/styled-system/recipes/form-description.mjs +19 -0
  122. package/dist/src/styled-system/recipes/form-item.d.mts +28 -0
  123. package/dist/src/styled-system/recipes/form-item.mjs +19 -0
  124. package/dist/src/styled-system/recipes/form-label.d.mts +28 -0
  125. package/dist/src/styled-system/recipes/form-label.mjs +19 -0
  126. package/dist/src/styled-system/recipes/form-message.d.mts +28 -0
  127. package/dist/src/styled-system/recipes/form-message.mjs +19 -0
  128. package/dist/src/styled-system/recipes/h1.d.mts +28 -0
  129. package/dist/src/styled-system/recipes/h1.mjs +19 -0
  130. package/dist/src/styled-system/recipes/h2.d.mts +28 -0
  131. package/dist/src/styled-system/recipes/h2.mjs +19 -0
  132. package/dist/src/styled-system/recipes/h3.d.mts +28 -0
  133. package/dist/src/styled-system/recipes/h3.mjs +19 -0
  134. package/dist/src/styled-system/recipes/h4.d.mts +28 -0
  135. package/dist/src/styled-system/recipes/h4.mjs +19 -0
  136. package/dist/src/styled-system/recipes/hover-card.d.mts +28 -0
  137. package/dist/src/styled-system/recipes/hover-card.mjs +38 -0
  138. package/dist/src/styled-system/recipes/icon.d.mts +32 -0
  139. package/dist/src/styled-system/recipes/icon.mjs +49 -0
  140. package/dist/src/styled-system/recipes/index.d.mts +74 -0
  141. package/dist/src/styled-system/recipes/index.mjs +73 -0
  142. package/dist/src/styled-system/recipes/inline-code.d.mts +28 -0
  143. package/dist/src/styled-system/recipes/inline-code.mjs +19 -0
  144. package/dist/src/styled-system/recipes/input.d.mts +28 -0
  145. package/dist/src/styled-system/recipes/input.mjs +19 -0
  146. package/dist/src/styled-system/recipes/label.d.mts +28 -0
  147. package/dist/src/styled-system/recipes/label.mjs +19 -0
  148. package/dist/src/styled-system/recipes/large.d.mts +28 -0
  149. package/dist/src/styled-system/recipes/large.mjs +19 -0
  150. package/dist/src/styled-system/recipes/lead.d.mts +28 -0
  151. package/dist/src/styled-system/recipes/lead.mjs +19 -0
  152. package/dist/src/styled-system/recipes/link.d.mts +28 -0
  153. package/dist/src/styled-system/recipes/link.mjs +19 -0
  154. package/dist/src/styled-system/recipes/list.d.mts +28 -0
  155. package/dist/src/styled-system/recipes/list.mjs +19 -0
  156. package/dist/src/styled-system/recipes/menubar.d.mts +28 -0
  157. package/dist/src/styled-system/recipes/menubar.mjs +94 -0
  158. package/dist/src/styled-system/recipes/muted.d.mts +28 -0
  159. package/dist/src/styled-system/recipes/muted.mjs +19 -0
  160. package/dist/src/styled-system/recipes/navigation-menu.d.mts +28 -0
  161. package/dist/src/styled-system/recipes/navigation-menu.mjs +62 -0
  162. package/dist/src/styled-system/recipes/p.d.mts +28 -0
  163. package/dist/src/styled-system/recipes/p.mjs +19 -0
  164. package/dist/src/styled-system/recipes/popover.d.mts +28 -0
  165. package/dist/src/styled-system/recipes/popover.mjs +42 -0
  166. package/dist/src/styled-system/recipes/progress.d.mts +28 -0
  167. package/dist/src/styled-system/recipes/progress.mjs +34 -0
  168. package/dist/src/styled-system/recipes/radio-group.d.mts +28 -0
  169. package/dist/src/styled-system/recipes/radio-group.mjs +42 -0
  170. package/dist/src/styled-system/recipes/scroll-area.d.mts +28 -0
  171. package/dist/src/styled-system/recipes/scroll-area.mjs +46 -0
  172. package/dist/src/styled-system/recipes/select.d.mts +28 -0
  173. package/dist/src/styled-system/recipes/select.mjs +66 -0
  174. package/dist/src/styled-system/recipes/separator.d.mts +28 -0
  175. package/dist/src/styled-system/recipes/separator.mjs +26 -0
  176. package/dist/src/styled-system/recipes/sheet.d.mts +28 -0
  177. package/dist/src/styled-system/recipes/sheet.mjs +81 -0
  178. package/dist/src/styled-system/recipes/skeleton.d.mts +28 -0
  179. package/dist/src/styled-system/recipes/skeleton.mjs +19 -0
  180. package/dist/src/styled-system/recipes/slider.d.mts +28 -0
  181. package/dist/src/styled-system/recipes/slider.mjs +42 -0
  182. package/dist/src/styled-system/recipes/small.d.mts +28 -0
  183. package/dist/src/styled-system/recipes/small.mjs +19 -0
  184. package/dist/src/styled-system/recipes/switch-recipe.d.mts +28 -0
  185. package/dist/src/styled-system/recipes/switch-recipe.mjs +34 -0
  186. package/dist/src/styled-system/recipes/table-body.d.mts +28 -0
  187. package/dist/src/styled-system/recipes/table-body.mjs +19 -0
  188. package/dist/src/styled-system/recipes/table-caption.d.mts +28 -0
  189. package/dist/src/styled-system/recipes/table-caption.mjs +19 -0
  190. package/dist/src/styled-system/recipes/table-cell.d.mts +28 -0
  191. package/dist/src/styled-system/recipes/table-cell.mjs +19 -0
  192. package/dist/src/styled-system/recipes/table-container.d.mts +28 -0
  193. package/dist/src/styled-system/recipes/table-container.mjs +19 -0
  194. package/dist/src/styled-system/recipes/table-footer.d.mts +28 -0
  195. package/dist/src/styled-system/recipes/table-footer.mjs +19 -0
  196. package/dist/src/styled-system/recipes/table-head.d.mts +28 -0
  197. package/dist/src/styled-system/recipes/table-head.mjs +19 -0
  198. package/dist/src/styled-system/recipes/table-header.d.mts +28 -0
  199. package/dist/src/styled-system/recipes/table-header.mjs +19 -0
  200. package/dist/src/styled-system/recipes/table-row.d.mts +28 -0
  201. package/dist/src/styled-system/recipes/table-row.mjs +19 -0
  202. package/dist/src/styled-system/recipes/table.d.mts +28 -0
  203. package/dist/src/styled-system/recipes/table.mjs +19 -0
  204. package/dist/src/styled-system/recipes/tabs.d.mts +28 -0
  205. package/dist/src/styled-system/recipes/tabs.mjs +42 -0
  206. package/dist/src/styled-system/recipes/textarea.d.mts +28 -0
  207. package/dist/src/styled-system/recipes/textarea.mjs +19 -0
  208. package/dist/src/styled-system/recipes/toast-viewport.d.mts +28 -0
  209. package/dist/src/styled-system/recipes/toast-viewport.mjs +19 -0
  210. package/dist/src/styled-system/recipes/toast.d.mts +28 -0
  211. package/dist/src/styled-system/recipes/toast.mjs +59 -0
  212. package/dist/src/styled-system/recipes/toggle.d.mts +29 -0
  213. package/dist/src/styled-system/recipes/toggle.mjs +32 -0
  214. package/dist/src/styled-system/recipes/tooltip.d.mts +28 -0
  215. package/dist/src/styled-system/recipes/tooltip.mjs +38 -0
  216. package/dist/src/styled-system/recipes/typography-table-container.d.mts +28 -0
  217. package/dist/src/styled-system/recipes/typography-table-container.mjs +19 -0
  218. package/dist/src/styled-system/recipes/typography-table.d.mts +28 -0
  219. package/dist/src/styled-system/recipes/typography-table.mjs +19 -0
  220. package/dist/src/styled-system/reset.css +206 -0
  221. package/dist/src/styled-system/static.css +320 -0
  222. package/dist/src/styled-system/tokens/index.css +620 -0
  223. package/dist/src/styled-system/tokens/index.d.mts +9 -0
  224. package/dist/src/styled-system/tokens/index.mjs +2680 -0
  225. package/dist/src/styled-system/tokens/keyframes.css +56 -0
  226. package/dist/src/styled-system/tokens/tokens.d.mts +63 -0
  227. package/dist/src/styled-system/types/composition.d.mts +111 -0
  228. package/dist/src/styled-system/types/conditions.d.mts +266 -0
  229. package/dist/src/styled-system/types/csstype.d.mts +20749 -0
  230. package/dist/src/styled-system/types/global.d.mts +19 -0
  231. package/dist/src/styled-system/types/helpers.d.mts +2 -0
  232. package/dist/src/styled-system/types/index.d.mts +8 -0
  233. package/dist/src/styled-system/types/parts.d.mts +6 -0
  234. package/dist/src/styled-system/types/pattern.d.mts +61 -0
  235. package/dist/src/styled-system/types/prop-type.d.mts +340 -0
  236. package/dist/src/styled-system/types/recipe.d.mts +148 -0
  237. package/dist/src/styled-system/types/selectors.d.mts +59 -0
  238. package/dist/src/styled-system/types/style-props.d.mts +687 -0
  239. package/dist/src/styled-system/types/system-types.d.mts +85 -0
  240. package/package.json +63 -0
@@ -0,0 +1,19 @@
1
+ /* eslint-disable */
2
+ // @ts-nocheck
3
+ import type * as Panda from '@pandacss/dev'
4
+ import type { RecipeVariantRecord, RecipeConfig, SlotRecipeVariantRecord, SlotRecipeConfig } from './recipe.d.mts';
5
+ import type { Parts } from './parts.d.mts';
6
+ import type { PatternConfig, PatternProperties } from './pattern.d.mts';
7
+ import type { GlobalStyleObject, SystemStyleObject } from './system-types.d.mts';
8
+ import type { CompositionStyles } from './composition.d.mts';
9
+
10
+ declare module '@pandacss/dev' {
11
+ export function defineRecipe<V extends RecipeVariantRecord>(config: RecipeConfig<V>): Panda.RecipeConfig
12
+ export function defineSlotRecipe<S extends string, V extends SlotRecipeVariantRecord<S>>(config: SlotRecipeConfig<S, V>): Panda.SlotRecipeConfig
13
+ export function defineStyles(definition: SystemStyleObject): SystemStyleObject
14
+ export function defineGlobalStyles(definition: GlobalStyleObject): Panda.GlobalStyleObject
15
+ export function defineTextStyles(definition: CompositionStyles['textStyles']): Panda.TextStyles
16
+ export function defineLayerStyles(definition: CompositionStyles['layerStyles']): Panda.LayerStyles
17
+ export function definePattern<T extends PatternProperties>(config: PatternConfig<T>): Panda.PatternConfig
18
+ export function defineParts<T extends Parts>(parts: T): (config: Partial<Record<keyof T, SystemStyleObject>>) => Partial<Record<keyof T, SystemStyleObject>>
19
+ }
@@ -0,0 +1,2 @@
1
+ /* eslint-disable */
2
+ export type Pretty<T> = T extends infer U ? { [K in keyof U]: U[K] } : never
@@ -0,0 +1,8 @@
1
+ /* eslint-disable */
2
+ import './global.d.mts'
3
+ export * from './conditions.d.mts';
4
+ export * from './pattern.d.mts';
5
+ export * from './recipe.d.mts';
6
+ export * from './system-types.d.mts';
7
+ export * from './jsx.d.mts';
8
+ export * from './style-props.d.mts';
@@ -0,0 +1,6 @@
1
+ /* eslint-disable */
2
+ export interface Part {
3
+ selector: string
4
+ }
5
+
6
+ export type Parts = Record<string, Part>
@@ -0,0 +1,61 @@
1
+ /* eslint-disable */
2
+ import type { CssProperty, SystemStyleObject } from './system-types.d.mts';
3
+ import type { TokenCategory } from '../tokens/index.d.mts';
4
+
5
+ type Primitive = string | number | boolean | null | undefined
6
+ type LiteralUnion<T, K extends Primitive = string> = T | (K & Record<never, never>)
7
+
8
+ export type PatternProperty =
9
+ | { type: 'property'; value: CssProperty }
10
+ | { type: 'enum'; value: string[] }
11
+ | { type: 'token'; value: TokenCategory; property?: CssProperty }
12
+ | { type: 'string' | 'boolean' | 'number' }
13
+
14
+ export interface PatternHelpers {
15
+ map: (value: any, fn: (value: string) => string | undefined) => any
16
+ }
17
+
18
+ export type PatternProperties = Record<string, PatternProperty>
19
+
20
+ type Props<T> = Record<LiteralUnion<keyof T>, any>
21
+
22
+ export interface PatternConfig<T extends PatternProperties = PatternProperties> {
23
+ /**
24
+ * The description of the pattern. This will be used in the JSDoc comment.
25
+ */
26
+ description?: string
27
+ /**
28
+ * The JSX element rendered by the pattern
29
+ * @default 'div'
30
+ */
31
+ jsxElement?: string
32
+ /**
33
+ * The properties of the pattern.
34
+ */
35
+ properties?: T
36
+ /**
37
+ * The css object this pattern will generate.
38
+ */
39
+ transform?: (props: Props<T>, helpers: PatternHelpers) => SystemStyleObject
40
+ /**
41
+ * The jsx element name this pattern will generate.
42
+ */
43
+ jsxName?: string
44
+ /**
45
+ * The jsx elements to track for this pattern. Can be string or Regexp.
46
+ *
47
+ * @default capitalize(pattern.name)
48
+ * @example ['Button', 'Link', /Button$/]
49
+ */
50
+ jsx?: Array<string | RegExp>
51
+ /**
52
+ * Whether to only generate types for the specified properties.
53
+ * This will disallow css properties
54
+ */
55
+ strict?: boolean
56
+ /**
57
+ * @experimental
58
+ * Disallow certain css properties for this pattern
59
+ */
60
+ blocklist?: LiteralUnion<CssProperty>[]
61
+ }
@@ -0,0 +1,340 @@
1
+ /* eslint-disable */
2
+ import type { ConditionalValue } from './conditions.d.mts';
3
+ import type { CssProperties } from './system-types.d.mts';
4
+ import type { Tokens } from '../tokens/index.d.mts';
5
+
6
+ interface PropertyValueTypes {
7
+ aspectRatio: "auto" | "square" | "landscape" | "portrait" | "wide" | "ultrawide" | "golden";
8
+ zIndex: Tokens["zIndex"];
9
+ top: Tokens["spacing"];
10
+ left: Tokens["spacing"];
11
+ insetInline: Tokens["spacing"];
12
+ insetBlock: Tokens["spacing"];
13
+ inset: "auto" | Tokens["spacing"];
14
+ insetBlockEnd: Tokens["spacing"];
15
+ insetBlockStart: Tokens["spacing"];
16
+ insetInlineEnd: Tokens["spacing"];
17
+ insetInlineStart: Tokens["spacing"];
18
+ right: Tokens["spacing"];
19
+ bottom: Tokens["spacing"];
20
+ insetX: Tokens["spacing"] | CssProperties["insetInline"];
21
+ insetY: Tokens["spacing"] | CssProperties["insetBlock"];
22
+ float: "left" | "right" | "start" | "end";
23
+ hideFrom: Tokens["breakpoints"];
24
+ hideBelow: Tokens["breakpoints"];
25
+ flexBasis: Tokens["spacing"] | "1/2" | "1/3" | "2/3" | "1/4" | "2/4" | "3/4" | "1/5" | "2/5" | "3/5" | "4/5" | "1/6" | "2/6" | "3/6" | "4/6" | "5/6" | "1/12" | "2/12" | "3/12" | "4/12" | "5/12" | "6/12" | "7/12" | "8/12" | "9/12" | "10/12" | "11/12" | "full";
26
+ flex: "1" | "auto" | "initial" | "none";
27
+ gridTemplateColumns: "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11" | "12";
28
+ gridTemplateRows: "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11" | "12";
29
+ gridColumn: "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11" | "12" | "full";
30
+ gridRow: "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11" | "12" | "full";
31
+ gridAutoColumns: "min" | "max" | "fr";
32
+ gridAutoRows: "min" | "max" | "fr";
33
+ gap: Tokens["spacing"];
34
+ gridGap: Tokens["spacing"];
35
+ gridRowGap: Tokens["spacing"];
36
+ gridColumnGap: Tokens["spacing"];
37
+ rowGap: Tokens["spacing"];
38
+ columnGap: Tokens["spacing"];
39
+ padding: Tokens["spacing"];
40
+ paddingLeft: Tokens["spacing"];
41
+ paddingRight: Tokens["spacing"];
42
+ paddingTop: Tokens["spacing"];
43
+ paddingBottom: Tokens["spacing"];
44
+ paddingBlock: Tokens["spacing"];
45
+ paddingBlockEnd: Tokens["spacing"];
46
+ paddingBlockStart: Tokens["spacing"];
47
+ paddingInline: Tokens["spacing"];
48
+ paddingInlineEnd: Tokens["spacing"];
49
+ paddingInlineStart: Tokens["spacing"];
50
+ marginLeft: "auto" | Tokens["spacing"];
51
+ marginRight: "auto" | Tokens["spacing"];
52
+ marginTop: "auto" | Tokens["spacing"];
53
+ marginBottom: "auto" | Tokens["spacing"];
54
+ margin: "auto" | Tokens["spacing"];
55
+ marginBlock: "auto" | Tokens["spacing"];
56
+ marginBlockEnd: "auto" | Tokens["spacing"];
57
+ marginBlockStart: "auto" | Tokens["spacing"];
58
+ marginInline: "auto" | Tokens["spacing"];
59
+ marginInlineEnd: "auto" | Tokens["spacing"];
60
+ marginInlineStart: "auto" | Tokens["spacing"];
61
+ outlineColor: Tokens["colors"];
62
+ outline: Tokens["borders"];
63
+ outlineOffset: Tokens["spacing"];
64
+ divideX: string;
65
+ divideY: string;
66
+ divideColor: Tokens["colors"];
67
+ divideStyle: CssProperties["borderStyle"];
68
+ width: "auto" | Tokens["sizes"] | "1/2" | "1/3" | "2/3" | "1/4" | "2/4" | "3/4" | "1/5" | "2/5" | "3/5" | "4/5" | "1/6" | "2/6" | "3/6" | "4/6" | "5/6" | "1/12" | "2/12" | "3/12" | "4/12" | "5/12" | "6/12" | "7/12" | "8/12" | "9/12" | "10/12" | "11/12" | "screen";
69
+ inlineSize: "auto" | Tokens["sizes"] | "1/2" | "1/3" | "2/3" | "1/4" | "2/4" | "3/4" | "1/5" | "2/5" | "3/5" | "4/5" | "1/6" | "2/6" | "3/6" | "4/6" | "5/6" | "1/12" | "2/12" | "3/12" | "4/12" | "5/12" | "6/12" | "7/12" | "8/12" | "9/12" | "10/12" | "11/12" | "screen";
70
+ minWidth: "auto" | Tokens["sizes"] | "1/2" | "1/3" | "2/3" | "1/4" | "2/4" | "3/4" | "1/5" | "2/5" | "3/5" | "4/5" | "1/6" | "2/6" | "3/6" | "4/6" | "5/6" | "1/12" | "2/12" | "3/12" | "4/12" | "5/12" | "6/12" | "7/12" | "8/12" | "9/12" | "10/12" | "11/12" | "screen";
71
+ minInlineSize: "auto" | Tokens["sizes"] | "1/2" | "1/3" | "2/3" | "1/4" | "2/4" | "3/4" | "1/5" | "2/5" | "3/5" | "4/5" | "1/6" | "2/6" | "3/6" | "4/6" | "5/6" | "1/12" | "2/12" | "3/12" | "4/12" | "5/12" | "6/12" | "7/12" | "8/12" | "9/12" | "10/12" | "11/12" | "screen";
72
+ maxWidth: "auto" | Tokens["sizes"] | "1/2" | "1/3" | "2/3" | "1/4" | "2/4" | "3/4" | "1/5" | "2/5" | "3/5" | "4/5" | "1/6" | "2/6" | "3/6" | "4/6" | "5/6" | "1/12" | "2/12" | "3/12" | "4/12" | "5/12" | "6/12" | "7/12" | "8/12" | "9/12" | "10/12" | "11/12" | "screen";
73
+ maxInlineSize: "auto" | Tokens["sizes"] | "1/2" | "1/3" | "2/3" | "1/4" | "2/4" | "3/4" | "1/5" | "2/5" | "3/5" | "4/5" | "1/6" | "2/6" | "3/6" | "4/6" | "5/6" | "1/12" | "2/12" | "3/12" | "4/12" | "5/12" | "6/12" | "7/12" | "8/12" | "9/12" | "10/12" | "11/12" | "screen";
74
+ height: "auto" | Tokens["sizes"] | "svh" | "lvh" | "dvh" | "screen" | "1/2" | "1/3" | "2/3" | "1/4" | "2/4" | "3/4" | "1/5" | "2/5" | "3/5" | "4/5" | "1/6" | "2/6" | "3/6" | "4/6" | "5/6";
75
+ blockSize: "auto" | Tokens["sizes"] | "svh" | "lvh" | "dvh" | "screen" | "1/2" | "1/3" | "2/3" | "1/4" | "2/4" | "3/4" | "1/5" | "2/5" | "3/5" | "4/5" | "1/6" | "2/6" | "3/6" | "4/6" | "5/6";
76
+ minHeight: "auto" | Tokens["sizes"] | "svh" | "lvh" | "dvh" | "screen" | "1/2" | "1/3" | "2/3" | "1/4" | "2/4" | "3/4" | "1/5" | "2/5" | "3/5" | "4/5" | "1/6" | "2/6" | "3/6" | "4/6" | "5/6";
77
+ minBlockSize: "auto" | Tokens["sizes"] | "svh" | "lvh" | "dvh" | "screen" | "1/2" | "1/3" | "2/3" | "1/4" | "2/4" | "3/4" | "1/5" | "2/5" | "3/5" | "4/5" | "1/6" | "2/6" | "3/6" | "4/6" | "5/6";
78
+ maxHeight: "auto" | Tokens["sizes"] | "svh" | "lvh" | "dvh" | "screen" | "1/2" | "1/3" | "2/3" | "1/4" | "2/4" | "3/4" | "1/5" | "2/5" | "3/5" | "4/5" | "1/6" | "2/6" | "3/6" | "4/6" | "5/6";
79
+ maxBlockSize: "auto" | Tokens["sizes"] | "svh" | "lvh" | "dvh" | "screen" | "1/2" | "1/3" | "2/3" | "1/4" | "2/4" | "3/4" | "1/5" | "2/5" | "3/5" | "4/5" | "1/6" | "2/6" | "3/6" | "4/6" | "5/6";
80
+ color: Tokens["colors"];
81
+ fontFamily: Tokens["fonts"];
82
+ fontSize: Tokens["fontSizes"];
83
+ fontWeight: Tokens["fontWeights"];
84
+ fontSmoothing: "antialiased" | "subpixel-antialiased";
85
+ letterSpacing: Tokens["letterSpacings"];
86
+ lineHeight: Tokens["lineHeights"];
87
+ textDecorationColor: Tokens["colors"];
88
+ textEmphasisColor: Tokens["colors"];
89
+ textIndent: Tokens["spacing"];
90
+ textShadow: Tokens["shadows"];
91
+ textWrap: "wrap" | "balance" | "nowrap";
92
+ truncate: boolean;
93
+ listStyleImage: Tokens["assets"];
94
+ background: Tokens["colors"];
95
+ backgroundColor: Tokens["colors"];
96
+ backgroundImage: Tokens["assets"];
97
+ backgroundGradient: Tokens["gradients"] | "to-t" | "to-tr" | "to-r" | "to-br" | "to-b" | "to-bl" | "to-l" | "to-tl";
98
+ textGradient: Tokens["gradients"] | "to-t" | "to-tr" | "to-r" | "to-br" | "to-b" | "to-bl" | "to-l" | "to-tl";
99
+ gradientFrom: Tokens["colors"];
100
+ gradientTo: Tokens["colors"];
101
+ gradientVia: Tokens["colors"];
102
+ borderRadius: Tokens["radii"];
103
+ borderTopLeftRadius: Tokens["radii"];
104
+ borderTopRightRadius: Tokens["radii"];
105
+ borderBottomRightRadius: Tokens["radii"];
106
+ borderBottomLeftRadius: Tokens["radii"];
107
+ borderTopRadius: Tokens["radii"] | CssProperties["borderRadius"];
108
+ borderRightRadius: Tokens["radii"] | CssProperties["borderRadius"];
109
+ borderBottomRadius: Tokens["radii"] | CssProperties["borderRadius"];
110
+ borderLeftRadius: Tokens["radii"] | CssProperties["borderRadius"];
111
+ borderStartStartRadius: Tokens["radii"];
112
+ borderStartEndRadius: Tokens["radii"];
113
+ borderStartRadius: Tokens["radii"] | CssProperties["borderRadius"];
114
+ borderEndStartRadius: Tokens["radii"];
115
+ borderEndEndRadius: Tokens["radii"];
116
+ borderEndRadius: Tokens["radii"] | CssProperties["borderRadius"];
117
+ border: Tokens["borders"];
118
+ borderColor: Tokens["colors"];
119
+ borderInline: Tokens["borders"];
120
+ borderInlineWidth: Tokens["borderWidths"];
121
+ borderInlineColor: Tokens["colors"];
122
+ borderBlock: Tokens["borders"];
123
+ borderBlockWidth: Tokens["borderWidths"];
124
+ borderBlockColor: Tokens["colors"];
125
+ borderLeft: Tokens["borders"];
126
+ borderLeftColor: Tokens["colors"];
127
+ borderInlineStart: Tokens["borders"];
128
+ borderInlineStartWidth: Tokens["borderWidths"];
129
+ borderInlineStartColor: Tokens["colors"];
130
+ borderRight: Tokens["borders"];
131
+ borderRightColor: Tokens["colors"];
132
+ borderInlineEnd: Tokens["borders"];
133
+ borderInlineEndWidth: Tokens["borderWidths"];
134
+ borderInlineEndColor: Tokens["colors"];
135
+ borderTop: Tokens["borders"];
136
+ borderTopColor: Tokens["colors"];
137
+ borderBottom: Tokens["borders"];
138
+ borderBottomColor: Tokens["colors"];
139
+ borderBlockEnd: Tokens["borders"];
140
+ borderBlockEndColor: Tokens["colors"];
141
+ borderBlockStart: Tokens["borders"];
142
+ borderBlockStartColor: Tokens["colors"];
143
+ opacity: Tokens["opacity"];
144
+ boxShadow: Tokens["shadows"];
145
+ boxShadowColor: Tokens["colors"];
146
+ filter: "auto";
147
+ dropShadow: Tokens["dropShadows"];
148
+ blur: Tokens["blurs"];
149
+ backdropFilter: "auto";
150
+ backdropBlur: "none" | "sm" | "base" | "md" | "lg" | "xl" | "2xl" | "3xl" | CssProperties["backdropFilter"];
151
+ borderSpacing: Tokens["spacing"];
152
+ borderSpacingX: Tokens["spacing"];
153
+ borderSpacingY: Tokens["spacing"];
154
+ transitionTimingFunction: Tokens["easings"];
155
+ transitionDelay: Tokens["durations"];
156
+ transitionDuration: Tokens["durations"];
157
+ transition: "all" | "common" | "background" | "colors" | "opacity" | "shadow" | "transform";
158
+ animation: Tokens["animations"];
159
+ animationName: Tokens["animationName"];
160
+ animationDelay: Tokens["durations"];
161
+ scale: "auto" | CssProperties["scale"];
162
+ translate: Tokens["spacing"] | CssProperties["translate"];
163
+ translateX: Tokens["spacing"];
164
+ translateY: Tokens["spacing"];
165
+ accentColor: Tokens["colors"];
166
+ caretColor: Tokens["colors"];
167
+ scrollbar: "visible" | "hidden";
168
+ scrollMargin: Tokens["spacing"];
169
+ scrollMarginX: Tokens["spacing"] | CssProperties["scrollMarginInline"];
170
+ scrollMarginY: Tokens["spacing"] | CssProperties["scrollMarginBlock"];
171
+ scrollMarginLeft: Tokens["spacing"];
172
+ scrollMarginRight: Tokens["spacing"];
173
+ scrollMarginTop: Tokens["spacing"];
174
+ scrollMarginBottom: Tokens["spacing"];
175
+ scrollMarginBlock: Tokens["spacing"];
176
+ scrollMarginBlockEnd: Tokens["spacing"];
177
+ scrollMarginBlockStart: Tokens["spacing"];
178
+ scrollMarginInline: Tokens["spacing"];
179
+ scrollMarginInlineEnd: Tokens["spacing"];
180
+ scrollMarginInlineStart: Tokens["spacing"];
181
+ scrollPadding: Tokens["spacing"];
182
+ scrollPaddingBlock: Tokens["spacing"];
183
+ scrollPaddingBlockStart: Tokens["spacing"];
184
+ scrollPaddingBlockEnd: Tokens["spacing"];
185
+ scrollPaddingInline: Tokens["spacing"];
186
+ scrollPaddingInlineEnd: Tokens["spacing"];
187
+ scrollPaddingInlineStart: Tokens["spacing"];
188
+ scrollPaddingX: Tokens["spacing"] | CssProperties["scrollPaddingInline"];
189
+ scrollPaddingY: Tokens["spacing"] | CssProperties["scrollPaddingBlock"];
190
+ scrollPaddingLeft: Tokens["spacing"];
191
+ scrollPaddingRight: Tokens["spacing"];
192
+ scrollPaddingTop: Tokens["spacing"];
193
+ scrollPaddingBottom: Tokens["spacing"];
194
+ scrollSnapType: "none" | "x" | "y" | "both";
195
+ scrollSnapStrictness: "mandatory" | "proximity";
196
+ scrollSnapMargin: Tokens["spacing"];
197
+ scrollSnapMarginTop: Tokens["spacing"];
198
+ scrollSnapMarginBottom: Tokens["spacing"];
199
+ scrollSnapMarginLeft: Tokens["spacing"];
200
+ scrollSnapMarginRight: Tokens["spacing"];
201
+ fill: Tokens["colors"];
202
+ stroke: Tokens["colors"];
203
+ srOnly: boolean;
204
+ debug: boolean;
205
+ animateIn: boolean;
206
+ animateOut: boolean;
207
+ fadeIn: Tokens["opacity"];
208
+ fadeOut: Tokens["opacity"];
209
+ slideInFromTop: Tokens["spacing"];
210
+ slideInFromBottom: Tokens["spacing"];
211
+ slideInFromLeft: Tokens["spacing"];
212
+ slideInFromRight: Tokens["spacing"];
213
+ slideOutToTop: Tokens["spacing"];
214
+ slideOutToBottom: Tokens["spacing"];
215
+ slideOutToLeft: Tokens["spacing"];
216
+ slideOutToRight: Tokens["spacing"];
217
+ backgroundAlpha: string;
218
+ gradientFromAlpha: string;
219
+ gradientToAlpha: string;
220
+ borderAlpha: CssProperties["borderColor"];
221
+ container: boolean;
222
+ focusRingWidth: "0" | "1" | "2" | "4" | "8" | "base";
223
+ focusRingColor: Tokens["colors"];
224
+ focusRingOffsetWidth: "0" | "1" | "2" | "4" | "8";
225
+ focusRingOffsetColor: Tokens["colors"];
226
+ focusRingInset: boolean;
227
+ spaceY: Tokens["spacing"];
228
+ spaceX: Tokens["spacing"];
229
+ textAlpha: CssProperties["color"];
230
+ colorPalette: "rose" | "pink" | "fuchsia" | "purple" | "violet" | "indigo" | "blue" | "sky" | "cyan" | "teal" | "emerald" | "green" | "lime" | "yellow" | "amber" | "orange" | "red" | "neutral" | "stone" | "zinc" | "gray" | "slate" | "hover" | "hover.light" | "hover.dark" | "light" | "dark" | "text" | "decoration" | "grayscale" | "muted" | "card" | "popover" | "primary" | "secondary" | "accent" | "destructive";
231
+ textStyle: "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | "6xl" | "7xl" | "8xl" | "9xl" | "h1" | "h2" | "h3" | "h4" | "p" | "lead" | "large" | "small";
232
+ layerStyle: string;
233
+ }
234
+
235
+
236
+
237
+ type CssValue<T> = T extends keyof CssProperties ? CssProperties[T] : never
238
+
239
+ type Shorthand<T> = T extends keyof PropertyValueTypes ? PropertyValueTypes[T] | CssValue<T> : CssValue<T>
240
+
241
+ export interface PropertyTypes extends PropertyValueTypes {
242
+
243
+ pos: Shorthand<"position">;
244
+ insetEnd: Shorthand<"insetInlineEnd">;
245
+ end: Shorthand<"insetInlineEnd">;
246
+ insetStart: Shorthand<"insetInlineStart">;
247
+ start: Shorthand<"insetInlineStart">;
248
+ flexDir: Shorthand<"flexDirection">;
249
+ p: Shorthand<"padding">;
250
+ pl: Shorthand<"paddingLeft">;
251
+ pr: Shorthand<"paddingRight">;
252
+ pt: Shorthand<"paddingTop">;
253
+ pb: Shorthand<"paddingBottom">;
254
+ py: Shorthand<"paddingBlock">;
255
+ paddingY: Shorthand<"paddingBlock">;
256
+ paddingX: Shorthand<"paddingInline">;
257
+ px: Shorthand<"paddingInline">;
258
+ pe: Shorthand<"paddingInlineEnd">;
259
+ paddingEnd: Shorthand<"paddingInlineEnd">;
260
+ ps: Shorthand<"paddingInlineStart">;
261
+ paddingStart: Shorthand<"paddingInlineStart">;
262
+ ml: Shorthand<"marginLeft">;
263
+ mr: Shorthand<"marginRight">;
264
+ mt: Shorthand<"marginTop">;
265
+ mb: Shorthand<"marginBottom">;
266
+ m: Shorthand<"margin">;
267
+ my: Shorthand<"marginBlock">;
268
+ marginY: Shorthand<"marginBlock">;
269
+ mx: Shorthand<"marginInline">;
270
+ marginX: Shorthand<"marginInline">;
271
+ me: Shorthand<"marginInlineEnd">;
272
+ marginEnd: Shorthand<"marginInlineEnd">;
273
+ ms: Shorthand<"marginInlineStart">;
274
+ marginStart: Shorthand<"marginInlineStart">;
275
+ ringWidth: Shorthand<"outlineWidth">;
276
+ ringColor: Shorthand<"outlineColor">;
277
+ ring: Shorthand<"outline">;
278
+ ringOffset: Shorthand<"outlineOffset">;
279
+ w: Shorthand<"width">;
280
+ minW: Shorthand<"minWidth">;
281
+ maxW: Shorthand<"maxWidth">;
282
+ h: Shorthand<"height">;
283
+ minH: Shorthand<"minHeight">;
284
+ maxH: Shorthand<"maxHeight">;
285
+ tracking: Shorthand<"letterSpacing">;
286
+ leading: Shorthand<"lineHeight">;
287
+ bgPosition: Shorthand<"backgroundPosition">;
288
+ bgPositionX: Shorthand<"backgroundPositionX">;
289
+ bgPositionY: Shorthand<"backgroundPositionY">;
290
+ bgAttachment: Shorthand<"backgroundAttachment">;
291
+ bgClip: Shorthand<"backgroundClip">;
292
+ bg: Shorthand<"background">;
293
+ bgColor: Shorthand<"backgroundColor">;
294
+ bgOrigin: Shorthand<"backgroundOrigin">;
295
+ bgImage: Shorthand<"backgroundImage">;
296
+ bgRepeat: Shorthand<"backgroundRepeat">;
297
+ bgBlendMode: Shorthand<"backgroundBlendMode">;
298
+ bgSize: Shorthand<"backgroundSize">;
299
+ bgGradient: Shorthand<"backgroundGradient">;
300
+ rounded: Shorthand<"borderRadius">;
301
+ roundedTopLeft: Shorthand<"borderTopLeftRadius">;
302
+ roundedTopRight: Shorthand<"borderTopRightRadius">;
303
+ roundedBottomRight: Shorthand<"borderBottomRightRadius">;
304
+ roundedBottomLeft: Shorthand<"borderBottomLeftRadius">;
305
+ roundedTop: Shorthand<"borderTopRadius">;
306
+ roundedRight: Shorthand<"borderRightRadius">;
307
+ roundedBottom: Shorthand<"borderBottomRadius">;
308
+ roundedLeft: Shorthand<"borderLeftRadius">;
309
+ roundedStartStart: Shorthand<"borderStartStartRadius">;
310
+ roundedStartEnd: Shorthand<"borderStartEndRadius">;
311
+ roundedStart: Shorthand<"borderStartRadius">;
312
+ roundedEndStart: Shorthand<"borderEndStartRadius">;
313
+ roundedEndEnd: Shorthand<"borderEndEndRadius">;
314
+ roundedEnd: Shorthand<"borderEndRadius">;
315
+ borderX: Shorthand<"borderInline">;
316
+ borderXWidth: Shorthand<"borderInlineWidth">;
317
+ borderXColor: Shorthand<"borderInlineColor">;
318
+ borderY: Shorthand<"borderBlock">;
319
+ borderYWidth: Shorthand<"borderBlockWidth">;
320
+ borderYColor: Shorthand<"borderBlockColor">;
321
+ borderStart: Shorthand<"borderInlineStart">;
322
+ borderStartWidth: Shorthand<"borderInlineStartWidth">;
323
+ borderStartColor: Shorthand<"borderInlineStartColor">;
324
+ borderEnd: Shorthand<"borderInlineEnd">;
325
+ borderEndWidth: Shorthand<"borderInlineEndWidth">;
326
+ borderEndColor: Shorthand<"borderInlineEndColor">;
327
+ shadow: Shorthand<"boxShadow">;
328
+ shadowColor: Shorthand<"boxShadowColor">;
329
+ x: Shorthand<"translateX">;
330
+ y: Shorthand<"translateY">;
331
+ bga: Shorthand<"backgroundAlpha">;
332
+ bca: Shorthand<"borderAlpha">;
333
+ ca: Shorthand<"textAlpha">;
334
+ }
335
+
336
+ export type PropertyValue<T extends string> = T extends keyof PropertyTypes
337
+ ? ConditionalValue<PropertyTypes[T] | CssValue<T> | (string & {})>
338
+ : T extends keyof CssProperties
339
+ ? ConditionalValue<CssProperties[T] | (string & {})>
340
+ : ConditionalValue<string | number>
@@ -0,0 +1,148 @@
1
+ /* eslint-disable */
2
+ import type { SystemStyleObject, DistributiveOmit } from './system-types.d.mts';
3
+
4
+ type Pretty<T> = { [K in keyof T]: T[K] } & {}
5
+
6
+ type StringToBoolean<T> = T extends 'true' | 'false' ? boolean : T
7
+
8
+ export type RecipeVariantRecord = Record<any, Record<any, SystemStyleObject>>
9
+
10
+ export type RecipeSelection<T extends RecipeVariantRecord> = keyof any extends keyof T
11
+ ? {}
12
+ : {
13
+ [K in keyof T]?: StringToBoolean<keyof T[K]>
14
+ }
15
+
16
+ export type RecipeVariantFn<T extends RecipeVariantRecord> = (props?: RecipeSelection<T>) => string
17
+
18
+ export type RecipeVariantProps<
19
+ T extends RecipeVariantFn<RecipeVariantRecord> | SlotRecipeVariantFn<string, SlotRecipeVariantRecord<string>>,
20
+ > = Pretty<Parameters<T>[0]>
21
+
22
+ type RecipeVariantMap<T extends RecipeVariantRecord> = {
23
+ [K in keyof T]: Array<keyof T[K]>
24
+ }
25
+
26
+ /* -----------------------------------------------------------------------------
27
+ * Recipe / Standard
28
+ * -----------------------------------------------------------------------------*/
29
+
30
+ export interface RecipeRuntimeFn<T extends RecipeVariantRecord> extends RecipeVariantFn<T> {
31
+ __type: RecipeSelection<T>
32
+ variantKeys: (keyof T)[]
33
+ variantMap: RecipeVariantMap<T>
34
+ raw: (props?: RecipeSelection<T>) => SystemStyleObject
35
+ config: RecipeConfig<T>
36
+ splitVariantProps<Props extends RecipeSelection<T>>(
37
+ props: Props,
38
+ ): [RecipeSelection<T>, Pretty<DistributiveOmit<Props, keyof T>>]
39
+ }
40
+
41
+ type OneOrMore<T> = T | Array<T>
42
+
43
+ export type RecipeCompoundSelection<T> = {
44
+ [K in keyof T]?: OneOrMore<StringToBoolean<keyof T[K]>>
45
+ }
46
+
47
+ export type RecipeCompoundVariant<T> = T & {
48
+ css: SystemStyleObject
49
+ }
50
+
51
+ export interface RecipeDefinition<T extends RecipeVariantRecord> {
52
+ /**
53
+ * The base styles of the recipe.
54
+ */
55
+ base?: SystemStyleObject
56
+ /**
57
+ * The multi-variant styles of the recipe.
58
+ */
59
+ variants?: T
60
+ /**
61
+ * The default variants of the recipe.
62
+ */
63
+ defaultVariants?: RecipeSelection<T>
64
+ /**
65
+ * The styles to apply when a combination of variants is selected.
66
+ */
67
+ compoundVariants?: Pretty<RecipeCompoundVariant<RecipeCompoundSelection<T>>>[]
68
+ }
69
+
70
+ export type RecipeCreatorFn = <T extends RecipeVariantRecord>(config: RecipeDefinition<T>) => RecipeRuntimeFn<T>
71
+
72
+ interface RecipeConfigMeta {
73
+ /**
74
+ * The name of the recipe.
75
+ */
76
+ className: string
77
+ /**
78
+ * The description of the recipe. This will be used in the JSDoc comment.
79
+ */
80
+ description?: string
81
+ /**
82
+ * The jsx elements to track for this recipe. Can be string or Regexp.
83
+ *
84
+ * @default capitalize(recipe.name)
85
+ * @example ['Button', 'Link', /Button$/]
86
+ */
87
+ jsx?: Array<string | RegExp>
88
+ }
89
+
90
+ export interface RecipeConfig<T extends RecipeVariantRecord = RecipeVariantRecord>
91
+ extends RecipeDefinition<T>,
92
+ RecipeConfigMeta {}
93
+
94
+ /* -----------------------------------------------------------------------------
95
+ * Recipe / Slot
96
+ * -----------------------------------------------------------------------------*/
97
+
98
+ type SlotRecord<S extends string, T> = Partial<Record<S, T>>
99
+
100
+ export type SlotRecipeVariantRecord<S extends string> = Record<any, Record<any, SlotRecord<S, SystemStyleObject>>>
101
+
102
+ export type SlotRecipeVariantFn<S extends string, T extends RecipeVariantRecord> = (
103
+ props?: RecipeSelection<T>,
104
+ ) => SlotRecord<S, string>
105
+
106
+ export interface SlotRecipeRuntimeFn<S extends string, T extends SlotRecipeVariantRecord<S>>
107
+ extends SlotRecipeVariantFn<S, T> {
108
+ raw: (props?: RecipeSelection<T>) => Record<S, SystemStyleObject>
109
+ variantKeys: (keyof T)[]
110
+ variantMap: RecipeVariantMap<T>
111
+ splitVariantProps<Props extends RecipeSelection<T>>(props: Props): [RecipeSelection<T>, Pretty<Omit<Props, keyof T>>]
112
+ }
113
+
114
+ export type SlotRecipeCompoundVariant<S extends string, T> = T & {
115
+ css: SlotRecord<S, SystemStyleObject>
116
+ }
117
+
118
+ export interface SlotRecipeDefinition<S extends string, T extends SlotRecipeVariantRecord<S>> {
119
+ /**
120
+ * The parts/slots of the recipe.
121
+ */
122
+ slots: S[] | Readonly<S[]>
123
+ /**
124
+ * The base styles of the recipe.
125
+ */
126
+ base?: SlotRecord<S, SystemStyleObject>
127
+ /**
128
+ * The multi-variant styles of the recipe.
129
+ */
130
+ variants?: T
131
+ /**
132
+ * The default variants of the recipe.
133
+ */
134
+ defaultVariants?: RecipeSelection<T>
135
+ /**
136
+ * The styles to apply when a combination of variants is selected.
137
+ */
138
+ compoundVariants?: Pretty<SlotRecipeCompoundVariant<S, RecipeCompoundSelection<T>>>[]
139
+ }
140
+
141
+ export type SlotRecipeCreatorFn = <S extends string, T extends SlotRecipeVariantRecord<S>>(
142
+ config: SlotRecipeDefinition<S, T>,
143
+ ) => SlotRecipeRuntimeFn<S, T>
144
+
145
+ export type SlotRecipeConfig<
146
+ S extends string = string,
147
+ T extends SlotRecipeVariantRecord<S> = SlotRecipeVariantRecord<S>,
148
+ > = SlotRecipeDefinition<S, T> & RecipeConfigMeta
@@ -0,0 +1,59 @@
1
+ /* eslint-disable */
2
+ import type { Pseudos } from './csstype.d.mts';
3
+
4
+ type AriaAttributes =
5
+ | '[aria-disabled]'
6
+ | '[aria-hidden]'
7
+ | '[aria-invalid]'
8
+ | '[aria-readonly]'
9
+ | '[aria-required]'
10
+ | '[aria-selected]'
11
+ | '[aria-checked]'
12
+ | '[aria-expanded]'
13
+ | '[aria-pressed]'
14
+ | `[aria-current=${'page' | 'step' | 'location' | 'date' | 'time'}]`
15
+ | '[aria-invalid]'
16
+ | `[aria-sort=${'ascending' | 'descending'}]`
17
+
18
+ type DataAttributes =
19
+ | '[data-selected]'
20
+ | '[data-highlighted]'
21
+ | '[data-hover]'
22
+ | '[data-active]'
23
+ | '[data-checked]'
24
+ | '[data-disabled]'
25
+ | '[data-readonly]'
26
+ | '[data-focus]'
27
+ | '[data-focus-visible]'
28
+ | '[data-focus-visible-added]'
29
+ | '[data-invalid]'
30
+ | '[data-pressed]'
31
+ | '[data-expanded]'
32
+ | '[data-grabbed]'
33
+ | '[data-dragged]'
34
+ | '[data-orientation=horizontal]'
35
+ | '[data-orientation=vertical]'
36
+ | '[data-in-range]'
37
+ | '[data-out-of-range]'
38
+ | '[data-placeholder-shown]'
39
+ | `[data-part=${string}]`
40
+ | `[data-attr=${string}]`
41
+ | `[data-placement=${string}]`
42
+ | `[data-theme=${string}]`
43
+ | `[data-size=${string}]`
44
+ | `[data-state=${string}]`
45
+ | '[data-empty]'
46
+ | '[data-loading]'
47
+ | '[data-loaded]'
48
+ | '[data-enter]'
49
+ | '[data-entering]'
50
+ | '[data-exited]'
51
+ | '[data-exiting]'
52
+
53
+ type AttributeSelector = `&${Pseudos | DataAttributes | AriaAttributes}`
54
+ type ParentSelector = `${DataAttributes | AriaAttributes} &`
55
+
56
+ type AtRuleType = 'media' | 'layer' | 'container' | 'supports' | 'page'
57
+
58
+ export type AnySelector = `${string}&` | `&${string}` | `@${AtRuleType}${string}`
59
+ export type Selectors = AttributeSelector | ParentSelector