@ngrok/mantle 0.79.3 → 0.80.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 (193) hide show
  1. package/dist/accordion.d.ts +169 -12
  2. package/dist/accordion.js +1 -1
  3. package/dist/agent.json +1 -1
  4. package/dist/alert-dialog.d.ts +496 -30
  5. package/dist/alert-dialog.js +1 -1
  6. package/dist/alert.d.ts +129 -9
  7. package/dist/alert.js +1 -1
  8. package/dist/anchor-_2meGDfj.js +1 -0
  9. package/dist/anchor.d.ts +2 -2
  10. package/dist/anchor.js +1 -1
  11. package/dist/as-child-D23mGo4f.d.ts +49 -0
  12. package/dist/badge.d.ts +44 -5
  13. package/dist/badge.js +1 -1
  14. package/dist/breadcrumb.d.ts +214 -14
  15. package/dist/breadcrumb.js +1 -1
  16. package/dist/button-5WsvzIQ6.js +1 -0
  17. package/dist/{button-DcXOWUYo.d.ts → button-BPMwa2jN.d.ts} +3 -3
  18. package/dist/button-D9n09xUg.js +1 -0
  19. package/dist/button.d.ts +3 -3
  20. package/dist/button.js +1 -1
  21. package/dist/calendar.d.ts +0 -3
  22. package/dist/calendar.js +1 -1
  23. package/dist/card.d.ts +146 -9
  24. package/dist/card.js +1 -1
  25. package/dist/centered-layout.d.ts +224 -8
  26. package/dist/centered-layout.js +1 -1
  27. package/dist/checkbox-Cq17y0-R.js +1 -0
  28. package/dist/checkbox.d.ts +12 -10
  29. package/dist/checkbox.js +1 -1
  30. package/dist/choice-Cc8dA5r8.js +1 -0
  31. package/dist/choice-Ct0KK8jw.d.ts +269 -0
  32. package/dist/choice.d.ts +1 -252
  33. package/dist/choice.js +1 -1
  34. package/dist/code-block.d.ts +270 -50
  35. package/dist/code-block.js +6 -6
  36. package/dist/code.d.ts +3 -2
  37. package/dist/code.js +1 -1
  38. package/dist/combobox.d.ts +190 -11
  39. package/dist/combobox.js +1 -1
  40. package/dist/command.d.ts +285 -81
  41. package/dist/command.js +1 -1
  42. package/dist/compose-refs-BdBMM9ga.js +1 -0
  43. package/dist/data-table.d.ts +33 -5
  44. package/dist/data-table.js +1 -1
  45. package/dist/description-list.d.ts +79 -6
  46. package/dist/description-list.js +1 -1
  47. package/dist/dialog-CQ2C6vkE.js +1 -0
  48. package/dist/dialog.d.ts +239 -18
  49. package/dist/dialog.js +1 -1
  50. package/dist/dropdown-menu-CSCDdA3K.js +1 -0
  51. package/dist/{dropdown-menu-DP_Ne9Mr.d.ts → dropdown-menu-CoyozLzy.d.ts} +170 -29
  52. package/dist/dropdown-menu.d.ts +2 -2
  53. package/dist/dropdown-menu.js +1 -1
  54. package/dist/empty.d.ts +1 -1
  55. package/dist/empty.js +1 -1
  56. package/dist/field.d.ts +596 -45
  57. package/dist/field.js +1 -1
  58. package/dist/flag.d.ts +0 -3
  59. package/dist/flag.js +1 -1
  60. package/dist/hooks.d.ts +3 -4
  61. package/dist/hooks.js +1 -1
  62. package/dist/hover-card.d.ts +54 -4
  63. package/dist/hover-card.js +1 -1
  64. package/dist/{icon-Cevjo93X.d.ts → icon-BDqpcZ-n.d.ts} +1 -1
  65. package/dist/icon-CGgMKpJg.js +1 -0
  66. package/dist/{icon-button-BvQvT790.d.ts → icon-button-C1AfGnQx.d.ts} +6 -60
  67. package/dist/icon-button-DiOhreJD.js +1 -0
  68. package/dist/icon.d.ts +2 -2
  69. package/dist/icon.js +1 -1
  70. package/dist/icons.d.ts +5 -13
  71. package/dist/icons.js +1 -1
  72. package/dist/{in-view-nkSOdED2.d.ts → in-view-DDEGUKDR.d.ts} +17 -9
  73. package/dist/index-B8mIWKIU.d.ts +211 -0
  74. package/dist/{index-Rv8RL7xy.d.ts → index-BtwKJTLq.d.ts} +1 -1
  75. package/dist/{index-BSAizFod.d.ts → index-C2jj8U4a.d.ts} +5 -5
  76. package/dist/index-CdPXa9h1.d.ts +1 -0
  77. package/dist/{index-D47aqlpz.d.ts → index-DA4ig3gj.d.ts} +1 -1
  78. package/dist/input-CVyAVbim.js +1 -0
  79. package/dist/{types-C19IR7jf.d.ts → input-DV9M6K4v.d.ts} +42 -2
  80. package/dist/input.d.ts +4 -55
  81. package/dist/input.js +1 -1
  82. package/dist/{label-v2-bv98k.d.ts → label-C6YH9skg.d.ts} +8 -6
  83. package/dist/label-D-D11mlp.js +1 -0
  84. package/dist/label.d.ts +1 -1
  85. package/dist/label.js +1 -1
  86. package/dist/list.d.ts +150 -6
  87. package/dist/list.js +1 -1
  88. package/dist/llms.txt +1 -1
  89. package/dist/main.d.ts +20 -4
  90. package/dist/main.js +1 -1
  91. package/dist/media-object.d.ts +27 -4
  92. package/dist/media-object.js +1 -1
  93. package/dist/multi-select.d.ts +312 -15
  94. package/dist/multi-select.js +1 -1
  95. package/dist/otp-input.d.ts +129 -5
  96. package/dist/otp-input.js +1 -1
  97. package/dist/pagination.d.ts +70 -6
  98. package/dist/pagination.js +1 -1
  99. package/dist/popover-CBMADtjV.js +1 -0
  100. package/dist/popover.d.ts +1 -181
  101. package/dist/popover.js +1 -1
  102. package/dist/primitive-CJRIlrLz.d.ts +31 -0
  103. package/dist/primitive-DCPHJsRs.js +1 -0
  104. package/dist/progress.js +1 -1
  105. package/dist/qr-code.d.ts +113 -5
  106. package/dist/qr-code.js +1 -1
  107. package/dist/radio-group.d.ts +128 -23
  108. package/dist/radio-group.js +1 -1
  109. package/dist/sandboxed-on-click.d.ts +2 -2
  110. package/dist/sandboxed-on-click.js +1 -1
  111. package/dist/select-SR_9-bxA.js +1 -0
  112. package/dist/select-idm1jy7y.d.ts +600 -0
  113. package/dist/select.d.ts +1 -1
  114. package/dist/select.js +1 -1
  115. package/dist/selectable-list.d.ts +252 -298
  116. package/dist/selectable-list.js +1 -1
  117. package/dist/separator-B5UmkVRL.d.ts +75 -0
  118. package/dist/separator-bpE_kooz.js +1 -0
  119. package/dist/separator.d.ts +1 -52
  120. package/dist/separator.js +1 -1
  121. package/dist/sheet.d.ts +295 -21
  122. package/dist/sheet.js +1 -1
  123. package/dist/skeleton-CsbUHbBA.js +1 -0
  124. package/dist/skeleton.d.ts +4 -7
  125. package/dist/skeleton.js +1 -1
  126. package/dist/skip-to-main-link.d.ts +24 -4
  127. package/dist/skip-to-main-link.js +1 -1
  128. package/dist/slot-CDk0Bb9z.js +1 -0
  129. package/dist/slot.d.ts +1 -1
  130. package/dist/slot.js +1 -1
  131. package/dist/{sort-BPX2Fk9t.js → sort-B_DDQcVD.js} +1 -1
  132. package/dist/split-button.d.ts +28 -13
  133. package/dist/split-button.js +1 -1
  134. package/dist/{svg-only-BFeFS1aa.d.ts → svg-only-CdI_v82i.d.ts} +1 -1
  135. package/dist/svg-only-d-nMCfAI.js +1 -0
  136. package/dist/switch.d.ts +9 -6
  137. package/dist/switch.js +1 -1
  138. package/dist/table-DUSvU_Jw.d.ts +875 -0
  139. package/dist/table-GDkapNFi.js +1 -0
  140. package/dist/table.d.ts +1 -1
  141. package/dist/table.js +1 -1
  142. package/dist/tabs.d.ts +135 -21
  143. package/dist/tabs.js +1 -1
  144. package/dist/text-area.d.ts +1 -1
  145. package/dist/text-area.js +1 -1
  146. package/dist/theme-provider-BftkIiZn.js +1 -0
  147. package/dist/theme-switcher.d.ts +110 -29
  148. package/dist/theme-switcher.js +1 -1
  149. package/dist/theme-wVnzzx2F.js +1 -0
  150. package/dist/theme.d.ts +53 -14
  151. package/dist/theme.js +1 -1
  152. package/dist/toast-DKgMRv4F.js +1 -0
  153. package/dist/toast.d.ts +98 -10
  154. package/dist/toast.js +1 -1
  155. package/dist/tooltip.d.ts +28 -1
  156. package/dist/tooltip.js +1 -1
  157. package/dist/{traffic-policy-file-0g5RXFqu.js → traffic-policy-file-CF1lbWtp.js} +1 -1
  158. package/dist/types.d.ts +2 -2
  159. package/dist/utils.d.ts +1 -1
  160. package/dist/utils.js +1 -1
  161. package/dist/virtual-UrzmaSQm.js +1 -0
  162. package/dist/well.d.ts +3 -3
  163. package/dist/well.js +1 -1
  164. package/package.json +3 -3
  165. package/dist/anchor-C_tjSVy6.js +0 -1
  166. package/dist/as-child-CYEVu1WY.d.ts +0 -23
  167. package/dist/button-5t6-JS_I.js +0 -1
  168. package/dist/button-ClC60Nzg.js +0 -1
  169. package/dist/checkbox-DJ2xl7Rc.js +0 -1
  170. package/dist/choice-DOdyNzFC.js +0 -1
  171. package/dist/compose-refs-Cjf2gfB8.js +0 -1
  172. package/dist/dialog-vxLIvB8M.js +0 -1
  173. package/dist/dropdown-menu-Bt1aKF1g.js +0 -1
  174. package/dist/icon-CDtYjF_H.js +0 -1
  175. package/dist/icon-button-DV2-GZHf.js +0 -1
  176. package/dist/index-g2rfwNCH.d.ts +0 -1
  177. package/dist/input-Ct1YOqSy.js +0 -1
  178. package/dist/label-BMlHW_2D.js +0 -1
  179. package/dist/popover-D5WxxnBY.js +0 -1
  180. package/dist/primitive-C64-m48O.d.ts +0 -13
  181. package/dist/primitive-IKruV2iB.js +0 -1
  182. package/dist/select-Bwt2YduR.d.ts +0 -345
  183. package/dist/select-D-5u0Blc.js +0 -1
  184. package/dist/separator-kBnnv3Cw.js +0 -1
  185. package/dist/skeleton-Bu3tgNcW.js +0 -1
  186. package/dist/slot-DmPrjM7N.js +0 -1
  187. package/dist/svg-only-DDx6FtJd.js +0 -1
  188. package/dist/table-CPH2md2-.js +0 -1
  189. package/dist/table-CwFHXC-G.d.ts +0 -414
  190. package/dist/theme-D3MDng6U.js +0 -1
  191. package/dist/theme-provider-C9zpDyJW.js +0 -1
  192. package/dist/toast-BsCjaMVS.js +0 -1
  193. package/dist/virtual-DZMBu7Ch.js +0 -1
@@ -0,0 +1,211 @@
1
+ import { ComponentProps } from "react";
2
+ import * as PopoverPrimitive from "@radix-ui/react-popover";
3
+ //#region src/components/popover/popover.d.ts
4
+ type PopoverContentProps = ComponentProps<typeof PopoverPrimitive.Content> & {
5
+ /**
6
+ * The preferred width of the `PopoverContent` as a tailwind `max-w-` class.
7
+ *
8
+ * By default, a `Popover`'s content width is responsive with a default
9
+ * preferred width: the maximum width of the `PopoverContent`
10
+ *
11
+ * @default `max-w-72`
12
+ */
13
+ preferredWidth?: `max-w-${string}`;
14
+ };
15
+ /**
16
+ * The content to render inside the popover.
17
+ *
18
+ * `Popover.Content` renders at Tailwind `z-50`, Mantle's shared floating
19
+ * z-index. When multiple shared layers are open, the most recently mounted
20
+ * layer renders on top.
21
+ *
22
+ * @see https://mantle.ngrok.com/components/overlays/popover#popovercontent
23
+ *
24
+ * @example
25
+ * ```tsx
26
+ * <Popover.Root>
27
+ * <Popover.Trigger asChild>
28
+ * <Button type="button" appearance="outlined" intent="neutral">
29
+ * Open Popover
30
+ * </Button>
31
+ * </Popover.Trigger>
32
+ * <Popover.Content>
33
+ * <p>This is the popover content.</p>
34
+ * </Popover.Content>
35
+ * </Popover.Root>
36
+ * ```
37
+ */
38
+ declare const Content: {
39
+ ({ align, className, onClick, preferredWidth, ref, sideOffset, ...props }: PopoverContentProps): import("react").JSX.Element;
40
+ displayName: string;
41
+ };
42
+ /**
43
+ * A floating overlay that displays rich content in a portal, triggered by a button.
44
+ *
45
+ * Use `Popover` for INTERACTIVE overlay content — small forms, settings
46
+ * menus, color pickers, action lists. The user opens it deliberately
47
+ * (click/tap or focus + space). For short, non-interactive label hints
48
+ * triggered by hover, use `Tooltip` instead. For non-essential preview
49
+ * content shown on hover, use `HoverCard`.
50
+ *
51
+ * `Popover` is a non-modal dialog by default: focus moves into the content
52
+ * when it opens, `Escape` closes and returns focus to the trigger, clicking
53
+ * outside dismisses, and the page (body and any scroll containers) continues
54
+ * to scroll normally. Pass `modal` on `Popover.Root` to trap focus inside
55
+ * the content, block interaction with the rest of the page, and lock body
56
+ * scroll while the popover is open.
57
+ *
58
+ * `Popover.Content` renders at Tailwind `z-50`, Mantle's shared floating
59
+ * z-index. When multiple shared layers are open, the most recently mounted
60
+ * layer renders on top.
61
+ *
62
+ * @see https://mantle.ngrok.com/components/overlays/popover
63
+ * @see https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/
64
+ *
65
+ * @example
66
+ * Composition:
67
+ * ```
68
+ * Popover.Root
69
+ * ├── Popover.Trigger
70
+ * ├── Popover.Anchor
71
+ * └── Popover.Content
72
+ * └── Popover.Close
73
+ * ```
74
+ *
75
+ * @example
76
+ * ```tsx
77
+ * <Popover.Root>
78
+ * <Popover.Trigger asChild>
79
+ * <Button type="button" appearance="outlined" intent="neutral">
80
+ * Open Popover
81
+ * </Button>
82
+ * </Popover.Trigger>
83
+ * <Popover.Content>
84
+ * <p>This is the popover content.</p>
85
+ * </Popover.Content>
86
+ * </Popover.Root>
87
+ * ```
88
+ */
89
+ declare const Popover: {
90
+ /**
91
+ * The root, stateful component that manages the open/closed state of the popover.
92
+ *
93
+ * `Popover.Content` renders at Tailwind `z-50`, Mantle's shared floating
94
+ * z-index. When multiple shared layers are open, the most recently mounted
95
+ * layer renders on top.
96
+ *
97
+ * @see https://mantle.ngrok.com/components/overlays/popover#popoverroot
98
+ *
99
+ * @example
100
+ * ```tsx
101
+ * <Popover.Root>
102
+ * <Popover.Trigger asChild>
103
+ * <Button type="button" appearance="outlined" intent="neutral">Open popover</Button>
104
+ * </Popover.Trigger>
105
+ * <Popover.Content>
106
+ * <p>This is the popover content.</p>
107
+ * </Popover.Content>
108
+ * </Popover.Root>
109
+ * ```
110
+ */
111
+ readonly Root: import("react").FC<PopoverPrimitive.PopoverProps>;
112
+ /**
113
+ * An optional element to position the PopoverContent against. If not used, content positions alongside the trigger.
114
+ *
115
+ * @see https://mantle.ngrok.com/components/overlays/popover#popoveranchor
116
+ *
117
+ * @example
118
+ * ```tsx
119
+ * <Popover.Root>
120
+ * <Popover.Anchor asChild>
121
+ * <div>Position relative to this element</div>
122
+ * </Popover.Anchor>
123
+ * <Popover.Trigger asChild>
124
+ * <Button type="button" appearance="outlined" intent="neutral">Open Popover</Button>
125
+ * </Popover.Trigger>
126
+ * <Popover.Content>
127
+ * <p>This popover is positioned relative to the anchor.</p>
128
+ * <Popover.Close asChild>
129
+ * <Button type="button" appearance="outlined" intent="neutral">Close</Button>
130
+ * </Popover.Close>
131
+ * </Popover.Content>
132
+ * </Popover.Root>
133
+ * ```
134
+ */
135
+ readonly Anchor: import("react").ForwardRefExoticComponent<PopoverPrimitive.PopoverAnchorProps & import("react").RefAttributes<HTMLDivElement>>;
136
+ /**
137
+ * A button that closes an open popover. Can be placed anywhere within the popover content.
138
+ *
139
+ * @see https://mantle.ngrok.com/components/overlays/popover#popoverclose
140
+ *
141
+ * @example
142
+ * ```tsx
143
+ * <Popover.Root>
144
+ * <Popover.Trigger asChild>
145
+ * <Button type="button" appearance="outlined" intent="neutral">Settings</Button>
146
+ * </Popover.Trigger>
147
+ * <Popover.Content>
148
+ * <div className="flex items-center justify-between">
149
+ * <Text>Settings Panel</Text>
150
+ * <Popover.Close asChild>
151
+ * <IconButton type="button" appearance="ghost" intent="neutral" size="sm" label="Close" icon={<XIcon />} />
152
+ * </Popover.Close>
153
+ * </div>
154
+ * <Text>Configure your preferences here.</Text>
155
+ * </Popover.Content>
156
+ * </Popover.Root>
157
+ * ```
158
+ */
159
+ readonly Close: import("react").ForwardRefExoticComponent<PopoverPrimitive.PopoverCloseProps & import("react").RefAttributes<HTMLButtonElement>>;
160
+ /**
161
+ * The content to render inside the popover. Appears in a portal with rich styling and animations.
162
+ *
163
+ * `Popover.Content` renders at Tailwind `z-50`, Mantle's shared floating
164
+ * z-index. When multiple shared layers are open, the most recently mounted
165
+ * layer renders on top.
166
+ *
167
+ * @see https://mantle.ngrok.com/components/overlays/popover#popovercontent
168
+ *
169
+ * @example
170
+ * ```tsx
171
+ * <Popover.Root>
172
+ * <Popover.Trigger asChild>
173
+ * <Button type="button" appearance="outlined" intent="neutral">Show Info</Button>
174
+ * </Popover.Trigger>
175
+ * <Popover.Content side="top" align="center">
176
+ * <div className="space-y-2">
177
+ * <Text weight="strong">Additional Information</Text>
178
+ * <Text>This is the content inside the popover.</Text>
179
+ * <Button type="button" appearance="filled" intent="neutral" size="sm">Action</Button>
180
+ * </div>
181
+ * </Popover.Content>
182
+ * </Popover.Root>
183
+ * ```
184
+ */
185
+ readonly Content: typeof Content;
186
+ /**
187
+ * The trigger button that opens the popover when clicked or focused.
188
+ *
189
+ * @see https://mantle.ngrok.com/components/overlays/popover#popovertrigger
190
+ *
191
+ * @example
192
+ * ```tsx
193
+ * <Popover.Root>
194
+ * <Popover.Trigger asChild>
195
+ * <Button type="button" appearance="outlined" intent="neutral">
196
+ * Options
197
+ * </Button>
198
+ * </Popover.Trigger>
199
+ * <Popover.Content>
200
+ * <div className="space-y-2">
201
+ * <Button type="button" appearance="ghost" intent="neutral">Edit</Button>
202
+ * <Button type="button" appearance="ghost" intent="danger">Delete</Button>
203
+ * </div>
204
+ * </Popover.Content>
205
+ * </Popover.Root>
206
+ * ```
207
+ */
208
+ readonly Trigger: import("react").ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
209
+ };
210
+ //#endregion
211
+ export { Popover as t };
@@ -20,6 +20,6 @@ type Props = ComponentProps<typeof Slot> & WithDataSlot;
20
20
  * </Slot>
21
21
  * ```
22
22
  */
23
- declare const Slot$1: import("react").ForwardRefExoticComponent<Omit<Props, "ref"> & import("react").RefAttributes<HTMLElement>>;
23
+ declare const Slot$1: ({ children, className, "data-slot": dataSlot, ref, ...props }: Props) => string | number | bigint | boolean | import("react").JSX.Element | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | Iterable<import("react").ReactNode> | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactPortal | null | undefined> | null | undefined;
24
24
  //#endregion
25
25
  export { Slot$1 as t };
@@ -1,7 +1,7 @@
1
- import { t as WithAsChild } from "./as-child-CYEVu1WY.js";
2
- import { r as VariantProps } from "./index-D47aqlpz.js";
3
- import "./button-DcXOWUYo.js";
4
- import "./icon-button-BvQvT790.js";
1
+ import { n as WithAsChild } from "./as-child-D23mGo4f.js";
2
+ import { r as VariantProps } from "./index-DA4ig3gj.js";
3
+ import "./button-BPMwa2jN.js";
4
+ import "./icon-button-C1AfGnQx.js";
5
5
  import { ComponentProps } from "react";
6
6
  //#region src/components/button/button-group.d.ts
7
7
  declare const buttonGroupVariants: (props?: ({
@@ -26,6 +26,6 @@ type ButtonGroupProps = ComponentProps<"div"> & ButtonGroupVariants & WithAsChil
26
26
  * </ButtonGroup>
27
27
  * ```
28
28
  */
29
- declare const ButtonGroup: import("react").ForwardRefExoticComponent<Omit<ButtonGroupProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
29
+ declare const ButtonGroup: ({ appearance, asChild, className, children, ref, ...props }: ButtonGroupProps) => import("react").JSX.Element;
30
30
  //#endregion
31
31
  export { ButtonGroupProps as n, ButtonGroup as t };
@@ -0,0 +1 @@
1
+ import "./dropdown-menu-CoyozLzy.js";
@@ -1,4 +1,4 @@
1
- import "./as-child-CYEVu1WY.js";
1
+ import "./as-child-D23mGo4f.js";
2
2
  import "./with-style-props-Dq5Vntqy.js";
3
3
  import { CSSProperties } from "react";
4
4
  import { VariantProps } from "class-variance-authority";
@@ -0,0 +1 @@
1
+ import{t as e}from"./compose-refs-BdBMM9ga.js";import{t}from"./cx-IiQEAKf5.js";import{t as n}from"./icon-CGgMKpJg.js";import{t as r}from"./clsx-DUGZgXfJ.js";import{a as i,r as a}from"./validation-Bpptk_9t.js";import{createContext as o,useContext as s,useMemo as c,useRef as l}from"react";import{jsx as u,jsxs as d}from"react/jsx-runtime";import{CheckCircleIcon as f}from"@phosphor-icons/react/CheckCircle";import{WarningIcon as p}from"@phosphor-icons/react/Warning";import{WarningDiamondIcon as m}from"@phosphor-icons/react/WarningDiamond";const h=({children:e,className:t,ref:n,...r})=>{let i=!!e,a=l(null);return i?u(v,{className:t,forwardedRef:n,innerRef:a,...r,children:e}):u(v,{...r,className:t,forwardedRef:n,innerRef:a,children:u(g,{...r})})},g=({"aria-invalid":n,className:r,ref:o,validation:c,...l})=>{let{"aria-invalid":d,forwardedRef:f,innerRef:p,validation:m,...h}=s(_),g=i(),{ariaInvalid:v,validation:y}=a({"aria-invalid":d??n,validation:m??c??g}),b={...h,...l,type:l.type??h.type??`text`};return u(`input`,{"aria-invalid":v,"data-slot":`input-capture`,"data-validation":y,className:t(`placeholder:text-placeholder min-w-0 flex-1 bg-transparent text-left autofill:shadow-[inset_0_0_0px_1000px_var(--color-blue-50)] focus:outline-hidden`,r),ref:e(o,f,p),...b})},_=o({validation:void 0,innerRef:{current:null}}),v=({"aria-invalid":e,"aria-disabled":n,"data-slot":r=`input`,children:o,className:s,disabled:l,forwardedRef:f,innerRef:p,style:m,type:h,validation:g,...v})=>{let b=i(),{validation:x}=a({"aria-invalid":e,validation:g??b}),S=c(()=>({"aria-invalid":e,"aria-disabled":n,disabled:l,type:h,validation:g,...v,forwardedRef:f,innerRef:p}),[e,n,l,h,g,v,f,p]);return u(_.Provider,{value:S,children:d(`div`,{role:`none`,"data-slot":r,"data-disabled":(l??n)||void 0,"data-validation":x||void 0,className:t(`pointer-coarse:text-base h-9 text-sm`,`bg-form relative flex w-full items-center gap-1.5 rounded-md border px-3 py-2 file:border-0 file:bg-transparent file:text-sm file:font-medium focus-within:outline-hidden focus-within:ring-4`,`data-disabled:opacity-50`,`has-[input:not(:first-child)]:ps-2.5 has-[input:not(:last-child)]:pe-2.5 [&>:not(input)]:shrink-0 [&_svg]:size-5`,`border-form text-strong focus-within:border-accent-600 focus-within:ring-focus-accent`,`data-validation-success:border-success-600 focus-within:data-validation-success:border-success-600 focus-within:data-validation-success:ring-focus-success`,`data-validation-warning:border-warning-600 focus-within:data-validation-warning:border-warning-600 focus-within:data-validation-warning:ring-focus-warning`,`data-validation-error:border-danger-600 focus-within:data-validation-error:border-danger-600 focus-within:data-validation-error:ring-focus-danger`,`autofill:shadow-[inset_0_0_0px_1000px_var(--color-blue-50)] has-autofill:bg-blue-50 has-autofill:[-webkit-text-fill-color:var(--text-color-strong)]`,s),onMouseDown:e=>{e.target!==p?.current&&e.preventDefault()},onClick:()=>{p?.current?.focus()},onKeyDown:()=>{p?.current!==document.activeElement&&p?.current?.focus()},style:m,children:[o,u(y,{name:v.name,validation:x})]})})},y=({name:e,validation:t})=>{switch(t){case`error`:return d(`div`,{className:`text-danger-600 order-last select-none`,children:[u(`span`,{className:`sr-only`,children:r(`The value entered for the`,e,`input has failed validation.`)}),u(n,{svg:u(p,{"aria-hidden":!0,weight:`fill`})})]});case`success`:return u(`div`,{className:`text-success-600 order-last select-none`,children:u(n,{svg:u(f,{weight:`fill`})})});case`warning`:return u(`div`,{className:`text-warning-600 order-last select-none`,children:u(n,{svg:u(m,{weight:`fill`})})});default:return null}};export{g as n,h as t};
@@ -1,4 +1,5 @@
1
- import "./validation-7QeiTFwl.js";
1
+ import { o as WithValidation } from "./validation-7QeiTFwl.js";
2
+ import { ComponentProps, PropsWithChildren } from "react";
2
3
  //#region src/components/input/types.d.ts
3
4
  /**
4
5
  * (Not a Boolean attribute!) The autocomplete attribute takes as its value a space-separated string that describes what,
@@ -45,4 +46,43 @@ type WithInputType = {
45
46
  type?: InputType;
46
47
  };
47
48
  //#endregion
48
- export { WithInputType as i, InputType as n, WithAutoComplete as r, AutoComplete as t };
49
+ //#region src/components/input/input.d.ts
50
+ type BaseProps = WithAutoComplete & WithInputType & WithValidation;
51
+ /**
52
+ * The props for the `Input` component.
53
+ */
54
+ type InputProps = Omit<ComponentProps<"input">, "autoComplete" | "type"> & BaseProps & PropsWithChildren;
55
+ /**
56
+ * Used to create interactive controls for web-based forms in order to accept data from the user.
57
+ * A versatile input element that supports various types, validation states, and can be composed with other elements.
58
+ *
59
+ * @see https://mantle.ngrok.com/components/forms/input
60
+ *
61
+ * @example
62
+ * ```tsx
63
+ * <Input
64
+ * type="email"
65
+ * placeholder="Enter your email"
66
+ * validation="success"
67
+ * />
68
+ * ```
69
+ */
70
+ declare const Input: ({ children, className, ref, ...props }: InputProps) => import("react").JSX.Element;
71
+ type InputCaptureProps = Omit<ComponentProps<"input">, "autoComplete" | "type"> & BaseProps;
72
+ /**
73
+ * The actual <input /> element that captures user input.
74
+ * Used internally by Input component or when you need direct control over the input element.
75
+ *
76
+ * @see https://mantle.ngrok.com/components/forms/input
77
+ *
78
+ * @example
79
+ * ```tsx
80
+ * <Input>
81
+ * <InputCapture />
82
+ * <Icon svg={<SearchIcon />} />
83
+ * </Input>
84
+ * ```
85
+ */
86
+ declare const InputCapture: ({ "aria-invalid": _ariaInvalid, className, ref, validation: _validation, ...restProps }: InputCaptureProps) => import("react").JSX.Element;
87
+ //#endregion
88
+ export { AutoComplete as a, WithInputType as c, InputProps as i, InputCapture as n, InputType as o, InputCaptureProps as r, WithAutoComplete as s, Input as t };
package/dist/input.d.ts CHANGED
@@ -1,49 +1,8 @@
1
1
  import { o as WithValidation, r as Validation } from "./validation-7QeiTFwl.js";
2
- import { i as WithInputType, n as InputType, r as WithAutoComplete, t as AutoComplete } from "./types-C19IR7jf.js";
3
- import { InputHTMLAttributes, PropsWithChildren } from "react";
4
- //#region src/components/input/input.d.ts
5
- type BaseProps = WithAutoComplete & WithInputType & WithValidation;
6
- /**
7
- * The props for the `Input` component.
8
- */
9
- type InputProps = Omit<InputHTMLAttributes<HTMLInputElement>, "autoComplete" | "type"> & BaseProps & PropsWithChildren;
10
- /**
11
- * Used to create interactive controls for web-based forms in order to accept data from the user.
12
- * A versatile input element that supports various types, validation states, and can be composed with other elements.
13
- *
14
- * @see https://mantle.ngrok.com/components/forms/input
15
- *
16
- * @example
17
- * ```tsx
18
- * <Input
19
- * type="email"
20
- * placeholder="Enter your email"
21
- * validation="success"
22
- * />
23
- * ```
24
- */
25
- declare const Input: import("react").ForwardRefExoticComponent<Omit<InputHTMLAttributes<HTMLInputElement>, "autoComplete" | "type"> & WithAutoComplete & WithInputType & WithValidation & {
26
- children?: import("react").ReactNode | undefined;
27
- } & import("react").RefAttributes<HTMLInputElement>>;
28
- type InputCaptureProps = Omit<InputHTMLAttributes<HTMLInputElement>, "autoComplete" | "type"> & BaseProps;
29
- /**
30
- * The actual <input /> element that captures user input.
31
- * Used internally by Input component or when you need direct control over the input element.
32
- *
33
- * @see https://mantle.ngrok.com/components/forms/input
34
- *
35
- * @example
36
- * ```tsx
37
- * <Input>
38
- * <InputCapture />
39
- * <Icon svg={<SearchIcon />} />
40
- * </Input>
41
- * ```
42
- */
43
- declare const InputCapture: import("react").ForwardRefExoticComponent<Omit<InputHTMLAttributes<HTMLInputElement>, "autoComplete" | "type"> & WithAutoComplete & WithInputType & WithValidation & import("react").RefAttributes<HTMLInputElement>>;
44
- //#endregion
2
+ import { a as AutoComplete, c as WithInputType, i as InputProps, n as InputCapture, o as InputType, r as InputCaptureProps, s as WithAutoComplete, t as Input } from "./input-DV9M6K4v.js";
3
+ import { ComponentProps } from "react";
45
4
  //#region src/components/input/password-input.d.ts
46
- type PasswordInputProps = Omit<InputHTMLAttributes<HTMLInputElement>, "autoComplete" | "type"> & WithValidation & WithAutoComplete & {
5
+ type PasswordInputProps = Omit<ComponentProps<"input">, "autoComplete" | "type"> & WithValidation & WithAutoComplete & {
47
6
  /**
48
7
  * Callback for when the visibility of the password value changes.
49
8
  */
@@ -112,17 +71,7 @@ type PasswordInputProps = Omit<InputHTMLAttributes<HTMLInputElement>, "autoCompl
112
71
  * }
113
72
  * ```
114
73
  */
115
- declare const PasswordInput: import("react").ForwardRefExoticComponent<Omit<InputHTMLAttributes<HTMLInputElement>, "autoComplete" | "type"> & WithValidation & WithAutoComplete & {
116
- /**
117
- * Callback for when the visibility of the password value changes.
118
- */
119
- onValueVisibilityChange?: (visible: boolean) => void;
120
- /**
121
- * Show/hide the password value as a controlled state.
122
- * @default false
123
- */
124
- showValue?: boolean;
125
- } & import("react").RefAttributes<HTMLInputElement>>;
74
+ declare const PasswordInput: ({ onValueVisibilityChange, ref, showValue, ...props }: PasswordInputProps) => import("react").JSX.Element;
126
75
  //#endregion
127
76
  //#region src/components/input/is-input.d.ts
128
77
  /**
package/dist/input.js CHANGED
@@ -1 +1 @@
1
- import{t as e}from"./icon-CDtYjF_H.js";import{n as t,t as n}from"./input-Ct1YOqSy.js";import{t as r}from"./use-prefers-reduced-motion-CagaNRgm.js";import{t as i}from"./is-input-CXmS0OFN.js";import{forwardRef as a,useEffect as o,useRef as s,useState as c}from"react";import{jsx as l,jsxs as u}from"react/jsx-runtime";import{EyeIcon as d}from"@phosphor-icons/react/Eye";import{EyeClosedIcon as f}from"@phosphor-icons/react/EyeClosed";import{flushSync as p}from"react-dom";const m=a(({onValueVisibilityChange:i,showValue:a=!1,...m},h)=>{let[g,_]=c(a),v=g?`text`:`password`,y=g?d:f,b=s(null),x=s(null);return o(()=>{_(a)},[a]),u(n,{"data-slot":`password-input`,type:v,ref:h,...m,children:[l(t,{}),u(`button`,{type:`button`,tabIndex:-1,className:`text-body hover:text-strong ml-1 cursor-pointer bg-inherit p-0`,onClick:()=>{x.current&&=(x.current.cancel(),null);let e=!g;p(()=>{_(e)}),i?.(e);let t=b.current;t&&!r()&&(x.current=t.animate([{transform:`scaleY(0)`},{transform:`scaleY(1)`}],{duration:200,easing:`ease-out`}),x.current.onfinish=()=>{x.current=null})},children:[u(`span`,{className:`sr-only`,children:[`Turn password visibility `,g?`off`:`on`]}),l(e,{ref:b,svg:l(y,{"aria-hidden":!0})})]})]})});m.displayName=`PasswordInput`;export{n as Input,t as InputCapture,m as PasswordInput,i as isInput};
1
+ import{t as e}from"./icon-CGgMKpJg.js";import{n as t,t as n}from"./input-CVyAVbim.js";import{t as r}from"./use-prefers-reduced-motion-CagaNRgm.js";import{t as i}from"./is-input-CXmS0OFN.js";import{useEffect as a,useRef as o,useState as s}from"react";import{jsx as c,jsxs as l}from"react/jsx-runtime";import{EyeIcon as u}from"@phosphor-icons/react/Eye";import{EyeClosedIcon as d}from"@phosphor-icons/react/EyeClosed";import{flushSync as f}from"react-dom";const p=({onValueVisibilityChange:i,ref:p,showValue:m=!1,...h})=>{let[g,_]=s(m),v=g?`text`:`password`,y=g?u:d,b=o(null),x=o(null);return a(()=>{_(m)},[m]),l(n,{"data-slot":`password-input`,type:v,ref:p,...h,children:[c(t,{}),l(`button`,{type:`button`,tabIndex:-1,className:`text-body hover:text-strong ml-1 cursor-pointer bg-inherit p-0`,onClick:()=>{x.current&&=(x.current.cancel(),null);let e=!g;f(()=>{_(e)}),i?.(e);let t=b.current;t&&!r()&&(x.current=t.animate([{transform:`scaleY(0)`},{transform:`scaleY(1)`}],{duration:200,easing:`ease-out`}),x.current.onfinish=()=>{x.current=null})},children:[l(`span`,{className:`sr-only`,children:[`Turn password visibility `,g?`off`:`on`]}),c(e,{ref:b,svg:c(y,{"aria-hidden":!0})})]})]})};export{n as Input,t as InputCapture,p as PasswordInput,i as isInput};
@@ -1,4 +1,11 @@
1
+ import { ComponentProps } from "react";
1
2
  //#region src/components/label/label.d.ts
3
+ type LabelProps = ComponentProps<"label"> & {
4
+ /**
5
+ * If set, the label will appear disabled.
6
+ */
7
+ disabled?: boolean;
8
+ };
2
9
  /**
3
10
  * A caption for a form control — input, checkbox, radio, switch, select.
4
11
  * Renders a native `<label>`. Pair every form control with a `Label` so the
@@ -59,11 +66,6 @@
59
66
  * </Label>
60
67
  * ```
61
68
  */
62
- declare const Label: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, "ref"> & {
63
- /**
64
- * If set, the label will appear disabled.
65
- */
66
- disabled?: boolean;
67
- } & import("react").RefAttributes<HTMLLabelElement>>;
69
+ declare const Label: ({ "aria-disabled": _ariaDisabled, children, className, disabled, onMouseDown, ref, ...props }: LabelProps) => import("react").JSX.Element;
68
70
  //#endregion
69
71
  export { Label as t };
@@ -0,0 +1 @@
1
+ import{t as e}from"./cx-IiQEAKf5.js";import{jsx as t}from"react/jsx-runtime";const n=({"aria-disabled":n,children:r,className:i,disabled:a,onMouseDown:o,ref:s,...c})=>t(`label`,{"aria-disabled":a??n,"data-slot":`label`,className:e(`text-strong cursor-pointer text-sm peer-disabled:cursor-default has-disabled:cursor-default aria-disabled:cursor-default font-sans`,`[:where(&:not(:has(input,textarea,select,button,[contenteditable])))]:font-medium`,i),onMouseDown:e=>{e.target.closest(`button, input, select, textarea`)||(o?.(e),!e.defaultPrevented&&e.detail>1&&e.preventDefault())},ref:s,...c,children:r});export{n as t};
package/dist/label.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { t as Label } from "./label-v2-bv98k.js";
1
+ import { t as Label } from "./label-C6YH9skg.js";
2
2
  export { Label };
package/dist/label.js CHANGED
@@ -1 +1 @@
1
- import{t as e}from"./label-BMlHW_2D.js";export{e as Label};
1
+ import{t as e}from"./label-D-D11mlp.js";export{e as Label};
package/dist/list.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { t as WithAsChild } from "./as-child-CYEVu1WY.js";
1
+ import { n as WithAsChild } from "./as-child-D23mGo4f.js";
2
2
  import { CSSProperties, ComponentProps, ReactNode, Ref } from "react";
3
3
  //#region src/components/list/primitive.d.ts
4
4
  /**
@@ -113,6 +113,38 @@ type VirtualRootProps = ListRootProps$1 & {
113
113
  * ```
114
114
  */
115
115
  type ListRootProps = Omit<ListRootProps$1, "semantics" | "onActivate" | "itemId" | "isItemDisabled">;
116
+ /**
117
+ * The scrollable container for a `List`: a `role="list"` of clickable items
118
+ * inside the bordered, rounded `bg-popover` viewport (styled after the
119
+ * `MultiSelect` popover). Renders **every** item — the non-virtualized default.
120
+ * Compose `List.Item` children directly. **Bound its height**
121
+ * (`max-h-*`, `h-*`, or `min-h-0 flex-1`) so long lists scroll.
122
+ *
123
+ * Keyboard: items keep their native tab order, and `ArrowUp` / `ArrowDown` /
124
+ * `Home` / `End` also move focus between items (skipping disabled ones); the
125
+ * focused item lights up with the hover tint rather than a focus ring.
126
+ *
127
+ * For very long lists, swap in `List.VirtualRoot`, which windows the same
128
+ * `Item` children — the call site is otherwise identical.
129
+ *
130
+ * @see https://mantle.ngrok.com/components/data-display/list
131
+ *
132
+ * @example
133
+ * ```tsx
134
+ * <List.Root aria-label="Your accounts" className="max-h-80">
135
+ * {accounts.map((account) => (
136
+ * <List.Item key={account.id} onClick={() => switchTo(account.id)}>
137
+ * <List.ItemTitle>{account.name}</List.ItemTitle>
138
+ * <List.ItemDescription>{account.plan}</List.ItemDescription>
139
+ * </List.Item>
140
+ * ))}
141
+ * </List.Root>
142
+ * ```
143
+ */
144
+ declare const Root: {
145
+ (props: ListRootProps): import("react").JSX.Element;
146
+ displayName: string;
147
+ };
116
148
  /**
117
149
  * Props for `List.VirtualRoot` — the internal list primitive's
118
150
  * `VirtualRoot` props (viewport props plus `estimateItemHeight` / `overscan`),
@@ -131,6 +163,32 @@ type ListRootProps = Omit<ListRootProps$1, "semantics" | "onActivate" | "itemId"
131
163
  * ```
132
164
  */
133
165
  type ListVirtualRootProps = Omit<VirtualRootProps, "semantics" | "onActivate" | "itemId" | "isItemDisabled">;
166
+ /**
167
+ * The windowed counterpart to `List.Root`: renders only the visible slice
168
+ * of its `List.Item` children via `@tanstack/react-virtual`. Authored
169
+ * identically to `Root` — same `Item` children — so opting into
170
+ * virtualization never changes the call site. Reach for it only when a list is
171
+ * long enough to need it; **bound its height** so the virtualizer has a
172
+ * viewport to measure.
173
+ *
174
+ * @see https://mantle.ngrok.com/components/data-display/list
175
+ *
176
+ * @example
177
+ * ```tsx
178
+ * <List.VirtualRoot aria-label="Your accounts" className="max-h-80">
179
+ * {accounts.map((account) => (
180
+ * <List.Item key={account.id} onClick={() => switchTo(account.id)}>
181
+ * <List.ItemTitle>{account.name}</List.ItemTitle>
182
+ * <List.ItemDescription>{account.plan}</List.ItemDescription>
183
+ * </List.Item>
184
+ * ))}
185
+ * </List.VirtualRoot>
186
+ * ```
187
+ */
188
+ declare const VirtualRoot: {
189
+ (props: ListVirtualRootProps): import("react").JSX.Element;
190
+ displayName: string;
191
+ };
134
192
  /**
135
193
  * Props for `List.Item`. Extends `<button>` props (minus `type`, which is fixed
136
194
  * to `"button"`) with `asChild` and the optional `current` accent.
@@ -155,6 +213,92 @@ type ListItemProps = Omit<ComponentProps<"button">, "type"> & WithAsChild & {
155
213
  */
156
214
  current?: boolean;
157
215
  };
216
+ /**
217
+ * A single clickable item in a `List`. Sits inside a `role="listitem"` pill
218
+ * from the internal list primitive; renders a `<button>` by default (with
219
+ * `onClick`), or your own element via `asChild` — e.g. an `<a>` for navigation
220
+ * (account switching, SSO selection). The button/link fills its pill, so
221
+ * clicking anywhere on the item triggers it, and the pill's hover / `current`
222
+ * accent is provided by the enclosing listitem.
223
+ *
224
+ * @see https://mantle.ngrok.com/components/data-display/list
225
+ *
226
+ * @example
227
+ * ```tsx
228
+ * // Action items.
229
+ * <List.Root aria-label="Your accounts" className="max-h-80">
230
+ * {accounts.map((account) => (
231
+ * <List.Item key={account.id} onClick={() => switchTo(account.id)}>
232
+ * <List.ItemTitle>{account.name}</List.ItemTitle>
233
+ * <List.ItemDescription>{account.plan}</List.ItemDescription>
234
+ * </List.Item>
235
+ * ))}
236
+ * </List.Root>
237
+ * ```
238
+ *
239
+ * @example
240
+ * ```tsx
241
+ * // Navigation items via asChild.
242
+ * <List.Root aria-label="SSO providers" className="max-h-80">
243
+ * {providers.map((provider) => (
244
+ * <List.Item key={provider.id} asChild>
245
+ * <a href={`/sso/${provider.id}`}>
246
+ * <List.ItemTitle>{provider.name}</List.ItemTitle>
247
+ * <List.ItemDescription>{provider.domain}</List.ItemDescription>
248
+ * </a>
249
+ * </List.Item>
250
+ * ))}
251
+ * </List.Root>
252
+ * ```
253
+ */
254
+ declare const Item: {
255
+ ({ asChild, className, current, disabled, onClick, ref, ...props }: ListItemProps): import("react").JSX.Element;
256
+ displayName: string;
257
+ };
258
+ /**
259
+ * The emphasized title line inside a `List.Item`, in the stronger foreground
260
+ * color. A styled `<span>`.
261
+ *
262
+ * @see https://mantle.ngrok.com/components/data-display/list
263
+ *
264
+ * @example
265
+ * ```tsx
266
+ * <List.Root aria-label="Your accounts" className="max-h-80">
267
+ * {accounts.map((account) => (
268
+ * <List.Item key={account.id} onClick={() => switchTo(account.id)}>
269
+ * <List.ItemTitle>{account.name}</List.ItemTitle>
270
+ * <List.ItemDescription>{account.plan}</List.ItemDescription>
271
+ * </List.Item>
272
+ * ))}
273
+ * </List.Root>
274
+ * ```
275
+ */
276
+ declare const ItemTitle: {
277
+ ({ className, ref, ...props }: ComponentProps<"span">): import("react").JSX.Element;
278
+ displayName: string;
279
+ };
280
+ /**
281
+ * The de-emphasized sub-line inside a `List.Item`, in the muted body color. A
282
+ * styled `<span>`.
283
+ *
284
+ * @see https://mantle.ngrok.com/components/data-display/list
285
+ *
286
+ * @example
287
+ * ```tsx
288
+ * <List.Root aria-label="Your accounts" className="max-h-80">
289
+ * {accounts.map((account) => (
290
+ * <List.Item key={account.id} onClick={() => switchTo(account.id)}>
291
+ * <List.ItemTitle>{account.name}</List.ItemTitle>
292
+ * <List.ItemDescription>{account.plan}</List.ItemDescription>
293
+ * </List.Item>
294
+ * ))}
295
+ * </List.Root>
296
+ * ```
297
+ */
298
+ declare const ItemDescription: {
299
+ ({ className, ref, ...props }: ComponentProps<"span">): import("react").JSX.Element;
300
+ displayName: string;
301
+ };
158
302
  /**
159
303
  * A scrollable, optionally-virtualized list of clickable items — the action /
160
304
  * navigation counterpart to `SelectableList` (e.g. an account switcher or SSO
@@ -215,7 +359,7 @@ declare const List: {
215
359
  * </List.Root>
216
360
  * ```
217
361
  */
218
- readonly Root: import("react").ForwardRefExoticComponent<Omit<ListRootProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
362
+ readonly Root: typeof Root;
219
363
  /**
220
364
  * The virtualized container — windows the same `Item` children. Opt in for
221
365
  * long lists; authored identically to `Root`.
@@ -234,7 +378,7 @@ declare const List: {
234
378
  * </List.VirtualRoot>
235
379
  * ```
236
380
  */
237
- readonly VirtualRoot: import("react").ForwardRefExoticComponent<Omit<ListVirtualRootProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
381
+ readonly VirtualRoot: typeof VirtualRoot;
238
382
  /**
239
383
  * A clickable item — a `<button>` by default, or your own element via
240
384
  * `asChild` (e.g. an `<a>`). Optional `current` gives the accent treatment.
@@ -253,7 +397,7 @@ declare const List: {
253
397
  * </List.Root>
254
398
  * ```
255
399
  */
256
- readonly Item: import("react").ForwardRefExoticComponent<Omit<ListItemProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
400
+ readonly Item: typeof Item;
257
401
  /**
258
402
  * Emphasized title line inside a `List.Item`.
259
403
  *
@@ -271,7 +415,7 @@ declare const List: {
271
415
  * </List.Root>
272
416
  * ```
273
417
  */
274
- readonly ItemTitle: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & import("react").RefAttributes<HTMLSpanElement>>;
418
+ readonly ItemTitle: typeof ItemTitle;
275
419
  /**
276
420
  * De-emphasized sub-line inside a `List.Item`.
277
421
  *
@@ -289,7 +433,7 @@ declare const List: {
289
433
  * </List.Root>
290
434
  * ```
291
435
  */
292
- readonly ItemDescription: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & import("react").RefAttributes<HTMLSpanElement>>;
436
+ readonly ItemDescription: typeof ItemDescription;
293
437
  };
294
438
  //#endregion
295
439
  export { List, type ListItemProps, type ListRootProps, type ListVirtualRootProps };
package/dist/list.js CHANGED
@@ -1 +1 @@
1
- import{t as e}from"./cx-IiQEAKf5.js";import{t}from"./slot-DmPrjM7N.js";import{n,r,t as i}from"./virtual-DZMBu7Ch.js";import{forwardRef as a}from"react";import{jsx as o}from"react/jsx-runtime";const s=a((e,t)=>o(r,{ref:t,semantics:`list`,...e}));s.displayName=`ListRoot`;const c=a((e,t)=>o(i,{ref:t,semantics:`list`,...e}));c.displayName=`ListVirtualRoot`;const l=a(({asChild:r,className:i,current:a,disabled:s,onClick:c,...l},u)=>o(n,{selected:a,disabled:s,children:o(r?t:`button`,{ref:u,"data-slot":`list-item-control`,"aria-current":a||void 0,...r?{"aria-disabled":s||void 0,tabIndex:s?-1:void 0}:{type:`button`,disabled:s},onClick:e=>{if(r&&s){e.preventDefault(),e.stopPropagation();return}c?.(e)},className:e(`flex w-full cursor-pointer flex-col gap-0.5 rounded-md bg-transparent px-2 py-1.5 text-left text-sm`,`disabled:cursor-default disabled:opacity-50 aria-disabled:cursor-default aria-disabled:opacity-50 aria-disabled:pointer-events-none`,`focus-visible:outline-hidden`,i),...l,onClickCapture:r&&s?e=>{e.preventDefault(),e.stopPropagation()}:l.onClickCapture})}));l.displayName=`ListItem`;const u=a(({className:t,...n},r)=>o(`span`,{ref:r,"data-slot":`list-item-title`,className:e(`text-strong font-medium`,t),...n}));u.displayName=`ListItemTitle`;const d=a(({className:t,...n},r)=>o(`span`,{ref:r,"data-slot":`list-item-description`,className:e(`text-body leading-4`,t),...n}));d.displayName=`ListItemDescription`;const f={Root:s,VirtualRoot:c,Item:l,ItemTitle:u,ItemDescription:d};export{f as List};
1
+ import{t as e}from"./cx-IiQEAKf5.js";import{t}from"./slot-CDk0Bb9z.js";import{n,r,t as i}from"./virtual-UrzmaSQm.js";import{jsx as a}from"react/jsx-runtime";const o=e=>a(r,{semantics:`list`,...e});o.displayName=`ListRoot`;const s=e=>a(i,{semantics:`list`,...e});s.displayName=`ListVirtualRoot`;const c=({asChild:r,className:i,current:o,disabled:s,onClick:c,ref:l,...u})=>a(n,{selected:o,disabled:s,children:a(r?t:`button`,{ref:l,"data-slot":`list-item-control`,"aria-current":o||void 0,...r?{"aria-disabled":s||void 0,tabIndex:s?-1:void 0}:{type:`button`,disabled:s},onClick:e=>{if(r&&s){e.preventDefault(),e.stopPropagation();return}c?.(e)},className:e(`flex w-full cursor-pointer flex-col gap-0.5 rounded-md bg-transparent px-2 py-1.5 text-left text-sm`,`disabled:cursor-default disabled:opacity-50 aria-disabled:cursor-default aria-disabled:opacity-50 aria-disabled:pointer-events-none`,`focus-visible:outline-hidden`,i),...u,onClickCapture:r&&s?e=>{e.preventDefault(),e.stopPropagation()}:u.onClickCapture})});c.displayName=`ListItem`;const l=({className:t,ref:n,...r})=>a(`span`,{ref:n,"data-slot":`list-item-title`,className:e(`text-strong font-medium`,t),...r});l.displayName=`ListItemTitle`;const u=({className:t,ref:n,...r})=>a(`span`,{ref:n,"data-slot":`list-item-description`,className:e(`text-body leading-4`,t),...r});u.displayName=`ListItemDescription`;const d={Root:o,VirtualRoot:s,Item:c,ItemTitle:l,ItemDescription:u};export{d as List};