@nexdom/uimed-vue 2.0.0-beta.7 → 2.0.0-beta.9
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/AGENTS.md +85 -12
- package/README.md +1 -1
- package/dist/components.d.ts +128 -60
- package/dist/components.js +339 -70
- package/dist/composables.d.ts +130 -4
- package/dist/composables.js +55 -3
- package/dist/types-HPMP8IrV.d.ts +49 -0
- package/dist/use-dialog-Ck2_ZW7T.js +124 -0
- package/package.json +1 -1
- package/dist/types-BPXXtbmW.d.ts +0 -5
- package/dist/use-toast-CACuYhK_.js +0 -53
package/AGENTS.md
CHANGED
|
@@ -30,7 +30,7 @@ Add the Vite plugin:
|
|
|
30
30
|
|
|
31
31
|
```ts
|
|
32
32
|
// vite.config.ts
|
|
33
|
-
import { vitePluginUimed } from "@nexdom/uimed-vue/plugins
|
|
33
|
+
import { vitePluginUimed } from "@nexdom/uimed-vue/plugins";
|
|
34
34
|
|
|
35
35
|
// ...
|
|
36
36
|
|
|
@@ -55,18 +55,18 @@ createApp(App).use(uimed).mount("#app");
|
|
|
55
55
|
|
|
56
56
|
### Usage
|
|
57
57
|
|
|
58
|
-
Place the `
|
|
58
|
+
Place the `UMain` component at the top of `App.vue`, then add other components as needed:
|
|
59
59
|
|
|
60
60
|
```vue
|
|
61
61
|
<!-- App.vue -->
|
|
62
62
|
<template>
|
|
63
|
-
<
|
|
63
|
+
<u-main>
|
|
64
64
|
<!-- ... -->
|
|
65
|
-
</
|
|
65
|
+
</u-main>
|
|
66
66
|
</template>
|
|
67
67
|
|
|
68
68
|
<script setup lang="ts">
|
|
69
|
-
import {
|
|
69
|
+
import { UMain } from "@nexdom/uimed-vue/components";
|
|
70
70
|
</script>
|
|
71
71
|
```
|
|
72
72
|
|
|
@@ -102,24 +102,70 @@ vp env setup # create shims like vpr and vpx
|
|
|
102
102
|
vp install # install dependencies
|
|
103
103
|
```
|
|
104
104
|
|
|
105
|
+
On Windows, prefer VSCode's "Dev Containers: Clone Repository in Container Volume" over opening a folder cloned on the host:
|
|
106
|
+
|
|
107
|
+
- A host clone with `core.autocrlf=true` checks files out with CRLF, and `vpr check` then reports formatting issues on every file. `.gitattributes` enforces LF, but clones made before it was added need `git rm -rq --cached . && git reset --hard` to be re-normalized (commit or stash local changes first, since `reset --hard` discards them).
|
|
108
|
+
- A host folder bind-mounted into the container is roughly 10x slower (unit tests alone go from seconds to minutes), which makes Stryker's initial test run time out.
|
|
109
|
+
|
|
105
110
|
## Commands
|
|
106
111
|
|
|
107
|
-
- `vpr check` — lint, formatter, and type-check (
|
|
112
|
+
- `vpr check` — lint, formatter, and type-check (builds the library first, since the type-check reads `dist`)
|
|
108
113
|
- `vp test --coverage` — unit tests with coverage (Vitest, jsdom, 100% coverage threshold enforced)
|
|
109
|
-
- `vpr test:mutations` — mutation tests (Stryker; thresholds: high 100, low
|
|
110
|
-
- `vpr test:e2e` — E2E tests (Playwright, runs against the built docs preview site)
|
|
114
|
+
- `vpr test:mutations` — mutation tests (Stryker; thresholds: high 100, low 100, break 100). It starts one test runner per CPU core; on machines with limited memory, run `vpx stryker run --concurrency 4` instead
|
|
115
|
+
- `vpr test:e2e` — E2E tests (Playwright, runs against the built docs preview site). Outside CI it reuses any server already on port 4173, which is also `vpr docs:dev`'s port: stop the dev server first, or the tests run against it instead of the built site
|
|
111
116
|
- `vpr depcruise` — architecture/dependency rules (dependency-cruiser)
|
|
112
117
|
- `vp pack` / `vpr build` — build the library
|
|
113
118
|
- `vpr docs` / `vpr docs:dev` — run docs site (imports the lib from `dist`, not `src` — run `vpr dev` in a second terminal to keep `dist` updated while iterating)
|
|
114
119
|
|
|
115
120
|
CI (`.github/workflows/ci.yml`) runs, in order: commitlint on PR commits, `vp pack`, `vpr check`, `vpr depcruise`, `vp test --coverage`, `vpr test:mutations`, `vpr test:e2e`. Match this locally before opening a PR.
|
|
116
121
|
|
|
122
|
+
### Focused runs while iterating
|
|
123
|
+
|
|
124
|
+
The full suite takes minutes; while working on a single component or composable, scope each step to it (`button` below is an example) and run the full suite only before opening a PR:
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
# Unit tests of one or more folders
|
|
128
|
+
vp test src/components/button
|
|
129
|
+
|
|
130
|
+
# Same, with coverage limited to the files you changed. Without `--coverage.include`, files that
|
|
131
|
+
# are only imported (e.g. the children of `main.vue`) count as uncovered and fail the 100% threshold
|
|
132
|
+
vp test src/components/button --coverage --coverage.include="src/components/button/**"
|
|
133
|
+
|
|
134
|
+
# Mutation tests of specific files. List several files in a single comma-separated `--mutate`
|
|
135
|
+
# (repeating the flag keeps only the last one)
|
|
136
|
+
vpx stryker run --mutate "src/components/button/button.vue,src/composables/button/button.ts"
|
|
137
|
+
|
|
138
|
+
# One E2E spec
|
|
139
|
+
vpr test:e2e e2e/components/button.spec.ts
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Adding a new component
|
|
143
|
+
|
|
144
|
+
Use an existing component (e.g. `button`) as the reference, and deliver all of the following in the same PR:
|
|
145
|
+
|
|
146
|
+
1. `src/components/<name>/<name>.vue` (following the pattern in [Code conventions](#code-conventions)), `types.ts` and `__tests__/<name>.test.ts`.
|
|
147
|
+
2. The `U`-prefixed export in `src/components/index.ts`.
|
|
148
|
+
3. A usage guide at `docs/guide/components/<name>.md`, with `<demo>` examples (and a `<playground>` section when the component has configurable props), and an API reference at `docs/api/components/<name>.md` (props, events and slots tables). Both in Portuguese.
|
|
149
|
+
4. Both pages registered in the sidebar at `docs/.vitepress/config.ts`.
|
|
150
|
+
5. `e2e/components/<name>.spec.ts` covering the guide's interactive examples and a "UI consistency" screenshot check (plus accessible snapshots where relevant). Commit the generated files under `__snapshots__`/`__screenshot__`.
|
|
151
|
+
6. The full CI sequence passing locally.
|
|
152
|
+
|
|
153
|
+
## Adding a new composable
|
|
154
|
+
|
|
155
|
+
Use an existing composable (e.g. `use-toast`) as the reference, and deliver in the same PR:
|
|
156
|
+
|
|
157
|
+
1. `src/composables/<group>/<name>.ts` and `__tests__/<name>.test.ts`, plus the types in the group's `types.ts`. If it relies on an internal component (as `useToast` relies on the internal `Toast` rendered by `UMain`), that component follows the component layout but isn't exported.
|
|
158
|
+
2. The export in `src/composables/index.ts`, and its assertion in `src/composables/__tests__/index.test.ts`.
|
|
159
|
+
3. A usage guide at `docs/guide/composables/<name>.md` and an API reference at `docs/api/composables/<name>.md`, both in Portuguese, registered in both sidebars at `docs/.vitepress/config.ts` and listed in `docs/api/index.md` and in the table of `docs/guide/index.md`. If it relies on `UMain` (like `useToast`), also mention it in `UMain`'s guide and API pages.
|
|
160
|
+
4. `e2e/composables/<name>.spec.ts` covering the guide's examples and a "UI consistency" screenshot check.
|
|
161
|
+
5. The full CI sequence passing locally.
|
|
162
|
+
|
|
117
163
|
## Code conventions
|
|
118
164
|
|
|
119
165
|
- All `src` code is written in English. `docs` content is written in Portuguese (aimed at Brazilian users), even though file/dir names stay in English.
|
|
120
166
|
- `docs` must not mention Vuetify
|
|
121
167
|
- A new component/composable must be listed in its guide page (`docs/guide/…`), its API page (`docs/api/…`), both sidebars in `docs/.vitepress/config.ts`, the guide index table (`docs/guide/index.md`) and the API index list (`docs/api/index.md`).
|
|
122
|
-
- Never write CSS
|
|
168
|
+
- Never write CSS or `<style>` blocks, and expose styling to consumers only through props. Inside the library's own components, a Vuetify utility class is acceptable when no Vuetify prop covers the need (e.g. `text-wrap` on a card title), with a comment saying why.
|
|
123
169
|
- Path aliases: `@/*` → `src/*`, `@e2e/*` → `e2e/*`.
|
|
124
170
|
- Every public component follows this pattern to block access to internals and give it an editor-hover description:
|
|
125
171
|
|
|
@@ -139,8 +185,9 @@ CI (`.github/workflows/ci.yml`) runs, in order: commitlint on PR commits, `vp pa
|
|
|
139
185
|
</script>
|
|
140
186
|
```
|
|
141
187
|
|
|
142
|
-
- Component layout: `src/components/<name>/<name>.vue`, `types.ts` for prop/option types, `__tests__/<name>.test.ts` for unit tests.
|
|
143
|
-
-
|
|
188
|
+
- Component layout: `src/components/<name>/<name>.vue`, `types.ts` for prop/option types, `__tests__/<name>.test.ts` for unit tests. Components that belong to a group live in the group's folder (e.g. the internal `src/components/dialogs/toast.vue`).
|
|
189
|
+
- Composables live in a group folder: `src/composables/<group>/<name>.ts`, with `types.ts` and `__tests__/` in the group folder (e.g. `src/composables/dialogs/use-toast.ts`).
|
|
190
|
+
- Public components/composables are re-exported from `src/components/index.ts` and `src/composables/index.ts`. Prop types stay internal (`types.ts` is not re-exported); consumers derive them with `ComponentProps` (see [Usage](#usage)).
|
|
144
191
|
- Every publicly exported component must use the `U` prefix on its export identifier (e.g., `UButton`, `UMain`), while internal file names and component names remain unprefixed.
|
|
145
192
|
- Use [JSDoc](https://jsdoc.app/about-getting-started) on every method/prop/type intended to be part of the public API — it's the primary documentation surface and supports markdown/code examples.
|
|
146
193
|
- Known workarounds (see CONTRIBUTING.md before touching related config): `stryker-vue-ignorer` patches a Stryker/Vue macro-hoisting issue; `vue-tsc` is used for type-check instead of Vite+'s built-in one due to an oxlint/Vue support gap. Both are meant to be removed once their upstream issues are fixed — don't build further on top of them without checking if they're still needed.
|
|
@@ -149,8 +196,34 @@ CI (`.github/workflows/ci.yml`) runs, in order: commitlint on PR commits, `vp pa
|
|
|
149
196
|
|
|
150
197
|
- Unit tests use Vitest + `@vue/test-utils`, with `vueTestUtilsPluginUimed()` from `@/unit-test.ts` to mount a Vuetify instance.
|
|
151
198
|
- Global unit test setup (`src/__tests__/setup.ts`) stubs `visualViewport`, uses fake timers, and silences `console.error/warn/log`.
|
|
152
|
-
-
|
|
199
|
+
- With fake timers in jsdom, Vuetify transitions (e.g. of `VDialog`, `VMenu`) don't finish on their own. Emit the transition events on the Vuetify component (`wrapper.findComponent(VDialog).vm.$emit("afterLeave")`) or advance the timers with `await vi.runAllTimersAsync()`.
|
|
200
|
+
- Coverage threshold is 100%; mutation testing threshold is 100% (break at 100). Don't add code paths without covering tests. Mutants that don't compile are reported as compile errors and don't count toward the score.
|
|
153
201
|
- E2E tests (Playwright, `e2e/`) run against the built docs preview (`http://localhost:4173/uimed-vue/`). Snapshots/screenshots live under `__snapshots__`/`__screenshot__` next to each spec.
|
|
202
|
+
- In E2E, a paused `page.clock` also freezes transitions, so overlays never finish leaving. Use `page.clock.pauseAt` to hold time-based work (e.g. a demo action with `setTimeout`), `page.clock.fastForward` to complete it, then `page.clock.resume()` before expecting the overlay to be hidden (see `e2e/composables/use-confirm.spec.ts`).
|
|
203
|
+
|
|
204
|
+
## Library documentation and dependencies
|
|
205
|
+
|
|
206
|
+
The stack is newer than most AI models' training data (Vue 3.5, Vuetify 4, Vue Router 5, Vite+ 0.2, Vitest 4, TypeScript 6, VitePress 2 alpha, Stryker 10, Playwright 1.62), so don't rely on memory for library APIs.
|
|
207
|
+
|
|
208
|
+
- Before using an API this repo doesn't use yet, or implementing something from scratch, look it up in the version declared in `package.json`. The project's `.mcp.json` provides two servers for that:
|
|
209
|
+
- `context7`, with these library IDs: Vue `/websites/vuejs`, Vuetify `/websites/vuetifyjs_en`, Vue Router `/websites/router_vuejs`, Vite+ `/websites/viteplus_dev`, Vitest `/vitest-dev/vitest`, Vue Test Utils `/vuejs/test-utils`, Playwright `/microsoft/playwright`, VitePress `/vuejs/vitepress`, Stryker `/stryker-mutator/stryker-js`.
|
|
210
|
+
- `vuetify`, Vuetify's own server, for component and composable APIs and release notes. Its tools that create or update bins, links, playgrounds or bug reports publish content outside the repo and are denied in `.claude/settings.json`.
|
|
211
|
+
- Queries to both servers leave your machine: describe what you need in generic terms and never include source code or business rules.
|
|
212
|
+
- Before adding a dependency, check whether Vuetify, `@nexdom/shared` or the current dependencies already cover the need. If not, confirm with the requester, check the package's docs, maintenance and license, and declare runtime dependencies as `peerDependencies` (enforced by dependency-cruiser's `use-peer-deps` rule).
|
|
213
|
+
- Vuetify is an internal detail: consumers use the library's props, and `docs` never mention Vuetify.
|
|
214
|
+
|
|
215
|
+
## AI agents
|
|
216
|
+
|
|
217
|
+
Besides this file, the repo ships Claude Code subagents in `.claude/agents/`:
|
|
218
|
+
|
|
219
|
+
- `issue-planner`: turns an issue into an API proposal plus open questions, before any code is written.
|
|
220
|
+
- `issue-implementer`: implements an issue end to end (source, tests, docs, E2E).
|
|
221
|
+
- `code-reviewer`: reviews a branch or PR against these conventions, without changing code.
|
|
222
|
+
- `dependency-updater`: evaluates and applies dependency updates, such as Dependabot PRs.
|
|
223
|
+
|
|
224
|
+
Issues and PRs live in `nexdom-healthtech/uimed-vue`. Pass `-R nexdom-healthtech/uimed-vue` to `gh`, since clones from forks have issues disabled, and read issues with `gh issue view <number> -R nexdom-healthtech/uimed-vue --json title,body,comments` (`--comments` prints nothing in non-interactive shells).
|
|
225
|
+
|
|
226
|
+
To resolve an issue, run `/resolve-issue <number>` (`.claude/skills/resolve-issue/`). It chains planner, implementer and reviewer, asks you about open questions and waits for your approval of the public API before any code is written.
|
|
154
227
|
|
|
155
228
|
## Git workflow
|
|
156
229
|
|
package/README.md
CHANGED
package/dist/components.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as
|
|
1
|
+
import { t as ButtonProps } from "./types-HPMP8IrV.js";
|
|
2
2
|
import { RouteLocationRaw } from "vue-router";
|
|
3
3
|
//#region src/components/app-bar/types.d.ts
|
|
4
4
|
/**
|
|
@@ -171,8 +171,8 @@ type MainProps = {
|
|
|
171
171
|
*
|
|
172
172
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/main | Main Guide}
|
|
173
173
|
*/
|
|
174
|
-
declare const _default$
|
|
175
|
-
declare const __VLS_export$
|
|
174
|
+
declare const _default$7: typeof __VLS_export$12;
|
|
175
|
+
declare const __VLS_export$12: __VLS_WithSlots$8<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<MainProps & {
|
|
176
176
|
notificationsOpen?: boolean;
|
|
177
177
|
}, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {
|
|
178
178
|
"update:notificationsOpen": (value: boolean) => any;
|
|
@@ -189,50 +189,6 @@ type __VLS_WithSlots$8<T, S> = T & {
|
|
|
189
189
|
};
|
|
190
190
|
};
|
|
191
191
|
//#endregion
|
|
192
|
-
//#region src/components/button/types.d.ts
|
|
193
|
-
type ButtonVariant = "primary" | "secondary" | "ghost";
|
|
194
|
-
/**
|
|
195
|
-
* Props exposed by the {@link Button} component.
|
|
196
|
-
*/
|
|
197
|
-
type ButtonProps = {
|
|
198
|
-
/**
|
|
199
|
-
* Applies a distinct style variation to the button.
|
|
200
|
-
* One of `primary`, `secondary`, or `ghost`.
|
|
201
|
-
* @default "primary"
|
|
202
|
-
*/
|
|
203
|
-
variant?: ButtonVariant;
|
|
204
|
-
/**
|
|
205
|
-
* Applies a distinct behavior to the button.
|
|
206
|
-
* One of `button` or `submit`.
|
|
207
|
-
* @default "button"
|
|
208
|
-
*/
|
|
209
|
-
type?: "submit" | "button";
|
|
210
|
-
/**
|
|
211
|
-
* Applies a color to the button.
|
|
212
|
-
* One of `primary`, `secondary`, `positive`, `informative`, `caution`, or `danger`.
|
|
213
|
-
* @default "primary"
|
|
214
|
-
*/
|
|
215
|
-
color?: ColorVariant;
|
|
216
|
-
/**
|
|
217
|
-
* Removes the ability to click or target the button.
|
|
218
|
-
* @default false
|
|
219
|
-
*/
|
|
220
|
-
disabled?: boolean;
|
|
221
|
-
/**
|
|
222
|
-
* Displays a loading indicator on the button, disabling interaction.
|
|
223
|
-
* @default false
|
|
224
|
-
*/
|
|
225
|
-
loading?: boolean;
|
|
226
|
-
/**
|
|
227
|
-
* Associated [form](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/form) id.
|
|
228
|
-
*/
|
|
229
|
-
form?: string;
|
|
230
|
-
/**
|
|
231
|
-
* Component id to use on automated tests.
|
|
232
|
-
*/
|
|
233
|
-
dataTestid?: string;
|
|
234
|
-
};
|
|
235
|
-
//#endregion
|
|
236
192
|
//#region src/components/button/button.vue.d.ts
|
|
237
193
|
/**
|
|
238
194
|
* Button component to be used throughout the application.
|
|
@@ -248,8 +204,8 @@ type ButtonProps = {
|
|
|
248
204
|
*
|
|
249
205
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/button | Button Guide}
|
|
250
206
|
*/
|
|
251
|
-
declare const _default: typeof __VLS_export$
|
|
252
|
-
declare const __VLS_export$
|
|
207
|
+
declare const _default$1: typeof __VLS_export$11;
|
|
208
|
+
declare const __VLS_export$11: __VLS_WithSlots$7<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<ButtonProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {} & {
|
|
253
209
|
click: (event: MouseEvent) => any;
|
|
254
210
|
}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<ButtonProps> & Readonly<{
|
|
255
211
|
onClick?: ((event: MouseEvent) => any) | undefined;
|
|
@@ -326,6 +282,118 @@ type TextFieldProps = {
|
|
|
326
282
|
dataTestid?: string;
|
|
327
283
|
};
|
|
328
284
|
//#endregion
|
|
285
|
+
//#region src/components/inputs/autocomplete-field/types.d.ts
|
|
286
|
+
/**
|
|
287
|
+
* Autocomplete/Combobox item type that can be either a string or an object with label and value.
|
|
288
|
+
*/
|
|
289
|
+
type AutocompleteItem<T = string> = string | {
|
|
290
|
+
label: string;
|
|
291
|
+
value: T;
|
|
292
|
+
};
|
|
293
|
+
/**
|
|
294
|
+
* Props exposed by the {@link AutocompleteField} component.
|
|
295
|
+
*/
|
|
296
|
+
type AutocompleteFieldProps<T = string, Multiple extends boolean = false> = {
|
|
297
|
+
/**
|
|
298
|
+
* Applies a distinct style variation to the field.
|
|
299
|
+
* One of `primary` or `secondary`.
|
|
300
|
+
* @default "primary"
|
|
301
|
+
*/
|
|
302
|
+
variant?: TextFieldVariant;
|
|
303
|
+
/**
|
|
304
|
+
* Removes the ability to click or target the field.
|
|
305
|
+
* @default false
|
|
306
|
+
*/
|
|
307
|
+
disabled?: boolean;
|
|
308
|
+
/**
|
|
309
|
+
* Displays a loading indicator on the input.
|
|
310
|
+
* @default false
|
|
311
|
+
*/
|
|
312
|
+
loading?: boolean;
|
|
313
|
+
/**
|
|
314
|
+
* Displays clear action.
|
|
315
|
+
* @default false
|
|
316
|
+
*/
|
|
317
|
+
clearable?: boolean;
|
|
318
|
+
/**
|
|
319
|
+
* Prevent value changes.
|
|
320
|
+
* @default false
|
|
321
|
+
*/
|
|
322
|
+
readonly?: boolean;
|
|
323
|
+
/**
|
|
324
|
+
* Add rules to require field to be filled before form submission.
|
|
325
|
+
* @default false
|
|
326
|
+
*/
|
|
327
|
+
required?: boolean;
|
|
328
|
+
/**
|
|
329
|
+
* Field label.
|
|
330
|
+
*/
|
|
331
|
+
label?: string;
|
|
332
|
+
/**
|
|
333
|
+
* Field placeholder.
|
|
334
|
+
*/
|
|
335
|
+
placeholder?: string;
|
|
336
|
+
/**
|
|
337
|
+
* Field message to show and direct user to fill field correctly.
|
|
338
|
+
*
|
|
339
|
+
* This message will be replaced when there's an error message to be shown.
|
|
340
|
+
*/
|
|
341
|
+
hint?: string;
|
|
342
|
+
/**
|
|
343
|
+
* Component id to use on automated tests.
|
|
344
|
+
*/
|
|
345
|
+
dataTestid?: string;
|
|
346
|
+
/**
|
|
347
|
+
* Used to prevent user from adding new values to the list.
|
|
348
|
+
* @default false
|
|
349
|
+
*/
|
|
350
|
+
strict?: boolean;
|
|
351
|
+
/**
|
|
352
|
+
* Allow selecting/typing more than one value.
|
|
353
|
+
*
|
|
354
|
+
* Passing the literal `true` narrows `modelValue` and `update:modelValue`
|
|
355
|
+
* to `T[]` instead of `T`.
|
|
356
|
+
* @default false
|
|
357
|
+
*/
|
|
358
|
+
multiple?: Multiple;
|
|
359
|
+
/**
|
|
360
|
+
* List of autocomplete items. Can be strings or objects with label and value.
|
|
361
|
+
* @default []
|
|
362
|
+
*/
|
|
363
|
+
items?: AutocompleteItem<T>[];
|
|
364
|
+
};
|
|
365
|
+
//#endregion
|
|
366
|
+
//#region src/components/inputs/autocomplete-field/autocomplete-field.vue.d.ts
|
|
367
|
+
/**
|
|
368
|
+
* Select field component to be used throughout the application.
|
|
369
|
+
*
|
|
370
|
+
* @example
|
|
371
|
+
* ```vue
|
|
372
|
+
* <template>
|
|
373
|
+
* <u-autocomplete-field label="Country" :items="['Brazil', 'Argentina']" />
|
|
374
|
+
* </template>
|
|
375
|
+
* ```
|
|
376
|
+
*
|
|
377
|
+
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/autocomplete-field | AutocompleteField Guide}
|
|
378
|
+
*/
|
|
379
|
+
declare const _default: typeof __VLS_export$10;
|
|
380
|
+
declare const __VLS_export$10: <T = string, Multiple extends boolean = false>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal$1<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
381
|
+
props: import("vue").PublicProps & __VLS_PrettifyLocal$1<(AutocompleteFieldProps<T, Multiple> & {
|
|
382
|
+
modelValue?: Multiple extends true ? T[] : T;
|
|
383
|
+
}) & {
|
|
384
|
+
"onUpdate:modelValue"?: ((value: Multiple extends true ? T[] : T | undefined) => any) | undefined;
|
|
385
|
+
}> & (typeof globalThis extends {
|
|
386
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
387
|
+
} ? P : {});
|
|
388
|
+
expose: (exposed: {}) => void;
|
|
389
|
+
attrs: any;
|
|
390
|
+
slots: {};
|
|
391
|
+
emit: (event: "update:modelValue", value: Multiple extends true ? T[] : T | undefined) => void;
|
|
392
|
+
}>) => import("vue").VNode & {
|
|
393
|
+
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
394
|
+
};
|
|
395
|
+
type __VLS_PrettifyLocal$1<T> = (T extends any ? { [K in keyof T]: T[K]; } : { [K in keyof T as K]: T[K]; }) & {};
|
|
396
|
+
//#endregion
|
|
329
397
|
//#region src/components/inputs/text-field/text-field.vue.d.ts
|
|
330
398
|
/**
|
|
331
399
|
* Text field component to be used throughout the application.
|
|
@@ -339,7 +407,7 @@ type TextFieldProps = {
|
|
|
339
407
|
*
|
|
340
408
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/text-field | TextField Guide}
|
|
341
409
|
*/
|
|
342
|
-
declare const _default$
|
|
410
|
+
declare const _default$12: typeof __VLS_export$9;
|
|
343
411
|
declare const __VLS_export$9: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<TextFieldProps & {
|
|
344
412
|
modelValue?: string;
|
|
345
413
|
}, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {
|
|
@@ -402,7 +470,7 @@ type CheckboxProps<T = boolean> = {
|
|
|
402
470
|
*
|
|
403
471
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/checkbox | Checkbox Guide}
|
|
404
472
|
*/
|
|
405
|
-
declare const _default$
|
|
473
|
+
declare const _default$2: typeof __VLS_export$8;
|
|
406
474
|
declare const __VLS_export$8: <T = any>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
407
475
|
props: import("vue").PublicProps & __VLS_PrettifyLocal<(CheckboxProps<boolean | T> & {
|
|
408
476
|
modelValue?: T;
|
|
@@ -446,7 +514,7 @@ type ContainerProps = {
|
|
|
446
514
|
*
|
|
447
515
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/layout | Container Guide}
|
|
448
516
|
*/
|
|
449
|
-
declare const _default$
|
|
517
|
+
declare const _default$4: typeof __VLS_export$7;
|
|
450
518
|
declare const __VLS_export$7: __VLS_WithSlots$6<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<ContainerProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<ContainerProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
|
|
451
519
|
default?: (props: {}) => any;
|
|
452
520
|
}>;
|
|
@@ -484,7 +552,7 @@ type RowProps = {
|
|
|
484
552
|
*
|
|
485
553
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/layout | Row Guide}
|
|
486
554
|
*/
|
|
487
|
-
declare const _default$
|
|
555
|
+
declare const _default$8: typeof __VLS_export$6;
|
|
488
556
|
declare const __VLS_export$6: __VLS_WithSlots$5<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<RowProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<RowProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
|
|
489
557
|
default?: (props: {}) => any;
|
|
490
558
|
}>;
|
|
@@ -533,7 +601,7 @@ type Cols = "auto" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10"
|
|
|
533
601
|
*
|
|
534
602
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/layout | Column Guide}
|
|
535
603
|
*/
|
|
536
|
-
declare const _default$
|
|
604
|
+
declare const _default$3: typeof __VLS_export$5;
|
|
537
605
|
declare const __VLS_export$5: __VLS_WithSlots$4<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<ColumnProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<ColumnProps> & Readonly<{}>, {
|
|
538
606
|
cols: "12" | "auto" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11";
|
|
539
607
|
}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
|
|
@@ -576,7 +644,7 @@ type FormProps = {
|
|
|
576
644
|
*
|
|
577
645
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/form | Form Guide}
|
|
578
646
|
*/
|
|
579
|
-
declare const _default$
|
|
647
|
+
declare const _default$6: typeof __VLS_export$4;
|
|
580
648
|
declare const __VLS_export$4: __VLS_WithSlots$3<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<FormProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {} & {
|
|
581
649
|
submit: (event: SubmitEvent) => any;
|
|
582
650
|
}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<FormProps> & Readonly<{
|
|
@@ -606,7 +674,7 @@ type __VLS_WithSlots$3<T, S> = T & {
|
|
|
606
674
|
*
|
|
607
675
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/section | Section Guide}
|
|
608
676
|
*/
|
|
609
|
-
declare const _default$
|
|
677
|
+
declare const _default$10: typeof __VLS_export$3;
|
|
610
678
|
declare const __VLS_export$3: __VLS_WithSlots$2<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<{}, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, true, {}, any>, {
|
|
611
679
|
default?: (props: {}) => any;
|
|
612
680
|
}>;
|
|
@@ -692,7 +760,7 @@ interface SectionAction extends ButtonProps {
|
|
|
692
760
|
*
|
|
693
761
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/section | Section Guide}
|
|
694
762
|
*/
|
|
695
|
-
declare const _default$
|
|
763
|
+
declare const _default$9: typeof __VLS_export$2;
|
|
696
764
|
declare const __VLS_export$2: __VLS_WithSlots$1<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<SectionProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<SectionProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
|
|
697
765
|
default?: (props: {}) => any;
|
|
698
766
|
}>;
|
|
@@ -767,7 +835,7 @@ type TableProps = {
|
|
|
767
835
|
*
|
|
768
836
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/table | Table Guide}
|
|
769
837
|
*/
|
|
770
|
-
declare const _default$
|
|
838
|
+
declare const _default$11: typeof __VLS_export$1;
|
|
771
839
|
declare const __VLS_export$1: import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<TableProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<TableProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>;
|
|
772
840
|
//#endregion
|
|
773
841
|
//#region src/components/details/types.d.ts
|
|
@@ -815,7 +883,7 @@ type DetailsProps = {
|
|
|
815
883
|
*
|
|
816
884
|
* @see {@link https://nexdom-healthtech.github.io/uimed-vue/guide/components/details | Details Guide}
|
|
817
885
|
*/
|
|
818
|
-
declare const _default$
|
|
886
|
+
declare const _default$5: typeof __VLS_export;
|
|
819
887
|
declare const __VLS_export: __VLS_WithSlots<import("vue", { with: { "resolution-mode": "import" } }).DefineComponent<DetailsProps, {}, {}, {}, {}, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, import("vue", { with: { "resolution-mode": "import" } }).ComponentOptionsMixin, {}, string, import("vue", { with: { "resolution-mode": "import" } }).PublicProps, Readonly<DetailsProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue", { with: { "resolution-mode": "import" } }).ComponentProvideOptions, false, {}, any>, {
|
|
820
888
|
default?: (props: {}) => any;
|
|
821
889
|
}>;
|
|
@@ -825,4 +893,4 @@ type __VLS_WithSlots<T, S> = T & {
|
|
|
825
893
|
};
|
|
826
894
|
};
|
|
827
895
|
//#endregion
|
|
828
|
-
export { _default as
|
|
896
|
+
export { _default as UAutocompleteField, _default$1 as UButton, _default$2 as UCheckbox, _default$3 as UColumn, _default$4 as UContainer, _default$5 as UDetails, _default$6 as UForm, _default$7 as UMain, _default$8 as URow, _default$9 as USection, _default$10 as USectionContent, _default$11 as UTable, _default$12 as UTextField };
|