@sabrenski/spire-ui-vue 0.1.1 → 0.2.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 (31) hide show
  1. package/dist/components/DialMenu/DialAction.vue.d.ts +25 -0
  2. package/dist/components/DialMenu/DialMenu.vue.d.ts +45 -0
  3. package/dist/components/DialMenu/DialTrigger.vue.d.ts +25 -0
  4. package/dist/components/DialMenu/index.d.ts +4 -0
  5. package/dist/components/DialMenu/types.d.ts +63 -0
  6. package/dist/components/Dropdown/Dropdown.vue.d.ts +1 -1
  7. package/dist/components/LineChart/LineChart.vue.d.ts +1 -1
  8. package/dist/components/LineChart/LineChartPath.vue.d.ts +1 -1
  9. package/dist/components/Modal/Modal.vue.d.ts +2 -0
  10. package/dist/components/Modal/types.d.ts +4 -0
  11. package/dist/components/Navbar/Navbar.vue.d.ts +1 -1
  12. package/dist/components/Navbar/NavbarMenu.vue.d.ts +3 -2
  13. package/dist/components/SearchInput/SearchInput.vue.d.ts +40 -0
  14. package/dist/components/SearchInput/index.d.ts +2 -0
  15. package/dist/components/SearchInput/types.d.ts +48 -0
  16. package/dist/components/Sparkline/Sparkline.vue.d.ts +2 -2
  17. package/dist/components/Sparkline/SparklineLine.vue.d.ts +1 -1
  18. package/dist/components/Table/Table.vue.d.ts +3 -2
  19. package/dist/components/Table/types.d.ts +4 -0
  20. package/dist/components/Timer/Timer.vue.d.ts +60 -0
  21. package/dist/components/Timer/index.d.ts +2 -0
  22. package/dist/components/Timer/types.d.ts +19 -0
  23. package/dist/components/Tree/Tree.vue.d.ts +22 -0
  24. package/dist/components/Tree/TreeNode.vue.d.ts +5 -0
  25. package/dist/components/Tree/index.d.ts +3 -0
  26. package/dist/components/Tree/types.d.ts +55 -0
  27. package/dist/components/index.d.ts +4 -0
  28. package/dist/spire-ui.cjs +45 -45
  29. package/dist/spire-ui.css +1 -1
  30. package/dist/spire-ui.js +19574 -18417
  31. package/package.json +1 -1
@@ -0,0 +1,25 @@
1
+ import { DialActionProps, DialColor } from './types';
2
+ declare function __VLS_template(): {
3
+ attrs: Partial<{}>;
4
+ slots: {
5
+ default?(_: {}): any;
6
+ };
7
+ refs: {};
8
+ rootEl: HTMLButtonElement;
9
+ };
10
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
11
+ declare const __VLS_component: import('vue').DefineComponent<DialActionProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
12
+ click: (event: MouseEvent) => any;
13
+ }, string, import('vue').PublicProps, Readonly<DialActionProps> & Readonly<{
14
+ onClick?: ((event: MouseEvent) => any) | undefined;
15
+ }>, {
16
+ disabled: boolean;
17
+ color: DialColor;
18
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLButtonElement>;
19
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
20
+ export default _default;
21
+ type __VLS_WithTemplateSlots<T, S> = T & {
22
+ new (): {
23
+ $slots: S;
24
+ };
25
+ };
@@ -0,0 +1,45 @@
1
+ import { DialMenuProps, DialPlacement } from './types';
2
+ declare function toggle(): void;
3
+ declare function open(): void;
4
+ declare function close(): void;
5
+ declare function __VLS_template(): {
6
+ attrs: Partial<{}>;
7
+ slots: {
8
+ default?(_: {}): any;
9
+ trigger?(_: {
10
+ toggle: typeof toggle;
11
+ isOpen: boolean;
12
+ open: typeof open;
13
+ close: typeof close;
14
+ }): any;
15
+ };
16
+ refs: {};
17
+ rootEl: HTMLDivElement;
18
+ };
19
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
20
+ declare const __VLS_component: import('vue').DefineComponent<DialMenuProps, {
21
+ open: typeof open;
22
+ close: typeof close;
23
+ toggle: typeof toggle;
24
+ isOpen: import('vue').Ref<boolean, boolean>;
25
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
26
+ "update:modelValue": (value: boolean) => any;
27
+ }, string, import('vue').PublicProps, Readonly<DialMenuProps> & Readonly<{
28
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
29
+ }>, {
30
+ modelValue: boolean;
31
+ disabled: boolean;
32
+ pattern: import('./types').DialPattern;
33
+ placement: DialPlacement;
34
+ trigger: import('./types').DialTriggerMode;
35
+ gap: number;
36
+ direction: import('./types').DialDirection;
37
+ arcSpread: number;
38
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
39
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
40
+ export default _default;
41
+ type __VLS_WithTemplateSlots<T, S> = T & {
42
+ new (): {
43
+ $slots: S;
44
+ };
45
+ };
@@ -0,0 +1,25 @@
1
+ import { DialTriggerProps } from './types';
2
+ declare function __VLS_template(): {
3
+ attrs: Partial<{}>;
4
+ slots: {
5
+ default?(_: {}): any;
6
+ };
7
+ refs: {};
8
+ rootEl: HTMLButtonElement;
9
+ };
10
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
11
+ declare const __VLS_component: import('vue').DefineComponent<DialTriggerProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
12
+ click: (event: MouseEvent) => any;
13
+ }, string, import('vue').PublicProps, Readonly<DialTriggerProps> & Readonly<{
14
+ onClick?: ((event: MouseEvent) => any) | undefined;
15
+ }>, {
16
+ disabled: boolean;
17
+ open: boolean;
18
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLButtonElement>;
19
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
20
+ export default _default;
21
+ type __VLS_WithTemplateSlots<T, S> = T & {
22
+ new (): {
23
+ $slots: S;
24
+ };
25
+ };
@@ -0,0 +1,4 @@
1
+ export { default as DialMenu } from './DialMenu.vue';
2
+ export { default as DialAction } from './DialAction.vue';
3
+ export { default as DialTrigger } from './DialTrigger.vue';
4
+ export * from './types';
@@ -0,0 +1,63 @@
1
+ import { InjectionKey, Ref } from 'vue';
2
+ export type DialPattern = 'linear' | 'arc';
3
+ export type DialDirection = 'up' | 'down' | 'left' | 'right' | 'up-left' | 'up-right' | 'down-left' | 'down-right';
4
+ export type DialPlacement = 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
5
+ export type DialTriggerMode = 'click' | 'hover';
6
+ export type DialColor = 'neutral' | 'primary' | 'secondary' | 'success' | 'warning' | 'danger';
7
+ export interface DialMenuProps {
8
+ /** Open state (v-model) */
9
+ modelValue?: boolean;
10
+ /** Animation pattern for action buttons */
11
+ pattern?: DialPattern;
12
+ /** Direction actions fan out (for linear) or arc center direction */
13
+ direction?: DialDirection;
14
+ /** Arc spread angle in degrees (for arc pattern) */
15
+ arcSpread?: number;
16
+ /** Fixed position on screen */
17
+ placement?: DialPlacement;
18
+ /** Gap/radius between action buttons (in rem) */
19
+ gap?: number;
20
+ /** Trigger interaction mode */
21
+ trigger?: DialTriggerMode;
22
+ /** Disable the entire menu */
23
+ disabled?: boolean;
24
+ }
25
+ export interface DialTriggerProps {
26
+ /** Whether the menu is open */
27
+ open?: boolean;
28
+ /** Disable the trigger */
29
+ disabled?: boolean;
30
+ }
31
+ export interface DialActionProps {
32
+ /** Icon name for the action */
33
+ icon?: string;
34
+ /** Accessible label (required for accessibility) */
35
+ label: string;
36
+ /** Color variant */
37
+ color?: DialColor;
38
+ /** Disabled state */
39
+ disabled?: boolean;
40
+ /** Tooltip text shown on hover */
41
+ tooltip?: string;
42
+ }
43
+ export declare const DIAL_MENU_INJECTION_KEY: InjectionKey<DialMenuContext>;
44
+ export interface DialMenuContext {
45
+ /** Register an action and get its index */
46
+ registerAction: () => number;
47
+ /** Unregister an action */
48
+ unregisterAction: (index: number) => void;
49
+ /** Total number of registered actions */
50
+ actionCount: Ref<number>;
51
+ /** Current pattern */
52
+ pattern: Ref<DialPattern>;
53
+ /** Current direction */
54
+ direction: Ref<DialDirection>;
55
+ /** Gap between actions */
56
+ gap: Ref<number>;
57
+ /** Arc spread angle */
58
+ arcSpread: Ref<number>;
59
+ /** Whether menu is open */
60
+ isOpen: Ref<boolean>;
61
+ /** Close the menu */
62
+ close: () => void;
63
+ }
@@ -34,8 +34,8 @@ declare const __VLS_component: import('vue').DefineComponent<DropdownProps, {
34
34
  isDisabled: boolean;
35
35
  trigger: import('./types').DropdownTriggerMode;
36
36
  strategy: import('./types').DropdownStrategy;
37
- closeOnSelect: boolean;
38
37
  offset: number;
38
+ closeOnSelect: boolean;
39
39
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLSpanElement>;
40
40
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
41
41
  export default _default;
@@ -49,11 +49,11 @@ declare const __VLS_component: import('vue').DefineComponent<LineChartProps, {},
49
49
  showTooltip: boolean;
50
50
  animated: boolean;
51
51
  animationDuration: number;
52
+ strokeWidth: number;
52
53
  curve: import('./types').LineChartCurve;
53
54
  areaOpacity: number;
54
55
  showPoints: boolean;
55
56
  pointRadius: number;
56
- strokeWidth: number;
57
57
  showToolbar: boolean;
58
58
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
59
59
  containerRef: HTMLDivElement;
@@ -23,12 +23,12 @@ declare const _default: import('vue').DefineComponent<LineChartPathProps, {}, {}
23
23
  animated: boolean;
24
24
  animationDuration: number;
25
25
  hoveredIndex: number | null;
26
+ strokeWidth: number;
26
27
  dashed: boolean;
27
28
  curve: LineChartCurve;
28
29
  areaOpacity: number;
29
30
  showPoints: boolean;
30
31
  pointRadius: number;
31
- strokeWidth: number;
32
32
  baseline: number;
33
33
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
34
34
  pathRef: SVGPathElement;
@@ -34,6 +34,8 @@ declare const __VLS_component: import('vue').DefineComponent<ModalProps, {
34
34
  closeOnEscape: boolean;
35
35
  closeOnBackdrop: boolean;
36
36
  preventScroll: boolean;
37
+ backdrop: boolean;
38
+ floating: boolean;
37
39
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
38
40
  dialogRef: HTMLDialogElement;
39
41
  }, HTMLDialogElement>;
@@ -17,4 +17,8 @@ export interface ModalProps {
17
17
  closeOnEscape?: boolean;
18
18
  /** Prevent body scroll when modal is open */
19
19
  preventScroll?: boolean;
20
+ /** Show backdrop overlay (disabling also enables body scrolling) */
21
+ backdrop?: boolean;
22
+ /** Float the drawer with rounded corners and margin on all sides (drawer placements only) */
23
+ floating?: boolean;
20
24
  }
@@ -14,9 +14,9 @@ declare const __VLS_component: import('vue').DefineComponent<NavbarProps, {}, {}
14
14
  height: NavbarHeight;
15
15
  blur: boolean;
16
16
  transparent: boolean;
17
+ maxWidth: import('./types').NavbarMaxWidth;
17
18
  hideOnScroll: boolean;
18
19
  scrollThreshold: number;
19
- maxWidth: import('./types').NavbarMaxWidth;
20
20
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
21
21
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
22
22
  export default _default;
@@ -4,6 +4,7 @@ declare function __VLS_template(): {
4
4
  slots: {
5
5
  trigger?(_: {}): any;
6
6
  default?(_: {}): any;
7
+ default?(_: {}): any;
7
8
  };
8
9
  refs: {
9
10
  triggerRef: HTMLButtonElement;
@@ -14,11 +15,11 @@ declare function __VLS_template(): {
14
15
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
15
16
  declare const __VLS_component: import('vue').DefineComponent<NavbarMenuProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<NavbarMenuProps> & Readonly<{}>, {
16
17
  trigger: import('./types').NavbarMenuTrigger;
17
- fullWidth: boolean;
18
+ columns: NavbarMenuColumns;
18
19
  offset: number;
20
+ fullWidth: boolean;
19
21
  openDelay: number;
20
22
  closeDelay: number;
21
- columns: NavbarMenuColumns;
22
23
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
23
24
  triggerRef: HTMLButtonElement;
24
25
  panelRef: HTMLDivElement;
@@ -0,0 +1,40 @@
1
+ import { SearchInputProps, SearchInputSize, SearchResult } from './types';
2
+ declare function expand(): void;
3
+ declare function collapse(): void;
4
+ declare const _default: import('vue').DefineComponent<SearchInputProps, {
5
+ expand: typeof expand;
6
+ collapse: typeof collapse;
7
+ focus: () => void | undefined;
8
+ inputRef: import('vue').Ref<HTMLInputElement | null, HTMLInputElement | null>;
9
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
10
+ search: (query: string) => any;
11
+ clear: () => any;
12
+ "update:modelValue": (value: string) => any;
13
+ select: (result: SearchResult) => any;
14
+ expand: () => any;
15
+ collapse: () => any;
16
+ }, string, import('vue').PublicProps, Readonly<SearchInputProps> & Readonly<{
17
+ onSearch?: ((query: string) => any) | undefined;
18
+ onClear?: (() => any) | undefined;
19
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
20
+ onSelect?: ((result: SearchResult) => any) | undefined;
21
+ onExpand?: (() => any) | undefined;
22
+ onCollapse?: (() => any) | undefined;
23
+ }>, {
24
+ size: SearchInputSize;
25
+ disabled: boolean;
26
+ loading: boolean;
27
+ placeholder: string;
28
+ clearable: boolean;
29
+ minQueryLength: number;
30
+ debounceMs: number;
31
+ expanded: boolean;
32
+ collapsible: boolean;
33
+ collapseOnBlur: boolean;
34
+ noResultsText: string;
35
+ maxResults: number;
36
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
37
+ wrapperRef: HTMLDivElement;
38
+ inputRef: HTMLInputElement;
39
+ }, any>;
40
+ export default _default;
@@ -0,0 +1,2 @@
1
+ export { default as SearchInput } from './SearchInput.vue';
2
+ export type { SearchInputProps, SearchInputSize, SearchResult, } from './types';
@@ -0,0 +1,48 @@
1
+ import { Component } from 'vue';
2
+ export type SearchInputSize = 'sm' | 'md' | 'lg';
3
+ export interface SearchResult {
4
+ /** Unique identifier for the result */
5
+ id: string | number;
6
+ /** Display label for the result */
7
+ label: string;
8
+ /** Optional description shown below the label */
9
+ description?: string;
10
+ /** Optional icon (name string or Component) */
11
+ icon?: string | Component;
12
+ /** Whether this result is disabled */
13
+ disabled?: boolean;
14
+ /** Additional data to pass through on selection */
15
+ data?: unknown;
16
+ }
17
+ export interface SearchInputProps {
18
+ /** v-model value for the search query */
19
+ modelValue?: string;
20
+ /** Placeholder text when input is empty */
21
+ placeholder?: string;
22
+ /** Size variant */
23
+ size?: SearchInputSize;
24
+ /** Disable the input */
25
+ disabled?: boolean;
26
+ /** Show clear button when input has value */
27
+ clearable?: boolean;
28
+ /** Start in expanded state (only applies when collapsible is true) */
29
+ expanded?: boolean;
30
+ /** Enable collapsible pill behavior (default: true). When false, input is always expanded */
31
+ collapsible?: boolean;
32
+ /** Collapse back to icon when clicking outside (only applies when collapsible is true) */
33
+ collapseOnBlur?: boolean;
34
+ /** Array of search results to display */
35
+ results?: SearchResult[];
36
+ /** Show loading spinner in dropdown */
37
+ loading?: boolean;
38
+ /** Debounce delay for search event in milliseconds */
39
+ debounceMs?: number;
40
+ /** Minimum characters before showing results */
41
+ minQueryLength?: number;
42
+ /** Text to show when no results found */
43
+ noResultsText?: string;
44
+ /** Maximum number of results to display */
45
+ maxResults?: number;
46
+ /** Width of expanded input (CSS value) */
47
+ expandedWidth?: string;
48
+ }
@@ -14,10 +14,10 @@ declare const _default: import('vue').DefineComponent<SparklineProps, {}, {}, {}
14
14
  showTooltip: boolean;
15
15
  animated: boolean;
16
16
  animationDuration: number;
17
+ fillOpacity: number;
18
+ strokeWidth: number;
17
19
  responsive: boolean;
18
20
  curve: import('./types').SparklineCurve;
19
- strokeWidth: number;
20
- fillOpacity: number;
21
21
  highlightOnHover: boolean;
22
22
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
23
23
  containerRef: HTMLDivElement;
@@ -14,9 +14,9 @@ declare const _default: import('vue').DefineComponent<SparklineLineProps, {}, {}
14
14
  area: boolean;
15
15
  animated: boolean;
16
16
  animationDuration: number;
17
+ strokeWidth: number;
17
18
  curve: SparklineCurve;
18
19
  areaOpacity: number;
19
- strokeWidth: number;
20
20
  baseline: number;
21
21
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
22
22
  pathRef: SVGPathElement;
@@ -35,11 +35,12 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {
35
35
  rowHeight: number;
36
36
  overscan: number;
37
37
  emptyMessage: string;
38
+ animated: boolean;
39
+ maxHeight: string;
40
+ columns: ColumnDefinition<Record<string, unknown>>[];
38
41
  hoverable: boolean;
39
42
  selectionMode: import('./types').SelectionMode;
40
43
  selectedKeys: Set<string | number> | Array<string | number>;
41
- maxHeight: string;
42
- columns: ColumnDefinition<Record<string, unknown>>[];
43
44
  rowKey: string | ((row: Record<string, unknown>, index: number) => string | number);
44
45
  sortState: SortState;
45
46
  stickyHeader: boolean;
@@ -74,6 +74,8 @@ export interface TableProps<T = Record<string, unknown>> {
74
74
  overscan?: number;
75
75
  /** Enable client-side sorting using column sortFn or default string comparison */
76
76
  clientSideSorting?: boolean;
77
+ /** Enable row animations for sorting, filtering, add/remove (default: true) */
78
+ animated?: boolean;
77
79
  }
78
80
  export interface TableHeaderProps {
79
81
  /** Enable sticky positioning */
@@ -213,5 +215,7 @@ export interface TableContext<T = Record<string, unknown>> {
213
215
  getRowKey: (row: T, index: number) => string | number;
214
216
  /** Unique table ID for ARIA */
215
217
  tableId: string;
218
+ /** Row animations enabled */
219
+ animated: Ref<boolean>;
216
220
  }
217
221
  export declare const TABLE_INJECTION_KEY: InjectionKey<TableContext>;
@@ -0,0 +1,60 @@
1
+ import { TimerProps, TimerFormat, TimerSize } from './types';
2
+ declare function start(): void;
3
+ declare function pause(): void;
4
+ declare function reset(): void;
5
+ declare function toggle(): void;
6
+ declare function __VLS_template(): {
7
+ attrs: Partial<{}>;
8
+ slots: {
9
+ display?(_: {
10
+ time: number;
11
+ formatted: string;
12
+ }): any;
13
+ controls?(_: {
14
+ start: typeof start;
15
+ pause: typeof pause;
16
+ reset: typeof reset;
17
+ toggle: typeof toggle;
18
+ isRunning: boolean;
19
+ currentTime: number;
20
+ }): any;
21
+ };
22
+ refs: {};
23
+ rootEl: HTMLDivElement;
24
+ };
25
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
26
+ declare const __VLS_component: import('vue').DefineComponent<TimerProps, {
27
+ start: typeof start;
28
+ pause: typeof pause;
29
+ reset: typeof reset;
30
+ toggle: typeof toggle;
31
+ isRunning: import('vue').Ref<boolean, boolean>;
32
+ currentTime: import('vue').Ref<number, number>;
33
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
34
+ reset: () => any;
35
+ start: () => any;
36
+ pause: () => any;
37
+ tick: (time: number) => any;
38
+ complete: () => any;
39
+ }, string, import('vue').PublicProps, Readonly<TimerProps> & Readonly<{
40
+ onReset?: (() => any) | undefined;
41
+ onStart?: (() => any) | undefined;
42
+ onPause?: (() => any) | undefined;
43
+ onTick?: ((time: number) => any) | undefined;
44
+ onComplete?: (() => any) | undefined;
45
+ }>, {
46
+ size: TimerSize;
47
+ animated: boolean;
48
+ mode: import('./types').TimerMode;
49
+ format: TimerFormat;
50
+ duration: number;
51
+ autoStart: boolean;
52
+ showControls: boolean;
53
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
54
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
55
+ export default _default;
56
+ type __VLS_WithTemplateSlots<T, S> = T & {
57
+ new (): {
58
+ $slots: S;
59
+ };
60
+ };
@@ -0,0 +1,2 @@
1
+ export { default as Timer } from './Timer.vue';
2
+ export type { TimerProps, TimerMode, TimerFormat, TimerSize } from './types';
@@ -0,0 +1,19 @@
1
+ export type TimerMode = 'stopwatch' | 'countdown';
2
+ export type TimerFormat = 'auto' | 'ss' | 'mm:ss' | 'hh:mm:ss';
3
+ export type TimerSize = 'sm' | 'md' | 'lg' | 'xl';
4
+ export interface TimerProps {
5
+ /** Timer mode */
6
+ mode?: TimerMode;
7
+ /** Duration in seconds for countdown mode */
8
+ duration?: number;
9
+ /** Start automatically on mount */
10
+ autoStart?: boolean;
11
+ /** Time display format */
12
+ format?: TimerFormat;
13
+ /** Show built-in controls */
14
+ showControls?: boolean;
15
+ /** Size variant */
16
+ size?: TimerSize;
17
+ /** Enable slide animation on digit changes */
18
+ animated?: boolean;
19
+ }
@@ -0,0 +1,22 @@
1
+ import { TreeProps, TreeNodeId } from './types';
2
+ declare function expandAll(): void;
3
+ declare function collapseAll(): void;
4
+ declare const _default: import('vue').DefineComponent<TreeProps, {
5
+ expandAll: typeof expandAll;
6
+ collapseAll: typeof collapseAll;
7
+ expandedKeys: import('vue').ComputedRef<Set<TreeNodeId> & Omit<Set<TreeNodeId>, keyof Set<any>>>;
8
+ selectedKeys: import('vue').ComputedRef<Set<TreeNodeId> & Omit<Set<TreeNodeId>, keyof Set<any>>>;
9
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
10
+ "update:selected": (value: TreeNodeId[]) => any;
11
+ "update:expanded": (value: TreeNodeId[]) => any;
12
+ }, string, import('vue').PublicProps, Readonly<TreeProps> & Readonly<{
13
+ "onUpdate:selected"?: ((value: TreeNodeId[]) => any) | undefined;
14
+ "onUpdate:expanded"?: ((value: TreeNodeId[]) => any) | undefined;
15
+ }>, {
16
+ selected: TreeNodeId[];
17
+ expanded: TreeNodeId[];
18
+ selectable: boolean;
19
+ multiSelect: boolean;
20
+ showLines: boolean;
21
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
22
+ export default _default;
@@ -0,0 +1,5 @@
1
+ import { TreeNodeProps } from './types';
2
+ declare const _default: import('vue').DefineComponent<TreeNodeProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<TreeNodeProps> & Readonly<{}>, {
3
+ level: number;
4
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
5
+ export default _default;
@@ -0,0 +1,3 @@
1
+ export { default as Tree } from './Tree.vue';
2
+ export { default as TreeNode } from './TreeNode.vue';
3
+ export type { TreeNodeData, TreeNodeId, TreeProps, TreeNodeProps, TreeContext, } from './types';
@@ -0,0 +1,55 @@
1
+ import { InjectionKey, Ref } from 'vue';
2
+ export type TreeNodeId = string | number;
3
+ export interface TreeNodeData {
4
+ /** Unique identifier for the node */
5
+ id: TreeNodeId;
6
+ /** Display label for the node */
7
+ label: string;
8
+ /** Optional icon name */
9
+ icon?: string;
10
+ /** Child nodes */
11
+ children?: TreeNodeData[];
12
+ /** Whether the node is disabled */
13
+ disabled?: boolean;
14
+ }
15
+ export interface TreeProps {
16
+ /** Tree data structure */
17
+ nodes: TreeNodeData[];
18
+ /** Selected node IDs (v-model:selected) */
19
+ selected?: TreeNodeId[];
20
+ /** Expanded node IDs (v-model:expanded) */
21
+ expanded?: TreeNodeId[];
22
+ /** Enable node selection */
23
+ selectable?: boolean;
24
+ /** Allow multiple selection */
25
+ multiSelect?: boolean;
26
+ /** Show connecting lines between nodes */
27
+ showLines?: boolean;
28
+ }
29
+ export interface TreeNodeProps {
30
+ /** Node data */
31
+ node: TreeNodeData;
32
+ /** Nesting level (0 = root) */
33
+ level: number;
34
+ }
35
+ export interface TreeContext {
36
+ /** Set of expanded node IDs */
37
+ expandedKeys: Ref<Set<TreeNodeId>>;
38
+ /** Set of selected node IDs */
39
+ selectedKeys: Ref<Set<TreeNodeId>>;
40
+ /** Whether selection is enabled */
41
+ selectable: Ref<boolean>;
42
+ /** Whether multi-select is enabled */
43
+ multiSelect: Ref<boolean>;
44
+ /** Whether to show connecting lines */
45
+ showLines: Ref<boolean>;
46
+ /** Toggle node expansion */
47
+ toggleExpand: (id: TreeNodeId) => void;
48
+ /** Toggle node selection */
49
+ toggleSelect: (id: TreeNodeId) => void;
50
+ /** Check if node is expanded */
51
+ isExpanded: (id: TreeNodeId) => boolean;
52
+ /** Check if node is selected */
53
+ isSelected: (id: TreeNodeId) => boolean;
54
+ }
55
+ export declare const TREE_INJECTION_KEY: InjectionKey<TreeContext>;
@@ -11,6 +11,7 @@ export * from './Carousel';
11
11
  export * from './Checkbox';
12
12
  export * from './ColorPicker';
13
13
  export * from './DatePicker';
14
+ export * from './DialMenu';
14
15
  export * from './Divider';
15
16
  export * from './Card';
16
17
  export * from './DataList';
@@ -40,6 +41,7 @@ export * from './Popover';
40
41
  export * from './Progress';
41
42
  export * from './Radio';
42
43
  export * from './Rating';
44
+ export * from './SearchInput';
43
45
  export * from './Select';
44
46
  export * from './Sidebar';
45
47
  export * from './Slider';
@@ -53,6 +55,8 @@ export * from './Text';
53
55
  export * from './Textarea';
54
56
  export * from './RichTextEditor';
55
57
  export * from './TimeInput';
58
+ export * from './Timer';
56
59
  export * from './Toast';
57
60
  export * from './Tooltip';
61
+ export * from './Tree';
58
62
  export * from './User';