@lovince/ui-vue 0.1.1 → 0.3.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/README.md +248 -28
- package/dist/components/{combobox.d.ts → choice/combobox.d.ts} +10 -27
- package/dist/components/{command.d.ts → choice/command.d.ts} +7 -19
- package/dist/components/{emoji-picker.d.ts → choice/emoji-picker.d.ts} +9 -9
- package/dist/components/{radio-group.d.ts → choice/radio-group.d.ts} +3 -3
- package/dist/components/choice/rating.d.ts +143 -0
- package/dist/components/choice/segmented-control.d.ts +26 -0
- package/dist/components/{select.d.ts → choice/select.d.ts} +11 -20
- package/dist/components/{toggle-group.d.ts → choice/toggle-group.d.ts} +3 -9
- package/dist/components/{toggles.d.ts → choice/toggles.d.ts} +4 -4
- package/dist/components/{accordion.d.ts → disclosure/accordion.d.ts} +5 -13
- package/dist/components/{disclosure.d.ts → disclosure/disclosure.d.ts} +3 -10
- package/dist/components/{tabs.d.ts → disclosure/tabs.d.ts} +4 -6
- package/dist/components/display/avatar-group.d.ts +61 -0
- package/dist/components/{avatar.d.ts → display/avatar.d.ts} +3 -6
- package/dist/components/display/feedback.d.ts +623 -0
- package/dist/components/display/image.d.ts +95 -0
- package/dist/components/display/meter.d.ts +165 -0
- package/dist/components/{progress.d.ts → display/progress.d.ts} +2 -6
- package/dist/components/display/stat.d.ts +102 -0
- package/dist/components/display/table-parts.d.ts +272 -0
- package/dist/components/display/table.d.ts +130 -0
- package/dist/components/display/timeline.d.ts +181 -0
- package/dist/components/forms/color-picker.d.ts +187 -0
- package/dist/components/forms/date-picker.d.ts +257 -0
- package/dist/components/forms/editable.d.ts +243 -0
- package/dist/components/forms/file-upload.d.ts +203 -0
- package/dist/components/forms/forms.d.ts +290 -0
- package/dist/components/forms/phone-input.d.ts +189 -0
- package/dist/components/forms/signature-pad.d.ts +122 -0
- package/dist/components/forms/tags-input.d.ts +209 -0
- package/dist/components/forms/text-inputs.d.ts +270 -0
- package/dist/components/forms/time-field.d.ts +165 -0
- package/dist/components/{calendar.d.ts → inputs/calendar.d.ts} +8 -19
- package/dist/components/{number-field.d.ts → inputs/number-field.d.ts} +4 -15
- package/dist/components/{pin-input.d.ts → inputs/pin-input.d.ts} +2 -12
- package/dist/components/{slider.d.ts → inputs/slider.d.ts} +4 -14
- package/dist/components/{carousel.d.ts → layout/carousel.d.ts} +50 -20
- package/dist/components/layout/marquee.d.ts +104 -0
- package/dist/components/layout/primitives.d.ts +242 -0
- package/dist/components/layout/scroll-area.d.ts +160 -0
- package/dist/components/layout/section.d.ts +184 -0
- package/dist/components/{sortable.d.ts → layout/sortable.d.ts} +3 -12
- package/dist/components/{splitter.d.ts → layout/splitter.d.ts} +3 -11
- package/dist/components/{tree.d.ts → layout/tree.d.ts} +3 -9
- package/dist/components/layout/virtual-list.d.ts +68 -0
- package/dist/components/navigation/breadcrumb.d.ts +114 -0
- package/dist/components/navigation/pagination.d.ts +221 -0
- package/dist/components/navigation/sidebar.d.ts +258 -0
- package/dist/components/{dialog.d.ts → navigation/stepper.d.ts} +142 -114
- package/dist/components/navigation/table-of-contents.d.ts +60 -0
- package/dist/components/navigation/toolbar.d.ts +179 -0
- package/dist/components/{menu.d.ts → overlays/dialog.d.ts} +222 -224
- package/dist/components/overlays/menu.d.ts +901 -0
- package/dist/components/overlays/menubar.d.ts +106 -0
- package/dist/components/{navigation-menu.d.ts → overlays/navigation-menu.d.ts} +6 -19
- package/dist/components/{popover.d.ts → overlays/popover.d.ts} +6 -9
- package/dist/components/overlays/sheet.d.ts +77 -0
- package/dist/components/{toast.d.ts → overlays/toast.d.ts} +6 -14
- package/dist/components/{tooltip.d.ts → overlays/tooltip.d.ts} +8 -8
- package/dist/components/primitives/button.d.ts +102 -0
- package/dist/components/primitives/icon.d.ts +79 -0
- package/dist/components/primitives/primitives.d.ts +300 -0
- package/dist/composables/data-table.d.ts +0 -2
- package/dist/composables/observers.d.ts +0 -9
- package/dist/composables/presence.d.ts +0 -5
- package/dist/icon.d.ts +2 -0
- package/dist/icon.js +76 -0
- package/dist/index.d.ts +63 -28
- package/dist/index.js +5186 -967
- package/dist/shared/dismiss.d.ts +0 -8
- package/dist/shared/element.d.ts +0 -2
- package/dist/shared/floating-props.d.ts +0 -1
- package/dist/shared/list.d.ts +0 -7
- package/dist/shared/machine.d.ts +0 -18
- package/dist/shared/parts.d.ts +1 -2
- package/dist/shared/portal.d.ts +1 -10
- package/dist/shared/primitive.d.ts +2 -10
- package/dist/shared/roving.d.ts +14 -0
- package/package.json +16 -3
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ effects run through [`@lovince/ui-dom`](../ui-dom). This package subscribes to
|
|
|
6
6
|
the machine, feeds props in, and renders what `connect()` returns. It holds no
|
|
7
7
|
behaviour of its own.
|
|
8
8
|
|
|
9
|
-
> **Status: `0.
|
|
9
|
+
> **Status: `0.3.0`, experimental.** The API may change before `1.0`.
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
12
|
bun add @lovince/ui-vue
|
|
@@ -16,41 +16,261 @@ Requires Vue 3.5+ (for SSR-stable `useId`). No CSS ships with the package. Style
|
|
|
16
16
|
it with classes and the `data-*` state attributes, or use
|
|
17
17
|
[`@lovince/themes`](../themes) for tokens.
|
|
18
18
|
|
|
19
|
+
Every component export carries the `Lv` prefix (`LvButton`, `LvDialogRoot`), so
|
|
20
|
+
names never clash with your own components or native elements.
|
|
21
|
+
|
|
19
22
|
## Components
|
|
20
23
|
|
|
21
24
|
| Group | Component | Parts |
|
|
22
25
|
|---|---|---|
|
|
23
|
-
|
|
|
24
|
-
| |
|
|
25
|
-
| |
|
|
26
|
-
|
|
|
27
|
-
| |
|
|
28
|
-
| |
|
|
29
|
-
| |
|
|
30
|
-
| |
|
|
31
|
-
| |
|
|
32
|
-
| |
|
|
33
|
-
|
|
|
34
|
-
| |
|
|
35
|
-
| |
|
|
36
|
-
| |
|
|
37
|
-
| |
|
|
38
|
-
| |
|
|
39
|
-
| |
|
|
40
|
-
|
|
|
41
|
-
| |
|
|
42
|
-
| |
|
|
43
|
-
| |
|
|
44
|
-
|
|
|
45
|
-
| |
|
|
46
|
-
| |
|
|
47
|
-
| |
|
|
48
|
-
|
|
|
26
|
+
| Primitives | Text, Heading, Label, Link, Code, Kbd, Box, AspectRatio, VisuallyHidden, Separator | |
|
|
27
|
+
| | Icon | `LvIcon`, from the separate `@lovince/ui-vue/icon` entry |
|
|
28
|
+
| Disclosure | Disclosure | `LvDisclosureRoot`, `LvDisclosureTrigger`, `LvDisclosureContent` |
|
|
29
|
+
| | Accordion | `LvAccordionRoot`, `LvAccordionItem`, `LvAccordionHeader`, `LvAccordionTrigger`, `LvAccordionContent` |
|
|
30
|
+
| | Tabs | `LvTabsRoot`, `LvTabsList`, `LvTabsTrigger`, `LvTabsContent` |
|
|
31
|
+
| Overlays | Dialog | `LvDialogRoot`, `LvDialogTrigger`, `LvDialogPortal`, `LvDialogOverlay`, `LvDialogContent`, `LvDialogTitle`, `LvDialogDescription`, `LvDialogClose` |
|
|
32
|
+
| | Popover | `LvPopoverRoot`, `LvPopoverTrigger`, `LvPopoverAnchor`, `LvPopoverPortal`, `LvPopoverContent`, `LvPopoverClose` |
|
|
33
|
+
| | Tooltip | `LvTooltipRoot`, `LvTooltipTrigger`, `LvTooltipPortal`, `LvTooltipContent` |
|
|
34
|
+
| | Hover card | `LvHoverCardRoot`, `LvHoverCardTrigger`, `LvHoverCardPortal`, `LvHoverCardContent` |
|
|
35
|
+
| | Menu | `LvDropdownMenuRoot`, `LvDropdownMenuTrigger`, `LvDropdownMenuContent`, `LvDropdownMenuItem`, `LvDropdownMenuCheckboxItem`, `LvDropdownMenuRadioGroup`, `LvDropdownMenuRadioItem`, `LvDropdownMenuItemIndicator`, `LvDropdownMenuLabel`, `LvDropdownMenuGroup`, `LvDropdownMenuSeparator`, `LvContextMenuTrigger` |
|
|
36
|
+
| | Navigation menu | `LvNavigationMenuRoot`, `LvNavigationMenuList`, `LvNavigationMenuItem`, `LvNavigationMenuTrigger`, `LvNavigationMenuContent`, `LvNavigationMenuLink` |
|
|
37
|
+
| | Toast | `LvToastViewport`, `LvToastRoot`, `LvToastTitle`, `LvToastDescription`, `LvToastAction`, `LvToastClose`, plus `toast()` |
|
|
38
|
+
| Choice | Checkbox, Switch | `LvCheckboxRoot`, `LvCheckboxIndicator`, `LvSwitchRoot`, `LvSwitchThumb` |
|
|
39
|
+
| | Radio group | `LvRadioGroupRoot`, `LvRadioGroupItem`, `LvRadioGroupIndicator` |
|
|
40
|
+
| | Toggle, toggle group | `LvToggleRoot`, `LvToggleGroupRoot`, `LvToggleGroupItem` |
|
|
41
|
+
| | Select | `LvSelectRoot`, `LvSelectTrigger`, `LvSelectValue`, `LvSelectContent`, `LvSelectItem`, `LvSelectItemText`, `LvSelectItemIndicator`, `LvSelectGroup`, `LvSelectLabel`, `LvSelectSeparator` |
|
|
42
|
+
| | Combobox | `LvComboboxRoot`, `LvComboboxAnchor`, `LvComboboxInput`, `LvComboboxTrigger`, `LvComboboxClear`, `LvComboboxContent`, `LvComboboxItem`, `LvComboboxItemIndicator`, `LvComboboxEmpty` |
|
|
43
|
+
| | Command palette | `LvCommandRoot`, `LvCommandInput`, `LvCommandList`, `LvCommandGroup`, `LvCommandItem`, `LvCommandEmpty`, `LvCommandSeparator` |
|
|
44
|
+
| | Emoji picker | `LvEmojiPickerRoot`, `LvEmojiPickerSearch`, `LvEmojiPickerList`, `LvEmojiPickerGroup`, `LvEmojiPickerItem`, `LvEmojiPickerNav`… |
|
|
45
|
+
| Input | Slider | `LvSliderRoot`, `LvSliderTrack`, `LvSliderRange`, `LvSliderThumb` |
|
|
46
|
+
| | Number field | `LvNumberFieldRoot`, `LvNumberFieldInput`, `LvNumberFieldIncrement`, `LvNumberFieldDecrement` |
|
|
47
|
+
| | PIN input | `LvPinInputRoot`, `LvPinInputInput` |
|
|
48
|
+
| | Calendar | `LvCalendarRoot`, `LvCalendarHeading`, `LvCalendarPrev`, `LvCalendarNext`, `LvCalendarGrid`, `LvCalendarHeadCell`, `LvCalendarCell`, `LvCalendarDay` |
|
|
49
|
+
| Forms | Field, Input, Textarea, Form, TagsInput, FileUpload, TimeField, PhoneInput | `LvFieldRoot`, `LvFieldLabel`, `LvTagsInputRoot`, `LvTagsInputInput`, `LvTagsInputItem`, `LvTagsInputRemove`, `LvFileUploadRoot`, `LvFileUploadInput`, `LvFileUploadItem`, `LvFileUploadRemove`, `LvTimeFieldRoot`, `LvTimeFieldInput`, `LvPhoneInputRoot`, `LvPhoneInputInput`, `LvPhoneInputCountrySelect` |
|
|
50
|
+
| Layout | ScrollArea | `LvScrollAreaRoot`, `LvScrollAreaViewport`, `LvScrollAreaScrollbar`, `LvScrollAreaThumb` |
|
|
51
|
+
| | Splitter | `LvSplitterGroup`, `LvSplitterPanel`, `LvSplitterHandle` |
|
|
52
|
+
| | Tree | `LvTreeRoot`, `LvTreeItem`, `LvTreeGroup` |
|
|
53
|
+
| | Carousel | `LvCarouselRoot`, `LvCarouselViewport`, `LvCarouselSlide`, `LvCarouselPrevious`, `LvCarouselNext`, `LvCarouselIndicators`, `LvCarouselIndicator` |
|
|
54
|
+
| | Sortable | `LvSortableRoot`, `LvSortableItem`, `LvSortableHandle` |
|
|
55
|
+
| | Section | `LvSectionRoot`, `LvSectionHeader`, `LvSectionEyebrow`, `LvSectionTitle`, `LvSectionDescription`, `LvSectionContent` |
|
|
56
|
+
| Display | Avatar, Progress | `LvAvatarRoot`, `LvAvatarImage`, `LvAvatarFallback`, `LvProgressRoot`, `LvProgressIndicator` |
|
|
57
|
+
| | Table | `LvTableContainer`, `LvTableRoot`, `LvTableCaption`, `LvTableHeader`, `LvTableBody`, `LvTableFooter`, `LvTableRow`, `LvTableHead`, `LvTableCell`, plus `LvDataTable` |
|
|
58
|
+
|
|
59
|
+
### Primitives
|
|
60
|
+
|
|
61
|
+
The primitives provide semantic HTML and stable styling hooks without imposing
|
|
62
|
+
CSS. `LvText` and `LvHeading` expose a `data-text-role` matching the typography
|
|
63
|
+
roles in `@lovince/tokens`; heading level controls semantics independently from
|
|
64
|
+
visual size.
|
|
65
|
+
|
|
66
|
+
```vue
|
|
67
|
+
<script setup lang="ts">
|
|
68
|
+
import { LvAspectRatio, LvCode, LvHeading, LvKbd, LvLabel, LvLink, LvSeparator, LvText, LvVisuallyHidden } from '@lovince/ui-vue'
|
|
69
|
+
</script>
|
|
70
|
+
|
|
71
|
+
<template>
|
|
72
|
+
<LvHeading :level="1" size="display-md">Workspace</LvHeading>
|
|
73
|
+
<LvText variant="body-md">Manage projects and members.</LvText>
|
|
74
|
+
<LvLabel for="query">Search</LvLabel>
|
|
75
|
+
<LvLink href="/guide">Read the guide</LvLink>
|
|
76
|
+
<LvCode>bun test</LvCode>
|
|
77
|
+
<LvKbd>Ctrl+K</LvKbd>
|
|
78
|
+
<LvAspectRatio :ratio="16 / 9">
|
|
79
|
+
<img src="/product.webp" alt="Product detail" />
|
|
80
|
+
</LvAspectRatio>
|
|
81
|
+
<LvVisuallyHidden>Search projects</LvVisuallyHidden>
|
|
82
|
+
<LvSeparator :decorative="false" />
|
|
83
|
+
</template>
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
`LvBox`, `LvAspectRatio`, `LvText`, `LvHeading`, `LvLabel`, `LvLink`, `LvCode`, `LvKbd`, and
|
|
87
|
+
`LvVisuallyHidden` support `as` and `asChild`. `LvAspectRatio` defaults to a 1:1
|
|
88
|
+
frame; set `ratio` to a positive finite number such as `16 / 9` to size its
|
|
89
|
+
content region. `LvLink` defaults to an anchor and leaves navigation attributes
|
|
90
|
+
such as `href`, `target`, and `rel` under the caller's control. `LvCode` and
|
|
91
|
+
`LvKbd` default to their corresponding semantic elements. When `LvHeading`
|
|
92
|
+
renders a non-heading element, it keeps its semantic level with
|
|
93
|
+
`role="heading"` and `aria-level`. `LvVisuallyHidden` applies the minimal inline
|
|
94
|
+
clipping styles needed to remain available to assistive technology. A
|
|
95
|
+
non-decorative `LvSeparator` exposes separator semantics and its orientation;
|
|
96
|
+
decorative separators are hidden from the accessibility tree.
|
|
97
|
+
|
|
98
|
+
### Button
|
|
99
|
+
|
|
100
|
+
`LvButton` is the one part that names a design decision: `variant`
|
|
101
|
+
(`solid`, `subtle`, `outline`, `ghost`, `danger`) and `size` (`sm`, `md`, `lg`,
|
|
102
|
+
`icon`) become `data-variant` and `data-size`, and your stylesheet decides what
|
|
103
|
+
each of them looks like. What the component owns is the markup a hand-written
|
|
104
|
+
button gets wrong.
|
|
105
|
+
|
|
106
|
+
```vue
|
|
107
|
+
<script setup lang="ts">
|
|
108
|
+
import { LvButton } from '@lovince/ui-vue'
|
|
109
|
+
</script>
|
|
110
|
+
|
|
111
|
+
<template>
|
|
112
|
+
<LvButton @click="save">Save</LvButton>
|
|
113
|
+
<LvButton type="submit" variant="solid" size="lg" :loading="saving">Save</LvButton>
|
|
114
|
+
<LvButton as="a" href="/settings" variant="ghost" size="sm">Settings</LvButton>
|
|
115
|
+
<LvButton :disabled="!valid" variant="outline">Publish</LvButton>
|
|
116
|
+
</template>
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
- `type` defaults to `button`, so a button inside a form never submits by
|
|
120
|
+
accident; ask for `submit` or `reset` explicitly.
|
|
121
|
+
- `disabled` sets the native attribute when the element is a real `button`, and
|
|
122
|
+
`aria-disabled` when it is not, since an anchor cannot be disabled.
|
|
123
|
+
- `loading` sets `aria-busy` and keeps the control in the tab order — a request
|
|
124
|
+
started from the keyboard stays visible to the keyboard — while swallowing
|
|
125
|
+
clicks so the handler cannot fire twice.
|
|
126
|
+
- Both states also appear as `data-disabled` and `data-loading`, and neither
|
|
127
|
+
runs the `onClick` it was given. With `asChild` the element is yours, click
|
|
128
|
+
handling included; the state attributes still arrive.
|
|
129
|
+
|
|
130
|
+
### Icon
|
|
131
|
+
|
|
132
|
+
`LvIcon` draws a glyph from `@lovince/icons` on the registry's shared 24-unit
|
|
133
|
+
canvas. It is its own entry because the icon registry is an optional peer:
|
|
134
|
+
importing `@lovince/ui-vue` loads no icon data, and an app that brings its own
|
|
135
|
+
icons needs nothing extra.
|
|
136
|
+
|
|
137
|
+
```vue
|
|
138
|
+
<script setup lang="ts">
|
|
139
|
+
import { LvIcon } from '@lovince/ui-vue/icon'
|
|
140
|
+
</script>
|
|
141
|
+
|
|
142
|
+
<template>
|
|
143
|
+
<LvIcon name="arrowRight" />
|
|
144
|
+
<LvIcon name="success" :size="16" :stroke-width="1.5" label="Completed" />
|
|
145
|
+
</template>
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
An icon is decorative — `aria-hidden="true"` — unless it is given a `label`,
|
|
149
|
+
which makes it `role="img"` with that accessible name. `absoluteStrokeWidth`
|
|
150
|
+
keeps the rendered stroke thickness constant as `size` grows; `fill` takes 0 to
|
|
151
|
+
1 for a partial wash; `rotate` and `flip` turn about the canvas centre. Size and
|
|
152
|
+
stroke fall back to the registry's own defaults, and an unknown `name` renders an
|
|
153
|
+
empty box rather than breaking layout.
|
|
154
|
+
|
|
155
|
+
### Forms
|
|
156
|
+
|
|
157
|
+
`LvFieldRoot` provides a stable input id and wires the label, description, and
|
|
158
|
+
error into `LvInput` or `LvTextarea`. Description and error copy can be passed as
|
|
159
|
+
props or named slots. Set `invalid` to expose an error slot, or pass `error` to
|
|
160
|
+
mark the field invalid automatically. `required` and `disabled` are propagated
|
|
161
|
+
to the field control; each control can override them.
|
|
162
|
+
|
|
163
|
+
```vue
|
|
164
|
+
<script setup lang="ts">
|
|
165
|
+
import { LvFieldLabel, LvFieldRoot, LvForm, LvInput, LvTextarea } from '@lovince/ui-vue'
|
|
166
|
+
</script>
|
|
167
|
+
|
|
168
|
+
<template>
|
|
169
|
+
<LvForm @submit.prevent="save">
|
|
170
|
+
<LvFieldRoot required description="Use your work email.">
|
|
171
|
+
<LvFieldLabel>Email</LvFieldLabel>
|
|
172
|
+
<LvInput type="email" name="email" autocomplete="email" />
|
|
173
|
+
</LvFieldRoot>
|
|
174
|
+
|
|
175
|
+
<LvFieldRoot :invalid="Boolean(message)" :error="message">
|
|
176
|
+
<LvFieldLabel>Project summary</LvFieldLabel>
|
|
177
|
+
<LvTextarea name="summary" />
|
|
178
|
+
</LvFieldRoot>
|
|
179
|
+
|
|
180
|
+
<button type="submit">Save</button>
|
|
181
|
+
</LvForm>
|
|
182
|
+
</template>
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
`LvInput` and `LvTextarea` support `modelValue` / `defaultValue` and emit
|
|
186
|
+
`update:modelValue`. `LvTextarea` uses content-based field sizing where the
|
|
187
|
+
browser supports it and retains a native `rows` fallback. `LvForm` is a native
|
|
188
|
+
form wrapper: browser constraint validation and submit events remain in
|
|
189
|
+
control. Set `submitting` to expose `aria-busy` and `data-submitting`, or
|
|
190
|
+
`noValidate` when validation is handled elsewhere.
|
|
191
|
+
|
|
192
|
+
`TagsInput` and `FileUpload` expose their current values and rejected entries
|
|
193
|
+
through the root's default slot. Their pure rules and rejection reasons live in
|
|
194
|
+
`@lovince/ui-headless`.
|
|
195
|
+
|
|
196
|
+
```vue
|
|
197
|
+
<script setup lang="ts">
|
|
198
|
+
import {
|
|
199
|
+
LvFileUploadInput,
|
|
200
|
+
LvFileUploadItem,
|
|
201
|
+
LvFileUploadRemove,
|
|
202
|
+
LvFileUploadRoot,
|
|
203
|
+
LvTagsInputInput,
|
|
204
|
+
LvTagsInputItem,
|
|
205
|
+
LvTagsInputRemove,
|
|
206
|
+
LvTagsInputRoot,
|
|
207
|
+
} from '@lovince/ui-vue'
|
|
208
|
+
</script>
|
|
209
|
+
|
|
210
|
+
<LvTagsInputRoot v-model="emails" :max="5" :validate="isEmail" name="emails">
|
|
211
|
+
<LvTagsInputItem v-for="(email, index) in emails" :key="email" :index="index">
|
|
212
|
+
{{ email }} <LvTagsInputRemove />
|
|
213
|
+
</LvTagsInputItem>
|
|
214
|
+
<LvTagsInputInput label="Add email address" />
|
|
215
|
+
</LvTagsInputRoot>
|
|
216
|
+
|
|
217
|
+
<LvFileUploadRoot v-model="files" accept="image/*,.pdf" :max-files="4" :max-size="5000000">
|
|
218
|
+
<LvFileUploadInput />
|
|
219
|
+
<LvFileUploadItem v-for="(file, index) in files" :key="file.name" :index="index">
|
|
220
|
+
<template #default="{ file, size }">
|
|
221
|
+
{{ file.name }} ({{ size }}) <LvFileUploadRemove />
|
|
222
|
+
</template>
|
|
223
|
+
</LvFileUploadItem>
|
|
224
|
+
</LvFileUploadRoot>
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
Tags are created with Enter or a configured separator; pasted separator-delimited
|
|
228
|
+
text is split, and duplicate, invalid, and over-limit values emit `rejected`.
|
|
229
|
+
File selection and dropping share the same type, per-file size, count, and total
|
|
230
|
+
size checks. `LvFileUploadRoot` emits accepted `File[]` values and rejected files
|
|
231
|
+
with their reason; `LvFileUploadItem` also exposes kind, extension, and localized
|
|
232
|
+
size to its slot.
|
|
233
|
+
|
|
234
|
+
`TimeField` accepts human-entered times and stores normalized `HH:mm` values.
|
|
235
|
+
It validates optional `min` and `max` bounds on blur or Enter, and exposes
|
|
236
|
+
`invalid` when parsing or range validation fails. `PhoneInput` formats a
|
|
237
|
+
national number on blur, recognizes supported international prefixes, and
|
|
238
|
+
emits E.164 values. It includes a country selector and accepts an optional
|
|
239
|
+
custom country list.
|
|
240
|
+
|
|
241
|
+
```vue
|
|
242
|
+
<LvTimeFieldRoot v-model="appointment" min="09:00" max="17:00" required name="appointment">
|
|
243
|
+
<LvTimeFieldInput label="Appointment time" />
|
|
244
|
+
</LvTimeFieldRoot>
|
|
245
|
+
|
|
246
|
+
<LvPhoneInputRoot v-model="phone" country="KE" name="phone">
|
|
247
|
+
<LvPhoneInputCountrySelect />
|
|
248
|
+
<LvPhoneInputInput label="Mobile number" />
|
|
249
|
+
</LvPhoneInputRoot>
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
`ScrollArea` keeps scrolling native while exposing custom, keyboard-operable
|
|
253
|
+
scrollbar parts. Size the root from its container, then render the viewport and
|
|
254
|
+
the scrollbar/ thumb parts inside it. The root slot reports current overflow
|
|
255
|
+
metrics; style the track and thumb with their `data-scroll-area-*` attributes.
|
|
256
|
+
The viewport keeps its native scroll behavior and uses `scrollbar-width: none`
|
|
257
|
+
where that property is supported.
|
|
258
|
+
|
|
259
|
+
```vue
|
|
260
|
+
<LvScrollAreaRoot class="results">
|
|
261
|
+
<LvScrollAreaViewport>
|
|
262
|
+
<div v-for="result in results" :key="result.id">{{ result.title }}</div>
|
|
263
|
+
</LvScrollAreaViewport>
|
|
264
|
+
<LvScrollAreaScrollbar>
|
|
265
|
+
<LvScrollAreaThumb />
|
|
266
|
+
</LvScrollAreaScrollbar>
|
|
267
|
+
</LvScrollAreaRoot>
|
|
268
|
+
```
|
|
49
269
|
|
|
50
270
|
Composables: `useDataTable`, `useVirtualList`, `useInView`, `useScrollEdges`,
|
|
51
271
|
`useActiveSection`, `useClipboard`, plus the building blocks below.
|
|
52
272
|
|
|
53
|
-
The package is `sideEffects: false`. An app importing only `
|
|
273
|
+
The package is `sideEffects: false`. An app importing only `LvDialogRoot` ships
|
|
54
274
|
no menu, select or table code, and a test enforces this.
|
|
55
275
|
|
|
56
276
|
## Shared conventions
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
import { PropType } from 'vue';
|
|
2
|
-
|
|
3
|
-
* A text input that filters a list of options, per the WAI-ARIA combobox
|
|
4
|
-
* pattern with list autocomplete. Focus stays in the input throughout; the
|
|
5
|
-
* highlighted option is announced through `aria-activedescendant`.
|
|
6
|
-
*/
|
|
7
|
-
export declare const ComboboxRoot: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
2
|
+
export declare const LvComboboxRoot: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
8
3
|
modelValue: {
|
|
9
4
|
type: PropType<string | string[]>;
|
|
10
5
|
default: undefined;
|
|
@@ -13,7 +8,6 @@ export declare const ComboboxRoot: import('vue').DefineComponent<import('vue').E
|
|
|
13
8
|
type: PropType<string | string[]>;
|
|
14
9
|
default: undefined;
|
|
15
10
|
};
|
|
16
|
-
/** Pick several: `v-model` is an array, picking toggles, and the list stays open. */
|
|
17
11
|
multiple: {
|
|
18
12
|
type: BooleanConstructor;
|
|
19
13
|
default: boolean;
|
|
@@ -38,12 +32,10 @@ export declare const ComboboxRoot: import('vue').DefineComponent<import('vue').E
|
|
|
38
32
|
type: BooleanConstructor;
|
|
39
33
|
default: boolean;
|
|
40
34
|
};
|
|
41
|
-
/** Filter options by the typed text. Turn off when the server filters and you render the results. */
|
|
42
35
|
filter: {
|
|
43
36
|
type: BooleanConstructor;
|
|
44
37
|
default: boolean;
|
|
45
38
|
};
|
|
46
|
-
/** Adds a hidden input so the value submits with a native form. */
|
|
47
39
|
name: {
|
|
48
40
|
type: StringConstructor;
|
|
49
41
|
default: undefined;
|
|
@@ -63,7 +55,6 @@ export declare const ComboboxRoot: import('vue').DefineComponent<import('vue').E
|
|
|
63
55
|
type: PropType<string | string[]>;
|
|
64
56
|
default: undefined;
|
|
65
57
|
};
|
|
66
|
-
/** Pick several: `v-model` is an array, picking toggles, and the list stays open. */
|
|
67
58
|
multiple: {
|
|
68
59
|
type: BooleanConstructor;
|
|
69
60
|
default: boolean;
|
|
@@ -88,12 +79,10 @@ export declare const ComboboxRoot: import('vue').DefineComponent<import('vue').E
|
|
|
88
79
|
type: BooleanConstructor;
|
|
89
80
|
default: boolean;
|
|
90
81
|
};
|
|
91
|
-
/** Filter options by the typed text. Turn off when the server filters and you render the results. */
|
|
92
82
|
filter: {
|
|
93
83
|
type: BooleanConstructor;
|
|
94
84
|
default: boolean;
|
|
95
85
|
};
|
|
96
|
-
/** Adds a hidden input so the value submits with a native form. */
|
|
97
86
|
name: {
|
|
98
87
|
type: StringConstructor;
|
|
99
88
|
default: undefined;
|
|
@@ -114,8 +103,7 @@ export declare const ComboboxRoot: import('vue').DefineComponent<import('vue').E
|
|
|
114
103
|
defaultValue: string | string[];
|
|
115
104
|
searchTerm: string;
|
|
116
105
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
117
|
-
|
|
118
|
-
export declare const ComboboxAnchor: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
106
|
+
export declare const LvComboboxAnchor: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
119
107
|
readonly as: {
|
|
120
108
|
readonly type: PropType<string | import('vue').Component>;
|
|
121
109
|
readonly default: "div";
|
|
@@ -139,7 +127,7 @@ export declare const ComboboxAnchor: import('vue').DefineComponent<import('vue')
|
|
|
139
127
|
readonly as: string | import('vue').Component;
|
|
140
128
|
readonly asChild: boolean;
|
|
141
129
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
142
|
-
export declare const
|
|
130
|
+
export declare const LvComboboxInput: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
143
131
|
as: {
|
|
144
132
|
default: string;
|
|
145
133
|
type: PropType<string | import('vue').Component>;
|
|
@@ -163,8 +151,7 @@ export declare const ComboboxInput: import('vue').DefineComponent<import('vue').
|
|
|
163
151
|
as: string | import('vue').Component;
|
|
164
152
|
asChild: boolean;
|
|
165
153
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
166
|
-
|
|
167
|
-
export declare const ComboboxTrigger: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
154
|
+
export declare const LvComboboxTrigger: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
168
155
|
label: {
|
|
169
156
|
type: StringConstructor;
|
|
170
157
|
default: string;
|
|
@@ -197,8 +184,7 @@ export declare const ComboboxTrigger: import('vue').DefineComponent<import('vue'
|
|
|
197
184
|
asChild: boolean;
|
|
198
185
|
label: string;
|
|
199
186
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
200
|
-
|
|
201
|
-
export declare const ComboboxClear: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
187
|
+
export declare const LvComboboxClear: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
202
188
|
label: {
|
|
203
189
|
type: StringConstructor;
|
|
204
190
|
default: string;
|
|
@@ -231,7 +217,7 @@ export declare const ComboboxClear: import('vue').DefineComponent<import('vue').
|
|
|
231
217
|
asChild: boolean;
|
|
232
218
|
label: string;
|
|
233
219
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
234
|
-
export declare const
|
|
220
|
+
export declare const LvComboboxPortal: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
235
221
|
to: {
|
|
236
222
|
type: PropType<string | HTMLElement>;
|
|
237
223
|
default: string;
|
|
@@ -255,7 +241,7 @@ export declare const ComboboxPortal: import('vue').DefineComponent<import('vue')
|
|
|
255
241
|
to: string | HTMLElement;
|
|
256
242
|
disabled: boolean;
|
|
257
243
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
258
|
-
export declare const
|
|
244
|
+
export declare const LvComboboxContent: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
259
245
|
align: {
|
|
260
246
|
default: string;
|
|
261
247
|
type: PropType<import('@lovince/ui-headless').Align>;
|
|
@@ -328,7 +314,7 @@ export declare const ComboboxContent: import('vue').DefineComponent<import('vue'
|
|
|
328
314
|
collisionPadding: number;
|
|
329
315
|
avoidCollisions: boolean;
|
|
330
316
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
331
|
-
export declare const
|
|
317
|
+
export declare const LvComboboxItem: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
332
318
|
value: {
|
|
333
319
|
type: StringConstructor;
|
|
334
320
|
required: true;
|
|
@@ -337,7 +323,6 @@ export declare const ComboboxItem: import('vue').DefineComponent<import('vue').E
|
|
|
337
323
|
type: BooleanConstructor;
|
|
338
324
|
default: boolean;
|
|
339
325
|
};
|
|
340
|
-
/** Text used for matching and shown in the input; defaults to the item's text. */
|
|
341
326
|
textValue: {
|
|
342
327
|
type: StringConstructor;
|
|
343
328
|
default: undefined;
|
|
@@ -361,7 +346,6 @@ export declare const ComboboxItem: import('vue').DefineComponent<import('vue').E
|
|
|
361
346
|
type: BooleanConstructor;
|
|
362
347
|
default: boolean;
|
|
363
348
|
};
|
|
364
|
-
/** Text used for matching and shown in the input; defaults to the item's text. */
|
|
365
349
|
textValue: {
|
|
366
350
|
type: StringConstructor;
|
|
367
351
|
default: undefined;
|
|
@@ -380,7 +364,7 @@ export declare const ComboboxItem: import('vue').DefineComponent<import('vue').E
|
|
|
380
364
|
disabled: boolean;
|
|
381
365
|
textValue: string;
|
|
382
366
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
383
|
-
export declare const
|
|
367
|
+
export declare const LvComboboxItemIndicator: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
384
368
|
as: {
|
|
385
369
|
default: string;
|
|
386
370
|
type: PropType<string | import('vue').Component>;
|
|
@@ -404,8 +388,7 @@ export declare const ComboboxItemIndicator: import('vue').DefineComponent<import
|
|
|
404
388
|
as: string | import('vue').Component;
|
|
405
389
|
asChild: boolean;
|
|
406
390
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
407
|
-
|
|
408
|
-
export declare const ComboboxEmpty: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
391
|
+
export declare const LvComboboxEmpty: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
409
392
|
readonly as: {
|
|
410
393
|
readonly type: PropType<string | import('vue').Component>;
|
|
411
394
|
readonly default: "div";
|
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
import { PropType } from 'vue';
|
|
2
|
-
|
|
3
|
-
* A command palette: a search field over a list of actions, filtered as you
|
|
4
|
-
* type. Focus stays in the field; Enter runs the highlighted action.
|
|
5
|
-
*/
|
|
6
|
-
export declare const CommandRoot: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
2
|
+
export declare const LvCommandRoot: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
7
3
|
search: {
|
|
8
4
|
type: StringConstructor;
|
|
9
5
|
default: undefined;
|
|
10
6
|
};
|
|
11
|
-
/** Filter items by the search. Turn off when you render server results yourself. */
|
|
12
7
|
filter: {
|
|
13
8
|
type: BooleanConstructor;
|
|
14
9
|
default: boolean;
|
|
@@ -30,7 +25,6 @@ export declare const CommandRoot: import('vue').DefineComponent<import('vue').Ex
|
|
|
30
25
|
type: StringConstructor;
|
|
31
26
|
default: undefined;
|
|
32
27
|
};
|
|
33
|
-
/** Filter items by the search. Turn off when you render server results yourself. */
|
|
34
28
|
filter: {
|
|
35
29
|
type: BooleanConstructor;
|
|
36
30
|
default: boolean;
|
|
@@ -51,7 +45,7 @@ export declare const CommandRoot: import('vue').DefineComponent<import('vue').Ex
|
|
|
51
45
|
asChild: boolean;
|
|
52
46
|
search: string;
|
|
53
47
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
54
|
-
export declare const
|
|
48
|
+
export declare const LvCommandInput: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
55
49
|
as: {
|
|
56
50
|
default: string;
|
|
57
51
|
type: PropType<string | import('vue').Component>;
|
|
@@ -75,7 +69,7 @@ export declare const CommandInput: import('vue').DefineComponent<import('vue').E
|
|
|
75
69
|
as: string | import('vue').Component;
|
|
76
70
|
asChild: boolean;
|
|
77
71
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
78
|
-
export declare const
|
|
72
|
+
export declare const LvCommandList: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
79
73
|
label: {
|
|
80
74
|
type: StringConstructor;
|
|
81
75
|
default: string;
|
|
@@ -108,8 +102,7 @@ export declare const CommandList: import('vue').DefineComponent<import('vue').Ex
|
|
|
108
102
|
asChild: boolean;
|
|
109
103
|
label: string;
|
|
110
104
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
111
|
-
|
|
112
|
-
export declare const CommandGroup: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
105
|
+
export declare const LvCommandGroup: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
113
106
|
heading: {
|
|
114
107
|
type: StringConstructor;
|
|
115
108
|
default: undefined;
|
|
@@ -142,13 +135,11 @@ export declare const CommandGroup: import('vue').DefineComponent<import('vue').E
|
|
|
142
135
|
asChild: boolean;
|
|
143
136
|
heading: string;
|
|
144
137
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
145
|
-
export declare const
|
|
146
|
-
/** Passed to `@select`; defaults to the item's text. */
|
|
138
|
+
export declare const LvCommandItem: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
147
139
|
value: {
|
|
148
140
|
type: StringConstructor;
|
|
149
141
|
default: undefined;
|
|
150
142
|
};
|
|
151
|
-
/** Extra words that should find this item: synonyms, codes, old names. */
|
|
152
143
|
keywords: {
|
|
153
144
|
type: PropType<string[]>;
|
|
154
145
|
default: () => never[];
|
|
@@ -170,12 +161,10 @@ export declare const CommandItem: import('vue').DefineComponent<import('vue').Ex
|
|
|
170
161
|
}>, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
171
162
|
select: (value: string) => boolean;
|
|
172
163
|
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
173
|
-
/** Passed to `@select`; defaults to the item's text. */
|
|
174
164
|
value: {
|
|
175
165
|
type: StringConstructor;
|
|
176
166
|
default: undefined;
|
|
177
167
|
};
|
|
178
|
-
/** Extra words that should find this item: synonyms, codes, old names. */
|
|
179
168
|
keywords: {
|
|
180
169
|
type: PropType<string[]>;
|
|
181
170
|
default: () => never[];
|
|
@@ -201,7 +190,7 @@ export declare const CommandItem: import('vue').DefineComponent<import('vue').Ex
|
|
|
201
190
|
disabled: boolean;
|
|
202
191
|
keywords: string[];
|
|
203
192
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
204
|
-
export declare const
|
|
193
|
+
export declare const LvCommandEmpty: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
205
194
|
readonly as: {
|
|
206
195
|
readonly type: PropType<string | import('vue').Component>;
|
|
207
196
|
readonly default: "div";
|
|
@@ -225,8 +214,7 @@ export declare const CommandEmpty: import('vue').DefineComponent<import('vue').E
|
|
|
225
214
|
readonly as: string | import('vue').Component;
|
|
226
215
|
readonly asChild: boolean;
|
|
227
216
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
228
|
-
|
|
229
|
-
export declare const CommandSeparator: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
217
|
+
export declare const LvCommandSeparator: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
230
218
|
readonly as: {
|
|
231
219
|
readonly type: PropType<string | import('vue').Component>;
|
|
232
220
|
readonly default: "div";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PropType } from 'vue';
|
|
2
2
|
import { Direction, EmojiGroup, EmojiPickerSection, EmojiRecord, SkinTone } from '@lovince/ui-headless';
|
|
3
3
|
export type { EmojiPickerSection };
|
|
4
|
-
export declare const
|
|
4
|
+
export declare const LvEmojiPickerRoot: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
5
5
|
emojis: {
|
|
6
6
|
type: PropType<readonly EmojiRecord[]>;
|
|
7
7
|
default: () => never[];
|
|
@@ -107,7 +107,7 @@ export declare const EmojiPickerRoot: import('vue').DefineComponent<import('vue'
|
|
|
107
107
|
maxRecent: number;
|
|
108
108
|
columns: number;
|
|
109
109
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
110
|
-
export declare const
|
|
110
|
+
export declare const LvEmojiPickerSearch: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
111
111
|
as: {
|
|
112
112
|
default: string;
|
|
113
113
|
type: PropType<string | import('vue').Component>;
|
|
@@ -131,7 +131,7 @@ export declare const EmojiPickerSearch: import('vue').DefineComponent<import('vu
|
|
|
131
131
|
as: string | import('vue').Component;
|
|
132
132
|
asChild: boolean;
|
|
133
133
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
134
|
-
export declare const
|
|
134
|
+
export declare const LvEmojiPickerList: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
135
135
|
label: {
|
|
136
136
|
type: StringConstructor;
|
|
137
137
|
default: string;
|
|
@@ -164,7 +164,7 @@ export declare const EmojiPickerList: import('vue').DefineComponent<import('vue'
|
|
|
164
164
|
asChild: boolean;
|
|
165
165
|
label: string;
|
|
166
166
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
167
|
-
export declare const
|
|
167
|
+
export declare const LvEmojiPickerGroup: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
168
168
|
section: {
|
|
169
169
|
type: PropType<EmojiPickerSection>;
|
|
170
170
|
required: true;
|
|
@@ -196,7 +196,7 @@ export declare const EmojiPickerGroup: import('vue').DefineComponent<import('vue
|
|
|
196
196
|
as: string | import('vue').Component;
|
|
197
197
|
asChild: boolean;
|
|
198
198
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
199
|
-
export declare const
|
|
199
|
+
export declare const LvEmojiPickerGroupHeading: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
200
200
|
as: {
|
|
201
201
|
default: string;
|
|
202
202
|
type: PropType<string | import('vue').Component>;
|
|
@@ -220,7 +220,7 @@ export declare const EmojiPickerGroupHeading: import('vue').DefineComponent<impo
|
|
|
220
220
|
as: string | import('vue').Component;
|
|
221
221
|
asChild: boolean;
|
|
222
222
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
223
|
-
export declare const
|
|
223
|
+
export declare const LvEmojiPickerItem: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
224
224
|
as: {
|
|
225
225
|
default: string;
|
|
226
226
|
type: PropType<string | import('vue').Component>;
|
|
@@ -260,7 +260,7 @@ export declare const EmojiPickerItem: import('vue').DefineComponent<import('vue'
|
|
|
260
260
|
as: string | import('vue').Component;
|
|
261
261
|
asChild: boolean;
|
|
262
262
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
263
|
-
export declare const
|
|
263
|
+
export declare const LvEmojiPickerNav: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
264
264
|
label: {
|
|
265
265
|
type: StringConstructor;
|
|
266
266
|
default: string;
|
|
@@ -293,7 +293,7 @@ export declare const EmojiPickerNav: import('vue').DefineComponent<import('vue')
|
|
|
293
293
|
asChild: boolean;
|
|
294
294
|
label: string;
|
|
295
295
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
296
|
-
export declare const
|
|
296
|
+
export declare const LvEmojiPickerNavItem: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
297
297
|
section: {
|
|
298
298
|
type: StringConstructor;
|
|
299
299
|
required: true;
|
|
@@ -333,7 +333,7 @@ export declare const EmojiPickerNavItem: import('vue').DefineComponent<import('v
|
|
|
333
333
|
as: string | import('vue').Component;
|
|
334
334
|
asChild: boolean;
|
|
335
335
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
336
|
-
export declare const
|
|
336
|
+
export declare const LvEmojiPickerEmpty: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
337
337
|
readonly as: {
|
|
338
338
|
readonly type: PropType<string | import('vue').Component>;
|
|
339
339
|
readonly default: "div";
|