@techfides/ui-library-design 0.5.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/dist/anatomies.d.ts +1586 -0
  2. package/dist/anatomies.js +107 -0
  3. package/dist/anatomies.js.map +1 -0
  4. package/dist/anatomy.d.ts +13 -0
  5. package/dist/anatomy.js +6 -0
  6. package/dist/anatomy.js.map +1 -0
  7. package/dist/control.d.ts +1 -2
  8. package/dist/control.js +1 -2
  9. package/dist/control.js.map +1 -1
  10. package/dist/index.d.ts +55 -52
  11. package/dist/index.js +59 -56
  12. package/dist/recipes/accordion.d.ts +28 -1
  13. package/dist/recipes/accordion.js +29 -1
  14. package/dist/recipes/accordion.js.map +1 -1
  15. package/dist/recipes/alert.d.ts +45 -1
  16. package/dist/recipes/alert.js +45 -1
  17. package/dist/recipes/alert.js.map +1 -1
  18. package/dist/recipes/band.d.ts +11 -1
  19. package/dist/recipes/band.js +7 -1
  20. package/dist/recipes/band.js.map +1 -1
  21. package/dist/recipes/bars.d.ts +60 -1
  22. package/dist/recipes/bars.js +59 -1
  23. package/dist/recipes/bars.js.map +1 -1
  24. package/dist/recipes/brandMark.d.ts +8 -1
  25. package/dist/recipes/brandMark.js +7 -1
  26. package/dist/recipes/brandMark.js.map +1 -1
  27. package/dist/recipes/button.d.ts +41 -4
  28. package/dist/recipes/button.js +31 -2
  29. package/dist/recipes/button.js.map +1 -1
  30. package/dist/recipes/cardHeader.d.ts +18 -1
  31. package/dist/recipes/cardHeader.js +19 -1
  32. package/dist/recipes/cardHeader.js.map +1 -1
  33. package/dist/recipes/checkbox.d.ts +16 -1
  34. package/dist/recipes/checkbox.js +16 -3
  35. package/dist/recipes/checkbox.js.map +1 -1
  36. package/dist/recipes/chip.d.ts +41 -2
  37. package/dist/recipes/chip.js +34 -1
  38. package/dist/recipes/chip.js.map +1 -1
  39. package/dist/recipes/codeEditor.d.ts +8 -1
  40. package/dist/recipes/codeEditor.js +7 -1
  41. package/dist/recipes/codeEditor.js.map +1 -1
  42. package/dist/recipes/datePicker.d.ts +62 -1
  43. package/dist/recipes/datePicker.js +56 -3
  44. package/dist/recipes/datePicker.js.map +1 -1
  45. package/dist/recipes/dialog.d.ts +49 -1
  46. package/dist/recipes/dialog.js +40 -1
  47. package/dist/recipes/dialog.js.map +1 -1
  48. package/dist/recipes/feature.d.ts +30 -1
  49. package/dist/recipes/feature.js +30 -2
  50. package/dist/recipes/feature.js.map +1 -1
  51. package/dist/recipes/field.js +1 -1
  52. package/dist/recipes/findings.d.ts +33 -1
  53. package/dist/recipes/findings.js +34 -1
  54. package/dist/recipes/findings.js.map +1 -1
  55. package/dist/recipes/heading.d.ts +12 -2
  56. package/dist/recipes/heading.js +7 -1
  57. package/dist/recipes/heading.js.map +1 -1
  58. package/dist/recipes/heartbeat.d.ts +52 -2
  59. package/dist/recipes/heartbeat.js +51 -4
  60. package/dist/recipes/heartbeat.js.map +1 -1
  61. package/dist/recipes/ink.d.ts +11 -0
  62. package/dist/recipes/ink.js +13 -0
  63. package/dist/recipes/ink.js.map +1 -0
  64. package/dist/recipes/input.d.ts +55 -1
  65. package/dist/recipes/input.js +52 -2
  66. package/dist/recipes/input.js.map +1 -1
  67. package/dist/recipes/listItem.d.ts +18 -1
  68. package/dist/recipes/listItem.js +20 -1
  69. package/dist/recipes/listItem.js.map +1 -1
  70. package/dist/recipes/listbox.d.ts +22 -2
  71. package/dist/recipes/listbox.js +19 -1
  72. package/dist/recipes/listbox.js.map +1 -1
  73. package/dist/recipes/marquee.d.ts +26 -2
  74. package/dist/recipes/marquee.js +24 -1
  75. package/dist/recipes/marquee.js.map +1 -1
  76. package/dist/recipes/menu.d.ts +33 -1
  77. package/dist/recipes/menu.js +29 -1
  78. package/dist/recipes/menu.js.map +1 -1
  79. package/dist/recipes/metaRow.d.ts +11 -2
  80. package/dist/recipes/metaRow.js +7 -1
  81. package/dist/recipes/metaRow.js.map +1 -1
  82. package/dist/recipes/meter.d.ts +36 -2
  83. package/dist/recipes/meter.js +34 -1
  84. package/dist/recipes/meter.js.map +1 -1
  85. package/dist/recipes/motion.d.ts +9 -1
  86. package/dist/recipes/nebula.js +1 -1
  87. package/dist/recipes/numberRange.d.ts +44 -1
  88. package/dist/recipes/numberRange.js +36 -1
  89. package/dist/recipes/numberRange.js.map +1 -1
  90. package/dist/recipes/paper.d.ts +55 -2
  91. package/dist/recipes/paper.js +47 -4
  92. package/dist/recipes/paper.js.map +1 -1
  93. package/dist/recipes/progressBar.d.ts +8 -1
  94. package/dist/recipes/progressBar.js +7 -1
  95. package/dist/recipes/progressBar.js.map +1 -1
  96. package/dist/recipes/queue.d.ts +33 -1
  97. package/dist/recipes/queue.js +35 -1
  98. package/dist/recipes/queue.js.map +1 -1
  99. package/dist/recipes/radioGroup.d.ts +18 -1
  100. package/dist/recipes/radioGroup.js +21 -3
  101. package/dist/recipes/radioGroup.js.map +1 -1
  102. package/dist/recipes/scopeSwitcher.d.ts +38 -1
  103. package/dist/recipes/scopeSwitcher.js +40 -1
  104. package/dist/recipes/scopeSwitcher.js.map +1 -1
  105. package/dist/recipes/scrollArea.d.ts +12 -3
  106. package/dist/recipes/scrollArea.js +7 -1
  107. package/dist/recipes/scrollArea.js.map +1 -1
  108. package/dist/recipes/searchPalette.d.ts +48 -1
  109. package/dist/recipes/searchPalette.js +49 -1
  110. package/dist/recipes/searchPalette.js.map +1 -1
  111. package/dist/recipes/sectionHeader.d.ts +20 -2
  112. package/dist/recipes/sectionHeader.js +20 -3
  113. package/dist/recipes/sectionHeader.js.map +1 -1
  114. package/dist/recipes/segmentedControl.d.ts +8 -1
  115. package/dist/recipes/segmentedControl.js +7 -1
  116. package/dist/recipes/segmentedControl.js.map +1 -1
  117. package/dist/recipes/select.d.ts +57 -1
  118. package/dist/recipes/select.js +51 -1
  119. package/dist/recipes/select.js.map +1 -1
  120. package/dist/recipes/separator.d.ts +13 -2
  121. package/dist/recipes/separator.js +8 -2
  122. package/dist/recipes/separator.js.map +1 -1
  123. package/dist/recipes/sidebar.d.ts +128 -2
  124. package/dist/recipes/sidebar.js +125 -2
  125. package/dist/recipes/sidebar.js.map +1 -1
  126. package/dist/recipes/sky.d.ts +31 -1
  127. package/dist/recipes/sky.js +30 -1
  128. package/dist/recipes/sky.js.map +1 -1
  129. package/dist/recipes/slider.d.ts +15 -1
  130. package/dist/recipes/slider.js +14 -1
  131. package/dist/recipes/slider.js.map +1 -1
  132. package/dist/recipes/stat.d.ts +71 -1
  133. package/dist/recipes/stat.js +73 -3
  134. package/dist/recipes/stat.js.map +1 -1
  135. package/dist/recipes/switch.d.ts +10 -1
  136. package/dist/recipes/switch.js +9 -3
  137. package/dist/recipes/switch.js.map +1 -1
  138. package/dist/recipes/table.d.ts +63 -3
  139. package/dist/recipes/table.js +56 -2
  140. package/dist/recipes/table.js.map +1 -1
  141. package/dist/recipes/tail.d.ts +40 -5
  142. package/dist/recipes/tail.js +37 -5
  143. package/dist/recipes/tail.js.map +1 -1
  144. package/dist/recipes/text.d.ts +16 -3
  145. package/dist/recipes/text.js +8 -3
  146. package/dist/recipes/text.js.map +1 -1
  147. package/dist/recipes/textarea.d.ts +46 -1
  148. package/dist/recipes/textarea.js +41 -1
  149. package/dist/recipes/textarea.js.map +1 -1
  150. package/dist/recipes/tile.d.ts +23 -1
  151. package/dist/recipes/tile.js +19 -1
  152. package/dist/recipes/tile.js.map +1 -1
  153. package/dist/recipes/tooltip.d.ts +8 -1
  154. package/dist/recipes/tooltip.js +7 -1
  155. package/dist/recipes/tooltip.js.map +1 -1
  156. package/dist/recipes/topBar.d.ts +43 -1
  157. package/dist/recipes/topBar.js +44 -1
  158. package/dist/recipes/topBar.js.map +1 -1
  159. package/dist/recipes/trail.d.ts +55 -5
  160. package/dist/recipes/trail.js +47 -5
  161. package/dist/recipes/trail.js.map +1 -1
  162. package/dist/recipes/userMenu.d.ts +23 -1
  163. package/dist/recipes/userMenu.js +24 -1
  164. package/dist/recipes/userMenu.js.map +1 -1
  165. package/package.json +1 -1
@@ -8,8 +8,17 @@ declare const metaRowLayouts: readonly ["justify", "inline", "note"];
8
8
  declare const metaRowEmphases: readonly ["normal", "strong"];
9
9
  declare const metaRowTones: readonly ["accent", "success", "warning", "info", "danger"];
10
10
  declare const metaRowRecipe: (props?: ({
11
- layout?: "inline" | "justify" | "note" | null | undefined;
11
+ layout?: "justify" | "inline" | "note" | null | undefined;
12
12
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
13
+ declare const metaRowAnatomy: {
14
+ readonly root: {
15
+ readonly part: "meta-row";
16
+ readonly recipe: (props?: ({
17
+ layout?: "justify" | "inline" | "note" | null | undefined;
18
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
19
+ readonly required: true;
20
+ };
21
+ };
13
22
  //#endregion
14
- export { type MetaRowEmphasis, type MetaRowLayout, type MetaRowPairedLayout, defaultMetaRowEmphasis, defaultMetaRowLayout, metaRowEmphases, metaRowLayouts, metaRowRecipe, metaRowTones };
23
+ export { type MetaRowEmphasis, type MetaRowLayout, type MetaRowPairedLayout, defaultMetaRowEmphasis, defaultMetaRowLayout, metaRowAnatomy, metaRowEmphases, metaRowLayouts, metaRowRecipe, metaRowTones };
15
24
  //# sourceMappingURL=metaRow.d.ts.map
@@ -1,3 +1,4 @@
1
+ import { anatomy } from "../anatomy.js";
1
2
  import { tones } from "../parts/tone.js";
2
3
  import { cva } from "class-variance-authority";
3
4
  //#region src/recipes/metaRow.ts
@@ -19,7 +20,12 @@ const metaRowRecipe = cva("flex items-baseline gap-2 tf-icons", {
19
20
  note: NOTE
20
21
  } }
21
22
  });
23
+ const metaRowAnatomy = anatomy({ root: {
24
+ part: "meta-row",
25
+ recipe: metaRowRecipe,
26
+ required: true
27
+ } });
22
28
  //#endregion
23
- export { defaultMetaRowEmphasis, defaultMetaRowLayout, metaRowEmphases, metaRowLayouts, metaRowRecipe, metaRowTones };
29
+ export { defaultMetaRowEmphasis, defaultMetaRowLayout, metaRowAnatomy, metaRowEmphases, metaRowLayouts, metaRowRecipe, metaRowTones };
24
30
 
25
31
  //# sourceMappingURL=metaRow.js.map
@@ -1 +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' | 'note'\n\ntype MetaRowPairedLayout = Exclude<MetaRowLayout, 'note'>\n\ntype MetaRowEmphasis = 'normal' | 'strong'\n\nconst defaultMetaRowLayout = 'justify' satisfies MetaRowLayout\n\nconst defaultMetaRowEmphasis = 'normal' satisfies MetaRowEmphasis\n\nconst metaRowLayouts = ['justify', 'inline', 'note'] as const satisfies readonly MetaRowLayout[]\n\nconst metaRowEmphases = ['normal', 'strong'] as const satisfies readonly MetaRowEmphasis[]\n\nconst metaRowTones = tones\n\nconst NOTE = ['items-center text-tf-muted', '[&_svg]:size-tf-icon-sm'].join(' ')\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 note: NOTE,\n } satisfies Record<MetaRowLayout, string>,\n },\n})\n\nexport {\n type MetaRowEmphasis,\n type MetaRowLayout,\n type MetaRowPairedLayout,\n defaultMetaRowEmphasis,\n defaultMetaRowLayout,\n metaRowEmphases,\n metaRowLayouts,\n metaRowRecipe,\n metaRowTones,\n}\n"],"mappings":";;;AAUA,MAAM,uBAAuB;AAE7B,MAAM,yBAAyB;AAE/B,MAAM,iBAAiB;CAAC;CAAW;CAAU;AAAM;AAEnD,MAAM,kBAAkB,CAAC,UAAU,QAAQ;AAE3C,MAAM,eAAe;AAErB,MAAM,OAAO,CAAC,8BAA8B,yBAAyB,CAAC,CAAC,KAAK,GAAG;AAE/E,MAAM,gBAAgB,IAAI,sCAAsC;CAC9D,iBAAiB,EAAE,QAAQ,qBAAqB;CAChD,UAAU,EACR,QAAQ;EACN,QAAQ;EACR,SAAS;EACT,MAAM;CACR,EACF;AACF,CAAC"}
1
+ {"version":3,"file":"metaRow.js","names":[],"sources":["../../src/recipes/metaRow.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nimport { anatomy } from '#anatomy'\nimport { tones } from '#parts/tone'\n\ntype MetaRowLayout = 'justify' | 'inline' | 'note'\n\ntype MetaRowPairedLayout = Exclude<MetaRowLayout, 'note'>\n\ntype MetaRowEmphasis = 'normal' | 'strong'\n\nconst defaultMetaRowLayout = 'justify' satisfies MetaRowLayout\n\nconst defaultMetaRowEmphasis = 'normal' satisfies MetaRowEmphasis\n\nconst metaRowLayouts = ['justify', 'inline', 'note'] as const satisfies readonly MetaRowLayout[]\n\nconst metaRowEmphases = ['normal', 'strong'] as const satisfies readonly MetaRowEmphasis[]\n\nconst metaRowTones = tones\n\nconst NOTE = ['items-center text-tf-muted', '[&_svg]:size-tf-icon-sm'].join(' ')\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 note: NOTE,\n } satisfies Record<MetaRowLayout, string>,\n },\n})\n\nconst metaRowAnatomy = anatomy({\n root: { part: 'meta-row', recipe: metaRowRecipe, required: true },\n})\n\nexport {\n type MetaRowEmphasis,\n type MetaRowLayout,\n type MetaRowPairedLayout,\n defaultMetaRowEmphasis,\n defaultMetaRowLayout,\n metaRowAnatomy,\n metaRowEmphases,\n metaRowLayouts,\n metaRowRecipe,\n metaRowTones,\n}\n"],"mappings":";;;;AAWA,MAAM,uBAAuB;AAE7B,MAAM,yBAAyB;AAE/B,MAAM,iBAAiB;CAAC;CAAW;CAAU;AAAM;AAEnD,MAAM,kBAAkB,CAAC,UAAU,QAAQ;AAE3C,MAAM,eAAe;AAErB,MAAM,OAAO,CAAC,8BAA8B,yBAAyB,CAAC,CAAC,KAAK,GAAG;AAE/E,MAAM,gBAAgB,IAAI,sCAAsC;CAC9D,iBAAiB,EAAE,QAAQ,qBAAqB;CAChD,UAAU,EACR,QAAQ;EACN,QAAQ;EACR,SAAS;EACT,MAAM;CACR,EACF;AACF,CAAC;AAED,MAAM,iBAAiB,QAAQ,EAC7B,MAAM;CAAE,MAAM;CAAY,QAAQ;CAAe,UAAU;AAAK,EAClE,CAAC"}
@@ -13,11 +13,45 @@ declare const meterPartsRecipe: (props?: ({
13
13
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
14
14
  type MeterPartEdge = 'end' | 'inner' | 'only' | 'start';
15
15
  declare const meterPartRecipe: (props?: ({
16
- edge?: "inner" | "end" | "only" | "start" | null | undefined;
16
+ edge?: "start" | "end" | "inner" | "only" | null | undefined;
17
17
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
18
18
  declare const meterLegendRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
19
19
  declare const meterLegendItemRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
20
20
  declare const meterLegendDotRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
21
+ declare const meterAnatomy: {
22
+ readonly caption: {
23
+ readonly part: "caption";
24
+ readonly recipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
25
+ readonly required: false;
26
+ };
27
+ readonly head: {
28
+ readonly part: "head";
29
+ readonly recipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
30
+ readonly required: false;
31
+ };
32
+ readonly legend: {
33
+ readonly part: "legend";
34
+ readonly recipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
35
+ readonly required: false;
36
+ };
37
+ readonly parts: {
38
+ readonly part: "parts";
39
+ readonly recipe: (props?: ({
40
+ variant?: "share" | "split" | "slots" | null | undefined;
41
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
42
+ readonly required: false;
43
+ };
44
+ readonly reading: {
45
+ readonly part: "reading";
46
+ readonly recipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
47
+ readonly required: false;
48
+ };
49
+ readonly root: {
50
+ readonly part: "meter";
51
+ readonly recipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
52
+ readonly required: true;
53
+ };
54
+ };
21
55
  //#endregion
22
- export { type MeterPartEdge, type MeterVariant, defaultMeterVariant, meterCaptionRecipe, meterHeadRecipe, meterLegendDotRecipe, meterLegendItemRecipe, meterLegendRecipe, meterPartRecipe, meterPartsRecipe, meterRangeRecipe, meterReadingRecipe, meterRecipe, meterTrackRecipe, meterVariants };
56
+ export { type MeterPartEdge, type MeterVariant, defaultMeterVariant, meterAnatomy, meterCaptionRecipe, meterHeadRecipe, meterLegendDotRecipe, meterLegendItemRecipe, meterLegendRecipe, meterPartRecipe, meterPartsRecipe, meterRangeRecipe, meterReadingRecipe, meterRecipe, meterTrackRecipe, meterVariants };
23
57
  //# sourceMappingURL=meter.d.ts.map
@@ -1,3 +1,4 @@
1
+ import { anatomy } from "../anatomy.js";
1
2
  import { valueGlide } from "./motion.js";
2
3
  import { cva } from "class-variance-authority";
3
4
  //#region src/recipes/meter.ts
@@ -33,7 +34,39 @@ const meterPartRecipe = cva(["bg-tf-blend", ...valueGlide], {
33
34
  const meterLegendRecipe = cva("flex flex-wrap gap-x-4 gap-y-2");
34
35
  const meterLegendItemRecipe = cva("flex items-center gap-2 text-tf-caption-sm text-tf-muted");
35
36
  const meterLegendDotRecipe = cva("size-2 flex-none rounded-tf-pill bg-tf-blend");
37
+ const meterAnatomy = anatomy({
38
+ caption: {
39
+ part: "caption",
40
+ recipe: meterCaptionRecipe,
41
+ required: false
42
+ },
43
+ head: {
44
+ part: "head",
45
+ recipe: meterHeadRecipe,
46
+ required: false
47
+ },
48
+ legend: {
49
+ part: "legend",
50
+ recipe: meterLegendRecipe,
51
+ required: false
52
+ },
53
+ parts: {
54
+ part: "parts",
55
+ recipe: meterPartsRecipe,
56
+ required: false
57
+ },
58
+ reading: {
59
+ part: "reading",
60
+ recipe: meterReadingRecipe,
61
+ required: false
62
+ },
63
+ root: {
64
+ part: "meter",
65
+ recipe: meterRecipe,
66
+ required: true
67
+ }
68
+ });
36
69
  //#endregion
37
- export { defaultMeterVariant, meterCaptionRecipe, meterHeadRecipe, meterLegendDotRecipe, meterLegendItemRecipe, meterLegendRecipe, meterPartRecipe, meterPartsRecipe, meterRangeRecipe, meterReadingRecipe, meterRecipe, meterTrackRecipe, meterVariants };
70
+ export { defaultMeterVariant, meterAnatomy, meterCaptionRecipe, meterHeadRecipe, meterLegendDotRecipe, meterLegendItemRecipe, meterLegendRecipe, meterPartRecipe, meterPartsRecipe, meterRangeRecipe, meterReadingRecipe, meterRecipe, meterTrackRecipe, meterVariants };
38
71
 
39
72
  //# sourceMappingURL=meter.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"meter.js","names":[],"sources":["../../src/recipes/meter.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nimport { anatomy } from '#anatomy'\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\nconst meterAnatomy = anatomy({\n caption: { part: 'caption', recipe: meterCaptionRecipe, required: false },\n head: { part: 'head', recipe: meterHeadRecipe, required: false },\n legend: { part: 'legend', recipe: meterLegendRecipe, required: false },\n parts: { part: 'parts', recipe: meterPartsRecipe, required: false },\n reading: { part: 'reading', recipe: meterReadingRecipe, required: false },\n root: { part: 'meter', recipe: meterRecipe, required: true },\n})\n\nexport {\n type MeterPartEdge,\n type MeterVariant,\n defaultMeterVariant,\n meterAnatomy,\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":";;;;AAMA,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;AAE/E,MAAM,eAAe,QAAQ;CAC3B,SAAS;EAAE,MAAM;EAAW,QAAQ;EAAoB,UAAU;CAAM;CACxE,MAAM;EAAE,MAAM;EAAQ,QAAQ;EAAiB,UAAU;CAAM;CAC/D,QAAQ;EAAE,MAAM;EAAU,QAAQ;EAAmB,UAAU;CAAM;CACrE,OAAO;EAAE,MAAM;EAAS,QAAQ;EAAkB,UAAU;CAAM;CAClE,SAAS;EAAE,MAAM;EAAW,QAAQ;EAAoB,UAAU;CAAM;CACxE,MAAM;EAAE,MAAM;EAAS,QAAQ;EAAa,UAAU;CAAK;AAC7D,CAAC"}
@@ -1,6 +1,14 @@
1
1
  //#region src/recipes/motion.d.ts
2
2
  declare const overlayMotion: string[];
3
+ declare const arrivalMotion: string[];
4
+ declare const drawerMotion: string[];
5
+ declare const liftMotion: string[];
6
+ declare const mirrorMotion: string[];
7
+ declare const scrimMirrorMotion: string[];
8
+ declare const railMorph = "tf-transition tf-rails motion-reduce:transition-none";
9
+ declare const valueGlide: string[];
3
10
  declare const collapseMotion: string[];
11
+ declare const railCollapse: string;
4
12
  //#endregion
5
- export { collapseMotion, overlayMotion };
13
+ export { arrivalMotion, collapseMotion, drawerMotion, liftMotion, mirrorMotion, overlayMotion, railCollapse, railMorph, scrimMirrorMotion, valueGlide };
6
14
  //# sourceMappingURL=motion.d.ts.map
@@ -1,5 +1,5 @@
1
- import { toneBlend } from "../tone.js";
2
1
  import { defaultTone, tones } from "../parts/tone.js";
2
+ import { toneBlend } from "../tone.js";
3
3
  import { cva } from "class-variance-authority";
4
4
  //#region src/recipes/nebula.ts
5
5
  const defaultNebulaTone = defaultTone;
@@ -10,6 +10,49 @@ declare const numberRangeDashRecipe: (props?: ({
10
10
  labelled?: boolean | null | undefined;
11
11
  size?: "md" | "lg" | null | undefined;
12
12
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
13
+ declare const numberRangeAnatomy: {
14
+ readonly cloud: {
15
+ readonly part: "cloud";
16
+ readonly recipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
17
+ readonly required: true;
18
+ };
19
+ readonly dash: {
20
+ readonly part: "dash";
21
+ readonly recipe: (props?: ({
22
+ filled?: boolean | null | undefined;
23
+ labelled?: boolean | null | undefined;
24
+ size?: "md" | "lg" | null | undefined;
25
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
26
+ readonly required: true;
27
+ };
28
+ readonly foot: {
29
+ readonly part: "foot";
30
+ readonly recipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
31
+ readonly required: true;
32
+ };
33
+ readonly nebula: {
34
+ readonly part: "nebula";
35
+ readonly recipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
36
+ readonly required: true;
37
+ };
38
+ readonly root: {
39
+ readonly part: "number-range";
40
+ readonly recipe: (props?: ({
41
+ fullWidth?: boolean | null | undefined;
42
+ message?: boolean | null | undefined;
43
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
44
+ readonly required: true;
45
+ };
46
+ readonly row: {
47
+ readonly part: "row";
48
+ readonly recipe: (props?: ({
49
+ invalid?: boolean | null | undefined;
50
+ loading?: boolean | null | undefined;
51
+ size?: "md" | "lg" | null | undefined;
52
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
53
+ readonly required: true;
54
+ };
55
+ };
13
56
  //#endregion
14
- export { numberRangeDashRecipe, numberRangeHalfRecipe, numberRangeRecipe };
57
+ export { numberRangeAnatomy, numberRangeDashRecipe, numberRangeHalfRecipe, numberRangeRecipe };
15
58
  //# sourceMappingURL=numberRange.d.ts.map
@@ -1,4 +1,7 @@
1
+ import { anatomy } from "../anatomy.js";
2
+ import { nebulaCloudLowRecipe, nebulaVeilRecipe } from "./nebula.js";
1
3
  import "../control.js";
4
+ import { fieldFootRecipe, fieldRecipe, fieldRowRecipe } from "./field.js";
2
5
  import { labelRoom } from "./input.js";
3
6
  import { cva } from "class-variance-authority";
4
7
  //#region src/recipes/numberRange.ts
@@ -103,7 +106,39 @@ const numberRangeDashRecipe = cva([
103
106
  }
104
107
  }
105
108
  });
109
+ const numberRangeAnatomy = anatomy({
110
+ cloud: {
111
+ part: "cloud",
112
+ recipe: nebulaCloudLowRecipe,
113
+ required: true
114
+ },
115
+ dash: {
116
+ part: "dash",
117
+ recipe: numberRangeDashRecipe,
118
+ required: true
119
+ },
120
+ foot: {
121
+ part: "foot",
122
+ recipe: fieldFootRecipe,
123
+ required: true
124
+ },
125
+ nebula: {
126
+ part: "nebula",
127
+ recipe: nebulaVeilRecipe,
128
+ required: true
129
+ },
130
+ root: {
131
+ part: "number-range",
132
+ recipe: fieldRecipe,
133
+ required: true
134
+ },
135
+ row: {
136
+ part: "row",
137
+ recipe: fieldRowRecipe,
138
+ required: true
139
+ }
140
+ });
106
141
  //#endregion
107
- export { numberRangeDashRecipe, numberRangeHalfRecipe, numberRangeRecipe };
142
+ export { numberRangeAnatomy, numberRangeDashRecipe, numberRangeHalfRecipe, numberRangeRecipe };
108
143
 
109
144
  //# sourceMappingURL=numberRange.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"numberRange.js","names":[],"sources":["../../src/recipes/numberRange.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nimport { anatomy } from '#anatomy'\nimport type { FieldSize } from '#control'\nimport { defaultFieldSize } from '#control'\n\nimport { fieldFootRecipe, fieldRecipe, fieldRowRecipe } from './field'\nimport { labelRoom } from './input'\nimport { nebulaCloudLowRecipe, nebulaVeilRecipe } from './nebula'\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\nconst numberRangeAnatomy = anatomy({\n cloud: { part: 'cloud', recipe: nebulaCloudLowRecipe, required: true },\n dash: { part: 'dash', recipe: numberRangeDashRecipe, required: true },\n foot: { part: 'foot', recipe: fieldFootRecipe, required: true },\n nebula: { part: 'nebula', recipe: nebulaVeilRecipe, required: true },\n root: { part: 'number-range', recipe: fieldRecipe, required: true },\n row: { part: 'row', recipe: fieldRowRecipe, required: true },\n})\n\nexport { numberRangeAnatomy, numberRangeDashRecipe, numberRangeHalfRecipe, numberRangeRecipe }\n"],"mappings":";;;;;;;AAqBA,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;AAEA,MAAM,qBAAqB,QAAQ;CACjC,OAAO;EAAE,MAAM;EAAS,QAAQ;EAAsB,UAAU;CAAK;CACrE,MAAM;EAAE,MAAM;EAAQ,QAAQ;EAAuB,UAAU;CAAK;CACpE,MAAM;EAAE,MAAM;EAAQ,QAAQ;EAAiB,UAAU;CAAK;CAC9D,QAAQ;EAAE,MAAM;EAAU,QAAQ;EAAkB,UAAU;CAAK;CACnE,MAAM;EAAE,MAAM;EAAgB,QAAQ;EAAa,UAAU;CAAK;CAClE,KAAK;EAAE,MAAM;EAAO,QAAQ;EAAgB,UAAU;CAAK;AAC7D,CAAC"}
@@ -23,8 +23,61 @@ declare const paperBadgeRecipe: (props?: ({
23
23
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
24
24
  declare const paperActionRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
25
25
  declare const paperVariants: readonly ["plain", "elevated"];
26
- declare const paperTones: readonly ["accent", "success", "warning", "info", "danger"];
27
26
  declare const paperInsets: readonly ["padded", "flush", "roomy"];
27
+ declare const paperAnatomy: {
28
+ readonly action: {
29
+ readonly part: "action";
30
+ readonly recipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
31
+ readonly required: false;
32
+ };
33
+ readonly badge: {
34
+ readonly part: "badge";
35
+ readonly recipe: (props?: ({
36
+ headed?: boolean | null | undefined;
37
+ inset?: "roomy" | "padded" | "flush" | null | undefined;
38
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
39
+ readonly required: false;
40
+ };
41
+ readonly body: {
42
+ readonly part: "body";
43
+ readonly recipe: (props?: ({
44
+ inset?: "roomy" | "padded" | "flush" | null | undefined;
45
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
46
+ readonly required: true;
47
+ };
48
+ readonly cloud: {
49
+ readonly part: "cloud";
50
+ readonly recipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
51
+ readonly required: false;
52
+ };
53
+ readonly header: {
54
+ readonly part: "header";
55
+ readonly recipe: (props?: ({
56
+ inset?: "roomy" | "padded" | "flush" | null | undefined;
57
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
58
+ readonly required: false;
59
+ };
60
+ readonly nebula: {
61
+ readonly part: "nebula";
62
+ readonly recipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
63
+ readonly required: false;
64
+ };
65
+ readonly root: {
66
+ readonly part: "paper";
67
+ readonly recipe: (props?: ({
68
+ tone?: "accent" | "success" | "warning" | "info" | "danger" | null | undefined;
69
+ variant?: "plain" | "elevated" | null | undefined;
70
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
71
+ readonly required: true;
72
+ };
73
+ readonly rule: {
74
+ readonly part: "rule";
75
+ readonly recipe: (props?: ({
76
+ inset?: "roomy" | "padded" | "flush" | null | undefined;
77
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
78
+ readonly required: false;
79
+ };
80
+ };
28
81
  //#endregion
29
- export { type PaperInset, type PaperVariant, defaultPaperInset, defaultPaperTone, defaultPaperVariant, paperActionRecipe, paperBadgeRecipe, paperBodyRecipe, paperHeaderRecipe, paperInsets, paperRecipe, paperRuleRecipe, paperTones, paperVariants };
82
+ export { type PaperInset, type PaperVariant, defaultPaperInset, defaultPaperTone, defaultPaperVariant, paperActionRecipe, paperAnatomy, paperBadgeRecipe, paperBodyRecipe, paperHeaderRecipe, paperInsets, paperRecipe, paperRuleRecipe, paperVariants };
30
83
  //# sourceMappingURL=paper.d.ts.map
@@ -1,7 +1,9 @@
1
- import { toneBlend } from "../tone.js";
1
+ import { anatomy } from "../anatomy.js";
2
2
  import { ruleFading } from "../parts/rule.js";
3
- import { defaultTone, tones } from "../parts/tone.js";
4
3
  import { surfaceLifted, surfaceSkin } from "../parts/surface.js";
4
+ import { defaultTone } from "../parts/tone.js";
5
+ import { toneBlend } from "../tone.js";
6
+ import { nebulaCloudWideRecipe, nebulaVeilRecipe } from "./nebula.js";
5
7
  import { cva } from "class-variance-authority";
6
8
  //#region src/recipes/paper.ts
7
9
  const defaultPaperVariant = "plain";
@@ -71,13 +73,54 @@ const paperBadgeRecipe = cva("absolute", {
71
73
  });
72
74
  const paperActionRecipe = cva("-mr-3 flex min-w-0 flex-initial flex-wrap items-center justify-end gap-4");
73
75
  const paperVariants = ["plain", "elevated"];
74
- const paperTones = tones;
75
76
  const paperInsets = [
76
77
  "padded",
77
78
  "flush",
78
79
  "roomy"
79
80
  ];
81
+ const paperAnatomy = anatomy({
82
+ action: {
83
+ part: "action",
84
+ recipe: paperActionRecipe,
85
+ required: false
86
+ },
87
+ badge: {
88
+ part: "badge",
89
+ recipe: paperBadgeRecipe,
90
+ required: false
91
+ },
92
+ body: {
93
+ part: "body",
94
+ recipe: paperBodyRecipe,
95
+ required: true
96
+ },
97
+ cloud: {
98
+ part: "cloud",
99
+ recipe: nebulaCloudWideRecipe,
100
+ required: false
101
+ },
102
+ header: {
103
+ part: "header",
104
+ recipe: paperHeaderRecipe,
105
+ required: false
106
+ },
107
+ nebula: {
108
+ part: "nebula",
109
+ recipe: nebulaVeilRecipe,
110
+ required: false
111
+ },
112
+ root: {
113
+ part: "paper",
114
+ recipe: paperRecipe,
115
+ required: true
116
+ },
117
+ rule: {
118
+ part: "rule",
119
+ recipe: paperRuleRecipe,
120
+ required: false
121
+ }
122
+ });
80
123
  //#endregion
81
- export { defaultPaperInset, defaultPaperTone, defaultPaperVariant, paperActionRecipe, paperBadgeRecipe, paperBodyRecipe, paperHeaderRecipe, paperInsets, paperRecipe, paperRuleRecipe, paperTones, paperVariants };
124
+ export { defaultPaperInset, defaultPaperTone, defaultPaperVariant, paperActionRecipe, paperAnatomy, paperBadgeRecipe, paperBodyRecipe, paperHeaderRecipe, paperInsets, paperRecipe, paperRuleRecipe, paperVariants };
82
125
 
83
126
  //# sourceMappingURL=paper.js.map
@@ -1 +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, surfaceSkin } from '#parts/surface'\nimport { defaultTone, tones } from '#parts/tone'\nimport type { Tone } from '#tone'\nimport { toneBlend } from '#tone'\n\ntype PaperVariant = 'plain' | 'elevated'\n\ntype PaperInset = 'padded' | 'flush' | 'roomy'\n\nconst defaultPaperVariant = 'plain' satisfies PaperVariant\n\nconst defaultPaperInset = 'padded' satisfies PaperInset\n\nconst defaultPaperTone = defaultTone\n\nconst paperBase = [\n '@container relative w-full',\n ...surfaceSkin,\n 'font-tf-body text-tf-body-sm font-medium text-tf-fg',\n]\n\nconst paperRecipe = cva(paperBase, {\n defaultVariants: { tone: defaultPaperTone, variant: defaultPaperVariant },\n variants: {\n tone: toneBlend satisfies Record<Tone, string>,\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 ROOMY_GUTTER = 'px-6 @tf-panel:px-14'\n\nconst RIBS = 'py-6 @tf-panel:py-8'\n\nconst ROOMY_RIBS = 'py-8 @tf-panel:py-14'\n\nconst paperBodyRecipe = cva('', {\n defaultVariants: { inset: defaultPaperInset },\n variants: {\n inset: {\n flush: RIBS,\n padded: `${RIBS} ${GUTTER}`,\n roomy: `${ROOMY_RIBS} ${ROOMY_GUTTER}`,\n } 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`, HEAD_ROW],\n {\n defaultVariants: { inset: defaultPaperInset },\n variants: {\n inset: {\n flush: GUTTER,\n padded: GUTTER,\n roomy: ROOMY_GUTTER,\n } satisfies Record<PaperInset, string>,\n },\n },\n)\n\nconst paperRuleRecipe = cva(`absolute bottom-0 ${ruleFading}`, {\n defaultVariants: { inset: defaultPaperInset },\n variants: {\n inset: {\n flush: 'inset-x-4 @tf-panel:inset-x-8',\n padded: 'inset-x-4 @tf-panel:inset-x-8',\n roomy: 'inset-x-6 @tf-panel:inset-x-14',\n } satisfies Record<PaperInset, string>,\n },\n})\n\nconst paperBadgeRecipe = cva('absolute', {\n defaultVariants: { headed: false, inset: defaultPaperInset },\n variants: {\n headed: { false: 'top-4', true: 'top-10 -translate-y-1/2' },\n inset: {\n flush: 'right-4 @tf-panel:right-8',\n padded: 'right-4 @tf-panel:right-8',\n roomy: 'right-6 @tf-panel:right-14',\n } satisfies Record<PaperInset, string>,\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 paperTones = tones\n\nconst paperInsets = ['padded', 'flush', 'roomy'] as const satisfies readonly PaperInset[]\n\nexport {\n type PaperInset,\n type PaperVariant,\n defaultPaperInset,\n defaultPaperTone,\n defaultPaperVariant,\n paperActionRecipe,\n paperBadgeRecipe,\n paperBodyRecipe,\n paperHeaderRecipe,\n paperInsets,\n paperRecipe,\n paperRuleRecipe,\n paperTones,\n paperVariants,\n}\n"],"mappings":";;;;;;AAYA,MAAM,sBAAsB;AAE5B,MAAM,oBAAoB;AAE1B,MAAM,mBAAmB;AAEzB,MAAM,YAAY;CAChB;CACA,GAAG;CACH;AACF;AAEA,MAAM,cAAc,IAAI,WAAW;CACjC,iBAAiB;EAAE,MAAM;EAAkB,SAAS;CAAoB;CACxE,UAAU;EACR,MAAM;EACN,SAAS;GACP,UAAU,cAAc,KAAK,GAAG;GAChC,OAAO;EACT;CACF;AACF,CAAC;AAED,MAAM,SAAS;AAEf,MAAM,eAAe;AAErB,MAAM,OAAO;AAIb,MAAM,kBAAkB,IAAI,IAAI;CAC9B,iBAAiB,EAAE,OAAO,kBAAkB;CAC5C,UAAU,EACR,OAAO;EACL,OAAO;EACP,QAAQ,GAAG,KAAK,GAAG;EACnB,OAAO,wBAAiB;CAC1B,EACF;AACF,CAAC;AAID,MAAM,oBAAoB,IACxB,CAAC,mEAAmE,8DAAQ,GAC5E;CACE,iBAAiB,EAAE,OAAO,kBAAkB;CAC5C,UAAU,EACR,OAAO;EACL,OAAO;EACP,QAAQ;EACR,OAAO;CACT,EACF;AACF,CACF;AAEA,MAAM,kBAAkB,IAAI,qBAAqB,cAAc;CAC7D,iBAAiB,EAAE,OAAO,kBAAkB;CAC5C,UAAU,EACR,OAAO;EACL,OAAO;EACP,QAAQ;EACR,OAAO;CACT,EACF;AACF,CAAC;AAED,MAAM,mBAAmB,IAAI,YAAY;CACvC,iBAAiB;EAAE,QAAQ;EAAO,OAAO;CAAkB;CAC3D,UAAU;EACR,QAAQ;GAAE,OAAO;GAAS,MAAM;EAA0B;EAC1D,OAAO;GACL,OAAO;GACP,QAAQ;GACR,OAAO;EACT;CACF;AACF,CAAC;AAED,MAAM,oBAAoB,IACxB,0EACF;AAEA,MAAM,gBAAgB,CAAC,SAAS,UAAU;AAE1C,MAAM,aAAa;AAEnB,MAAM,cAAc;CAAC;CAAU;CAAS;AAAO"}
1
+ {"version":3,"file":"paper.js","names":[],"sources":["../../src/recipes/paper.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nimport { anatomy } from '#anatomy'\nimport { ruleFading } from '#parts/rule'\nimport { surfaceLifted, surfaceSkin } from '#parts/surface'\nimport { defaultTone } from '#parts/tone'\nimport type { Tone } from '#tone'\nimport { toneBlend } from '#tone'\n\nimport { nebulaCloudWideRecipe, nebulaVeilRecipe } from './nebula'\n\ntype PaperVariant = 'plain' | 'elevated'\n\ntype PaperInset = 'padded' | 'flush' | 'roomy'\n\nconst defaultPaperVariant = 'plain' satisfies PaperVariant\n\nconst defaultPaperInset = 'padded' satisfies PaperInset\n\nconst defaultPaperTone = defaultTone\n\nconst paperBase = [\n '@container relative w-full',\n ...surfaceSkin,\n 'font-tf-body text-tf-body-sm font-medium text-tf-fg',\n]\n\nconst paperRecipe = cva(paperBase, {\n defaultVariants: { tone: defaultPaperTone, variant: defaultPaperVariant },\n variants: {\n tone: toneBlend satisfies Record<Tone, string>,\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 ROOMY_GUTTER = 'px-6 @tf-panel:px-14'\n\nconst RIBS = 'py-6 @tf-panel:py-8'\n\nconst ROOMY_RIBS = 'py-8 @tf-panel:py-14'\n\nconst paperBodyRecipe = cva('', {\n defaultVariants: { inset: defaultPaperInset },\n variants: {\n inset: {\n flush: RIBS,\n padded: `${RIBS} ${GUTTER}`,\n roomy: `${ROOMY_RIBS} ${ROOMY_GUTTER}`,\n } 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`, HEAD_ROW],\n {\n defaultVariants: { inset: defaultPaperInset },\n variants: {\n inset: {\n flush: GUTTER,\n padded: GUTTER,\n roomy: ROOMY_GUTTER,\n } satisfies Record<PaperInset, string>,\n },\n },\n)\n\nconst paperRuleRecipe = cva(`absolute bottom-0 ${ruleFading}`, {\n defaultVariants: { inset: defaultPaperInset },\n variants: {\n inset: {\n flush: 'inset-x-4 @tf-panel:inset-x-8',\n padded: 'inset-x-4 @tf-panel:inset-x-8',\n roomy: 'inset-x-6 @tf-panel:inset-x-14',\n } satisfies Record<PaperInset, string>,\n },\n})\n\nconst paperBadgeRecipe = cva('absolute', {\n defaultVariants: { headed: false, inset: defaultPaperInset },\n variants: {\n headed: { false: 'top-4', true: 'top-10 -translate-y-1/2' },\n inset: {\n flush: 'right-4 @tf-panel:right-8',\n padded: 'right-4 @tf-panel:right-8',\n roomy: 'right-6 @tf-panel:right-14',\n } satisfies Record<PaperInset, string>,\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', 'roomy'] as const satisfies readonly PaperInset[]\n\nconst paperAnatomy = anatomy({\n action: { part: 'action', recipe: paperActionRecipe, required: false },\n badge: { part: 'badge', recipe: paperBadgeRecipe, required: false },\n body: { part: 'body', recipe: paperBodyRecipe, required: true },\n cloud: { part: 'cloud', recipe: nebulaCloudWideRecipe, required: false },\n header: { part: 'header', recipe: paperHeaderRecipe, required: false },\n nebula: { part: 'nebula', recipe: nebulaVeilRecipe, required: false },\n root: { part: 'paper', recipe: paperRecipe, required: true },\n rule: { part: 'rule', recipe: paperRuleRecipe, required: false },\n})\n\nexport {\n type PaperInset,\n type PaperVariant,\n defaultPaperInset,\n defaultPaperTone,\n defaultPaperVariant,\n paperActionRecipe,\n paperAnatomy,\n paperBadgeRecipe,\n paperBodyRecipe,\n paperHeaderRecipe,\n paperInsets,\n paperRecipe,\n paperRuleRecipe,\n paperVariants,\n}\n"],"mappings":";;;;;;;;AAeA,MAAM,sBAAsB;AAE5B,MAAM,oBAAoB;AAE1B,MAAM,mBAAmB;AAEzB,MAAM,YAAY;CAChB;CACA,GAAG;CACH;AACF;AAEA,MAAM,cAAc,IAAI,WAAW;CACjC,iBAAiB;EAAE,MAAM;EAAkB,SAAS;CAAoB;CACxE,UAAU;EACR,MAAM;EACN,SAAS;GACP,UAAU,cAAc,KAAK,GAAG;GAChC,OAAO;EACT;CACF;AACF,CAAC;AAED,MAAM,SAAS;AAEf,MAAM,eAAe;AAErB,MAAM,OAAO;AAIb,MAAM,kBAAkB,IAAI,IAAI;CAC9B,iBAAiB,EAAE,OAAO,kBAAkB;CAC5C,UAAU,EACR,OAAO;EACL,OAAO;EACP,QAAQ,GAAG,KAAK,GAAG;EACnB,OAAO,wBAAiB;CAC1B,EACF;AACF,CAAC;AAID,MAAM,oBAAoB,IACxB,CAAC,mEAAmE,8DAAQ,GAC5E;CACE,iBAAiB,EAAE,OAAO,kBAAkB;CAC5C,UAAU,EACR,OAAO;EACL,OAAO;EACP,QAAQ;EACR,OAAO;CACT,EACF;AACF,CACF;AAEA,MAAM,kBAAkB,IAAI,qBAAqB,cAAc;CAC7D,iBAAiB,EAAE,OAAO,kBAAkB;CAC5C,UAAU,EACR,OAAO;EACL,OAAO;EACP,QAAQ;EACR,OAAO;CACT,EACF;AACF,CAAC;AAED,MAAM,mBAAmB,IAAI,YAAY;CACvC,iBAAiB;EAAE,QAAQ;EAAO,OAAO;CAAkB;CAC3D,UAAU;EACR,QAAQ;GAAE,OAAO;GAAS,MAAM;EAA0B;EAC1D,OAAO;GACL,OAAO;GACP,QAAQ;GACR,OAAO;EACT;CACF;AACF,CAAC;AAED,MAAM,oBAAoB,IACxB,0EACF;AAEA,MAAM,gBAAgB,CAAC,SAAS,UAAU;AAE1C,MAAM,cAAc;CAAC;CAAU;CAAS;AAAO;AAE/C,MAAM,eAAe,QAAQ;CAC3B,QAAQ;EAAE,MAAM;EAAU,QAAQ;EAAmB,UAAU;CAAM;CACrE,OAAO;EAAE,MAAM;EAAS,QAAQ;EAAkB,UAAU;CAAM;CAClE,MAAM;EAAE,MAAM;EAAQ,QAAQ;EAAiB,UAAU;CAAK;CAC9D,OAAO;EAAE,MAAM;EAAS,QAAQ;EAAuB,UAAU;CAAM;CACvE,QAAQ;EAAE,MAAM;EAAU,QAAQ;EAAmB,UAAU;CAAM;CACrE,QAAQ;EAAE,MAAM;EAAU,QAAQ;EAAkB,UAAU;CAAM;CACpE,MAAM;EAAE,MAAM;EAAS,QAAQ;EAAa,UAAU;CAAK;CAC3D,MAAM;EAAE,MAAM;EAAQ,QAAQ;EAAiB,UAAU;CAAM;AACjE,CAAC"}
@@ -2,6 +2,13 @@
2
2
  declare const progressBarTones: readonly ["accent", "success", "warning", "info", "danger"];
3
3
  declare const progressBarTrackRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
4
4
  declare const progressBarRangeRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
5
+ declare const progressBarAnatomy: {
6
+ readonly root: {
7
+ readonly part: "progress-bar";
8
+ readonly recipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
9
+ readonly required: true;
10
+ };
11
+ };
5
12
  //#endregion
6
- export { progressBarRangeRecipe, progressBarTones, progressBarTrackRecipe };
13
+ export { progressBarAnatomy, progressBarRangeRecipe, progressBarTones, progressBarTrackRecipe };
7
14
  //# sourceMappingURL=progressBar.d.ts.map
@@ -1,3 +1,4 @@
1
+ import { anatomy } from "../anatomy.js";
1
2
  import { valueGlide } from "./motion.js";
2
3
  import { tones } from "../parts/tone.js";
3
4
  import { cva } from "class-variance-authority";
@@ -5,7 +6,12 @@ import { cva } from "class-variance-authority";
5
6
  const progressBarTones = tones;
6
7
  const progressBarTrackRecipe = cva("block h-2.5 overflow-hidden rounded-tf-pill bg-tf-sunken");
7
8
  const progressBarRangeRecipe = cva(["block h-full rounded-tf-pill bg-tf-blend", ...valueGlide]);
9
+ const progressBarAnatomy = anatomy({ root: {
10
+ part: "progress-bar",
11
+ recipe: progressBarTrackRecipe,
12
+ required: true
13
+ } });
8
14
  //#endregion
9
- export { progressBarRangeRecipe, progressBarTones, progressBarTrackRecipe };
15
+ export { progressBarAnatomy, progressBarRangeRecipe, progressBarTones, progressBarTrackRecipe };
10
16
 
11
17
  //# sourceMappingURL=progressBar.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"progressBar.js","names":[],"sources":["../../src/recipes/progressBar.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nimport { anatomy } from '#anatomy'\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\nconst progressBarAnatomy = anatomy({\n root: { part: 'progress-bar', recipe: progressBarTrackRecipe, required: true },\n})\n\nexport { progressBarAnatomy, progressBarRangeRecipe, progressBarTones, progressBarTrackRecipe }\n"],"mappings":";;;;;AAOA,MAAM,mBAAmB;AAEzB,MAAM,yBAAyB,IAAI,0DAA0D;AAE7F,MAAM,yBAAyB,IAAI,CAAC,4CAA4C,GAAG,UAAU,CAAC;AAE9F,MAAM,qBAAqB,QAAQ,EACjC,MAAM;CAAE,MAAM;CAAgB,QAAQ;CAAwB,UAAU;AAAK,EAC/E,CAAC"}
@@ -11,6 +11,38 @@ declare const queueAgeLabelRecipe: (props?: ({
11
11
  declare const queueAgeTrackRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
12
12
  declare const queueAgeFillRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
13
13
  declare const queueDotRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
14
+ declare const queueAnatomy: {
15
+ readonly age: {
16
+ readonly part: "age";
17
+ readonly recipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
18
+ readonly required: true;
19
+ };
20
+ readonly dot: {
21
+ readonly part: "dot";
22
+ readonly recipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
23
+ readonly required: false;
24
+ };
25
+ readonly hint: {
26
+ readonly part: "hint";
27
+ readonly recipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
28
+ readonly required: true;
29
+ };
30
+ readonly lead: {
31
+ readonly part: "lead";
32
+ readonly recipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
33
+ readonly required: true;
34
+ };
35
+ readonly rank: {
36
+ readonly part: "rank";
37
+ readonly recipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
38
+ readonly required: false;
39
+ };
40
+ readonly root: {
41
+ readonly part: "queue";
42
+ readonly recipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
43
+ readonly required: true;
44
+ };
45
+ };
14
46
  //#endregion
15
- export { queueAgeFillRecipe, queueAgeLabelRecipe, queueAgeRecipe, queueAgeTrackRecipe, queueDotRecipe, queueHintRecipe, queueLeadRecipe, queueRecipe, queueRowRecipe, queueTextRecipe };
47
+ export { queueAgeFillRecipe, queueAgeLabelRecipe, queueAgeRecipe, queueAgeTrackRecipe, queueAnatomy, queueDotRecipe, queueHintRecipe, queueLeadRecipe, queueRecipe, queueRowRecipe, queueTextRecipe };
16
48
  //# sourceMappingURL=queue.d.ts.map
@@ -1,3 +1,5 @@
1
+ import { anatomy } from "../anatomy.js";
2
+ import { tableRankRecipe } from "./table.js";
1
3
  import { cva } from "class-variance-authority";
2
4
  //#region src/recipes/queue.ts
3
5
  const queueRecipe = cva("@container flex w-full flex-col gap-1 rounded-tf-block bg-tf-sunken p-3");
@@ -21,7 +23,39 @@ const queueAgeLabelRecipe = cva("text-tf-caption-sm font-normal tabular-nums", {
21
23
  const queueAgeTrackRecipe = cva("block h-1 w-full overflow-hidden rounded-tf-pill bg-tf-sunken-hi");
22
24
  const queueAgeFillRecipe = cva("block h-full bg-tf-blend");
23
25
  const queueDotRecipe = cva("size-2 flex-none rounded-tf-pill bg-tf-blend");
26
+ const queueAnatomy = anatomy({
27
+ age: {
28
+ part: "age",
29
+ recipe: queueAgeRecipe,
30
+ required: true
31
+ },
32
+ dot: {
33
+ part: "dot",
34
+ recipe: queueDotRecipe,
35
+ required: false
36
+ },
37
+ hint: {
38
+ part: "hint",
39
+ recipe: queueHintRecipe,
40
+ required: true
41
+ },
42
+ lead: {
43
+ part: "lead",
44
+ recipe: queueLeadRecipe,
45
+ required: true
46
+ },
47
+ rank: {
48
+ part: "rank",
49
+ recipe: tableRankRecipe,
50
+ required: false
51
+ },
52
+ root: {
53
+ part: "queue",
54
+ recipe: queueRecipe,
55
+ required: true
56
+ }
57
+ });
24
58
  //#endregion
25
- export { queueAgeFillRecipe, queueAgeLabelRecipe, queueAgeRecipe, queueAgeTrackRecipe, queueDotRecipe, queueHintRecipe, queueLeadRecipe, queueRecipe, queueRowRecipe, queueTextRecipe };
59
+ export { queueAgeFillRecipe, queueAgeLabelRecipe, queueAgeRecipe, queueAgeTrackRecipe, queueAnatomy, queueDotRecipe, queueHintRecipe, queueLeadRecipe, queueRecipe, queueRowRecipe, queueTextRecipe };
26
60
 
27
61
  //# sourceMappingURL=queue.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"queue.js","names":[],"sources":["../../src/recipes/queue.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nimport { anatomy } from '#anatomy'\n\nimport { tableRankRecipe } from './table'\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\nconst queueAnatomy = anatomy({\n age: { part: 'age', recipe: queueAgeRecipe, required: true },\n dot: { part: 'dot', recipe: queueDotRecipe, required: false },\n hint: { part: 'hint', recipe: queueHintRecipe, required: true },\n lead: { part: 'lead', recipe: queueLeadRecipe, required: true },\n rank: { part: 'rank', recipe: tableRankRecipe, required: false },\n root: { part: 'queue', recipe: queueRecipe, required: true },\n})\n\nexport {\n queueAgeFillRecipe,\n queueAgeLabelRecipe,\n queueAgeRecipe,\n queueAgeTrackRecipe,\n queueAnatomy,\n queueDotRecipe,\n queueHintRecipe,\n queueLeadRecipe,\n queueRecipe,\n queueRowRecipe,\n queueTextRecipe,\n}\n"],"mappings":";;;;AAMA,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;AAEzE,MAAM,eAAe,QAAQ;CAC3B,KAAK;EAAE,MAAM;EAAO,QAAQ;EAAgB,UAAU;CAAK;CAC3D,KAAK;EAAE,MAAM;EAAO,QAAQ;EAAgB,UAAU;CAAM;CAC5D,MAAM;EAAE,MAAM;EAAQ,QAAQ;EAAiB,UAAU;CAAK;CAC9D,MAAM;EAAE,MAAM;EAAQ,QAAQ;EAAiB,UAAU;CAAK;CAC9D,MAAM;EAAE,MAAM;EAAQ,QAAQ;EAAiB,UAAU;CAAM;CAC/D,MAAM;EAAE,MAAM;EAAS,QAAQ;EAAa,UAAU;CAAK;AAC7D,CAAC"}