@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.
- package/dist/accordion.d.ts +169 -12
- package/dist/accordion.js +1 -1
- package/dist/agent.json +1 -1
- package/dist/alert-dialog.d.ts +496 -30
- package/dist/alert-dialog.js +1 -1
- package/dist/alert.d.ts +129 -9
- package/dist/alert.js +1 -1
- package/dist/anchor-_2meGDfj.js +1 -0
- package/dist/anchor.d.ts +2 -2
- package/dist/anchor.js +1 -1
- package/dist/as-child-D23mGo4f.d.ts +49 -0
- package/dist/badge.d.ts +44 -5
- package/dist/badge.js +1 -1
- package/dist/breadcrumb.d.ts +214 -14
- package/dist/breadcrumb.js +1 -1
- package/dist/button-5WsvzIQ6.js +1 -0
- package/dist/{button-DcXOWUYo.d.ts → button-BPMwa2jN.d.ts} +3 -3
- package/dist/button-D9n09xUg.js +1 -0
- package/dist/button.d.ts +3 -3
- package/dist/button.js +1 -1
- package/dist/calendar.d.ts +0 -3
- package/dist/calendar.js +1 -1
- package/dist/card.d.ts +146 -9
- package/dist/card.js +1 -1
- package/dist/centered-layout.d.ts +224 -8
- package/dist/centered-layout.js +1 -1
- package/dist/checkbox-Cq17y0-R.js +1 -0
- package/dist/checkbox.d.ts +12 -10
- package/dist/checkbox.js +1 -1
- package/dist/choice-Cc8dA5r8.js +1 -0
- package/dist/choice-Ct0KK8jw.d.ts +269 -0
- package/dist/choice.d.ts +1 -252
- package/dist/choice.js +1 -1
- package/dist/code-block.d.ts +270 -50
- package/dist/code-block.js +6 -6
- package/dist/code.d.ts +3 -2
- package/dist/code.js +1 -1
- package/dist/combobox.d.ts +190 -11
- package/dist/combobox.js +1 -1
- package/dist/command.d.ts +285 -81
- package/dist/command.js +1 -1
- package/dist/compose-refs-BdBMM9ga.js +1 -0
- package/dist/data-table.d.ts +33 -5
- package/dist/data-table.js +1 -1
- package/dist/description-list.d.ts +79 -6
- package/dist/description-list.js +1 -1
- package/dist/dialog-CQ2C6vkE.js +1 -0
- package/dist/dialog.d.ts +239 -18
- package/dist/dialog.js +1 -1
- package/dist/dropdown-menu-CSCDdA3K.js +1 -0
- package/dist/{dropdown-menu-DP_Ne9Mr.d.ts → dropdown-menu-CoyozLzy.d.ts} +170 -29
- package/dist/dropdown-menu.d.ts +2 -2
- package/dist/dropdown-menu.js +1 -1
- package/dist/empty.d.ts +1 -1
- package/dist/empty.js +1 -1
- package/dist/field.d.ts +596 -45
- package/dist/field.js +1 -1
- package/dist/flag.d.ts +0 -3
- package/dist/flag.js +1 -1
- package/dist/hooks.d.ts +3 -4
- package/dist/hooks.js +1 -1
- package/dist/hover-card.d.ts +54 -4
- package/dist/hover-card.js +1 -1
- package/dist/{icon-Cevjo93X.d.ts → icon-BDqpcZ-n.d.ts} +1 -1
- package/dist/icon-CGgMKpJg.js +1 -0
- package/dist/{icon-button-BvQvT790.d.ts → icon-button-C1AfGnQx.d.ts} +6 -60
- package/dist/icon-button-DiOhreJD.js +1 -0
- package/dist/icon.d.ts +2 -2
- package/dist/icon.js +1 -1
- package/dist/icons.d.ts +5 -13
- package/dist/icons.js +1 -1
- package/dist/{in-view-nkSOdED2.d.ts → in-view-DDEGUKDR.d.ts} +17 -9
- package/dist/index-B8mIWKIU.d.ts +211 -0
- package/dist/{index-Rv8RL7xy.d.ts → index-BtwKJTLq.d.ts} +1 -1
- package/dist/{index-BSAizFod.d.ts → index-C2jj8U4a.d.ts} +5 -5
- package/dist/index-CdPXa9h1.d.ts +1 -0
- package/dist/{index-D47aqlpz.d.ts → index-DA4ig3gj.d.ts} +1 -1
- package/dist/input-CVyAVbim.js +1 -0
- package/dist/{types-C19IR7jf.d.ts → input-DV9M6K4v.d.ts} +42 -2
- package/dist/input.d.ts +4 -55
- package/dist/input.js +1 -1
- package/dist/{label-v2-bv98k.d.ts → label-C6YH9skg.d.ts} +8 -6
- package/dist/label-D-D11mlp.js +1 -0
- package/dist/label.d.ts +1 -1
- package/dist/label.js +1 -1
- package/dist/list.d.ts +150 -6
- package/dist/list.js +1 -1
- package/dist/llms.txt +1 -1
- package/dist/main.d.ts +20 -4
- package/dist/main.js +1 -1
- package/dist/media-object.d.ts +27 -4
- package/dist/media-object.js +1 -1
- package/dist/multi-select.d.ts +312 -15
- package/dist/multi-select.js +1 -1
- package/dist/otp-input.d.ts +129 -5
- package/dist/otp-input.js +1 -1
- package/dist/pagination.d.ts +70 -6
- package/dist/pagination.js +1 -1
- package/dist/popover-CBMADtjV.js +1 -0
- package/dist/popover.d.ts +1 -181
- package/dist/popover.js +1 -1
- package/dist/primitive-CJRIlrLz.d.ts +31 -0
- package/dist/primitive-DCPHJsRs.js +1 -0
- package/dist/progress.js +1 -1
- package/dist/qr-code.d.ts +113 -5
- package/dist/qr-code.js +1 -1
- package/dist/radio-group.d.ts +128 -23
- package/dist/radio-group.js +1 -1
- package/dist/sandboxed-on-click.d.ts +2 -2
- package/dist/sandboxed-on-click.js +1 -1
- package/dist/select-SR_9-bxA.js +1 -0
- package/dist/select-idm1jy7y.d.ts +600 -0
- package/dist/select.d.ts +1 -1
- package/dist/select.js +1 -1
- package/dist/selectable-list.d.ts +252 -298
- package/dist/selectable-list.js +1 -1
- package/dist/separator-B5UmkVRL.d.ts +75 -0
- package/dist/separator-bpE_kooz.js +1 -0
- package/dist/separator.d.ts +1 -52
- package/dist/separator.js +1 -1
- package/dist/sheet.d.ts +295 -21
- package/dist/sheet.js +1 -1
- package/dist/skeleton-CsbUHbBA.js +1 -0
- package/dist/skeleton.d.ts +4 -7
- package/dist/skeleton.js +1 -1
- package/dist/skip-to-main-link.d.ts +24 -4
- package/dist/skip-to-main-link.js +1 -1
- package/dist/slot-CDk0Bb9z.js +1 -0
- package/dist/slot.d.ts +1 -1
- package/dist/slot.js +1 -1
- package/dist/{sort-BPX2Fk9t.js → sort-B_DDQcVD.js} +1 -1
- package/dist/split-button.d.ts +28 -13
- package/dist/split-button.js +1 -1
- package/dist/{svg-only-BFeFS1aa.d.ts → svg-only-CdI_v82i.d.ts} +1 -1
- package/dist/svg-only-d-nMCfAI.js +1 -0
- package/dist/switch.d.ts +9 -6
- package/dist/switch.js +1 -1
- package/dist/table-DUSvU_Jw.d.ts +875 -0
- package/dist/table-GDkapNFi.js +1 -0
- package/dist/table.d.ts +1 -1
- package/dist/table.js +1 -1
- package/dist/tabs.d.ts +135 -21
- package/dist/tabs.js +1 -1
- package/dist/text-area.d.ts +1 -1
- package/dist/text-area.js +1 -1
- package/dist/theme-provider-BftkIiZn.js +1 -0
- package/dist/theme-switcher.d.ts +110 -29
- package/dist/theme-switcher.js +1 -1
- package/dist/theme-wVnzzx2F.js +1 -0
- package/dist/theme.d.ts +53 -14
- package/dist/theme.js +1 -1
- package/dist/toast-DKgMRv4F.js +1 -0
- package/dist/toast.d.ts +98 -10
- package/dist/toast.js +1 -1
- package/dist/tooltip.d.ts +28 -1
- package/dist/tooltip.js +1 -1
- package/dist/{traffic-policy-file-0g5RXFqu.js → traffic-policy-file-CF1lbWtp.js} +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js +1 -1
- package/dist/virtual-UrzmaSQm.js +1 -0
- package/dist/well.d.ts +3 -3
- package/dist/well.js +1 -1
- package/package.json +3 -3
- package/dist/anchor-C_tjSVy6.js +0 -1
- package/dist/as-child-CYEVu1WY.d.ts +0 -23
- package/dist/button-5t6-JS_I.js +0 -1
- package/dist/button-ClC60Nzg.js +0 -1
- package/dist/checkbox-DJ2xl7Rc.js +0 -1
- package/dist/choice-DOdyNzFC.js +0 -1
- package/dist/compose-refs-Cjf2gfB8.js +0 -1
- package/dist/dialog-vxLIvB8M.js +0 -1
- package/dist/dropdown-menu-Bt1aKF1g.js +0 -1
- package/dist/icon-CDtYjF_H.js +0 -1
- package/dist/icon-button-DV2-GZHf.js +0 -1
- package/dist/index-g2rfwNCH.d.ts +0 -1
- package/dist/input-Ct1YOqSy.js +0 -1
- package/dist/label-BMlHW_2D.js +0 -1
- package/dist/popover-D5WxxnBY.js +0 -1
- package/dist/primitive-C64-m48O.d.ts +0 -13
- package/dist/primitive-IKruV2iB.js +0 -1
- package/dist/select-Bwt2YduR.d.ts +0 -345
- package/dist/select-D-5u0Blc.js +0 -1
- package/dist/separator-kBnnv3Cw.js +0 -1
- package/dist/skeleton-Bu3tgNcW.js +0 -1
- package/dist/slot-DmPrjM7N.js +0 -1
- package/dist/svg-only-DDx6FtJd.js +0 -1
- package/dist/table-CPH2md2-.js +0 -1
- package/dist/table-CwFHXC-G.d.ts +0 -414
- package/dist/theme-D3MDng6U.js +0 -1
- package/dist/theme-provider-C9zpDyJW.js +0 -1
- package/dist/toast-BsCjaMVS.js +0 -1
- 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").
|
|
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 {
|
|
2
|
-
import { r as VariantProps } from "./index-
|
|
3
|
-
import "./button-
|
|
4
|
-
import "./icon-button-
|
|
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:
|
|
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";
|
|
@@ -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
|
-
|
|
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 {
|
|
3
|
-
import {
|
|
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<
|
|
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:
|
|
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-
|
|
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:
|
|
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-
|
|
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-
|
|
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 {
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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-
|
|
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};
|