@techfides/ui-library-design 0.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 (231) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +55 -0
  3. package/assets/brands/digital-boost-group.svg +1 -0
  4. package/assets/brands/rtsg.svg +1 -0
  5. package/assets/brands/tech-it-out.svg +1 -0
  6. package/assets/brands/techfides.svg +1 -0
  7. package/css/index.css +8 -0
  8. package/css/theme.css +1640 -0
  9. package/dist/brands.d.ts +39 -0
  10. package/dist/brands.js +41 -0
  11. package/dist/brands.js.map +1 -0
  12. package/dist/charts/animation.js +14 -0
  13. package/dist/charts/animation.js.map +1 -0
  14. package/dist/charts/bars.d.ts +22 -0
  15. package/dist/charts/bars.js +61 -0
  16. package/dist/charts/bars.js.map +1 -0
  17. package/dist/charts/groupedBars.d.ts +20 -0
  18. package/dist/charts/groupedBars.js +82 -0
  19. package/dist/charts/groupedBars.js.map +1 -0
  20. package/dist/charts/paint.js +19 -0
  21. package/dist/charts/paint.js.map +1 -0
  22. package/dist/charts/spark.d.ts +17 -0
  23. package/dist/charts/spark.js +159 -0
  24. package/dist/charts/spark.js.map +1 -0
  25. package/dist/charts/tooltip.js +41 -0
  26. package/dist/charts/tooltip.js.map +1 -0
  27. package/dist/cn.d.ts +6 -0
  28. package/dist/cn.js +178 -0
  29. package/dist/cn.js.map +1 -0
  30. package/dist/control.d.ts +15 -0
  31. package/dist/control.js +13 -0
  32. package/dist/control.js.map +1 -0
  33. package/dist/index.d.ts +65 -0
  34. package/dist/index.js +65 -0
  35. package/dist/mark.d.ts +7 -0
  36. package/dist/mark.js +11 -0
  37. package/dist/mark.js.map +1 -0
  38. package/dist/parts/control.js +55 -0
  39. package/dist/parts/control.js.map +1 -0
  40. package/dist/parts/eyebrow.js +8 -0
  41. package/dist/parts/eyebrow.js.map +1 -0
  42. package/dist/parts/mark.js +52 -0
  43. package/dist/parts/mark.js.map +1 -0
  44. package/dist/parts/reveal.js +35 -0
  45. package/dist/parts/reveal.js.map +1 -0
  46. package/dist/parts/rouse.js +25 -0
  47. package/dist/parts/rouse.js.map +1 -0
  48. package/dist/parts/rule.js +12 -0
  49. package/dist/parts/rule.js.map +1 -0
  50. package/dist/parts/scroll.js +10 -0
  51. package/dist/parts/scroll.js.map +1 -0
  52. package/dist/parts/shell.js +23 -0
  53. package/dist/parts/shell.js.map +1 -0
  54. package/dist/parts/surface.js +15 -0
  55. package/dist/parts/surface.js.map +1 -0
  56. package/dist/parts/tone.js +13 -0
  57. package/dist/parts/tone.js.map +1 -0
  58. package/dist/parts/travel.js +11 -0
  59. package/dist/parts/travel.js.map +1 -0
  60. package/dist/recipes/accordion.d.ts +13 -0
  61. package/dist/recipes/accordion.js +42 -0
  62. package/dist/recipes/accordion.js.map +1 -0
  63. package/dist/recipes/alert.d.ts +16 -0
  64. package/dist/recipes/alert.js +21 -0
  65. package/dist/recipes/alert.js.map +1 -0
  66. package/dist/recipes/band.d.ts +8 -0
  67. package/dist/recipes/band.js +22 -0
  68. package/dist/recipes/band.js.map +1 -0
  69. package/dist/recipes/bars.d.ts +17 -0
  70. package/dist/recipes/bars.js +27 -0
  71. package/dist/recipes/bars.js.map +1 -0
  72. package/dist/recipes/brandMark.d.ts +5 -0
  73. package/dist/recipes/brandMark.js +7 -0
  74. package/dist/recipes/brandMark.js.map +1 -0
  75. package/dist/recipes/button.d.ts +23 -0
  76. package/dist/recipes/button.js +229 -0
  77. package/dist/recipes/button.js.map +1 -0
  78. package/dist/recipes/cardHeader.d.ts +10 -0
  79. package/dist/recipes/cardHeader.js +11 -0
  80. package/dist/recipes/cardHeader.js.map +1 -0
  81. package/dist/recipes/checkbox.d.ts +26 -0
  82. package/dist/recipes/checkbox.js +103 -0
  83. package/dist/recipes/checkbox.js.map +1 -0
  84. package/dist/recipes/chip.d.ts +26 -0
  85. package/dist/recipes/chip.js +123 -0
  86. package/dist/recipes/chip.js.map +1 -0
  87. package/dist/recipes/codeEditor.d.ts +74 -0
  88. package/dist/recipes/codeEditor.js +71 -0
  89. package/dist/recipes/codeEditor.js.map +1 -0
  90. package/dist/recipes/datePicker.d.ts +39 -0
  91. package/dist/recipes/datePicker.js +166 -0
  92. package/dist/recipes/datePicker.js.map +1 -0
  93. package/dist/recipes/dialog.d.ts +37 -0
  94. package/dist/recipes/dialog.js +116 -0
  95. package/dist/recipes/dialog.js.map +1 -0
  96. package/dist/recipes/feature.d.ts +15 -0
  97. package/dist/recipes/feature.js +48 -0
  98. package/dist/recipes/feature.js.map +1 -0
  99. package/dist/recipes/field.d.ts +26 -0
  100. package/dist/recipes/field.js +129 -0
  101. package/dist/recipes/field.js.map +1 -0
  102. package/dist/recipes/findings.d.ts +11 -0
  103. package/dist/recipes/findings.js +16 -0
  104. package/dist/recipes/findings.js.map +1 -0
  105. package/dist/recipes/heading.d.ts +17 -0
  106. package/dist/recipes/heading.js +37 -0
  107. package/dist/recipes/heading.js.map +1 -0
  108. package/dist/recipes/heartbeat.d.ts +23 -0
  109. package/dist/recipes/heartbeat.js +43 -0
  110. package/dist/recipes/heartbeat.js.map +1 -0
  111. package/dist/recipes/input.d.ts +17 -0
  112. package/dist/recipes/input.js +90 -0
  113. package/dist/recipes/input.js.map +1 -0
  114. package/dist/recipes/listItem.d.ts +6 -0
  115. package/dist/recipes/listItem.js +8 -0
  116. package/dist/recipes/listItem.js.map +1 -0
  117. package/dist/recipes/listbox.d.ts +12 -0
  118. package/dist/recipes/listbox.js +29 -0
  119. package/dist/recipes/listbox.js.map +1 -0
  120. package/dist/recipes/marquee.d.ts +19 -0
  121. package/dist/recipes/marquee.js +36 -0
  122. package/dist/recipes/marquee.js.map +1 -0
  123. package/dist/recipes/menu.d.ts +26 -0
  124. package/dist/recipes/menu.js +86 -0
  125. package/dist/recipes/menu.js.map +1 -0
  126. package/dist/recipes/metaRow.d.ts +14 -0
  127. package/dist/recipes/metaRow.js +19 -0
  128. package/dist/recipes/metaRow.js.map +1 -0
  129. package/dist/recipes/meter.d.ts +23 -0
  130. package/dist/recipes/meter.js +39 -0
  131. package/dist/recipes/meter.js.map +1 -0
  132. package/dist/recipes/motion.d.ts +6 -0
  133. package/dist/recipes/motion.js +34 -0
  134. package/dist/recipes/motion.js.map +1 -0
  135. package/dist/recipes/nebula.d.ts +9 -0
  136. package/dist/recipes/nebula.js +15 -0
  137. package/dist/recipes/nebula.js.map +1 -0
  138. package/dist/recipes/numberRange.d.ts +15 -0
  139. package/dist/recipes/numberRange.js +109 -0
  140. package/dist/recipes/numberRange.js.map +1 -0
  141. package/dist/recipes/paper.d.ts +22 -0
  142. package/dist/recipes/paper.js +42 -0
  143. package/dist/recipes/paper.js.map +1 -0
  144. package/dist/recipes/progressBar.d.ts +7 -0
  145. package/dist/recipes/progressBar.js +11 -0
  146. package/dist/recipes/progressBar.js.map +1 -0
  147. package/dist/recipes/queue.d.ts +16 -0
  148. package/dist/recipes/queue.js +27 -0
  149. package/dist/recipes/queue.js.map +1 -0
  150. package/dist/recipes/radioGroup.d.ts +27 -0
  151. package/dist/recipes/radioGroup.js +68 -0
  152. package/dist/recipes/radioGroup.js.map +1 -0
  153. package/dist/recipes/scopeSwitcher.d.ts +26 -0
  154. package/dist/recipes/scopeSwitcher.js +80 -0
  155. package/dist/recipes/scopeSwitcher.js.map +1 -0
  156. package/dist/recipes/scrollArea.d.ts +19 -0
  157. package/dist/recipes/scrollArea.js +43 -0
  158. package/dist/recipes/scrollArea.js.map +1 -0
  159. package/dist/recipes/searchPalette.d.ts +19 -0
  160. package/dist/recipes/searchPalette.js +63 -0
  161. package/dist/recipes/searchPalette.js.map +1 -0
  162. package/dist/recipes/sectionHeader.d.ts +9 -0
  163. package/dist/recipes/sectionHeader.js +10 -0
  164. package/dist/recipes/sectionHeader.js.map +1 -0
  165. package/dist/recipes/segmentedControl.d.ts +9 -0
  166. package/dist/recipes/segmentedControl.js +29 -0
  167. package/dist/recipes/segmentedControl.js.map +1 -0
  168. package/dist/recipes/select.d.ts +9 -0
  169. package/dist/recipes/select.js +21 -0
  170. package/dist/recipes/select.js.map +1 -0
  171. package/dist/recipes/separator.d.ts +14 -0
  172. package/dist/recipes/separator.js +59 -0
  173. package/dist/recipes/separator.js.map +1 -0
  174. package/dist/recipes/sidebar.d.ts +40 -0
  175. package/dist/recipes/sidebar.js +128 -0
  176. package/dist/recipes/sidebar.js.map +1 -0
  177. package/dist/recipes/sky.d.ts +20 -0
  178. package/dist/recipes/sky.js +127 -0
  179. package/dist/recipes/sky.js.map +1 -0
  180. package/dist/recipes/slider.d.ts +20 -0
  181. package/dist/recipes/slider.js +62 -0
  182. package/dist/recipes/slider.js.map +1 -0
  183. package/dist/recipes/stat.d.ts +30 -0
  184. package/dist/recipes/stat.js +52 -0
  185. package/dist/recipes/stat.js.map +1 -0
  186. package/dist/recipes/switch.d.ts +20 -0
  187. package/dist/recipes/switch.js +60 -0
  188. package/dist/recipes/switch.js.map +1 -0
  189. package/dist/recipes/table.d.ts +74 -0
  190. package/dist/recipes/table.js +182 -0
  191. package/dist/recipes/table.js.map +1 -0
  192. package/dist/recipes/tableFilter.d.ts +14 -0
  193. package/dist/recipes/tableFilter.js +28 -0
  194. package/dist/recipes/tableFilter.js.map +1 -0
  195. package/dist/recipes/tablePaging.d.ts +15 -0
  196. package/dist/recipes/tablePaging.js +50 -0
  197. package/dist/recipes/tablePaging.js.map +1 -0
  198. package/dist/recipes/tail.d.ts +20 -0
  199. package/dist/recipes/tail.js +48 -0
  200. package/dist/recipes/tail.js.map +1 -0
  201. package/dist/recipes/text.d.ts +25 -0
  202. package/dist/recipes/text.js +94 -0
  203. package/dist/recipes/text.js.map +1 -0
  204. package/dist/recipes/textarea.d.ts +13 -0
  205. package/dist/recipes/textarea.js +48 -0
  206. package/dist/recipes/textarea.js.map +1 -0
  207. package/dist/recipes/tile.d.ts +18 -0
  208. package/dist/recipes/tile.js +85 -0
  209. package/dist/recipes/tile.js.map +1 -0
  210. package/dist/recipes/tooltip.d.ts +12 -0
  211. package/dist/recipes/tooltip.js +26 -0
  212. package/dist/recipes/tooltip.js.map +1 -0
  213. package/dist/recipes/topBar.d.ts +15 -0
  214. package/dist/recipes/topBar.js +35 -0
  215. package/dist/recipes/topBar.js.map +1 -0
  216. package/dist/recipes/trail.d.ts +27 -0
  217. package/dist/recipes/trail.js +66 -0
  218. package/dist/recipes/trail.js.map +1 -0
  219. package/dist/recipes/userMenu.d.ts +11 -0
  220. package/dist/recipes/userMenu.js +38 -0
  221. package/dist/recipes/userMenu.js.map +1 -0
  222. package/dist/tally.d.ts +17 -0
  223. package/dist/tally.js +75 -0
  224. package/dist/tally.js.map +1 -0
  225. package/dist/tone.d.ts +26 -0
  226. package/dist/tone.js +26 -0
  227. package/dist/tone.js.map +1 -0
  228. package/dist/words.d.ts +116 -0
  229. package/dist/words.js +93 -0
  230. package/dist/words.js.map +1 -0
  231. package/package.json +72 -0
@@ -0,0 +1,86 @@
1
+ import { controlInert, controlPress, hitArea } from "../parts/control.js";
2
+ import { overlayMotion } from "./motion.js";
3
+ import { eyebrowQuiet } from "../parts/eyebrow.js";
4
+ import { travelMarkBase } from "../parts/travel.js";
5
+ import { cva } from "class-variance-authority";
6
+ //#region src/recipes/menu.ts
7
+ const defaultMenuTone = "neutral";
8
+ const menuTones = ["neutral", "danger"];
9
+ const defaultMenuPlacement = "bottom-start";
10
+ const menuPlacements = [
11
+ "bottom-start",
12
+ "bottom-end",
13
+ "top-start",
14
+ "top-end",
15
+ "right-start",
16
+ "right-end",
17
+ "left-start",
18
+ "left-end"
19
+ ];
20
+ const ROOM_FOR_A_FINGER = hitArea("after:h-[calc(var(--spacing-tf-row)+var(--spacing))]");
21
+ const GROWS_FROM_ITS_TRIGGER = [
22
+ "data-[placement^=bottom]:origin-top",
23
+ "data-[placement^=top]:origin-bottom",
24
+ "data-[placement^=left]:origin-right",
25
+ "data-[placement^=right]:origin-left"
26
+ ].join(" ");
27
+ const MARK = {
28
+ chosen: "bg-tf-accent-tint",
29
+ danger: "bg-tf-danger-wash",
30
+ neutral: "bg-tf-panel-hi"
31
+ };
32
+ const CHOSEN = "data-[state=checked]:text-tf-accent-hi";
33
+ const menuSurfaceRecipe = cva([
34
+ "relative flex flex-col",
35
+ "tf-menu-width rounded-tf-card bg-tf-glass px-2 backdrop-blur-tf-glass",
36
+ "tf-edge-sweep font-tf-body text-tf-body-sm font-medium shadow-tf-float tf-edge-plain",
37
+ "z-tf-dropdown outline-hidden",
38
+ GROWS_FROM_ITS_TRIGGER,
39
+ ...overlayMotion
40
+ ]);
41
+ const menuListRecipe = cva([
42
+ "relative flex tf-scroll-thin min-h-0 flex-col gap-1 py-2 outline-hidden",
43
+ "max-h-[min(var(--available-height),var(--container-tf-list))] overflow-y-auto",
44
+ "font-tf-body text-tf-body-sm font-medium"
45
+ ]);
46
+ const menuMarkRecipe = cva([...travelMarkBase, "h-tf-row rounded-tf-inline"], {
47
+ defaultVariants: {
48
+ tone: defaultMenuTone,
49
+ within: "list"
50
+ },
51
+ variants: {
52
+ tone: MARK,
53
+ within: {
54
+ list: "inset-x-0",
55
+ surface: "inset-x-2"
56
+ }
57
+ }
58
+ });
59
+ const menuGroupRecipe = cva("flex flex-col gap-1");
60
+ const menuItemRecipe = cva([
61
+ "flex h-tf-row min-h-tf-row flex-none items-center gap-3",
62
+ "relative rounded-tf-inline px-3 text-left",
63
+ ROOM_FOR_A_FINGER,
64
+ CHOSEN,
65
+ "tf-icons [&_svg]:size-tf-icon-sm [&_svg]:shrink-0",
66
+ "tf-transition motion-reduce:transition-none",
67
+ "cursor-pointer select-none",
68
+ ...controlPress,
69
+ ...controlInert
70
+ ], {
71
+ defaultVariants: { tone: defaultMenuTone },
72
+ variants: { tone: {
73
+ danger: "text-tf-danger-hi",
74
+ neutral: "text-tf-fg"
75
+ } }
76
+ });
77
+ const menuLabelRecipe = cva(["flex-none px-3 pt-3 pb-0", `text-tf-caption-sm ${eyebrowQuiet}`]);
78
+ const menuTextRecipe = cva("min-w-0 flex-1 truncate");
79
+ const menuShortcutRecipe = cva("flex-none text-tf-caption-sm text-tf-muted tabular-nums");
80
+ const menuSeparatorRecipe = cva("my-2 flex-none border-0");
81
+ const menuArrowRecipe = cva(["[--arrow-size:0.5rem]", "[--arrow-background:var(--tf-glass-flat)]"]);
82
+ const menuArrowTipRecipe = cva("border-t border-l border-tf-line");
83
+ //#endregion
84
+ export { defaultMenuPlacement, defaultMenuTone, menuArrowRecipe, menuArrowTipRecipe, menuGroupRecipe, menuItemRecipe, menuLabelRecipe, menuListRecipe, menuMarkRecipe, menuPlacements, menuSeparatorRecipe, menuShortcutRecipe, menuSurfaceRecipe, menuTextRecipe, menuTones };
85
+
86
+ //# sourceMappingURL=menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu.js","names":[],"sources":["../../src/recipes/menu.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nimport { controlInert, controlPress, hitArea } from '#parts/control'\nimport { eyebrowQuiet } from '#parts/eyebrow'\nimport { travelMarkBase } from '#parts/travel'\n\nimport { overlayMotion } from './motion'\n\ntype MenuTone = 'neutral' | 'danger'\n\nconst defaultMenuTone = 'neutral' satisfies MenuTone\n\nconst menuTones = ['neutral', 'danger'] as const satisfies readonly MenuTone[]\n\ntype MenuPlacement =\n | 'bottom-start'\n | 'bottom-end'\n | 'top-start'\n | 'top-end'\n | 'right-start'\n | 'right-end'\n | 'left-start'\n | 'left-end'\n\nconst defaultMenuPlacement = 'bottom-start' satisfies MenuPlacement\n\nconst menuPlacements = [\n 'bottom-start',\n 'bottom-end',\n 'top-start',\n 'top-end',\n 'right-start',\n 'right-end',\n 'left-start',\n 'left-end',\n] as const satisfies readonly MenuPlacement[]\n\nconst ROOM_FOR_A_FINGER = hitArea('after:h-[calc(var(--spacing-tf-row)+var(--spacing))]')\n\nconst GROWS_FROM_ITS_TRIGGER = [\n 'data-[placement^=bottom]:origin-top',\n 'data-[placement^=top]:origin-bottom',\n 'data-[placement^=left]:origin-right',\n 'data-[placement^=right]:origin-left',\n].join(' ')\n\ntype MenuMark = MenuTone | 'chosen'\n\nconst MARK = {\n chosen: 'bg-tf-accent-tint',\n danger: 'bg-tf-danger-wash',\n neutral: 'bg-tf-panel-hi',\n} satisfies Record<MenuMark, string>\n\nconst CHOSEN = 'data-[state=checked]:text-tf-accent-hi'\n\nconst menuSurfaceRecipe = cva([\n 'relative flex flex-col',\n 'tf-menu-width rounded-tf-card bg-tf-glass px-2 backdrop-blur-tf-glass',\n 'tf-edge-sweep font-tf-body text-tf-body-sm font-medium shadow-tf-float tf-edge-plain',\n 'z-tf-dropdown outline-hidden',\n GROWS_FROM_ITS_TRIGGER,\n ...overlayMotion,\n])\n\nconst menuListRecipe = cva([\n 'relative flex tf-scroll-thin min-h-0 flex-col gap-1 py-2 outline-hidden',\n 'max-h-[min(var(--available-height),var(--container-tf-list))] overflow-y-auto',\n 'font-tf-body text-tf-body-sm font-medium',\n])\n\nconst menuMarkRecipe = cva([...travelMarkBase, 'h-tf-row rounded-tf-inline'], {\n defaultVariants: { tone: defaultMenuTone, within: 'list' },\n variants: {\n tone: MARK,\n within: { list: 'inset-x-0', surface: 'inset-x-2' },\n },\n})\n\nconst menuGroupRecipe = cva('flex flex-col gap-1')\n\nconst menuItemRecipe = cva(\n [\n 'flex h-tf-row min-h-tf-row flex-none items-center gap-3',\n 'relative rounded-tf-inline px-3 text-left',\n ROOM_FOR_A_FINGER,\n CHOSEN,\n 'tf-icons [&_svg]:size-tf-icon-sm [&_svg]:shrink-0',\n 'tf-transition motion-reduce:transition-none',\n 'cursor-pointer select-none',\n ...controlPress,\n ...controlInert,\n ],\n {\n defaultVariants: { tone: defaultMenuTone },\n variants: {\n tone: { danger: 'text-tf-danger-hi', neutral: 'text-tf-fg' } satisfies Record<\n MenuTone,\n string\n >,\n },\n },\n)\n\nconst menuLabelRecipe = cva(['flex-none px-3 pt-3 pb-0', `text-tf-caption-sm ${eyebrowQuiet}`])\n\nconst menuTextRecipe = cva('min-w-0 flex-1 truncate')\n\nconst menuShortcutRecipe = cva('flex-none text-tf-caption-sm text-tf-muted tabular-nums')\n\nconst menuSeparatorRecipe = cva('my-2 flex-none border-0')\n\nconst menuArrowRecipe = cva(['[--arrow-size:0.5rem]', '[--arrow-background:var(--tf-glass-flat)]'])\n\nconst menuArrowTipRecipe = cva('border-t border-l border-tf-line')\n\nexport {\n type MenuPlacement,\n type MenuTone,\n defaultMenuPlacement,\n defaultMenuTone,\n menuArrowRecipe,\n menuArrowTipRecipe,\n menuItemRecipe,\n menuLabelRecipe,\n menuGroupRecipe,\n menuListRecipe,\n menuMarkRecipe,\n menuPlacements,\n menuSeparatorRecipe,\n menuShortcutRecipe,\n menuSurfaceRecipe,\n menuTextRecipe,\n menuTones,\n}\n"],"mappings":";;;;;;AAUA,MAAM,kBAAkB;AAExB,MAAM,YAAY,CAAC,WAAW,QAAQ;AAYtC,MAAM,uBAAuB;AAE7B,MAAM,iBAAiB;CACrB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,MAAM,oBAAoB,QAAQ,sDAAsD;AAExF,MAAM,yBAAyB;CAC7B;CACA;CACA;CACA;AACF,CAAC,CAAC,KAAK,GAAG;AAIV,MAAM,OAAO;CACX,QAAQ;CACR,QAAQ;CACR,SAAS;AACX;AAEA,MAAM,SAAS;AAEf,MAAM,oBAAoB,IAAI;CAC5B;CACA;CACA;CACA;CACA;CACA,GAAG;AACL,CAAC;AAED,MAAM,iBAAiB,IAAI;CACzB;CACA;CACA;AACF,CAAC;AAED,MAAM,iBAAiB,IAAI,CAAC,GAAG,gBAAgB,4BAA4B,GAAG;CAC5E,iBAAiB;EAAE,MAAM;EAAiB,QAAQ;CAAO;CACzD,UAAU;EACR,MAAM;EACN,QAAQ;GAAE,MAAM;GAAa,SAAS;EAAY;CACpD;AACF,CAAC;AAED,MAAM,kBAAkB,IAAI,qBAAqB;AAEjD,MAAM,iBAAiB,IACrB;CACE;CACA;CACA;CACA;CACA;CACA;CACA;CACA,GAAG;CACH,GAAG;AACL,GACA;CACE,iBAAiB,EAAE,MAAM,gBAAgB;CACzC,UAAU,EACR,MAAM;EAAE,QAAQ;EAAqB,SAAS;CAAa,EAI7D;AACF,CACF;AAEA,MAAM,kBAAkB,IAAI,CAAC,4BAA4B,sBAAsB,cAAc,CAAC;AAE9F,MAAM,iBAAiB,IAAI,yBAAyB;AAEpD,MAAM,qBAAqB,IAAI,yDAAyD;AAExF,MAAM,sBAAsB,IAAI,yBAAyB;AAEzD,MAAM,kBAAkB,IAAI,CAAC,yBAAyB,2CAA2C,CAAC;AAElG,MAAM,qBAAqB,IAAI,kCAAkC"}
@@ -0,0 +1,14 @@
1
+ //#region src/recipes/metaRow.d.ts
2
+ type MetaRowLayout = 'justify' | 'inline';
3
+ type MetaRowEmphasis = 'normal' | 'strong';
4
+ declare const defaultMetaRowLayout = "justify";
5
+ declare const defaultMetaRowEmphasis = "normal";
6
+ declare const metaRowLayouts: readonly ["justify", "inline"];
7
+ declare const metaRowEmphases: readonly ["normal", "strong"];
8
+ declare const metaRowTones: readonly ["accent", "success", "warning", "info", "danger"];
9
+ declare const metaRowRecipe: (props?: ({
10
+ layout?: "inline" | "justify" | null | undefined;
11
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
12
+ //#endregion
13
+ export { type MetaRowEmphasis, type MetaRowLayout, defaultMetaRowEmphasis, defaultMetaRowLayout, metaRowEmphases, metaRowLayouts, metaRowRecipe, metaRowTones };
14
+ //# sourceMappingURL=metaRow.d.ts.map
@@ -0,0 +1,19 @@
1
+ import { tones } from "../parts/tone.js";
2
+ import { cva } from "class-variance-authority";
3
+ //#region src/recipes/metaRow.ts
4
+ const defaultMetaRowLayout = "justify";
5
+ const defaultMetaRowEmphasis = "normal";
6
+ const metaRowLayouts = ["justify", "inline"];
7
+ const metaRowEmphases = ["normal", "strong"];
8
+ const metaRowTones = tones;
9
+ const metaRowRecipe = cva("flex items-baseline gap-2 tf-icons", {
10
+ defaultVariants: { layout: defaultMetaRowLayout },
11
+ variants: { layout: {
12
+ inline: "",
13
+ justify: "justify-between gap-4"
14
+ } }
15
+ });
16
+ //#endregion
17
+ export { defaultMetaRowEmphasis, defaultMetaRowLayout, metaRowEmphases, metaRowLayouts, metaRowRecipe, metaRowTones };
18
+
19
+ //# sourceMappingURL=metaRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metaRow.js","names":[],"sources":["../../src/recipes/metaRow.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nimport { tones } from '#parts/tone'\n\ntype MetaRowLayout = 'justify' | 'inline'\n\ntype MetaRowEmphasis = 'normal' | 'strong'\n\nconst defaultMetaRowLayout = 'justify' satisfies MetaRowLayout\n\nconst defaultMetaRowEmphasis = 'normal' satisfies MetaRowEmphasis\n\nconst metaRowLayouts = ['justify', 'inline'] as const satisfies readonly MetaRowLayout[]\n\nconst metaRowEmphases = ['normal', 'strong'] as const satisfies readonly MetaRowEmphasis[]\n\nconst metaRowTones = tones\n\nconst metaRowRecipe = cva('flex items-baseline gap-2 tf-icons', {\n defaultVariants: { layout: defaultMetaRowLayout },\n variants: {\n layout: {\n inline: '',\n justify: 'justify-between gap-4',\n } satisfies Record<MetaRowLayout, string>,\n },\n})\n\nexport {\n type MetaRowEmphasis,\n type MetaRowLayout,\n defaultMetaRowEmphasis,\n defaultMetaRowLayout,\n metaRowEmphases,\n metaRowLayouts,\n metaRowRecipe,\n metaRowTones,\n}\n"],"mappings":";;;AAQA,MAAM,uBAAuB;AAE7B,MAAM,yBAAyB;AAE/B,MAAM,iBAAiB,CAAC,WAAW,QAAQ;AAE3C,MAAM,kBAAkB,CAAC,UAAU,QAAQ;AAE3C,MAAM,eAAe;AAErB,MAAM,gBAAgB,IAAI,sCAAsC;CAC9D,iBAAiB,EAAE,QAAQ,qBAAqB;CAChD,UAAU,EACR,QAAQ;EACN,QAAQ;EACR,SAAS;CACX,EACF;AACF,CAAC"}
@@ -0,0 +1,23 @@
1
+ //#region src/recipes/meter.d.ts
2
+ declare const meterVariants: readonly ["share", "split", "slots"];
3
+ type MeterVariant = (typeof meterVariants)[number];
4
+ declare const defaultMeterVariant = "share";
5
+ declare const meterRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
6
+ declare const meterHeadRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
7
+ declare const meterCaptionRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
8
+ declare const meterReadingRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
9
+ declare const meterTrackRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
10
+ declare const meterRangeRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
11
+ declare const meterPartsRecipe: (props?: ({
12
+ variant?: "share" | "split" | "slots" | null | undefined;
13
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
14
+ type MeterPartEdge = 'end' | 'inner' | 'only' | 'start';
15
+ declare const meterPartRecipe: (props?: ({
16
+ edge?: "inner" | "end" | "only" | "start" | null | undefined;
17
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
18
+ declare const meterLegendRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
19
+ declare const meterLegendItemRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
20
+ declare const meterLegendDotRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
21
+ //#endregion
22
+ export { type MeterPartEdge, type MeterVariant, defaultMeterVariant, meterCaptionRecipe, meterHeadRecipe, meterLegendDotRecipe, meterLegendItemRecipe, meterLegendRecipe, meterPartRecipe, meterPartsRecipe, meterRangeRecipe, meterReadingRecipe, meterRecipe, meterTrackRecipe, meterVariants };
23
+ //# sourceMappingURL=meter.d.ts.map
@@ -0,0 +1,39 @@
1
+ import { valueGlide } from "./motion.js";
2
+ import { cva } from "class-variance-authority";
3
+ //#region src/recipes/meter.ts
4
+ const meterVariants = [
5
+ "share",
6
+ "split",
7
+ "slots"
8
+ ];
9
+ const defaultMeterVariant = "share";
10
+ const meterRecipe = cva("flex w-full flex-col gap-2 font-tf-body text-tf-fg");
11
+ const meterHeadRecipe = cva("flex items-baseline justify-between gap-3");
12
+ const meterCaptionRecipe = cva("text-tf-caption-sm font-medium tracking-tf-eyebrow text-tf-muted uppercase");
13
+ const meterReadingRecipe = cva("text-tf-body-sm font-medium text-tf-fg tabular-nums");
14
+ const meterTrackRecipe = cva("block h-2.5 overflow-hidden rounded-tf-pill bg-tf-sunken");
15
+ const meterRangeRecipe = cva(["block h-full rounded-tf-pill bg-tf-blend", ...valueGlide]);
16
+ const meterPartsRecipe = cva("flex gap-1", {
17
+ defaultVariants: { variant: defaultMeterVariant },
18
+ variants: { variant: {
19
+ share: "",
20
+ slots: "h-2.5",
21
+ split: "h-3"
22
+ } }
23
+ });
24
+ const meterPartRecipe = cva(["bg-tf-blend", ...valueGlide], {
25
+ defaultVariants: { edge: "inner" },
26
+ variants: { edge: {
27
+ end: "rounded-r-tf-pill",
28
+ inner: "",
29
+ only: "rounded-tf-pill",
30
+ start: "rounded-l-tf-pill"
31
+ } }
32
+ });
33
+ const meterLegendRecipe = cva("flex flex-wrap gap-x-4 gap-y-2");
34
+ const meterLegendItemRecipe = cva("flex items-center gap-2 text-tf-caption-sm text-tf-muted");
35
+ const meterLegendDotRecipe = cva("size-2 flex-none rounded-tf-pill bg-tf-blend");
36
+ //#endregion
37
+ export { defaultMeterVariant, meterCaptionRecipe, meterHeadRecipe, meterLegendDotRecipe, meterLegendItemRecipe, meterLegendRecipe, meterPartRecipe, meterPartsRecipe, meterRangeRecipe, meterReadingRecipe, meterRecipe, meterTrackRecipe, meterVariants };
38
+
39
+ //# sourceMappingURL=meter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meter.js","names":[],"sources":["../../src/recipes/meter.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nimport { valueGlide } from './motion'\n\nconst meterVariants = ['share', 'split', 'slots'] as const\n\ntype MeterVariant = (typeof meterVariants)[number]\n\nconst defaultMeterVariant = 'share' satisfies MeterVariant\n\nconst meterRecipe = cva('flex w-full flex-col gap-2 font-tf-body text-tf-fg')\n\nconst meterHeadRecipe = cva('flex items-baseline justify-between gap-3')\n\nconst meterCaptionRecipe = cva(\n 'text-tf-caption-sm font-medium tracking-tf-eyebrow text-tf-muted uppercase',\n)\n\nconst meterReadingRecipe = cva('text-tf-body-sm font-medium text-tf-fg tabular-nums')\n\nconst meterTrackRecipe = cva('block h-2.5 overflow-hidden rounded-tf-pill bg-tf-sunken')\n\nconst meterRangeRecipe = cva(['block h-full rounded-tf-pill bg-tf-blend', ...valueGlide])\n\nconst meterPartsRecipe = cva('flex gap-1', {\n defaultVariants: { variant: defaultMeterVariant },\n variants: {\n variant: {\n share: '',\n slots: 'h-2.5',\n split: 'h-3',\n } satisfies Record<MeterVariant, string>,\n },\n})\n\ntype MeterPartEdge = 'end' | 'inner' | 'only' | 'start'\n\nconst meterPartRecipe = cva(['bg-tf-blend', ...valueGlide], {\n defaultVariants: { edge: 'inner' },\n variants: {\n edge: {\n end: 'rounded-r-tf-pill',\n inner: '',\n only: 'rounded-tf-pill',\n start: 'rounded-l-tf-pill',\n } satisfies Record<MeterPartEdge, string>,\n },\n})\n\nconst meterLegendRecipe = cva('flex flex-wrap gap-x-4 gap-y-2')\n\nconst meterLegendItemRecipe = cva('flex items-center gap-2 text-tf-caption-sm text-tf-muted')\n\nconst meterLegendDotRecipe = cva('size-2 flex-none rounded-tf-pill bg-tf-blend')\n\nexport {\n type MeterPartEdge,\n type MeterVariant,\n defaultMeterVariant,\n meterCaptionRecipe,\n meterHeadRecipe,\n meterLegendDotRecipe,\n meterLegendItemRecipe,\n meterLegendRecipe,\n meterPartRecipe,\n meterPartsRecipe,\n meterRangeRecipe,\n meterReadingRecipe,\n meterRecipe,\n meterTrackRecipe,\n meterVariants,\n}\n"],"mappings":";;;AAIA,MAAM,gBAAgB;CAAC;CAAS;CAAS;AAAO;AAIhD,MAAM,sBAAsB;AAE5B,MAAM,cAAc,IAAI,oDAAoD;AAE5E,MAAM,kBAAkB,IAAI,2CAA2C;AAEvE,MAAM,qBAAqB,IACzB,4EACF;AAEA,MAAM,qBAAqB,IAAI,qDAAqD;AAEpF,MAAM,mBAAmB,IAAI,0DAA0D;AAEvF,MAAM,mBAAmB,IAAI,CAAC,4CAA4C,GAAG,UAAU,CAAC;AAExF,MAAM,mBAAmB,IAAI,cAAc;CACzC,iBAAiB,EAAE,SAAS,oBAAoB;CAChD,UAAU,EACR,SAAS;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACT,EACF;AACF,CAAC;AAID,MAAM,kBAAkB,IAAI,CAAC,eAAe,GAAG,UAAU,GAAG;CAC1D,iBAAiB,EAAE,MAAM,QAAQ;CACjC,UAAU,EACR,MAAM;EACJ,KAAK;EACL,OAAO;EACP,MAAM;EACN,OAAO;CACT,EACF;AACF,CAAC;AAED,MAAM,oBAAoB,IAAI,gCAAgC;AAE9D,MAAM,wBAAwB,IAAI,0DAA0D;AAE5F,MAAM,uBAAuB,IAAI,8CAA8C"}
@@ -0,0 +1,6 @@
1
+ //#region src/recipes/motion.d.ts
2
+ declare const overlayMotion: string[];
3
+ declare const collapseMotion: string[];
4
+ //#endregion
5
+ export { collapseMotion, overlayMotion };
6
+ //# sourceMappingURL=motion.d.ts.map
@@ -0,0 +1,34 @@
1
+ //#region src/recipes/motion.ts
2
+ const overlayMotion = ["data-[state=open]:animate-tf-in", "data-[state=closed]:animate-tf-out"];
3
+ const arrivalMotion = [
4
+ "data-[state=open]:animate-tf-arrive",
5
+ "data-[state=closed]:animate-tf-depart",
6
+ "data-[placement^=bottom]:origin-top",
7
+ "data-[placement^=bottom]:[--tf-arrive:0_calc(var(--spacing)*-1)]",
8
+ "data-[placement^=top]:origin-bottom",
9
+ "data-[placement^=top]:[--tf-arrive:0_var(--spacing)]",
10
+ "data-[placement^=left]:origin-right",
11
+ "data-[placement^=left]:[--tf-arrive:var(--spacing)_0]",
12
+ "data-[placement^=right]:origin-left",
13
+ "data-[placement^=right]:[--tf-arrive:calc(var(--spacing)*-1)_0]"
14
+ ];
15
+ const drawerMotion = ["data-[state=open]:animate-tf-drawer", "data-[state=closed]:animate-tf-drawer-rewind"];
16
+ const liftMotion = ["data-[state=open]:animate-tf-lift", "data-[state=closed]:animate-tf-lift-rewind"];
17
+ const mirrorMotion = ["data-[state=open]:animate-tf-in", "data-[state=closed]:animate-tf-rewind"];
18
+ const scrimMirrorMotion = ["data-[state=open]:animate-tf-fade-in", "data-[state=closed]:animate-tf-fade-rewind"];
19
+ const railMorph = "tf-transition tf-rails motion-reduce:transition-none";
20
+ const valueGlide = ["transition-[width,flex-grow,flex-basis] duration-(--tf-duration-2) ease-(--ease-tf-glide)", "motion-reduce:transition-none"];
21
+ const collapseMotion = [
22
+ "overflow-hidden",
23
+ "data-[state=open]:animate-tf-expand",
24
+ "data-[state=closed]:animate-tf-collapse"
25
+ ];
26
+ const railCollapse = [
27
+ "min-w-0 basis-0 grow in-data-rail:opacity-0",
28
+ "[--tf-travel:opacity_var(--tf-timing-glide)]",
29
+ railMorph
30
+ ].join(" ");
31
+ //#endregion
32
+ export { arrivalMotion, collapseMotion, drawerMotion, liftMotion, mirrorMotion, overlayMotion, railCollapse, railMorph, scrimMirrorMotion, valueGlide };
33
+
34
+ //# sourceMappingURL=motion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motion.js","names":[],"sources":["../../src/recipes/motion.ts"],"sourcesContent":["const overlayMotion = ['data-[state=open]:animate-tf-in', 'data-[state=closed]:animate-tf-out']\n\nconst arrivalMotion = [\n 'data-[state=open]:animate-tf-arrive',\n 'data-[state=closed]:animate-tf-depart',\n 'data-[placement^=bottom]:origin-top',\n 'data-[placement^=bottom]:[--tf-arrive:0_calc(var(--spacing)*-1)]',\n 'data-[placement^=top]:origin-bottom',\n 'data-[placement^=top]:[--tf-arrive:0_var(--spacing)]',\n 'data-[placement^=left]:origin-right',\n 'data-[placement^=left]:[--tf-arrive:var(--spacing)_0]',\n 'data-[placement^=right]:origin-left',\n 'data-[placement^=right]:[--tf-arrive:calc(var(--spacing)*-1)_0]',\n]\n\nconst drawerMotion = [\n 'data-[state=open]:animate-tf-drawer',\n 'data-[state=closed]:animate-tf-drawer-rewind',\n]\n\nconst liftMotion = [\n 'data-[state=open]:animate-tf-lift',\n 'data-[state=closed]:animate-tf-lift-rewind',\n]\n\nconst mirrorMotion = ['data-[state=open]:animate-tf-in', 'data-[state=closed]:animate-tf-rewind']\n\nconst scrimMirrorMotion = [\n 'data-[state=open]:animate-tf-fade-in',\n 'data-[state=closed]:animate-tf-fade-rewind',\n]\n\nconst railMorph = 'tf-transition tf-rails motion-reduce:transition-none'\n\nconst valueGlide = [\n 'transition-[width,flex-grow,flex-basis] duration-(--tf-duration-2) ease-(--ease-tf-glide)',\n 'motion-reduce:transition-none',\n]\n\nconst collapseMotion = [\n 'overflow-hidden',\n 'data-[state=open]:animate-tf-expand',\n 'data-[state=closed]:animate-tf-collapse',\n]\n\nconst railCollapse = [\n 'min-w-0 basis-0 grow in-data-rail:opacity-0',\n '[--tf-travel:opacity_var(--tf-timing-glide)]',\n railMorph,\n].join(' ')\n\nexport {\n arrivalMotion,\n collapseMotion,\n drawerMotion,\n liftMotion,\n mirrorMotion,\n overlayMotion,\n railCollapse,\n railMorph,\n scrimMirrorMotion,\n valueGlide,\n}\n"],"mappings":";AAAA,MAAM,gBAAgB,CAAC,mCAAmC,oCAAoC;AAE9F,MAAM,gBAAgB;CACpB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,MAAM,eAAe,CACnB,uCACA,8CACF;AAEA,MAAM,aAAa,CACjB,qCACA,4CACF;AAEA,MAAM,eAAe,CAAC,mCAAmC,uCAAuC;AAEhG,MAAM,oBAAoB,CACxB,wCACA,4CACF;AAEA,MAAM,YAAY;AAElB,MAAM,aAAa,CACjB,6FACA,+BACF;AAEA,MAAM,iBAAiB;CACrB;CACA;CACA;AACF;AAEA,MAAM,eAAe;CACnB;CACA;CACA;AACF,CAAC,CAAC,KAAK,GAAG"}
@@ -0,0 +1,9 @@
1
+ //#region src/recipes/nebula.d.ts
2
+ declare const nebulaRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
3
+ declare const nebulaVeilRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
4
+ declare const nebulaCloudRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
5
+ declare const nebulaCloudLowRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
6
+ declare const nebulaCloudWideRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
7
+ //#endregion
8
+ export { nebulaCloudLowRecipe, nebulaCloudRecipe, nebulaCloudWideRecipe, nebulaRecipe, nebulaVeilRecipe };
9
+ //# sourceMappingURL=nebula.d.ts.map
@@ -0,0 +1,15 @@
1
+ import { cva } from "class-variance-authority";
2
+ //#region src/recipes/nebula.ts
3
+ const nebulaRecipe = cva([
4
+ "pointer-events-none absolute -inset-1/2",
5
+ "tf-turning tf-nebula blend-tf-accent",
6
+ "[animation-duration:calc(var(--tf-sweep-duration)*30)]"
7
+ ]);
8
+ const nebulaVeilRecipe = cva("tf-nebula-veil");
9
+ const nebulaCloudRecipe = cva("tf-nebula-cloud");
10
+ const nebulaCloudLowRecipe = cva("tf-nebula-cloud tf-cloud-low");
11
+ const nebulaCloudWideRecipe = cva("tf-nebula-cloud tf-cloud-wide");
12
+ //#endregion
13
+ export { nebulaCloudLowRecipe, nebulaCloudRecipe, nebulaCloudWideRecipe, nebulaRecipe, nebulaVeilRecipe };
14
+
15
+ //# sourceMappingURL=nebula.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nebula.js","names":[],"sources":["../../src/recipes/nebula.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nconst nebulaRecipe = cva([\n 'pointer-events-none absolute -inset-1/2',\n 'tf-turning tf-nebula blend-tf-accent',\n '[animation-duration:calc(var(--tf-sweep-duration)*30)]',\n])\n\nconst nebulaVeilRecipe = cva('tf-nebula-veil')\n\nconst nebulaCloudRecipe = cva('tf-nebula-cloud')\n\nconst nebulaCloudLowRecipe = cva('tf-nebula-cloud tf-cloud-low')\n\nconst nebulaCloudWideRecipe = cva('tf-nebula-cloud tf-cloud-wide')\n\nexport {\n nebulaCloudLowRecipe,\n nebulaCloudRecipe,\n nebulaCloudWideRecipe,\n nebulaRecipe,\n nebulaVeilRecipe,\n}\n"],"mappings":";;AAEA,MAAM,eAAe,IAAI;CACvB;CACA;CACA;AACF,CAAC;AAED,MAAM,mBAAmB,IAAI,gBAAgB;AAE7C,MAAM,oBAAoB,IAAI,iBAAiB;AAE/C,MAAM,uBAAuB,IAAI,8BAA8B;AAE/D,MAAM,wBAAwB,IAAI,+BAA+B"}
@@ -0,0 +1,15 @@
1
+ //#region src/recipes/numberRange.d.ts
2
+ declare const numberRangeHalfRecipe: (props?: ({
3
+ at?: "from" | "to" | null | undefined;
4
+ labelled?: boolean | null | undefined;
5
+ size?: "md" | "lg" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ declare const numberRangeRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
8
+ declare const numberRangeDashRecipe: (props?: ({
9
+ filled?: boolean | null | undefined;
10
+ labelled?: boolean | null | undefined;
11
+ size?: "md" | "lg" | null | undefined;
12
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
13
+ //#endregion
14
+ export { numberRangeDashRecipe, numberRangeHalfRecipe, numberRangeRecipe };
15
+ //# sourceMappingURL=numberRange.d.ts.map
@@ -0,0 +1,109 @@
1
+ import "../control.js";
2
+ import { labelRoom } from "./input.js";
3
+ import { cva } from "class-variance-authority";
4
+ //#region src/recipes/numberRange.ts
5
+ const numberRangeHalfRecipe = cva([
6
+ "min-w-0 flex-1 bg-transparent text-tf-fg tf-writes tabular-nums",
7
+ "placeholder:text-tf-muted placeholder:opacity-0",
8
+ "data-readonly:text-tf-muted",
9
+ "disabled:cursor-not-allowed",
10
+ "outline-2 outline-solid outline-offset-2 outline-transparent",
11
+ "[appearance:textfield]",
12
+ "[&::-webkit-inner-spin-button]:appearance-none",
13
+ "[&::-webkit-outer-spin-button]:appearance-none"
14
+ ], {
15
+ compoundVariants: [
16
+ {
17
+ at: "from",
18
+ class: "pl-4",
19
+ labelled: true,
20
+ size: "lg"
21
+ },
22
+ {
23
+ at: "from",
24
+ class: "pl-4",
25
+ labelled: true,
26
+ size: "md"
27
+ },
28
+ {
29
+ at: "to",
30
+ class: "pr-4",
31
+ labelled: true,
32
+ size: "lg"
33
+ },
34
+ {
35
+ at: "to",
36
+ class: "pr-4",
37
+ labelled: true,
38
+ size: "md"
39
+ },
40
+ {
41
+ class: labelRoom.lg,
42
+ labelled: true,
43
+ size: "lg"
44
+ },
45
+ {
46
+ class: labelRoom.md,
47
+ labelled: true,
48
+ size: "md"
49
+ }
50
+ ],
51
+ defaultVariants: {
52
+ at: "from",
53
+ labelled: true,
54
+ size: "lg"
55
+ },
56
+ variants: {
57
+ at: {
58
+ from: "pr-0 text-left",
59
+ to: "pl-0 text-left"
60
+ },
61
+ labelled: {
62
+ false: "px-4 py-0 placeholder:opacity-100",
63
+ true: ""
64
+ },
65
+ size: {
66
+ lg: "",
67
+ md: ""
68
+ }
69
+ }
70
+ });
71
+ const numberRangeRecipe = cva("max-w-64");
72
+ const numberRangeDashRecipe = cva([
73
+ "flex flex-none items-center self-stretch px-2",
74
+ "font-medium text-tf-muted tabular-nums",
75
+ "tf-transition motion-reduce:transition-none"
76
+ ], {
77
+ compoundVariants: [{
78
+ class: `${labelRoom.lg} text-tf-body-sm`,
79
+ labelled: true,
80
+ size: "lg"
81
+ }, {
82
+ class: `${labelRoom.md} text-tf-body-sm`,
83
+ labelled: true,
84
+ size: "md"
85
+ }],
86
+ defaultVariants: {
87
+ filled: false,
88
+ labelled: true,
89
+ size: "lg"
90
+ },
91
+ variants: {
92
+ filled: {
93
+ false: "opacity-0",
94
+ true: "opacity-100"
95
+ },
96
+ labelled: {
97
+ false: "py-0 text-tf-body-sm",
98
+ true: ""
99
+ },
100
+ size: {
101
+ lg: "",
102
+ md: ""
103
+ }
104
+ }
105
+ });
106
+ //#endregion
107
+ export { numberRangeDashRecipe, numberRangeHalfRecipe, numberRangeRecipe };
108
+
109
+ //# sourceMappingURL=numberRange.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numberRange.js","names":[],"sources":["../../src/recipes/numberRange.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nimport type { FieldSize } from '#control'\nimport { defaultFieldSize } from '#control'\n\nimport { labelRoom } from './input'\n\nconst HALF = [\n 'min-w-0 flex-1 bg-transparent text-tf-fg tf-writes tabular-nums',\n 'placeholder:text-tf-muted placeholder:opacity-0',\n 'data-readonly:text-tf-muted',\n 'disabled:cursor-not-allowed',\n 'outline-2 outline-solid outline-offset-2 outline-transparent',\n '[appearance:textfield]',\n '[&::-webkit-inner-spin-button]:appearance-none',\n '[&::-webkit-outer-spin-button]:appearance-none',\n]\n\nconst numberRangeHalfRecipe = cva(HALF, {\n compoundVariants: [\n { at: 'from', class: 'pl-4', labelled: true, size: 'lg' },\n { at: 'from', class: 'pl-4', labelled: true, size: 'md' },\n { at: 'to', class: 'pr-4', labelled: true, size: 'lg' },\n { at: 'to', class: 'pr-4', labelled: true, size: 'md' },\n { class: labelRoom.lg, labelled: true, size: 'lg' },\n { class: labelRoom.md, labelled: true, size: 'md' },\n ],\n defaultVariants: { at: 'from', labelled: true, size: defaultFieldSize },\n variants: {\n at: { from: 'pr-0 text-left', to: 'pl-0 text-left' },\n labelled: { false: 'px-4 py-0 placeholder:opacity-100', true: '' },\n size: { lg: '', md: '' } satisfies Record<FieldSize, string>,\n },\n})\n\nconst numberRangeRecipe = cva('max-w-64')\n\nconst numberRangeDashRecipe = cva(\n [\n 'flex flex-none items-center self-stretch px-2',\n 'font-medium text-tf-muted tabular-nums',\n 'tf-transition motion-reduce:transition-none',\n ],\n {\n compoundVariants: [\n { class: `${labelRoom.lg} text-tf-body-sm`, labelled: true, size: 'lg' },\n { class: `${labelRoom.md} text-tf-body-sm`, labelled: true, size: 'md' },\n ],\n defaultVariants: { filled: false, labelled: true, size: defaultFieldSize },\n variants: {\n filled: { false: 'opacity-0', true: 'opacity-100' },\n labelled: { false: 'py-0 text-tf-body-sm', true: '' },\n size: { lg: '', md: '' } satisfies Record<FieldSize, string>,\n },\n },\n)\n\nexport { numberRangeDashRecipe, numberRangeHalfRecipe, numberRangeRecipe }\n"],"mappings":";;;;AAkBA,MAAM,wBAAwB,IAAI;CAVhC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AAGmC,GAAG;CACtC,kBAAkB;EAChB;GAAE,IAAI;GAAQ,OAAO;GAAQ,UAAU;GAAM,MAAM;EAAK;EACxD;GAAE,IAAI;GAAQ,OAAO;GAAQ,UAAU;GAAM,MAAM;EAAK;EACxD;GAAE,IAAI;GAAM,OAAO;GAAQ,UAAU;GAAM,MAAM;EAAK;EACtD;GAAE,IAAI;GAAM,OAAO;GAAQ,UAAU;GAAM,MAAM;EAAK;EACtD;GAAE,OAAO,UAAU;GAAI,UAAU;GAAM,MAAM;EAAK;EAClD;GAAE,OAAO,UAAU;GAAI,UAAU;GAAM,MAAM;EAAK;CACpD;CACA,iBAAiB;EAAE,IAAI;EAAQ,UAAU;EAAM,MAAA;CAAuB;CACtE,UAAU;EACR,IAAI;GAAE,MAAM;GAAkB,IAAI;EAAiB;EACnD,UAAU;GAAE,OAAO;GAAqC,MAAM;EAAG;EACjE,MAAM;GAAE,IAAI;GAAI,IAAI;EAAG;CACzB;AACF,CAAC;AAED,MAAM,oBAAoB,IAAI,UAAU;AAExC,MAAM,wBAAwB,IAC5B;CACE;CACA;CACA;AACF,GACA;CACE,kBAAkB,CAChB;EAAE,OAAO,GAAG,UAAU,GAAG;EAAmB,UAAU;EAAM,MAAM;CAAK,GACvE;EAAE,OAAO,GAAG,UAAU,GAAG;EAAmB,UAAU;EAAM,MAAM;CAAK,CACzE;CACA,iBAAiB;EAAE,QAAQ;EAAO,UAAU;EAAM,MAAA;CAAuB;CACzE,UAAU;EACR,QAAQ;GAAE,OAAO;GAAa,MAAM;EAAc;EAClD,UAAU;GAAE,OAAO;GAAwB,MAAM;EAAG;EACpD,MAAM;GAAE,IAAI;GAAI,IAAI;EAAG;CACzB;AACF,CACF"}
@@ -0,0 +1,22 @@
1
+ //#region src/recipes/paper.d.ts
2
+ type PaperVariant = 'plain' | 'elevated';
3
+ type PaperInset = 'padded' | 'flush';
4
+ declare const defaultPaperVariant = "plain";
5
+ declare const defaultPaperInset = "padded";
6
+ declare const paperRecipe: (props?: ({
7
+ variant?: "plain" | "elevated" | null | undefined;
8
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
9
+ declare const paperBodyRecipe: (props?: ({
10
+ inset?: "padded" | "flush" | null | undefined;
11
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
12
+ declare const paperHeaderRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
13
+ declare const paperRuleRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
14
+ declare const paperBadgeRecipe: (props?: ({
15
+ headed?: boolean | null | undefined;
16
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
17
+ declare const paperActionRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
18
+ declare const paperVariants: readonly ["plain", "elevated"];
19
+ declare const paperInsets: readonly ["padded", "flush"];
20
+ //#endregion
21
+ export { type PaperInset, type PaperVariant, defaultPaperInset, defaultPaperVariant, paperActionRecipe, paperBadgeRecipe, paperBodyRecipe, paperHeaderRecipe, paperInsets, paperRecipe, paperRuleRecipe, paperVariants };
22
+ //# sourceMappingURL=paper.d.ts.map
@@ -0,0 +1,42 @@
1
+ import { ruleFading } from "../parts/rule.js";
2
+ import { surfaceLifted, surfacePanel } from "../parts/surface.js";
3
+ import { cva } from "class-variance-authority";
4
+ //#region src/recipes/paper.ts
5
+ const defaultPaperVariant = "plain";
6
+ const defaultPaperInset = "padded";
7
+ const paperBase = [
8
+ "@container relative w-full",
9
+ ...surfacePanel,
10
+ "font-tf-body text-tf-body-sm font-medium text-tf-fg"
11
+ ];
12
+ const paperRecipe = cva(paperBase, {
13
+ defaultVariants: { variant: defaultPaperVariant },
14
+ variants: { variant: {
15
+ elevated: surfaceLifted.join(" "),
16
+ plain: ""
17
+ } }
18
+ });
19
+ const GUTTER = "px-4 @tf-panel:px-8";
20
+ const paperBodyRecipe = cva("py-6 @tf-panel:py-8", {
21
+ defaultVariants: { inset: defaultPaperInset },
22
+ variants: { inset: {
23
+ flush: "",
24
+ padded: GUTTER
25
+ } }
26
+ });
27
+ const paperHeaderRecipe = cva([`relative flex flex-wrap items-center justify-between gap-4 py-5 ${GUTTER}`, "min-h-[calc(var(--spacing-tf-control-sm)+var(--spacing)*10)]"]);
28
+ const paperRuleRecipe = cva(`absolute inset-x-4 bottom-0 @tf-panel:inset-x-8 ${ruleFading}`);
29
+ const paperBadgeRecipe = cva("absolute right-4 @tf-panel:right-8", {
30
+ defaultVariants: { headed: false },
31
+ variants: { headed: {
32
+ false: "top-4",
33
+ true: "top-10 -translate-y-1/2"
34
+ } }
35
+ });
36
+ const paperActionRecipe = cva("-mr-3 flex min-w-0 flex-initial flex-wrap items-center justify-end gap-4");
37
+ const paperVariants = ["plain", "elevated"];
38
+ const paperInsets = ["padded", "flush"];
39
+ //#endregion
40
+ export { defaultPaperInset, defaultPaperVariant, paperActionRecipe, paperBadgeRecipe, paperBodyRecipe, paperHeaderRecipe, paperInsets, paperRecipe, paperRuleRecipe, paperVariants };
41
+
42
+ //# sourceMappingURL=paper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paper.js","names":[],"sources":["../../src/recipes/paper.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nimport { ruleFading } from '#parts/rule'\nimport { surfaceLifted, surfacePanel } from '#parts/surface'\n\ntype PaperVariant = 'plain' | 'elevated'\n\ntype PaperInset = 'padded' | 'flush'\n\nconst defaultPaperVariant = 'plain' satisfies PaperVariant\n\nconst defaultPaperInset = 'padded' satisfies PaperInset\n\nconst paperBase = [\n '@container relative w-full',\n ...surfacePanel,\n 'font-tf-body text-tf-body-sm font-medium text-tf-fg',\n]\n\nconst paperRecipe = cva(paperBase, {\n defaultVariants: { variant: defaultPaperVariant },\n variants: {\n variant: {\n elevated: surfaceLifted.join(' '),\n plain: '',\n } satisfies Record<PaperVariant, string>,\n },\n})\n\nconst GUTTER = 'px-4 @tf-panel:px-8'\n\nconst paperBodyRecipe = cva('py-6 @tf-panel:py-8', {\n defaultVariants: { inset: defaultPaperInset },\n variants: {\n inset: { flush: '', padded: GUTTER } satisfies Record<PaperInset, string>,\n },\n})\n\nconst HEAD_ROW = 'min-h-[calc(var(--spacing-tf-control-sm)+var(--spacing)*10)]'\n\nconst paperHeaderRecipe = cva([\n `relative flex flex-wrap items-center justify-between gap-4 py-5 ${GUTTER}`,\n HEAD_ROW,\n])\n\nconst paperRuleRecipe = cva(`absolute inset-x-4 bottom-0 @tf-panel:inset-x-8 ${ruleFading}`)\n\nconst paperBadgeRecipe = cva('absolute right-4 @tf-panel:right-8', {\n defaultVariants: { headed: false },\n variants: {\n headed: { false: 'top-4', true: 'top-10 -translate-y-1/2' },\n },\n})\n\nconst paperActionRecipe = cva(\n '-mr-3 flex min-w-0 flex-initial flex-wrap items-center justify-end gap-4',\n)\n\nconst paperVariants = ['plain', 'elevated'] as const satisfies readonly PaperVariant[]\n\nconst paperInsets = ['padded', 'flush'] as const satisfies readonly PaperInset[]\n\nexport {\n type PaperInset,\n type PaperVariant,\n defaultPaperInset,\n defaultPaperVariant,\n paperActionRecipe,\n paperBadgeRecipe,\n paperBodyRecipe,\n paperHeaderRecipe,\n paperInsets,\n paperRecipe,\n paperRuleRecipe,\n paperVariants,\n}\n"],"mappings":";;;;AASA,MAAM,sBAAsB;AAE5B,MAAM,oBAAoB;AAE1B,MAAM,YAAY;CAChB;CACA,GAAG;CACH;AACF;AAEA,MAAM,cAAc,IAAI,WAAW;CACjC,iBAAiB,EAAE,SAAS,oBAAoB;CAChD,UAAU,EACR,SAAS;EACP,UAAU,cAAc,KAAK,GAAG;EAChC,OAAO;CACT,EACF;AACF,CAAC;AAED,MAAM,SAAS;AAEf,MAAM,kBAAkB,IAAI,uBAAuB;CACjD,iBAAiB,EAAE,OAAO,kBAAkB;CAC5C,UAAU,EACR,OAAO;EAAE,OAAO;EAAI,QAAQ;CAAO,EACrC;AACF,CAAC;AAID,MAAM,oBAAoB,IAAI,CAC5B,mEAAmE,UACnE,8DACF,CAAC;AAED,MAAM,kBAAkB,IAAI,mDAAmD,YAAY;AAE3F,MAAM,mBAAmB,IAAI,sCAAsC;CACjE,iBAAiB,EAAE,QAAQ,MAAM;CACjC,UAAU,EACR,QAAQ;EAAE,OAAO;EAAS,MAAM;CAA0B,EAC5D;AACF,CAAC;AAED,MAAM,oBAAoB,IACxB,0EACF;AAEA,MAAM,gBAAgB,CAAC,SAAS,UAAU;AAE1C,MAAM,cAAc,CAAC,UAAU,OAAO"}
@@ -0,0 +1,7 @@
1
+ //#region src/recipes/progressBar.d.ts
2
+ declare const progressBarTones: readonly ["accent", "success", "warning", "info", "danger"];
3
+ declare const progressBarTrackRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
4
+ declare const progressBarRangeRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
5
+ //#endregion
6
+ export { progressBarRangeRecipe, progressBarTones, progressBarTrackRecipe };
7
+ //# sourceMappingURL=progressBar.d.ts.map
@@ -0,0 +1,11 @@
1
+ import { valueGlide } from "./motion.js";
2
+ import { tones } from "../parts/tone.js";
3
+ import { cva } from "class-variance-authority";
4
+ //#region src/recipes/progressBar.ts
5
+ const progressBarTones = tones;
6
+ const progressBarTrackRecipe = cva("block h-2.5 overflow-hidden rounded-tf-pill bg-tf-sunken");
7
+ const progressBarRangeRecipe = cva(["block h-full rounded-tf-pill bg-tf-blend", ...valueGlide]);
8
+ //#endregion
9
+ export { progressBarRangeRecipe, progressBarTones, progressBarTrackRecipe };
10
+
11
+ //# sourceMappingURL=progressBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progressBar.js","names":[],"sources":["../../src/recipes/progressBar.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nimport { tones } from '#parts/tone'\n\nimport { valueGlide } from './motion'\n\nconst progressBarTones = tones\n\nconst progressBarTrackRecipe = cva('block h-2.5 overflow-hidden rounded-tf-pill bg-tf-sunken')\n\nconst progressBarRangeRecipe = cva(['block h-full rounded-tf-pill bg-tf-blend', ...valueGlide])\n\nexport { progressBarRangeRecipe, progressBarTones, progressBarTrackRecipe }\n"],"mappings":";;;;AAMA,MAAM,mBAAmB;AAEzB,MAAM,yBAAyB,IAAI,0DAA0D;AAE7F,MAAM,yBAAyB,IAAI,CAAC,4CAA4C,GAAG,UAAU,CAAC"}
@@ -0,0 +1,16 @@
1
+ //#region src/recipes/queue.d.ts
2
+ declare const queueRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
3
+ declare const queueRowRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
4
+ declare const queueTextRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
5
+ declare const queueLeadRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
6
+ declare const queueHintRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
7
+ declare const queueAgeRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
8
+ declare const queueAgeLabelRecipe: (props?: ({
9
+ toned?: boolean | null | undefined;
10
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
11
+ declare const queueAgeTrackRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
12
+ declare const queueAgeFillRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
13
+ declare const queueDotRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
14
+ //#endregion
15
+ export { queueAgeFillRecipe, queueAgeLabelRecipe, queueAgeRecipe, queueAgeTrackRecipe, queueDotRecipe, queueHintRecipe, queueLeadRecipe, queueRecipe, queueRowRecipe, queueTextRecipe };
16
+ //# sourceMappingURL=queue.d.ts.map
@@ -0,0 +1,27 @@
1
+ import { cva } from "class-variance-authority";
2
+ //#region src/recipes/queue.ts
3
+ const queueRecipe = cva("@container flex w-full flex-col gap-1 rounded-tf-block bg-tf-sunken p-3");
4
+ const queueRowRecipe = cva([
5
+ "flex items-center gap-3 rounded-tf-control px-4 py-3",
6
+ "tf-transition",
7
+ "data-highlighted:bg-tf-control",
8
+ "data-selected:tf-tinted data-selected:blend-tf-accent"
9
+ ]);
10
+ const queueTextRecipe = cva("flex min-w-0 flex-1 flex-col gap-0");
11
+ const queueLeadRecipe = cva("truncate text-tf-body-sm font-medium text-tf-fg");
12
+ const queueHintRecipe = cva("truncate text-tf-caption-sm text-tf-muted");
13
+ const queueAgeRecipe = cva("flex w-16 flex-none flex-col items-end gap-1 @tf-panel:w-22");
14
+ const queueAgeLabelRecipe = cva("text-tf-caption-sm font-normal tabular-nums", {
15
+ defaultVariants: { toned: false },
16
+ variants: { toned: {
17
+ false: "text-tf-fg",
18
+ true: ""
19
+ } }
20
+ });
21
+ const queueAgeTrackRecipe = cva("block h-1 w-full overflow-hidden rounded-tf-pill bg-tf-sunken-hi");
22
+ const queueAgeFillRecipe = cva("block h-full bg-tf-blend");
23
+ const queueDotRecipe = cva("size-2 flex-none rounded-tf-pill bg-tf-blend");
24
+ //#endregion
25
+ export { queueAgeFillRecipe, queueAgeLabelRecipe, queueAgeRecipe, queueAgeTrackRecipe, queueDotRecipe, queueHintRecipe, queueLeadRecipe, queueRecipe, queueRowRecipe, queueTextRecipe };
26
+
27
+ //# sourceMappingURL=queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue.js","names":[],"sources":["../../src/recipes/queue.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nconst queueRecipe = cva('@container flex w-full flex-col gap-1 rounded-tf-block bg-tf-sunken p-3')\n\nconst queueRowRecipe = cva([\n 'flex items-center gap-3 rounded-tf-control px-4 py-3',\n 'tf-transition',\n 'data-highlighted:bg-tf-control',\n 'data-selected:tf-tinted data-selected:blend-tf-accent',\n])\n\nconst queueTextRecipe = cva('flex min-w-0 flex-1 flex-col gap-0')\n\nconst queueLeadRecipe = cva('truncate text-tf-body-sm font-medium text-tf-fg')\n\nconst queueHintRecipe = cva('truncate text-tf-caption-sm text-tf-muted')\n\nconst queueAgeRecipe = cva('flex w-16 flex-none flex-col items-end gap-1 @tf-panel:w-22')\n\nconst queueAgeLabelRecipe = cva('text-tf-caption-sm font-normal tabular-nums', {\n defaultVariants: { toned: false },\n variants: {\n toned: {\n false: 'text-tf-fg',\n true: '',\n },\n },\n})\n\nconst queueAgeTrackRecipe = cva('block h-1 w-full overflow-hidden rounded-tf-pill bg-tf-sunken-hi')\n\nconst queueAgeFillRecipe = cva('block h-full bg-tf-blend')\n\nconst queueDotRecipe = cva('size-2 flex-none rounded-tf-pill bg-tf-blend')\n\nexport {\n queueAgeFillRecipe,\n queueAgeLabelRecipe,\n queueAgeRecipe,\n queueAgeTrackRecipe,\n queueDotRecipe,\n queueHintRecipe,\n queueLeadRecipe,\n queueRecipe,\n queueRowRecipe,\n queueTextRecipe,\n}\n"],"mappings":";;AAEA,MAAM,cAAc,IAAI,yEAAyE;AAEjG,MAAM,iBAAiB,IAAI;CACzB;CACA;CACA;CACA;AACF,CAAC;AAED,MAAM,kBAAkB,IAAI,oCAAoC;AAEhE,MAAM,kBAAkB,IAAI,iDAAiD;AAE7E,MAAM,kBAAkB,IAAI,2CAA2C;AAEvE,MAAM,iBAAiB,IAAI,6DAA6D;AAExF,MAAM,sBAAsB,IAAI,+CAA+C;CAC7E,iBAAiB,EAAE,OAAO,MAAM;CAChC,UAAU,EACR,OAAO;EACL,OAAO;EACP,MAAM;CACR,EACF;AACF,CAAC;AAED,MAAM,sBAAsB,IAAI,kEAAkE;AAElG,MAAM,qBAAqB,IAAI,0BAA0B;AAEzD,MAAM,iBAAiB,IAAI,8CAA8C"}
@@ -0,0 +1,27 @@
1
+ import { Tone } from "../tone.js";
2
+ //#region src/recipes/radioGroup.d.ts
3
+ declare const radioAccents: readonly ["accent", "success", "warning", "info", "danger"];
4
+ type RadioAccent = Tone;
5
+ declare const defaultRadioAccent = "accent";
6
+ declare const radioGroupRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
7
+ declare const radioGroupLabelRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
8
+ declare const radioRecipe: (props?: ({
9
+ plate?: "full" | "snug" | "bare" | null | undefined;
10
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
11
+ declare const radioIndicatorRecipe: (props?: ({
12
+ accent?: "accent" | "success" | "warning" | "info" | "danger" | null | undefined;
13
+ invalid?: boolean | null | undefined;
14
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
15
+ declare const radioLeadRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
16
+ declare const radioControlRecipe: (props?: ({
17
+ accent?: "accent" | "success" | "warning" | "info" | "danger" | null | undefined;
18
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
19
+ declare const radioDotRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
20
+ declare const radioLabelRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
21
+ declare const radioTitleRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
22
+ declare const radioHintRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
23
+ declare const radioAsideRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
24
+ declare const radioErrorRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
25
+ //#endregion
26
+ export { type RadioAccent, defaultRadioAccent, radioAccents, radioAsideRecipe, radioControlRecipe, radioDotRecipe, radioErrorRecipe, radioGroupLabelRecipe, radioGroupRecipe, radioHintRecipe, radioIndicatorRecipe, radioLabelRecipe, radioLeadRecipe, radioRecipe, radioTitleRecipe };
27
+ //# sourceMappingURL=radioGroup.d.ts.map