@stachelock/ui 0.6.1 → 0.6.3

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 (77) hide show
  1. package/dist/AvatarIcon-kcEI0AWe.js +4 -0
  2. package/dist/AvatarImage-YFR2etb8.js +4 -0
  3. package/dist/AvatarInitials-B7wCnBX9.js +4 -0
  4. package/dist/composables/index.js +33 -30
  5. package/dist/index.js +3409 -1140
  6. package/dist/src/components/UiBanner.d.ts +1 -1
  7. package/dist/src/components/UiLoadingDots.d.ts +1 -1
  8. package/dist/src/components/UiMenu.d.ts +1 -1
  9. package/dist/src/components/UiModal.d.ts +1 -1
  10. package/dist/src/components/avatars/AvatarIcon.d.ts +18 -0
  11. package/dist/src/components/avatars/AvatarImage.d.ts +25 -0
  12. package/dist/src/components/avatars/AvatarInitials.d.ts +15 -0
  13. package/dist/src/components/avatars/AvatarWithText.d.ts +129 -0
  14. package/dist/src/components/avatars/index.d.ts +4 -0
  15. package/dist/src/components/collection-editor/CollectionItemList.d.ts +42 -0
  16. package/dist/src/components/collection-editor/OrganizationsEditor.d.ts +29 -0
  17. package/dist/src/components/collection-editor/RelatedNamesEditor.d.ts +26 -0
  18. package/dist/src/components/collection-editor/SocialLinksEditor.d.ts +26 -0
  19. package/dist/src/components/collection-editor/index.d.ts +5 -0
  20. package/dist/src/components/formatters/DateFormatter.d.ts +119 -0
  21. package/dist/src/components/formatters/DateRangeFormatter.d.ts +63 -0
  22. package/dist/src/components/formatters/index.d.ts +2 -0
  23. package/dist/src/components/forms/FormFieldWrapper.d.ts +1 -1
  24. package/dist/src/components/icons/brands/DiscordBrandIcon.d.ts +2 -0
  25. package/dist/src/components/icons/brands/FacebookBrandIcon.d.ts +2 -0
  26. package/dist/src/components/icons/brands/GitHubBrandIcon.d.ts +2 -0
  27. package/dist/src/components/icons/brands/InstagramBrandIcon.d.ts +2 -0
  28. package/dist/src/components/icons/brands/LinkedInBrandIcon.d.ts +2 -0
  29. package/dist/src/components/icons/brands/PinterestBrandIcon.d.ts +2 -0
  30. package/dist/src/components/icons/brands/SnapchatBrandIcon.d.ts +2 -0
  31. package/dist/src/components/icons/brands/ThreadsBrandIcon.d.ts +2 -0
  32. package/dist/src/components/icons/brands/TikTokBrandIcon.d.ts +2 -0
  33. package/dist/src/components/icons/brands/TwitchBrandIcon.d.ts +2 -0
  34. package/dist/src/components/icons/brands/XBrandIcon.d.ts +2 -0
  35. package/dist/src/components/icons/brands/YouTubeBrandIcon.d.ts +2 -0
  36. package/dist/src/components/icons/brands/index.d.ts +12 -0
  37. package/dist/src/components/icons/index.d.ts +1 -0
  38. package/dist/src/components/index.d.ts +5 -0
  39. package/dist/src/components/inputs/AddressInput.d.ts +1 -1
  40. package/dist/src/components/inputs/ComboboxInput.d.ts +2 -2
  41. package/dist/src/components/inputs/DatepickerInput.d.ts +17 -17
  42. package/dist/src/components/inputs/EmailInput.d.ts +2 -2
  43. package/dist/src/components/inputs/ImageDropzoneInput.d.ts +326 -0
  44. package/dist/src/components/inputs/PhoneInput.d.ts +2 -2
  45. package/dist/src/components/inputs/RichTextInput.d.ts +2 -2
  46. package/dist/src/components/inputs/SelectInput.d.ts +2 -2
  47. package/dist/src/components/inputs/SelectTextInput.d.ts +4 -4
  48. package/dist/src/components/inputs/TagifyInput.d.ts +2 -2
  49. package/dist/src/components/inputs/TextInput.d.ts +3 -3
  50. package/dist/src/components/inputs/index.d.ts +1 -0
  51. package/dist/src/components/layouts/CardLayout.d.ts +1 -1
  52. package/dist/src/components/maps/UiInfoWindow.d.ts +2 -2
  53. package/dist/src/components/maps/UiMap.d.ts +1 -1
  54. package/dist/src/components/maps/UiMapAll.d.ts +6 -6
  55. package/dist/src/components/maps/UiMapMarker.d.ts +2 -2
  56. package/dist/src/components/modals/BaseModal.d.ts +1 -1
  57. package/dist/src/components/profiles/BentoProfileLayout.d.ts +9 -0
  58. package/dist/src/components/profiles/ProfileCard.d.ts +30 -0
  59. package/dist/src/components/profiles/ProfileContactCard.d.ts +12 -0
  60. package/dist/src/components/profiles/ProfileHeaderCard.d.ts +20 -0
  61. package/dist/src/components/profiles/ProfileLocationCard.d.ts +17 -0
  62. package/dist/src/components/profiles/ProfileOrganizationsCard.d.ts +11 -0
  63. package/dist/src/components/profiles/ProfilePersonalCard.d.ts +10 -0
  64. package/dist/src/components/profiles/ProfileProfessionalCard.d.ts +11 -0
  65. package/dist/src/components/profiles/ProfileRelatedNamesCard.d.ts +11 -0
  66. package/dist/src/components/profiles/index.d.ts +9 -0
  67. package/dist/src/components/wrappers/BackgroundGradientWrapper.d.ts +1 -1
  68. package/dist/src/composables/index.d.ts +1 -0
  69. package/dist/src/composables/useCollectionEditor.d.ts +64 -0
  70. package/dist/src/composables/useNotifications.d.ts +4 -4
  71. package/dist/src/types/collection-editor.d.ts +134 -0
  72. package/dist/src/types/index.d.ts +2 -0
  73. package/dist/src/types/profiles.d.ts +149 -0
  74. package/dist/style.css +1 -1
  75. package/dist/ui.css +1 -1
  76. package/dist/useCollectionEditor-BYyoAT0U.js +121 -0
  77. package/package.json +1 -1
@@ -164,6 +164,8 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<im
164
164
  "onUpdate:query"?: ((...args: any[]) => any) | undefined;
165
165
  "onInvalid-tag"?: ((...args: any[]) => any) | undefined;
166
166
  }>, {
167
+ itemKey: string;
168
+ itemText: string;
167
169
  placeholder: string;
168
170
  errorMessage: string;
169
171
  inline: boolean;
@@ -171,8 +173,6 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<im
171
173
  disabled: boolean;
172
174
  optional: boolean;
173
175
  pattern: RegExp;
174
- itemKey: string;
175
- itemText: string;
176
176
  itemSubtext: string;
177
177
  showSubext: boolean;
178
178
  tagDisplayKey: string;
@@ -16,11 +16,12 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<Te
16
16
  "onUpdate:validity"?: ((isValid: boolean) => any) | undefined;
17
17
  }>, {
18
18
  label: string;
19
- placeholder: string;
19
+ type: string;
20
20
  rules: any;
21
+ placeholder: string;
22
+ tertiaryLabel: string;
21
23
  value: string;
22
24
  disabled: boolean;
23
- tertiaryLabel: string;
24
25
  successMessage: string;
25
26
  showErrors: boolean;
26
27
  showValidCheck: boolean;
@@ -28,7 +29,6 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<Te
28
29
  disabledMessage: string;
29
30
  boxShadow: boolean;
30
31
  lazy: boolean;
31
- type: string;
32
32
  validateOnMount: boolean;
33
33
  inputClass: string | string[];
34
34
  inputStyle: string;
@@ -7,6 +7,7 @@ export { default as EmailInput } from './EmailInput';
7
7
  export { default as EmptyInput } from './EmptyInput';
8
8
  export { default as FileDropzoneInput } from './FileDropzoneInput';
9
9
  export { default as HiddenInput } from './HiddenInput';
10
+ export { default as ImageDropzoneInput } from './ImageDropzoneInput';
10
11
  export { default as InputsShowcase } from './InputsShowcase';
11
12
  export { default as PhoneInput } from './PhoneInput';
12
13
  export { default as RichTextInput } from './RichTextInput';
@@ -59,8 +59,8 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<Pr
59
59
  loading: boolean;
60
60
  shadow: Shadow;
61
61
  variant: Variant;
62
- showHeader: boolean;
63
62
  showFooter: boolean;
63
+ showHeader: boolean;
64
64
  divided: boolean;
65
65
  collapsible: boolean;
66
66
  collapsed: boolean;
@@ -329,6 +329,7 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<im
329
329
  "onUpdate:visible"?: ((value: boolean) => any) | undefined;
330
330
  }>, {
331
331
  error: string | null;
332
+ title: string;
332
333
  data: Record<string, any>;
333
334
  details: {
334
335
  /**
@@ -371,7 +372,6 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<im
371
372
  */
372
373
  type?: "link" | "text" | "email" | "phone" | "address" | undefined;
373
374
  }[] | undefined;
374
- title: string;
375
375
  loading: boolean;
376
376
  visible: boolean;
377
377
  closeOnEscape: boolean;
@@ -419,10 +419,10 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<im
419
419
  imageUrl: string;
420
420
  content: string;
421
421
  subtitle: string;
422
+ closeOnBackdrop: boolean;
422
423
  loadingText: string;
423
424
  showRetry: boolean;
424
425
  showAvatar: boolean;
425
- closeOnBackdrop: boolean;
426
426
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>, {
427
427
  title?(_: {}): any;
428
428
  subtitle?(_: {}): any;
@@ -658,8 +658,8 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<im
658
658
  }>> & Readonly<{
659
659
  [x: `on${Capitalize<any>}`]: ((...args: any[] | unknown[]) => any) | undefined;
660
660
  }>, {
661
- center: LatLngLiteral;
662
661
  id: string;
662
+ center: LatLngLiteral;
663
663
  width: string;
664
664
  theme: MapTheme;
665
665
  heading: number;
@@ -529,9 +529,9 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<im
529
529
  }) => any) | undefined;
530
530
  "onUpdate:visible-markers"?: ((markers: MapMarker<unknown>[]) => any) | undefined;
531
531
  }>, {
532
+ items: MapMarker<unknown>[] | Record<string, unknown>[];
532
533
  center: LatLngLiteral;
533
534
  width: string;
534
- items: MapMarker<unknown>[] | Record<string, unknown>[];
535
535
  theme: MapTheme;
536
536
  height: string;
537
537
  zoom: number;
@@ -573,8 +573,8 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<im
573
573
  $: import('vue').ComponentInternalInstance;
574
574
  $data: {};
575
575
  $props: Partial<{
576
- center: LatLngLiteral;
577
576
  id: string;
577
+ center: LatLngLiteral;
578
578
  width: string;
579
579
  theme: MapTheme;
580
580
  heading: number;
@@ -665,7 +665,7 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<im
665
665
  strictBounds?: boolean | undefined;
666
666
  } | undefined;
667
667
  readonly mapStyle?: Record<string, any> | undefined;
668
- } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, "center" | "id" | "width" | "theme" | "heading" | "maxZoom" | "draggable" | "height" | "styles" | "containerClass" | "zoom" | "apiKey" | "loadingText" | "clickableIcons" | "disableDefaultUi" | "disableDoubleClickZoom" | "fullscreenControl" | "gestureHandling" | "keyboardShortcuts" | "mapTypeControl" | "mapTypeId" | "minZoom" | "restriction" | "rotateControl" | "scaleControl" | "scrollwheel" | "streetViewControl" | "tilt" | "zoomControl" | "showRetry" | "autoTheme" | "lightTheme" | "darkTheme" | "mapClass" | "mapStyle" | "hideLoadingState" | "hideErrorState" | "showAddressUnavailable" | "addressUnavailableMessage" | "showCustomControls" | "showDefaultZoomControls" | "controlsPosition">;
668
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, "id" | "center" | "width" | "theme" | "heading" | "maxZoom" | "draggable" | "height" | "styles" | "containerClass" | "zoom" | "apiKey" | "loadingText" | "clickableIcons" | "disableDefaultUi" | "disableDoubleClickZoom" | "fullscreenControl" | "gestureHandling" | "keyboardShortcuts" | "mapTypeControl" | "mapTypeId" | "minZoom" | "restriction" | "rotateControl" | "scaleControl" | "scrollwheel" | "streetViewControl" | "tilt" | "zoomControl" | "showRetry" | "autoTheme" | "lightTheme" | "darkTheme" | "mapClass" | "mapStyle" | "hideLoadingState" | "hideErrorState" | "showAddressUnavailable" | "addressUnavailableMessage" | "showCustomControls" | "showDefaultZoomControls" | "controlsPosition">;
669
669
  $attrs: {
670
670
  [x: string]: unknown;
671
671
  };
@@ -1360,8 +1360,8 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<im
1360
1360
  } & {
1361
1361
  [x: string]: any;
1362
1362
  }, string, {
1363
- center: LatLngLiteral;
1364
1363
  id: string;
1364
+ center: LatLngLiteral;
1365
1365
  width: string;
1366
1366
  theme: MapTheme;
1367
1367
  heading: number;
@@ -1426,8 +1426,8 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<im
1426
1426
  $nextTick: typeof import('vue').nextTick;
1427
1427
  $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (args_0: R, args_1: R, args_2: import('@vue/reactivity').OnCleanup) => any : (args_0: any, args_1: any, args_2: import('@vue/reactivity').OnCleanup) => any, options?: import('vue').WatchOptions<boolean> | undefined): import('vue').WatchStopHandle;
1428
1428
  } & Readonly<{
1429
- center: LatLngLiteral;
1430
1429
  id: string;
1430
+ center: LatLngLiteral;
1431
1431
  width: string;
1432
1432
  theme: MapTheme;
1433
1433
  heading: number;
@@ -1645,7 +1645,7 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<im
1645
1645
  };
1646
1646
  }>> & Readonly<{
1647
1647
  [x: `on${Capitalize<any>}`]: ((...args: any[] | unknown[]) => any) | undefined;
1648
- }>, "reset" | "fitBounds" | "getBounds" | "getCenter" | "getZoom" | "panBy" | "panTo" | "setCenter" | "setZoom" | "getMap" | "fitToMarkers" | "addMarker" | "removeMarker" | "updateMarker" | "clearMarkers" | "getMarkers" | "getVisibleMarkers" | ("center" | "id" | "width" | "theme" | "heading" | "maxZoom" | "draggable" | "height" | "styles" | "containerClass" | "zoom" | "apiKey" | "loadingText" | "clickableIcons" | "disableDefaultUi" | "disableDoubleClickZoom" | "fullscreenControl" | "gestureHandling" | "keyboardShortcuts" | "mapTypeControl" | "mapTypeId" | "minZoom" | "restriction" | "rotateControl" | "scaleControl" | "scrollwheel" | "streetViewControl" | "tilt" | "zoomControl" | "showRetry" | "autoTheme" | "lightTheme" | "darkTheme" | "mapClass" | "mapStyle" | "hideLoadingState" | "hideErrorState" | "showAddressUnavailable" | "addressUnavailableMessage" | "showCustomControls" | "showDefaultZoomControls" | "controlsPosition")> & import('vue').ShallowUnwrapRef<{
1648
+ }>, "reset" | "fitBounds" | "getBounds" | "getCenter" | "getZoom" | "panBy" | "panTo" | "setCenter" | "setZoom" | "getMap" | "fitToMarkers" | "addMarker" | "removeMarker" | "updateMarker" | "clearMarkers" | "getMarkers" | "getVisibleMarkers" | ("id" | "center" | "width" | "theme" | "heading" | "maxZoom" | "draggable" | "height" | "styles" | "containerClass" | "zoom" | "apiKey" | "loadingText" | "clickableIcons" | "disableDefaultUi" | "disableDoubleClickZoom" | "fullscreenControl" | "gestureHandling" | "keyboardShortcuts" | "mapTypeControl" | "mapTypeId" | "minZoom" | "restriction" | "rotateControl" | "scaleControl" | "scrollwheel" | "streetViewControl" | "tilt" | "zoomControl" | "showRetry" | "autoTheme" | "lightTheme" | "darkTheme" | "mapClass" | "mapStyle" | "hideLoadingState" | "hideErrorState" | "showAddressUnavailable" | "addressUnavailableMessage" | "showCustomControls" | "showDefaultZoomControls" | "controlsPosition")> & import('vue').ShallowUnwrapRef<{
1649
1649
  getMap(): google.maps.Map | null;
1650
1650
  panTo(position: LatLngLiteral): void;
1651
1651
  panBy(x: number, y: number): void; /** Data loading state */
@@ -197,11 +197,11 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<im
197
197
  marker: MapMarker<unknown>;
198
198
  }) => any) | undefined;
199
199
  }>, {
200
+ id: string | number;
200
201
  label: string | MapMarkerLabel;
201
202
  icon: MapMarkerIcon;
202
- id: string | number;
203
- data: Record<string, any>;
204
203
  title: string;
204
+ data: Record<string, any>;
205
205
  color: string;
206
206
  animation: "DROP" | "BOUNCE";
207
207
  size: "sm" | "md" | "lg";
@@ -108,9 +108,9 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<im
108
108
  cancelText: string;
109
109
  confirmText: string;
110
110
  confirmTheme: Theme;
111
+ showCloseButton: boolean;
111
112
  showFooter: boolean;
112
113
  closeOnBackdrop: boolean;
113
- showCloseButton: boolean;
114
114
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>, {
115
115
  icon?(_: {}): any;
116
116
  header?(_: {}): any;
@@ -0,0 +1,9 @@
1
+ import { ProfileData, ProfilePreviewConfig } from '../../types/profiles';
2
+ interface Props {
3
+ profile: ProfileData;
4
+ config?: ProfilePreviewConfig;
5
+ }
6
+ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
7
+ config: ProfilePreviewConfig;
8
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
9
+ export default _default;
@@ -0,0 +1,30 @@
1
+ import { Component } from 'vue';
2
+ interface Props {
3
+ /** Card header title */
4
+ title?: string;
5
+ /** Icon component for header */
6
+ icon?: Component;
7
+ /** Animation delay index */
8
+ animationIndex?: number;
9
+ /** Delay per animation index in ms */
10
+ animationDelay?: number;
11
+ /** Remove default padding */
12
+ noPadding?: boolean;
13
+ /** Enable animation */
14
+ animationEnabled?: boolean;
15
+ }
16
+ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
17
+ animationDelay: number;
18
+ noPadding: boolean;
19
+ animationIndex: number;
20
+ animationEnabled: boolean;
21
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>, {
22
+ header?(_: {}): any;
23
+ default?(_: {}): any;
24
+ }>;
25
+ export default _default;
26
+ type __VLS_WithTemplateSlots<T, S> = T & {
27
+ new (): {
28
+ $slots: S;
29
+ };
30
+ };
@@ -0,0 +1,12 @@
1
+ interface Props {
2
+ email?: string;
3
+ phone?: string;
4
+ website?: string;
5
+ animationIndex?: number;
6
+ animationEnabled?: boolean;
7
+ }
8
+ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
9
+ animationIndex: number;
10
+ animationEnabled: boolean;
11
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
12
+ export default _default;
@@ -0,0 +1,20 @@
1
+ import { ProfileImage } from '../../types/profiles';
2
+ interface Props {
3
+ /** Display name */
4
+ name: string;
5
+ /** User's nickname */
6
+ nickname?: string;
7
+ /** Avatar image URL or Cloudinary asset object */
8
+ image?: string | ProfileImage;
9
+ /** User status */
10
+ status?: 'active' | 'inactive' | string;
11
+ /** Animation delay index */
12
+ animationIndex?: number;
13
+ /** Enable animation */
14
+ animationEnabled?: boolean;
15
+ }
16
+ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
17
+ animationIndex: number;
18
+ animationEnabled: boolean;
19
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
20
+ export default _default;
@@ -0,0 +1,17 @@
1
+ import { AddressInfo } from '../../types/profiles';
2
+ interface Props {
3
+ address?: AddressInfo | AddressInfo[];
4
+ latLng?: {
5
+ lat: number;
6
+ lng: number;
7
+ };
8
+ showMap?: boolean;
9
+ animationIndex?: number;
10
+ animationEnabled?: boolean;
11
+ }
12
+ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
13
+ animationIndex: number;
14
+ animationEnabled: boolean;
15
+ showMap: boolean;
16
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
17
+ export default _default;
@@ -0,0 +1,11 @@
1
+ import { OrganizationItem } from '../../types/profiles';
2
+ interface Props {
3
+ organizations?: OrganizationItem[];
4
+ animationIndex?: number;
5
+ animationEnabled?: boolean;
6
+ }
7
+ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
8
+ animationIndex: number;
9
+ animationEnabled: boolean;
10
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
11
+ export default _default;
@@ -0,0 +1,10 @@
1
+ interface Props {
2
+ birthday?: Date | string | null;
3
+ animationIndex?: number;
4
+ animationEnabled?: boolean;
5
+ }
6
+ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
7
+ animationIndex: number;
8
+ animationEnabled: boolean;
9
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
10
+ export default _default;
@@ -0,0 +1,11 @@
1
+ import { ProfessionalInfo } from '../../types/profiles';
2
+ interface Props {
3
+ professional?: ProfessionalInfo;
4
+ animationIndex?: number;
5
+ animationEnabled?: boolean;
6
+ }
7
+ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
8
+ animationIndex: number;
9
+ animationEnabled: boolean;
10
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
11
+ export default _default;
@@ -0,0 +1,11 @@
1
+ import { RelatedNameItem } from '../../types/profiles';
2
+ interface Props {
3
+ relatedNames?: RelatedNameItem[];
4
+ animationIndex?: number;
5
+ animationEnabled?: boolean;
6
+ }
7
+ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
8
+ animationIndex: number;
9
+ animationEnabled: boolean;
10
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
11
+ export default _default;
@@ -0,0 +1,9 @@
1
+ export { default as BentoProfileLayout } from './BentoProfileLayout';
2
+ export { default as ProfileCard } from './ProfileCard';
3
+ export { default as ProfileContactCard } from './ProfileContactCard';
4
+ export { default as ProfileHeaderCard } from './ProfileHeaderCard';
5
+ export { default as ProfileLocationCard } from './ProfileLocationCard';
6
+ export { default as ProfileOrganizationsCard } from './ProfileOrganizationsCard';
7
+ export { default as ProfilePersonalCard } from './ProfilePersonalCard';
8
+ export { default as ProfileProfessionalCard } from './ProfileProfessionalCard';
9
+ export { default as ProfileRelatedNamesCard } from './ProfileRelatedNamesCard';
@@ -9,6 +9,7 @@ interface Props {
9
9
  classes?: string;
10
10
  }
11
11
  declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
12
+ classes: string;
12
13
  gradientStart: string;
13
14
  gradientEnd: string;
14
15
  gradientType: "linear" | "radial";
@@ -16,7 +17,6 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<Pr
16
17
  gradientShape: string;
17
18
  gradientSize: string;
18
19
  additionalStops: string[];
19
- classes: string;
20
20
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>, {
21
21
  default?(_: {}): any;
22
22
  }>;
@@ -1,4 +1,5 @@
1
1
  export * from './useCalendar';
2
+ export * from './useCollectionEditor';
2
3
  export * from './useEventSegments';
3
4
  export * from './useFormValidation';
4
5
  export * from './useMap';
@@ -0,0 +1,64 @@
1
+ import { Ref, ComputedRef } from 'vue';
2
+ import { CollectionItem, CollectionButtonAttributes } from '../types/collection-editor';
3
+ export { CollectionItemStatus } from '../types/collection-editor';
4
+ export interface CollectionEditorOptions<T extends CollectionItem> {
5
+ /** Initial items */
6
+ initialItems?: T[];
7
+ /** Empty form values template */
8
+ emptyFormValues: T;
9
+ /** Transform item before adding to list (explode) */
10
+ explodeItem?: (item: T) => T;
11
+ /** Transform item before emitting (implode) */
12
+ implodeItem?: (item: T) => T;
13
+ /** Status enum values */
14
+ statusEnum?: {
15
+ New: string;
16
+ Pending: string;
17
+ Saved: string;
18
+ };
19
+ }
20
+ export interface CollectionEditorReturn<T extends CollectionItem> {
21
+ /** Current items in the collection */
22
+ items: Ref<T[]>;
23
+ /** Currently active/selected item for editing */
24
+ activeItem: Ref<T | null>;
25
+ /** Current form values */
26
+ formValues: Ref<T>;
27
+ /** Reference to the form component */
28
+ formRef: Ref<any>;
29
+ /** Button attributes for add/save/delete */
30
+ buttonAttributes: ComputedRef<CollectionButtonAttributes>;
31
+ /** Whether delete confirmation modal should show */
32
+ showDeleteConfirm: Ref<boolean>;
33
+ /** Whether form is dirty */
34
+ isDirty: ComputedRef<boolean>;
35
+ /** Add a new item */
36
+ addItem: () => void;
37
+ /** Update current item */
38
+ updateItem: (values: Partial<T>) => void;
39
+ /** Delete current item */
40
+ deleteItem: () => void;
41
+ /** Select an item for editing */
42
+ selectItem: (item: T) => void;
43
+ /** Clear selection */
44
+ clearSelection: () => void;
45
+ /** Handle button click (add, save, delete) */
46
+ handleButtonClick: (action: 'add' | 'save' | 'delete') => void;
47
+ /** Handle form submit */
48
+ handleFormSubmit: (values: T) => void;
49
+ /** Handle form update */
50
+ handleFormUpdate: (values: Partial<T>) => void;
51
+ /** Confirm delete action */
52
+ confirmDelete: () => void;
53
+ /** Cancel delete action */
54
+ cancelDelete: () => void;
55
+ /** Reset form to empty state */
56
+ resetForm: () => void;
57
+ /** Get all items for saving */
58
+ getItems: () => T[];
59
+ }
60
+ /**
61
+ * Create a collection editor composable instance
62
+ */
63
+ export declare function useCollectionEditor<T extends CollectionItem>(options: CollectionEditorOptions<T>, emit: (event: string, ...args: any[]) => void): CollectionEditorReturn<T>;
64
+ export default useCollectionEditor;
@@ -530,11 +530,11 @@ export declare function useNotifications(): {
530
530
  readonly cardOffsetY?: number | undefined;
531
531
  readonly zIndex?: number | undefined;
532
532
  readonly id: string;
533
+ readonly position: NotificationPosition;
533
534
  readonly title: string;
534
535
  readonly message: string;
535
536
  readonly theme: NotificationTheme;
536
537
  readonly timeout: number;
537
- readonly position: NotificationPosition;
538
538
  readonly autoClose: boolean;
539
539
  readonly variant: NotificationVariant;
540
540
  readonly priority: NotificationPriority;
@@ -895,11 +895,11 @@ export declare function useNotifications(): {
895
895
  readonly cardOffsetY?: number | undefined;
896
896
  readonly zIndex?: number | undefined;
897
897
  readonly id: string;
898
+ readonly position: NotificationPosition;
898
899
  readonly title: string;
899
900
  readonly message: string;
900
901
  readonly theme: NotificationTheme;
901
902
  readonly timeout: number;
902
- readonly position: NotificationPosition;
903
903
  readonly autoClose: boolean;
904
904
  readonly variant: NotificationVariant;
905
905
  readonly priority: NotificationPriority;
@@ -1050,11 +1050,11 @@ export declare function useNotifications(): {
1050
1050
  cardOffsetY?: number | undefined;
1051
1051
  zIndex?: number | undefined;
1052
1052
  id: string;
1053
+ position: NotificationPosition;
1053
1054
  title: string;
1054
1055
  message: string;
1055
1056
  theme: NotificationTheme;
1056
1057
  timeout: number;
1057
- position: NotificationPosition;
1058
1058
  autoClose: boolean;
1059
1059
  variant: NotificationVariant;
1060
1060
  priority: NotificationPriority;
@@ -1205,11 +1205,11 @@ export declare function useNotifications(): {
1205
1205
  cardOffsetY?: number | undefined;
1206
1206
  zIndex?: number | undefined;
1207
1207
  id: string;
1208
+ position: NotificationPosition;
1208
1209
  title: string;
1209
1210
  message: string;
1210
1211
  theme: NotificationTheme;
1211
1212
  timeout: number;
1212
- position: NotificationPosition;
1213
1213
  autoClose: boolean;
1214
1214
  variant: NotificationVariant;
1215
1215
  priority: NotificationPriority;
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Collection Editor Types
3
+ *
4
+ * Generic types for collection-based editors (organizations, related names, etc.)
5
+ */
6
+ /**
7
+ * Status enum for collection items
8
+ */
9
+ export declare enum CollectionItemStatus {
10
+ New = "new",
11
+ Pending = "pending",
12
+ Saved = "saved",
13
+ Deleted = "deleted"
14
+ }
15
+ /**
16
+ * Base interface for collection items
17
+ */
18
+ export interface CollectionItem {
19
+ id: string;
20
+ status?: CollectionItemStatus;
21
+ [key: string]: unknown;
22
+ }
23
+ /**
24
+ * List item for autocomplete/combobox fields
25
+ */
26
+ export interface ListItem {
27
+ id: string;
28
+ name: string;
29
+ aliases?: string[];
30
+ approved?: boolean;
31
+ [key: string]: unknown;
32
+ }
33
+ /**
34
+ * Organization collection item
35
+ */
36
+ export interface OrganizationCollectionItem extends CollectionItem {
37
+ organization: string | ListItem | null;
38
+ position: string | ListItem | null;
39
+ position_prefix?: string | null;
40
+ position_suffix?: string | null;
41
+ start_date?: Date | string | null;
42
+ end_date?: Date | string | null;
43
+ }
44
+ /**
45
+ * Related name collection item
46
+ */
47
+ export interface RelatedNameCollectionItem extends CollectionItem {
48
+ name?: string;
49
+ first_name?: string;
50
+ last_name?: string;
51
+ label?: string | ListItem | null;
52
+ birthday?: Date | string | null;
53
+ relationship?: string;
54
+ }
55
+ /**
56
+ * Social link collection item
57
+ */
58
+ export interface SocialLinkCollectionItem extends CollectionItem {
59
+ platform: string;
60
+ handle?: string;
61
+ url?: string;
62
+ }
63
+ /**
64
+ * Form field definition for dynamic forms
65
+ */
66
+ export interface CollectionFormField {
67
+ name: string;
68
+ label: string;
69
+ as: string;
70
+ type?: string;
71
+ rules?: unknown;
72
+ items?: ListItem[];
73
+ itemKey?: string;
74
+ itemText?: string;
75
+ placeholder?: string;
76
+ hideLabel?: boolean;
77
+ innerLabel?: string;
78
+ tertiaryLabel?: string;
79
+ [key: string]: unknown;
80
+ }
81
+ /**
82
+ * Schema definition for collection forms
83
+ */
84
+ export interface CollectionFormSchema {
85
+ fields: CollectionFormField[];
86
+ }
87
+ /**
88
+ * Button attributes for add/delete button group
89
+ */
90
+ export interface CollectionButtonAttributes {
91
+ add: {
92
+ disabled: boolean;
93
+ label?: string;
94
+ };
95
+ save: {
96
+ disabled: boolean;
97
+ label?: string;
98
+ };
99
+ delete: {
100
+ disabled: boolean;
101
+ label?: string;
102
+ };
103
+ }
104
+ /**
105
+ * Props for CollectionEditor component
106
+ */
107
+ export interface CollectionEditorProps<T extends CollectionItem> {
108
+ /** Field name for form binding */
109
+ name: string;
110
+ /** Display label */
111
+ label?: string;
112
+ /** Current value (array of items) */
113
+ modelValue?: T[];
114
+ /** Form schema for editing items */
115
+ schema: CollectionFormSchema;
116
+ /** Empty form values for new items */
117
+ emptyFormValues: T;
118
+ /** List display component */
119
+ listComponent?: unknown;
120
+ /** Transform item for display */
121
+ displayTransform?: (item: T) => T;
122
+ /** Transform item for storage */
123
+ storageTransform?: (item: T) => T;
124
+ }
125
+ /**
126
+ * Emits for CollectionEditor component
127
+ */
128
+ export interface CollectionEditorEmits<T extends CollectionItem> {
129
+ 'update:modelValue': [value: T[]];
130
+ 'item-added': [item: T];
131
+ 'item-updated': [item: T];
132
+ 'item-deleted': [item: T];
133
+ 'item-selected': [item: T | null];
134
+ }
@@ -2,6 +2,7 @@ export * from './address';
2
2
  export * from './avatars';
3
3
  export * from './badges';
4
4
  export * from './calendars';
5
+ export * from './collection-editor';
5
6
  export * from './core';
6
7
  export * from './form';
7
8
  export * from './forms';
@@ -10,6 +11,7 @@ export * from './layouts';
10
11
  export * from './loading';
11
12
  export * from './maps';
12
13
  export * from './navigation';
14
+ export * from './profiles';
13
15
  export * from './tables';
14
16
  export * from './tabs';
15
17
  export * from './transitions';