tensile 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.
Files changed (137) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +409 -0
  3. package/THIRD_PARTY_NOTICES +93 -0
  4. package/dist/CalendarView.d.ts +20 -0
  5. package/dist/Check.d.ts +4 -0
  6. package/dist/Expand.d.ts +34 -0
  7. package/dist/Menu.d.ts +18 -0
  8. package/dist/Modal.d.ts +14 -0
  9. package/dist/SeekBar.d.ts +20 -0
  10. package/dist/Sheet.d.ts +12 -0
  11. package/dist/SliderTrack.d.ts +18 -0
  12. package/dist/calendar.d.ts +12 -0
  13. package/dist/color.d.ts +16 -0
  14. package/dist/components/actions/ActionMenu.d.ts +12 -0
  15. package/dist/components/actions/Button.d.ts +12 -0
  16. package/dist/components/actions/CommandPalette.d.ts +15 -0
  17. package/dist/components/actions/CopyButton.d.ts +8 -0
  18. package/dist/components/actions/HoldButton.d.ts +11 -0
  19. package/dist/components/actions/IconButton.d.ts +5 -0
  20. package/dist/components/actions/MorphButton.d.ts +6 -0
  21. package/dist/components/actions/SelectionBar.d.ts +12 -0
  22. package/dist/components/actions/SwipeButton.d.ts +9 -0
  23. package/dist/components/actions/Toolbar.d.ts +7 -0
  24. package/dist/components/data-display/Avatar.d.ts +14 -0
  25. package/dist/components/data-display/AvatarGroup.d.ts +15 -0
  26. package/dist/components/data-display/BarChart.d.ts +13 -0
  27. package/dist/components/data-display/DataTable.d.ts +32 -0
  28. package/dist/components/data-display/DescriptionList.d.ts +8 -0
  29. package/dist/components/data-display/DonutChart.d.ts +17 -0
  30. package/dist/components/data-display/Icon.d.ts +9 -0
  31. package/dist/components/data-display/Kbd.d.ts +2 -0
  32. package/dist/components/data-display/LineChart.d.ts +13 -0
  33. package/dist/components/data-display/List.d.ts +16 -0
  34. package/dist/components/data-display/NumberTicker.d.ts +6 -0
  35. package/dist/components/data-display/StatTile.d.ts +15 -0
  36. package/dist/components/data-display/Table.d.ts +27 -0
  37. package/dist/components/data-display/Tag.d.ts +9 -0
  38. package/dist/components/data-display/Timeline.d.ts +13 -0
  39. package/dist/components/data-display/TreeView.d.ts +18 -0
  40. package/dist/components/feedback/Alert.d.ts +7 -0
  41. package/dist/components/feedback/Badge.d.ts +9 -0
  42. package/dist/components/feedback/EmptyState.d.ts +8 -0
  43. package/dist/components/feedback/LoadingState.d.ts +6 -0
  44. package/dist/components/feedback/NotificationList.d.ts +21 -0
  45. package/dist/components/feedback/ProgressBar.d.ts +8 -0
  46. package/dist/components/feedback/ProgressRing.d.ts +10 -0
  47. package/dist/components/feedback/Skeleton.d.ts +5 -0
  48. package/dist/components/feedback/Spinner.d.ts +7 -0
  49. package/dist/components/feedback/StatusBadge.d.ts +6 -0
  50. package/dist/components/feedback/Toast.d.ts +6 -0
  51. package/dist/components/feedback/ToastStack.d.ts +13 -0
  52. package/dist/components/inputs/Checkbox.d.ts +7 -0
  53. package/dist/components/inputs/CheckboxGroup.d.ts +15 -0
  54. package/dist/components/inputs/ColorPicker.d.ts +16 -0
  55. package/dist/components/inputs/ColorSwatches.d.ts +16 -0
  56. package/dist/components/inputs/Combobox.d.ts +18 -0
  57. package/dist/components/inputs/DatePicker.d.ts +6 -0
  58. package/dist/components/inputs/DateRangePicker.d.ts +9 -0
  59. package/dist/components/inputs/EditableText.d.ts +9 -0
  60. package/dist/components/inputs/Field.d.ts +52 -0
  61. package/dist/components/inputs/Fieldset.d.ts +9 -0
  62. package/dist/components/inputs/FileUpload.d.ts +16 -0
  63. package/dist/components/inputs/Input.d.ts +7 -0
  64. package/dist/components/inputs/MultiSelect.d.ts +20 -0
  65. package/dist/components/inputs/NumberInput.d.ts +11 -0
  66. package/dist/components/inputs/NumberStepper.d.ts +17 -0
  67. package/dist/components/inputs/OTPInput.d.ts +15 -0
  68. package/dist/components/inputs/PasswordInput.d.ts +6 -0
  69. package/dist/components/inputs/RadioGroup.d.ts +17 -0
  70. package/dist/components/inputs/RangeSlider.d.ts +16 -0
  71. package/dist/components/inputs/Rating.d.ts +17 -0
  72. package/dist/components/inputs/SearchField.d.ts +11 -0
  73. package/dist/components/inputs/Select.d.ts +18 -0
  74. package/dist/components/inputs/Slider.d.ts +15 -0
  75. package/dist/components/inputs/TagInput.d.ts +13 -0
  76. package/dist/components/inputs/TextField.d.ts +7 -0
  77. package/dist/components/inputs/Textarea.d.ts +5 -0
  78. package/dist/components/inputs/ThemeToggle.d.ts +9 -0
  79. package/dist/components/inputs/TimePicker.d.ts +27 -0
  80. package/dist/components/inputs/TimeWheel.d.ts +25 -0
  81. package/dist/components/inputs/Toggle.d.ts +7 -0
  82. package/dist/components/inputs/ToggleGroup.d.ts +15 -0
  83. package/dist/components/layout/Accordion.d.ts +12 -0
  84. package/dist/components/layout/AppShell.d.ts +12 -0
  85. package/dist/components/layout/Card.d.ts +5 -0
  86. package/dist/components/layout/ExpandableCard.d.ts +14 -0
  87. package/dist/components/layout/Footer.d.ts +14 -0
  88. package/dist/components/layout/Header.d.ts +16 -0
  89. package/dist/components/layout/PageHeader.d.ts +8 -0
  90. package/dist/components/layout/Separator.d.ts +5 -0
  91. package/dist/components/layout/SplitPane.d.ts +12 -0
  92. package/dist/components/media/Carousel.d.ts +24 -0
  93. package/dist/components/media/CompareSlider.d.ts +14 -0
  94. package/dist/components/media/Image.d.ts +8 -0
  95. package/dist/components/media/Lightbox.d.ts +15 -0
  96. package/dist/components/media/MusicPlayer.d.ts +16 -0
  97. package/dist/components/media/VideoControls.d.ts +21 -0
  98. package/dist/components/media/VolumeSlider.d.ts +10 -0
  99. package/dist/components/media/WaveformScrubber.d.ts +13 -0
  100. package/dist/components/navigation/Breadcrumbs.d.ts +19 -0
  101. package/dist/components/navigation/CollapsibleSidebar.d.ts +21 -0
  102. package/dist/components/navigation/Link.d.ts +12 -0
  103. package/dist/components/navigation/PageDots.d.ts +11 -0
  104. package/dist/components/navigation/Pagination.d.ts +18 -0
  105. package/dist/components/navigation/SegmentedTabs.d.ts +13 -0
  106. package/dist/components/navigation/SidebarNav.d.ts +17 -0
  107. package/dist/components/navigation/TabBar.d.ts +14 -0
  108. package/dist/components/navigation/Tabs.d.ts +14 -0
  109. package/dist/components/navigation/UnderlineTabs.d.ts +18 -0
  110. package/dist/components/navigation/WizardSteps.d.ts +16 -0
  111. package/dist/components/overlays/AlertDialog.d.ts +12 -0
  112. package/dist/components/overlays/BottomSheet.d.ts +9 -0
  113. package/dist/components/overlays/ContextMenu.d.ts +9 -0
  114. package/dist/components/overlays/Dialog.d.ts +12 -0
  115. package/dist/components/overlays/Drawer.d.ts +10 -0
  116. package/dist/components/overlays/Island.d.ts +17 -0
  117. package/dist/components/overlays/Popover.d.ts +19 -0
  118. package/dist/components/overlays/Tooltip.d.ts +19 -0
  119. package/dist/drag.d.ts +15 -0
  120. package/dist/focus.d.ts +2 -0
  121. package/dist/geist-cyrillic-ext-wght-normal.woff2 +0 -0
  122. package/dist/geist-cyrillic-wght-normal.woff2 +0 -0
  123. package/dist/geist-latin-ext-wght-normal.woff2 +0 -0
  124. package/dist/geist-latin-wght-normal.woff2 +0 -0
  125. package/dist/geist-vietnamese-wght-normal.woff2 +0 -0
  126. package/dist/icons.d.ts +12 -0
  127. package/dist/index.d.ts +105 -0
  128. package/dist/index.js +7972 -0
  129. package/dist/list.d.ts +18 -0
  130. package/dist/overlay.d.ts +22 -0
  131. package/dist/playback.d.ts +4 -0
  132. package/dist/reset.css +2 -0
  133. package/dist/springs.d.ts +27 -0
  134. package/dist/styles.css +2 -0
  135. package/dist/useSize.d.ts +7 -0
  136. package/dist/useWidth.d.ts +2 -0
  137. package/package.json +64 -0
@@ -0,0 +1,10 @@
1
+ export type VolumeSliderProps = {
2
+ /** 0..1 */
3
+ value: number;
4
+ onValueChange: (value: number) => void;
5
+ label?: string;
6
+ tone?: "paper" | "ink";
7
+ formatValue?: (value: number) => string;
8
+ className?: string;
9
+ };
10
+ export declare function VolumeSlider({ value, onValueChange, label, tone, formatValue, className, }: VolumeSliderProps): import("react").JSX.Element;
@@ -0,0 +1,13 @@
1
+ export type WaveformScrubberProps = {
2
+ /** Bar heights from 0 to 1, one bar per peak. */
3
+ peaks: number[];
4
+ /** Position in seconds. */
5
+ value: number;
6
+ onValueChange: (value: number) => void;
7
+ /** Length in seconds. */
8
+ duration: number;
9
+ label?: string;
10
+ formatTime?: (seconds: number) => string;
11
+ className?: string;
12
+ };
13
+ export declare function WaveformScrubber({ peaks, value, onValueChange, duration, label, formatTime, className, }: WaveformScrubberProps): import("react").JSX.Element;
@@ -0,0 +1,19 @@
1
+ type Crumb = {
2
+ label: string;
3
+ icon?: React.ReactNode;
4
+ href?: string;
5
+ };
6
+ export type BreadcrumbsProps = {
7
+ /** The trail from the root; the last item is the current page. */
8
+ items: Crumb[];
9
+ onNavigate: (item: Crumb) => void;
10
+ label?: string;
11
+ expandLabel?: string;
12
+ /** Items shown before the "…" pill. */
13
+ itemsBeforeCollapse?: number;
14
+ /** Items shown after the "…" pill, the current page included. */
15
+ itemsAfterCollapse?: number;
16
+ className?: string;
17
+ };
18
+ export declare function Breadcrumbs({ items, onNavigate, label, expandLabel, itemsBeforeCollapse, itemsAfterCollapse, className, }: BreadcrumbsProps): import("react").JSX.Element;
19
+ export {};
@@ -0,0 +1,21 @@
1
+ export type CollapsibleSidebarProps = {
2
+ items: {
3
+ value: string;
4
+ label: string;
5
+ icon: React.ReactNode;
6
+ href?: string;
7
+ }[];
8
+ value: string;
9
+ onValueChange: (value: string) => void;
10
+ expanded: boolean;
11
+ onExpandedChange: (expanded: boolean) => void;
12
+ /** At the top, e.g. the brand; clipped to the rail while collapsed. */
13
+ leading?: React.ReactNode;
14
+ /** At the bottom, above the collapse button, e.g. the account; clipped to the rail while collapsed. */
15
+ trailing?: React.ReactNode;
16
+ label?: string;
17
+ expandLabel?: string;
18
+ collapseLabel?: string;
19
+ className?: string;
20
+ };
21
+ export declare function CollapsibleSidebar({ items, value, onValueChange, expanded, onExpandedChange, leading, trailing, label, expandLabel, collapseLabel, className, }: CollapsibleSidebarProps): import("react").JSX.Element;
@@ -0,0 +1,12 @@
1
+ export type LinkProviderProps = {
2
+ /** Gets the link's `href` on a plain left click on a same-origin link, instead of the page loading it; links to a `#fragment` of the page keep scrolling natively. */
3
+ navigate: (href: string) => void;
4
+ children: React.ReactNode;
5
+ };
6
+ export declare function LinkProvider({ navigate, children }: LinkProviderProps): import("react").JSX.Element;
7
+ /** The click handler for components that render their own `<a>`: inside a `LinkProvider`, a plain left click on a same-origin link (no `target` other than `_self`, no `download`, not a `#fragment` of this page) calls `navigate(href)` instead of loading the page. Call it after the link's own `onClick`; a click that one prevented is left alone. */
8
+ export declare function useLinkClick(): (event: React.MouseEvent<HTMLAnchorElement>) => void;
9
+ export type LinkProps = React.ComponentProps<"a"> & {
10
+ href: string;
11
+ };
12
+ export declare function Link({ onClick, className, ...props }: LinkProps): import("react").JSX.Element;
@@ -0,0 +1,11 @@
1
+ export type PageDotsProps = {
2
+ count: number;
3
+ /** The current page, from 0. */
4
+ value: number;
5
+ onValueChange: (value: number) => void;
6
+ label?: string;
7
+ /** Text for the current page; `page` counts from 1. */
8
+ pageLabel?: (page: number, count: number) => string;
9
+ className?: string;
10
+ };
11
+ export declare function PageDots({ count, value, onValueChange, label, pageLabel, className, }: PageDotsProps): import("react").JSX.Element;
@@ -0,0 +1,18 @@
1
+ export type PaginationProps = {
2
+ /** Number of pages. */
3
+ count: number;
4
+ /** Current page, from 1 to `count`. */
5
+ value: number;
6
+ onValueChange: (value: number) => void;
7
+ /** Slots for pages and ellipses, at least 5. */
8
+ slots?: number;
9
+ formatPage?: (page: number) => string;
10
+ label?: string;
11
+ previousLabel?: string;
12
+ nextLabel?: string;
13
+ pageLabel?: (page: number) => string;
14
+ /** Makes the numbered pages links; previous and next remain buttons. */
15
+ pageHref?: (page: number) => string;
16
+ className?: string;
17
+ };
18
+ export declare function Pagination({ count, value, onValueChange, slots, formatPage, label, previousLabel, nextLabel, pageLabel, pageHref, className, }: PaginationProps): import("react").JSX.Element;
@@ -0,0 +1,13 @@
1
+ export type SegmentedTabsProps = {
2
+ options: {
3
+ value: string;
4
+ label: string;
5
+ icon?: React.ReactNode;
6
+ }[];
7
+ value: string;
8
+ onValueChange: (value: string) => void;
9
+ label?: string;
10
+ id?: string;
11
+ className?: string;
12
+ };
13
+ export declare function SegmentedTabs({ options, value, onValueChange, label, id, className }: SegmentedTabsProps): import("react").JSX.Element;
@@ -0,0 +1,17 @@
1
+ export type SidebarNavProps = {
2
+ items: {
3
+ value: string;
4
+ label: string;
5
+ icon?: React.ReactNode;
6
+ href?: string;
7
+ }[];
8
+ value: string;
9
+ onValueChange: (value: string) => void;
10
+ label?: string;
11
+ collapsed?: boolean;
12
+ leading?: React.ReactNode;
13
+ /** Pinned to the bottom, e.g. the account. */
14
+ trailing?: React.ReactNode;
15
+ className?: string;
16
+ };
17
+ export declare function SidebarNav({ items, value, onValueChange, label, collapsed, leading, trailing, className, }: SidebarNavProps): import("react").JSX.Element;
@@ -0,0 +1,14 @@
1
+ export type TabBarProps = {
2
+ items: {
3
+ value: string;
4
+ label: string;
5
+ icon: React.ReactNode;
6
+ activeIcon: React.ReactNode;
7
+ href?: string;
8
+ }[];
9
+ value: string;
10
+ onValueChange: (value: string) => void;
11
+ label?: string;
12
+ className?: string;
13
+ };
14
+ export declare function TabBar({ items, value, onValueChange, label, className }: TabBarProps): import("react").JSX.Element;
@@ -0,0 +1,14 @@
1
+ export type TabsProps = {
2
+ items: {
3
+ value: string;
4
+ label: string;
5
+ icon?: React.ReactNode;
6
+ content: React.ReactNode;
7
+ }[];
8
+ value: string;
9
+ onValueChange: (value: string) => void;
10
+ label?: string;
11
+ variant?: "underline" | "segmented";
12
+ className?: string;
13
+ };
14
+ export declare function Tabs({ items, value, onValueChange, label, variant, className }: TabsProps): import("react").JSX.Element;
@@ -0,0 +1,18 @@
1
+ export type UnderlineTabsProps = {
2
+ options: {
3
+ value: string;
4
+ label: string;
5
+ icon?: React.ReactNode;
6
+ }[];
7
+ value: string;
8
+ onValueChange: (value: string) => void;
9
+ label?: string;
10
+ id?: string;
11
+ className?: string;
12
+ };
13
+ /** The liquid underline under the current item of a row, between the `left` and `right` edges measured from the row. */
14
+ export declare function Underline({ left, right }: {
15
+ left: number;
16
+ right: number;
17
+ }): import("react").JSX.Element;
18
+ export declare function UnderlineTabs({ options, value, onValueChange, label, id, className }: UnderlineTabsProps): import("react").JSX.Element;
@@ -0,0 +1,16 @@
1
+ export type WizardStepsProps = {
2
+ steps: {
3
+ label: string;
4
+ icon?: React.ReactNode;
5
+ }[];
6
+ /** Index of the current step. */
7
+ value: number;
8
+ /** Read out after the label of a finished step. */
9
+ doneLabel?: string;
10
+ /** Read out after the label of the current step. */
11
+ currentLabel?: string;
12
+ /** Read out after the label of a step not reached yet. */
13
+ upcomingLabel?: string;
14
+ className?: string;
15
+ };
16
+ export declare function WizardSteps({ steps, value, doneLabel, currentLabel, upcomingLabel, className, }: WizardStepsProps): import("react").JSX.Element;
@@ -0,0 +1,12 @@
1
+ export type AlertDialogProps = {
2
+ open: boolean;
3
+ onOpenChange: (open: boolean) => void;
4
+ title: string;
5
+ description: React.ReactNode;
6
+ onConfirm: () => void;
7
+ confirmLabel?: string;
8
+ cancelLabel?: string;
9
+ trigger?: React.ReactNode;
10
+ className?: string;
11
+ };
12
+ export declare function AlertDialog({ open, onOpenChange, title, description, onConfirm, confirmLabel, cancelLabel, trigger, className, }: AlertDialogProps): import("react").JSX.Element;
@@ -0,0 +1,9 @@
1
+ export type BottomSheetProps = {
2
+ open: boolean;
3
+ onOpenChange: (open: boolean) => void;
4
+ children: React.ReactNode;
5
+ label?: string;
6
+ handleLabel?: string;
7
+ className?: string;
8
+ };
9
+ export declare function BottomSheet({ open, onOpenChange, children, label, handleLabel, className }: BottomSheetProps): import("react").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { type MenuAction } from "../../Menu";
2
+ export type ContextMenuProps = {
3
+ actions: MenuAction[];
4
+ onAction: (action: MenuAction) => void;
5
+ children: React.ReactNode;
6
+ menuLabel?: string;
7
+ className?: string;
8
+ };
9
+ export declare function ContextMenu({ actions, onAction, children, menuLabel, className }: ContextMenuProps): import("react").JSX.Element;
@@ -0,0 +1,12 @@
1
+ export type DialogProps = {
2
+ open: boolean;
3
+ onOpenChange: (open: boolean) => void;
4
+ children: React.ReactNode;
5
+ trigger?: React.ReactNode;
6
+ title?: string;
7
+ closeLabel?: string;
8
+ role?: "dialog" | "alertdialog";
9
+ "aria-describedby"?: string;
10
+ className?: string;
11
+ };
12
+ export declare function Dialog({ open, onOpenChange, children, trigger, title, closeLabel, role, "aria-describedby": describedBy, className, }: DialogProps): import("react").JSX.Element;
@@ -0,0 +1,10 @@
1
+ export type DrawerProps = {
2
+ open: boolean;
3
+ onOpenChange: (open: boolean) => void;
4
+ title: React.ReactNode;
5
+ children: React.ReactNode;
6
+ side?: "right" | "left";
7
+ closeLabel?: string;
8
+ className?: string;
9
+ };
10
+ export declare function Drawer({ open, onOpenChange, title, children, side, closeLabel, className }: DrawerProps): import("react").JSX.Element;
@@ -0,0 +1,17 @@
1
+ export type IslandProps = {
2
+ /** Name of the current activity, e.g. "Timer". It names the expanded view; a new one blur-swaps the content and springs the pill to its width. */
3
+ activity: string;
4
+ /** Start of the compact pill. */
5
+ leading: React.ReactNode;
6
+ /** End of the compact pill. */
7
+ trailing: React.ReactNode;
8
+ /** The expanded view, laid out in a panelWidth × panelHeight box. */
9
+ children: React.ReactNode;
10
+ expanded: boolean;
11
+ onExpandedChange: (expanded: boolean) => void;
12
+ openLabel?: (activity: string) => string;
13
+ panelWidth?: number;
14
+ panelHeight?: number;
15
+ className?: string;
16
+ };
17
+ export declare function Island({ activity, leading, trailing, children, expanded, onExpandedChange, openLabel, panelWidth, panelHeight, className, }: IslandProps): import("react").JSX.Element;
@@ -0,0 +1,19 @@
1
+ import { type Placement } from "../../Expand";
2
+ export type PopoverProps = {
3
+ open: boolean;
4
+ onOpenChange: (open: boolean) => void;
5
+ children: React.ReactNode;
6
+ trigger?: React.ReactNode;
7
+ label?: string;
8
+ panelLabel?: string;
9
+ panelWidth?: number;
10
+ /** The side the panel opens toward and the trigger edge it stays aligned with; it flips when the other side has more room. */
11
+ placement?: Placement;
12
+ id?: string;
13
+ disabled?: boolean;
14
+ "aria-labelledby"?: string;
15
+ "aria-describedby"?: string;
16
+ "aria-invalid"?: boolean;
17
+ className?: string;
18
+ };
19
+ export declare function Popover({ open, onOpenChange, children, trigger, label, panelLabel, panelWidth, placement, id, disabled, "aria-labelledby": labelledBy, "aria-describedby": describedBy, "aria-invalid": invalid, className, }: PopoverProps): import("react").JSX.Element;
@@ -0,0 +1,19 @@
1
+ type Trigger = {
2
+ ref: React.RefCallback<HTMLElement>;
3
+ onPointerEnter: React.PointerEventHandler<HTMLElement>;
4
+ onPointerLeave: React.PointerEventHandler<HTMLElement>;
5
+ onFocus: React.FocusEventHandler<HTMLElement>;
6
+ onBlur: React.FocusEventHandler<HTMLElement>;
7
+ "aria-describedby": string | undefined;
8
+ };
9
+ export type TooltipProps = {
10
+ label: string;
11
+ children: (trigger: Trigger) => React.ReactNode;
12
+ className?: string;
13
+ };
14
+ export declare function TooltipGroup({ children, className }: {
15
+ children: React.ReactNode;
16
+ className?: string;
17
+ }): import("react").JSX.Element;
18
+ export declare function Tooltip({ label, children, className }: TooltipProps): import("react").JSX.Element;
19
+ export {};
package/dist/drag.d.ts ADDED
@@ -0,0 +1,15 @@
1
+ /** Where to draw a drag that went `over` px past a limit: it follows at first, then gives less and less, never more than 24 px. */
2
+ export declare function rubber(over: number): number;
3
+ /** Pointer handlers for dragging over an element (give it `touch-none`): `onDrag` runs on press and on every move while the pointer is held, `onRelease` when it lets go. */
4
+ export declare function dragHandlers<T extends Element>(onDrag: (event: React.PointerEvent<T>) => void, onRelease: () => void): {
5
+ onPointerDown(event: React.PointerEvent<T>): void;
6
+ onPointerMove(event: React.PointerEvent<T>): void;
7
+ onPointerUp: () => void;
8
+ onPointerCancel: () => void;
9
+ };
10
+ /** A `width` × `height` pill pulled `stretch` px past an end (negative past the start): longer, thinner, and moved left when pulled past the start. Put `style` on the pill and spring `stretch` back to 0 with `snap`. */
11
+ export declare function useStretch(width: number, height: number): readonly [import("motion-dom").MotionValue<number>, {
12
+ width: import("motion-dom").MotionValue<number>;
13
+ height: import("motion-dom").MotionValue<number>;
14
+ x: import("motion-dom").MotionValue<number>;
15
+ }];
@@ -0,0 +1,2 @@
1
+ /** Marks `<html data-pointer>` from a pointer press until the next Tab. Browsers treat every focused text field as `:focus-visible`, so text controls call this and draw their ring with `has-keyboard-focus:`, which skips focus that came from the pointer. */
2
+ export declare function useFocusSource(): void;
@@ -0,0 +1,12 @@
1
+ /** Shapes of the icons more than one component draws, on the 24 grid. Put them in an `Icon`. */
2
+ export declare const icons: {
3
+ close: import("react").JSX.Element;
4
+ chevronLeft: import("react").JSX.Element;
5
+ chevronRight: import("react").JSX.Element;
6
+ chevronsUpDown: import("react").JSX.Element;
7
+ search: import("react").JSX.Element;
8
+ alert: import("react").JSX.Element;
9
+ more: import("react").JSX.Element;
10
+ plus: import("react").JSX.Element;
11
+ minus: import("react").JSX.Element;
12
+ };
@@ -0,0 +1,105 @@
1
+ export { Accordion, type AccordionProps } from "./components/layout/Accordion";
2
+ export { ActionMenu, type ActionMenuProps } from "./components/actions/ActionMenu";
3
+ export { Alert, type AlertProps } from "./components/feedback/Alert";
4
+ export { AlertDialog, type AlertDialogProps } from "./components/overlays/AlertDialog";
5
+ export { AppShell, type AppShellProps } from "./components/layout/AppShell";
6
+ export { Avatar, type AvatarProps } from "./components/data-display/Avatar";
7
+ export { AvatarGroup, type AvatarGroupProps } from "./components/data-display/AvatarGroup";
8
+ export { Badge, type BadgeProps } from "./components/feedback/Badge";
9
+ export { BarChart, type BarChartProps } from "./components/data-display/BarChart";
10
+ export { BottomSheet, type BottomSheetProps } from "./components/overlays/BottomSheet";
11
+ export { Breadcrumbs, type BreadcrumbsProps } from "./components/navigation/Breadcrumbs";
12
+ export { Button, type ButtonProps } from "./components/actions/Button";
13
+ export { Card, type CardProps } from "./components/layout/Card";
14
+ export { Carousel, type CarouselProps } from "./components/media/Carousel";
15
+ export { Checkbox, type CheckboxProps } from "./components/inputs/Checkbox";
16
+ export { CheckboxGroup, type CheckboxGroupProps } from "./components/inputs/CheckboxGroup";
17
+ export { CollapsibleSidebar, type CollapsibleSidebarProps } from "./components/navigation/CollapsibleSidebar";
18
+ export { ColorPicker, type ColorPickerProps } from "./components/inputs/ColorPicker";
19
+ export { ColorSwatches, type ColorSwatchesProps } from "./components/inputs/ColorSwatches";
20
+ export { Combobox, type ComboboxProps } from "./components/inputs/Combobox";
21
+ export { CommandPalette, type CommandPaletteProps } from "./components/actions/CommandPalette";
22
+ export { CompareSlider, type CompareSliderProps } from "./components/media/CompareSlider";
23
+ export { ContextMenu, type ContextMenuProps } from "./components/overlays/ContextMenu";
24
+ export { CopyButton, type CopyButtonProps } from "./components/actions/CopyButton";
25
+ export { DataTable, type DataTableProps } from "./components/data-display/DataTable";
26
+ export { DatePicker, type DatePickerProps } from "./components/inputs/DatePicker";
27
+ export { DateRangePicker, type DateRangePickerProps } from "./components/inputs/DateRangePicker";
28
+ export { DescriptionList, type DescriptionListProps } from "./components/data-display/DescriptionList";
29
+ export { Dialog, type DialogProps } from "./components/overlays/Dialog";
30
+ export { DonutChart, type DonutChartProps } from "./components/data-display/DonutChart";
31
+ export { Drawer, type DrawerProps } from "./components/overlays/Drawer";
32
+ export { EditableText, type EditableTextProps } from "./components/inputs/EditableText";
33
+ export { EmptyState, type EmptyStateProps } from "./components/feedback/EmptyState";
34
+ export { ExpandableCard, type ExpandableCardProps } from "./components/layout/ExpandableCard";
35
+ export { Field, type FieldProps } from "./components/inputs/Field";
36
+ export { Fieldset, type FieldsetProps } from "./components/inputs/Fieldset";
37
+ export { FileUpload, type FileUploadProps } from "./components/inputs/FileUpload";
38
+ export { Footer, type FooterProps } from "./components/layout/Footer";
39
+ export { Header, type HeaderProps } from "./components/layout/Header";
40
+ export { HoldButton, type HoldButtonProps } from "./components/actions/HoldButton";
41
+ export { Icon, type IconProps } from "./components/data-display/Icon";
42
+ export { IconButton, type IconButtonProps } from "./components/actions/IconButton";
43
+ export { Image, type ImageProps } from "./components/media/Image";
44
+ export { Input, type InputProps } from "./components/inputs/Input";
45
+ export { Island, type IslandProps } from "./components/overlays/Island";
46
+ export { Kbd, type KbdProps } from "./components/data-display/Kbd";
47
+ export { Lightbox, type LightboxProps } from "./components/media/Lightbox";
48
+ export { LineChart, type LineChartProps } from "./components/data-display/LineChart";
49
+ export { Link, LinkProvider, type LinkProps, type LinkProviderProps } from "./components/navigation/Link";
50
+ export { List, type ListProps } from "./components/data-display/List";
51
+ export { LoadingState, type LoadingStateProps } from "./components/feedback/LoadingState";
52
+ export { MorphButton, type MorphButtonProps } from "./components/actions/MorphButton";
53
+ export { MultiSelect, type MultiSelectProps } from "./components/inputs/MultiSelect";
54
+ export { MusicPlayer, type MusicPlayerProps } from "./components/media/MusicPlayer";
55
+ export { NotificationList, type NotificationListProps } from "./components/feedback/NotificationList";
56
+ export { NumberInput, type NumberInputProps } from "./components/inputs/NumberInput";
57
+ export { NumberStepper, type NumberStepperProps } from "./components/inputs/NumberStepper";
58
+ export { NumberTicker, type NumberTickerProps } from "./components/data-display/NumberTicker";
59
+ export { OTPInput, type OTPInputProps } from "./components/inputs/OTPInput";
60
+ export { PageDots, type PageDotsProps } from "./components/navigation/PageDots";
61
+ export { PageHeader, type PageHeaderProps } from "./components/layout/PageHeader";
62
+ export { Pagination, type PaginationProps } from "./components/navigation/Pagination";
63
+ export { PasswordInput, type PasswordInputProps } from "./components/inputs/PasswordInput";
64
+ export { Popover, type PopoverProps } from "./components/overlays/Popover";
65
+ export { ProgressBar, type ProgressBarProps } from "./components/feedback/ProgressBar";
66
+ export { ProgressRing, type ProgressRingProps } from "./components/feedback/ProgressRing";
67
+ export { RadioGroup, type RadioGroupProps } from "./components/inputs/RadioGroup";
68
+ export { RangeSlider, type RangeSliderProps } from "./components/inputs/RangeSlider";
69
+ export { Rating, type RatingProps } from "./components/inputs/Rating";
70
+ export { SearchField, type SearchFieldProps } from "./components/inputs/SearchField";
71
+ export { SegmentedTabs, type SegmentedTabsProps } from "./components/navigation/SegmentedTabs";
72
+ export { Select, type SelectProps } from "./components/inputs/Select";
73
+ export { SelectionBar, type SelectionBarProps } from "./components/actions/SelectionBar";
74
+ export { Separator, type SeparatorProps } from "./components/layout/Separator";
75
+ export { SidebarNav, type SidebarNavProps } from "./components/navigation/SidebarNav";
76
+ export { Skeleton, type SkeletonProps } from "./components/feedback/Skeleton";
77
+ export { Slider, type SliderProps } from "./components/inputs/Slider";
78
+ export { Spinner, type SpinnerProps } from "./components/feedback/Spinner";
79
+ export { SplitPane, type SplitPaneProps } from "./components/layout/SplitPane";
80
+ export { StatTile, type StatTileProps } from "./components/data-display/StatTile";
81
+ export { StatusBadge, type StatusBadgeProps } from "./components/feedback/StatusBadge";
82
+ export { SwipeButton, type SwipeButtonProps } from "./components/actions/SwipeButton";
83
+ export { TabBar, type TabBarProps } from "./components/navigation/TabBar";
84
+ export { Table, type TableProps, type TableSort } from "./components/data-display/Table";
85
+ export { Tabs, type TabsProps } from "./components/navigation/Tabs";
86
+ export { Tag, type TagProps } from "./components/data-display/Tag";
87
+ export { TagInput, type TagInputProps } from "./components/inputs/TagInput";
88
+ export { Textarea, type TextareaProps } from "./components/inputs/Textarea";
89
+ export { TextField, type TextFieldProps } from "./components/inputs/TextField";
90
+ export { ThemeToggle, type ThemeToggleProps } from "./components/inputs/ThemeToggle";
91
+ export { Timeline, type TimelineProps } from "./components/data-display/Timeline";
92
+ export { TimePicker, type TimePickerProps } from "./components/inputs/TimePicker";
93
+ export { TimeWheel, type TimeWheelProps } from "./components/inputs/TimeWheel";
94
+ export { Toast, type ToastProps } from "./components/feedback/Toast";
95
+ export { ToastStack, type ToastStackProps } from "./components/feedback/ToastStack";
96
+ export { Toggle, type ToggleProps } from "./components/inputs/Toggle";
97
+ export { ToggleGroup, type ToggleGroupProps } from "./components/inputs/ToggleGroup";
98
+ export { Toolbar, type ToolbarProps } from "./components/actions/Toolbar";
99
+ export { Tooltip, type TooltipProps } from "./components/overlays/Tooltip";
100
+ export { TreeView, type TreeViewProps } from "./components/data-display/TreeView";
101
+ export { UnderlineTabs, type UnderlineTabsProps } from "./components/navigation/UnderlineTabs";
102
+ export { VideoControls, type VideoControlsProps } from "./components/media/VideoControls";
103
+ export { VolumeSlider, type VolumeSliderProps } from "./components/media/VolumeSlider";
104
+ export { WaveformScrubber, type WaveformScrubberProps } from "./components/media/WaveformScrubber";
105
+ export { WizardSteps, type WizardStepsProps } from "./components/navigation/WizardSteps";