@shortwind/catalog 0.1.0-beta.10 → 0.1.0-beta.12

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/README.md CHANGED
@@ -6,7 +6,7 @@ The Shortwind recipe catalog — the built, versioned recipe files that the CLI
6
6
 
7
7
  ## You don't install this directly
8
8
 
9
- This package is a **source of recipes**, not a runtime dependency. The CLI fetches the latest catalog from npm (falling back to a bundled copy offline) and **copies** the recipe files into your project's `./recipes/`, shadcn-style — so you own and can edit them. It won't appear in your `dependencies` or `devDependencies`.
9
+ This package is a **source of recipes**, not a runtime dependency. The CLI fetches the latest catalog from npm (falling back to a bundled copy offline) and **copies** the recipe files into your project's `./recipes/` — so you own and can edit them. It won't appear in your `dependencies` or `devDependencies`.
10
10
 
11
11
  ```bash
12
12
  npx @shortwind/cli@beta init # pulls recipes from this catalog into ./recipes/
@@ -1,5 +1,5 @@
1
1
  # form
2
2
 
3
- ## 0.0.1
3
+ ## 0.0.2
4
4
 
5
5
  Initial release.
@@ -1,10 +1,10 @@
1
- /* shortwind: form@0.0.1 sha:bc12a9cc520a2d85 */
1
+ /* shortwind: form@0.0.2 sha:e78b50acd247f5af */
2
2
 
3
3
  /* @guide
4
4
  Wrap each label+control+message in @field (use @field-error for the invalid
5
5
  state); group related fields with @fieldset. Controls are bare: @input,
6
6
  @textarea, @select, @checkbox, @radio, plus @input-error for invalid text
7
- and @input-shell for the transparent shadcn-style shell. Helper text is
7
+ and @input-shell for the transparent input shell. Helper text is
8
8
  @help. There is no @form-group (use @field), @form-input (use @input),
9
9
  @form-helper (use @help) or @form-checkbox (use @checkbox); the field label
10
10
  recipe is @label, in the text family.
@@ -15,7 +15,7 @@
15
15
  block w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:border-ring focus:outline-2 focus:outline-offset-2 focus:outline-ring disabled:cursor-not-allowed disabled:opacity-50
16
16
  }
17
17
 
18
- /* shadcn/dinachi-style input shell — transparent background, h-9, file/
18
+ /* Dinachi-style input shell — transparent background, h-9, file/
19
19
  placeholder/selection/aria-invalid/focus-visible states baked in. */
20
20
  @recipe input-shell {
21
21
  flex h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs outline-none transition-[color,box-shadow] placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:border-destructive aria-invalid:ring-destructive/20 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30 dark:aria-invalid:ring-destructive/40
@@ -1,10 +1,10 @@
1
- /* shortwind: form@0.0.1 sha:bc12a9cc520a2d85 */
1
+ /* shortwind: form@0.0.2 sha:e78b50acd247f5af */
2
2
 
3
3
  /* @guide
4
4
  Wrap each label+control+message in @field (use @field-error for the invalid
5
5
  state); group related fields with @fieldset. Controls are bare: @input,
6
6
  @textarea, @select, @checkbox, @radio, plus @input-error for invalid text
7
- and @input-shell for the transparent shadcn-style shell. Helper text is
7
+ and @input-shell for the transparent input shell. Helper text is
8
8
  @help. There is no @form-group (use @field), @form-input (use @input),
9
9
  @form-helper (use @help) or @form-checkbox (use @checkbox); the field label
10
10
  recipe is @label, in the text family.
@@ -15,7 +15,7 @@
15
15
  block w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:border-ring focus:outline-2 focus:outline-offset-2 focus:outline-ring disabled:cursor-not-allowed disabled:opacity-50
16
16
  }
17
17
 
18
- /* shadcn/dinachi-style input shell — transparent background, h-9, file/
18
+ /* Dinachi-style input shell — transparent background, h-9, file/
19
19
  placeholder/selection/aria-invalid/focus-visible states baked in. */
20
20
  @recipe input-shell {
21
21
  flex h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs outline-none transition-[color,box-shadow] placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:border-destructive aria-invalid:ring-destructive/20 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30 dark:aria-invalid:ring-destructive/40
@@ -894,7 +894,7 @@
894
894
  "name": "input"
895
895
  },
896
896
  {
897
- "description": "shadcn/dinachi-style input shell — transparent background, h-9, file/\n placeholder/selection/aria-invalid/focus-visible states baked in.",
897
+ "description": "Dinachi-style input shell — transparent background, h-9, file/\n placeholder/selection/aria-invalid/focus-visible states baked in.",
898
898
  "expansion": [
899
899
  "flex",
900
900
  "h-9",
@@ -1072,8 +1072,8 @@
1072
1072
  "name": "help"
1073
1073
  }
1074
1074
  ],
1075
- "sha": "bc12a9cc520a2d85",
1076
- "version": "0.0.1"
1075
+ "sha": "e78b50acd247f5af",
1076
+ "version": "0.0.2"
1077
1077
  },
1078
1078
  {
1079
1079
  "name": "icon",
@@ -1824,6 +1824,18 @@
1824
1824
  ],
1825
1825
  "name": "caption"
1826
1826
  },
1827
+ {
1828
+ "description": "Eyebrow — uppercase kicker above a heading.",
1829
+ "expansion": [
1830
+ "font-mono",
1831
+ "text-xs",
1832
+ "font-medium",
1833
+ "uppercase",
1834
+ "tracking-[0.2em]",
1835
+ "text-muted-foreground"
1836
+ ],
1837
+ "name": "eyebrow"
1838
+ },
1827
1839
  {
1828
1840
  "description": "Inline link with hover/focus states.",
1829
1841
  "expansion": [
@@ -1837,8 +1849,8 @@
1837
1849
  "name": "link"
1838
1850
  }
1839
1851
  ],
1840
- "sha": "9c5d7ed7b1e3ef5a",
1841
- "version": "0.0.1"
1852
+ "sha": "f39dc7b88afefc8f",
1853
+ "version": "0.0.2"
1842
1854
  },
1843
1855
  {
1844
1856
  "name": "tooltip",
@@ -1,10 +1,10 @@
1
- /* shortwind: form@0.0.1 sha:bc12a9cc520a2d85 */
1
+ /* shortwind: form@0.0.2 sha:e78b50acd247f5af */
2
2
 
3
3
  /* @guide
4
4
  Wrap each label+control+message in @field (use @field-error for the invalid
5
5
  state); group related fields with @fieldset. Controls are bare: @input,
6
6
  @textarea, @select, @checkbox, @radio, plus @input-error for invalid text
7
- and @input-shell for the transparent shadcn-style shell. Helper text is
7
+ and @input-shell for the transparent input shell. Helper text is
8
8
  @help. There is no @form-group (use @field), @form-input (use @input),
9
9
  @form-helper (use @help) or @form-checkbox (use @checkbox); the field label
10
10
  recipe is @label, in the text family.
@@ -15,7 +15,7 @@
15
15
  block w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:border-ring focus:outline-2 focus:outline-offset-2 focus:outline-ring disabled:cursor-not-allowed disabled:opacity-50
16
16
  }
17
17
 
18
- /* shadcn/dinachi-style input shell — transparent background, h-9, file/
18
+ /* Dinachi-style input shell — transparent background, h-9, file/
19
19
  placeholder/selection/aria-invalid/focus-visible states baked in. */
20
20
  @recipe input-shell {
21
21
  flex h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs outline-none transition-[color,box-shadow] placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:border-destructive aria-invalid:ring-destructive/20 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30 dark:aria-invalid:ring-destructive/40
@@ -1,11 +1,12 @@
1
- /* shortwind: text@0.0.1 sha:9c5d7ed7b1e3ef5a */
1
+ /* shortwind: text@0.0.2 sha:f39dc7b88afefc8f */
2
2
 
3
3
  /* @guide
4
4
  Headings are sized by weight, not HTML level: @heading-xl/lg/md/sm — there
5
5
  is no @h1..@h6. Body copy: @body (default), @lead (intro paragraphs), @muted
6
- (secondary), @caption (fine print). Use @label for form labels and @link for
7
- inline links. Don't append a -text suffix: it's @body not @body-text, @muted
8
- not @muted-text, @link not @link-text.
6
+ (secondary), @caption (fine print), @eyebrow (uppercase kicker above a
7
+ heading). Use @label for form labels and @link for inline links. Don't
8
+ append a -text suffix: it's @body not @body-text, @muted not @muted-text,
9
+ @link not @link-text.
9
10
  */
10
11
 
11
12
  /* Top-level page heading. */
@@ -53,6 +54,11 @@
53
54
  text-xs text-muted-foreground
54
55
  }
55
56
 
57
+ /* Eyebrow — uppercase kicker above a heading. */
58
+ @recipe eyebrow {
59
+ font-mono text-xs font-medium uppercase tracking-[0.2em] text-muted-foreground
60
+ }
61
+
56
62
  /* Inline link with hover/focus states. */
57
63
  @recipe link {
58
64
  text-primary underline-offset-2 hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring
@@ -1,5 +1,5 @@
1
1
  # text
2
2
 
3
- ## 0.0.1
3
+ ## 0.0.2
4
4
 
5
5
  Initial release.
@@ -1,11 +1,12 @@
1
- /* shortwind: text@0.0.1 sha:9c5d7ed7b1e3ef5a */
1
+ /* shortwind: text@0.0.2 sha:f39dc7b88afefc8f */
2
2
 
3
3
  /* @guide
4
4
  Headings are sized by weight, not HTML level: @heading-xl/lg/md/sm — there
5
5
  is no @h1..@h6. Body copy: @body (default), @lead (intro paragraphs), @muted
6
- (secondary), @caption (fine print). Use @label for form labels and @link for
7
- inline links. Don't append a -text suffix: it's @body not @body-text, @muted
8
- not @muted-text, @link not @link-text.
6
+ (secondary), @caption (fine print), @eyebrow (uppercase kicker above a
7
+ heading). Use @label for form labels and @link for inline links. Don't
8
+ append a -text suffix: it's @body not @body-text, @muted not @muted-text,
9
+ @link not @link-text.
9
10
  */
10
11
 
11
12
  /* Top-level page heading. */
@@ -53,6 +54,11 @@
53
54
  text-xs text-muted-foreground
54
55
  }
55
56
 
57
+ /* Eyebrow — uppercase kicker above a heading. */
58
+ @recipe eyebrow {
59
+ font-mono text-xs font-medium uppercase tracking-[0.2em] text-muted-foreground
60
+ }
61
+
56
62
  /* Inline link with hover/focus states. */
57
63
  @recipe link {
58
64
  text-primary underline-offset-2 hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring
@@ -1,11 +1,12 @@
1
- /* shortwind: text@0.0.1 sha:9c5d7ed7b1e3ef5a */
1
+ /* shortwind: text@0.0.2 sha:f39dc7b88afefc8f */
2
2
 
3
3
  /* @guide
4
4
  Headings are sized by weight, not HTML level: @heading-xl/lg/md/sm — there
5
5
  is no @h1..@h6. Body copy: @body (default), @lead (intro paragraphs), @muted
6
- (secondary), @caption (fine print). Use @label for form labels and @link for
7
- inline links. Don't append a -text suffix: it's @body not @body-text, @muted
8
- not @muted-text, @link not @link-text.
6
+ (secondary), @caption (fine print), @eyebrow (uppercase kicker above a
7
+ heading). Use @label for form labels and @link for inline links. Don't
8
+ append a -text suffix: it's @body not @body-text, @muted not @muted-text,
9
+ @link not @link-text.
9
10
  */
10
11
 
11
12
  /* Top-level page heading. */
@@ -53,6 +54,11 @@
53
54
  text-xs text-muted-foreground
54
55
  }
55
56
 
57
+ /* Eyebrow — uppercase kicker above a heading. */
58
+ @recipe eyebrow {
59
+ font-mono text-xs font-medium uppercase tracking-[0.2em] text-muted-foreground
60
+ }
61
+
56
62
  /* Inline link with hover/focus states. */
57
63
  @recipe link {
58
64
  text-primary underline-offset-2 hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring