@illinois-grad/grad-vue 0.1.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +59 -7
  3. package/dist/components/GAlertDialog.vue.d.ts +11 -2
  4. package/dist/components/GAppHeader.vue.d.ts +30 -4
  5. package/dist/components/GButton.vue.d.ts +12 -0
  6. package/dist/components/GClipboard.vue.d.ts +13 -0
  7. package/dist/components/GDetailList.vue.d.ts +35 -0
  8. package/dist/components/GHamburgerMenu.vue.d.ts +15 -0
  9. package/dist/components/GHistoryScroller.vue.d.ts +30 -0
  10. package/dist/components/GModal.vue.d.ts +39 -0
  11. package/dist/components/GOverlay.vue.d.ts +3 -0
  12. package/dist/components/GPopover.vue.d.ts +18 -26
  13. package/dist/components/GProgress.vue.d.ts +13 -4
  14. package/dist/components/GSearch.vue.d.ts +20 -7
  15. package/dist/components/GSelect.vue.d.ts +38 -5
  16. package/dist/components/GSelectButton.vue.d.ts +22 -8
  17. package/dist/components/GSidebar.vue.d.ts +42 -0
  18. package/dist/components/GSidebarMenu.vue.d.ts +39 -0
  19. package/dist/components/GTable.vue.d.ts +74 -0
  20. package/dist/components/GTextInput.vue.d.ts +30 -1
  21. package/dist/components/GThreeWayToggle.vue.d.ts +29 -0
  22. package/dist/components/detail-list/GDetailListItem.vue.d.ts +21 -0
  23. package/dist/components/table/GTableBody.vue.d.ts +36 -0
  24. package/dist/components/table/GTablePagination.vue.d.ts +20 -0
  25. package/dist/components/table/TableColumn.d.ts +35 -0
  26. package/dist/compose/useActiveLink.d.ts +13 -0
  27. package/dist/compose/useFiltering.d.ts +14 -0
  28. package/dist/compose/useOverlayStack.d.ts +20 -6
  29. package/dist/compose/useSidebar.d.ts +12 -0
  30. package/dist/directives/v-gtooltip.d.ts +4 -0
  31. package/dist/grad-vue.css +1 -1
  32. package/dist/grad-vue.d.ts +34 -19
  33. package/dist/grad-vue.js +145 -942
  34. package/dist/grad-vue.js.map +1 -1
  35. package/dist/main-BA2FBasv.js +2427 -0
  36. package/dist/main-BA2FBasv.js.map +1 -0
  37. package/dist/plugin.d.ts +35 -0
  38. package/dist/plugin.js +12 -0
  39. package/dist/plugin.js.map +1 -0
  40. package/package.json +35 -11
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2025 University of Illinois Board of Trustees
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1
+ MIT License
2
+
3
+ Copyright (c) 2025 University of Illinois Board of Trustees
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  SOFTWARE.
package/README.md CHANGED
@@ -12,6 +12,12 @@ All grad-vue components are **accessibility-first**. We can't make guarantees ab
12
12
  complying with specific accessibility standards, but all components are built with
13
13
  consideration for all users.
14
14
 
15
+ ## Demo Site
16
+
17
+ View live interactive demos and documentation at: [https://graduatecollege.github.io/grad-vue/](https://graduatecollege.github.io/grad-vue/)
18
+
19
+ The demo site is located in the [`demo/`](./demo) directory and is built with Nuxt 4.
20
+
15
21
  ## Installation
16
22
 
17
23
  ```bash
@@ -68,6 +74,59 @@ import { GButton } from '@illinois-grad/grad-vue'
68
74
  </template>
69
75
  ```
70
76
 
77
+ ## Development
78
+
79
+ ### Bootstrapping a New Component
80
+
81
+ ```bash
82
+ npm run component:new -- GMyNewComponent
83
+ ```
84
+
85
+ This script creates a new component in the `src/components` directory and adds it to the `playground/`, `demo/`,
86
+ and the package exports.
87
+
88
+ ### Demo Props And Documentation
89
+
90
+ The `props-config` and `docs` in each component's demo are generated automatically from the component's source:
91
+
92
+ ```bash
93
+ npm run sync-props
94
+ ```
95
+
96
+ Some notes on this process:
97
+
98
+ - The `docs` section is generated from a jsdoc immediately after the opening `<script setup` tag. It supports markdown formatting.
99
+ - The `props-config` section is generated from the `Props` interface or type in the component script, with default
100
+ values from the `withDefaults` function call.
101
+ - The `Props` interface can have a `// Demo: <value>` comment to override the default value for the prop in the demo.
102
+ - Props without a jsdoc will not be included in the demo.
103
+
104
+ > [!TIP]
105
+ > The markdown docs at the top of the component file cannot have a `</script>` because of how Vue.js parses the file.
106
+ > Instead, use `&lt;/script>` in the docs.
107
+
108
+ ### Running Tests
109
+
110
+ The project uses Vitest 4 for unit and accessibility testing in **browser mode**.
111
+
112
+ ```bash
113
+ # Run tests in watch mode
114
+ npm test
115
+
116
+ # Run tests once
117
+ npm run test:run
118
+ ```
119
+
120
+ ### Building
121
+
122
+ ```bash
123
+ # Build the library
124
+ npm run build
125
+
126
+ # Watch for changes during development
127
+ npm run watch
128
+ ```
129
+
71
130
  ## Release Process
72
131
 
73
132
  This package is automatically published to NPM when a semantic version tag (prefixed with `v`) is pushed to the repository. For example:
@@ -77,10 +136,3 @@ This package is automatically published to NPM when a semantic version tag (pref
77
136
  git tag v1.0.0
78
137
  git push origin v1.0.0
79
138
  ```
80
-
81
- This will:
82
- 1. Build the package
83
- 2. Create a GitHub release with auto-generated release notes
84
- 3. Publish the package to NPM
85
-
86
- **Note:** Ensure the version in `package.json` matches the tag version before pushing.
@@ -1,11 +1,20 @@
1
1
  interface Props {
2
+ /**
3
+ * Dialog label
4
+ */
2
5
  label?: string;
6
+ /**
7
+ * Accept button text
8
+ */
3
9
  buttonText?: string;
10
+ /**
11
+ * Accept button color
12
+ */
4
13
  buttonColor?: "primary" | "secondary" | "danger";
5
14
  }
6
- declare var __VLS_7: {};
15
+ declare var __VLS_13: {};
7
16
  type __VLS_Slots = {} & {
8
- default?: (props: typeof __VLS_7) => any;
17
+ default?: (props: typeof __VLS_13) => any;
9
18
  };
10
19
  declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
11
20
  cancel: (...args: any[]) => void;
@@ -1,12 +1,38 @@
1
- declare var __VLS_7: {}, __VLS_9: {
1
+ /**
2
+ * This is a minimal header meant for web apps where a full Illinois
3
+ * brand header would be too large.
4
+ *
5
+ * **Slot** `left` allows replacing the link element in the top-left corner.
6
+ *
7
+ * **Slot** `title` is to the right of the logo.
8
+ *
9
+ * **Slot** `app-controls` is the remaining area to the right.
10
+ */
11
+ type Props = {
12
+ illinois?: boolean;
13
+ /**
14
+ * Top-left corner text
15
+ *
16
+ * You can customize this text element with the "left" slot.
17
+ */
18
+ brand?: string;
19
+ };
20
+ declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {}, __VLS_7: {
2
21
  class: string;
3
22
  };
4
23
  type __VLS_Slots = {} & {
5
- title?: (props: typeof __VLS_7) => any;
24
+ left?: (props: typeof __VLS_1) => any;
25
+ } & {
26
+ icon?: (props: typeof __VLS_3) => any;
27
+ } & {
28
+ title?: (props: typeof __VLS_5) => any;
6
29
  } & {
7
- 'app-controls'?: (props: typeof __VLS_9) => any;
30
+ 'app-controls'?: (props: typeof __VLS_7) => any;
8
31
  };
9
- declare const __VLS_base: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
32
+ declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
33
+ illinois: boolean;
34
+ brand: string;
35
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
36
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
11
37
  declare const _default: typeof __VLS_export;
12
38
  export default _default;
@@ -1,7 +1,19 @@
1
1
  interface Props {
2
+ /**
3
+ * Button size
4
+ */
2
5
  size?: "small" | "medium" | "large";
6
+ /**
7
+ * Button color theme
8
+ */
3
9
  theme?: "primary" | "secondary" | "accent" | "danger" | "none";
10
+ /**
11
+ * Use outlined style
12
+ */
4
13
  outlined?: boolean;
14
+ /**
15
+ * Use text style
16
+ */
5
17
  text?: boolean;
6
18
  to?: string | Record<string, any>;
7
19
  component?: string;
@@ -0,0 +1,13 @@
1
+ interface Props {
2
+ /**
3
+ * Text
4
+ */
5
+ text: string;
6
+ /**
7
+ * Hide the visible text
8
+ */
9
+ hideText?: boolean;
10
+ }
11
+ declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
+ declare const _default: typeof __VLS_export;
13
+ export default _default;
@@ -0,0 +1,35 @@
1
+ /**
2
+ * This component is used with the `GDetailListItem` component to display
3
+ * a list of key-value pairs in a grid or vertical layout.
4
+ *
5
+ * For example:
6
+ *
7
+ * ```vue-html
8
+ * <GDetailList>
9
+ * <GDetailListItem label="Name">John Doe</GDetailListItem>
10
+ * <GDetailListItem label="Age">30</GDetailListItem>
11
+ * <GDetailListItem label="City">New York</GDetailListItem>
12
+ * </GDetailList>
13
+ * ```
14
+ */
15
+ interface Props {
16
+ /**
17
+ * Layout style for the items.
18
+ */
19
+ variant?: "grid" | "vertical";
20
+ }
21
+ declare var __VLS_1: {};
22
+ type __VLS_Slots = {} & {
23
+ default?: (props: typeof __VLS_1) => any;
24
+ };
25
+ declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
26
+ variant: "grid" | "vertical";
27
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
28
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
29
+ declare const _default: typeof __VLS_export;
30
+ export default _default;
31
+ type __VLS_WithSlots<T, S> = T & {
32
+ new (): {
33
+ $slots: S;
34
+ };
35
+ };
@@ -0,0 +1,15 @@
1
+ interface Props {
2
+ /**
3
+ * Accessible label
4
+ */
5
+ label?: string;
6
+ }
7
+ declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
8
+ toggle: () => any;
9
+ }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
10
+ onToggle?: (() => any) | undefined;
11
+ }>, {
12
+ label: string;
13
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
14
+ declare const _default: typeof __VLS_export;
15
+ export default _default;
@@ -0,0 +1,30 @@
1
+ declare const __VLS_export: <T extends {
2
+ id: string | number;
3
+ }>(__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<{
4
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<{
5
+ /**
6
+ * Accessible label
7
+ */
8
+ label?: string;
9
+ entries: T[];
10
+ }> & (typeof globalThis extends {
11
+ __VLS_PROPS_FALLBACK: infer P;
12
+ } ? P : {});
13
+ expose: (exposed: {}) => void;
14
+ attrs: any;
15
+ slots: {
16
+ default?: (props: {
17
+ entry: T;
18
+ }) => any;
19
+ };
20
+ emit: {};
21
+ }>) => import("vue").VNode & {
22
+ __ctx?: Awaited<typeof __VLS_setup>;
23
+ };
24
+ declare const _default: typeof __VLS_export;
25
+ export default _default;
26
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
27
+ [K in keyof T]: T[K];
28
+ } : {
29
+ [K in keyof T as K]: T[K];
30
+ }) & {};
@@ -0,0 +1,39 @@
1
+ interface Props {
2
+ /**
3
+ * Modal label
4
+ */
5
+ label: string;
6
+ /**
7
+ * ID for aria-describedby
8
+ */
9
+ describedby?: string;
10
+ /**
11
+ * Hide label
12
+ */
13
+ hiddenLabel?: boolean;
14
+ /**
15
+ * Modal size
16
+ */
17
+ size?: "small" | "medium" | "large" | "full";
18
+ }
19
+ declare var __VLS_13: {};
20
+ type __VLS_Slots = {} & {
21
+ default?: (props: typeof __VLS_13) => any;
22
+ };
23
+ declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
24
+ close: (...args: any[]) => void;
25
+ }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
26
+ onClose?: ((...args: any[]) => any) | undefined;
27
+ }>, {
28
+ size: "small" | "medium" | "large" | "full";
29
+ hiddenLabel: boolean;
30
+ describedby: string;
31
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
32
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
33
+ declare const _default: typeof __VLS_export;
34
+ export default _default;
35
+ type __VLS_WithSlots<T, S> = T & {
36
+ new (): {
37
+ $slots: S;
38
+ };
39
+ };
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -1,42 +1,34 @@
1
+ interface Props {
2
+ /**
3
+ * Render without padding
4
+ */
5
+ minimal?: boolean;
6
+ }
7
+ type __VLS_Props = Props;
1
8
  declare function toggle(): void;
9
+ type __VLS_ModelProps = {
10
+ modelValue?: boolean;
11
+ };
12
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
2
13
  declare var __VLS_1: {
3
- onToggle: typeof toggle;
14
+ toggle: typeof toggle;
4
15
  }, __VLS_9: {};
5
16
  type __VLS_Slots = {} & {
6
17
  trigger?: (props: typeof __VLS_1) => any;
7
18
  } & {
8
- content?: (props: typeof __VLS_9) => any;
19
+ default?: (props: typeof __VLS_9) => any;
9
20
  };
10
- declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
11
- modelValue: {
12
- type: BooleanConstructor;
13
- default: boolean;
14
- };
15
- minimal: {
16
- type: BooleanConstructor;
17
- default: boolean;
18
- };
19
- }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
20
- "update:modelValue": (...args: any[]) => void;
21
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
21
22
  show: (...args: any[]) => void;
22
23
  hide: (...args: any[]) => void;
23
- }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
24
- modelValue: {
25
- type: BooleanConstructor;
26
- default: boolean;
27
- };
28
- minimal: {
29
- type: BooleanConstructor;
30
- default: boolean;
31
- };
32
- }>> & Readonly<{
33
- "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
24
+ "update:modelValue": (value: boolean) => void;
25
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
26
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
34
27
  onShow?: ((...args: any[]) => any) | undefined;
35
28
  onHide?: ((...args: any[]) => any) | undefined;
36
29
  }>, {
37
- modelValue: boolean;
38
30
  minimal: boolean;
39
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
31
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
40
32
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
41
33
  declare const _default: typeof __VLS_export;
42
34
  export default _default;
@@ -1,12 +1,21 @@
1
1
  type Props = {
2
+ /**
3
+ * Accessible label
4
+ */
5
+ label?: string;
6
+ /**
7
+ * Progress 1-100 or blank
8
+ */
2
9
  value?: number;
3
- size?: "small" | "medium" | "large";
4
- ariaLabel?: string;
10
+ /**
11
+ * Progress circle size
12
+ */
13
+ size?: "tiny" | "small" | "medium" | "large";
5
14
  };
6
15
  declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
7
- size: "small" | "medium" | "large";
16
+ size: "tiny" | "small" | "medium" | "large";
17
+ label: string;
8
18
  value: number;
9
- ariaLabel: string;
10
19
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
20
  declare const _default: typeof __VLS_export;
12
21
  export default _default;
@@ -7,18 +7,31 @@ declare const __VLS_export: <T extends {
7
7
  id: string | number;
8
8
  title: string;
9
9
  }>(__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<{
10
- props: __VLS_PrettifyLocal<{
11
- modelValue: string | null | undefined;
10
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<({
12
11
  results: GSearchGroup<T>[] | T[];
12
+ /**
13
+ * Placeholder
14
+ */
13
15
  placeholder?: string;
14
- ariaLabel?: string;
16
+ /**
17
+ * Accessible label
18
+ */
19
+ label?: string;
20
+ /**
21
+ * Automatic search
22
+ */
15
23
  auto?: boolean;
16
- loading?: boolean | null | undefined;
24
+ /**
25
+ * Show search loading indicator
26
+ */
27
+ loading?: boolean;
17
28
  } & {
18
- "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
29
+ modelValue?: string | null;
30
+ }) & {
31
+ "onUpdate:modelValue"?: ((value: string | null) => any) | undefined;
19
32
  onSelect?: ((...args: any[]) => any) | undefined;
20
33
  onSubmit?: ((...args: any[]) => any) | undefined;
21
- }> & import("vue").PublicProps & (typeof globalThis extends {
34
+ }> & (typeof globalThis extends {
22
35
  __VLS_PROPS_FALLBACK: infer P;
23
36
  } ? P : {});
24
37
  expose: (exposed: {}) => void;
@@ -36,7 +49,7 @@ declare const __VLS_export: <T extends {
36
49
  option: T;
37
50
  }) => any;
38
51
  };
39
- emit: (event: "update:modelValue" | "select" | "submit", ...args: any[]) => void;
52
+ emit: ((event: "select" | "submit", ...args: any[]) => void) & ((event: "update:modelValue", value: string | null) => void);
40
53
  }>) => import("vue").VNode & {
41
54
  __ctx?: Awaited<typeof __VLS_setup>;
42
55
  };
@@ -3,15 +3,47 @@ interface OptionType {
3
3
  value: string | number;
4
4
  }
5
5
  interface Props {
6
- modelValue: string | number | undefined | null;
7
6
  options: Array<string | OptionType>;
7
+ /**
8
+ * Accessible label
9
+ */
8
10
  label: string;
11
+ /**
12
+ * Hide the label visually
13
+ */
9
14
  hiddenLabel?: boolean;
15
+ /**
16
+ * Placeholder
17
+ *
18
+ * Only used if the component is searchable.
19
+ */
20
+ placeholder?: string;
21
+ /**
22
+ * Disabled
23
+ */
10
24
  disabled?: boolean;
25
+ /**
26
+ * Name
27
+ */
11
28
  name?: string;
29
+ /**
30
+ * Searchable
31
+ */
12
32
  searchable?: boolean;
33
+ /**
34
+ * Show clear button
35
+ */
13
36
  clearButton?: boolean;
37
+ /**
38
+ * Compact
39
+ */
40
+ compact?: boolean;
14
41
  }
42
+ type __VLS_Props = Props;
43
+ type __VLS_ModelProps = {
44
+ modelValue?: string | number | null;
45
+ };
46
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
15
47
  declare var __VLS_1: {
16
48
  option: OptionType;
17
49
  selected: boolean;
@@ -20,16 +52,17 @@ declare var __VLS_1: {
20
52
  type __VLS_Slots = {} & {
21
53
  option?: (props: typeof __VLS_1) => any;
22
54
  };
23
- declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
55
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
24
56
  change: (...args: any[]) => void;
25
- "update:modelValue": (...args: any[]) => void;
26
- }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
57
+ "update:modelValue": (value: string | number | null | undefined) => void;
58
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
27
59
  onChange?: ((...args: any[]) => any) | undefined;
28
- "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
60
+ "onUpdate:modelValue"?: ((value: string | number | null | undefined) => any) | undefined;
29
61
  }>, {
30
62
  disabled: boolean;
31
63
  name: string;
32
64
  searchable: boolean;
65
+ compact: boolean;
33
66
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
34
67
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
35
68
  declare const _default: typeof __VLS_export;
@@ -4,22 +4,36 @@ interface OptionType {
4
4
  }
5
5
  interface Props {
6
6
  options: Array<string | OptionType>;
7
- modelValue: string | number;
7
+ /**
8
+ * Accessible label
9
+ */
10
+ label: string;
11
+ /**
12
+ * Size
13
+ */
8
14
  size?: "small" | "medium" | "large";
9
- theme?: "primary" | "secondary" | "accent" | "danger";
15
+ /**
16
+ * Name
17
+ */
10
18
  name?: string;
19
+ /**
20
+ * Disabled
21
+ */
11
22
  disabled?: boolean;
12
- label: string;
13
23
  }
14
- declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
24
+ type __VLS_Props = Props;
25
+ type __VLS_ModelProps = {
26
+ modelValue?: string | number;
27
+ };
28
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
29
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
15
30
  change: (...args: any[]) => void;
16
- "update:modelValue": (...args: any[]) => void;
17
- }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
31
+ "update:modelValue": (value: string | number) => void;
32
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
18
33
  onChange?: ((...args: any[]) => any) | undefined;
19
- "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
34
+ "onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
20
35
  }>, {
21
36
  size: "small" | "medium" | "large";
22
- theme: "primary" | "secondary" | "accent" | "danger";
23
37
  disabled: boolean;
24
38
  name: string;
25
39
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -0,0 +1,42 @@
1
+ interface Props {
2
+ /**
3
+ * Custom background color
4
+ */
5
+ backgroundColor?: string;
6
+ /**
7
+ * Custom background image
8
+ */
9
+ backgroundImage?: string;
10
+ /**
11
+ * Sidebar theme
12
+ */
13
+ theme?: "light" | "dark";
14
+ topOffset?: string;
15
+ topOffsetVar?: string;
16
+ /**
17
+ * Width
18
+ *
19
+ * Width of the sidebar
20
+ */
21
+ width?: string;
22
+ }
23
+ declare var __VLS_1: {};
24
+ type __VLS_Slots = {} & {
25
+ default?: (props: typeof __VLS_1) => any;
26
+ };
27
+ declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
28
+ theme: "light" | "dark";
29
+ width: string;
30
+ backgroundColor: string;
31
+ backgroundImage: string;
32
+ topOffset: string;
33
+ topOffsetVar: string;
34
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
35
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
36
+ declare const _default: typeof __VLS_export;
37
+ export default _default;
38
+ type __VLS_WithSlots<T, S> = T & {
39
+ new (): {
40
+ $slots: S;
41
+ };
42
+ };