@glasshome/ui 1.6.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/README.md +3 -3
  2. package/SPEC.md +30 -0
  3. package/dist/index.d.ts +13 -5
  4. package/dist/index.js +2 -13
  5. package/dist/lib/alert-tones.d.ts +2 -1
  6. package/dist/lib/badge-tone.d.ts +3 -1
  7. package/dist/lib/button-variants.d.ts +2 -1
  8. package/dist/lib/card-classes.d.ts +8 -7
  9. package/dist/lib/glass-tone.d.ts +2 -0
  10. package/dist/lib/input-classes.d.ts +10 -1
  11. package/dist/lib/layers.d.ts +8 -0
  12. package/dist/lib/menu-classes.d.ts +5 -0
  13. package/dist/lib/motion-classes.d.ts +8 -0
  14. package/dist/lib/overlay-classes.d.ts +11 -4
  15. package/dist/lib/picker-classes.d.ts +3 -0
  16. package/dist/lib/pill-classes.d.ts +3 -0
  17. package/dist/lib/position-bar-classes.d.ts +2 -0
  18. package/dist/lib/section-tokens.d.ts +3 -2
  19. package/dist/lib/segment-classes.d.ts +1 -0
  20. package/dist/lib/thumb-classes.d.ts +5 -0
  21. package/dist/lib/use-is-mobile.d.ts +2 -1
  22. package/dist/solid/alert-dialog.d.ts +16 -17
  23. package/dist/solid/area-picker.d.ts +3 -0
  24. package/dist/solid/bottom-sheet/bottom-sheet.d.ts +9 -7
  25. package/dist/solid/bottom-sheet/constants.d.ts +0 -1
  26. package/dist/solid/bottom-sheet/index.d.ts +1 -1
  27. package/dist/solid/charts.d.ts +10 -5
  28. package/dist/solid/checkbox.d.ts +16 -1
  29. package/dist/solid/context-menu.d.ts +3 -1
  30. package/dist/solid/count-pill.d.ts +5 -3
  31. package/dist/solid/data-table.d.ts +4 -3
  32. package/dist/solid/dialog-parts.d.ts +55 -0
  33. package/dist/solid/dialog.d.ts +17 -14
  34. package/dist/solid/dropdown-menu.d.ts +19 -25
  35. package/dist/solid/empty.d.ts +5 -28
  36. package/dist/solid/entity-selector.d.ts +2 -0
  37. package/dist/solid/form.d.ts +27 -7
  38. package/dist/solid/hero-action.d.ts +0 -24
  39. package/dist/solid/icon-picker.d.ts +2 -0
  40. package/dist/solid/index.d.ts +15 -11
  41. package/dist/solid/index.js +7488 -6798
  42. package/dist/solid/input-group.d.ts +14 -2
  43. package/dist/solid/item.d.ts +6 -30
  44. package/dist/solid/menu-parts.d.ts +47 -0
  45. package/dist/solid/option-card.d.ts +20 -0
  46. package/dist/solid/ornament.d.ts +3 -0
  47. package/dist/solid/page-header.d.ts +11 -1
  48. package/dist/solid/picker-row.d.ts +14 -0
  49. package/dist/solid/picker-search.d.ts +15 -0
  50. package/dist/solid/popover.d.ts +9 -18
  51. package/dist/solid/progress.d.ts +1 -0
  52. package/dist/solid/responsive-dialog.d.ts +16 -6
  53. package/dist/solid/schema-form.d.ts +4 -0
  54. package/dist/solid/scroll-area.d.ts +1 -0
  55. package/dist/solid/section-card.d.ts +5 -6
  56. package/dist/solid/sheet.d.ts +22 -16
  57. package/dist/solid/step-indicator.d.ts +2 -2
  58. package/dist/solid/table.d.ts +3 -0
  59. package/dist/solid/tabs.d.ts +7 -5
  60. package/dist/solid/tooltip.d.ts +1 -1
  61. package/dist/solid/widget-identity.d.ts +4 -1
  62. package/dist/tokens/index.js +1 -1
  63. package/dist/{utils-8e8QCynI.js → utils-CiJUMt2j.js} +560 -523
  64. package/package.json +5 -3
  65. package/src/lib/alert-tones.ts +8 -3
  66. package/src/lib/badge-tone.ts +9 -2
  67. package/src/lib/button-variants.ts +8 -4
  68. package/src/lib/card-classes.ts +12 -7
  69. package/src/lib/carousel-classes.ts +2 -3
  70. package/src/lib/glass-tone.ts +8 -0
  71. package/src/lib/input-classes.ts +23 -1
  72. package/src/lib/layers.ts +12 -0
  73. package/src/lib/menu-classes.ts +21 -0
  74. package/src/lib/motion-classes.ts +40 -0
  75. package/src/lib/overlay-classes.ts +22 -5
  76. package/src/lib/picker-classes.ts +17 -0
  77. package/src/lib/pill-classes.ts +13 -0
  78. package/src/lib/position-bar-classes.ts +10 -0
  79. package/src/lib/section-tokens.ts +9 -4
  80. package/src/lib/segment-classes.ts +7 -0
  81. package/src/lib/thumb-classes.ts +21 -0
  82. package/src/lib/use-is-mobile.ts +10 -6
  83. package/src/styles/globals.css +90 -19
  84. package/src/styles/theme.css +67 -6
@@ -40,33 +40,45 @@ declare const inputGroupButtonVariants: import("cva").CVAComponent<Omit<{
40
40
  base: string;
41
41
  variants: {
42
42
  size: {
43
+ /** @deprecated Use "sm". */
43
44
  xs: string;
44
45
  sm: string;
46
+ default: string;
47
+ /** @deprecated Use "icon-sm". */
45
48
  "icon-xs": string;
46
49
  "icon-sm": string;
50
+ "icon-default": string;
47
51
  };
48
52
  };
49
53
  defaultVariants: {
50
- size: "xs";
54
+ size: "sm";
51
55
  };
52
56
  }, "defaultVariants"> & {
53
57
  variants: {
54
58
  size: {
59
+ /** @deprecated Use "sm". */
55
60
  xs: string;
56
61
  sm: string;
62
+ default: string;
63
+ /** @deprecated Use "icon-sm". */
57
64
  "icon-xs": string;
58
65
  "icon-sm": string;
66
+ "icon-default": string;
59
67
  };
60
68
  };
61
69
  defaultVariants: Omit<{}, "size"> & {
62
- size: "xs";
70
+ size: "sm";
63
71
  };
64
72
  }, {
65
73
  size: {
74
+ /** @deprecated Use "sm". */
66
75
  xs: string;
67
76
  sm: string;
77
+ default: string;
78
+ /** @deprecated Use "icon-sm". */
68
79
  "icon-xs": string;
69
80
  "icon-sm": string;
81
+ "icon-default": string;
70
82
  };
71
83
  }>;
72
84
  declare const InputGroupButton: Component<Omit<ComponentProps<typeof Button>, "size"> & VariantProps<typeof inputGroupButtonVariants>>;
@@ -51,37 +51,13 @@ declare const Item: Component<ComponentProps<"div"> & VariantProps<typeof itemVa
51
51
  as?: ValidComponent;
52
52
  href?: string;
53
53
  }>;
54
- declare const itemMediaVariants: import("cva").CVAComponent<Omit<{
55
- base: string;
56
- variants: {
57
- variant: {
58
- default: string;
59
- icon: string;
60
- image: string;
61
- };
62
- };
63
- defaultVariants: {
64
- variant: "default";
65
- };
66
- }, "defaultVariants"> & {
67
- variants: {
68
- variant: {
69
- default: string;
70
- icon: string;
71
- image: string;
72
- };
73
- };
74
- defaultVariants: Omit<{}, "variant"> & {
75
- variant: "default";
76
- };
77
- }, {
78
- variant: {
79
- default: string;
80
- icon: string;
81
- image: string;
82
- };
54
+ type ItemMediaKind = "icon" | "image";
55
+ declare const ItemMedia: Component<ComponentProps<"div"> & {
56
+ /** The well the media sits in. Omit for bare content. */
57
+ media?: ItemMediaKind;
58
+ /** @deprecated `media` */
59
+ variant?: ItemMediaKind | "default";
83
60
  }>;
84
- declare const ItemMedia: Component<ComponentProps<"div"> & VariantProps<typeof itemMediaVariants>>;
85
61
  declare const ItemContent: Component<ComponentProps<"div">>;
86
62
  declare const ItemTitle: Component<ComponentProps<"div">>;
87
63
  declare const ItemDescription: Component<ComponentProps<"p">>;
@@ -0,0 +1,47 @@
1
+ import { DropdownMenu as MenuPrimitive } from "@kobalte/core/dropdown-menu";
2
+ import { type Component, type ComponentProps, type ParentComponent } from "solid-js";
3
+ export declare const MENU_CONTENT_CLASS: string;
4
+ /** Every menu content and sub content wraps its rows in one sliding highlight,
5
+ * keyed off Kobalte's roving-focus attribute. The highlighted row's own
6
+ * --glass-tone (set inline by MenuItemPart) is mirrored onto the indicator,
7
+ * since --glass-tone does not inherit and the indicator is a sibling, not
8
+ * an ancestor, of the rows it highlights. */
9
+ export declare const MenuContentIndicator: ParentComponent;
10
+ type ToneProps = {
11
+ tone?: string;
12
+ /** @deprecated pass `tone="var(--destructive)"` instead */
13
+ variant?: "default" | "destructive";
14
+ };
15
+ type MenuItemProps = ComponentProps<typeof MenuPrimitive.Item> & ToneProps & {
16
+ inset?: boolean;
17
+ slotName: string;
18
+ style?: Record<string, string>;
19
+ };
20
+ export declare const MenuItemPart: Component<MenuItemProps>;
21
+ type MenuLabelProps = ComponentProps<typeof MenuPrimitive.GroupLabel> & {
22
+ inset?: boolean;
23
+ slotName: string;
24
+ };
25
+ export declare const MenuLabelPart: Component<MenuLabelProps>;
26
+ type MenuSeparatorProps = ComponentProps<typeof MenuPrimitive.Separator> & {
27
+ slotName: string;
28
+ };
29
+ export declare const MenuSeparatorPart: Component<MenuSeparatorProps>;
30
+ type MenuSubTriggerProps = ComponentProps<typeof MenuPrimitive.SubTrigger> & {
31
+ inset?: boolean;
32
+ slotName: string;
33
+ };
34
+ export declare const MenuSubTriggerPart: ParentComponent<MenuSubTriggerProps>;
35
+ type MenuSubContentProps = ComponentProps<typeof MenuPrimitive.SubContent> & {
36
+ slotName: string;
37
+ };
38
+ export declare const MenuSubContentPart: ParentComponent<MenuSubContentProps>;
39
+ type MenuCheckboxItemProps = ComponentProps<typeof MenuPrimitive.CheckboxItem> & {
40
+ slotName: string;
41
+ };
42
+ export declare const MenuCheckboxItemPart: ParentComponent<MenuCheckboxItemProps>;
43
+ type MenuRadioItemProps = ComponentProps<typeof MenuPrimitive.RadioItem> & {
44
+ slotName: string;
45
+ };
46
+ export declare const MenuRadioItemPart: ParentComponent<MenuRadioItemProps>;
47
+ export {};
@@ -1,4 +1,11 @@
1
1
  import { type JSX } from "solid-js";
2
+ export declare function OptionChoice(props: {
3
+ value: string;
4
+ label: string;
5
+ hint?: string;
6
+ icon?: string;
7
+ disabled?: boolean;
8
+ }): JSX.Element;
2
9
  export declare function OptionCardGroup(props: {
3
10
  value: string | null;
4
11
  onChange: (value: string) => void;
@@ -11,7 +18,20 @@ export declare function OptionCard(props: {
11
18
  title: string;
12
19
  description?: string;
13
20
  icon?: string;
21
+ iconImage?: string;
22
+ /** Per-option tone at rest (setup's brand colours); neutral by default. */
23
+ accentVar?: string;
24
+ /** Drop the check when picking the card is itself the next step. */
25
+ ornament?: "check" | "none";
26
+ /** Fires on every click, including a re-pick of the already-checked card,
27
+ * which the group's `onChange` alone never reports. */
28
+ onPick?: () => void;
14
29
  disabled?: boolean;
15
30
  class?: string;
31
+ /** The current sub-option (an OptionChoice value). */
32
+ subValue?: string;
33
+ onSubChange?: (value: string) => void;
34
+ /** Sub-options (OptionChoice rows) or a custom body. The card grows to
35
+ * reveal them while it is picked. */
16
36
  children?: JSX.Element;
17
37
  }): JSX.Element;
@@ -0,0 +1,3 @@
1
+ export declare function Ornament(props: {
2
+ kind: "arrow" | "check" | "none";
3
+ }): import("solid-js").JSX.Element;
@@ -1,5 +1,15 @@
1
1
  import { type JSX } from "solid-js";
2
- import type { GlassSurface } from "./section-card.js";
2
+ import { type GlassSurface } from "./section-card.js";
3
+ /**
4
+ * Page banner header, shared by dash and hub: the card surface with a primary
5
+ * glow and an optional logo watermark. Content is a superset API: icon/iconNode
6
+ * + title + count pill + subtitle on the left, actions on the right. The caller
7
+ * owns the space around it.
8
+ *
9
+ * `glass` is dash's performant-blur injection (like SectionCard); omit (hub) for
10
+ * a normal frosted banner. `logo` is the watermark image src; omit for no
11
+ * watermark (the package ships no asset).
12
+ */
3
13
  export declare function PageHeader(props: {
4
14
  /** Iconify icon name for the banner glyph. */
5
15
  icon?: string;
@@ -0,0 +1,14 @@
1
+ import { type ComponentProps, type JSX, type ValidComponent } from "solid-js";
2
+ export declare const PICKER_ROW_HEIGHT = 52;
3
+ type PickerRowProps = Omit<ComponentProps<"button">, "title"> & {
4
+ as?: ValidComponent;
5
+ icon?: string;
6
+ title: JSX.Element;
7
+ subtitle?: JSX.Element;
8
+ meta?: JSX.Element;
9
+ selected: boolean;
10
+ multi: boolean;
11
+ dimmed?: boolean;
12
+ };
13
+ export declare function PickerRow(props: PickerRowProps): JSX.Element;
14
+ export {};
@@ -0,0 +1,15 @@
1
+ import { type JSX } from "solid-js";
2
+ export interface PickerSearchProps extends Omit<JSX.InputHTMLAttributes<HTMLInputElement>, "value" | "onInput" | "class"> {
3
+ value?: string;
4
+ onValueChange?: (value: string) => void;
5
+ /** Rendered leading; the row is a divider, not a nested field. */
6
+ icon?: string;
7
+ /** Trailing button that empties the query; hidden while it is empty. */
8
+ clearLabel?: string;
9
+ class?: string;
10
+ inputRef?: (el: HTMLInputElement) => void;
11
+ /** "touch" is the sheet row: a picker that opens as a bottom sheet makes this
12
+ * its primary control, so it takes the full touch target. */
13
+ size?: "default" | "touch";
14
+ }
15
+ export declare function PickerSearch(props: PickerSearchProps): JSX.Element;
@@ -1,26 +1,17 @@
1
1
  import { Popover as PopoverPrimitive } from "@kobalte/core/popover";
2
2
  import { type Component, type ComponentProps } from "solid-js";
3
- declare const Popover: typeof import("@kobalte/core/popover").Root & {
4
- Anchor: typeof import("@kobalte/core/popover").Anchor;
5
- Arrow: typeof import("@kobalte/core/popover").Arrow;
6
- CloseButton: typeof import("@kobalte/core/popover").CloseButton;
7
- Content: typeof import("@kobalte/core/popover").Content;
8
- Description: typeof import("@kobalte/core/popover").Description;
9
- Portal: typeof import("@kobalte/core/popover").Portal;
10
- Title: typeof import("@kobalte/core/popover").Title;
11
- Trigger: typeof import("@kobalte/core/popover").Trigger;
3
+ type PopoverSurface = "overlay" | "field";
4
+ type PopoverProps = ComponentProps<typeof PopoverPrimitive> & {
5
+ /** "field" anchors the panel over the trigger's top edge, so the field reads
6
+ * as expanding into its panel instead of a box dropping in below it. */
7
+ surface?: PopoverSurface;
12
8
  };
9
+ type PopoverStatics = Omit<typeof PopoverPrimitive, never>;
10
+ declare const Popover: Component<PopoverProps> & PopoverStatics;
13
11
  declare const PopoverTrigger: Component<ComponentProps<typeof PopoverPrimitive.Trigger>>;
14
12
  type PopoverContentProps = ComponentProps<typeof PopoverPrimitive.Content> & {
15
- /** "field" wears the concave input surface, the way SelectContent does. */
16
- surface?: "overlay" | "field";
13
+ surface?: PopoverSurface;
17
14
  };
18
15
  declare const PopoverContent: Component<PopoverContentProps>;
19
16
  declare const PopoverAnchor: Component<ComponentProps<typeof PopoverPrimitive.Anchor>>;
20
- declare const anchorToTriggerTop: (anchor?: HTMLElement) => {
21
- x: number;
22
- y: number;
23
- width: number;
24
- height: number;
25
- };
26
- export { anchorToTriggerTop, Popover, PopoverAnchor, PopoverContent, PopoverTrigger };
17
+ export { Popover, PopoverAnchor, PopoverContent, PopoverTrigger };
@@ -2,5 +2,6 @@ import { Progress as ProgressPrimitive } from "@kobalte/core/progress";
2
2
  import { type Component, type ComponentProps } from "solid-js";
3
3
  declare const Progress: Component<ComponentProps<typeof ProgressPrimitive> & {
4
4
  value?: number;
5
+ tone?: string;
5
6
  }>;
6
7
  export { Progress };
@@ -1,20 +1,30 @@
1
1
  import type { VariantProps } from "cva";
2
- import { type Component, type ComponentProps, type JSX, type ParentComponent } from "solid-js";
2
+ import { type Component, type ComponentProps, type JSX, type ParentComponent, type ValidComponent } from "solid-js";
3
3
  import type { buttonVariants } from "../lib/button-variants.js";
4
+ import { type ModalSize } from "./dialog-parts.js";
4
5
  interface ResponsiveDialogProps {
5
6
  children: JSX.Element;
6
7
  open?: boolean;
7
8
  onOpenChange?: (open: boolean) => void;
8
9
  defaultOpen?: boolean;
9
10
  }
11
+ /** Centred kobalte dialog from `sm` up, drag-to-dismiss bottom sheet below it.
12
+ * Both branches render the same parts, so a call site never branches. */
10
13
  declare const ResponsiveDialog: ParentComponent<ResponsiveDialogProps>;
11
- declare const ResponsiveDialogTrigger: ParentComponent<ComponentProps<"button">>;
12
- declare const ResponsiveDialogContent: ParentComponent<ComponentProps<"div">>;
13
- declare const ResponsiveDialogHeader: Component<ComponentProps<"div">>;
14
+ declare const ResponsiveDialogTrigger: ParentComponent<ComponentProps<"button"> & {
15
+ as?: ValidComponent;
16
+ }>;
17
+ type ResponsiveDialogContentProps = ComponentProps<"div"> & {
18
+ /** Desktop panel width. The mobile sheet is always full width. */
19
+ size?: ModalSize;
20
+ /** Names a panel that has no `ResponsiveDialogTitle`. */
21
+ ariaLabel?: string;
22
+ };
23
+ declare const ResponsiveDialogContent: ParentComponent<ResponsiveDialogContentProps>;
24
+ declare const ResponsiveDialogHeader: Component<import("./dialog-parts.js").ModalHeaderProps>, ResponsiveDialogBody: Component<import("./dialog-parts.js").ModalBodyProps>, ResponsiveDialogFooter: Component<JSX.HTMLAttributes<HTMLDivElement>>;
14
25
  declare const ResponsiveDialogTitle: Component<ComponentProps<"h2">>;
15
26
  declare const ResponsiveDialogDescription: Component<ComponentProps<"p">>;
16
- declare const ResponsiveDialogFooter: Component<ComponentProps<"div">>;
17
27
  /** Defaults to the footer's outline button; an icon-only close passes `ghost`
18
28
  * so the glyph is not boxed. */
19
29
  declare const ResponsiveDialogClose: ParentComponent<ComponentProps<"button"> & VariantProps<typeof buttonVariants>>;
20
- export { ResponsiveDialog, ResponsiveDialogClose, ResponsiveDialogContent, ResponsiveDialogDescription, ResponsiveDialogFooter, ResponsiveDialogHeader, ResponsiveDialogTitle, ResponsiveDialogTrigger, };
30
+ export { ResponsiveDialog, ResponsiveDialogBody, ResponsiveDialogClose, ResponsiveDialogContent, ResponsiveDialogDescription, ResponsiveDialogFooter, ResponsiveDialogHeader, ResponsiveDialogTitle, ResponsiveDialogTrigger, };
@@ -1,6 +1,10 @@
1
1
  import type { JSONSchema7 } from "json-schema";
2
2
  import { type IconPickerProps } from "./icon-picker.js";
3
3
  export interface ExtendedJSONSchema extends JSONSchema7 {
4
+ properties?: {
5
+ [key: string]: ExtendedJSONSchema | boolean;
6
+ };
7
+ items?: ExtendedJSONSchema | (ExtendedJSONSchema | boolean)[] | boolean;
4
8
  /** Explicit control choice from the SDK's field.* helpers. */
5
9
  formType?: string;
6
10
  domain?: string;
@@ -1,5 +1,6 @@
1
1
  import { type Component, type ComponentProps, type ParentComponent } from "solid-js";
2
2
  declare const ScrollArea: ParentComponent<ComponentProps<"div">>;
3
+ /** @deprecated `gh-scroll`'s native-styled bar is the bar; renders nothing. */
3
4
  declare const ScrollBar: Component<ComponentProps<"div"> & {
4
5
  orientation?: "vertical" | "horizontal";
5
6
  }>;
@@ -4,6 +4,7 @@ export type GlassSurface = {
4
4
  style?: () => JSX.CSSProperties;
5
5
  active?: () => boolean;
6
6
  };
7
+ export declare const NOOP_GLASS: Required<GlassSurface>;
7
8
  type SectionCardProps = {
8
9
  icon?: string;
9
10
  title?: JSX.Element;
@@ -15,20 +16,17 @@ type SectionCardProps = {
15
16
  subtitleClass?: string;
16
17
  class?: string;
17
18
  glass?: GlassSurface;
18
- children: JSX.Element;
19
+ children?: JSX.Element;
19
20
  };
20
21
  export declare function SectionCard(props: SectionCardProps): JSX.Element;
21
22
  export declare function SectionRow(props: ComponentProps<"div">): JSX.Element;
22
23
  type SectionIconSize = "sm" | "md" | "lg";
23
- declare const ICON_TONES: {
24
- readonly neutral: "bg-foreground/10 text-foreground/80";
25
- readonly primary: "bg-primary/10 text-primary";
26
- };
27
24
  export declare function SectionIcon(props: {
28
25
  icon?: string;
29
26
  children?: JSX.Element;
30
27
  size?: SectionIconSize;
31
- tone?: keyof typeof ICON_TONES;
28
+ /** Any CSS color. `"neutral"` and `"primary"` are the deprecated old enum. */
29
+ tone?: string;
32
30
  class?: string;
33
31
  }): JSX.Element;
34
32
  export declare function SectionTitle(props: {
@@ -39,6 +37,7 @@ export declare function SectionSubtitle(props: {
39
37
  children: JSX.Element;
40
38
  class?: string;
41
39
  }): JSX.Element;
40
+ /** @deprecated SectionMeta, or FieldLegend for a titled group of rows. */
42
41
  export declare function SectionLabel(props: {
43
42
  children: JSX.Element;
44
43
  class?: string;
@@ -1,22 +1,28 @@
1
1
  import { Dialog as DialogPrimitive } from "@kobalte/core/dialog";
2
+ import type { VariantProps } from "cva";
2
3
  import { type Component, type ComponentProps, type JSX, type ParentComponent } from "solid-js";
3
- declare const Sheet: typeof import("@kobalte/core/alert-dialog").Root & {
4
- CloseButton: typeof import("@kobalte/core/alert-dialog").CloseButton;
5
- Content: typeof import("@kobalte/core/dialog").Content;
6
- Description: typeof import("@kobalte/core/alert-dialog").Description;
7
- Overlay: typeof import("@kobalte/core/alert-dialog").Overlay;
8
- Portal: typeof import("@kobalte/core/alert-dialog").Portal;
9
- Title: typeof import("@kobalte/core/alert-dialog").Title;
10
- Trigger: typeof import("@kobalte/core/alert-dialog").Trigger;
11
- };
4
+ import { buttonVariants } from "../lib/button-variants.js";
5
+ import { type ModalDismissProps } from "./dialog-parts.js";
6
+ declare const Sheet: ParentComponent<ComponentProps<typeof DialogPrimitive>>;
12
7
  declare const SheetTrigger: Component<ComponentProps<typeof DialogPrimitive.Trigger>>;
13
- declare const SheetClose: typeof import("@kobalte/core/alert-dialog").CloseButton;
14
- declare const SheetContent: ParentComponent<ComponentProps<typeof DialogPrimitive.Content> & {
15
- side?: "top" | "right" | "bottom" | "left";
8
+ type SheetCloseProps = ModalDismissProps & Partial<Pick<VariantProps<typeof buttonVariants>, "variant" | "size">>;
9
+ /** Already the outline button; see DialogClose on why `as={Button}` is wrong. */
10
+ declare const SheetClose: ParentComponent<SheetCloseProps>;
11
+ declare const SHEET_SIDE: {
12
+ readonly right: "data-[closed]:slide-out-to-right data-[expanded]:slide-in-from-right inset-y-3 right-3 w-3/4 sm:max-w-sm";
13
+ readonly left: "data-[closed]:slide-out-to-left data-[expanded]:slide-in-from-left inset-y-3 left-3 w-3/4 sm:max-w-sm";
14
+ readonly top: "data-[closed]:slide-out-to-top data-[expanded]:slide-in-from-top inset-x-3 top-3 [--modal-max-h:85dvh] max-h-[var(--modal-max-h)]";
15
+ };
16
+ type SheetSide = keyof typeof SHEET_SIDE;
17
+ type SheetContentProps = ComponentProps<typeof DialogPrimitive.Content> & {
18
+ /** A modal belongs in `ResponsiveDialog`; this family slides from an edge. */
19
+ side?: SheetSide;
16
20
  above?: JSX.Element;
17
- }>;
18
- declare const SheetHeader: Component<ComponentProps<"div">>;
19
- declare const SheetFooter: Component<ComponentProps<"div">>;
21
+ /** Names a panel that has no `SheetTitle`. A registered Title wins. */
22
+ ariaLabel?: string;
23
+ };
24
+ declare const SheetContent: ParentComponent<SheetContentProps>;
25
+ declare const SheetHeader: Component<import("./dialog-parts.js").ModalHeaderProps>, SheetBody: Component<import("./dialog-parts.js").ModalBodyProps>, SheetFooter: Component<JSX.HTMLAttributes<HTMLDivElement>>;
20
26
  declare const SheetTitle: Component<ComponentProps<typeof DialogPrimitive.Title>>;
21
27
  declare const SheetDescription: Component<ComponentProps<typeof DialogPrimitive.Description>>;
22
- export { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, };
28
+ export { Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, };
@@ -1,6 +1,6 @@
1
1
  /**
2
- * Position inside a multi-step flow: dots for the eye, one spoken line for
3
- * screen readers. The dots carry no text of their own, so the sr-only line is
2
+ * Position inside a multi-step flow: lit bars for the eye, one spoken line for
3
+ * screen readers. The bars carry no text of their own, so the sr-only line is
4
4
  * the only place the position is readable.
5
5
  */
6
6
  export declare function StepIndicator(props: {
@@ -1,4 +1,7 @@
1
1
  import { type Component, type ComponentProps } from "solid-js";
2
+ export declare const TABLE_CELL_INSET = "px-3 py-2";
3
+ export declare const TABLE_HEAD_LABEL_CLASS = "font-medium text-muted-foreground text-xs";
4
+ export declare const TABLE_HEAD_CELL_CLASS = "px-3 py-2 text-left font-medium text-muted-foreground text-xs";
2
5
  declare const Table: Component<ComponentProps<"table">>;
3
6
  declare const TableHeader: Component<ComponentProps<"thead">>;
4
7
  declare const TableBody: Component<ComponentProps<"tbody">>;
@@ -1,11 +1,13 @@
1
1
  import { Tabs as TabsPrimitive } from "@kobalte/core/tabs";
2
2
  import { type Component, type ComponentProps } from "solid-js";
3
- declare const Tabs: typeof import("@kobalte/core/tabs").Root & {
4
- Content: typeof import("@kobalte/core/tabs").Content;
5
- Indicator: typeof import("@kobalte/core/tabs").Indicator;
6
- List: typeof import("@kobalte/core/tabs").List;
7
- Trigger: typeof import("@kobalte/core/tabs").Trigger;
3
+ /** `split`: the root is `display: contents`, so a host (a modal panel) lays the
4
+ * list and the content out in its own regions while the tab state still spans
5
+ * them. */
6
+ type TabsLayout = "stack" | "split";
7
+ type TabsProps = ComponentProps<typeof TabsPrimitive> & {
8
+ layout?: TabsLayout;
8
9
  };
10
+ declare const Tabs: Component<TabsProps>;
9
11
  declare const TabsList: Component<ComponentProps<typeof TabsPrimitive.List>>;
10
12
  declare const TabsTrigger: Component<ComponentProps<typeof TabsPrimitive.Trigger>>;
11
13
  declare const TabsContent: Component<ComponentProps<typeof TabsPrimitive.Content>>;
@@ -1,6 +1,6 @@
1
1
  import { Tooltip as TooltipPrimitive } from "@kobalte/core/tooltip";
2
2
  import { type Component, type ComponentProps } from "solid-js";
3
- declare const Tooltip: typeof import("@kobalte/core/tooltip").Root & {
3
+ declare const Tooltip: Component<import("@kobalte/core/tooltip").TooltipRootProps> & typeof import("@kobalte/core/tooltip").Root & {
4
4
  Arrow: typeof import("@kobalte/core/popover").Arrow;
5
5
  Content: typeof import("@kobalte/core/tooltip").Content;
6
6
  Portal: typeof import("@kobalte/core/tooltip").Portal;
@@ -43,10 +43,13 @@ type WidgetIdentityProps = {
43
43
  class?: string;
44
44
  };
45
45
  export declare function WidgetIdentity(_props: WidgetIdentityProps): JSX.Element;
46
- /** Downloads (+ optional version count) meta cluster. */
46
+ /** Downloads (+ optional version counts) meta cluster. */
47
47
  export declare function WidgetMeta(props: {
48
48
  widget: WidgetSummary;
49
+ /** Append `N versions`. */
49
50
  showVersions?: boolean;
51
+ /** Append `v{latestVersion}` (the tile footer's shape). */
52
+ showLatestVersion?: boolean;
50
53
  class?: string;
51
54
  }): JSX.Element;
52
55
  export {};
@@ -151,7 +151,7 @@ var x = [
151
151
  border: "oklch(0.26 0.012 250)",
152
152
  card: "oklch(0.17 0.01 250)",
153
153
  background: "oklch(0.12 0.01 250)",
154
- popover: "oklch(0.19 0.008 250)",
154
+ popover: "oklch(0.11 0.005 250)",
155
155
  muted: "oklch(0.22 0.02 250)",
156
156
  mutedForeground: "oklch(0.81 0 0)",
157
157
  input: "oklch(0.19 0.01 250)",