apptify 0.6.1 → 0.7.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 (130) hide show
  1. package/README.md +1 -1
  2. package/THIRD_PARTY_LICENSES.txt +23 -0
  3. package/dist/apptify.css +1 -1
  4. package/dist/apptify.js +2395 -2451
  5. package/dist/components/AppleCard.vue.d.ts +1 -1
  6. package/dist/components/content.d.ts +81 -20
  7. package/dist/components/forms.d.ts +2 -2
  8. package/dist/components/foundation.d.ts +133 -11
  9. package/dist/components/mobile-image-viewer.d.ts +35 -12
  10. package/dist/components/navibar.d.ts +2 -2
  11. package/dist/components/overlays.d.ts +10 -59
  12. package/dist/components/scrollbar.d.ts +88 -0
  13. package/dist/components/speed-dial.d.ts +157 -0
  14. package/dist/core/context.d.ts +11 -0
  15. package/dist/core/device.d.ts +2 -0
  16. package/dist/core/image-gallery-motion.d.ts +2 -1
  17. package/dist/core/image-motion.d.ts +1 -1
  18. package/dist/core/layers.d.ts +1 -0
  19. package/dist/core/motion-driver.d.ts +40 -0
  20. package/dist/core/motion.d.ts +1 -1
  21. package/dist/core/ripple.d.ts +16 -0
  22. package/dist/core/scroll-motion.d.ts +6 -0
  23. package/dist/core/scrollbar.d.ts +14 -0
  24. package/dist/core/speed-dial.d.ts +21 -0
  25. package/dist/index.d.ts +237 -26
  26. package/docs/COMPONENTS.md +10 -6
  27. package/package.json +5 -7
  28. package/templates/playground/README.md +1 -1
  29. package/templates/playground/package.json +1 -2
  30. package/templates/playground/source-snapshot.json +299 -66
  31. package/templates/playground/src/App.vue +1 -0
  32. package/templates/playground/src/ComponentDemo.vue +30 -21
  33. package/templates/playground/src/catalog.ts +70 -65
  34. package/templates/playground/src/components/ComponentIndex.vue +10 -14
  35. package/templates/playground/src/components/MasonryFeed.vue +52 -0
  36. package/templates/playground/src/components/UserMenu.vue +1 -1
  37. package/templates/playground/src/components/forbidden-paper-scene.vue +367 -0
  38. package/templates/playground/src/components/forbidden-paper-story.ts +233 -0
  39. package/templates/playground/src/editor/ComponentPlayground.vue +89 -0
  40. package/templates/playground/src/editor/ConfigurableEditor.vue +1 -1
  41. package/templates/playground/src/editor/apple-input-source.ts +1 -1
  42. package/templates/playground/src/editor/component-metadata.ts +72 -0
  43. package/templates/playground/src/editor/component-playground.ts +162 -0
  44. package/templates/playground/src/editor/contract.ts +1 -1
  45. package/templates/playground/src/editor/documents.ts +11 -2
  46. package/templates/playground/src/editor/handbook.ts +22 -0
  47. package/templates/playground/src/editor/handbooks/apple-accordion.ts +66 -0
  48. package/templates/playground/src/editor/handbooks/apple-action-sheet.ts +72 -0
  49. package/templates/playground/src/editor/handbooks/apple-alert.ts +67 -0
  50. package/templates/playground/src/editor/handbooks/apple-aside.ts +32 -0
  51. package/templates/playground/src/editor/handbooks/apple-auto-size.ts +32 -0
  52. package/templates/playground/src/editor/handbooks/apple-autocomplete.ts +114 -0
  53. package/templates/playground/src/editor/handbooks/apple-avatar-group.ts +50 -0
  54. package/templates/playground/src/editor/handbooks/apple-avatar.ts +56 -0
  55. package/templates/playground/src/editor/handbooks/apple-back-top.ts +62 -0
  56. package/templates/playground/src/editor/handbooks/apple-badge.ts +62 -0
  57. package/templates/playground/src/editor/handbooks/apple-breadcrumbs.ts +38 -0
  58. package/templates/playground/src/editor/handbooks/apple-button.ts +92 -0
  59. package/templates/playground/src/editor/handbooks/apple-card.ts +112 -0
  60. package/templates/playground/src/editor/handbooks/apple-cascader.ts +102 -0
  61. package/templates/playground/src/editor/handbooks/apple-checkbox.ts +85 -0
  62. package/templates/playground/src/editor/handbooks/apple-color-picker.ts +79 -0
  63. package/templates/playground/src/editor/handbooks/apple-container.ts +26 -0
  64. package/templates/playground/src/editor/handbooks/apple-date-picker.ts +104 -0
  65. package/templates/playground/src/editor/handbooks/apple-dialog.ts +151 -0
  66. package/templates/playground/src/editor/handbooks/apple-divider.ts +38 -0
  67. package/templates/playground/src/editor/handbooks/apple-drawer.ts +151 -0
  68. package/templates/playground/src/editor/handbooks/apple-empty.ts +43 -0
  69. package/templates/playground/src/editor/handbooks/apple-floating-group.ts +51 -0
  70. package/templates/playground/src/editor/handbooks/apple-form-field.ts +69 -0
  71. package/templates/playground/src/editor/handbooks/apple-form.ts +76 -0
  72. package/templates/playground/src/editor/handbooks/apple-grid.ts +32 -0
  73. package/templates/playground/src/editor/handbooks/apple-image.ts +122 -0
  74. package/templates/playground/src/editor/handbooks/apple-infinite-scroll.ts +73 -0
  75. package/templates/playground/src/editor/handbooks/apple-link.ts +68 -0
  76. package/templates/playground/src/editor/handbooks/apple-list.ts +67 -0
  77. package/templates/playground/src/editor/handbooks/apple-menu.ts +72 -0
  78. package/templates/playground/src/editor/handbooks/apple-navibar.ts +100 -0
  79. package/templates/playground/src/editor/handbooks/apple-otp-input.ts +108 -0
  80. package/templates/playground/src/editor/handbooks/apple-overlay-host.ts +13 -0
  81. package/templates/playground/src/editor/handbooks/apple-pagination.ts +61 -0
  82. package/templates/playground/src/editor/handbooks/apple-popover.ts +112 -0
  83. package/templates/playground/src/editor/handbooks/apple-progress.ts +56 -0
  84. package/templates/playground/src/editor/handbooks/apple-provider.ts +32 -0
  85. package/templates/playground/src/editor/handbooks/apple-pull-refresh.ts +61 -0
  86. package/templates/playground/src/editor/handbooks/apple-radio-group.ts +91 -0
  87. package/templates/playground/src/editor/handbooks/apple-rate.ts +97 -0
  88. package/templates/playground/src/editor/handbooks/apple-scroll-bar.ts +15 -0
  89. package/templates/playground/src/editor/handbooks/apple-search.ts +49 -0
  90. package/templates/playground/src/editor/handbooks/apple-segmented-control.ts +85 -0
  91. package/templates/playground/src/editor/handbooks/apple-select.ts +91 -0
  92. package/templates/playground/src/editor/handbooks/apple-sheet.ts +151 -0
  93. package/templates/playground/src/editor/handbooks/apple-skeleton.ts +74 -0
  94. package/templates/playground/src/editor/handbooks/apple-slider.ts +103 -0
  95. package/templates/playground/src/editor/handbooks/apple-snackbar.ts +89 -0
  96. package/templates/playground/src/editor/handbooks/apple-speed-dial-item.ts +16 -0
  97. package/templates/playground/src/editor/handbooks/apple-speed-dial.ts +13 -0
  98. package/templates/playground/src/editor/handbooks/apple-spinner.ts +38 -0
  99. package/templates/playground/src/editor/handbooks/apple-stack.ts +44 -0
  100. package/templates/playground/src/editor/handbooks/apple-statistic.ts +69 -0
  101. package/templates/playground/src/editor/handbooks/apple-stepper.ts +91 -0
  102. package/templates/playground/src/editor/handbooks/apple-steps.ts +61 -0
  103. package/templates/playground/src/editor/handbooks/apple-switch.ts +79 -0
  104. package/templates/playground/src/editor/handbooks/apple-tab-bar.ts +66 -0
  105. package/templates/playground/src/editor/handbooks/apple-table.ts +176 -0
  106. package/templates/playground/src/editor/handbooks/apple-tabs.ts +72 -0
  107. package/templates/playground/src/editor/handbooks/apple-tag.ts +56 -0
  108. package/templates/playground/src/editor/handbooks/apple-textarea.ts +109 -0
  109. package/templates/playground/src/editor/handbooks/apple-timeline.ts +44 -0
  110. package/templates/playground/src/editor/handbooks/apple-tooltip.ts +45 -0
  111. package/templates/playground/src/editor/handbooks/apple-transition.ts +44 -0
  112. package/templates/playground/src/editor/handbooks/apple-tree.ts +84 -0
  113. package/templates/playground/src/editor/handbooks/apple-upload.ts +126 -0
  114. package/templates/playground/src/editor/playground-examples.ts +105 -0
  115. package/templates/playground/src/images.ts +3 -0
  116. package/templates/playground/src/router/index.ts +19 -2
  117. package/templates/playground/src/style.css +4 -4
  118. package/templates/playground/src/views/403.vue +65 -0
  119. package/templates/playground/src/views/component-docs/[component].vue +11 -14
  120. package/templates/playground/src/views/components.vue +11 -41
  121. package/templates/playground/src/views/index.vue +3 -1
  122. package/templates/playground/src/views/settings.vue +5 -2
  123. package/tooling/create-playground.mjs +2 -2
  124. package/tooling/prepare-playground.mjs +3 -3
  125. package/tooling/test-create-apptify.mjs +3 -1
  126. package/tooling/test-playground-package.mjs +10 -0
  127. package/dist/components/gallery-scrollbar.d.ts +0 -46
  128. package/dist/core/desktop-image-enter.d.ts +0 -6
  129. package/dist/core/desktop-image-return.d.ts +0 -1
  130. package/templates/playground/src/components/DirectoryDialog.vue +0 -20
@@ -1,4 +1,5 @@
1
1
  import { type PropType } from 'vue';
2
+ import { MotionDriver } from '../core/motion-driver';
2
3
  import { type PhotoGeometry, type PhotoPoint, type PhotoSize } from '../core/image-geometry';
3
4
  import type { AppleViewerImage } from './overlays';
4
5
  type Phase = 'preparing' | 'opening' | 'open' | 'settling' | 'closing';
@@ -36,9 +37,14 @@ interface PhotoLayer {
36
37
  persistent: () => boolean;
37
38
  arrows?: (event: KeyboardEvent) => void;
38
39
  }
40
+ interface Pose {
41
+ scale: number;
42
+ pan: PhotoPoint;
43
+ }
39
44
  interface Flight {
40
45
  base: PhotoSize;
41
46
  pose: Keyframe;
47
+ rotation?: number;
42
48
  }
43
49
  export declare function createMobileImageViewer(registerLayer: (layer: PhotoLayer) => () => void): import("vue").DefineComponent<import("vue").ExtractPropTypes<{
44
50
  modelValue: BooleanConstructor;
@@ -56,7 +62,9 @@ export declare function createMobileImageViewer(registerLayer: (layer: PhotoLaye
56
62
  type: PropType<import("..").ComponentMotion>;
57
63
  default: string;
58
64
  };
59
- }>, {}, {
65
+ }>, {
66
+ isVerticalScreen: Readonly<import("vue").Ref<boolean, boolean>>;
67
+ }, {
60
68
  present: boolean;
61
69
  current: number;
62
70
  phase: Phase;
@@ -66,18 +74,21 @@ export declare function createMobileImageViewer(registerLayer: (layer: PhotoLaye
66
74
  viewportOrigin: PhotoPoint;
67
75
  sizes: Record<number, PhotoSize>;
68
76
  failures: Record<number, boolean>;
77
+ rotations: Record<number, number>;
69
78
  scale: number;
70
79
  pan: PhotoPoint;
71
80
  drag: PhotoPoint;
72
81
  swipe: number;
82
+ dragKind: "pan" | "dismiss";
73
83
  paging: {
74
84
  from: number;
75
85
  direction: number;
76
86
  } | null;
77
- zooming: boolean;
78
- flight: Flight | null;
87
+ flights: Record<number, Flight>;
88
+ poses: Record<number, Pose>;
79
89
  background: number;
80
90
  chrome: number;
91
+ driver: MotionDriver | null;
81
92
  pointers: import("vue").Raw<Map<number, PhotoPoint>>;
82
93
  gesture: Gesture | null;
83
94
  pendingTap: {
@@ -87,8 +98,6 @@ export declare function createMobileImageViewer(registerLayer: (layer: PhotoLaye
87
98
  } | null;
88
99
  tapTimer: number | null;
89
100
  masked: Mask | null;
90
- animations: import("vue").Raw<Animation[]>;
91
- epoch: number;
92
101
  suppressClickUntil: number;
93
102
  disposeLayer: (() => void) | null;
94
103
  resizeObserver: ResizeObserver | null;
@@ -97,18 +106,23 @@ export declare function createMobileImageViewer(registerLayer: (layer: PhotoLaye
97
106
  resolvedMotion(): string;
98
107
  pictures(): AppleViewerImage[];
99
108
  loaded(): boolean;
109
+ flight(): Flight | null;
100
110
  fitted(): PhotoSize;
101
111
  dragScale(): number;
102
112
  backdropOpacity(): number;
103
113
  }, {
114
+ fitImage(index: number): PhotoSize;
104
115
  clearTap(): void;
105
116
  tap(point: PhotoPoint): void;
117
+ refreshPhase(): void;
106
118
  cancelAnimations(): void;
107
- animate(entries: Array<{
108
- element: HTMLElement;
109
- from: Keyframe;
110
- to: Keyframe;
111
- }>, duration: number, curve?: string): Promise<boolean>;
119
+ pose(index?: number): Pose;
120
+ frame(index?: number): HTMLElement | null | undefined;
121
+ paintedPhoto(): {
122
+ geometry: PhotoGeometry;
123
+ rotation: number;
124
+ };
125
+ interactive(requireLoaded?: boolean): boolean;
112
126
  measure(): void;
113
127
  openViewer(): Promise<void>;
114
128
  inspectImages(): Promise<void>;
@@ -116,11 +130,15 @@ export declare function createMobileImageViewer(registerLayer: (layer: PhotoLaye
116
130
  imageFailed(index: number, event: Event): void;
117
131
  restoreThumbnail(): void;
118
132
  maskThumbnail(reveal?: boolean): HTMLImageElement | null;
119
- normalGeometry(): PhotoGeometry;
120
- fly(from: PhotoGeometry, to: PhotoGeometry, opening: boolean): Promise<boolean>;
133
+ normalGeometry(index?: number): PhotoGeometry;
134
+ fly(from: PhotoGeometry, to: PhotoGeometry, opening: boolean, rotation?: number, presence?: {
135
+ background: number;
136
+ chrome: number;
137
+ }, preserveCrop?: boolean): Promise<boolean>;
121
138
  enter(): Promise<void>;
122
139
  close(): void;
123
140
  closeViewer(emit: boolean): Promise<void>;
141
+ finishClose(): Promise<void>;
124
142
  select(index: number, velocity?: number): Promise<void>;
125
143
  slideOffset(index: number): number;
126
144
  atPageEdge(offset: number): boolean;
@@ -131,7 +149,12 @@ export declare function createMobileImageViewer(registerLayer: (layer: PhotoLaye
131
149
  pointerMove(event: PointerEvent): void;
132
150
  pointerUp(event: PointerEvent, cancelled?: boolean): void;
133
151
  settlePose(): Promise<void>;
152
+ movePose(index: number, from: number[], target: number[], frequency?: number): Promise<void>;
153
+ zoomTarget(): number[];
134
154
  toggleZoom(point: PhotoPoint): Promise<void>;
155
+ stepZoom(direction: number): void;
156
+ zoomTo(scale: number, point: PhotoPoint, frequency?: number): Promise<void>;
157
+ rotate(direction: number): Promise<void>;
135
158
  zoom(event: WheelEvent): void;
136
159
  }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("change" | "close" | "error" | "update:modelValue" | "update:index" | "after-close")[], "change" | "close" | "error" | "update:modelValue" | "update:index" | "after-close", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
137
160
  modelValue: BooleanConstructor;
@@ -96,8 +96,8 @@ export declare const AppleNavibar: import("vue").DefineComponent<import("vue").E
96
96
  onToggle?: ((...args: any[]) => any) | undefined;
97
97
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
98
98
  }>, {
99
- fixed: boolean;
100
99
  label: string;
100
+ fixed: boolean;
101
101
  motion: import("..").ComponentMotion;
102
102
  items: AppleItem[];
103
103
  brand: string;
@@ -227,8 +227,8 @@ export declare const navigationComponents: {
227
227
  onToggle?: ((...args: any[]) => any) | undefined;
228
228
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
229
229
  }>, {
230
- fixed: boolean;
231
230
  label: string;
231
+ fixed: boolean;
232
232
  motion: import("..").ComponentMotion;
233
233
  items: AppleItem[];
234
234
  brand: string;
@@ -1,6 +1,5 @@
1
1
  import { type PopupPositioner } from '../core/popup-placement';
2
2
  import { type Component, type PropType } from 'vue';
3
- import { type PanzoomObject } from '@panzoom/panzoom';
4
3
  import { type OverlayEntry } from '../core/context';
5
4
  type Motion = 'inherit' | 'auto' | 'full' | 'reduced' | 'none';
6
5
  type CloseReason = 'escape' | 'backdrop' | 'cancel' | 'confirm' | 'close';
@@ -486,9 +485,7 @@ export declare const AppleSnackbar: import("vue").DefineComponent<import("vue").
486
485
  type: PropType<Motion>;
487
486
  default: Motion;
488
487
  };
489
- }>, {
490
- isTouchDevice: Readonly<import("vue").Ref<boolean, boolean>>;
491
- }, {
488
+ }>, {}, {
492
489
  timer: ReturnType<typeof setTimeout> | null;
493
490
  remaining: number;
494
491
  started: number;
@@ -500,7 +497,7 @@ export declare const AppleSnackbar: import("vue").DefineComponent<import("vue").
500
497
  pause(): void;
501
498
  resume(): void;
502
499
  close(reason?: string): void;
503
- }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("close" | "update:modelValue" | "after-close" | "action")[], "close" | "update:modelValue" | "after-close" | "action", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
500
+ }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("close" | "action" | "update:modelValue" | "after-close")[], "close" | "action" | "update:modelValue" | "after-close", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
504
501
  modelValue: {
505
502
  type: BooleanConstructor;
506
503
  default: boolean;
@@ -540,13 +537,13 @@ export declare const AppleSnackbar: import("vue").DefineComponent<import("vue").
540
537
  onAction?: ((...args: any[]) => any) | undefined;
541
538
  }>, {
542
539
  message: string;
540
+ action: string;
543
541
  title: string;
544
542
  tone: "error" | "danger" | "success" | "warning" | "default" | "info";
545
543
  duration: number;
546
544
  motion: Motion;
547
545
  modelValue: boolean;
548
546
  closable: boolean;
549
- action: string;
550
547
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
551
548
  export declare const AppleOverlayHost: import("vue").DefineComponent<{}, {}, {
552
549
  present: Array<{
@@ -662,9 +659,9 @@ export declare const ApplePopover: import("vue").DefineComponent<import("vue").E
662
659
  "onAfter-close"?: ((...args: any[]) => any) | undefined;
663
660
  onOpen?: ((...args: any[]) => any) | undefined;
664
661
  }>, {
662
+ label: string;
665
663
  width: string | number;
666
664
  placement: "top" | "bottom" | "left" | "right";
667
- label: string;
668
665
  disabled: boolean;
669
666
  motion: Motion;
670
667
  role: string;
@@ -850,53 +847,9 @@ export declare const InternalImageViewer: import("vue").DefineComponent<import("
850
847
  default: Motion;
851
848
  };
852
849
  origin: PropType<(index: number, reveal?: boolean) => HTMLImageElement | null>;
853
- }>, {}, {
854
- disposeLayer: (() => void) | null;
855
- depth: number;
856
- isTop: boolean;
857
- current: number;
858
- panzoom: PanzoomObject | null;
859
- loaded: boolean;
860
- failed: boolean;
861
- rotation: number;
862
- pageDirection: number;
863
- pageWidth: number;
864
- enterController: AbortController | null;
865
- entering: Promise<void> | null;
866
- returning: Promise<void> | null;
867
- returnController: AbortController | null;
868
- releaseNavigation: (() => void) | null;
869
- preloaded: import("vue").Raw<Set<string>>;
870
- pointerStart: {
871
- x: number;
872
- y: number;
873
- } | null;
874
- mobile: boolean;
875
- viewportQuery: MediaQueryList | null;
876
- }, {
850
+ }>, {}, {}, {
877
851
  resolvedMotion(): string;
878
- safeIndex(): number;
879
- currentImage(): AppleViewerImage | undefined;
880
- }, {
881
- syncViewport(): void;
882
- resetImage(): void;
883
- imageLoaded(event?: Event): void;
884
- catchZoom(): void;
885
- zoomOptions(): {
886
- animate: boolean;
887
- duration: 300;
888
- easing: string;
889
- };
890
- finishEntry(): void;
891
- stepZoom(direction: number): void;
892
- toggleZoom(event: MouseEvent): void;
893
- navigate(direction: number): void;
894
- syncLayer(): Promise<void>;
895
- afterClose(): void;
896
- close(): void;
897
- zoom(event: WheelEvent): void;
898
- change(previous: number, index: number, direction?: number): void;
899
- }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("change" | "close" | "error" | "update:modelValue" | "update:index" | "after-close")[], "change" | "close" | "error" | "update:modelValue" | "update:index" | "after-close", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
852
+ }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("change" | "close" | "error" | "update:modelValue" | "update:index" | "after-close")[], "change" | "close" | "error" | "update:modelValue" | "update:index" | "after-close", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
900
853
  modelValue: BooleanConstructor;
901
854
  images: {
902
855
  type: PropType<Array<string | AppleViewerImage>>;
@@ -1401,9 +1354,7 @@ export declare const overlayComponents: {
1401
1354
  type: PropType<Motion>;
1402
1355
  default: Motion;
1403
1356
  };
1404
- }>, {
1405
- isTouchDevice: Readonly<import("vue").Ref<boolean, boolean>>;
1406
- }, {
1357
+ }>, {}, {
1407
1358
  timer: ReturnType<typeof setTimeout> | null;
1408
1359
  remaining: number;
1409
1360
  started: number;
@@ -1415,7 +1366,7 @@ export declare const overlayComponents: {
1415
1366
  pause(): void;
1416
1367
  resume(): void;
1417
1368
  close(reason?: string): void;
1418
- }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("close" | "update:modelValue" | "after-close" | "action")[], "close" | "update:modelValue" | "after-close" | "action", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
1369
+ }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("close" | "action" | "update:modelValue" | "after-close")[], "close" | "action" | "update:modelValue" | "after-close", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
1419
1370
  modelValue: {
1420
1371
  type: BooleanConstructor;
1421
1372
  default: boolean;
@@ -1455,13 +1406,13 @@ export declare const overlayComponents: {
1455
1406
  onAction?: ((...args: any[]) => any) | undefined;
1456
1407
  }>, {
1457
1408
  message: string;
1409
+ action: string;
1458
1410
  title: string;
1459
1411
  tone: "error" | "danger" | "success" | "warning" | "default" | "info";
1460
1412
  duration: number;
1461
1413
  motion: Motion;
1462
1414
  modelValue: boolean;
1463
1415
  closable: boolean;
1464
- action: string;
1465
1416
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
1466
1417
  AppleOverlayHost: import("vue").DefineComponent<{}, {}, {
1467
1418
  present: Array<{
@@ -1577,9 +1528,9 @@ export declare const overlayComponents: {
1577
1528
  "onAfter-close"?: ((...args: any[]) => any) | undefined;
1578
1529
  onOpen?: ((...args: any[]) => any) | undefined;
1579
1530
  }>, {
1531
+ label: string;
1580
1532
  width: string | number;
1581
1533
  placement: "top" | "bottom" | "left" | "right";
1582
- label: string;
1583
1534
  disabled: boolean;
1584
1535
  motion: Motion;
1585
1536
  role: string;
@@ -0,0 +1,88 @@
1
+ import { type PropType } from 'vue';
2
+ import { type ScrollBarAxis } from '../core/scrollbar';
3
+ export declare const AppleScrollBar: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
4
+ target: {
5
+ type: PropType<string | HTMLElement | (() => HTMLElement | undefined)>;
6
+ default: string;
7
+ };
8
+ axis: {
9
+ type: PropType<ScrollBarAxis>;
10
+ default: string;
11
+ };
12
+ label: {
13
+ type: StringConstructor;
14
+ default: string;
15
+ };
16
+ controls: {
17
+ type: StringConstructor;
18
+ default: string;
19
+ };
20
+ }>, () => null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "interaction"[], "interaction", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
21
+ target: {
22
+ type: PropType<string | HTMLElement | (() => HTMLElement | undefined)>;
23
+ default: string;
24
+ };
25
+ axis: {
26
+ type: PropType<ScrollBarAxis>;
27
+ default: string;
28
+ };
29
+ label: {
30
+ type: StringConstructor;
31
+ default: string;
32
+ };
33
+ controls: {
34
+ type: StringConstructor;
35
+ default: string;
36
+ };
37
+ }>> & Readonly<{
38
+ onInteraction?: ((...args: any[]) => any) | undefined;
39
+ }>, {
40
+ label: string;
41
+ target: string | HTMLElement | (() => HTMLElement | undefined);
42
+ axis: ScrollBarAxis;
43
+ controls: string;
44
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
45
+ export declare const scrollBarComponents: {
46
+ AppleScrollBar: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
47
+ target: {
48
+ type: PropType<string | HTMLElement | (() => HTMLElement | undefined)>;
49
+ default: string;
50
+ };
51
+ axis: {
52
+ type: PropType<ScrollBarAxis>;
53
+ default: string;
54
+ };
55
+ label: {
56
+ type: StringConstructor;
57
+ default: string;
58
+ };
59
+ controls: {
60
+ type: StringConstructor;
61
+ default: string;
62
+ };
63
+ }>, () => null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "interaction"[], "interaction", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
64
+ target: {
65
+ type: PropType<string | HTMLElement | (() => HTMLElement | undefined)>;
66
+ default: string;
67
+ };
68
+ axis: {
69
+ type: PropType<ScrollBarAxis>;
70
+ default: string;
71
+ };
72
+ label: {
73
+ type: StringConstructor;
74
+ default: string;
75
+ };
76
+ controls: {
77
+ type: StringConstructor;
78
+ default: string;
79
+ };
80
+ }>> & Readonly<{
81
+ onInteraction?: ((...args: any[]) => any) | undefined;
82
+ }>, {
83
+ label: string;
84
+ target: string | HTMLElement | (() => HTMLElement | undefined);
85
+ axis: ScrollBarAxis;
86
+ controls: string;
87
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
88
+ };
@@ -0,0 +1,157 @@
1
+ import { type Component, type PropType, type VNodeChild } from 'vue';
2
+ export declare const AppleSpeedDial: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
3
+ backTop: {
4
+ type: BooleanConstructor;
5
+ default: boolean;
6
+ };
7
+ target: {
8
+ type: StringConstructor;
9
+ default: string;
10
+ };
11
+ threshold: {
12
+ type: NumberConstructor;
13
+ default: number;
14
+ };
15
+ label: {
16
+ type: StringConstructor;
17
+ default: string;
18
+ };
19
+ }>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
20
+ backTop: {
21
+ type: BooleanConstructor;
22
+ default: boolean;
23
+ };
24
+ target: {
25
+ type: StringConstructor;
26
+ default: string;
27
+ };
28
+ threshold: {
29
+ type: NumberConstructor;
30
+ default: number;
31
+ };
32
+ label: {
33
+ type: StringConstructor;
34
+ default: string;
35
+ };
36
+ }>> & Readonly<{}>, {
37
+ label: string;
38
+ target: string;
39
+ threshold: number;
40
+ backTop: boolean;
41
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
42
+ export declare const AppleSpeedDialItem: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
43
+ label: {
44
+ type: StringConstructor;
45
+ required: true;
46
+ };
47
+ icon: PropType<Component>;
48
+ disabled: BooleanConstructor;
49
+ visible: {
50
+ type: BooleanConstructor;
51
+ default: boolean;
52
+ };
53
+ variant: {
54
+ type: PropType<"primary" | "secondary" | "outline" | "danger">;
55
+ default: string;
56
+ };
57
+ }>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "click"[], "click", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
58
+ label: {
59
+ type: StringConstructor;
60
+ required: true;
61
+ };
62
+ icon: PropType<Component>;
63
+ disabled: BooleanConstructor;
64
+ visible: {
65
+ type: BooleanConstructor;
66
+ default: boolean;
67
+ };
68
+ variant: {
69
+ type: PropType<"primary" | "secondary" | "outline" | "danger">;
70
+ default: string;
71
+ };
72
+ }>> & Readonly<{
73
+ onClick?: ((...args: any[]) => any) | undefined;
74
+ }>, {
75
+ disabled: boolean;
76
+ variant: "secondary" | "danger" | "primary" | "outline";
77
+ visible: boolean;
78
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
79
+ export declare const speedDialComponents: {
80
+ AppleSpeedDial: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
81
+ backTop: {
82
+ type: BooleanConstructor;
83
+ default: boolean;
84
+ };
85
+ target: {
86
+ type: StringConstructor;
87
+ default: string;
88
+ };
89
+ threshold: {
90
+ type: NumberConstructor;
91
+ default: number;
92
+ };
93
+ label: {
94
+ type: StringConstructor;
95
+ default: string;
96
+ };
97
+ }>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
98
+ backTop: {
99
+ type: BooleanConstructor;
100
+ default: boolean;
101
+ };
102
+ target: {
103
+ type: StringConstructor;
104
+ default: string;
105
+ };
106
+ threshold: {
107
+ type: NumberConstructor;
108
+ default: number;
109
+ };
110
+ label: {
111
+ type: StringConstructor;
112
+ default: string;
113
+ };
114
+ }>> & Readonly<{}>, {
115
+ label: string;
116
+ target: string;
117
+ threshold: number;
118
+ backTop: boolean;
119
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
120
+ AppleSpeedDialItem: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
121
+ label: {
122
+ type: StringConstructor;
123
+ required: true;
124
+ };
125
+ icon: PropType<Component>;
126
+ disabled: BooleanConstructor;
127
+ visible: {
128
+ type: BooleanConstructor;
129
+ default: boolean;
130
+ };
131
+ variant: {
132
+ type: PropType<"primary" | "secondary" | "outline" | "danger">;
133
+ default: string;
134
+ };
135
+ }>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "click"[], "click", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
136
+ label: {
137
+ type: StringConstructor;
138
+ required: true;
139
+ };
140
+ icon: PropType<Component>;
141
+ disabled: BooleanConstructor;
142
+ visible: {
143
+ type: BooleanConstructor;
144
+ default: boolean;
145
+ };
146
+ variant: {
147
+ type: PropType<"primary" | "secondary" | "outline" | "danger">;
148
+ default: string;
149
+ };
150
+ }>> & Readonly<{
151
+ onClick?: ((...args: any[]) => any) | undefined;
152
+ }>, {
153
+ disabled: boolean;
154
+ variant: "secondary" | "danger" | "primary" | "outline";
155
+ visible: boolean;
156
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
157
+ };
@@ -660,7 +660,18 @@ export declare function createApple(options?: AppleOptions): import("vue").Raw<{
660
660
  clear(): void;
661
661
  };
662
662
  portalTarget: Ref<HTMLElement | undefined, HTMLElement | undefined>;
663
+ speedDial: import("vue").Raw<{
664
+ entries: import("vue").ShallowRef<import("./speed-dial").SpeedDialEntry[], import("./speed-dial").SpeedDialEntry[]>;
665
+ host: Ref<string | undefined, string | undefined>;
666
+ hostDepth: Ref<number, number>;
667
+ mobile: Ref<boolean, boolean>;
668
+ open: Ref<boolean, boolean>;
669
+ activeDirectory: Ref<string | undefined, string | undefined>;
670
+ register(entry: import("./speed-dial").SpeedDialEntry): void;
671
+ unregister(id: string): void;
672
+ }>;
663
673
  isTouchDevice: Readonly<Ref<boolean, boolean>>;
674
+ isVerticalScreen: Readonly<Ref<boolean, boolean>>;
664
675
  dialog: <T = unknown>(settings: Omit<OverlayOptions, "kind">) => OverlayHandle<T>;
665
676
  notify: (message: string, settings?: Omit<OverlayOptions, "kind" | "message">) => OverlayHandle<unknown>;
666
677
  sendMessage: <T = unknown>(channel: string, payload?: T) => unknown[];
@@ -2,4 +2,6 @@ export declare const touchDeviceQuery = "(any-pointer: coarse)";
2
2
  export declare const detectTouchDevice: () => boolean;
3
3
  /** Shared across apps, components and teleported overlays. */
4
4
  export declare const isTouchDevice: Readonly<import("vue").Ref<boolean, boolean>>;
5
+ export declare const isVerticalScreen: Readonly<import("vue").Ref<boolean, boolean>>;
6
+ export declare function syncVerticalScreen(): void;
5
7
  export declare function syncTouchDevice(): void;
@@ -1,2 +1,3 @@
1
1
  export declare function stopGalleryScroll(box: HTMLElement): void;
2
- export declare function scrollGallery(box: HTMLElement, left: number, animated: boolean, complete: () => void, adjacent?: boolean): void;
2
+ export declare function wheelGallery(box: HTMLElement, delta: number, animated: boolean): void;
3
+ export declare function scrollGallery(box: HTMLElement, left: number, animated: boolean, complete: () => void, adjacent?: boolean, snapOverride?: string): void;
@@ -14,5 +14,5 @@ export declare function photoPageTiming(distance: number, velocity: number, _wid
14
14
  easing: string;
15
15
  };
16
16
  export declare function photoFlightSize(from: PhotoGeometry, to: PhotoGeometry): PhotoSize;
17
- export declare function photoFlightFrame(rect: PhotoGeometry, base: PhotoSize): Keyframe;
17
+ export declare function photoFlightFrame(rect: PhotoGeometry, base: PhotoSize, preserveCrop?: boolean): Keyframe;
18
18
  export declare function readPhotoGeometry(frame: HTMLElement, photo: HTMLElement, panel: DOMRect): PhotoGeometry;
@@ -1,2 +1,3 @@
1
1
  export declare const overlayZIndex: (depth: number) => number;
2
2
  export declare const imageReturnZIndex: (depth: number) => number;
3
+ export declare const scrollBarZIndex: (inherited: number) => number;
@@ -0,0 +1,40 @@
1
+ export interface MotionSample {
2
+ value: number[];
3
+ velocity: number[];
4
+ target: number[];
5
+ }
6
+ export declare function sampleSpring(value: number, velocity: number, target: number, seconds: number, frequency: number): {
7
+ value: number;
8
+ velocity: number;
9
+ };
10
+ /** Each channel owns its lifetime. Retargeting preserves position and velocity. */
11
+ export declare class MotionDriver {
12
+ private changed;
13
+ private springs;
14
+ private tracks;
15
+ private owners;
16
+ private frame;
17
+ constructor(changed?: () => void);
18
+ has(key: string): boolean;
19
+ get active(): boolean;
20
+ prepare(key: string): () => boolean;
21
+ velocityX(key: string, element: HTMLElement): number;
22
+ sample(key: string): MotionSample | undefined;
23
+ shift(key: string, offset: number[]): void;
24
+ to(key: string, from: number[], target: number[], update: (value: number[]) => void, options?: {
25
+ frequency?: number;
26
+ epsilon?: number[];
27
+ immediate?: boolean;
28
+ velocity?: number[];
29
+ bounds?: Array<[number, number] | null>;
30
+ }): Promise<boolean>;
31
+ animate(key: string, entries: Array<{
32
+ element: HTMLElement;
33
+ from: Keyframe;
34
+ to: Keyframe;
35
+ }>, duration: number, easing: string): Promise<boolean>;
36
+ cancel(key?: string): void;
37
+ finish(): void;
38
+ private advance;
39
+ private schedule;
40
+ }
@@ -9,4 +9,4 @@ type SelectionValue = unknown | {
9
9
  selector: string;
10
10
  };
11
11
  export declare const AppleSelection: ObjectDirective<HTMLElement, SelectionValue>;
12
- export {};
12
+ export { scrollToWithMotion, cancelMotionScroll, type MotionScroll } from './scroll-motion';
@@ -0,0 +1,16 @@
1
+ /*! Ripple animation adapted from Vuetify. Copyright (c) 2016-now Vuetify, LLC. MIT license; see THIRD_PARTY_LICENSES.txt. */
2
+ import type { DirectiveBinding } from 'vue';
3
+ export type RippleElement = HTMLElement & {
4
+ _ripple?: {
5
+ enabled: boolean;
6
+ touched: boolean;
7
+ showTimer?: number;
8
+ showTimerCommit: (() => void) | null;
9
+ };
10
+ };
11
+ export declare const Ripple: {
12
+ mounted(el: RippleElement, binding: Pick<DirectiveBinding<{
13
+ keys: string[];
14
+ }>, "value" | "modifiers">): void;
15
+ unmounted(el: RippleElement): void;
16
+ };
@@ -0,0 +1,6 @@
1
+ export interface MotionScroll {
2
+ finished: Promise<void>;
3
+ cancel: () => void;
4
+ }
5
+ export declare function cancelMotionScroll(target: HTMLElement | Window): void;
6
+ export declare function scrollToWithMotion(target: HTMLElement | Window, destination: number | (() => number), animated?: boolean): MotionScroll;