@bcc-code/component-library-vue 0.0.0-dev.1f2ce94

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 (33) hide show
  1. package/README.md +184 -0
  2. package/dist/component-library.js +69546 -0
  3. package/dist/component-library.umd.cjs +11694 -0
  4. package/dist/index.css +1 -0
  5. package/dist/theme.css +2404 -0
  6. package/dist-types/components/custom/BccAvatar/BccAvatar.vue.d.ts +19 -0
  7. package/dist-types/components/custom/BccBadge/BccBadge.vue.d.ts +32 -0
  8. package/dist-types/components/custom/BccCapacityIndicator/BccCapacityIndicator.vue.d.ts +23 -0
  9. package/dist-types/components/custom/BccCircleLoader/BccCircleLoader.vue.d.ts +3 -0
  10. package/dist-types/components/custom/BccDialKnob/BccDialKnob.vue.d.ts +64 -0
  11. package/dist-types/components/custom/BccFrame/BccFrame.vue.d.ts +39 -0
  12. package/dist-types/components/custom/BccGraphic/BccGraphic.vue.d.ts +47 -0
  13. package/dist-types/components/custom/BccNpsResult/BccNpsResult.vue.d.ts +21 -0
  14. package/dist-types/components/custom/BccNpsScore/BccNpsScore.vue.d.ts +36 -0
  15. package/dist-types/components/custom/BccReact/BccReact.vue.d.ts +11 -0
  16. package/dist-types/components/custom/BccReact/BccReactEmoji.vue.d.ts +4 -0
  17. package/dist-types/components/custom/BccReact/types.d.ts +18 -0
  18. package/dist-types/components/custom/BccTabs/BccTabs.vue.d.ts +38 -0
  19. package/dist-types/components/custom/BccTag/BccTag.vue.d.ts +27 -0
  20. package/dist-types/components/custom/BccToggle/BccToggle.vue.d.ts +19 -0
  21. package/dist-types/components/custom/index.d.ts +30 -0
  22. package/dist-types/components/wrapped/BccButton.vue.d.ts +21 -0
  23. package/dist-types/components/wrapped/BccCheckbox.vue.d.ts +17 -0
  24. package/dist-types/components/wrapped/BccInput.vue.d.ts +48 -0
  25. package/dist-types/components/wrapped/BccMessage.vue.d.ts +19 -0
  26. package/dist-types/components/wrapped/BccToggleButton.vue.d.ts +21 -0
  27. package/dist-types/components/wrapped/index.d.ts +14 -0
  28. package/dist-types/composables/animatedNumber.d.ts +4 -0
  29. package/dist-types/contexts.d.ts +52 -0
  30. package/dist-types/index.d.ts +146 -0
  31. package/dist-types/setup.d.ts +2 -0
  32. package/dist-types/types.d.ts +4 -0
  33. package/package.json +103 -0
@@ -0,0 +1,19 @@
1
+ import type { VueComponent } from '@/types';
2
+ import { type AvatarProps as PrimeAvatarProps } from 'primevue/avatar';
3
+ export type AvatarProps = Omit<PrimeAvatarProps, 'shape' | 'size'> & {
4
+ /** Affects avatar color for gender-specific defaults. */
5
+ gender?: 'male' | 'female' | 'M' | 'F' | 'unknown' | 'U';
6
+ /** When true, applies child-specific color */
7
+ child?: boolean;
8
+ /** Shows a person icon when true, or a custom component when provided. Used when no image is set. */
9
+ icon?: boolean | VueComponent;
10
+ /** Renders the avatar with rounded corners instead of circular. */
11
+ squared?: boolean;
12
+ /** Adds a visible border around the avatar. */
13
+ bordered?: boolean;
14
+ /** Controls the avatar dimensions; maps to CSS size classes (xs through xxl). */
15
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
16
+ };
17
+ declare const __VLS_export: import("vue").DefineComponent<AvatarProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<AvatarProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
18
+ declare const _default: typeof __VLS_export;
19
+ export default _default;
@@ -0,0 +1,32 @@
1
+ import { type BCC_CONTEXT } from '@/contexts';
2
+ import type { VueComponent } from '@/types';
3
+ export type BadgeProps = {
4
+ /** Main content: number, short text, or an icon component. Slot overrides this when provided. */
5
+ value?: string | number | VueComponent;
6
+ /** Controls badge dimensions and typography scale (sm through xl). */
7
+ size?: 'sm' | 'md' | 'lg' | 'xl';
8
+ /** Adds a 1px border around the badge. */
9
+ border?: boolean;
10
+ /** Adds a 2px border around the badge. */
11
+ bordered?: boolean;
12
+ /** Renders with square corners; when false, badge is pill-shaped. */
13
+ squared?: boolean;
14
+ /** Design context (e.g. neutral, brand) used for background and text color. */
15
+ context?: BCC_CONTEXT;
16
+ };
17
+ declare var __VLS_1: {};
18
+ type __VLS_Slots = {} & {
19
+ default?: (props: typeof __VLS_1) => any;
20
+ };
21
+ declare const __VLS_base: import("vue").DefineComponent<BadgeProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<BadgeProps> & Readonly<{}>, {
22
+ size: "sm" | "md" | "lg" | "xl";
23
+ context: BCC_CONTEXT;
24
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
25
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
26
+ declare const _default: typeof __VLS_export;
27
+ export default _default;
28
+ type __VLS_WithSlots<T, S> = T & {
29
+ new (): {
30
+ $slots: S;
31
+ };
32
+ };
@@ -0,0 +1,23 @@
1
+ export type CapacityIndicatorProps = {
2
+ /** Total capacity; use -1 for “unlimited” (shows an infinity-style icon instead of a bar). */
3
+ total: number;
4
+ /** Amount used; fills the progress arc/bar and drives the displayed remaining value. */
5
+ used?: number;
6
+ /** Visual size of the indicator (xs, sm, base, lg); affects SVG and text scale. */
7
+ size?: 'xs' | 'sm' | 'base' | 'lg';
8
+ /** Duration in ms for the progress fill animation when `used` changes. */
9
+ animationDuration?: number;
10
+ /** When true, uses a rounded square shape instead of a circle for the indicator. */
11
+ squared?: boolean;
12
+ /** When true, applies warning/full color states (e.g. color change at high usage). */
13
+ colored?: boolean;
14
+ };
15
+ declare const __VLS_export: import("vue").DefineComponent<CapacityIndicatorProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<CapacityIndicatorProps> & Readonly<{}>, {
16
+ size: "xs" | "sm" | "base" | "lg";
17
+ squared: boolean;
18
+ used: number;
19
+ animationDuration: number;
20
+ colored: boolean;
21
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
22
+ declare const _default: typeof __VLS_export;
23
+ export default _default;
@@ -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;
@@ -0,0 +1,64 @@
1
+ export type KnobProps = {
2
+ /** Canvas size in pixels (width and height); affects resolution and touch target. */
3
+ size?: number;
4
+ /** Thickness of the arc stroke in pixels. */
5
+ arcWidth?: number;
6
+ /** Minimum value in minutes (e.g. -720 for -12h); maps to the leftmost arc angle. */
7
+ min?: number;
8
+ /** Maximum value in minutes (e.g. 720 for +12h); maps to the rightmost arc angle. */
9
+ max?: number;
10
+ /** Step size in minutes; value is rounded to multiples of this when dragging. */
11
+ steps?: number;
12
+ /** When true, uses left/right accent colors (e.g. CSS variables) for the arc and handle. */
13
+ colored?: boolean;
14
+ /** When true, draws a more prominent handle circle with a white stroke. */
15
+ showHandle?: boolean;
16
+ /** When true, hides the direction arrows drawn on the arc. */
17
+ hideArrows?: boolean;
18
+ /** Duration in ms for the value-change animation (e.g. when model updates). */
19
+ duration?: number;
20
+ /** Max number of full rotations to animate; 0 or 1 means no rotation limit. */
21
+ animateRotations?: number;
22
+ };
23
+ export type KnobSlots = {
24
+ default?: () => unknown;
25
+ left?: () => unknown;
26
+ right?: () => unknown;
27
+ };
28
+ type __VLS_Slots = KnobSlots;
29
+ type __VLS_Props = KnobProps;
30
+ type __VLS_ModelProps = {
31
+ modelValue: number;
32
+ };
33
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
34
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
35
+ "update:modelValue": (value: number) => any;
36
+ } & {
37
+ "drag:start": () => any;
38
+ "drag:update": () => any;
39
+ "drag:end": () => any;
40
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
41
+ "onDrag:start"?: (() => any) | undefined;
42
+ "onDrag:update"?: (() => any) | undefined;
43
+ "onDrag:end"?: (() => any) | undefined;
44
+ "onUpdate:modelValue"?: ((value: number) => any) | undefined;
45
+ }>, {
46
+ size: number;
47
+ colored: boolean;
48
+ arcWidth: number;
49
+ min: number;
50
+ max: number;
51
+ steps: number;
52
+ showHandle: boolean;
53
+ hideArrows: boolean;
54
+ duration: number;
55
+ animateRotations: number;
56
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
57
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
58
+ declare const _default: typeof __VLS_export;
59
+ export default _default;
60
+ type __VLS_WithSlots<T, S> = T & {
61
+ new (): {
62
+ $slots: S;
63
+ };
64
+ };
@@ -0,0 +1,39 @@
1
+ export type FrameProps = {
2
+ /** Adds a drop shadow around the frame. */
3
+ shadow?: boolean;
4
+ /** Applies rounded corners to the frame. */
5
+ rounded?: boolean;
6
+ /** Sunken appearance (inset); use only one of sunken, raised, or overlay. */
7
+ sunken?: boolean;
8
+ /** Raised/elevated appearance; use only one of sunken, raised, or overlay. */
9
+ raised?: boolean;
10
+ /** Overlay style (e.g. floating panel); use only one of sunken, raised, or overlay. */
11
+ overlay?: boolean;
12
+ /** Flex: center content on both axes. */
13
+ center?: boolean;
14
+ /** Flex: space-between for main-axis distribution. */
15
+ between?: boolean;
16
+ /** Flex: align content to the left. */
17
+ left?: boolean;
18
+ /** Flex: align content to the right. */
19
+ right?: boolean;
20
+ /** Flex: align content to the top. */
21
+ top?: boolean;
22
+ /** Flex: align content to the bottom. */
23
+ bottom?: boolean;
24
+ /** Flex: stretch children to fill the frame. */
25
+ stretch?: boolean;
26
+ };
27
+ declare var __VLS_1: {};
28
+ type __VLS_Slots = {} & {
29
+ default?: (props: typeof __VLS_1) => any;
30
+ };
31
+ declare const __VLS_base: import("vue").DefineComponent<FrameProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<FrameProps> & Readonly<{}>, {}, {}, {}, {}, 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,47 @@
1
+ export type GraphicProps = {
2
+ /** Image URL for the main banner/background; drives aspect-ratio box and loading state. */
3
+ bannerSrc?: string;
4
+ /** Image URL for the logo overlay (e.g. centered on the graphic). */
5
+ logoSrc?: string;
6
+ /** Border radius preset: none, sm, base, md, xl; applied to banner and container. */
7
+ rounding?: keyof typeof roundingClasses;
8
+ /** Aspect ratio of the graphic (e.g. 'wide' for 16:9, or a custom value like '21/9'). */
9
+ ratio?: AspectRatioStyle;
10
+ /** When true, renders the banner image in grayscale. */
11
+ grayscale?: boolean;
12
+ };
13
+ export declare const ratioClasses: {
14
+ ultraWide: string;
15
+ wide: string;
16
+ landscape: string;
17
+ square: string;
18
+ portrait: string;
19
+ };
20
+ export declare const roundingClasses: {
21
+ none: string;
22
+ sm: string;
23
+ base: string;
24
+ md: string;
25
+ xl: string;
26
+ };
27
+ export type AspectRatioStyle = keyof typeof ratioClasses | string | undefined;
28
+ export declare function getAspectRatioStyle(ratio: AspectRatioStyle): string;
29
+ declare const _default: typeof __VLS_export;
30
+ export default _default;
31
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<GraphicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<GraphicProps> & Readonly<{}>, {
32
+ rounding: keyof typeof roundingClasses;
33
+ ratio: string;
34
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
35
+ 'top-left'?: (props: {}) => any;
36
+ } & {
37
+ 'top-right'?: (props: {}) => any;
38
+ } & {
39
+ 'bottom-right'?: (props: {}) => any;
40
+ } & {
41
+ 'bottom-left'?: (props: {}) => any;
42
+ }>;
43
+ type __VLS_WithSlots<T, S> = T & {
44
+ new (): {
45
+ $slots: S;
46
+ };
47
+ };
@@ -0,0 +1,21 @@
1
+ export type NpsResultProps = {
2
+ /** NPS score between -100 and 100; drives the gauge needle angle and position. */
3
+ score: number;
4
+ /** Controls the size of the gauge and optional text (lg, md, sm, xs). */
5
+ size?: 'lg' | 'md' | 'sm' | 'xs';
6
+ /** Text shown as the main heading; defaults to the numeric score when unset. */
7
+ display?: string;
8
+ /** Secondary label shown under the main heading. */
9
+ underline?: string;
10
+ /** When true, hides the heading and underline so only the gauge is shown. */
11
+ hideText?: boolean;
12
+ /** When true, the gauge needle animates to the score on mount/update. */
13
+ animated?: boolean;
14
+ };
15
+ declare const __VLS_export: import("vue").DefineComponent<NpsResultProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<NpsResultProps> & Readonly<{}>, {
16
+ size: "lg" | "md" | "sm" | "xs";
17
+ hideText: boolean;
18
+ animated: boolean;
19
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
20
+ declare const _default: typeof __VLS_export;
21
+ export default _default;
@@ -0,0 +1,36 @@
1
+ export type NpsScoreProps = {
2
+ /** When true, reverses the visual order of the scale (e.g. high-to-low left-to-right). */
3
+ reverse?: boolean;
4
+ /** Label at the left end of the scale (e.g. "Not likely"). */
5
+ leftLabel?: string;
6
+ /** Label at the right end of the scale (e.g. "Very likely"). */
7
+ rightLabel?: string;
8
+ /** Puts the labels above or below the score bar. */
9
+ labelPosition?: 'top' | 'bottom';
10
+ /** Minimum selectable score (inclusive). */
11
+ min?: number;
12
+ /** Maximum selectable score (inclusive). */
13
+ max?: number;
14
+ /** Disables all score buttons and prevents selection. */
15
+ disabled?: boolean;
16
+ };
17
+ type __VLS_Props = NpsScoreProps;
18
+ type __VLS_ModelProps = {
19
+ modelValue?: number | null;
20
+ };
21
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
22
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
23
+ "update:modelValue": (value: number | null) => any;
24
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
25
+ "onUpdate:modelValue"?: ((value: number | null) => any) | undefined;
26
+ }>, {
27
+ reverse: boolean;
28
+ min: number;
29
+ max: number;
30
+ leftLabel: string;
31
+ rightLabel: string;
32
+ labelPosition: "top" | "bottom";
33
+ disabled: boolean;
34
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
35
+ declare const _default: typeof __VLS_export;
36
+ export default _default;
@@ -0,0 +1,11 @@
1
+ import type { ReactProps } from './types';
2
+ declare const __VLS_export: import("vue").DefineComponent<ReactProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
3
+ toggle: (id: string) => any;
4
+ }, string, import("vue").PublicProps, Readonly<ReactProps> & Readonly<{
5
+ onToggle?: ((id: string) => any) | undefined;
6
+ }>, {
7
+ top: boolean;
8
+ placeholder: string;
9
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
+ declare const _default: typeof __VLS_export;
11
+ export default _default;
@@ -0,0 +1,4 @@
1
+ import type { ReactInfo } from './types';
2
+ declare const __VLS_export: import("vue").DefineComponent<ReactInfo, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ReactInfo> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
3
+ declare const _default: typeof __VLS_export;
4
+ export default _default;
@@ -0,0 +1,18 @@
1
+ export type ReactInfo = {
2
+ /** Unique id for this reaction option (e.g. for toggle events). */
3
+ id: string;
4
+ /** Emoji character to display (e.g. "👍"). */
5
+ emoji: string;
6
+ /** Number of times this reaction was chosen; shown next to the emoji when > 1. */
7
+ count?: number;
8
+ /** When true, indicates the current user has selected this reaction; affects styling. */
9
+ selected?: boolean;
10
+ };
11
+ export type ReactProps = {
12
+ /** List of reaction options with id, emoji, count, and selected state. */
13
+ emojis: ReactInfo[];
14
+ /** When true, the reaction picker is positioned above the list and opens upward. */
15
+ top?: boolean;
16
+ /** Message shown when there are no reactions yet (e.g. "Be the first to react"). */
17
+ placeholder?: string;
18
+ };
@@ -0,0 +1,38 @@
1
+ import type { VueComponent } from '@/types';
2
+ import { type TabsProps as PrimeTabsProps } from 'primevue/tabs';
3
+ import { type BadgeProps } from '../BccBadge/BccBadge.vue';
4
+ export interface TabItem {
5
+ title: string;
6
+ icon?: VueComponent;
7
+ badge?: BadgeProps;
8
+ as?: VueComponent;
9
+ value?: string;
10
+ }
11
+ export type TabsProps = Omit<PrimeTabsProps, 'value'> & {
12
+ tabs: TabItem[];
13
+ fill?: boolean;
14
+ modelValue?: number;
15
+ noPanels?: boolean;
16
+ };
17
+ type __VLS_Props = TabsProps;
18
+ type __VLS_ModelProps = {
19
+ modelValue?: number;
20
+ };
21
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
22
+ declare var __VLS_48: `tab-${number}`, __VLS_49: {};
23
+ type __VLS_Slots = {} & {
24
+ [K in NonNullable<typeof __VLS_48>]?: (props: typeof __VLS_49) => any;
25
+ };
26
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
27
+ "update:modelValue": (value: number) => any;
28
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
29
+ "onUpdate:modelValue"?: ((value: number) => any) | undefined;
30
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
31
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
32
+ declare const _default: typeof __VLS_export;
33
+ export default _default;
34
+ type __VLS_WithSlots<T, S> = T & {
35
+ new (): {
36
+ $slots: S;
37
+ };
38
+ };
@@ -0,0 +1,27 @@
1
+ import type { VueComponent } from '@/types';
2
+ import { type BadgeProps } from '../BccBadge/BccBadge.vue';
3
+ export type TagProps = Omit<BadgeProps, 'value' | 'squared'> & {
4
+ /** Icon component shown on the left (or right when iconRight is true). */
5
+ icon?: VueComponent;
6
+ /** When true, icon slot is on the right; when a component, shows that icon on the right. */
7
+ iconRight?: VueComponent | boolean;
8
+ /** When true, tag uses rounded corners; when false, passes squared to BccBadge. */
9
+ rounded?: boolean;
10
+ /** Applies hover/pointer styles so the tag looks and behaves like a clickable control. */
11
+ clickable?: boolean;
12
+ /** Label text for the tag when not using the default slot. */
13
+ text?: string;
14
+ };
15
+ declare var __VLS_13: {};
16
+ type __VLS_Slots = {} & {
17
+ default?: (props: typeof __VLS_13) => any;
18
+ };
19
+ declare const __VLS_base: import("vue").DefineComponent<TagProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<TagProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
20
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
21
+ declare const _default: typeof __VLS_export;
22
+ export default _default;
23
+ type __VLS_WithSlots<T, S> = T & {
24
+ new (): {
25
+ $slots: S;
26
+ };
27
+ };
@@ -0,0 +1,19 @@
1
+ import type { VueComponent } from '@/types';
2
+ import { type ToggleSwitchProps } from 'primevue';
3
+ export type ToggleProps = ToggleSwitchProps & {
4
+ /** Text shown next to the switch; also used for the label’s `for` attribute. */
5
+ label?: string;
6
+ /** Custom icon component rendered inside the toggle handle (replaces check/cross when set). */
7
+ icon?: VueComponent;
8
+ /** When true, shows check/cross icons in the handle based on checked state. */
9
+ withIcon?: boolean;
10
+ /** When true, shows a loading spinner in the handle and typically disables interaction. */
11
+ loading?: boolean;
12
+ /** Applies “toggled” visual state (e.g. for post-click feedback) independent of current value. */
13
+ wasToggled?: boolean;
14
+ /** When true, applies context-aware styling (e.g. from design tokens/theme). */
15
+ useCtx?: boolean;
16
+ };
17
+ declare const __VLS_export: import("vue").DefineComponent<ToggleProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ToggleProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
18
+ declare const _default: typeof __VLS_export;
19
+ export default _default;
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Custom BCC components (not based on PrimeVue).
3
+ * Add new custom components here and export them from this file.
4
+ */
5
+ export { default as BccAvatar } from './BccAvatar/BccAvatar.vue';
6
+ export { default as BccBadge } from './BccBadge/BccBadge.vue';
7
+ export { default as BccCapacityIndicator } from './BccCapacityIndicator/BccCapacityIndicator.vue';
8
+ export { default as BccCircleLoader } from './BccCircleLoader/BccCircleLoader.vue';
9
+ export { default as BccDialKnob } from './BccDialKnob/BccDialKnob.vue';
10
+ export { default as BccFrame } from './BccFrame/BccFrame.vue';
11
+ export { default as BccGraphic } from './BccGraphic/BccGraphic.vue';
12
+ export { default as BccNpsResult } from './BccNpsResult/BccNpsResult.vue';
13
+ export { default as BccNpsScore } from './BccNpsScore/BccNpsScore.vue';
14
+ export { default as BccReact } from './BccReact/BccReact.vue';
15
+ export { default as BccReactEmoji } from './BccReact/BccReactEmoji.vue';
16
+ export { default as BccTabs } from './BccTabs/BccTabs.vue';
17
+ export { default as BccTag } from './BccTag/BccTag.vue';
18
+ export { default as BccToggle } from './BccToggle/BccToggle.vue';
19
+ export type { AvatarProps } from './BccAvatar/BccAvatar.vue';
20
+ export type { BadgeProps } from './BccBadge/BccBadge.vue';
21
+ export type { CapacityIndicatorProps } from './BccCapacityIndicator/BccCapacityIndicator.vue';
22
+ export type { KnobProps, KnobSlots } from './BccDialKnob/BccDialKnob.vue';
23
+ export type { FrameProps } from './BccFrame/BccFrame.vue';
24
+ export type { GraphicProps } from './BccGraphic/BccGraphic.vue';
25
+ export type { NpsResultProps } from './BccNpsResult/BccNpsResult.vue';
26
+ export type { NpsScoreProps } from './BccNpsScore/BccNpsScore.vue';
27
+ export type { ReactInfo, ReactProps } from './BccReact/types';
28
+ export type { TabItem, TabsProps } from './BccTabs/BccTabs.vue';
29
+ export type { TagProps } from './BccTag/BccTag.vue';
30
+ export type { ToggleProps } from './BccToggle/BccToggle.vue';
@@ -0,0 +1,21 @@
1
+ import type { VueComponent } from '@/types';
2
+ import { type ButtonProps as PrimeButtonProps } from 'primevue/button';
3
+ export type ButtonProps = {
4
+ icon?: VueComponent;
5
+ iconRight?: boolean;
6
+ size?: PrimeButtonProps['size'];
7
+ useCtx?: boolean;
8
+ } & /* @vue-ignore */ Omit<PrimeButtonProps, 'icon' | 'iconPos'>;
9
+ declare var __VLS_14: {};
10
+ type __VLS_Slots = {} & {
11
+ default?: (props: typeof __VLS_14) => any;
12
+ };
13
+ declare const __VLS_base: import("vue").DefineComponent<ButtonProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ButtonProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
14
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
15
+ declare const _default: typeof __VLS_export;
16
+ export default _default;
17
+ type __VLS_WithSlots<T, S> = T & {
18
+ new (): {
19
+ $slots: S;
20
+ };
21
+ };
@@ -0,0 +1,17 @@
1
+ import { type CheckboxProps as PrimeCheckboxProps } from 'primevue/checkbox';
2
+ export type CheckboxProps = PrimeCheckboxProps & {
3
+ label?: string;
4
+ };
5
+ declare var __VLS_18: {};
6
+ type __VLS_Slots = {} & {
7
+ default?: (props: typeof __VLS_18) => any;
8
+ };
9
+ declare const __VLS_base: import("vue").DefineComponent<CheckboxProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<CheckboxProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
13
+ type __VLS_WithSlots<T, S> = T & {
14
+ new (): {
15
+ $slots: S;
16
+ };
17
+ };
@@ -0,0 +1,48 @@
1
+ import type { VueComponent } from '@/types';
2
+ import { type InputNumberProps } from 'primevue/inputnumber';
3
+ import { type InputTextProps } from 'primevue/inputtext';
4
+ export type InputProps = {
5
+ id?: string;
6
+ size?: InputTextProps['size'];
7
+ icon?: VueComponent;
8
+ iconRight?: VueComponent | boolean;
9
+ loading?: boolean;
10
+ numeric?: boolean;
11
+ } & /* @vue-ignore */ (InputTextProps | ({
12
+ numeric: true;
13
+ } & InputNumberProps));
14
+ declare const __VLS_export: import("vue").DefineComponent<({
15
+ id?: string;
16
+ size?: InputTextProps["size"];
17
+ icon?: VueComponent;
18
+ iconRight?: VueComponent | boolean;
19
+ loading?: boolean;
20
+ numeric?: boolean;
21
+ } & InputTextProps) | ({
22
+ id?: string;
23
+ size?: InputTextProps["size"];
24
+ icon?: VueComponent;
25
+ iconRight?: VueComponent | boolean;
26
+ loading?: boolean;
27
+ numeric?: boolean;
28
+ } & {
29
+ numeric: true;
30
+ } & InputNumberProps), {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<({
31
+ id?: string;
32
+ size?: InputTextProps["size"];
33
+ icon?: VueComponent;
34
+ iconRight?: VueComponent | boolean;
35
+ loading?: boolean;
36
+ numeric?: boolean;
37
+ } & InputTextProps) | ({
38
+ id?: string;
39
+ size?: InputTextProps["size"];
40
+ icon?: VueComponent;
41
+ iconRight?: VueComponent | boolean;
42
+ loading?: boolean;
43
+ numeric?: boolean;
44
+ } & {
45
+ numeric: true;
46
+ } & InputNumberProps)> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
47
+ declare const _default: typeof __VLS_export;
48
+ export default _default;
@@ -0,0 +1,19 @@
1
+ import type { VueComponent } from '@/types';
2
+ import { type MessageProps as PrimeMessageProps } from 'primevue/message';
3
+ export type MessageProps = Omit<PrimeMessageProps, 'icon'> & {
4
+ icon?: boolean | VueComponent;
5
+ iconRight?: VueComponent | boolean;
6
+ };
7
+ declare var __VLS_14: {};
8
+ type __VLS_Slots = {} & {
9
+ default?: (props: typeof __VLS_14) => any;
10
+ };
11
+ declare const __VLS_base: import("vue").DefineComponent<MessageProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MessageProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
13
+ declare const _default: typeof __VLS_export;
14
+ export default _default;
15
+ type __VLS_WithSlots<T, S> = T & {
16
+ new (): {
17
+ $slots: S;
18
+ };
19
+ };
@@ -0,0 +1,21 @@
1
+ import type { VueComponent } from '@/types';
2
+ import { type ToggleButtonProps as PrimeToggleButtonProps } from 'primevue/togglebutton';
3
+ export type ToggleButtonProps = Omit<PrimeToggleButtonProps, 'onIcon' | 'offIcon'> & {
4
+ /** Custom icon component rendered inside the button when checked. */
5
+ onIcon?: VueComponent;
6
+ /** Custom icon component rendered inside the button when unchecked. */
7
+ offIcon?: VueComponent;
8
+ };
9
+ declare var __VLS_14: {};
10
+ type __VLS_Slots = {} & {
11
+ default?: (props: typeof __VLS_14) => any;
12
+ };
13
+ declare const __VLS_base: import("vue").DefineComponent<ToggleButtonProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ToggleButtonProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
14
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
15
+ declare const _default: typeof __VLS_export;
16
+ export default _default;
17
+ type __VLS_WithSlots<T, S> = T & {
18
+ new (): {
19
+ $slots: S;
20
+ };
21
+ };
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Wrapped PrimeVue components with BCC defaults or extensions.
3
+ * Add new wrapped components here and export them from this file.
4
+ */
5
+ export { default as BccButton } from './BccButton.vue';
6
+ export { default as BccCheckbox } from './BccCheckbox.vue';
7
+ export { default as BccInput } from './BccInput.vue';
8
+ export { default as BccMessage } from './BccMessage.vue';
9
+ export { default as BccToggleButton } from './BccToggleButton.vue';
10
+ export type { ButtonProps } from './BccButton.vue';
11
+ export type { CheckboxProps } from './BccCheckbox.vue';
12
+ export type { InputProps } from './BccInput.vue';
13
+ export type { MessageProps } from './BccMessage.vue';
14
+ export type { ToggleButtonProps } from './BccToggleButton.vue';
@@ -0,0 +1,4 @@
1
+ import { type Ref } from 'vue';
2
+ export default function useAnimatedNumber(to: Ref<number>, from?: number, duration?: number): {
3
+ value: Ref<number, number>;
4
+ };