@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.
- package/LICENSE +21 -0
- package/README.md +55 -0
- package/assets/brands/digital-boost-group.svg +1 -0
- package/assets/brands/rtsg.svg +1 -0
- package/assets/brands/tech-it-out.svg +1 -0
- package/assets/brands/techfides.svg +1 -0
- package/css/index.css +8 -0
- package/css/theme.css +1640 -0
- package/dist/brands.d.ts +39 -0
- package/dist/brands.js +41 -0
- package/dist/brands.js.map +1 -0
- package/dist/charts/animation.js +14 -0
- package/dist/charts/animation.js.map +1 -0
- package/dist/charts/bars.d.ts +22 -0
- package/dist/charts/bars.js +61 -0
- package/dist/charts/bars.js.map +1 -0
- package/dist/charts/groupedBars.d.ts +20 -0
- package/dist/charts/groupedBars.js +82 -0
- package/dist/charts/groupedBars.js.map +1 -0
- package/dist/charts/paint.js +19 -0
- package/dist/charts/paint.js.map +1 -0
- package/dist/charts/spark.d.ts +17 -0
- package/dist/charts/spark.js +159 -0
- package/dist/charts/spark.js.map +1 -0
- package/dist/charts/tooltip.js +41 -0
- package/dist/charts/tooltip.js.map +1 -0
- package/dist/cn.d.ts +6 -0
- package/dist/cn.js +178 -0
- package/dist/cn.js.map +1 -0
- package/dist/control.d.ts +15 -0
- package/dist/control.js +13 -0
- package/dist/control.js.map +1 -0
- package/dist/index.d.ts +65 -0
- package/dist/index.js +65 -0
- package/dist/mark.d.ts +7 -0
- package/dist/mark.js +11 -0
- package/dist/mark.js.map +1 -0
- package/dist/parts/control.js +55 -0
- package/dist/parts/control.js.map +1 -0
- package/dist/parts/eyebrow.js +8 -0
- package/dist/parts/eyebrow.js.map +1 -0
- package/dist/parts/mark.js +52 -0
- package/dist/parts/mark.js.map +1 -0
- package/dist/parts/reveal.js +35 -0
- package/dist/parts/reveal.js.map +1 -0
- package/dist/parts/rouse.js +25 -0
- package/dist/parts/rouse.js.map +1 -0
- package/dist/parts/rule.js +12 -0
- package/dist/parts/rule.js.map +1 -0
- package/dist/parts/scroll.js +10 -0
- package/dist/parts/scroll.js.map +1 -0
- package/dist/parts/shell.js +23 -0
- package/dist/parts/shell.js.map +1 -0
- package/dist/parts/surface.js +15 -0
- package/dist/parts/surface.js.map +1 -0
- package/dist/parts/tone.js +13 -0
- package/dist/parts/tone.js.map +1 -0
- package/dist/parts/travel.js +11 -0
- package/dist/parts/travel.js.map +1 -0
- package/dist/recipes/accordion.d.ts +13 -0
- package/dist/recipes/accordion.js +42 -0
- package/dist/recipes/accordion.js.map +1 -0
- package/dist/recipes/alert.d.ts +16 -0
- package/dist/recipes/alert.js +21 -0
- package/dist/recipes/alert.js.map +1 -0
- package/dist/recipes/band.d.ts +8 -0
- package/dist/recipes/band.js +22 -0
- package/dist/recipes/band.js.map +1 -0
- package/dist/recipes/bars.d.ts +17 -0
- package/dist/recipes/bars.js +27 -0
- package/dist/recipes/bars.js.map +1 -0
- package/dist/recipes/brandMark.d.ts +5 -0
- package/dist/recipes/brandMark.js +7 -0
- package/dist/recipes/brandMark.js.map +1 -0
- package/dist/recipes/button.d.ts +23 -0
- package/dist/recipes/button.js +229 -0
- package/dist/recipes/button.js.map +1 -0
- package/dist/recipes/cardHeader.d.ts +10 -0
- package/dist/recipes/cardHeader.js +11 -0
- package/dist/recipes/cardHeader.js.map +1 -0
- package/dist/recipes/checkbox.d.ts +26 -0
- package/dist/recipes/checkbox.js +103 -0
- package/dist/recipes/checkbox.js.map +1 -0
- package/dist/recipes/chip.d.ts +26 -0
- package/dist/recipes/chip.js +123 -0
- package/dist/recipes/chip.js.map +1 -0
- package/dist/recipes/codeEditor.d.ts +74 -0
- package/dist/recipes/codeEditor.js +71 -0
- package/dist/recipes/codeEditor.js.map +1 -0
- package/dist/recipes/datePicker.d.ts +39 -0
- package/dist/recipes/datePicker.js +166 -0
- package/dist/recipes/datePicker.js.map +1 -0
- package/dist/recipes/dialog.d.ts +37 -0
- package/dist/recipes/dialog.js +116 -0
- package/dist/recipes/dialog.js.map +1 -0
- package/dist/recipes/feature.d.ts +15 -0
- package/dist/recipes/feature.js +48 -0
- package/dist/recipes/feature.js.map +1 -0
- package/dist/recipes/field.d.ts +26 -0
- package/dist/recipes/field.js +129 -0
- package/dist/recipes/field.js.map +1 -0
- package/dist/recipes/findings.d.ts +11 -0
- package/dist/recipes/findings.js +16 -0
- package/dist/recipes/findings.js.map +1 -0
- package/dist/recipes/heading.d.ts +17 -0
- package/dist/recipes/heading.js +37 -0
- package/dist/recipes/heading.js.map +1 -0
- package/dist/recipes/heartbeat.d.ts +23 -0
- package/dist/recipes/heartbeat.js +43 -0
- package/dist/recipes/heartbeat.js.map +1 -0
- package/dist/recipes/input.d.ts +17 -0
- package/dist/recipes/input.js +90 -0
- package/dist/recipes/input.js.map +1 -0
- package/dist/recipes/listItem.d.ts +6 -0
- package/dist/recipes/listItem.js +8 -0
- package/dist/recipes/listItem.js.map +1 -0
- package/dist/recipes/listbox.d.ts +12 -0
- package/dist/recipes/listbox.js +29 -0
- package/dist/recipes/listbox.js.map +1 -0
- package/dist/recipes/marquee.d.ts +19 -0
- package/dist/recipes/marquee.js +36 -0
- package/dist/recipes/marquee.js.map +1 -0
- package/dist/recipes/menu.d.ts +26 -0
- package/dist/recipes/menu.js +86 -0
- package/dist/recipes/menu.js.map +1 -0
- package/dist/recipes/metaRow.d.ts +14 -0
- package/dist/recipes/metaRow.js +19 -0
- package/dist/recipes/metaRow.js.map +1 -0
- package/dist/recipes/meter.d.ts +23 -0
- package/dist/recipes/meter.js +39 -0
- package/dist/recipes/meter.js.map +1 -0
- package/dist/recipes/motion.d.ts +6 -0
- package/dist/recipes/motion.js +34 -0
- package/dist/recipes/motion.js.map +1 -0
- package/dist/recipes/nebula.d.ts +9 -0
- package/dist/recipes/nebula.js +15 -0
- package/dist/recipes/nebula.js.map +1 -0
- package/dist/recipes/numberRange.d.ts +15 -0
- package/dist/recipes/numberRange.js +109 -0
- package/dist/recipes/numberRange.js.map +1 -0
- package/dist/recipes/paper.d.ts +22 -0
- package/dist/recipes/paper.js +42 -0
- package/dist/recipes/paper.js.map +1 -0
- package/dist/recipes/progressBar.d.ts +7 -0
- package/dist/recipes/progressBar.js +11 -0
- package/dist/recipes/progressBar.js.map +1 -0
- package/dist/recipes/queue.d.ts +16 -0
- package/dist/recipes/queue.js +27 -0
- package/dist/recipes/queue.js.map +1 -0
- package/dist/recipes/radioGroup.d.ts +27 -0
- package/dist/recipes/radioGroup.js +68 -0
- package/dist/recipes/radioGroup.js.map +1 -0
- package/dist/recipes/scopeSwitcher.d.ts +26 -0
- package/dist/recipes/scopeSwitcher.js +80 -0
- package/dist/recipes/scopeSwitcher.js.map +1 -0
- package/dist/recipes/scrollArea.d.ts +19 -0
- package/dist/recipes/scrollArea.js +43 -0
- package/dist/recipes/scrollArea.js.map +1 -0
- package/dist/recipes/searchPalette.d.ts +19 -0
- package/dist/recipes/searchPalette.js +63 -0
- package/dist/recipes/searchPalette.js.map +1 -0
- package/dist/recipes/sectionHeader.d.ts +9 -0
- package/dist/recipes/sectionHeader.js +10 -0
- package/dist/recipes/sectionHeader.js.map +1 -0
- package/dist/recipes/segmentedControl.d.ts +9 -0
- package/dist/recipes/segmentedControl.js +29 -0
- package/dist/recipes/segmentedControl.js.map +1 -0
- package/dist/recipes/select.d.ts +9 -0
- package/dist/recipes/select.js +21 -0
- package/dist/recipes/select.js.map +1 -0
- package/dist/recipes/separator.d.ts +14 -0
- package/dist/recipes/separator.js +59 -0
- package/dist/recipes/separator.js.map +1 -0
- package/dist/recipes/sidebar.d.ts +40 -0
- package/dist/recipes/sidebar.js +128 -0
- package/dist/recipes/sidebar.js.map +1 -0
- package/dist/recipes/sky.d.ts +20 -0
- package/dist/recipes/sky.js +127 -0
- package/dist/recipes/sky.js.map +1 -0
- package/dist/recipes/slider.d.ts +20 -0
- package/dist/recipes/slider.js +62 -0
- package/dist/recipes/slider.js.map +1 -0
- package/dist/recipes/stat.d.ts +30 -0
- package/dist/recipes/stat.js +52 -0
- package/dist/recipes/stat.js.map +1 -0
- package/dist/recipes/switch.d.ts +20 -0
- package/dist/recipes/switch.js +60 -0
- package/dist/recipes/switch.js.map +1 -0
- package/dist/recipes/table.d.ts +74 -0
- package/dist/recipes/table.js +182 -0
- package/dist/recipes/table.js.map +1 -0
- package/dist/recipes/tableFilter.d.ts +14 -0
- package/dist/recipes/tableFilter.js +28 -0
- package/dist/recipes/tableFilter.js.map +1 -0
- package/dist/recipes/tablePaging.d.ts +15 -0
- package/dist/recipes/tablePaging.js +50 -0
- package/dist/recipes/tablePaging.js.map +1 -0
- package/dist/recipes/tail.d.ts +20 -0
- package/dist/recipes/tail.js +48 -0
- package/dist/recipes/tail.js.map +1 -0
- package/dist/recipes/text.d.ts +25 -0
- package/dist/recipes/text.js +94 -0
- package/dist/recipes/text.js.map +1 -0
- package/dist/recipes/textarea.d.ts +13 -0
- package/dist/recipes/textarea.js +48 -0
- package/dist/recipes/textarea.js.map +1 -0
- package/dist/recipes/tile.d.ts +18 -0
- package/dist/recipes/tile.js +85 -0
- package/dist/recipes/tile.js.map +1 -0
- package/dist/recipes/tooltip.d.ts +12 -0
- package/dist/recipes/tooltip.js +26 -0
- package/dist/recipes/tooltip.js.map +1 -0
- package/dist/recipes/topBar.d.ts +15 -0
- package/dist/recipes/topBar.js +35 -0
- package/dist/recipes/topBar.js.map +1 -0
- package/dist/recipes/trail.d.ts +27 -0
- package/dist/recipes/trail.js +66 -0
- package/dist/recipes/trail.js.map +1 -0
- package/dist/recipes/userMenu.d.ts +11 -0
- package/dist/recipes/userMenu.js +38 -0
- package/dist/recipes/userMenu.js.map +1 -0
- package/dist/tally.d.ts +17 -0
- package/dist/tally.js +75 -0
- package/dist/tally.js.map +1 -0
- package/dist/tone.d.ts +26 -0
- package/dist/tone.js +26 -0
- package/dist/tone.js.map +1 -0
- package/dist/words.d.ts +116 -0
- package/dist/words.js +93 -0
- package/dist/words.js.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { defaultMarkPlate } from "../mark.js";
|
|
2
|
+
import { toneBlend } from "../tone.js";
|
|
3
|
+
import { defaultTone, tones } from "../parts/tone.js";
|
|
4
|
+
import { markBox, markGroup, markPlate, markPress, markRow, markStack, markTitle } from "../parts/mark.js";
|
|
5
|
+
import { eyebrowQuiet } from "../parts/eyebrow.js";
|
|
6
|
+
import { cva } from "class-variance-authority";
|
|
7
|
+
//#region src/recipes/radioGroup.ts
|
|
8
|
+
const radioAccents = tones;
|
|
9
|
+
const defaultRadioAccent = defaultTone;
|
|
10
|
+
const radioGroupRecipe = cva([markGroup, "font-tf-body"]);
|
|
11
|
+
const radioGroupLabelRecipe = cva([
|
|
12
|
+
`text-tf-caption-sm ${eyebrowQuiet}`,
|
|
13
|
+
"px-3 pb-1 font-medium",
|
|
14
|
+
"**:data-[part=required-indicator]:text-tf-danger-hi"
|
|
15
|
+
]);
|
|
16
|
+
const radioRecipe = cva([...markRow, "justify-between gap-6"], {
|
|
17
|
+
defaultVariants: { plate: defaultMarkPlate },
|
|
18
|
+
variants: { plate: {
|
|
19
|
+
bare: markPlate.bare,
|
|
20
|
+
full: `${markPlate.full} not-data-[state=checked]:not-data-readonly:interactive:hovered:bg-tf-panel-hi`,
|
|
21
|
+
snug: `${markPlate.snug} not-data-[state=checked]:not-data-readonly:interactive:hovered:bg-tf-panel-hi`
|
|
22
|
+
} }
|
|
23
|
+
});
|
|
24
|
+
const radioIndicatorRecipe = cva([
|
|
25
|
+
"pointer-events-none left-0 h-(--height) w-(--width)",
|
|
26
|
+
"rounded-tf-block tf-tinted data-disabled:opacity-50",
|
|
27
|
+
"[--transition-duration:var(--tf-duration-2)]",
|
|
28
|
+
"[--transition-timing-function:var(--ease-tf-glide)]"
|
|
29
|
+
], {
|
|
30
|
+
compoundVariants: [{
|
|
31
|
+
class: toneBlend.danger,
|
|
32
|
+
invalid: true
|
|
33
|
+
}],
|
|
34
|
+
defaultVariants: {
|
|
35
|
+
accent: defaultRadioAccent,
|
|
36
|
+
invalid: false
|
|
37
|
+
},
|
|
38
|
+
variants: {
|
|
39
|
+
accent: toneBlend,
|
|
40
|
+
invalid: {
|
|
41
|
+
false: "",
|
|
42
|
+
true: ""
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
const radioLeadRecipe = cva("flex min-w-0 items-center gap-3");
|
|
47
|
+
const radioControlRecipe = cva([
|
|
48
|
+
...markBox,
|
|
49
|
+
"rounded-tf-pill bg-tf-sunken",
|
|
50
|
+
"not-data-readonly:interactive:hovered:bg-tf-sunken-hi",
|
|
51
|
+
"data-[state=checked]:tf-mark-lit",
|
|
52
|
+
"data-[state=checked]:**:data-[part=dot]:scale-100",
|
|
53
|
+
"data-invalid:blend-tf-danger data-invalid:tf-mark-failed",
|
|
54
|
+
markPress
|
|
55
|
+
], {
|
|
56
|
+
defaultVariants: { accent: defaultRadioAccent },
|
|
57
|
+
variants: { accent: toneBlend }
|
|
58
|
+
});
|
|
59
|
+
const radioDotRecipe = cva(["block size-tf-mark-dot rounded-tf-pill bg-tf-blend", "scale-0 tf-moves-spring tf-transition motion-reduce:transition-none"]);
|
|
60
|
+
const radioLabelRecipe = cva(markStack);
|
|
61
|
+
const radioTitleRecipe = cva(markTitle);
|
|
62
|
+
const radioHintRecipe = cva("text-tf-caption font-medium text-tf-muted");
|
|
63
|
+
const radioAsideRecipe = cva("shrink-0 text-tf-body-sm font-medium text-tf-muted tabular-nums");
|
|
64
|
+
const radioErrorRecipe = cva("px-3 pt-1 text-tf-caption font-medium text-tf-danger-hi tf-arrives");
|
|
65
|
+
//#endregion
|
|
66
|
+
export { defaultRadioAccent, radioAccents, radioAsideRecipe, radioControlRecipe, radioDotRecipe, radioErrorRecipe, radioGroupLabelRecipe, radioGroupRecipe, radioHintRecipe, radioIndicatorRecipe, radioLabelRecipe, radioLeadRecipe, radioRecipe, radioTitleRecipe };
|
|
67
|
+
|
|
68
|
+
//# sourceMappingURL=radioGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radioGroup.js","names":[],"sources":["../../src/recipes/radioGroup.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nimport type { MarkPlate } from '#mark'\nimport { defaultMarkPlate } from '#mark'\nimport { eyebrowQuiet } from '#parts/eyebrow'\nimport {\n markBox,\n markGroup,\n markPlate,\n markPress,\n markRow,\n markStack,\n markTitle,\n} from '#parts/mark'\nimport { defaultTone, tones } from '#parts/tone'\nimport type { Tone } from '#tone'\nimport { toneBlend } from '#tone'\n\nconst radioAccents = tones\n\ntype RadioAccent = Tone\n\nconst defaultRadioAccent = defaultTone\n\nconst radioGroupRecipe = cva([markGroup, 'font-tf-body'])\n\nconst radioGroupLabelRecipe = cva([\n `text-tf-caption-sm ${eyebrowQuiet}`,\n 'px-3 pb-1 font-medium',\n '**:data-[part=required-indicator]:text-tf-danger-hi',\n])\n\nconst radioRecipe = cva([...markRow, 'justify-between gap-6'], {\n defaultVariants: { plate: defaultMarkPlate },\n variants: {\n plate: {\n bare: markPlate.bare,\n full: `${markPlate.full} not-data-[state=checked]:not-data-readonly:interactive:hovered:bg-tf-panel-hi`,\n snug: `${markPlate.snug} not-data-[state=checked]:not-data-readonly:interactive:hovered:bg-tf-panel-hi`,\n } satisfies Record<MarkPlate, string>,\n },\n})\n\nconst radioIndicatorRecipe = cva(\n [\n 'pointer-events-none left-0 h-(--height) w-(--width)',\n 'rounded-tf-block tf-tinted data-disabled:opacity-50',\n '[--transition-duration:var(--tf-duration-2)]',\n '[--transition-timing-function:var(--ease-tf-glide)]',\n ],\n {\n compoundVariants: [{ class: toneBlend.danger, invalid: true }],\n defaultVariants: { accent: defaultRadioAccent, invalid: false },\n variants: {\n accent: toneBlend,\n invalid: { false: '', true: '' },\n },\n },\n)\n\nconst radioLeadRecipe = cva('flex min-w-0 items-center gap-3')\n\nconst radioControlRecipe = cva(\n [\n ...markBox,\n 'rounded-tf-pill bg-tf-sunken',\n 'not-data-readonly:interactive:hovered:bg-tf-sunken-hi',\n 'data-[state=checked]:tf-mark-lit',\n 'data-[state=checked]:**:data-[part=dot]:scale-100',\n 'data-invalid:blend-tf-danger data-invalid:tf-mark-failed',\n markPress,\n ],\n {\n defaultVariants: { accent: defaultRadioAccent },\n variants: { accent: toneBlend },\n },\n)\n\nconst radioDotRecipe = cva([\n 'block size-tf-mark-dot rounded-tf-pill bg-tf-blend',\n 'scale-0 tf-moves-spring tf-transition motion-reduce:transition-none',\n])\n\nconst radioLabelRecipe = cva(markStack)\n\nconst radioTitleRecipe = cva(markTitle)\n\nconst radioHintRecipe = cva('text-tf-caption font-medium text-tf-muted')\n\nconst radioAsideRecipe = cva('shrink-0 text-tf-body-sm font-medium text-tf-muted tabular-nums')\n\nconst radioErrorRecipe = cva('px-3 pt-1 text-tf-caption font-medium text-tf-danger-hi tf-arrives')\n\nexport {\n type RadioAccent,\n defaultRadioAccent,\n radioAccents,\n radioAsideRecipe,\n radioControlRecipe,\n radioDotRecipe,\n radioErrorRecipe,\n radioGroupLabelRecipe,\n radioGroupRecipe,\n radioHintRecipe,\n radioIndicatorRecipe,\n radioLabelRecipe,\n radioLeadRecipe,\n radioRecipe,\n radioTitleRecipe,\n}\n"],"mappings":";;;;;;;AAkBA,MAAM,eAAe;AAIrB,MAAM,qBAAqB;AAE3B,MAAM,mBAAmB,IAAI,CAAC,WAAW,cAAc,CAAC;AAExD,MAAM,wBAAwB,IAAI;CAChC,sBAAsB;CACtB;CACA;AACF,CAAC;AAED,MAAM,cAAc,IAAI,CAAC,GAAG,SAAS,uBAAuB,GAAG;CAC7D,iBAAiB,EAAE,OAAO,iBAAiB;CAC3C,UAAU,EACR,OAAO;EACL,MAAM,UAAU;EAChB,MAAM,GAAG,UAAU,KAAK;EACxB,MAAM,GAAG,UAAU,KAAK;CAC1B,EACF;AACF,CAAC;AAED,MAAM,uBAAuB,IAC3B;CACE;CACA;CACA;CACA;AACF,GACA;CACE,kBAAkB,CAAC;EAAE,OAAO,UAAU;EAAQ,SAAS;CAAK,CAAC;CAC7D,iBAAiB;EAAE,QAAQ;EAAoB,SAAS;CAAM;CAC9D,UAAU;EACR,QAAQ;EACR,SAAS;GAAE,OAAO;GAAI,MAAM;EAAG;CACjC;AACF,CACF;AAEA,MAAM,kBAAkB,IAAI,iCAAiC;AAE7D,MAAM,qBAAqB,IACzB;CACE,GAAG;CACH;CACA;CACA;CACA;CACA;CACA;AACF,GACA;CACE,iBAAiB,EAAE,QAAQ,mBAAmB;CAC9C,UAAU,EAAE,QAAQ,UAAU;AAChC,CACF;AAEA,MAAM,iBAAiB,IAAI,CACzB,sDACA,qEACF,CAAC;AAED,MAAM,mBAAmB,IAAI,SAAS;AAEtC,MAAM,mBAAmB,IAAI,SAAS;AAEtC,MAAM,kBAAkB,IAAI,2CAA2C;AAEvE,MAAM,mBAAmB,IAAI,iEAAiE;AAE9F,MAAM,mBAAmB,IAAI,oEAAoE"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
//#region src/recipes/scopeSwitcher.d.ts
|
|
2
|
+
declare const scopeSwitcherRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
3
|
+
declare const scopeSwitcherPillRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
4
|
+
declare const scopeSwitcherTextRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
5
|
+
declare const scopeSwitcherEyebrowRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
6
|
+
declare const scopeSwitcherValueRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
7
|
+
declare const scopeSwitcherChevronsRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
8
|
+
declare const scopeSwitcherPillIconRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
9
|
+
declare const scopeSwitcherIconRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
10
|
+
declare const scopeSwitcherListRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
11
|
+
declare const scopeSwitcherMarkRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
12
|
+
declare const scopeSwitcherRowRecipe: (props?: ({
|
|
13
|
+
selected?: boolean | null | undefined;
|
|
14
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
15
|
+
declare const scopeSwitcherCodeRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
16
|
+
declare const scopeSwitcherRowTextRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
17
|
+
declare const scopeSwitcherRowNameRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
18
|
+
declare const scopeSwitcherRowMetaRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
19
|
+
declare const scopeSwitcherBadgeRecipe: (props?: ({
|
|
20
|
+
tone?: "accent" | "warning" | null | undefined;
|
|
21
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
22
|
+
declare const scopeSwitcherDotRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
23
|
+
declare const scopeSwitcherWarningRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
24
|
+
//#endregion
|
|
25
|
+
export { scopeSwitcherBadgeRecipe, scopeSwitcherChevronsRecipe, scopeSwitcherCodeRecipe, scopeSwitcherDotRecipe, scopeSwitcherEyebrowRecipe, scopeSwitcherIconRecipe, scopeSwitcherListRecipe, scopeSwitcherMarkRecipe, scopeSwitcherPillIconRecipe, scopeSwitcherPillRecipe, scopeSwitcherRecipe, scopeSwitcherRowMetaRecipe, scopeSwitcherRowNameRecipe, scopeSwitcherRowRecipe, scopeSwitcherRowTextRecipe, scopeSwitcherTextRecipe, scopeSwitcherValueRecipe, scopeSwitcherWarningRecipe };
|
|
26
|
+
//# sourceMappingURL=scopeSwitcher.d.ts.map
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { controlInert, controlPress, controlQuiet, controlReach } from "../parts/control.js";
|
|
2
|
+
import { collapseMotion, railCollapse, railMorph } from "./motion.js";
|
|
3
|
+
import { eyebrowType } from "../parts/eyebrow.js";
|
|
4
|
+
import { travelMarkBase } from "../parts/travel.js";
|
|
5
|
+
import { cva } from "class-variance-authority";
|
|
6
|
+
//#region src/recipes/scopeSwitcher.ts
|
|
7
|
+
const scopeSwitcherRecipe = cva([
|
|
8
|
+
"group relative flex w-full items-center gap-2 rounded-tf-block px-3 py-1.5 text-left",
|
|
9
|
+
"in-data-rail:justify-center in-data-rail:gap-0 in-data-rail:px-2",
|
|
10
|
+
"bg-tf-sunken",
|
|
11
|
+
"[&>svg]:size-tf-icon-sm [&>svg]:shrink-0",
|
|
12
|
+
...controlQuiet,
|
|
13
|
+
...controlReach,
|
|
14
|
+
...controlPress,
|
|
15
|
+
...controlInert
|
|
16
|
+
]);
|
|
17
|
+
const scopeSwitcherPillRecipe = cva([
|
|
18
|
+
"inline-flex flex-none items-center gap-2 rounded-tf-pill px-3 py-1.5",
|
|
19
|
+
"bg-tf-panel-2 text-tf-body-sm font-medium text-tf-fg",
|
|
20
|
+
"[&_svg]:size-tf-icon-sm [&_svg]:shrink-0",
|
|
21
|
+
...controlQuiet,
|
|
22
|
+
...controlReach,
|
|
23
|
+
...controlPress,
|
|
24
|
+
...controlInert
|
|
25
|
+
]);
|
|
26
|
+
const scopeSwitcherTextRecipe = cva(`flex flex-col gap-0 ${railCollapse}`);
|
|
27
|
+
const scopeSwitcherEyebrowRecipe = cva(["truncate text-tf-caption-sm text-tf-accent-hi", eyebrowType]);
|
|
28
|
+
const scopeSwitcherValueRecipe = cva("truncate font-tf-display text-tf-body-sm font-medium tracking-tf-tight text-tf-fg");
|
|
29
|
+
const scopeSwitcherChevronsRecipe = cva([
|
|
30
|
+
"flex-none text-tf-muted",
|
|
31
|
+
"in-data-rail:size-0! in-data-rail:opacity-0",
|
|
32
|
+
"[--tf-travel:opacity_var(--tf-timing-glide)]",
|
|
33
|
+
railMorph
|
|
34
|
+
]);
|
|
35
|
+
const scopeSwitcherPillIconRecipe = cva("flex-none text-tf-accent-hi");
|
|
36
|
+
const scopeSwitcherIconRecipe = cva([
|
|
37
|
+
"relative isolate flex size-tf-control-sm flex-none items-center justify-center rounded-tf-control",
|
|
38
|
+
"bg-tf-blend text-tf-on-accent tf-cloud-brand tf-clouded blend-tf-accent tf-blend-drift",
|
|
39
|
+
"tf-edge-sweep tf-swept tf-icons-solo tf-inner-lit",
|
|
40
|
+
"[&_svg]:size-tf-icon-md [&_svg]:shrink-0"
|
|
41
|
+
]);
|
|
42
|
+
const scopeSwitcherListRecipe = cva(["relative flex flex-col gap-1 pt-2", ...collapseMotion]);
|
|
43
|
+
const scopeSwitcherMarkRecipe = cva([...travelMarkBase, "inset-x-0 h-[61px] rounded-tf-control bg-tf-panel-hi"]);
|
|
44
|
+
const scopeSwitcherRowRecipe = cva([
|
|
45
|
+
"group relative flex w-full items-center gap-2 rounded-tf-control px-3 py-2 text-left",
|
|
46
|
+
"tf-transition data-highlighted:bg-tf-panel-hi",
|
|
47
|
+
"[&>svg]:size-tf-icon-sm [&>svg]:shrink-0",
|
|
48
|
+
...controlQuiet,
|
|
49
|
+
...controlReach,
|
|
50
|
+
...controlPress,
|
|
51
|
+
...controlInert
|
|
52
|
+
], {
|
|
53
|
+
defaultVariants: { selected: false },
|
|
54
|
+
variants: { selected: {
|
|
55
|
+
false: "",
|
|
56
|
+
true: "tf-tinted blend-tf-accent"
|
|
57
|
+
} }
|
|
58
|
+
});
|
|
59
|
+
const scopeSwitcherCodeRecipe = cva([
|
|
60
|
+
"relative isolate flex size-tf-control-sm flex-none items-center justify-center rounded-tf-pill",
|
|
61
|
+
"bg-tf-panel-hi text-tf-caption font-medium text-tf-fg",
|
|
62
|
+
"tf-edge-sweep tf-swept blend-tf-accent",
|
|
63
|
+
"tf-transition motion-reduce:transition-none"
|
|
64
|
+
]);
|
|
65
|
+
const scopeSwitcherRowTextRecipe = cva("flex min-w-0 flex-1 flex-col gap-0");
|
|
66
|
+
const scopeSwitcherRowNameRecipe = cva("truncate text-tf-body-sm font-medium text-tf-fg");
|
|
67
|
+
const scopeSwitcherRowMetaRecipe = cva("truncate text-tf-caption-sm text-tf-muted");
|
|
68
|
+
const scopeSwitcherBadgeRecipe = cva(["inline-flex flex-none items-center gap-2 rounded-tf-pill bg-tf-panel-hi px-2 py-1", "text-tf-caption-sm font-normal tabular-nums"], {
|
|
69
|
+
defaultVariants: { tone: "accent" },
|
|
70
|
+
variants: { tone: {
|
|
71
|
+
accent: "text-tf-accent-hi",
|
|
72
|
+
warning: "text-tf-warning-hi"
|
|
73
|
+
} }
|
|
74
|
+
});
|
|
75
|
+
const scopeSwitcherDotRecipe = cva("size-1.5 flex-none rounded-tf-pill bg-current");
|
|
76
|
+
const scopeSwitcherWarningRecipe = cva("flex-none text-tf-danger-hi");
|
|
77
|
+
//#endregion
|
|
78
|
+
export { scopeSwitcherBadgeRecipe, scopeSwitcherChevronsRecipe, scopeSwitcherCodeRecipe, scopeSwitcherDotRecipe, scopeSwitcherEyebrowRecipe, scopeSwitcherIconRecipe, scopeSwitcherListRecipe, scopeSwitcherMarkRecipe, scopeSwitcherPillIconRecipe, scopeSwitcherPillRecipe, scopeSwitcherRecipe, scopeSwitcherRowMetaRecipe, scopeSwitcherRowNameRecipe, scopeSwitcherRowRecipe, scopeSwitcherRowTextRecipe, scopeSwitcherTextRecipe, scopeSwitcherValueRecipe, scopeSwitcherWarningRecipe };
|
|
79
|
+
|
|
80
|
+
//# sourceMappingURL=scopeSwitcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scopeSwitcher.js","names":[],"sources":["../../src/recipes/scopeSwitcher.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nimport { controlInert, controlPress, controlQuiet, controlReach } from '#parts/control'\nimport { eyebrowType } from '#parts/eyebrow'\nimport { travelMarkBase } from '#parts/travel'\n\nimport { collapseMotion, railCollapse, railMorph } from './motion'\n\nconst scopeSwitcherRecipe = cva([\n 'group relative flex w-full items-center gap-2 rounded-tf-block px-3 py-1.5 text-left',\n 'in-data-rail:justify-center in-data-rail:gap-0 in-data-rail:px-2',\n 'bg-tf-sunken',\n '[&>svg]:size-tf-icon-sm [&>svg]:shrink-0',\n ...controlQuiet,\n ...controlReach,\n ...controlPress,\n ...controlInert,\n])\n\nconst scopeSwitcherPillRecipe = cva([\n 'inline-flex flex-none items-center gap-2 rounded-tf-pill px-3 py-1.5',\n 'bg-tf-panel-2 text-tf-body-sm font-medium text-tf-fg',\n '[&_svg]:size-tf-icon-sm [&_svg]:shrink-0',\n ...controlQuiet,\n ...controlReach,\n ...controlPress,\n ...controlInert,\n])\n\nconst scopeSwitcherTextRecipe = cva(`flex flex-col gap-0 ${railCollapse}`)\n\nconst scopeSwitcherEyebrowRecipe = cva([\n 'truncate text-tf-caption-sm text-tf-accent-hi',\n eyebrowType,\n])\n\nconst scopeSwitcherValueRecipe = cva(\n 'truncate font-tf-display text-tf-body-sm font-medium tracking-tf-tight text-tf-fg',\n)\n\nconst scopeSwitcherChevronsRecipe = cva([\n 'flex-none text-tf-muted',\n 'in-data-rail:size-0! in-data-rail:opacity-0',\n '[--tf-travel:opacity_var(--tf-timing-glide)]',\n railMorph,\n])\n\nconst scopeSwitcherPillIconRecipe = cva('flex-none text-tf-accent-hi')\n\nconst scopeSwitcherIconRecipe = cva([\n 'relative isolate flex size-tf-control-sm flex-none items-center justify-center rounded-tf-control',\n 'bg-tf-blend text-tf-on-accent tf-cloud-brand tf-clouded blend-tf-accent tf-blend-drift',\n 'tf-edge-sweep tf-swept tf-icons-solo tf-inner-lit',\n '[&_svg]:size-tf-icon-md [&_svg]:shrink-0',\n])\n\nconst scopeSwitcherListRecipe = cva(['relative flex flex-col gap-1 pt-2', ...collapseMotion])\n\nconst scopeSwitcherMarkRecipe = cva([\n ...travelMarkBase,\n 'inset-x-0 h-[61px] rounded-tf-control bg-tf-panel-hi',\n])\n\nconst scopeSwitcherRowRecipe = cva(\n [\n 'group relative flex w-full items-center gap-2 rounded-tf-control px-3 py-2 text-left',\n 'tf-transition data-highlighted:bg-tf-panel-hi',\n '[&>svg]:size-tf-icon-sm [&>svg]:shrink-0',\n ...controlQuiet,\n ...controlReach,\n ...controlPress,\n ...controlInert,\n ],\n {\n defaultVariants: { selected: false },\n variants: {\n selected: {\n false: '',\n true: 'tf-tinted blend-tf-accent',\n },\n },\n },\n)\n\nconst scopeSwitcherCodeRecipe = cva([\n 'relative isolate flex size-tf-control-sm flex-none items-center justify-center rounded-tf-pill',\n 'bg-tf-panel-hi text-tf-caption font-medium text-tf-fg',\n 'tf-edge-sweep tf-swept blend-tf-accent',\n 'tf-transition motion-reduce:transition-none',\n])\n\nconst scopeSwitcherRowTextRecipe = cva('flex min-w-0 flex-1 flex-col gap-0')\n\nconst scopeSwitcherRowNameRecipe = cva('truncate text-tf-body-sm font-medium text-tf-fg')\n\nconst scopeSwitcherRowMetaRecipe = cva('truncate text-tf-caption-sm text-tf-muted')\n\nconst scopeSwitcherBadgeRecipe = cva(\n [\n 'inline-flex flex-none items-center gap-2 rounded-tf-pill bg-tf-panel-hi px-2 py-1',\n 'text-tf-caption-sm font-normal tabular-nums',\n ],\n {\n defaultVariants: { tone: 'accent' },\n variants: {\n tone: {\n accent: 'text-tf-accent-hi',\n warning: 'text-tf-warning-hi',\n },\n },\n },\n)\n\nconst scopeSwitcherDotRecipe = cva('size-1.5 flex-none rounded-tf-pill bg-current')\n\nconst scopeSwitcherWarningRecipe = cva('flex-none text-tf-danger-hi')\n\nexport {\n scopeSwitcherBadgeRecipe,\n scopeSwitcherChevronsRecipe,\n scopeSwitcherCodeRecipe,\n scopeSwitcherDotRecipe,\n scopeSwitcherEyebrowRecipe,\n scopeSwitcherIconRecipe,\n scopeSwitcherListRecipe,\n scopeSwitcherMarkRecipe,\n scopeSwitcherPillIconRecipe,\n scopeSwitcherPillRecipe,\n scopeSwitcherRecipe,\n scopeSwitcherRowNameRecipe,\n scopeSwitcherRowMetaRecipe,\n scopeSwitcherRowRecipe,\n scopeSwitcherRowTextRecipe,\n scopeSwitcherTextRecipe,\n scopeSwitcherValueRecipe,\n scopeSwitcherWarningRecipe,\n}\n"],"mappings":";;;;;;AAQA,MAAM,sBAAsB,IAAI;CAC9B;CACA;CACA;CACA;CACA,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACL,CAAC;AAED,MAAM,0BAA0B,IAAI;CAClC;CACA;CACA;CACA,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACL,CAAC;AAED,MAAM,0BAA0B,IAAI,uBAAuB,cAAc;AAEzE,MAAM,6BAA6B,IAAI,CACrC,iDACA,WACF,CAAC;AAED,MAAM,2BAA2B,IAC/B,mFACF;AAEA,MAAM,8BAA8B,IAAI;CACtC;CACA;CACA;CACA;AACF,CAAC;AAED,MAAM,8BAA8B,IAAI,6BAA6B;AAErE,MAAM,0BAA0B,IAAI;CAClC;CACA;CACA;CACA;AACF,CAAC;AAED,MAAM,0BAA0B,IAAI,CAAC,qCAAqC,GAAG,cAAc,CAAC;AAE5F,MAAM,0BAA0B,IAAI,CAClC,GAAG,gBACH,sDACF,CAAC;AAED,MAAM,yBAAyB,IAC7B;CACE;CACA;CACA;CACA,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACL,GACA;CACE,iBAAiB,EAAE,UAAU,MAAM;CACnC,UAAU,EACR,UAAU;EACR,OAAO;EACP,MAAM;CACR,EACF;AACF,CACF;AAEA,MAAM,0BAA0B,IAAI;CAClC;CACA;CACA;CACA;AACF,CAAC;AAED,MAAM,6BAA6B,IAAI,oCAAoC;AAE3E,MAAM,6BAA6B,IAAI,iDAAiD;AAExF,MAAM,6BAA6B,IAAI,2CAA2C;AAElF,MAAM,2BAA2B,IAC/B,CACE,qFACA,6CACF,GACA;CACE,iBAAiB,EAAE,MAAM,SAAS;CAClC,UAAU,EACR,MAAM;EACJ,QAAQ;EACR,SAAS;CACX,EACF;AACF,CACF;AAEA,MAAM,yBAAyB,IAAI,+CAA+C;AAElF,MAAM,6BAA6B,IAAI,6BAA6B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/recipes/scrollArea.d.ts
|
|
2
|
+
type ScrollAreaSurface = 'card' | 'bare';
|
|
3
|
+
declare const defaultScrollAreaSurface = "card";
|
|
4
|
+
declare const scrollAreaSurfaces: readonly ["card", "bare"];
|
|
5
|
+
declare const scrollAreaRecipe: (props?: ({
|
|
6
|
+
surface?: "bare" | "card" | null | undefined;
|
|
7
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
8
|
+
declare const scrollViewportRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
9
|
+
declare const scrollContentRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
10
|
+
declare const scrollBarRecipe: (props?: ({
|
|
11
|
+
way?: "vertical" | "horizontal" | null | undefined;
|
|
12
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
13
|
+
declare const scrollThumbRecipe: (props?: ({
|
|
14
|
+
way?: "vertical" | "horizontal" | null | undefined;
|
|
15
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
16
|
+
declare const scrollCornerRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
17
|
+
//#endregion
|
|
18
|
+
export { type ScrollAreaSurface, defaultScrollAreaSurface, scrollAreaRecipe, scrollAreaSurfaces, scrollBarRecipe, scrollContentRecipe, scrollCornerRecipe, scrollThumbRecipe, scrollViewportRecipe };
|
|
19
|
+
//# sourceMappingURL=scrollArea.d.ts.map
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { scrollFades } from "../parts/scroll.js";
|
|
2
|
+
import { cva } from "class-variance-authority";
|
|
3
|
+
//#region src/recipes/scrollArea.ts
|
|
4
|
+
const RAIL = "rounded-tf-inline";
|
|
5
|
+
const defaultScrollAreaSurface = "card";
|
|
6
|
+
const scrollAreaSurfaces = ["card", "bare"];
|
|
7
|
+
const scrollAreaRecipe = cva(["relative flex flex-col", "font-tf-body"], {
|
|
8
|
+
defaultVariants: { surface: defaultScrollAreaSurface },
|
|
9
|
+
variants: { surface: {
|
|
10
|
+
bare: "",
|
|
11
|
+
card: "tf-edge-sweep rounded-tf-block bg-tf-panel px-2 shadow-tf-float tf-edge-plain"
|
|
12
|
+
} }
|
|
13
|
+
});
|
|
14
|
+
const scrollViewportRecipe = cva([
|
|
15
|
+
"flex tf-scroll-hidden min-h-0 flex-col py-2 pr-3 outline-hidden",
|
|
16
|
+
"in-data-overflow-x:pb-3",
|
|
17
|
+
...scrollFades
|
|
18
|
+
]);
|
|
19
|
+
const scrollContentRecipe = cva("flex flex-col");
|
|
20
|
+
const scrollBarRecipe = cva([`${RAIL} bg-tf-panel`, "tf-transition motion-reduce:transition-none"], {
|
|
21
|
+
defaultVariants: { way: "vertical" },
|
|
22
|
+
variants: { way: {
|
|
23
|
+
horizontal: "mx-2 mb-1 h-1 opacity-0 in-data-overflow-x:opacity-100",
|
|
24
|
+
vertical: "my-2 mr-1 w-1 opacity-0 in-data-overflow-y:opacity-100"
|
|
25
|
+
} }
|
|
26
|
+
});
|
|
27
|
+
const scrollThumbRecipe = cva([
|
|
28
|
+
`${RAIL} bg-tf-line`,
|
|
29
|
+
"in-data-hover:bg-tf-line-hi in-data-scrolling:bg-tf-line-hi",
|
|
30
|
+
"data-dragging:bg-tf-accent-hi",
|
|
31
|
+
"tf-transition motion-reduce:transition-none"
|
|
32
|
+
], {
|
|
33
|
+
defaultVariants: { way: "vertical" },
|
|
34
|
+
variants: { way: {
|
|
35
|
+
horizontal: "h-1 min-w-tf-icon-solo-lg",
|
|
36
|
+
vertical: "min-h-tf-icon-solo-lg w-1"
|
|
37
|
+
} }
|
|
38
|
+
});
|
|
39
|
+
const scrollCornerRecipe = cva("bg-transparent");
|
|
40
|
+
//#endregion
|
|
41
|
+
export { defaultScrollAreaSurface, scrollAreaRecipe, scrollAreaSurfaces, scrollBarRecipe, scrollContentRecipe, scrollCornerRecipe, scrollThumbRecipe, scrollViewportRecipe };
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=scrollArea.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scrollArea.js","names":[],"sources":["../../src/recipes/scrollArea.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nimport { scrollFades } from '#parts/scroll'\n\nconst RAIL = 'rounded-tf-inline'\n\ntype ScrollAreaSurface = 'card' | 'bare'\n\ntype ScrollAreaWay = 'vertical' | 'horizontal'\n\nconst defaultScrollAreaSurface = 'card' satisfies ScrollAreaSurface\n\nconst scrollAreaSurfaces = ['card', 'bare'] as const satisfies readonly ScrollAreaSurface[]\n\nconst scrollAreaRecipe = cva(['relative flex flex-col', 'font-tf-body'], {\n defaultVariants: { surface: defaultScrollAreaSurface },\n variants: {\n surface: {\n bare: '',\n card: 'tf-edge-sweep rounded-tf-block bg-tf-panel px-2 shadow-tf-float tf-edge-plain',\n } satisfies Record<ScrollAreaSurface, string>,\n },\n})\n\nconst scrollViewportRecipe = cva([\n 'flex tf-scroll-hidden min-h-0 flex-col py-2 pr-3 outline-hidden',\n 'in-data-overflow-x:pb-3',\n ...scrollFades,\n])\n\nconst scrollContentRecipe = cva('flex flex-col')\n\nconst scrollBarRecipe = cva(\n [`${RAIL} bg-tf-panel`, 'tf-transition motion-reduce:transition-none'],\n {\n defaultVariants: { way: 'vertical' },\n variants: {\n way: {\n horizontal: 'mx-2 mb-1 h-1 opacity-0 in-data-overflow-x:opacity-100',\n vertical: 'my-2 mr-1 w-1 opacity-0 in-data-overflow-y:opacity-100',\n } satisfies Record<ScrollAreaWay, string>,\n },\n },\n)\n\nconst scrollThumbRecipe = cva(\n [\n `${RAIL} bg-tf-line`,\n 'in-data-hover:bg-tf-line-hi in-data-scrolling:bg-tf-line-hi',\n 'data-dragging:bg-tf-accent-hi',\n 'tf-transition motion-reduce:transition-none',\n ],\n {\n defaultVariants: { way: 'vertical' },\n variants: {\n way: {\n horizontal: 'h-1 min-w-tf-icon-solo-lg',\n vertical: 'min-h-tf-icon-solo-lg w-1',\n } satisfies Record<ScrollAreaWay, string>,\n },\n },\n)\n\nconst scrollCornerRecipe = cva('bg-transparent')\n\nexport {\n type ScrollAreaSurface,\n defaultScrollAreaSurface,\n scrollAreaRecipe,\n scrollAreaSurfaces,\n scrollBarRecipe,\n scrollContentRecipe,\n scrollCornerRecipe,\n scrollThumbRecipe,\n scrollViewportRecipe,\n}\n"],"mappings":";;;AAIA,MAAM,OAAO;AAMb,MAAM,2BAA2B;AAEjC,MAAM,qBAAqB,CAAC,QAAQ,MAAM;AAE1C,MAAM,mBAAmB,IAAI,CAAC,0BAA0B,cAAc,GAAG;CACvE,iBAAiB,EAAE,SAAS,yBAAyB;CACrD,UAAU,EACR,SAAS;EACP,MAAM;EACN,MAAM;CACR,EACF;AACF,CAAC;AAED,MAAM,uBAAuB,IAAI;CAC/B;CACA;CACA,GAAG;AACL,CAAC;AAED,MAAM,sBAAsB,IAAI,eAAe;AAE/C,MAAM,kBAAkB,IACtB,CAAC,GAAG,KAAK,eAAe,6CAA6C,GACrE;CACE,iBAAiB,EAAE,KAAK,WAAW;CACnC,UAAU,EACR,KAAK;EACH,YAAY;EACZ,UAAU;CACZ,EACF;AACF,CACF;AAEA,MAAM,oBAAoB,IACxB;CACE,GAAG,KAAK;CACR;CACA;CACA;AACF,GACA;CACE,iBAAiB,EAAE,KAAK,WAAW;CACnC,UAAU,EACR,KAAK;EACH,YAAY;EACZ,UAAU;CACZ,EACF;AACF,CACF;AAEA,MAAM,qBAAqB,IAAI,gBAAgB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/recipes/searchPalette.d.ts
|
|
2
|
+
declare const searchTriggerRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
3
|
+
declare const searchLabelRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
4
|
+
declare const searchKeyRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
5
|
+
declare const searchPositionerRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
6
|
+
declare const searchPanelRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
7
|
+
declare const searchFieldRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
8
|
+
declare const searchInputRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
9
|
+
declare const searchRuleRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
10
|
+
declare const searchListRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
11
|
+
declare const searchHitRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
12
|
+
declare const searchMarkRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
13
|
+
declare const searchHitTextRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
14
|
+
declare const searchHitMetaRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
15
|
+
declare const searchEmptyRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
16
|
+
declare const searchFootRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
17
|
+
//#endregion
|
|
18
|
+
export { searchEmptyRecipe, searchFieldRecipe, searchFootRecipe, searchHitMetaRecipe, searchHitRecipe, searchHitTextRecipe, searchInputRecipe, searchKeyRecipe, searchLabelRecipe, searchListRecipe, searchMarkRecipe, searchPanelRecipe, searchPositionerRecipe, searchRuleRecipe, searchTriggerRecipe };
|
|
19
|
+
//# sourceMappingURL=searchPalette.d.ts.map
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { controlInert, controlPress, controlReach } from "../parts/control.js";
|
|
2
|
+
import { ruleFading } from "../parts/rule.js";
|
|
3
|
+
import { mirrorMotion } from "./motion.js";
|
|
4
|
+
import { travelMarkBase } from "../parts/travel.js";
|
|
5
|
+
import { scrollFades } from "../parts/scroll.js";
|
|
6
|
+
import { cva } from "class-variance-authority";
|
|
7
|
+
//#region src/recipes/searchPalette.ts
|
|
8
|
+
const GROUND = "relative flex-none bg-tf-shade-under";
|
|
9
|
+
const searchTriggerRecipe = cva([
|
|
10
|
+
"relative isolate inline-flex h-tf-control-sm min-w-60 items-center gap-3",
|
|
11
|
+
"rounded-tf-control bg-tf-control pr-3 pl-3",
|
|
12
|
+
"font-tf-body text-tf-body-sm font-medium text-tf-muted",
|
|
13
|
+
"interactive:hovered:bg-tf-control-hi interactive:hovered:text-tf-fg",
|
|
14
|
+
"tf-icons [&_svg]:size-tf-icon-sm [&_svg]:shrink-0",
|
|
15
|
+
"cursor-pointer tf-transition motion-reduce:transition-none",
|
|
16
|
+
...controlReach,
|
|
17
|
+
...controlInert
|
|
18
|
+
]);
|
|
19
|
+
const searchLabelRecipe = cva("min-w-0 flex-1 truncate text-left");
|
|
20
|
+
const searchKeyRecipe = cva(["flex h-6 flex-none items-center rounded-tf-inline bg-tf-panel-hi px-2", "text-tf-caption-sm font-normal text-tf-muted"]);
|
|
21
|
+
const searchPositionerRecipe = cva(["fixed inset-0 z-tf-modal flex items-start justify-center", "px-4 pt-24 pb-10 font-tf-body sm:px-10"]);
|
|
22
|
+
const searchPanelRecipe = cva([
|
|
23
|
+
"relative isolate rounded-tf-card bg-tf-shade-deep backdrop-blur-tf-panel",
|
|
24
|
+
"tf-edge-sweep tf-swept blend-tf-accent tf-edge-plain",
|
|
25
|
+
"flex max-h-full w-full max-w-tf-measure flex-col overflow-hidden",
|
|
26
|
+
"text-tf-body-sm font-medium text-tf-fg shadow-tf-float",
|
|
27
|
+
...mirrorMotion,
|
|
28
|
+
"motion-reduce:animate-none"
|
|
29
|
+
]);
|
|
30
|
+
const searchFieldRecipe = cva([
|
|
31
|
+
GROUND,
|
|
32
|
+
"flex h-tf-control-lg items-center gap-3 rounded-t-tf-card px-5",
|
|
33
|
+
"tf-icons [&_svg]:size-tf-icon-sm [&_svg]:shrink-0 [&_svg]:text-tf-muted"
|
|
34
|
+
]);
|
|
35
|
+
const searchInputRecipe = cva(["min-w-0 flex-1 border-0 bg-transparent outline-hidden", "font-tf-body text-tf-body text-tf-fg placeholder:text-tf-muted"]);
|
|
36
|
+
const searchRuleRecipe = cva(`absolute inset-x-0 bottom-0 ${ruleFading}`);
|
|
37
|
+
const searchListRecipe = cva([
|
|
38
|
+
"relative flex tf-scroll-hidden max-h-80 min-h-0 flex-col overflow-auto p-2",
|
|
39
|
+
"outline-hidden data-empty:hidden",
|
|
40
|
+
...scrollFades
|
|
41
|
+
]);
|
|
42
|
+
const searchHitRecipe = cva([
|
|
43
|
+
"relative flex h-tf-control-md min-h-tf-control-md flex-none items-center gap-4",
|
|
44
|
+
"rounded-tf-control px-3 text-left text-tf-fg",
|
|
45
|
+
"tf-icons [&_svg]:size-tf-icon-sm [&_svg]:shrink-0 [&_svg]:text-tf-muted",
|
|
46
|
+
"cursor-pointer tf-transition motion-reduce:transition-none",
|
|
47
|
+
...controlReach,
|
|
48
|
+
...controlPress,
|
|
49
|
+
...controlInert
|
|
50
|
+
]);
|
|
51
|
+
const searchMarkRecipe = cva([...travelMarkBase, "inset-x-2 h-tf-control-md rounded-tf-control bg-tf-panel-hi"]);
|
|
52
|
+
const searchHitTextRecipe = cva("min-w-0 flex-1 truncate");
|
|
53
|
+
const searchHitMetaRecipe = cva(["flex-none text-tf-caption-sm whitespace-nowrap text-tf-muted tabular-nums"]);
|
|
54
|
+
const searchEmptyRecipe = cva(["flex h-tf-control-lg flex-none items-center justify-center px-3", "bg-tf-panel-2 text-tf-caption font-medium text-tf-muted"]);
|
|
55
|
+
const searchFootRecipe = cva([
|
|
56
|
+
GROUND,
|
|
57
|
+
"flex items-center justify-between gap-3 rounded-b-tf-card px-5 py-3",
|
|
58
|
+
"text-tf-caption-sm text-tf-muted"
|
|
59
|
+
]);
|
|
60
|
+
//#endregion
|
|
61
|
+
export { searchEmptyRecipe, searchFieldRecipe, searchFootRecipe, searchHitMetaRecipe, searchHitRecipe, searchHitTextRecipe, searchInputRecipe, searchKeyRecipe, searchLabelRecipe, searchListRecipe, searchMarkRecipe, searchPanelRecipe, searchPositionerRecipe, searchRuleRecipe, searchTriggerRecipe };
|
|
62
|
+
|
|
63
|
+
//# sourceMappingURL=searchPalette.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"searchPalette.js","names":[],"sources":["../../src/recipes/searchPalette.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nimport { controlInert, controlPress, controlReach } from '#parts/control'\nimport { ruleFading } from '#parts/rule'\nimport { scrollFades } from '#parts/scroll'\nimport { travelMarkBase } from '#parts/travel'\n\nimport { mirrorMotion } from './motion'\n\nconst GROUND = 'relative flex-none bg-tf-shade-under'\n\nconst searchTriggerRecipe = cva([\n 'relative isolate inline-flex h-tf-control-sm min-w-60 items-center gap-3',\n 'rounded-tf-control bg-tf-control pr-3 pl-3',\n 'font-tf-body text-tf-body-sm font-medium text-tf-muted',\n 'interactive:hovered:bg-tf-control-hi interactive:hovered:text-tf-fg',\n 'tf-icons [&_svg]:size-tf-icon-sm [&_svg]:shrink-0',\n 'cursor-pointer tf-transition motion-reduce:transition-none',\n ...controlReach,\n ...controlInert,\n])\n\nconst searchLabelRecipe = cva('min-w-0 flex-1 truncate text-left')\n\nconst searchKeyRecipe = cva([\n 'flex h-6 flex-none items-center rounded-tf-inline bg-tf-panel-hi px-2',\n 'text-tf-caption-sm font-normal text-tf-muted',\n])\n\nconst searchPositionerRecipe = cva([\n 'fixed inset-0 z-tf-modal flex items-start justify-center',\n 'px-4 pt-24 pb-10 font-tf-body sm:px-10',\n])\n\nconst searchPanelRecipe = cva([\n 'relative isolate rounded-tf-card bg-tf-shade-deep backdrop-blur-tf-panel',\n 'tf-edge-sweep tf-swept blend-tf-accent tf-edge-plain',\n 'flex max-h-full w-full max-w-tf-measure flex-col overflow-hidden',\n 'text-tf-body-sm font-medium text-tf-fg shadow-tf-float',\n ...mirrorMotion,\n 'motion-reduce:animate-none',\n])\n\nconst searchFieldRecipe = cva([\n GROUND,\n 'flex h-tf-control-lg items-center gap-3 rounded-t-tf-card px-5',\n 'tf-icons [&_svg]:size-tf-icon-sm [&_svg]:shrink-0 [&_svg]:text-tf-muted',\n])\n\nconst searchInputRecipe = cva([\n 'min-w-0 flex-1 border-0 bg-transparent outline-hidden',\n 'font-tf-body text-tf-body text-tf-fg placeholder:text-tf-muted',\n])\n\nconst searchRuleRecipe = cva(`absolute inset-x-0 bottom-0 ${ruleFading}`)\n\nconst searchListRecipe = cva([\n 'relative flex tf-scroll-hidden max-h-80 min-h-0 flex-col overflow-auto p-2',\n 'outline-hidden data-empty:hidden',\n ...scrollFades,\n])\n\nconst searchHitRecipe = cva([\n 'relative flex h-tf-control-md min-h-tf-control-md flex-none items-center gap-4',\n 'rounded-tf-control px-3 text-left text-tf-fg',\n 'tf-icons [&_svg]:size-tf-icon-sm [&_svg]:shrink-0 [&_svg]:text-tf-muted',\n 'cursor-pointer tf-transition motion-reduce:transition-none',\n ...controlReach,\n ...controlPress,\n ...controlInert,\n])\n\nconst searchMarkRecipe = cva([\n ...travelMarkBase,\n 'inset-x-2 h-tf-control-md rounded-tf-control bg-tf-panel-hi',\n])\n\nconst searchHitTextRecipe = cva('min-w-0 flex-1 truncate')\n\nconst searchHitMetaRecipe = cva([\n 'flex-none text-tf-caption-sm whitespace-nowrap text-tf-muted tabular-nums',\n])\n\nconst searchEmptyRecipe = cva([\n 'flex h-tf-control-lg flex-none items-center justify-center px-3',\n 'bg-tf-panel-2 text-tf-caption font-medium text-tf-muted',\n])\n\nconst searchFootRecipe = cva([\n GROUND,\n 'flex items-center justify-between gap-3 rounded-b-tf-card px-5 py-3',\n 'text-tf-caption-sm text-tf-muted',\n])\n\nexport {\n searchEmptyRecipe,\n searchFieldRecipe,\n searchFootRecipe,\n searchHitMetaRecipe,\n searchHitRecipe,\n searchHitTextRecipe,\n searchInputRecipe,\n searchKeyRecipe,\n searchLabelRecipe,\n searchListRecipe,\n searchMarkRecipe,\n searchPanelRecipe,\n searchPositionerRecipe,\n searchRuleRecipe,\n searchTriggerRecipe,\n}\n"],"mappings":";;;;;;;AASA,MAAM,SAAS;AAEf,MAAM,sBAAsB,IAAI;CAC9B;CACA;CACA;CACA;CACA;CACA;CACA,GAAG;CACH,GAAG;AACL,CAAC;AAED,MAAM,oBAAoB,IAAI,mCAAmC;AAEjE,MAAM,kBAAkB,IAAI,CAC1B,yEACA,8CACF,CAAC;AAED,MAAM,yBAAyB,IAAI,CACjC,4DACA,wCACF,CAAC;AAED,MAAM,oBAAoB,IAAI;CAC5B;CACA;CACA;CACA;CACA,GAAG;CACH;AACF,CAAC;AAED,MAAM,oBAAoB,IAAI;CAC5B;CACA;CACA;AACF,CAAC;AAED,MAAM,oBAAoB,IAAI,CAC5B,yDACA,gEACF,CAAC;AAED,MAAM,mBAAmB,IAAI,+BAA+B,YAAY;AAExE,MAAM,mBAAmB,IAAI;CAC3B;CACA;CACA,GAAG;AACL,CAAC;AAED,MAAM,kBAAkB,IAAI;CAC1B;CACA;CACA;CACA;CACA,GAAG;CACH,GAAG;CACH,GAAG;AACL,CAAC;AAED,MAAM,mBAAmB,IAAI,CAC3B,GAAG,gBACH,6DACF,CAAC;AAED,MAAM,sBAAsB,IAAI,yBAAyB;AAEzD,MAAM,sBAAsB,IAAI,CAC9B,2EACF,CAAC;AAED,MAAM,oBAAoB,IAAI,CAC5B,mEACA,yDACF,CAAC;AAED,MAAM,mBAAmB,IAAI;CAC3B;CACA;CACA;AACF,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
//#region src/recipes/sectionHeader.d.ts
|
|
2
|
+
type SectionHeaderSize = 'section' | 'hero';
|
|
3
|
+
declare const defaultSectionHeaderSize = "section";
|
|
4
|
+
declare const sectionHeaderSizes: readonly ["section", "hero"];
|
|
5
|
+
declare const sectionHeaderRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
6
|
+
declare const sectionHeaderLabelStackRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { type SectionHeaderSize, defaultSectionHeaderSize, sectionHeaderLabelStackRecipe, sectionHeaderRecipe, sectionHeaderSizes };
|
|
9
|
+
//# sourceMappingURL=sectionHeader.d.ts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { cva } from "class-variance-authority";
|
|
2
|
+
//#region src/recipes/sectionHeader.ts
|
|
3
|
+
const defaultSectionHeaderSize = "section";
|
|
4
|
+
const sectionHeaderSizes = ["section", "hero"];
|
|
5
|
+
const sectionHeaderRecipe = cva("flex flex-col gap-6");
|
|
6
|
+
const sectionHeaderLabelStackRecipe = cva("flex flex-col gap-4");
|
|
7
|
+
//#endregion
|
|
8
|
+
export { defaultSectionHeaderSize, sectionHeaderLabelStackRecipe, sectionHeaderRecipe, sectionHeaderSizes };
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=sectionHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sectionHeader.js","names":[],"sources":["../../src/recipes/sectionHeader.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\ntype SectionHeaderSize = 'section' | 'hero'\n\nconst defaultSectionHeaderSize = 'section' satisfies SectionHeaderSize\n\nconst sectionHeaderSizes = ['section', 'hero'] as const satisfies readonly SectionHeaderSize[]\n\nconst sectionHeaderRecipe = cva('flex flex-col gap-6')\n\nconst sectionHeaderLabelStackRecipe = cva('flex flex-col gap-4')\n\nexport {\n type SectionHeaderSize,\n defaultSectionHeaderSize,\n sectionHeaderLabelStackRecipe,\n sectionHeaderRecipe,\n sectionHeaderSizes,\n}\n"],"mappings":";;AAIA,MAAM,2BAA2B;AAEjC,MAAM,qBAAqB,CAAC,WAAW,MAAM;AAE7C,MAAM,sBAAsB,IAAI,qBAAqB;AAErD,MAAM,gCAAgC,IAAI,qBAAqB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
//#region src/recipes/segmentedControl.d.ts
|
|
2
|
+
declare const segmentedControlRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
3
|
+
declare const segmentedControlIndicatorRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
4
|
+
declare const segmentedControlItemRecipe: (props?: ({
|
|
5
|
+
checked?: boolean | null | undefined;
|
|
6
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { segmentedControlIndicatorRecipe, segmentedControlItemRecipe, segmentedControlRecipe };
|
|
9
|
+
//# sourceMappingURL=segmentedControl.d.ts.map
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { controlInert, controlPress, controlReach, hitArea } from "../parts/control.js";
|
|
2
|
+
import { cva } from "class-variance-authority";
|
|
3
|
+
//#region src/recipes/segmentedControl.ts
|
|
4
|
+
const HIT_AREA = hitArea("after:h-tf-target");
|
|
5
|
+
const segmentedControlRecipe = cva("relative isolate flex items-center gap-1 rounded-tf-pill bg-tf-panel p-1");
|
|
6
|
+
const segmentedControlIndicatorRecipe = cva([
|
|
7
|
+
"pointer-events-none absolute z-[-1] rounded-tf-pill bg-tf-blend blend-tf-accent",
|
|
8
|
+
"top-(--top) left-(--left) h-(--height) w-(--width)",
|
|
9
|
+
"[--transition-duration:var(--tf-duration-1)]",
|
|
10
|
+
"[--transition-timing-function:var(--ease-tf)]"
|
|
11
|
+
]);
|
|
12
|
+
const segmentedControlItemRecipe = cva([
|
|
13
|
+
"relative flex h-tf-control-2xs items-center rounded-tf-pill px-3 text-tf-caption-sm font-normal",
|
|
14
|
+
"cursor-pointer tf-transition motion-reduce:transition-none",
|
|
15
|
+
HIT_AREA,
|
|
16
|
+
...controlReach,
|
|
17
|
+
...controlPress,
|
|
18
|
+
...controlInert
|
|
19
|
+
], {
|
|
20
|
+
defaultVariants: { checked: false },
|
|
21
|
+
variants: { checked: {
|
|
22
|
+
false: "text-tf-muted interactive:hovered:text-tf-fg",
|
|
23
|
+
true: "text-tf-on-accent"
|
|
24
|
+
} }
|
|
25
|
+
});
|
|
26
|
+
//#endregion
|
|
27
|
+
export { segmentedControlIndicatorRecipe, segmentedControlItemRecipe, segmentedControlRecipe };
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=segmentedControl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"segmentedControl.js","names":[],"sources":["../../src/recipes/segmentedControl.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nimport { controlInert, controlPress, controlReach, hitArea } from '#parts/control'\n\nconst HIT_AREA = hitArea('after:h-tf-target')\n\nconst segmentedControlRecipe = cva(\n 'relative isolate flex items-center gap-1 rounded-tf-pill bg-tf-panel p-1',\n)\n\nconst segmentedControlIndicatorRecipe = cva([\n 'pointer-events-none absolute z-[-1] rounded-tf-pill bg-tf-blend blend-tf-accent',\n 'top-(--top) left-(--left) h-(--height) w-(--width)',\n '[--transition-duration:var(--tf-duration-1)]',\n '[--transition-timing-function:var(--ease-tf)]',\n])\n\nconst segmentedControlItemRecipe = cva(\n [\n 'relative flex h-tf-control-2xs items-center rounded-tf-pill px-3 text-tf-caption-sm font-normal',\n 'cursor-pointer tf-transition motion-reduce:transition-none',\n HIT_AREA,\n ...controlReach,\n ...controlPress,\n ...controlInert,\n ],\n {\n defaultVariants: { checked: false },\n variants: {\n checked: {\n false: 'text-tf-muted interactive:hovered:text-tf-fg',\n true: 'text-tf-on-accent',\n },\n },\n },\n)\n\nexport { segmentedControlIndicatorRecipe, segmentedControlItemRecipe, segmentedControlRecipe }\n"],"mappings":";;;AAIA,MAAM,WAAW,QAAQ,mBAAmB;AAE5C,MAAM,yBAAyB,IAC7B,0EACF;AAEA,MAAM,kCAAkC,IAAI;CAC1C;CACA;CACA;CACA;AACF,CAAC;AAED,MAAM,6BAA6B,IACjC;CACE;CACA;CACA;CACA,GAAG;CACH,GAAG;CACH,GAAG;AACL,GACA;CACE,iBAAiB,EAAE,SAAS,MAAM;CAClC,UAAU,EACR,SAAS;EACP,OAAO;EACP,MAAM;CACR,EACF;AACF,CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
//#region src/recipes/select.d.ts
|
|
2
|
+
declare const selectTriggerRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
3
|
+
declare const selectValueRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
4
|
+
declare const selectIndicatorRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
5
|
+
declare const selectRowRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
6
|
+
declare const selectEmptyRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { selectEmptyRecipe, selectIndicatorRecipe, selectRowRecipe, selectTriggerRecipe, selectValueRecipe };
|
|
9
|
+
//# sourceMappingURL=select.d.ts.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { cva } from "class-variance-authority";
|
|
2
|
+
//#region src/recipes/select.ts
|
|
3
|
+
const selectTriggerRecipe = cva([
|
|
4
|
+
"flex items-center text-left",
|
|
5
|
+
"cursor-pointer disabled:cursor-not-allowed",
|
|
6
|
+
"data-readonly:cursor-default",
|
|
7
|
+
"outline-hidden"
|
|
8
|
+
]);
|
|
9
|
+
const selectValueRecipe = cva("min-w-0 flex-1 truncate");
|
|
10
|
+
const selectIndicatorRecipe = cva(["tf-transition motion-reduce:transition-none", "data-[state=open]:rotate-180"]);
|
|
11
|
+
const selectRowRecipe = cva([
|
|
12
|
+
"reached:**:data-[part=trailing]:text-tf-accent-hi",
|
|
13
|
+
"reached:**:data-[part=trailing]:stroke-tf-ink",
|
|
14
|
+
"has-data-[state=open]:**:data-[part=trailing]:text-tf-accent-hi",
|
|
15
|
+
"has-data-[state=open]:**:data-[part=trailing]:stroke-tf-ink"
|
|
16
|
+
]);
|
|
17
|
+
const selectEmptyRecipe = cva(["flex h-tf-row min-h-tf-row flex-none items-center px-3", "text-tf-body-sm font-medium text-tf-muted"]);
|
|
18
|
+
//#endregion
|
|
19
|
+
export { selectEmptyRecipe, selectIndicatorRecipe, selectRowRecipe, selectTriggerRecipe, selectValueRecipe };
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.js","names":[],"sources":["../../src/recipes/select.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nconst selectTriggerRecipe = cva([\n 'flex items-center text-left',\n 'cursor-pointer disabled:cursor-not-allowed',\n 'data-readonly:cursor-default',\n 'outline-hidden',\n])\n\nconst selectValueRecipe = cva('min-w-0 flex-1 truncate')\n\nconst selectIndicatorRecipe = cva([\n 'tf-transition motion-reduce:transition-none',\n 'data-[state=open]:rotate-180',\n])\n\nconst selectRowRecipe = cva([\n 'reached:**:data-[part=trailing]:text-tf-accent-hi',\n 'reached:**:data-[part=trailing]:stroke-tf-ink',\n 'has-data-[state=open]:**:data-[part=trailing]:text-tf-accent-hi',\n 'has-data-[state=open]:**:data-[part=trailing]:stroke-tf-ink',\n])\n\nconst selectEmptyRecipe = cva([\n 'flex h-tf-row min-h-tf-row flex-none items-center px-3',\n 'text-tf-body-sm font-medium text-tf-muted',\n])\n\nexport {\n selectEmptyRecipe,\n selectIndicatorRecipe,\n selectRowRecipe,\n selectTriggerRecipe,\n selectValueRecipe,\n}\n"],"mappings":";;AAEA,MAAM,sBAAsB,IAAI;CAC9B;CACA;CACA;CACA;AACF,CAAC;AAED,MAAM,oBAAoB,IAAI,yBAAyB;AAEvD,MAAM,wBAAwB,IAAI,CAChC,+CACA,8BACF,CAAC;AAED,MAAM,kBAAkB,IAAI;CAC1B;CACA;CACA;CACA;AACF,CAAC;AAED,MAAM,oBAAoB,IAAI,CAC5B,0DACA,2CACF,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region src/recipes/separator.d.ts
|
|
2
|
+
type SeparatorOrientation = 'horizontal' | 'vertical';
|
|
3
|
+
type SeparatorVariant = 'fade' | 'filled' | 'quiet';
|
|
4
|
+
declare const defaultSeparatorOrientation = "horizontal";
|
|
5
|
+
declare const defaultSeparatorVariant = "filled";
|
|
6
|
+
declare const separatorRecipe: (props?: ({
|
|
7
|
+
orientation?: "vertical" | "horizontal" | null | undefined;
|
|
8
|
+
variant?: "quiet" | "filled" | "fade" | null | undefined;
|
|
9
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
10
|
+
declare const separatorOrientations: readonly ["horizontal", "vertical"];
|
|
11
|
+
declare const separatorVariants: readonly ["fade", "filled", "quiet"];
|
|
12
|
+
//#endregion
|
|
13
|
+
export { type SeparatorOrientation, type SeparatorVariant, defaultSeparatorOrientation, defaultSeparatorVariant, separatorOrientations, separatorRecipe, separatorVariants };
|
|
14
|
+
//# sourceMappingURL=separator.d.ts.map
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { ruleFading, ruleFadingDown, ruleFilled, ruleFilledDown, ruleQuiet } from "../parts/rule.js";
|
|
2
|
+
import { cva } from "class-variance-authority";
|
|
3
|
+
//#region src/recipes/separator.ts
|
|
4
|
+
const defaultSeparatorOrientation = "horizontal";
|
|
5
|
+
const defaultSeparatorVariant = "filled";
|
|
6
|
+
const separatorRecipe = cva("shrink-0", {
|
|
7
|
+
compoundVariants: [
|
|
8
|
+
{
|
|
9
|
+
class: ruleFading,
|
|
10
|
+
orientation: "horizontal",
|
|
11
|
+
variant: "fade"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
class: ruleQuiet,
|
|
15
|
+
orientation: "horizontal",
|
|
16
|
+
variant: "quiet"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
class: ruleFilled,
|
|
20
|
+
orientation: "horizontal",
|
|
21
|
+
variant: "filled"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
class: ruleFadingDown,
|
|
25
|
+
orientation: "vertical",
|
|
26
|
+
variant: "fade"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
class: ruleFilledDown,
|
|
30
|
+
orientation: "vertical",
|
|
31
|
+
variant: "filled"
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
defaultVariants: {
|
|
35
|
+
orientation: defaultSeparatorOrientation,
|
|
36
|
+
variant: defaultSeparatorVariant
|
|
37
|
+
},
|
|
38
|
+
variants: {
|
|
39
|
+
orientation: {
|
|
40
|
+
horizontal: "w-full",
|
|
41
|
+
vertical: "self-stretch"
|
|
42
|
+
},
|
|
43
|
+
variant: {
|
|
44
|
+
fade: "",
|
|
45
|
+
filled: "",
|
|
46
|
+
quiet: ""
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
const separatorOrientations = ["horizontal", "vertical"];
|
|
51
|
+
const separatorVariants = [
|
|
52
|
+
"fade",
|
|
53
|
+
"filled",
|
|
54
|
+
"quiet"
|
|
55
|
+
];
|
|
56
|
+
//#endregion
|
|
57
|
+
export { defaultSeparatorOrientation, defaultSeparatorVariant, separatorOrientations, separatorRecipe, separatorVariants };
|
|
58
|
+
|
|
59
|
+
//# sourceMappingURL=separator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"separator.js","names":[],"sources":["../../src/recipes/separator.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nimport { ruleFading, ruleFadingDown, ruleFilled, ruleFilledDown, ruleQuiet } from '#parts/rule'\n\ntype SeparatorOrientation = 'horizontal' | 'vertical'\n\ntype SeparatorVariant = 'fade' | 'filled' | 'quiet'\n\nconst defaultSeparatorOrientation = 'horizontal' satisfies SeparatorOrientation\n\nconst defaultSeparatorVariant = 'filled' satisfies SeparatorVariant\n\nconst separatorRecipe = cva('shrink-0', {\n compoundVariants: [\n { class: ruleFading, orientation: 'horizontal', variant: 'fade' },\n { class: ruleQuiet, orientation: 'horizontal', variant: 'quiet' },\n { class: ruleFilled, orientation: 'horizontal', variant: 'filled' },\n { class: ruleFadingDown, orientation: 'vertical', variant: 'fade' },\n { class: ruleFilledDown, orientation: 'vertical', variant: 'filled' },\n ],\n defaultVariants: {\n orientation: defaultSeparatorOrientation,\n variant: defaultSeparatorVariant,\n },\n variants: {\n orientation: {\n horizontal: 'w-full',\n vertical: 'self-stretch',\n } satisfies Record<SeparatorOrientation, string>,\n variant: {\n fade: '',\n filled: '',\n quiet: '',\n } satisfies Record<SeparatorVariant, string>,\n },\n})\n\nconst separatorOrientations = [\n 'horizontal',\n 'vertical',\n] as const satisfies readonly SeparatorOrientation[]\n\nconst separatorVariants = ['fade', 'filled', 'quiet'] as const satisfies readonly SeparatorVariant[]\n\nexport {\n type SeparatorOrientation,\n type SeparatorVariant,\n defaultSeparatorOrientation,\n defaultSeparatorVariant,\n separatorOrientations,\n separatorRecipe,\n separatorVariants,\n}\n"],"mappings":";;;AAQA,MAAM,8BAA8B;AAEpC,MAAM,0BAA0B;AAEhC,MAAM,kBAAkB,IAAI,YAAY;CACtC,kBAAkB;EAChB;GAAE,OAAO;GAAY,aAAa;GAAc,SAAS;EAAO;EAChE;GAAE,OAAO;GAAW,aAAa;GAAc,SAAS;EAAQ;EAChE;GAAE,OAAO;GAAY,aAAa;GAAc,SAAS;EAAS;EAClE;GAAE,OAAO;GAAgB,aAAa;GAAY,SAAS;EAAO;EAClE;GAAE,OAAO;GAAgB,aAAa;GAAY,SAAS;EAAS;CACtE;CACA,iBAAiB;EACf,aAAa;EACb,SAAS;CACX;CACA,UAAU;EACR,aAAa;GACX,YAAY;GACZ,UAAU;EACZ;EACA,SAAS;GACP,MAAM;GACN,QAAQ;GACR,OAAO;EACT;CACF;AACF,CAAC;AAED,MAAM,wBAAwB,CAC5B,cACA,UACF;AAEA,MAAM,oBAAoB;CAAC;CAAQ;CAAU;AAAO"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
//#region src/recipes/sidebar.d.ts
|
|
2
|
+
declare const sidebarTravel: (index: number, rail: boolean) => string;
|
|
3
|
+
declare const sidebarRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
4
|
+
declare const sidebarScopeRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
5
|
+
declare const sidebarMobileBarRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
6
|
+
declare const sidebarMobileHeadingsRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
7
|
+
declare const sidebarMobileEyebrowRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
8
|
+
declare const sidebarMobileTitleRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
9
|
+
declare const sidebarOverlayBackdropRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
10
|
+
declare const sidebarOverlayPositionerRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
11
|
+
declare const sidebarOverlayPanelRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
12
|
+
declare const sidebarOverlayHeadRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
13
|
+
declare const sidebarOverlayBrandRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
14
|
+
declare const sidebarOverlayScopeRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
15
|
+
declare const sidebarOverlayBodyRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
16
|
+
declare const sidebarOverlayNavRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
17
|
+
declare const sidebarOverlaySeparatorRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
18
|
+
declare const sidebarOverlayItemActive = "aria-[current=page]:bg-tf-blend aria-[current=page]:blend-tf-accent";
|
|
19
|
+
declare const sidebarHeadRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
20
|
+
declare const sidebarBrandRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
21
|
+
declare const sidebarBrandStackRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
22
|
+
declare const sidebarWordmarkRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
23
|
+
declare const sidebarBrandSubtitleRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
24
|
+
declare const sidebarToggleRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
25
|
+
declare const sidebarSwitchRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
26
|
+
declare const sidebarNavRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
27
|
+
declare const sidebarMarkRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
28
|
+
declare const sidebarGroupRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
29
|
+
declare const sidebarItemRecipe: (props?: ({
|
|
30
|
+
level?: "top" | "child" | null | undefined;
|
|
31
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
32
|
+
declare const sidebarIconRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
33
|
+
declare const sidebarLabelRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
34
|
+
declare const sidebarChevronRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
35
|
+
declare const sidebarDotRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
36
|
+
declare const sidebarSubRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
37
|
+
declare const sidebarFootRecipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
38
|
+
//#endregion
|
|
39
|
+
export { sidebarBrandRecipe, sidebarBrandStackRecipe, sidebarBrandSubtitleRecipe, sidebarChevronRecipe, sidebarDotRecipe, sidebarFootRecipe, sidebarGroupRecipe, sidebarHeadRecipe, sidebarIconRecipe, sidebarItemRecipe, sidebarLabelRecipe, sidebarMarkRecipe, sidebarMobileBarRecipe, sidebarMobileEyebrowRecipe, sidebarMobileHeadingsRecipe, sidebarMobileTitleRecipe, sidebarNavRecipe, sidebarOverlayBackdropRecipe, sidebarOverlayBodyRecipe, sidebarOverlayBrandRecipe, sidebarOverlayHeadRecipe, sidebarOverlayItemActive, sidebarOverlayNavRecipe, sidebarOverlayPanelRecipe, sidebarOverlayPositionerRecipe, sidebarOverlayScopeRecipe, sidebarOverlaySeparatorRecipe, sidebarRecipe, sidebarScopeRecipe, sidebarSubRecipe, sidebarSwitchRecipe, sidebarToggleRecipe, sidebarTravel, sidebarWordmarkRecipe };
|
|
40
|
+
//# sourceMappingURL=sidebar.d.ts.map
|