@kazee-ds/vue 0.0.0-stage → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/index.js +4882 -0
  2. package/dist/index.js.map +1 -0
  3. package/dist/types/Alert.vue.d.ts +28 -0
  4. package/dist/types/Badge.vue.d.ts +19 -0
  5. package/dist/types/Breadcrumb.vue.d.ts +14 -0
  6. package/dist/types/Button.vue.d.ts +54 -0
  7. package/dist/types/ButtonGroup.d.ts +65 -0
  8. package/dist/types/ButtonGroupSeparator.d.ts +4 -0
  9. package/dist/types/Card.vue.d.ts +25 -0
  10. package/dist/types/Chart.vue.d.ts +27 -0
  11. package/dist/types/CheckIcon.vue.d.ts +3 -0
  12. package/dist/types/Checkbox.vue.d.ts +35 -0
  13. package/dist/types/ChevronIcon.vue.d.ts +3 -0
  14. package/dist/types/CloseIcon.vue.d.ts +3 -0
  15. package/dist/types/Combobox.vue.d.ts +39 -0
  16. package/dist/types/DataTable.vue.d.ts +44 -0
  17. package/dist/types/DateRangePanel.vue.d.ts +21 -0
  18. package/dist/types/DateRangePicker.vue.d.ts +47 -0
  19. package/dist/types/Dialog.vue.d.ts +58 -0
  20. package/dist/types/DropdownMenu.vue.d.ts +52 -0
  21. package/dist/types/DropdownMenuBranch.vue.d.ts +30 -0
  22. package/dist/types/Empty.vue.d.ts +25 -0
  23. package/dist/types/Field.vue.d.ts +34 -0
  24. package/dist/types/FieldFeedback.vue.d.ts +12 -0
  25. package/dist/types/Form.vue.d.ts +35 -0
  26. package/dist/types/Input.vue.d.ts +89 -0
  27. package/dist/types/Label.vue.d.ts +20 -0
  28. package/dist/types/Listbox.vue.d.ts +35 -0
  29. package/dist/types/MenuItemContent.vue.d.ts +19 -0
  30. package/dist/types/NumberField.vue.d.ts +47 -0
  31. package/dist/types/Pagination.vue.d.ts +33 -0
  32. package/dist/types/Popover.vue.d.ts +34 -0
  33. package/dist/types/RadioGroup.vue.d.ts +37 -0
  34. package/dist/types/Select.vue.d.ts +53 -0
  35. package/dist/types/SelectGroup.d.ts +56 -0
  36. package/dist/types/SelectionValidation.vue.d.ts +14 -0
  37. package/dist/types/Separator.vue.d.ts +10 -0
  38. package/dist/types/Sidebar.vue.d.ts +25 -0
  39. package/dist/types/Skeleton.vue.d.ts +10 -0
  40. package/dist/types/Spinner.vue.d.ts +15 -0
  41. package/dist/types/Switch.vue.d.ts +31 -0
  42. package/dist/types/Table.vue.d.ts +16 -0
  43. package/dist/types/Tabs.vue.d.ts +58 -0
  44. package/dist/types/TabsListView.vue.d.ts +22 -0
  45. package/dist/types/Textarea.vue.d.ts +47 -0
  46. package/dist/types/ToggleButton.vue.d.ts +36 -0
  47. package/dist/types/ToggleButtonGroup.vue.d.ts +35 -0
  48. package/dist/types/ToggleGroup.vue.d.ts +39 -0
  49. package/dist/types/Tooltip.vue.d.ts +36 -0
  50. package/dist/types/button-family-context.d.ts +8 -0
  51. package/dist/types/chart-model.d.ts +12 -0
  52. package/dist/types/dashboard-types.d.ts +27 -0
  53. package/dist/types/data-table-types.d.ts +13 -0
  54. package/dist/types/date-range-model.d.ts +69 -0
  55. package/dist/types/form-context.d.ts +3 -0
  56. package/dist/types/index.d.ts +56 -0
  57. package/dist/types/listbox-selection.d.ts +8 -0
  58. package/dist/types/overlay-model.d.ts +14 -0
  59. package/dist/types/pagination-model.d.ts +5 -0
  60. package/dist/types/selection-options.d.ts +8 -0
  61. package/dist/types/tabs-indicator.d.ts +1 -0
  62. package/dist/types/toggle-group-model.d.ts +9 -0
  63. package/dist/types/types.d.ts +43 -0
  64. package/dist/types/useDisclosure.d.ts +7 -0
  65. package/dist/types/useFeedback.d.ts +10 -0
  66. package/package.json +50 -3
  67. package/README.md +0 -3
@@ -0,0 +1,22 @@
1
+ import type { TabItem } from './types.js';
2
+ type __VLS_Props = {
3
+ label: string;
4
+ items: TabItem[];
5
+ showSeparators: boolean;
6
+ previousLabel: string;
7
+ nextLabel: string;
8
+ };
9
+ type __VLS_Slots = {
10
+ icon?: (props: {
11
+ item: TabItem;
12
+ }) => unknown;
13
+ };
14
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
16
+ declare const _default: typeof __VLS_export;
17
+ export default _default;
18
+ type __VLS_WithSlots<T, S> = T & {
19
+ new (): {
20
+ $slots: S;
21
+ };
22
+ };
@@ -0,0 +1,47 @@
1
+ type __VLS_Props = {
2
+ label: string;
3
+ defaultValue?: string;
4
+ description?: string;
5
+ /** Shown only when invalid is true; the application owns validation. */
6
+ errorMessage?: string;
7
+ invalid?: boolean;
8
+ disabled?: boolean;
9
+ readonly?: boolean;
10
+ required?: boolean;
11
+ placeholder?: string;
12
+ rows?: number;
13
+ resize?: 'vertical' | 'none';
14
+ name?: string;
15
+ id?: string;
16
+ autoComplete?: string;
17
+ maxLength?: number;
18
+ dir?: 'ltr' | 'rtl';
19
+ };
20
+ type __VLS_ModelProps = {
21
+ /** Controlled v-model values are strings; clear with an empty string. */
22
+ modelValue?: string;
23
+ };
24
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
25
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
26
+ "update:modelValue": (value: string | undefined) => any;
27
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
28
+ "onUpdate:modelValue"?: ((value: string | undefined) => any) | undefined;
29
+ }>, {
30
+ description: string;
31
+ id: string;
32
+ required: boolean;
33
+ dir: "ltr" | "rtl";
34
+ disabled: boolean;
35
+ name: string;
36
+ invalid: boolean;
37
+ resize: "none" | "vertical";
38
+ errorMessage: string;
39
+ defaultValue: string;
40
+ placeholder: string;
41
+ rows: number;
42
+ readonly: boolean;
43
+ autoComplete: string;
44
+ maxLength: number;
45
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
46
+ declare const _default: typeof __VLS_export;
47
+ export default _default;
@@ -0,0 +1,36 @@
1
+ import type { ButtonSize } from './types.js';
2
+ type __VLS_Props = {
3
+ id?: string;
4
+ variant?: 'default' | 'ghost';
5
+ size?: ButtonSize;
6
+ iconOnly?: boolean;
7
+ modelValue?: boolean;
8
+ defaultSelected?: boolean;
9
+ disabled?: boolean;
10
+ };
11
+ type __VLS_Slots = {
12
+ default?: (state: {
13
+ selected: boolean;
14
+ disabled: boolean;
15
+ }) => unknown;
16
+ };
17
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
18
+ press: (event: MouseEvent) => any;
19
+ "update:modelValue": (selected: boolean) => any;
20
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
21
+ onPress?: ((event: MouseEvent) => any) | undefined;
22
+ "onUpdate:modelValue"?: ((selected: boolean) => any) | undefined;
23
+ }>, {
24
+ id: string;
25
+ variant: "ghost" | "default";
26
+ size: ButtonSize;
27
+ modelValue: boolean;
28
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
29
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
30
+ declare const _default: typeof __VLS_export;
31
+ export default _default;
32
+ type __VLS_WithSlots<T, S> = T & {
33
+ new (): {
34
+ $slots: S;
35
+ };
36
+ };
@@ -0,0 +1,35 @@
1
+ import type { ButtonSize } from './types.js';
2
+ declare const __VLS_export: <M extends "single" | "multiple" = "single">(__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<{
3
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<{
4
+ label: string;
5
+ selectionMode?: M;
6
+ modelValue?: M extends "multiple" ? string[] : string | null;
7
+ defaultValue?: M extends "multiple" ? string[] : string | null;
8
+ disabled?: boolean;
9
+ detached?: boolean;
10
+ fullWidth?: boolean;
11
+ size?: ButtonSize;
12
+ orientation?: "horizontal" | "vertical";
13
+ dir?: "ltr" | "rtl";
14
+ disallowEmptySelection?: boolean;
15
+ } & {
16
+ "onUpdate:modelValue"?: ((value: M extends "multiple" ? string[] : string | null) => any) | undefined;
17
+ }> & (typeof globalThis extends {
18
+ __VLS_PROPS_FALLBACK: infer P;
19
+ } ? P : {});
20
+ expose: (exposed: {}) => void;
21
+ attrs: any;
22
+ slots: {
23
+ default?: () => unknown;
24
+ };
25
+ emit: (evt: "update:modelValue", value: M extends "multiple" ? string[] : string | null) => void;
26
+ }>) => import("vue").VNode & {
27
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
28
+ };
29
+ declare const _default: typeof __VLS_export;
30
+ export default _default;
31
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
32
+ [K in keyof T]: T[K];
33
+ } : {
34
+ [K in keyof T as K]: T[K];
35
+ }) & {};
@@ -0,0 +1,39 @@
1
+ import { type ToggleGroupItem, type ToggleGroupVariant } from './toggle-group-model.js';
2
+ import type { ButtonSize } from './types.js';
3
+ declare const __VLS_export: <M extends "single" | "multiple" = "single">(__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
+ label: string;
6
+ items: ToggleGroupItem[];
7
+ selectionMode?: M;
8
+ modelValue?: M extends "multiple" ? string[] : string | null;
9
+ defaultValue?: M extends "multiple" ? string[] : string | null;
10
+ disabled?: boolean;
11
+ iconOnly?: boolean;
12
+ disallowEmptySelection?: boolean;
13
+ variant?: ToggleGroupVariant;
14
+ size?: ButtonSize;
15
+ orientation?: "horizontal" | "vertical";
16
+ dir?: "ltr" | "rtl";
17
+ } & {
18
+ "onUpdate:modelValue"?: ((value: M extends "multiple" ? string[] : string | null) => any) | undefined;
19
+ }> & (typeof globalThis extends {
20
+ __VLS_PROPS_FALLBACK: infer P;
21
+ } ? P : {});
22
+ expose: (exposed: {}) => void;
23
+ attrs: any;
24
+ slots: {
25
+ icon?: (props: {
26
+ item: ToggleGroupItem;
27
+ }) => unknown;
28
+ };
29
+ emit: (evt: "update:modelValue", value: M extends "multiple" ? string[] : string | null) => void;
30
+ }>) => import("vue").VNode & {
31
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
32
+ };
33
+ declare const _default: typeof __VLS_export;
34
+ export default _default;
35
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
36
+ [K in keyof T]: T[K];
37
+ } : {
38
+ [K in keyof T as K]: T[K];
39
+ }) & {};
@@ -0,0 +1,36 @@
1
+ import type { ButtonVariant, ButtonSize } from './types.js';
2
+ type __VLS_Props = {
3
+ triggerLabel: string;
4
+ text: string;
5
+ triggerIconOnly?: boolean;
6
+ triggerVariant?: ButtonVariant;
7
+ triggerSize?: ButtonSize;
8
+ open?: boolean;
9
+ defaultOpen?: boolean;
10
+ disabled?: boolean;
11
+ dir?: 'ltr' | 'rtl';
12
+ };
13
+ type __VLS_Slots = {
14
+ trigger?: () => unknown;
15
+ };
16
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
17
+ "update:open": (open: boolean) => any;
18
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
19
+ "onUpdate:open"?: ((open: boolean) => any) | undefined;
20
+ }>, {
21
+ dir: "ltr" | "rtl";
22
+ disabled: boolean;
23
+ open: boolean;
24
+ defaultOpen: boolean;
25
+ triggerIconOnly: boolean;
26
+ triggerVariant: ButtonVariant;
27
+ triggerSize: ButtonSize;
28
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
29
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
30
+ declare const _default: typeof __VLS_export;
31
+ export default _default;
32
+ type __VLS_WithSlots<T, S> = T & {
33
+ new (): {
34
+ $slots: S;
35
+ };
36
+ };
@@ -0,0 +1,8 @@
1
+ import type { ComputedRef, InjectionKey } from 'vue';
2
+ import type { ButtonSize } from './types.js';
3
+ export declare const toggleButtonGroupKey: InjectionKey<ComputedRef<{
4
+ size: ButtonSize;
5
+ radio: boolean;
6
+ selectedIds: string[];
7
+ disabled: boolean;
8
+ }>>;
@@ -0,0 +1,12 @@
1
+ import type { ChartDatum } from './dashboard-types.js';
2
+ export declare function chartModel(data: ChartDatum[]): {
3
+ items: {
4
+ x: number;
5
+ y: number;
6
+ id: string;
7
+ label: string;
8
+ value: number;
9
+ }[];
10
+ baseline: number;
11
+ barWidth: number;
12
+ };
@@ -0,0 +1,27 @@
1
+ export interface NavigationItem {
2
+ id: string;
3
+ label: string;
4
+ href: string;
5
+ isDisabled?: boolean;
6
+ }
7
+ export interface BreadcrumbItem {
8
+ label: string;
9
+ href?: string;
10
+ }
11
+ export interface ChartDatum {
12
+ id: string;
13
+ label: string;
14
+ value: number;
15
+ }
16
+ export interface DropdownMenuItem {
17
+ id: string;
18
+ label: string;
19
+ isDisabled?: boolean;
20
+ tone?: 'default' | 'danger';
21
+ description?: string;
22
+ /** Display hint only; the application handles keyboard shortcuts. */
23
+ shortcut?: string;
24
+ section?: string;
25
+ separatorBefore?: boolean;
26
+ children?: DropdownMenuItem[];
27
+ }
@@ -0,0 +1,13 @@
1
+ export interface DataTableColumn {
2
+ id: string;
3
+ label: string;
4
+ sortable?: boolean;
5
+ }
6
+ export interface DataTableRow {
7
+ id: string;
8
+ cells: Record<string, string | number | null | undefined>;
9
+ }
10
+ export interface TableSort {
11
+ columnId: string;
12
+ direction: 'ascending' | 'descending';
13
+ }
@@ -0,0 +1,69 @@
1
+ export interface DateRange {
2
+ start: string;
3
+ end: string;
4
+ }
5
+ export interface DateRangePreset {
6
+ id: string;
7
+ label: string;
8
+ value: DateRange;
9
+ }
10
+ export interface DateRangeConstraints {
11
+ minDate?: string;
12
+ maxDate?: string;
13
+ minDays?: number;
14
+ maxDays?: number;
15
+ isDateUnavailable?: (date: string) => boolean;
16
+ }
17
+ export type DateRangeSize = 'sm' | 'md' | 'lg';
18
+ export type DateRangeVariant = 'primary' | 'secondary' | 'outline';
19
+ export interface DateRangeOptions extends DateRangeConstraints {
20
+ label: string;
21
+ defaultValue?: DateRange | null;
22
+ size?: DateRangeSize;
23
+ variant?: DateRangeVariant;
24
+ hideLabel?: boolean;
25
+ fullWidth?: boolean;
26
+ locale?: string;
27
+ dir?: 'ltr' | 'rtl';
28
+ visibleMonths?: 1 | 2;
29
+ weekStartsOn?: 0 | 1;
30
+ display?: 'popover' | 'inline';
31
+ showInputs?: boolean;
32
+ showMonthYearPicker?: boolean;
33
+ triggerDisplay?: 'text' | 'icon';
34
+ presets?: DateRangePreset[];
35
+ labels?: Partial<DateRangeLabels>;
36
+ formatRange?: (value: DateRange, locale: string) => string;
37
+ description?: string;
38
+ errorMessage?: string;
39
+ name?: string;
40
+ referenceDate?: string;
41
+ open?: boolean;
42
+ defaultOpen?: boolean;
43
+ }
44
+ export type DateRangeError = 'incomplete' | 'order' | 'bounds' | 'unavailable' | 'length';
45
+ export interface DateRangeLabels {
46
+ title: string;
47
+ start: string;
48
+ end: string;
49
+ apply: string;
50
+ cancel: string;
51
+ clear: string;
52
+ previousMonth: string;
53
+ nextMonth: string;
54
+ presets: string;
55
+ placeholder: string;
56
+ incomplete: string;
57
+ order: string;
58
+ bounds: string;
59
+ unavailable: string;
60
+ length: string;
61
+ required: string;
62
+ }
63
+ export declare function dateRangeLabels(locale?: string): DateRangeLabels;
64
+ export declare function validDate(value: string): boolean;
65
+ export declare function asDate(value?: string): import("@internationalized/date").CalendarDate | undefined;
66
+ export declare function currentDate(): string;
67
+ export declare function rangeError(value: DateRange | null, constraints?: DateRangeConstraints): DateRangeError | null;
68
+ export declare function rangeText(value: DateRange | null, locale?: string): string;
69
+ export declare function createDateRangePresets(referenceDate?: string, locale?: string, weekStartsOn?: 0 | 1): DateRangePreset[];
@@ -0,0 +1,3 @@
1
+ import type { ComputedRef, InjectionKey } from 'vue';
2
+ import type { ValidationErrors } from './types.js';
3
+ export declare const formErrorsKey: InjectionKey<ComputedRef<ValidationErrors>>;
@@ -0,0 +1,56 @@
1
+ export { default as Button } from './Button.vue.js';
2
+ export { default as ButtonGroup } from './ButtonGroup.js';
3
+ export { default as ButtonGroupSeparator } from './ButtonGroupSeparator.js';
4
+ export { default as ToggleButton } from './ToggleButton.vue.js';
5
+ export { default as ToggleButtonGroup } from './ToggleButtonGroup.vue.js';
6
+ export { default as ToggleButtonGroupSeparator } from './ButtonGroupSeparator.js';
7
+ export { default as Select } from './Select.vue.js';
8
+ export { default as SelectGroup } from './SelectGroup.js';
9
+ export type { SelectSize, SelectVariant } from './types.js';
10
+ export { default as Input } from './Input.vue.js';
11
+ export type { ButtonSize, ButtonVariant, SelectOption, InputSize, InputType } from './types.js';
12
+ export type { InputVariant, InputMode, InputEnterKeyHint } from './types.js';
13
+ export { default as Textarea } from './Textarea.vue.js';
14
+ export { default as Label } from './Label.vue.js';
15
+ export { default as Checkbox } from './Checkbox.vue.js';
16
+ export { default as RadioGroup } from './RadioGroup.vue.js';
17
+ export { default as Switch } from './Switch.vue.js';
18
+ export type { RadioOption } from './types.js';
19
+ export { default as Field } from './Field.vue.js';
20
+ export { default as Form } from './Form.vue.js';
21
+ export type { ValidationErrors, FieldControlProps, FieldSlotProps } from './types.js';
22
+ export { default as Listbox } from './Listbox.vue.js';
23
+ export { default as NumberField } from './NumberField.vue.js';
24
+ export type { ListboxOption, ListboxSelectionMode } from './listbox-selection.js';
25
+ export { default as Card } from './Card.vue.js';
26
+ export { default as Badge } from './Badge.vue.js';
27
+ export { default as Skeleton } from './Skeleton.vue.js';
28
+ export { default as Separator } from './Separator.vue.js';
29
+ export type { BadgeTone } from './types.js';
30
+ export { default as Tabs } from './Tabs.vue.js';
31
+ export { default as Pagination } from './Pagination.vue.js';
32
+ export { default as Table } from './Table.vue.js';
33
+ export { default as DataTable } from './DataTable.vue.js';
34
+ export type { DataTableColumn, DataTableRow, TableSort } from './data-table-types.js';
35
+ export type { TabItem } from './types.js';
36
+ export { default as Alert } from './Alert.vue.js';
37
+ export { default as Empty } from './Empty.vue.js';
38
+ export { default as Breadcrumb } from './Breadcrumb.vue.js';
39
+ export { default as Sidebar } from './Sidebar.vue.js';
40
+ export { default as Chart } from './Chart.vue.js';
41
+ export { default as Dialog } from './Dialog.vue.js';
42
+ export { default as DropdownMenu } from './DropdownMenu.vue.js';
43
+ export { default as Popover } from './Popover.vue.js';
44
+ export { default as Tooltip } from './Tooltip.vue.js';
45
+ export type { NavigationItem, BreadcrumbItem, ChartDatum, DropdownMenuItem, } from './dashboard-types.js';
46
+ export { default as Spinner } from './Spinner.vue.js';
47
+ export type { SpinnerSize, SpinnerColor } from './types.js';
48
+ export { default as Combobox } from './Combobox.vue.js';
49
+ export type { MenuSelectionMode, MenuPlacement, DialogSize, DialogPlacement, DialogScroll, DialogBackdrop, } from './overlay-model.js';
50
+ export { default as ToggleGroup } from './ToggleGroup.vue.js';
51
+ export type { ToggleGroupItem, ToggleGroupMode, ToggleGroupVariant } from './toggle-group-model.js';
52
+ export type { TabsVariant } from './types.js';
53
+ export { default as DateRangePicker } from './DateRangePicker.vue.js';
54
+ export { createDateRangePresets } from './date-range-model.js';
55
+ export { rangeText as formatDateRange } from './date-range-model.js';
56
+ export type { DateRange, DateRangePreset, DateRangeLabels, DateRangeSize, DateRangeVariant, } from './date-range-model.js';
@@ -0,0 +1,8 @@
1
+ export interface ListboxOption {
2
+ id: string;
3
+ label: string;
4
+ isDisabled?: boolean;
5
+ }
6
+ export type ListboxSelectionMode = 'single' | 'multiple';
7
+ /** Stable option order, unique enabled IDs, and at most one ID in single mode. */
8
+ export declare function listboxSelection(value: readonly string[], options: ListboxOption[], mode: ListboxSelectionMode): string[];
@@ -0,0 +1,14 @@
1
+ import type { DropdownMenuItem } from './dashboard-types.js';
2
+ export type MenuSelectionMode = 'none' | 'single' | 'multiple';
3
+ export type MenuPlacement = 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end' | 'left-start' | 'left-end' | 'right-start' | 'right-end';
4
+ export declare function menuGroups(items: DropdownMenuItem[]): {
5
+ key: string;
6
+ label?: string;
7
+ items: DropdownMenuItem[];
8
+ }[];
9
+ export declare function menuLeaves(items: DropdownMenuItem[], disabled?: boolean): DropdownMenuItem[];
10
+ export declare function menuSelection(keys: string[], items: DropdownMenuItem[], mode: MenuSelectionMode): string[];
11
+ export type DialogSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'cover' | 'full';
12
+ export type DialogPlacement = 'auto' | 'top' | 'center' | 'bottom';
13
+ export type DialogScroll = 'inside' | 'outside';
14
+ export type DialogBackdrop = 'opaque' | 'blur' | 'transparent';
@@ -0,0 +1,5 @@
1
+ export declare function paginationModel(totalItems: number, pageSize: number, value: number, siblingCount?: number): {
2
+ current: number;
3
+ count: number;
4
+ entries: (string | number)[];
5
+ };
@@ -0,0 +1,8 @@
1
+ export interface SelectOption {
2
+ id: string;
3
+ label: string;
4
+ description?: string;
5
+ isDisabled?: boolean;
6
+ }
7
+ export declare function selectionIds(value: unknown, options: SelectOption[], multiple: boolean): string[];
8
+ export declare function filterOptions(options: SelectOption[], query: string): SelectOption[];
@@ -0,0 +1 @@
1
+ export declare function mountTabsIndicator(container: HTMLElement): () => void;
@@ -0,0 +1,9 @@
1
+ export interface ToggleGroupItem {
2
+ id: string;
3
+ label: string;
4
+ isDisabled?: boolean;
5
+ }
6
+ export type ToggleGroupMode = 'single' | 'multiple';
7
+ export type ToggleGroupVariant = 'outline' | 'ghost';
8
+ /** Normalize IDs without discarding existing disabled selections. */
9
+ export declare function toggleIds(value: unknown, items: ToggleGroupItem[], multiple: boolean): string[];
@@ -0,0 +1,43 @@
1
+ export type ButtonVariant = 'primary' | 'secondary' | 'danger' | 'outline' | 'tertiary' | 'ghost' | 'danger-soft' | 'ai';
2
+ export type ButtonSize = 'sm' | 'md' | 'lg';
3
+ export type InputSize = 'sm' | 'md' | 'lg';
4
+ export type SelectSize = 'sm' | 'md' | 'lg';
5
+ export type SelectVariant = 'primary' | 'secondary' | 'outline';
6
+ export type InputType = 'text' | 'email' | 'password' | 'search' | 'tel' | 'url';
7
+ export type InputVariant = 'primary' | 'secondary';
8
+ export type InputMode = 'none' | 'text' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search';
9
+ export type InputEnterKeyHint = 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send';
10
+ export type { SelectOption } from './selection-options.js';
11
+ export interface RadioOption {
12
+ id: string;
13
+ label: string;
14
+ isDisabled?: boolean;
15
+ }
16
+ /** Application-owned errors, keyed by the Field name. Clear entries explicitly. */
17
+ export type ValidationErrors = Readonly<Record<string, string | undefined>>;
18
+ /** Bind these props to exactly one native input, textarea, or select. */
19
+ export interface FieldControlProps {
20
+ id: string;
21
+ name: string;
22
+ class: string;
23
+ disabled: boolean;
24
+ readonly: boolean;
25
+ required: boolean;
26
+ 'aria-required': true | undefined;
27
+ 'aria-invalid': true | undefined;
28
+ 'aria-describedby': string | undefined;
29
+ }
30
+ export interface FieldSlotProps {
31
+ controlProps: FieldControlProps;
32
+ invalid: boolean;
33
+ errorMessage: string | undefined;
34
+ }
35
+ export type BadgeTone = 'neutral' | 'info' | 'success' | 'warning' | 'danger';
36
+ export interface TabItem {
37
+ id: string;
38
+ label: string;
39
+ isDisabled?: boolean;
40
+ }
41
+ export type SpinnerSize = 'sm' | 'md' | 'lg';
42
+ export type SpinnerColor = 'current' | 'primary';
43
+ export type TabsVariant = 'primary' | 'secondary' | 'default' | 'pill';
@@ -0,0 +1,7 @@
1
+ export declare function useDisclosure(props: {
2
+ open?: boolean;
3
+ defaultOpen?: boolean;
4
+ }, emit: (open: boolean) => void): {
5
+ visible: import("vue").ComputedRef<boolean>;
6
+ change: (next: boolean) => void;
7
+ };
@@ -0,0 +1,10 @@
1
+ export declare function useFeedback(props: {
2
+ id?: string;
3
+ description?: string;
4
+ errorMessage?: string;
5
+ invalid?: boolean;
6
+ }): {
7
+ controlId: import("vue").ComputedRef<string>;
8
+ showError: import("vue").ComputedRef<boolean>;
9
+ describedBy: import("vue").ComputedRef<string | undefined>;
10
+ };
package/package.json CHANGED
@@ -1,6 +1,53 @@
1
1
  {
2
2
  "name": "@kazee-ds/vue",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "version": "0.4.0",
4
+ "type": "module",
5
+ "exports": {
6
+ ".": {
7
+ "types": "./dist/types/index.d.ts",
8
+ "import": "./dist/index.js",
9
+ "default": "./dist/index.js"
10
+ },
11
+ "./package.json": "./package.json"
12
+ },
13
+ "dependencies": {
14
+ "@internationalized/date": "3.12.4",
15
+ "reka-ui": "^2.11.0"
16
+ },
17
+ "devDependencies": {
18
+ "@arethetypeswrong/cli": "^0.18.5",
19
+ "@vitejs/plugin-vue": "^6.0.9",
20
+ "@vue/test-utils": "^2.5.1",
21
+ "jsdom": "^29.1.1",
22
+ "publint": "^0.3.25",
23
+ "vite": "^8.3.3",
24
+ "vue": "^3.5.43"
25
+ },
26
+ "peerDependencies": {
27
+ "vue": ">= 3.4.0"
28
+ },
29
+ "sideEffects": false,
30
+ "license": "UNLICENSED",
31
+ "files": [
32
+ "dist"
33
+ ],
34
+ "main": "./dist/index.js",
35
+ "module": "./dist/index.js",
36
+ "types": "./dist/types/index.d.ts",
37
+ "publishConfig": {
38
+ "access": "public",
39
+ "registry": "https://registry.npmjs.org/"
40
+ },
41
+ "repository": {
42
+ "type": "git",
43
+ "url": "git+https://gitlab.com/kazee.indonesia/kazee-design-system.git",
44
+ "directory": "packages/vue"
45
+ },
46
+ "homepage": "https://kazee-design-system-023417.gitlab.io",
47
+ "scripts": {
48
+ "test": "vitest run",
49
+ "typecheck": "vue-tsc --noEmit",
50
+ "build": "vite build && vue-tsc -p tsconfig.build.json && node scripts/fix-dts.mjs",
51
+ "lint:package": "publint --strict && attw --pack . --profile esm-only"
52
+ }
6
53
  }
package/README.md DELETED
@@ -1,3 +0,0 @@
1
- # Temporary Holding Version
2
-
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.