sheerly 0.0.3 → 0.0.5
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 +48 -0
- package/lib/accordion.css +1 -1
- package/lib/accordion.d.ts +2 -2
- package/lib/alert.css +1 -1
- package/lib/alert.d.ts +4 -4
- package/lib/avatar.css +1 -1
- package/lib/avatar.d.ts +4 -4
- package/lib/badge.css +1 -1
- package/lib/badge.d.ts +1 -1
- package/lib/breadcrumb.css +1 -1
- package/lib/breadcrumb.d.ts +7 -7
- package/lib/button.css +1 -1
- package/lib/button.d.ts +1 -1
- package/lib/card.css +1 -1
- package/lib/card.d.ts +7 -7
- package/lib/carousel.d.ts +2 -2
- package/lib/checkbox.d.ts +1 -1
- package/lib/dialog.css +1 -1
- package/lib/dialog.d.ts +7 -7
- package/lib/dropdown-menu.css +1 -1
- package/lib/dropdown-menu.d.ts +11 -11
- package/lib/hover-card.css +1 -1
- package/lib/hover-card.d.ts +2 -2
- package/lib/index.css +1 -1
- package/lib/input.css +1 -1
- package/lib/input.d.ts +1 -1
- package/lib/kbd.css +1 -1
- package/lib/kbd.d.ts +2 -2
- package/lib/label.css +1 -1
- package/lib/label.d.ts +1 -1
- package/lib/pagination.css +1 -1
- package/lib/pagination.d.ts +7 -7
- package/lib/popover.css +1 -1
- package/lib/popover.d.ts +2 -2
- package/lib/progress.d.ts +1 -1
- package/lib/radio.d.ts +2 -2
- package/lib/root.css +1 -1
- package/lib/root.terminal.css +1 -0
- package/lib/scrollbar.d.ts +1 -1
- package/lib/select.css +1 -1
- package/lib/select.d.ts +1 -1
- package/lib/separator.d.ts +1 -1
- package/lib/sheet.css +1 -1
- package/lib/sheet.d.ts +7 -7
- package/lib/skeleton.d.ts +1 -1
- package/lib/slider.d.ts +1 -1
- package/lib/spinner.d.ts +1 -1
- package/lib/switch.d.ts +1 -1
- package/lib/table.css +1 -1
- package/lib/table.d.ts +2 -2
- package/lib/tabs.css +1 -1
- package/lib/tabs.d.ts +4 -4
- package/lib/textarea.css +1 -1
- package/lib/textarea.d.ts +1 -1
- package/lib/toggle.css +1 -1
- package/lib/toggle.d.ts +1 -1
- package/lib/tooltip.css +1 -1
- package/lib/tooltip.d.ts +2 -2
- package/lib/typography.css +1 -1
- package/lib/typography.d.ts +1 -1
- package/package.json +35 -34
- package/src/accordion.css +2 -2
- package/src/alert.css +1 -1
- package/src/avatar.css +1 -1
- package/src/badge.css +1 -1
- package/src/breadcrumb.css +1 -1
- package/src/button.css +1 -1
- package/src/card.css +2 -2
- package/src/dialog.css +2 -2
- package/src/dropdown-menu.css +2 -1
- package/src/hover-card.css +1 -1
- package/src/input.css +1 -1
- package/src/kbd.css +1 -1
- package/src/label.css +1 -1
- package/src/pagination.css +1 -1
- package/src/popover.css +1 -1
- package/src/root.css +6 -0
- package/src/root.terminal.css +77 -0
- package/src/select.css +1 -1
- package/src/sheet.css +2 -2
- package/src/table.css +1 -1
- package/src/tabs.css +1 -1
- package/src/textarea.css +1 -1
- package/src/toggle.css +1 -1
- package/src/tooltip.css +1 -1
- package/src/typography.css +2 -2
package/lib/sheet.d.ts
CHANGED
|
@@ -15,15 +15,15 @@ export interface SheetProps extends DialogHTMLAttributes<HTMLDialogElement> {
|
|
|
15
15
|
* <SheetBody>…</SheetBody>
|
|
16
16
|
* </Sheet>
|
|
17
17
|
*/
|
|
18
|
-
export declare function Sheet({ className, ...props }: SheetProps): import(
|
|
18
|
+
export declare function Sheet({ className, ...props }: SheetProps): import('react').JSX.Element;
|
|
19
19
|
export type SheetHeaderProps<T extends ElementType = 'div'> = PolymorphicProps<T>;
|
|
20
|
-
export declare function SheetHeader<T extends ElementType = 'div'>({ as, className, ...props }: SheetHeaderProps<T>): import(
|
|
20
|
+
export declare function SheetHeader<T extends ElementType = 'div'>({ as, className, ...props }: SheetHeaderProps<T>): import('react').JSX.Element;
|
|
21
21
|
export type SheetTitleProps<T extends ElementType = 'h3'> = PolymorphicProps<T>;
|
|
22
|
-
export declare function SheetTitle<T extends ElementType = 'h3'>({ as, className, ...props }: SheetTitleProps<T>): import(
|
|
22
|
+
export declare function SheetTitle<T extends ElementType = 'h3'>({ as, className, ...props }: SheetTitleProps<T>): import('react').JSX.Element;
|
|
23
23
|
export type SheetDescriptionProps<T extends ElementType = 'p'> = PolymorphicProps<T>;
|
|
24
|
-
export declare function SheetDescription<T extends ElementType = 'p'>({ as, className, ...props }: SheetDescriptionProps<T>): import(
|
|
24
|
+
export declare function SheetDescription<T extends ElementType = 'p'>({ as, className, ...props }: SheetDescriptionProps<T>): import('react').JSX.Element;
|
|
25
25
|
export type SheetBodyProps<T extends ElementType = 'div'> = PolymorphicProps<T>;
|
|
26
|
-
export declare function SheetBody<T extends ElementType = 'div'>({ as, className, ...props }: SheetBodyProps<T>): import(
|
|
26
|
+
export declare function SheetBody<T extends ElementType = 'div'>({ as, className, ...props }: SheetBodyProps<T>): import('react').JSX.Element;
|
|
27
27
|
export type SheetFooterProps<T extends ElementType = 'div'> = PolymorphicProps<T>;
|
|
28
|
-
export declare function SheetFooter<T extends ElementType = 'div'>({ as, className, ...props }: SheetFooterProps<T>): import(
|
|
29
|
-
export declare function SheetClose({ className, type, ...props }: ButtonHTMLAttributes<HTMLButtonElement>): import(
|
|
28
|
+
export declare function SheetFooter<T extends ElementType = 'div'>({ as, className, ...props }: SheetFooterProps<T>): import('react').JSX.Element;
|
|
29
|
+
export declare function SheetClose({ className, type, ...props }: ButtonHTMLAttributes<HTMLButtonElement>): import('react').JSX.Element;
|
package/lib/skeleton.d.ts
CHANGED
|
@@ -9,4 +9,4 @@ export type SkeletonProps<T extends ElementType = 'div'> = PolymorphicProps<T>;
|
|
|
9
9
|
* @example
|
|
10
10
|
* <Skeleton style={{ width: 200, height: 20, borderRadius: 6 }} />
|
|
11
11
|
*/
|
|
12
|
-
export declare function Skeleton<T extends ElementType = 'div'>({ as, className, ...props }: SkeletonProps<T>): import(
|
|
12
|
+
export declare function Skeleton<T extends ElementType = 'div'>({ as, className, ...props }: SkeletonProps<T>): import('react').JSX.Element;
|
package/lib/slider.d.ts
CHANGED
|
@@ -6,4 +6,4 @@ export type SliderProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'type'>;
|
|
|
6
6
|
* @example
|
|
7
7
|
* <Slider min={0} max={100} defaultValue={50} />
|
|
8
8
|
*/
|
|
9
|
-
export declare function Slider({ className, ...props }: SliderProps): import(
|
|
9
|
+
export declare function Slider({ className, ...props }: SliderProps): import('react').JSX.Element;
|
package/lib/spinner.d.ts
CHANGED
|
@@ -13,4 +13,4 @@ export type SpinnerProps<T extends ElementType = 'span'> = PolymorphicProps<T, {
|
|
|
13
13
|
* @example
|
|
14
14
|
* <Spinner data-size="lg" />
|
|
15
15
|
*/
|
|
16
|
-
export declare function Spinner<T extends ElementType = 'span'>({ as, className, children, ...props }: SpinnerProps<T>): import(
|
|
16
|
+
export declare function Spinner<T extends ElementType = 'span'>({ as, className, children, ...props }: SpinnerProps<T>): import('react').JSX.Element;
|
package/lib/switch.d.ts
CHANGED
|
@@ -8,4 +8,4 @@ export interface SwitchProps extends Omit<InputHTMLAttributes<HTMLInputElement>,
|
|
|
8
8
|
* @example
|
|
9
9
|
* <Switch defaultChecked />
|
|
10
10
|
*/
|
|
11
|
-
export declare function Switch({ className, ...props }: SwitchProps): import(
|
|
11
|
+
export declare function Switch({ className, ...props }: SwitchProps): import('react').JSX.Element;
|
package/lib/table.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.sheerly-table-container{width:100%;overflow-x:auto}.sheerly-table{caption-side:bottom;border-collapse:collapse;width:100%;
|
|
1
|
+
.sheerly-table-container{width:100%;overflow-x:auto}.sheerly-table{caption-side:bottom;border-collapse:collapse;width:100%;font-family:var(--sheerly-font-sans);color:var(--sheerly-foreground);font-size:14px;line-height:20px}.sheerly-table caption{color:var(--sheerly-muted-foreground);margin-top:16px;font-size:14px;line-height:20px}.sheerly-table thead tr{border-bottom:1px solid var(--sheerly-border)}.sheerly-table th{text-align:left;vertical-align:middle;white-space:nowrap;height:40px;color:var(--sheerly-foreground);padding:0 8px;font-weight:500}.sheerly-table tbody tr{border-bottom:1px solid var(--sheerly-border);transition:background-color .1s}.sheerly-table tbody tr:last-child{border-bottom:none}.sheerly-table tbody tr:hover{background-color:var(--sheerly-accent)}.sheerly-table tbody tr[data-state=selected]{background-color:var(--sheerly-muted)}.sheerly-table td{vertical-align:middle;white-space:nowrap;padding:8px}.sheerly-table tfoot{border-top:1px solid var(--sheerly-border);background-color:var(--sheerly-accent);font-weight:500}.sheerly-table tfoot tr:last-child{border-bottom:none}.sheerly-table tfoot td,.sheerly-table tfoot th{vertical-align:middle;padding:8px}
|
package/lib/table.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ElementType, TableHTMLAttributes } from 'react';
|
|
2
2
|
import { PolymorphicProps } from './utils/polymorphic';
|
|
3
3
|
export type TableContainerProps<T extends ElementType = 'div'> = PolymorphicProps<T>;
|
|
4
|
-
export declare function TableContainer<T extends ElementType = 'div'>({ as, className, ...props }: TableContainerProps<T>): import(
|
|
4
|
+
export declare function TableContainer<T extends ElementType = 'div'>({ as, className, ...props }: TableContainerProps<T>): import('react').JSX.Element;
|
|
5
5
|
export type TableProps = TableHTMLAttributes<HTMLTableElement>;
|
|
6
6
|
/**
|
|
7
7
|
* A data table. Use semantic HTML inside (no classes on inner elements); wrap
|
|
@@ -13,4 +13,4 @@ export type TableProps = TableHTMLAttributes<HTMLTableElement>;
|
|
|
13
13
|
* <tbody><tr><td>Ada</td></tr></tbody>
|
|
14
14
|
* </Table>
|
|
15
15
|
*/
|
|
16
|
-
export declare function Table({ className, ...props }: TableProps): import(
|
|
16
|
+
export declare function Table({ className, ...props }: TableProps): import('react').JSX.Element;
|
package/lib/tabs.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.sheerly-tabs{flex-direction:column;gap:8px;display:flex}.sheerly-tabs-list{background-color:var(--sheerly-muted);border-radius:8px;justify-content:center;align-items:center;width:fit-content;height:36px;padding:3px;display:inline-flex}.sheerly-tabs-list[data-variant=line]{border-bottom:1px solid var(--sheerly-border);background-color:#0000;border-radius:0;gap:4px;height:auto;padding:0}.sheerly-tabs-trigger{white-space:nowrap;color:var(--sheerly-muted-foreground);cursor:pointer;background-color:#0000;border:1px solid #0000;border-radius:6px;outline:none;flex:1;justify-content:center;align-items:center;gap:6px;padding:4px 8px;font-
|
|
1
|
+
.sheerly-tabs{flex-direction:column;gap:8px;display:flex}.sheerly-tabs-list{background-color:var(--sheerly-muted);border-radius:8px;justify-content:center;align-items:center;width:fit-content;height:36px;padding:3px;display:inline-flex}.sheerly-tabs-list[data-variant=line]{border-bottom:1px solid var(--sheerly-border);background-color:#0000;border-radius:0;gap:4px;height:auto;padding:0}.sheerly-tabs-trigger{font-family:var(--sheerly-font-sans);white-space:nowrap;color:var(--sheerly-muted-foreground);cursor:pointer;background-color:#0000;border:1px solid #0000;border-radius:6px;outline:none;flex:1;justify-content:center;align-items:center;gap:6px;padding:4px 8px;font-size:14px;font-weight:500;line-height:20px;transition:color .15s,background-color .15s;display:inline-flex;position:relative}.sheerly-tabs-trigger:hover{color:var(--sheerly-foreground)}.sheerly-tabs-trigger:focus-visible{box-shadow:var(--sheerly-focus-ring)}.sheerly-tabs-trigger:disabled{pointer-events:none;opacity:.5}.sheerly-tabs-trigger[aria-selected=true],.sheerly-tabs-trigger[data-state=active]{background-color:var(--sheerly-background);color:var(--sheerly-foreground);box-shadow:0 1px 2px #0000000d}.sheerly-tabs-list[data-variant=line] .sheerly-tabs-trigger{box-shadow:none;border-radius:0;padding:8px 12px}.sheerly-tabs-list[data-variant=line] .sheerly-tabs-trigger[aria-selected=true],.sheerly-tabs-list[data-variant=line] .sheerly-tabs-trigger[data-state=active]{box-shadow:none;background-color:#0000}:is(.sheerly-tabs-list[data-variant=line] .sheerly-tabs-trigger[aria-selected=true],.sheerly-tabs-list[data-variant=line] .sheerly-tabs-trigger[data-state=active]):after{content:"";background-color:var(--sheerly-foreground);height:2px;position:absolute;bottom:-1px;left:0;right:0}.sheerly-tabs-trigger svg{pointer-events:none;flex-shrink:0;width:16px;height:16px}.sheerly-tabs-content{outline:none;flex:1}.sheerly-tabs-content[hidden]{display:none}
|
package/lib/tabs.d.ts
CHANGED
|
@@ -17,23 +17,23 @@ export type TabsProps<T extends ElementType = 'div'> = PolymorphicProps<T>;
|
|
|
17
17
|
* <TabsContent hidden>…</TabsContent>
|
|
18
18
|
* </Tabs>
|
|
19
19
|
*/
|
|
20
|
-
export declare function Tabs<T extends ElementType = 'div'>({ as, className, ...props }: TabsProps<T>): import(
|
|
20
|
+
export declare function Tabs<T extends ElementType = 'div'>({ as, className, ...props }: TabsProps<T>): import('react').JSX.Element;
|
|
21
21
|
export type TabsListProps<T extends ElementType = 'div'> = PolymorphicProps<T, {
|
|
22
22
|
'data-variant'?: 'line';
|
|
23
23
|
}>;
|
|
24
24
|
/**
|
|
25
25
|
* Polymorphic: pass `as` to change the rendered tag (defaults to `div`).
|
|
26
26
|
*/
|
|
27
|
-
export declare function TabsList<T extends ElementType = 'div'>({ as, className, ...props }: TabsListProps<T>): import(
|
|
27
|
+
export declare function TabsList<T extends ElementType = 'div'>({ as, className, ...props }: TabsListProps<T>): import('react').JSX.Element;
|
|
28
28
|
export type TabsTriggerProps<T extends ElementType = 'button'> = PolymorphicProps<T, {
|
|
29
29
|
'data-state'?: 'active';
|
|
30
30
|
}>;
|
|
31
31
|
/**
|
|
32
32
|
* Polymorphic: pass `as` to change the rendered tag (defaults to `button`).
|
|
33
33
|
*/
|
|
34
|
-
export declare function TabsTrigger<T extends ElementType = 'button'>({ as, className, ...props }: TabsTriggerProps<T>): import(
|
|
34
|
+
export declare function TabsTrigger<T extends ElementType = 'button'>({ as, className, ...props }: TabsTriggerProps<T>): import('react').JSX.Element;
|
|
35
35
|
export type TabsContentProps<T extends ElementType = 'div'> = PolymorphicProps<T>;
|
|
36
36
|
/**
|
|
37
37
|
* Polymorphic: pass `as` to change the rendered tag (defaults to `div`).
|
|
38
38
|
*/
|
|
39
|
-
export declare function TabsContent<T extends ElementType = 'div'>({ as, className, ...props }: TabsContentProps<T>): import(
|
|
39
|
+
export declare function TabsContent<T extends ElementType = 'div'>({ as, className, ...props }: TabsContentProps<T>): import('react').JSX.Element;
|
package/lib/textarea.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.sheerly-textarea{border-radius:var(--sheerly-radius-lg);border:1px solid var(--sheerly-input);width:100%;min-height:64px;color:var(--sheerly-foreground);resize:vertical;field-sizing:content;background-color:#0000;outline:none;padding:6px 10px;font-
|
|
1
|
+
.sheerly-textarea{border-radius:var(--sheerly-radius-lg);border:1px solid var(--sheerly-input);width:100%;min-height:64px;font-family:var(--sheerly-font-sans);color:var(--sheerly-foreground);resize:vertical;field-sizing:content;background-color:#0000;outline:none;padding:6px 10px;font-size:14px;font-weight:400;line-height:20px;transition:border-color .15s,box-shadow .15s;display:block}.sheerly-textarea::placeholder{color:var(--sheerly-muted-foreground)}.sheerly-textarea:focus-visible{border-color:var(--sheerly-ring);box-shadow:var(--sheerly-focus-ring)}.sheerly-textarea:disabled{cursor:not-allowed;opacity:.5}.sheerly-textarea[aria-invalid=true]{border-color:var(--sheerly-destructive);box-shadow:0 0 0 3px oklch(from var(--sheerly-destructive) l c h / 20%)}
|
package/lib/textarea.d.ts
CHANGED
|
@@ -6,4 +6,4 @@ export type TextareaProps = TextareaHTMLAttributes<HTMLTextAreaElement>;
|
|
|
6
6
|
* @example
|
|
7
7
|
* <Textarea placeholder="Type your message…" />
|
|
8
8
|
*/
|
|
9
|
-
export declare function Textarea({ className, ...props }: TextareaProps): import(
|
|
9
|
+
export declare function Textarea({ className, ...props }: TextareaProps): import('react').JSX.Element;
|
package/lib/toggle.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.sheerly-toggle{border-radius:var(--sheerly-radius-lg);white-space:nowrap;color:var(--sheerly-foreground);cursor:pointer;-webkit-user-select:none;user-select:none;background-color:#0000;border:1px solid #0000;outline:none;justify-content:center;align-items:center;gap:4px;min-width:32px;height:32px;padding:0 10px;font-
|
|
1
|
+
.sheerly-toggle{border-radius:var(--sheerly-radius-lg);font-family:var(--sheerly-font-sans);white-space:nowrap;color:var(--sheerly-foreground);cursor:pointer;-webkit-user-select:none;user-select:none;background-color:#0000;border:1px solid #0000;outline:none;justify-content:center;align-items:center;gap:4px;min-width:32px;height:32px;padding:0 10px;font-size:14px;font-weight:500;line-height:20px;transition:all .15s;display:inline-flex}.sheerly-toggle>input[type=checkbox]{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sheerly-toggle:hover{background-color:var(--sheerly-muted);color:var(--sheerly-foreground)}.sheerly-toggle:focus-visible{border-color:var(--sheerly-ring);box-shadow:var(--sheerly-focus-ring)}.sheerly-toggle:has(>input:focus-visible){border-color:var(--sheerly-ring);box-shadow:var(--sheerly-focus-ring)}.sheerly-toggle:disabled{pointer-events:none;opacity:.5}.sheerly-toggle:has(>input:disabled){pointer-events:none;opacity:.5}.sheerly-toggle[aria-invalid=true]{border-color:var(--sheerly-destructive);box-shadow:0 0 0 3px oklch(from var(--sheerly-destructive) l c h / 20%)}.sheerly-toggle[aria-pressed=true],.sheerly-toggle[data-state=on]{background-color:var(--sheerly-muted)}.sheerly-toggle:has(>input:checked){background-color:var(--sheerly-muted)}.sheerly-toggle[data-variant=default]{background-color:#0000}.sheerly-toggle[data-variant=outline]{border-color:var(--sheerly-input);background-color:#0000}.sheerly-toggle[data-variant=outline]:hover{background-color:var(--sheerly-muted)}.sheerly-toggle[data-size=default]{min-width:32px;height:32px;padding:0 10px}.sheerly-toggle[data-size=sm]{border-radius:min(var(--sheerly-radius-md), 12px);min-width:28px;height:28px;padding:0 10px;font-size:12.8px}.sheerly-toggle[data-size=sm] svg{width:14px;height:14px}.sheerly-toggle[data-size=lg]{min-width:36px;height:36px;padding:0 10px}.sheerly-toggle:has([data-icon=inline-start]){padding-inline-start:8px}.sheerly-toggle:has([data-icon=inline-end]){padding-inline-end:8px}.sheerly-toggle[data-size=sm]:has([data-icon=inline-start]){padding-inline-start:6px}.sheerly-toggle[data-size=sm]:has([data-icon=inline-end]){padding-inline-end:6px}.sheerly-toggle svg{pointer-events:none;flex-shrink:0;width:16px;height:16px}
|
package/lib/toggle.d.ts
CHANGED
|
@@ -20,4 +20,4 @@ export interface ToggleProps extends Omit<LabelHTMLAttributes<HTMLLabelElement>,
|
|
|
20
20
|
* @example
|
|
21
21
|
* <Toggle defaultPressed data-variant="outline">Bold</Toggle>
|
|
22
22
|
*/
|
|
23
|
-
export declare function Toggle({ className, pressed, defaultPressed, onPressedChange, disabled, name, value, children, ...props }: ToggleProps): import(
|
|
23
|
+
export declare function Toggle({ className, pressed, defaultPressed, onPressedChange, disabled, name, value, children, ...props }: ToggleProps): import('react').JSX.Element;
|
package/lib/tooltip.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.sheerly-tooltip{anchor-name:--sheerly-tip;anchor-scope:--sheerly-tip;width:fit-content;display:inline-block}.sheerly-tooltip-content{position-anchor:--sheerly-tip;position-area:var(--sheerly-tooltip-position,block-start);position-try-fallbacks:flip-block, flip-inline, flip-block flip-inline;position-visibility:anchors-visible;inset:unset;background-color:var(--sheerly-foreground);color:var(--sheerly-background);text-align:center;white-space:normal;text-wrap:pretty;border-radius:var(--sheerly-radius-sm);pointer-events:none;opacity:0;max-width:200px;transition:opacity .15s ease, display .15s allow-discrete, overlay .15s allow-discrete;border:none;margin:6px;padding:4px 8px;font-
|
|
1
|
+
.sheerly-tooltip{anchor-name:--sheerly-tip;anchor-scope:--sheerly-tip;width:fit-content;display:inline-block}.sheerly-tooltip-content{position-anchor:--sheerly-tip;position-area:var(--sheerly-tooltip-position,block-start);position-try-fallbacks:flip-block, flip-inline, flip-block flip-inline;position-visibility:anchors-visible;inset:unset;background-color:var(--sheerly-foreground);color:var(--sheerly-background);font-family:var(--sheerly-font-sans);text-align:center;white-space:normal;text-wrap:pretty;border-radius:var(--sheerly-radius-sm);pointer-events:none;opacity:0;max-width:200px;transition:opacity .15s ease, display .15s allow-discrete, overlay .15s allow-discrete;border:none;margin:6px;padding:4px 8px;font-size:12px;font-weight:400;line-height:16px;position:fixed;overflow:visible}.sheerly-tooltip-content:popover-open{opacity:1}@starting-style{.sheerly-tooltip-content:popover-open{opacity:0}}
|
package/lib/tooltip.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export type TooltipProps<T extends ElementType = 'span'> = PolymorphicProps<T>;
|
|
|
10
10
|
* <TooltipContent id="tt" popover="hint">More info</TooltipContent>
|
|
11
11
|
* </Tooltip>
|
|
12
12
|
*/
|
|
13
|
-
export declare function Tooltip<T extends ElementType = 'span'>({ as, className, ...props }: TooltipProps<T>): import(
|
|
13
|
+
export declare function Tooltip<T extends ElementType = 'span'>({ as, className, ...props }: TooltipProps<T>): import('react').JSX.Element;
|
|
14
14
|
export type TooltipContentProps<T extends ElementType = 'span'> = PolymorphicProps<T>;
|
|
15
15
|
/** The floating label. Give it `popover="hint"` and an `id` matched by the trigger's `interestfor`. */
|
|
16
|
-
export declare function TooltipContent<T extends ElementType = 'span'>({ as, className, ...props }: TooltipContentProps<T>): import(
|
|
16
|
+
export declare function TooltipContent<T extends ElementType = 'span'>({ as, className, ...props }: TooltipContentProps<T>): import('react').JSX.Element;
|
package/lib/typography.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.sheerly-typography{
|
|
1
|
+
.sheerly-typography{font-family:var(--sheerly-font-sans);color:var(--sheerly-foreground);font-size:16px;line-height:1.75}.sheerly-typography h1{letter-spacing:-.025em;text-wrap:balance;scroll-margin-block-start:5rem;font-size:36px;font-weight:800;line-height:1.1}.sheerly-typography h2{letter-spacing:-.025em;border-bottom:1px solid var(--sheerly-border);padding-bottom:8px;scroll-margin-block-start:5rem;font-size:30px;font-weight:600;line-height:1.2}.sheerly-typography h3{letter-spacing:-.025em;scroll-margin-block-start:5rem;font-size:24px;font-weight:600;line-height:1.3}.sheerly-typography h4{letter-spacing:-.025em;scroll-margin-block-start:5rem;font-size:20px;font-weight:600;line-height:1.4}.sheerly-typography h1,.sheerly-typography h2,.sheerly-typography h3,.sheerly-typography h4,.sheerly-typography p,.sheerly-typography blockquote,.sheerly-typography ul,.sheerly-typography ol,.sheerly-typography table,.sheerly-typography pre{margin-block-start:24px}.sheerly-typography h2{margin-block-start:40px}.sheerly-typography h3,.sheerly-typography h4{margin-block-start:32px}.sheerly-typography>:first-child{margin-block-start:0}.sheerly-typography a{color:var(--sheerly-primary);text-underline-offset:4px;font-weight:500;text-decoration:underline}.sheerly-typography a:hover{color:oklch(from var(--sheerly-primary) l c h / 80%)}.sheerly-typography blockquote{border-inline-start:2px solid var(--sheerly-border);color:var(--sheerly-muted-foreground);padding-inline-start:24px;font-style:italic}.sheerly-typography ul{padding-inline-start:24px;list-style:outside}.sheerly-typography ol{padding-inline-start:24px;list-style:decimal}.sheerly-typography li{margin-block-start:8px}.sheerly-typography li::marker{color:var(--sheerly-muted-foreground)}.sheerly-typography code{font-family:var(--sheerly-font-mono);border-radius:var(--sheerly-radius-sm);background-color:var(--sheerly-muted);padding:.2em .35em;font-size:.875em;font-weight:600}.sheerly-typography pre{border-radius:var(--sheerly-radius-md);background-color:var(--sheerly-muted);padding:16px;overflow-x:auto}.sheerly-typography pre code{background-color:#0000;padding:0;font-weight:400}.sheerly-typography table{border-collapse:collapse;width:100%;font-size:14px}.sheerly-typography th,.sheerly-typography td{border:1px solid var(--sheerly-border);text-align:start;padding:8px 16px}.sheerly-typography th{font-weight:700}.sheerly-typography tbody tr:nth-child(2n){background-color:oklch(from var(--sheerly-muted) l c h / 50%)}.sheerly-typography small{font-size:14px;font-weight:500;line-height:1}.sheerly-typography [data-variant=lead]{color:var(--sheerly-muted-foreground);font-size:20px}.sheerly-typography [data-variant=large]{font-size:18px;font-weight:600}.sheerly-typography [data-variant=muted]{color:var(--sheerly-muted-foreground);font-size:14px}
|
package/lib/typography.d.ts
CHANGED
|
@@ -14,4 +14,4 @@ export type TypographyProps<T extends ElementType = 'div'> = PolymorphicProps<T>
|
|
|
14
14
|
* <p>Some <a href="#">prose</a> with a <code>token</code>.</p>
|
|
15
15
|
* </Typography>
|
|
16
16
|
*/
|
|
17
|
-
export declare function Typography<T extends ElementType = 'div'>({ as, className, ...props }: TypographyProps<T>): import(
|
|
17
|
+
export declare function Typography<T extends ElementType = 'div'>({ as, className, ...props }: TypographyProps<T>): import('react').JSX.Element;
|
package/package.json
CHANGED
|
@@ -1,34 +1,35 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "sheerly",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"type": "module",
|
|
5
|
-
"scripts": {
|
|
6
|
-
"dev": "vite --config vite.config.doc.ts",
|
|
7
|
-
"build": "node --run build:lib && node --run build:doc",
|
|
8
|
-
"build:lib": "tsc -b && vite build --config vite.config.lib.ts",
|
|
9
|
-
"build:doc": "tsc -b && vite build --config vite.config.doc.ts",
|
|
10
|
-
"lint": "oxlint",
|
|
11
|
-
"preview": "vite preview"
|
|
12
|
-
},
|
|
13
|
-
"main": "lib/index.js",
|
|
14
|
-
"types": "lib/index.d.ts",
|
|
15
|
-
"files": [
|
|
16
|
-
"src",
|
|
17
|
-
"lib"
|
|
18
|
-
],
|
|
19
|
-
"devDependencies": {
|
|
20
|
-
"@tailwindcss/vite": "^4.3.3",
|
|
21
|
-
"@types/node": "^26.
|
|
22
|
-
"@types/react": "^19.
|
|
23
|
-
"@types/react-dom": "^19.
|
|
24
|
-
"@vitejs/plugin-react": "^6.
|
|
25
|
-
"nuqs": "^2.
|
|
26
|
-
"oxlint": "^1.
|
|
27
|
-
"react": "^19.
|
|
28
|
-
"react-dom": "^19.
|
|
29
|
-
"tailwindcss": "^4.3.3",
|
|
30
|
-
"typescript": "^6.0.3",
|
|
31
|
-
"unplugin-dts": "^1.
|
|
32
|
-
"vite": "^8.
|
|
33
|
-
}
|
|
34
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "sheerly",
|
|
3
|
+
"version": "0.0.5",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"dev": "vite --config vite.config.doc.ts",
|
|
7
|
+
"build": "node --run build:lib && node --run build:doc",
|
|
8
|
+
"build:lib": "tsc -b && vite build --config vite.config.lib.ts",
|
|
9
|
+
"build:doc": "tsc -b && vite build --config vite.config.doc.ts",
|
|
10
|
+
"lint": "oxlint",
|
|
11
|
+
"preview": "vite preview"
|
|
12
|
+
},
|
|
13
|
+
"main": "lib/index.js",
|
|
14
|
+
"types": "lib/index.d.ts",
|
|
15
|
+
"files": [
|
|
16
|
+
"src",
|
|
17
|
+
"lib"
|
|
18
|
+
],
|
|
19
|
+
"devDependencies": {
|
|
20
|
+
"@tailwindcss/vite": "^4.3.3",
|
|
21
|
+
"@types/node": "^26.6.3",
|
|
22
|
+
"@types/react": "^19.3.0",
|
|
23
|
+
"@types/react-dom": "^19.3.0",
|
|
24
|
+
"@vitejs/plugin-react": "^6.1.1",
|
|
25
|
+
"nuqs": "^2.10.1",
|
|
26
|
+
"oxlint": "^1.86.0",
|
|
27
|
+
"react": "^19.3.0",
|
|
28
|
+
"react-dom": "^19.3.0",
|
|
29
|
+
"tailwindcss": "^4.3.3",
|
|
30
|
+
"typescript": "^6.0.3",
|
|
31
|
+
"unplugin-dts": "^1.1.1",
|
|
32
|
+
"vite": "^8.3.1"
|
|
33
|
+
},
|
|
34
|
+
"packageManager": "pnpm@11.28.2"
|
|
35
|
+
}
|
package/src/accordion.css
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
padding: 10px 0;
|
|
18
18
|
border: 1px solid transparent;
|
|
19
19
|
border-radius: var(--sheerly-radius-lg);
|
|
20
|
-
font-family:
|
|
20
|
+
font-family: var(--sheerly-font-sans);
|
|
21
21
|
font-size: 14px;
|
|
22
22
|
font-weight: 500;
|
|
23
23
|
line-height: 20px;
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
& .sheerly-accordion-content {
|
|
63
|
-
font-family:
|
|
63
|
+
font-family: var(--sheerly-font-sans);
|
|
64
64
|
font-size: 14px;
|
|
65
65
|
font-weight: 400;
|
|
66
66
|
line-height: 20px;
|
package/src/alert.css
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
background-color: var(--sheerly-card);
|
|
26
26
|
color: var(--sheerly-card-foreground);
|
|
27
27
|
box-shadow: 0 0 0 1px oklch(from var(--sheerly-foreground) l c h / 10%);
|
|
28
|
-
font-family:
|
|
28
|
+
font-family: var(--sheerly-font-sans);
|
|
29
29
|
font-size: 14px;
|
|
30
30
|
line-height: 20px;
|
|
31
31
|
text-align: left;
|
package/src/avatar.css
CHANGED
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
justify-content: center;
|
|
43
43
|
border-radius: var(--sheerly-radius-full);
|
|
44
44
|
background-color: var(--sheerly-muted);
|
|
45
|
-
font-family:
|
|
45
|
+
font-family: var(--sheerly-font-sans);
|
|
46
46
|
font-size: 14px;
|
|
47
47
|
font-weight: 500;
|
|
48
48
|
color: var(--sheerly-muted-foreground);
|
package/src/badge.css
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
border-radius: var(--sheerly-radius-full);
|
|
11
11
|
border: 1px solid transparent;
|
|
12
12
|
padding: 2px 8px;
|
|
13
|
-
font-family:
|
|
13
|
+
font-family: var(--sheerly-font-sans);
|
|
14
14
|
font-size: 12px;
|
|
15
15
|
font-weight: 500;
|
|
16
16
|
line-height: 16px;
|
package/src/breadcrumb.css
CHANGED
package/src/button.css
CHANGED
package/src/card.css
CHANGED
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
.sheerly-card-title {
|
|
55
|
-
font-family:
|
|
55
|
+
font-family: var(--sheerly-font-sans);
|
|
56
56
|
font-size: 16px;
|
|
57
57
|
font-weight: 500;
|
|
58
58
|
line-height: 1.3;
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
.sheerly-card-description {
|
|
64
|
-
font-family:
|
|
64
|
+
font-family: var(--sheerly-font-sans);
|
|
65
65
|
font-size: 14px;
|
|
66
66
|
font-weight: 400;
|
|
67
67
|
line-height: 20px;
|
package/src/dialog.css
CHANGED
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
.sheerly-dialog-title {
|
|
89
|
-
font-family:
|
|
89
|
+
font-family: var(--sheerly-font-sans);
|
|
90
90
|
font-size: 16px;
|
|
91
91
|
font-weight: 500;
|
|
92
92
|
line-height: 1;
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
.sheerly-dialog-description {
|
|
99
|
-
font-family:
|
|
99
|
+
font-family: var(--sheerly-font-sans);
|
|
100
100
|
font-size: 14px;
|
|
101
101
|
font-weight: 400;
|
|
102
102
|
line-height: 20px;
|
package/src/dropdown-menu.css
CHANGED
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
|
|
49
49
|
.sheerly-dropdown-menu {
|
|
50
50
|
anchor-name: --sheerly-dropdown-menu;
|
|
51
|
+
anchor-scope: --sheerly-dropdown-menu;
|
|
51
52
|
display: inline-block;
|
|
52
53
|
width: fit-content;
|
|
53
54
|
}
|
|
@@ -76,7 +77,7 @@
|
|
|
76
77
|
inset 0 0 0 1px oklch(from var(--sheerly-foreground) l c h / 10%),
|
|
77
78
|
0 4px 16px -4px oklch(0 0 0 / 8%),
|
|
78
79
|
0 1px 2px oklch(0 0 0 / 4%);
|
|
79
|
-
font-family:
|
|
80
|
+
font-family: var(--sheerly-font-sans);
|
|
80
81
|
font-size: 14px;
|
|
81
82
|
line-height: 20px;
|
|
82
83
|
overflow-x: hidden;
|
package/src/hover-card.css
CHANGED
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
/* Neutral card-like surface */
|
|
48
48
|
background-color: var(--sheerly-popover);
|
|
49
49
|
color: var(--sheerly-popover-foreground);
|
|
50
|
-
font-family:
|
|
50
|
+
font-family: var(--sheerly-font-sans);
|
|
51
51
|
font-size: 14px;
|
|
52
52
|
line-height: 20px;
|
|
53
53
|
width: max-content;
|
package/src/input.css
CHANGED
package/src/kbd.css
CHANGED
package/src/label.css
CHANGED
package/src/pagination.css
CHANGED
package/src/popover.css
CHANGED
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
/* Neutral popover surface */
|
|
38
38
|
background-color: var(--sheerly-popover);
|
|
39
39
|
color: var(--sheerly-popover-foreground);
|
|
40
|
-
font-family:
|
|
40
|
+
font-family: var(--sheerly-font-sans);
|
|
41
41
|
font-size: 14px;
|
|
42
42
|
line-height: 20px;
|
|
43
43
|
width: max-content;
|
package/src/root.css
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
+
/* @import url("https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600&family=Geist+Mono:wght@400&display=swap"); */
|
|
2
|
+
|
|
1
3
|
:root {
|
|
4
|
+
/* Typography */
|
|
5
|
+
--sheerly-font-sans: "Geist", "Geist Sans", system-ui, -apple-system, sans-serif;
|
|
6
|
+
--sheerly-font-mono: "Geist Mono", ui-monospace, monospace;
|
|
7
|
+
|
|
2
8
|
/* Radius (Nova: 0.625rem base) */
|
|
3
9
|
--sheerly-radius: 0.625rem;
|
|
4
10
|
--sheerly-radius-sm: calc(var(--sheerly-radius) * 0.6);
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/* Terminal theme — IBM Plex Mono everywhere, square corners, orange accent.
|
|
2
|
+
Theme override: import AFTER the base library so these tokens win.
|
|
3
|
+
@import "sheerly/index.css";
|
|
4
|
+
@import "sheerly/root.terminal.css"; */
|
|
5
|
+
|
|
6
|
+
/* @import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&display=swap"); */
|
|
7
|
+
|
|
8
|
+
:root {
|
|
9
|
+
/* Typography */
|
|
10
|
+
--sheerly-font-sans: "IBM Plex Mono", ui-monospace, monospace;
|
|
11
|
+
--sheerly-font-mono: "IBM Plex Mono", ui-monospace, monospace;
|
|
12
|
+
|
|
13
|
+
/* Radius (square) — derived radii scale to 0 automatically */
|
|
14
|
+
--sheerly-radius: 0rem;
|
|
15
|
+
|
|
16
|
+
/* Semantic colors (terminal light) */
|
|
17
|
+
--sheerly-background: oklch(0.9851 0 0);
|
|
18
|
+
--sheerly-foreground: oklch(0.1448 0 0);
|
|
19
|
+
--sheerly-card: oklch(0.9702 0 0);
|
|
20
|
+
--sheerly-card-foreground: oklch(0.1448 0 0);
|
|
21
|
+
--sheerly-popover: oklch(0.9851 0 0);
|
|
22
|
+
--sheerly-popover-foreground: oklch(0.1448 0 0);
|
|
23
|
+
--sheerly-primary: oklch(0.6996 0.202 44.4414);
|
|
24
|
+
--sheerly-primary-foreground: oklch(0 0 0);
|
|
25
|
+
--sheerly-secondary: oklch(0.9219 0 0);
|
|
26
|
+
--sheerly-secondary-foreground: oklch(0.1448 0 0);
|
|
27
|
+
--sheerly-muted: oklch(0.9401 0 0);
|
|
28
|
+
--sheerly-muted-foreground: oklch(0.4495 0 0);
|
|
29
|
+
--sheerly-accent: oklch(0.7512 0.168 52.0772);
|
|
30
|
+
--sheerly-accent-foreground: oklch(0 0 0);
|
|
31
|
+
--sheerly-destructive: oklch(0.628 0.2577 29.2339);
|
|
32
|
+
--sheerly-border: oklch(0.8514 0 0);
|
|
33
|
+
--sheerly-input: oklch(0.8514 0 0);
|
|
34
|
+
--sheerly-ring: oklch(0.6996 0.202 44.4414);
|
|
35
|
+
|
|
36
|
+
/* Sidebar */
|
|
37
|
+
--sheerly-sidebar: oklch(0.9851 0 0);
|
|
38
|
+
--sheerly-sidebar-foreground: oklch(0.1448 0 0);
|
|
39
|
+
--sheerly-sidebar-primary: oklch(0.2046 0 0);
|
|
40
|
+
--sheerly-sidebar-primary-foreground: oklch(0.9851 0 0);
|
|
41
|
+
--sheerly-sidebar-accent: oklch(0.9702 0 0);
|
|
42
|
+
--sheerly-sidebar-accent-foreground: oklch(0.2046 0 0);
|
|
43
|
+
--sheerly-sidebar-border: oklch(0.9219 0 0);
|
|
44
|
+
--sheerly-sidebar-ring: oklch(0.709 0 0);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.dark {
|
|
48
|
+
/* Semantic colors (terminal dark) */
|
|
49
|
+
--sheerly-background: oklch(0.1822 0 0);
|
|
50
|
+
--sheerly-foreground: oklch(0.9612 0 0);
|
|
51
|
+
--sheerly-card: oklch(0.2178 0 0);
|
|
52
|
+
--sheerly-card-foreground: oklch(0.9612 0 0);
|
|
53
|
+
--sheerly-popover: oklch(0.1822 0 0);
|
|
54
|
+
--sheerly-popover-foreground: oklch(0.9612 0 0);
|
|
55
|
+
--sheerly-primary: oklch(0.6996 0.202 44.4414);
|
|
56
|
+
--sheerly-primary-foreground: oklch(0 0 0);
|
|
57
|
+
--sheerly-secondary: oklch(0.3211 0 0);
|
|
58
|
+
--sheerly-secondary-foreground: oklch(0.9612 0 0);
|
|
59
|
+
--sheerly-muted: oklch(0.2686 0 0);
|
|
60
|
+
--sheerly-muted-foreground: oklch(0.7252 0 0);
|
|
61
|
+
--sheerly-accent: oklch(0.7512 0.168 52.0772);
|
|
62
|
+
--sheerly-accent-foreground: oklch(0 0 0);
|
|
63
|
+
--sheerly-destructive: oklch(0.628 0.2577 29.2339);
|
|
64
|
+
--sheerly-border: oklch(0.3715 0 0);
|
|
65
|
+
--sheerly-input: oklch(0.3715 0 0);
|
|
66
|
+
--sheerly-ring: oklch(0.6996 0.202 44.4414);
|
|
67
|
+
|
|
68
|
+
/* Sidebar */
|
|
69
|
+
--sheerly-sidebar: oklch(0.2046 0 0);
|
|
70
|
+
--sheerly-sidebar-foreground: oklch(0.9851 0 0);
|
|
71
|
+
--sheerly-sidebar-primary: oklch(0.4878 0.2432 264.4045);
|
|
72
|
+
--sheerly-sidebar-primary-foreground: oklch(0.9851 0 0);
|
|
73
|
+
--sheerly-sidebar-accent: oklch(0.2686 0 0);
|
|
74
|
+
--sheerly-sidebar-accent-foreground: oklch(0.9851 0 0);
|
|
75
|
+
--sheerly-sidebar-border: oklch(0.2768 0 0);
|
|
76
|
+
--sheerly-sidebar-ring: oklch(0.4386 0 0);
|
|
77
|
+
}
|
package/src/select.css
CHANGED
package/src/sheet.css
CHANGED
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
}
|
|
143
143
|
|
|
144
144
|
.sheerly-sheet-title {
|
|
145
|
-
font-family:
|
|
145
|
+
font-family: var(--sheerly-font-sans);
|
|
146
146
|
font-size: 16px;
|
|
147
147
|
font-weight: 500;
|
|
148
148
|
line-height: 1;
|
|
@@ -152,7 +152,7 @@
|
|
|
152
152
|
}
|
|
153
153
|
|
|
154
154
|
.sheerly-sheet-description {
|
|
155
|
-
font-family:
|
|
155
|
+
font-family: var(--sheerly-font-sans);
|
|
156
156
|
font-size: 14px;
|
|
157
157
|
font-weight: 400;
|
|
158
158
|
line-height: 20px;
|
package/src/table.css
CHANGED
package/src/tabs.css
CHANGED
package/src/textarea.css
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
border: 1px solid var(--sheerly-input);
|
|
8
8
|
background-color: transparent;
|
|
9
9
|
padding: 6px 10px;
|
|
10
|
-
font-family:
|
|
10
|
+
font-family: var(--sheerly-font-sans);
|
|
11
11
|
font-size: 14px;
|
|
12
12
|
font-weight: 400;
|
|
13
13
|
line-height: 20px;
|
package/src/toggle.css
CHANGED