apptify 0.8.0 → 0.8.5

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 (41) hide show
  1. package/dist/apptify.css +1 -1
  2. package/dist/apptify.js +1503 -1721
  3. package/dist/components/button.d.ts +1 -1
  4. package/dist/components/foundation.d.ts +2 -4
  5. package/dist/components/link.d.ts +1 -1
  6. package/dist/core/image-gallery-motion.d.ts +1 -1
  7. package/dist/core/layers.d.ts +0 -1
  8. package/dist/index.d.ts +2 -46
  9. package/docs/COMPONENTS.md +7 -4
  10. package/package.json +1 -1
  11. package/templates/playground/README.md +1 -1
  12. package/templates/playground/package.json +1 -1
  13. package/templates/playground/source-snapshot.json +80 -40
  14. package/templates/playground/src/ComponentDemo.vue +2 -5
  15. package/templates/playground/src/catalog.ts +0 -1
  16. package/templates/playground/src/components/ErrorPagePreviews.vue +86 -0
  17. package/templates/playground/src/components/bad-request-paper-scene.vue +280 -0
  18. package/templates/playground/src/components/bad-request-paper-story.ts +169 -0
  19. package/templates/playground/src/components/gateway-paper-scene.vue +336 -0
  20. package/templates/playground/src/components/gateway-paper-story.ts +197 -0
  21. package/templates/playground/src/components/hamster-429-scene.vue +1045 -0
  22. package/templates/playground/src/components/server-fire-paper-scene.vue +249 -0
  23. package/templates/playground/src/components/server-fire-paper-story.ts +272 -0
  24. package/templates/playground/src/components/unavailable-paper-scene.vue +488 -0
  25. package/templates/playground/src/editor/component-metadata.ts +0 -1
  26. package/templates/playground/src/editor/handbooks/apple-dialog.ts +1 -1
  27. package/templates/playground/src/editor/playground-examples.ts +0 -1
  28. package/templates/playground/src/error-pages.ts +9 -0
  29. package/templates/playground/src/style.css +0 -2
  30. package/templates/playground/src/views/400.vue +74 -0
  31. package/templates/playground/src/views/403.vue +5 -2
  32. package/templates/playground/src/views/429.vue +74 -0
  33. package/templates/playground/src/views/500.vue +67 -0
  34. package/templates/playground/src/views/502.vue +68 -0
  35. package/templates/playground/src/views/503.vue +79 -0
  36. package/templates/playground/src/views/[...all].vue +5 -2
  37. package/templates/playground/src/views/components.vue +8 -8
  38. package/tooling/prepare-playground.mjs +2 -2
  39. package/dist/components/scrollbar.d.ts +0 -88
  40. package/dist/core/scrollbar.d.ts +0 -14
  41. package/templates/playground/src/editor/handbooks/apple-scroll-bar.ts +0 -15
@@ -57,8 +57,8 @@ export declare const AppleButton: import("vue").DefineComponent<import("vue").Ex
57
57
  onClick?: ((...args: any[]) => any) | undefined;
58
58
  }>, {
59
59
  size: "small" | "medium" | "large";
60
- disabled: boolean;
61
60
  iconOnly: boolean;
61
+ disabled: boolean;
62
62
  loading: boolean;
63
63
  variant: "secondary" | "danger" | "primary" | "outline" | "borderless";
64
64
  ripple: boolean;
@@ -727,7 +727,6 @@ export declare const AppleProvider: import("vue").DefineComponent<import("vue").
727
727
  detach(): void;
728
728
  dispose(): void;
729
729
  }>>;
730
- disposeScrollBars: (() => void) | null;
731
730
  }, {
732
731
  inheritedTheme(): string | undefined;
733
732
  inheritedMotion(): Motion | undefined;
@@ -2114,7 +2113,6 @@ export declare const foundationComponents: {
2114
2113
  detach(): void;
2115
2114
  dispose(): void;
2116
2115
  }>>;
2117
- disposeScrollBars: (() => void) | null;
2118
2116
  }, {
2119
2117
  inheritedTheme(): string | undefined;
2120
2118
  inheritedMotion(): Motion | undefined;
@@ -2540,8 +2538,8 @@ export declare const foundationComponents: {
2540
2538
  onClick?: ((...args: any[]) => any) | undefined;
2541
2539
  }>, {
2542
2540
  size: "small" | "medium" | "large";
2543
- disabled: boolean;
2544
2541
  iconOnly: boolean;
2542
+ disabled: boolean;
2545
2543
  loading: boolean;
2546
2544
  variant: "secondary" | "danger" | "primary" | "outline" | "borderless";
2547
2545
  ripple: boolean;
@@ -2573,8 +2571,8 @@ export declare const foundationComponents: {
2573
2571
  }>> & Readonly<{
2574
2572
  onClick?: ((...args: any[]) => any) | undefined;
2575
2573
  }>, {
2576
- disabled: boolean;
2577
2574
  iconOnly: boolean;
2575
+ disabled: boolean;
2578
2576
  external: boolean;
2579
2577
  as: "a" | "button";
2580
2578
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -24,8 +24,8 @@ export declare const AppleLink: import("vue").DefineComponent<import("vue").Extr
24
24
  }>> & Readonly<{
25
25
  onClick?: ((...args: any[]) => any) | undefined;
26
26
  }>, {
27
- disabled: boolean;
28
27
  iconOnly: boolean;
28
+ disabled: boolean;
29
29
  external: boolean;
30
30
  as: "a" | "button";
31
31
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -1,3 +1,3 @@
1
1
  export declare function stopGalleryScroll(box: HTMLElement): void;
2
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;
3
+ export declare function scrollGallery(box: HTMLElement, left: number, animated: boolean, complete: (interrupted?: boolean) => void, adjacent?: boolean, snapOverride?: string): void;
@@ -1,3 +1,2 @@
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;
package/dist/index.d.ts CHANGED
@@ -14,7 +14,6 @@ export * from './components/foundation';
14
14
  export * from './components/forms';
15
15
  export * from './components/content';
16
16
  export * from './components/speed-dial';
17
- export * from './components/scrollbar';
18
17
  export { AppleDialog, AppleDrawer, AppleSheet, AppleSnackbar, AppleOverlayHost, ApplePopover, AppleTooltip, AppleMenu, AppleActionSheet } from './components/overlays';
19
18
  export type { AppleMenuItem, AppleViewerImage } from './components/overlays';
20
19
  export * from './components/motion';
@@ -22,48 +21,6 @@ export * from './components/navibar';
22
21
  export * from './core/motion';
23
22
  export { overlayComponents };
24
23
  export declare const components: {
25
- AppleScrollBar: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
26
- target: {
27
- type: import("vue").PropType<string | HTMLElement | (() => HTMLElement | undefined)>;
28
- default: string;
29
- };
30
- axis: {
31
- type: import("vue").PropType<import("./core/scrollbar").ScrollBarAxis>;
32
- default: string;
33
- };
34
- label: {
35
- type: StringConstructor;
36
- default: string;
37
- };
38
- controls: {
39
- type: StringConstructor;
40
- default: string;
41
- };
42
- }>, () => null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "interaction"[], "interaction", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
43
- target: {
44
- type: import("vue").PropType<string | HTMLElement | (() => HTMLElement | undefined)>;
45
- default: string;
46
- };
47
- axis: {
48
- type: import("vue").PropType<import("./core/scrollbar").ScrollBarAxis>;
49
- default: string;
50
- };
51
- label: {
52
- type: StringConstructor;
53
- default: string;
54
- };
55
- controls: {
56
- type: StringConstructor;
57
- default: string;
58
- };
59
- }>> & Readonly<{
60
- onInteraction?: ((...args: any[]) => any) | undefined;
61
- }>, {
62
- label: string;
63
- target: string | HTMLElement | (() => HTMLElement | undefined);
64
- axis: import("./core/scrollbar").ScrollBarAxis;
65
- controls: string;
66
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
67
24
  AppleSpeedDial: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
68
25
  backTop: {
69
26
  type: BooleanConstructor;
@@ -4891,7 +4848,6 @@ export declare const components: {
4891
4848
  detach(): void;
4892
4849
  dispose(): void;
4893
4850
  }>>;
4894
- disposeScrollBars: (() => void) | null;
4895
4851
  }, {
4896
4852
  inheritedTheme(): string | undefined;
4897
4853
  inheritedMotion(): import(".").Motion | undefined;
@@ -5317,8 +5273,8 @@ export declare const components: {
5317
5273
  onClick?: ((...args: any[]) => any) | undefined;
5318
5274
  }>, {
5319
5275
  size: "small" | "medium" | "large";
5320
- disabled: boolean;
5321
5276
  iconOnly: boolean;
5277
+ disabled: boolean;
5322
5278
  loading: boolean;
5323
5279
  variant: "secondary" | "danger" | "primary" | "outline" | "borderless";
5324
5280
  ripple: boolean;
@@ -5350,8 +5306,8 @@ export declare const components: {
5350
5306
  }>> & Readonly<{
5351
5307
  onClick?: ((...args: any[]) => any) | undefined;
5352
5308
  }>, {
5353
- disabled: boolean;
5354
5309
  iconOnly: boolean;
5310
+ disabled: boolean;
5355
5311
  external: boolean;
5356
5312
  as: "a" | "button";
5357
5313
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -1,6 +1,6 @@
1
1
  # 组件 API 参考
2
2
 
3
- 本页按 `src/index.ts` 合并的组件注册表列出当前 **65 个导出组件**,不是未来功能清单。组件名均可换成 kebab-case 模板标签,例如 `AppleOtpInput` 对应 `<apple-otp-input>`。
3
+ 本页按 `src/index.ts` 合并的组件注册表列出当前 **67 个导出组件**,不是未来功能清单。组件名均可换成 kebab-case 模板标签,例如 `AppleOtpInput` 对应 `<apple-otp-input>`。
4
4
 
5
5
  ## 公共约定
6
6
 
@@ -27,6 +27,10 @@ Tabs、TabBar、SegmentedControl、DatePicker 日期/时间页签均不使用 Ri
27
27
 
28
28
  该类只提供材质与文字颜色,间距、圆角、边框和阴影由使用方设置。Provider 外使用默认浅色材质;Provider 内跟随 `glass.opacity` 与 `glass.blur` 配置。
29
29
 
30
+ ## 滚动条
31
+
32
+ 滚动容器使用浏览器原生滚动条。引入 `apptify/style.css` 后,`AppleProvider` 内的滚动条按主题显示细滑块,页面滚动条按 `html` 的 `color-scheme` 配色。迁移时可删除 `<apple-scroll-bar>`,在目标容器上保留 `overflow: auto`。如需在某个容器上使用浏览器默认外观,可加 `data-apple-scrollbar-ignore`。
33
+
30
34
  ## 动效组件 · 2
31
35
 
32
36
  | 组件 | Props | 说明 |
@@ -46,7 +50,7 @@ Tabs、TabBar、SegmentedControl、DatePicker 日期/时间页签均不使用 Ri
46
50
  | `AppleButton` | M;`variant=primary`(primary/secondary/outline/borderless/danger)、`size=medium`(small/medium/large)、`icon: Component`、`iconOnly`、`label`、`disabled`、`loading`、`ripple=true`、`href`、`type=button` | `click(event)`;default slot;borderless 默认透明无边框,悬停时显示灰色背景。图标位于文字右侧。纯图标按钮须提供 label。关闭动效时禁用 Ripple,其余模式遵循全局波纹开关。 |
47
51
  | `AppleLink` | `as=a`(a/button)、`href`、`external`、`disabled`、`icon`、`iconOnly`、`label` | default slot;文字操作使用 as=button;external 使用新窗口并设置 `noopener noreferrer`。 |
48
52
  | `AppleCard` | M;`title`、`subtitle`、`text`、`eyebrow`、`icon: Component 或图片 URL`、`iconColor`、`image`、`imageAlt`、`href`、`zoom=none`(big/small/none)、`shadow=normal`(normal/static/focused/none) | default、media、icon、title、actions slots;href 为标题链接,不会把所有嵌套控件变成一个大按钮。 |
49
- | `AppleImage` | M;`gallery: AppleImageItem | (string/AppleImageItem)[]`(唯一来源,默认空数组,单图可传对象);`preview=true`、`carousel=false`、`autoplay=true`、`interval=5000`(毫秒,仅 carousel)、`disabled=false`、`label`、`galleryLayout=compact`(compact/tiled/tiled-wrap,所有设备)、`galleryShape=natural`(natural/square)、`index=0`、`squared`、`aspectRatio='4/3'`、`fit=cover`(cover/contain) | caption 与 item({item,index,active}) slots;carousel 强制 compact、默认每 5 秒循环播放,悬停、聚焦、预览、拖动、页面隐藏或禁用时暂停,保留自由滚动;默认点击预览;统一预览交互,支持拖动、双击、捏合、平滑滚轮及键盘;连续滚轮累积目标并保持位置与速度,缩放、旋转、翻页与进退场分通道,可在动画途中继续操作;翻页按距离与速度使用 360–720ms 动画,放大图片随各自画布裁剪离场;底部单一胶囊按左旋转、缩小、可选名称、放大、右旋转排列,每次旋转 90°,旋转状态按图片保存;竖屏隐藏箭头、关闭及缩放按钮;完整渲染图片组,compact 在固定框内横滑,桌面横向滚轮或 Shift+滚轮平滑横滑,连续事件保留累计目标,停止后平滑吸附;一次手势可跨越多张,快速点击翻页延续当前位置和速度;hover 放大并使用 AppleCard 的悬停阴影,横屏多图的缩略图左右按钮仅在悬浮时淡入、移开时淡出,遵循 --apple-fast 与 --apple-ease 并对齐图片中间(单图小窗与全屏均无翻页箭头),跨多张点击小点时直接衔接当前画面与目标图并支持连续改选,tiled 等高横向平铺,溢出时底部常显自定义滚动条,支持拖动、点击轨道与键盘,滑块比例随内容和容器尺寸同步,tiled-wrap 等宽保留图片比例,按列从上往下紧密堆叠,避免按行对齐产生空白;平铺 hover 只缩放当前图片;galleryShape=square 强制 1:1 并居中裁剪(覆盖 fit),squared 同样作用于图片组;`update:index`、`change(index)`;图片错误状态;squared 覆盖 aspectRatio。 |
53
+ | `AppleImage` | M;`gallery: AppleImageItem | (string/AppleImageItem)[]`(唯一来源,默认空数组,单图可传对象);`preview=true`、`carousel=false`、`autoplay=true`、`interval=5000`(毫秒,仅 carousel)、`disabled=false`、`label`、`galleryLayout=compact`(compact/tiled/tiled-wrap,所有设备)、`galleryShape=natural`(natural/square)、`index=0`、`squared`、`aspectRatio='4/3'`、`fit=cover`(cover/contain) | caption 与 item({item,index,active}) slots;carousel 强制 compact、默认每 5 秒循环播放,悬停、聚焦、预览、拖动、页面隐藏或禁用时暂停,保留自由滚动;默认点击预览;统一预览交互,支持拖动、双击、捏合、平滑滚轮及键盘;连续滚轮累积目标并保持位置与速度,缩放、旋转、翻页与进退场分通道,可在动画途中继续操作;翻页按距离与速度使用 360–720ms 动画,放大图片随各自画布裁剪离场;底部单一胶囊按左旋转、缩小、可选名称、放大、右旋转排列,每次旋转 90°,旋转状态按图片保存;竖屏隐藏箭头、关闭及缩放按钮;完整渲染图片组,compact 在固定框内横滑,桌面横向滚轮或 Shift+滚轮平滑横滑,连续事件保留累计目标,停止后平滑吸附;一次手势可跨越多张,快速点击翻页延续当前位置和速度;hover 放大并使用 AppleCard 的悬停阴影,横屏多图的缩略图左右按钮仅在悬浮时淡入、移开时淡出,遵循 --apple-fast 与 --apple-ease 并对齐图片中间(单图小窗与全屏均无翻页箭头),跨多张点击小点时直接衔接当前画面与目标图并支持连续改选,tiled 等高横向平铺,溢出时使用浏览器原生横向滚动条,tiled-wrap 等宽保留图片比例,按列从上往下紧密堆叠,避免按行对齐产生空白;平铺 hover 只缩放当前图片;galleryShape=square 强制 1:1 并居中裁剪(覆盖 fit),squared 同样作用于图片组;`update:index`、`change(index)`;图片错误状态;squared 覆盖 aspectRatio。 |
50
54
  | `AppleSearch` | `v-model: string`、`placeholder='搜索'`、`label='搜索'`、`disabled` | `search(value)` 在 Enter 时发出;清空更新 model。 |
51
55
  | `AppleContainer` | `width=1200`(number/string) | default slot;数字宽度按 px,宽度不会超过可用空间。 |
52
56
  | `AppleStack` | `direction=column`、`gap=16`、`align=stretch`、`wrap=true` | default slot;Flex 布局;数字 gap 按 px。 |
@@ -123,7 +127,6 @@ validator 返回 `true` 才通过;字符串作为错误信息,`false` 显示
123
127
  | `AppleTimeline` | `items: AppleTimelineItem[]`、`orientation=vertical`(horizontal/vertical)、`label` | item slot `{item}`;选项增加 `time?` 和 `tone?: default/success/danger`。 |
124
128
  | `ApplePullRefresh` | `v-model: boolean`、`disabled`、`threshold=72`、`label` | `refresh(done)`;default slot `{refresh,refreshing}`;在滚动顶部下拉,也提供刷新按钮;完成必须调用 done 或将 model 设为 false。 |
125
129
  | `AppleInfiniteScroll` | `loading`、`error: boolean/string`、`finished`、`disabled`、`distance=120`、`finishedText` | `load(done)`、`retry(done)`;default slot;IntersectionObserver 及手动加载按钮;完成后调用 done,或令 loading 从 true 回到 false。 |
126
- | `AppleScrollBar` | `target: string/HTMLElement/()=>HTMLElement`、`axis='both'`、`label`、`controls` | `interaction()`;`refresh()`;fixed 悬浮滚动条,不占空间,支持横向/纵向、拖动、轨道点击、键盘及 RTL。AppleProvider 自动接管文档滚动容器,原本隐藏滚动条的控件除外;`data-apple-scrollbar-ignore` 可排除容器。 |
127
130
  | `AppleBackTop` | `target: CSS selector=''`、`threshold=300`、`label`、`disabled` | `click(event)`;default slot;空 target 使用 window,达到滚动阈值才显示。 |
128
131
  | `AppleFloatingGroup` | `backTop=true`、`threshold=300`、`target`、`label` | default slot 放附加操作,回顶按钮始终排最下;默认固定右下并考虑安全区,与 Navibar 同为 z-index 70;图片预览时隐藏,退出开始时执行 300ms FadeInLeft,尊重 reduced/none 动效。 |
129
132
  | `AppleSpeedDial` | `backTop=true`、`threshold=300`、`target`、`label` | App.vue 全局唯一宿主,嵌套 Provider 共享注册表;BackTop 排第一,操作按注册顺序排列,primary 目录按钮排最后。移动目录弹窗保持高高度,多目录用 AppleTabBar 切换。 |
@@ -156,7 +159,7 @@ Table 另支持 `virtual=false`、`height=360`、`rowHeight=48`、`overscan=5`
156
159
 
157
160
  | 组件 | 主要 Props | Events / Slots / 说明 |
158
161
  | --- | --- | --- |
159
- | `AppleDialog` | `v-model: boolean=false`;以下 Modal 公共属性 | 默认显示确认/取消 footer。 |
162
+ | `AppleDialog` | `v-model: boolean=false`;以下 Modal 公共属性 | 默认显示 `borderless` 确认与取消按钮。`tone=danger` 时确认按钮使用 `danger`。 |
160
163
  | `AppleDrawer` | 同 Modal;`placement=right`(left/right);`width=440` | 默认无 footer;全高侧边抽屉。 |
161
164
  | `AppleSheet` | 同 Modal;`width=440` | 默认无 footer;底部面板,移动端全宽;桌面样式最小设计宽度 540px,仍受可用宽度约束。 |
162
165
  | `AppleSnackbar` | `v-model: boolean=true`、`message`、`title`、`tone=default`(default/info/success/warning/danger/error)、`duration=4000`、`action`、`closable=true` | `close(value,reason)`、`action()`;default slot;duration 单位毫秒,0 常驻;直接使用时位置由业务布局决定。 |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apptify",
3
- "version": "0.8.0",
3
+ "version": "0.8.5",
4
4
  "description": "An Apple-inspired, responsive Vue 3 component library.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,6 +1,6 @@
1
1
  # Apptify 应用模板
2
2
 
3
- 可编辑的 Vue 应用,包含导航、账号表单、外观设置、403、404 与组件示例。建议 Node.js 22 或 24 LTS。
3
+ 可编辑的 Vue 应用,包含导航、账号表单、外观设置、403、404、502、503 与组件示例。建议 Node.js 22 或 24 LTS。
4
4
 
5
5
  ```sh
6
6
  npm install
@@ -10,7 +10,7 @@
10
10
  "preview": "vite preview --host 127.0.0.1"
11
11
  },
12
12
  "dependencies": {
13
- "apptify": "^0.8.0",
13
+ "apptify": "^0.8.5",
14
14
  "vue": "^3.5.0",
15
15
  "vue-router": "^4.6.4",
16
16
  "lucide-vue-next": "^0.468.0"
@@ -1,6 +1,6 @@
1
1
  {
2
- "createdAt": "2026-10-24T07:33:34.408Z",
3
- "libraryVersion": "0.8.0",
2
+ "createdAt": "2026-11-14T13:45:34.443Z",
3
+ "libraryVersion": "0.8.5",
4
4
  "files": {
5
5
  "index.html": "75f6d93e3962ddca97a13b666a04d98ba9b263b6c288171383db764215034fea",
6
6
  "public/images/SOURCES.md": "24ccb6625b1168e48550b7651e9fc20cb747324d87666d39199608c7db20541b",
@@ -17,16 +17,25 @@
17
17
  "public/images/sunset.jpg": "4ee91e88f1e341143a807ef48fdfc24d63aa045d99351b4ea8ad7efcfef6ef9b",
18
18
  "public/images/waterfall.jpg": "cfd55ff5f41d3a58e91793d0e26a9ca90c86760aa401da033fbfa77d3364f238",
19
19
  "src/App.vue": "f85c256ed21601ccb0681a3592237e357d48ec02af371491b90a83a32203828e",
20
- "src/ComponentDemo.vue": "a599154820d13ffb19e9a661c0e208f1b0ef79a664f3a372eb7735fa486804cd",
21
- "src/catalog.ts": "a27a875d316bcc8d0be523195a0b4e8e21279c7f33c8d2f024efaa8721e1518e",
20
+ "src/ComponentDemo.vue": "786c18c4f2a98949feec8e0ad69359d75c863f1cd394179c53d161d0f15355bb",
21
+ "src/catalog.ts": "d0e5bc2698823e78303b0392155b572424cabd5894bbba07fdc5e7796e4ff2d5",
22
22
  "src/components/ComponentIndex.vue": "7938a3fe3efb521d6efab4fe64edef06d40f22ecd68481d20427a24c39b6683f",
23
+ "src/components/ErrorPagePreviews.vue": "52e0d8c81c93a7a18c8363ae01b6d20c85ada7078a815145353ed169d093f88a",
23
24
  "src/components/MasonryFeed.vue": "4882725da4211e2d39b782c839c7581a0672c815d12f146a8aee186df534ac68",
24
25
  "src/components/PageFooter.vue": "5e9c1b4ba8866c05216993fb8d605fa826a09739a5ced15068b24334e4814fac",
25
26
  "src/components/UserMenu.vue": "2822ea367cc8b5b8351fe2d1053ac24758e040df6a509e03f68ec8c3fc7e283d",
27
+ "src/components/bad-request-paper-scene.vue": "a4ff37e5994fd0ace55e850b556fdbf2de74f489d8e64290d5489cb742b2212c",
28
+ "src/components/bad-request-paper-story.ts": "761e7dc08643823f245bdaf811729cc9e3f1fcc29bf59dead545fa0a88044f12",
26
29
  "src/components/forbidden-paper-scene.vue": "a3ad3f3ff92a223a53fd5b08a5bea1a4be98cd2b035cfa64e70d69a6c6477c21",
27
30
  "src/components/forbidden-paper-story.ts": "b4c798ec04eda22ef4da235c9ffd57721777ceb043829dc76e4628112d8cfbf6",
31
+ "src/components/gateway-paper-scene.vue": "7738aca72d96b01992dd84d38d983e44c3e919aa520ebbb9816c92cdcc4ce416",
32
+ "src/components/gateway-paper-story.ts": "90deba7f3475bbe8b0ddab13a9f0671ba4f0f73176cbf584c4ae27d26f8de3c3",
33
+ "src/components/hamster-429-scene.vue": "0e77bb7cbe21e0abf0692c5f5a12902a8d02252013c32e74734f980a40a98516",
28
34
  "src/components/not-found-paper-scene.vue": "39f12c23f04d72131d9da51e9a960894b621f2581c25e5b18463f7b458127209",
29
35
  "src/components/not-found-paper-story.ts": "b7c02528ce58080662f0e55bc4a6b11c170fc987b3b5e377ff7c0db8f77ddf10",
36
+ "src/components/server-fire-paper-scene.vue": "80518ca7fbcaf0f3520a58ae8a8959c5faf7cf7c071b9a38020f8589ab38a062",
37
+ "src/components/server-fire-paper-story.ts": "fde2c20909e6fd2f428fbd9f881aabc8aaf436b98d897fc70903e15e4966f18d",
38
+ "src/components/unavailable-paper-scene.vue": "992b102a934caf17b63ac2f2063a746659235ea3cc345fa4458981158710476d",
30
39
  "src/editor/AppleInputExample.vue": "b563cdcb1ec6b033a3a19878f68e7fe4cf39da9d3e838887b591b2364e1aad90",
31
40
  "src/editor/AppleInputPreview.vue": "e88a71316c62c4cb763d1f285b4b9fc8fbcb4a35c6282dc95b32d5824c87dc77",
32
41
  "src/editor/ComponentDocumentLink.vue": "f4e1c88666b315a13e48386e9353c5da733fc149fba97ecc084804abd9d0067c",
@@ -36,7 +45,7 @@
36
45
  "src/editor/LiveVueEditor.vue": "0559a63bba3dc2ffb2d54ad78e7b6c4577381280f3c08e1d3493e189fa6ff0d5",
37
46
  "src/editor/apple-input-source.ts": "c97f63206e22f6f461d2883c8baa6157e2c44a3c6b6ce6f8d4529743b9280cd5",
38
47
  "src/editor/apple-input.ts": "54546ef9b04c991e3bedd7f718cd4b03855d0ef9a7449ad4459be615d080a141",
39
- "src/editor/component-metadata.ts": "43a4d37f112cbd76953092679862cea426f5f5adb6738169d25a5dffb91207c1",
48
+ "src/editor/component-metadata.ts": "db17a77c14629cef2233b61ec6ce589dd37731538939d0dc5bab7190c78bde1c",
40
49
  "src/editor/component-playground.ts": "caaca2c02d22e98da71928b9984039c9756c49e6acd05d490cae7fff73808cae",
41
50
  "src/editor/contract.ts": "792b1e8b2d658297a4b48a1eaa1b697c59d4c0333a0629383e5f0f7a745bba1e",
42
51
  "src/editor/documents.ts": "11eb5a22c3bdcbd6ef4cce4cd263339d388e71c2aff1c7dd01e6466dfebc161b",
@@ -59,7 +68,7 @@
59
68
  "src/editor/handbooks/apple-color-picker.ts": "d57313673712e77d91493e2fa4b4ce4b6d26316d039f815ff0941a340546ad4d",
60
69
  "src/editor/handbooks/apple-container.ts": "80dad84e674571f20def0ccb21a4f71face0814874947e6f08ed8268abfe85ad",
61
70
  "src/editor/handbooks/apple-date-picker.ts": "227cb8f21162ecb34545fee1b4e61526c7848f1fe7dd016540e0b7221281fd03",
62
- "src/editor/handbooks/apple-dialog.ts": "379867a4cac61902c1a7333722916b5c1d590a5847a534e83ca0b7bda3ba7487",
71
+ "src/editor/handbooks/apple-dialog.ts": "d78de77bb3b83f502a67ef1cd394e40b640fe709b9baba4e89399308dd2f5c92",
63
72
  "src/editor/handbooks/apple-divider.ts": "6ffad3d3b3e634993f289048c607f872a03c777625d0d8c34fa95a662b708523",
64
73
  "src/editor/handbooks/apple-drawer.ts": "201e8658ba923aebf4e52e3d8f57446091f3a431d967dab4109ecdd652bd9ef8",
65
74
  "src/editor/handbooks/apple-empty.ts": "8abd6f234de6227b4675c11d5efe394a6994a38783f402561330252727c90081",
@@ -82,7 +91,6 @@
82
91
  "src/editor/handbooks/apple-pull-refresh.ts": "8c74a11fdebaa63cde11103f556649f8e903c4905ce0f16f19a769878119c4de",
83
92
  "src/editor/handbooks/apple-radio-group.ts": "23282a94a6ff4353d0b83c5c6f1611234f54e3444ef4972176221fe2214e960b",
84
93
  "src/editor/handbooks/apple-rate.ts": "48c426bf19b5fdd9ef9d7b46bd7f13e68c57fc7370c296bb248f223cef087e8b",
85
- "src/editor/handbooks/apple-scroll-bar.ts": "cc1462103c36b4046472c6866bd34c05a8747b566f310ab9df9b75be663063c5",
86
94
  "src/editor/handbooks/apple-search.ts": "82fc284aa354b33ede41e44f594b256a7a410466a41bd2fdfcdc28dab7cbe6ec",
87
95
  "src/editor/handbooks/apple-segmented-control.ts": "3fad2e7d2b04a3d9c45368ca2ff1f8bf6ae2f0b4c944bd4813aa4cbe828f8218",
88
96
  "src/editor/handbooks/apple-select.ts": "879bdf454b501db67cce4692e95f84b3f63636e430a19eb6c0e59e39a7d14560",
@@ -109,18 +117,24 @@
109
117
  "src/editor/handbooks/apple-tree.ts": "9f1c4c24a29cecb52fc1b1a8e41a74996a3529814e7aff244810637a635dea87",
110
118
  "src/editor/handbooks/apple-upload.ts": "87f3bbba14487d78b22b43a81d6781239456ecfc9e8aa5143b4af02a76943a41",
111
119
  "src/editor/input-playground.ts": "458ec5f8cb796b663d3d223cf018931b1f706f8f4836aa8a3c6dfce3add30d79",
112
- "src/editor/playground-examples.ts": "87efa5a2074ec956c9eed9d3fae5d8d8a7c1f32e20dad18ae210de722e98c523",
120
+ "src/editor/playground-examples.ts": "a094de56c74ea2bf10b579cd704203f8ce0905f01a143303eb8b53061f09221a",
113
121
  "src/editor/runtime.ts": "09cd19ee9bf4f38a2f5bef013caae4f5ffd48677882550f19f2b9c266441faa9",
114
122
  "src/editor/sections.ts": "614fecd6a895d6afb0e6d59cfb1e345317fa26bcc0aba916e0da2d164e82dd82",
115
123
  "src/env.d.ts": "daae3800510e936d8308b7a9ebb0cb28d8f3fcd449e41386feea05d29bd12540",
124
+ "src/error-pages.ts": "a52665a31d31d6c594779d824032285ce4b53e1c7ca5d7a301f595ffa35bc6e4",
116
125
  "src/images.ts": "c224b12bd350733e659f2bf8a9480ff80e794de277be047471afe0419fce9fc3",
117
126
  "src/main.ts": "efa30fb81f5c5f46ca21dc32a96fb08b32665b2d7de9d426e52c617662203285",
118
127
  "src/router/index.ts": "006cfb4d8d6b5daa9676cbf71210b321b13bde254feccd9428b7771366f245c2",
119
- "src/style.css": "661cfb4c903fad83260644fe0b238830712cbfeb0b372a16589da89359fe1c5d",
120
- "src/views/403.vue": "c47a321cfe5000c4e92e9e4264c4930ef9990671b378a3f7e742ab919d7e0d00",
121
- "src/views/[...all].vue": "98797a9c353d390c7bf96da245feb9387e5e0cbec1a9f180ade457ae65c7484e",
128
+ "src/style.css": "92c81962a8493ed98600632a3ca46e48fe9c5ee242def0c2b8820653774e3792",
129
+ "src/views/400.vue": "76db437178a67345a5874a106887f3e4b30bf90a5ff3cdb1474259980eed2d9c",
130
+ "src/views/403.vue": "d566720829572ee598e114e41c610b3f0461d8f49fffa528f3d83c26d0a12821",
131
+ "src/views/429.vue": "d937e2d086a90dee0778b73d6999d0cb0892ff13acd8f8906582f44269dfb2c6",
132
+ "src/views/500.vue": "5dfb14bff1b081eb857afc85789349074fe9a78d6e93f3b79013a974b402e9e3",
133
+ "src/views/502.vue": "f30786713c1f71761df6eeeb75e5662d49a934bd3fba28fc11c20c2ad3ad5936",
134
+ "src/views/503.vue": "d5244d04cedb967f943a0e5667a95ecab96a4a20c5a2f2c32add7bc6a1b32f8a",
135
+ "src/views/[...all].vue": "22e093adcd2296cf3aecf2e01f5cd64d94b11ac523598a2385934b07a828d03f",
122
136
  "src/views/component-docs/[component].vue": "967673807de7264c663a87b96a2abd70b370dde102a4a030d153f1c012312dc9",
123
- "src/views/components.vue": "3fd082b7621b010e9499d5274c183cf99df10dda67483efe90b3db14bf575485",
137
+ "src/views/components.vue": "5e4161f443fc6f54e82dbfeb2ed612021c92f6a8b4ecd99e085eb40083016f04",
124
138
  "src/views/index.vue": "aa266dd79241d4dd932aa7059ec0a11e92df2f1999674f6d7fa5bf335ba11698",
125
139
  "src/views/settings.vue": "8c4853775321eafac28dbd824f1cf8dbe08cce153944f269ade286071b1e1d56",
126
140
  "tooling/playground-editor.mjs": "b59e16b130ed6175a11bd281163ea823c1fa8a7ba48c7aeb0e683293f5170b6f",
@@ -145,13 +159,22 @@
145
159
  "src/ComponentDemo.vue": "playground/ComponentDemo.vue",
146
160
  "src/catalog.ts": "playground/catalog.ts",
147
161
  "src/components/ComponentIndex.vue": "playground/components/ComponentIndex.vue",
162
+ "src/components/ErrorPagePreviews.vue": "playground/components/ErrorPagePreviews.vue",
148
163
  "src/components/MasonryFeed.vue": "playground/components/MasonryFeed.vue",
149
164
  "src/components/PageFooter.vue": "playground/components/PageFooter.vue",
150
165
  "src/components/UserMenu.vue": "playground/components/UserMenu.vue",
166
+ "src/components/bad-request-paper-scene.vue": "playground/components/bad-request-paper-scene.vue",
167
+ "src/components/bad-request-paper-story.ts": "playground/components/bad-request-paper-story.ts",
151
168
  "src/components/forbidden-paper-scene.vue": "playground/components/forbidden-paper-scene.vue",
152
169
  "src/components/forbidden-paper-story.ts": "playground/components/forbidden-paper-story.ts",
170
+ "src/components/gateway-paper-scene.vue": "playground/components/gateway-paper-scene.vue",
171
+ "src/components/gateway-paper-story.ts": "playground/components/gateway-paper-story.ts",
172
+ "src/components/hamster-429-scene.vue": "playground/components/hamster-429-scene.vue",
153
173
  "src/components/not-found-paper-scene.vue": "playground/components/not-found-paper-scene.vue",
154
174
  "src/components/not-found-paper-story.ts": "playground/components/not-found-paper-story.ts",
175
+ "src/components/server-fire-paper-scene.vue": "playground/components/server-fire-paper-scene.vue",
176
+ "src/components/server-fire-paper-story.ts": "playground/components/server-fire-paper-story.ts",
177
+ "src/components/unavailable-paper-scene.vue": "playground/components/unavailable-paper-scene.vue",
155
178
  "src/editor/AppleInputExample.vue": "playground/editor/AppleInputExample.vue",
156
179
  "src/editor/AppleInputPreview.vue": "playground/editor/AppleInputPreview.vue",
157
180
  "src/editor/ComponentDocumentLink.vue": "playground/editor/ComponentDocumentLink.vue",
@@ -207,7 +230,6 @@
207
230
  "src/editor/handbooks/apple-pull-refresh.ts": "playground/editor/handbooks/apple-pull-refresh.ts",
208
231
  "src/editor/handbooks/apple-radio-group.ts": "playground/editor/handbooks/apple-radio-group.ts",
209
232
  "src/editor/handbooks/apple-rate.ts": "playground/editor/handbooks/apple-rate.ts",
210
- "src/editor/handbooks/apple-scroll-bar.ts": "playground/editor/handbooks/apple-scroll-bar.ts",
211
233
  "src/editor/handbooks/apple-search.ts": "playground/editor/handbooks/apple-search.ts",
212
234
  "src/editor/handbooks/apple-segmented-control.ts": "playground/editor/handbooks/apple-segmented-control.ts",
213
235
  "src/editor/handbooks/apple-select.ts": "playground/editor/handbooks/apple-select.ts",
@@ -238,11 +260,17 @@
238
260
  "src/editor/runtime.ts": "playground/editor/runtime.ts",
239
261
  "src/editor/sections.ts": "playground/editor/sections.ts",
240
262
  "src/env.d.ts": "playground/env.d.ts",
263
+ "src/error-pages.ts": "playground/error-pages.ts",
241
264
  "src/images.ts": "playground/images.ts",
242
265
  "src/main.ts": "playground/main.ts",
243
266
  "src/router/index.ts": "playground/router/index.ts",
244
267
  "src/style.css": "playground/style.css",
268
+ "src/views/400.vue": "playground/views/400.vue",
245
269
  "src/views/403.vue": "playground/views/403.vue",
270
+ "src/views/429.vue": "playground/views/429.vue",
271
+ "src/views/500.vue": "playground/views/500.vue",
272
+ "src/views/502.vue": "playground/views/502.vue",
273
+ "src/views/503.vue": "playground/views/503.vue",
246
274
  "src/views/[...all].vue": "playground/views/[...all].vue",
247
275
  "src/views/component-docs/[component].vue": "playground/views/component-docs/[component].vue",
248
276
  "src/views/components.vue": "playground/views/components.vue",
@@ -257,51 +285,58 @@
257
285
  "src/components/content.ts": "115e69950a27ec1d534f3c300c1d19c9f72c34e83c6a6088809b8a07b0427035",
258
286
  "src/components/date-picker.ts": "c2ea419ab9f949b984cced9cf2ab3f6710a5a2c269a65293ecbca1d2cdc9b9ef",
259
287
  "src/components/forms.ts": "90ae25b7c2200b8292a7f94e8219a553a1c834472a5e34480ffbb6cccf270825",
260
- "src/components/foundation.ts": "fe56d963605e6fa9776127c152ed151d7abc1a5a0b6e2c02c69b7c859d57e432",
288
+ "src/components/foundation.ts": "900013459625638089a9148eba238c1ba04757384f9df5571a59507336eb8d01",
261
289
  "src/components/link.ts": "f5d4acc163c205b4dfabffc62084e236aa4759f91b041367a8a4a185cca0a9e4",
262
290
  "src/components/mobile-image-viewer.ts": "b94830d23de10de0e38b28ec04479f8a39090b5d339514b65ae0bf78757310d3",
263
291
  "src/components/motion.ts": "c8bd5928efe5cfeeae7486171e595a233603835620d009c5d1ffe611070fd0eb",
264
292
  "src/components/navibar.ts": "01c58cc6563273006ae91c43853283f60499de9fc88ba3a072ca64ef07f7eb2c",
265
- "src/components/overlays.ts": "4151932c33c94bf939b382b988667603f350ec6ba8c61b366d202566469b88de",
266
- "src/components/scrollbar.ts": "7e284a9d6e4a5c3b8b6b059a8660c80a02ef272014227ca1d862f150dec037c1",
293
+ "src/components/overlays.ts": "686faa9225a7a25bbdd2e154fb31ae998370c3debd4e5473beeadf2a9b4df06a",
267
294
  "src/components/speed-dial.ts": "41ce86f5c3d038161d26c576698454c1d0f7f4a7709c232a157894ee129fb69e",
268
295
  "src/components/tabs.ts": "a80fdf41efff49c2870859d6c0a97e5bbba69055706309acd5b53eafe8c02f9d",
269
296
  "src/core/context.ts": "dd64f30a971b672e39ecb91218e5e85ade3c87d03948e2a061e92af18b727947",
270
297
  "src/core/device.ts": "43f3320cfaf90e4c407dcc24b9fd9075f71b097cb5ce07274f5b86a9b769dd24",
271
- "src/core/image-gallery-motion.ts": "28c59361d3c59c8ab08841c05f7144649aa13f930f73d5c0c99ed33ddc96278f",
298
+ "src/core/image-gallery-motion.ts": "e68b2e8d5713095c30c035cbae0142e453839b0337066e8d44b3938732a12256",
272
299
  "src/core/image-geometry.ts": "6eb4d4e2a2afd078ccce010ec8aae32d89bf70a1e8c2c522b5e81040a97a1037",
273
300
  "src/core/image-motion.ts": "734111593a1e287ad3407e7c28b50e957f3d83c4678d66509339e7c11fc6f6cc",
274
- "src/core/layers.ts": "385b8350ce5e6c7092a0b67a5ecc3b050ecbae06dc85d8b3eb9b63fc70bcdf06",
301
+ "src/core/layers.ts": "fe15fa50c82155e894f2e42a80340bd61bda2cfa4d3e9646a69f556c49fc5b04",
275
302
  "src/core/motion-driver.ts": "bac2872987d9843f118fa648bc92593c87de287fcc7bfb716fb2f686da362f90",
276
- "src/core/motion.ts": "76b7f9dd552265a763e6c460d6ce556385e970dcd12adaba77b0c238d1d87863",
303
+ "src/core/motion.ts": "2ec0c17660b331a98e827a6e077ae2cf6511f127ce07e18d9841d3d94b6994a5",
277
304
  "src/core/overlay-surface.ts": "4d2ac300dca02d158f4522369d97dc767068059439c18610c30a20876cd94e52",
278
305
  "src/core/popup-motion.ts": "7d2d6a49660f2a0032cbac76af433251a042831a2653bff3de93715f369443d7",
279
306
  "src/core/popup-placement.ts": "1a8ec6466aa641d1281800011ad22bad5f78c3053641ee18647a58e106034016",
280
307
  "src/core/preview-navigation.ts": "8de5cc0f62b16b0590f212de6f7bb234859ec483a612673a87dd8fe9e260a813",
281
- "src/core/ripple.ts": "cc5f14ee2e68c082ef26599e5945a7689551da134d34a97934876686d01650e9",
308
+ "src/core/ripple.ts": "774574f15f4e9c25af0f4daa2f5d115b4d083695a62bd5db87cf5e9bd0c42ea4",
282
309
  "src/core/scroll-motion.ts": "408ba816cba1c142e84c9e7154fca6aba88da0dd4b5a21005f59e3e1f03c0eef",
283
- "src/core/scrollbar.ts": "511e9edff132554d0799a7647b2b3e865a772d5fed2e6300a623073887d8b763",
284
310
  "src/core/speed-dial.ts": "7d2ebc5320df0357801dd58361701d51b34f71d67822098d64fea5748420962f",
285
- "src/index.ts": "bb98e0c5833fea023d5b9300ee3920e1b95274a48931a41e0d562e4f2cc96f9e",
286
- "src/styles/base.css": "d98f2da531be0725d33d4a151ee326b22cafe2401418fda0f2c9945beaed8d8b",
287
- "src/styles/content.css": "abdcefc4f02ac1b8904b7db6e4bad6a0477e83f23fae18771dcbd723dfa94a66",
288
- "src/styles/date-picker.css": "bfb9dd345b7041c059ca16b56e3e08f5cc575b069f82351b6a783bb42ad1fa8f",
311
+ "src/index.ts": "f3de1ce2273f44ca9f7a862fdac27eb3ddf3ca4142365794cb38465a90258afe",
312
+ "src/styles/base.css": "4e42bebd42e82547509d01e60a84ece9053308223a457570a0140677b8bf0498",
313
+ "src/styles/content.css": "37da4e1e914c6544d2101889b1bae81ff144f9d8482ba1d006afa38386db25f4",
314
+ "src/styles/date-picker.css": "b2c14c440656f882339af2ff5865bbd25d03cf0afcada8fbb811f986d726f48e",
289
315
  "src/styles/forms.css": "35bfbe5a1d729d89dddc9c62882d1971cc12b0859131d46d356e044d20bdcae5",
290
316
  "src/styles/navibar.css": "9c0836ab5e069cfe15d0f19a33af524e5a35a71a5cd364fc95355110a8dfcdd5",
291
- "src/styles/overlays.css": "0ec43e4fb4857439b727c7827751b8cbefed7ee95f93642330bcfa41eee89c1b",
317
+ "src/styles/overlays.css": "fd63183a3ccdf71684a3a90b506f538c2ebefe2ad442ff97eb474d7b001ade28",
292
318
  "src/styles/ripple.css": "a16d40e8b7946dfdffa332ac2456cea6a9bf1cf7f5ace3ed5e9ae21afdeb1c45",
293
- "src/styles/scrollbar.css": "8c5f874a9bc46d13390d9330cd968289cb414598344a8718ca39e0537ebcaef9",
319
+ "src/styles/scrollbar.css": "a9c0dccfb6a9b784736998d50b8fa1149d0d8be1c2f7a18815fc6f1b76ff19b5",
294
320
  "playground/App.vue": "f85c256ed21601ccb0681a3592237e357d48ec02af371491b90a83a32203828e",
295
- "playground/ComponentDemo.vue": "a599154820d13ffb19e9a661c0e208f1b0ef79a664f3a372eb7735fa486804cd",
296
- "playground/catalog.ts": "a27a875d316bcc8d0be523195a0b4e8e21279c7f33c8d2f024efaa8721e1518e",
321
+ "playground/ComponentDemo.vue": "786c18c4f2a98949feec8e0ad69359d75c863f1cd394179c53d161d0f15355bb",
322
+ "playground/catalog.ts": "d0e5bc2698823e78303b0392155b572424cabd5894bbba07fdc5e7796e4ff2d5",
297
323
  "playground/components/ComponentIndex.vue": "7938a3fe3efb521d6efab4fe64edef06d40f22ecd68481d20427a24c39b6683f",
324
+ "playground/components/ErrorPagePreviews.vue": "52e0d8c81c93a7a18c8363ae01b6d20c85ada7078a815145353ed169d093f88a",
298
325
  "playground/components/MasonryFeed.vue": "4882725da4211e2d39b782c839c7581a0672c815d12f146a8aee186df534ac68",
299
326
  "playground/components/PageFooter.vue": "5e9c1b4ba8866c05216993fb8d605fa826a09739a5ced15068b24334e4814fac",
300
327
  "playground/components/UserMenu.vue": "2822ea367cc8b5b8351fe2d1053ac24758e040df6a509e03f68ec8c3fc7e283d",
328
+ "playground/components/bad-request-paper-scene.vue": "a4ff37e5994fd0ace55e850b556fdbf2de74f489d8e64290d5489cb742b2212c",
329
+ "playground/components/bad-request-paper-story.ts": "761e7dc08643823f245bdaf811729cc9e3f1fcc29bf59dead545fa0a88044f12",
301
330
  "playground/components/forbidden-paper-scene.vue": "a3ad3f3ff92a223a53fd5b08a5bea1a4be98cd2b035cfa64e70d69a6c6477c21",
302
331
  "playground/components/forbidden-paper-story.ts": "b4c798ec04eda22ef4da235c9ffd57721777ceb043829dc76e4628112d8cfbf6",
332
+ "playground/components/gateway-paper-scene.vue": "7738aca72d96b01992dd84d38d983e44c3e919aa520ebbb9816c92cdcc4ce416",
333
+ "playground/components/gateway-paper-story.ts": "90deba7f3475bbe8b0ddab13a9f0671ba4f0f73176cbf584c4ae27d26f8de3c3",
334
+ "playground/components/hamster-429-scene.vue": "0e77bb7cbe21e0abf0692c5f5a12902a8d02252013c32e74734f980a40a98516",
303
335
  "playground/components/not-found-paper-scene.vue": "39f12c23f04d72131d9da51e9a960894b621f2581c25e5b18463f7b458127209",
304
336
  "playground/components/not-found-paper-story.ts": "b7c02528ce58080662f0e55bc4a6b11c170fc987b3b5e377ff7c0db8f77ddf10",
337
+ "playground/components/server-fire-paper-scene.vue": "80518ca7fbcaf0f3520a58ae8a8959c5faf7cf7c071b9a38020f8589ab38a062",
338
+ "playground/components/server-fire-paper-story.ts": "fde2c20909e6fd2f428fbd9f881aabc8aaf436b98d897fc70903e15e4966f18d",
339
+ "playground/components/unavailable-paper-scene.vue": "992b102a934caf17b63ac2f2063a746659235ea3cc345fa4458981158710476d",
305
340
  "playground/editor/AppleInputExample.vue": "b563cdcb1ec6b033a3a19878f68e7fe4cf39da9d3e838887b591b2364e1aad90",
306
341
  "playground/editor/AppleInputPreview.vue": "e88a71316c62c4cb763d1f285b4b9fc8fbcb4a35c6282dc95b32d5824c87dc77",
307
342
  "playground/editor/ComponentDocumentLink.vue": "f4e1c88666b315a13e48386e9353c5da733fc149fba97ecc084804abd9d0067c",
@@ -311,7 +346,7 @@
311
346
  "playground/editor/LiveVueEditor.vue": "0559a63bba3dc2ffb2d54ad78e7b6c4577381280f3c08e1d3493e189fa6ff0d5",
312
347
  "playground/editor/apple-input-source.ts": "c97f63206e22f6f461d2883c8baa6157e2c44a3c6b6ce6f8d4529743b9280cd5",
313
348
  "playground/editor/apple-input.ts": "54546ef9b04c991e3bedd7f718cd4b03855d0ef9a7449ad4459be615d080a141",
314
- "playground/editor/component-metadata.ts": "43a4d37f112cbd76953092679862cea426f5f5adb6738169d25a5dffb91207c1",
349
+ "playground/editor/component-metadata.ts": "db17a77c14629cef2233b61ec6ce589dd37731538939d0dc5bab7190c78bde1c",
315
350
  "playground/editor/component-playground.ts": "caaca2c02d22e98da71928b9984039c9756c49e6acd05d490cae7fff73808cae",
316
351
  "playground/editor/contract.ts": "792b1e8b2d658297a4b48a1eaa1b697c59d4c0333a0629383e5f0f7a745bba1e",
317
352
  "playground/editor/documents.ts": "11eb5a22c3bdcbd6ef4cce4cd263339d388e71c2aff1c7dd01e6466dfebc161b",
@@ -334,7 +369,7 @@
334
369
  "playground/editor/handbooks/apple-color-picker.ts": "d57313673712e77d91493e2fa4b4ce4b6d26316d039f815ff0941a340546ad4d",
335
370
  "playground/editor/handbooks/apple-container.ts": "80dad84e674571f20def0ccb21a4f71face0814874947e6f08ed8268abfe85ad",
336
371
  "playground/editor/handbooks/apple-date-picker.ts": "227cb8f21162ecb34545fee1b4e61526c7848f1fe7dd016540e0b7221281fd03",
337
- "playground/editor/handbooks/apple-dialog.ts": "379867a4cac61902c1a7333722916b5c1d590a5847a534e83ca0b7bda3ba7487",
372
+ "playground/editor/handbooks/apple-dialog.ts": "d78de77bb3b83f502a67ef1cd394e40b640fe709b9baba4e89399308dd2f5c92",
338
373
  "playground/editor/handbooks/apple-divider.ts": "6ffad3d3b3e634993f289048c607f872a03c777625d0d8c34fa95a662b708523",
339
374
  "playground/editor/handbooks/apple-drawer.ts": "201e8658ba923aebf4e52e3d8f57446091f3a431d967dab4109ecdd652bd9ef8",
340
375
  "playground/editor/handbooks/apple-empty.ts": "8abd6f234de6227b4675c11d5efe394a6994a38783f402561330252727c90081",
@@ -357,7 +392,6 @@
357
392
  "playground/editor/handbooks/apple-pull-refresh.ts": "8c74a11fdebaa63cde11103f556649f8e903c4905ce0f16f19a769878119c4de",
358
393
  "playground/editor/handbooks/apple-radio-group.ts": "23282a94a6ff4353d0b83c5c6f1611234f54e3444ef4972176221fe2214e960b",
359
394
  "playground/editor/handbooks/apple-rate.ts": "48c426bf19b5fdd9ef9d7b46bd7f13e68c57fc7370c296bb248f223cef087e8b",
360
- "playground/editor/handbooks/apple-scroll-bar.ts": "cc1462103c36b4046472c6866bd34c05a8747b566f310ab9df9b75be663063c5",
361
395
  "playground/editor/handbooks/apple-search.ts": "82fc284aa354b33ede41e44f594b256a7a410466a41bd2fdfcdc28dab7cbe6ec",
362
396
  "playground/editor/handbooks/apple-segmented-control.ts": "3fad2e7d2b04a3d9c45368ca2ff1f8bf6ae2f0b4c944bd4813aa4cbe828f8218",
363
397
  "playground/editor/handbooks/apple-select.ts": "879bdf454b501db67cce4692e95f84b3f63636e430a19eb6c0e59e39a7d14560",
@@ -384,18 +418,24 @@
384
418
  "playground/editor/handbooks/apple-tree.ts": "9f1c4c24a29cecb52fc1b1a8e41a74996a3529814e7aff244810637a635dea87",
385
419
  "playground/editor/handbooks/apple-upload.ts": "87f3bbba14487d78b22b43a81d6781239456ecfc9e8aa5143b4af02a76943a41",
386
420
  "playground/editor/input-playground.ts": "458ec5f8cb796b663d3d223cf018931b1f706f8f4836aa8a3c6dfce3add30d79",
387
- "playground/editor/playground-examples.ts": "87efa5a2074ec956c9eed9d3fae5d8d8a7c1f32e20dad18ae210de722e98c523",
421
+ "playground/editor/playground-examples.ts": "a094de56c74ea2bf10b579cd704203f8ce0905f01a143303eb8b53061f09221a",
388
422
  "playground/editor/runtime.ts": "09cd19ee9bf4f38a2f5bef013caae4f5ffd48677882550f19f2b9c266441faa9",
389
423
  "playground/editor/sections.ts": "614fecd6a895d6afb0e6d59cfb1e345317fa26bcc0aba916e0da2d164e82dd82",
390
424
  "playground/env.d.ts": "daae3800510e936d8308b7a9ebb0cb28d8f3fcd449e41386feea05d29bd12540",
425
+ "playground/error-pages.ts": "a52665a31d31d6c594779d824032285ce4b53e1c7ca5d7a301f595ffa35bc6e4",
391
426
  "playground/images.ts": "c224b12bd350733e659f2bf8a9480ff80e794de277be047471afe0419fce9fc3",
392
427
  "playground/main.ts": "efa30fb81f5c5f46ca21dc32a96fb08b32665b2d7de9d426e52c617662203285",
393
428
  "playground/router/index.ts": "006cfb4d8d6b5daa9676cbf71210b321b13bde254feccd9428b7771366f245c2",
394
- "playground/style.css": "661cfb4c903fad83260644fe0b238830712cbfeb0b372a16589da89359fe1c5d",
395
- "playground/views/403.vue": "c47a321cfe5000c4e92e9e4264c4930ef9990671b378a3f7e742ab919d7e0d00",
396
- "playground/views/[...all].vue": "98797a9c353d390c7bf96da245feb9387e5e0cbec1a9f180ade457ae65c7484e",
429
+ "playground/style.css": "92c81962a8493ed98600632a3ca46e48fe9c5ee242def0c2b8820653774e3792",
430
+ "playground/views/400.vue": "76db437178a67345a5874a106887f3e4b30bf90a5ff3cdb1474259980eed2d9c",
431
+ "playground/views/403.vue": "d566720829572ee598e114e41c610b3f0461d8f49fffa528f3d83c26d0a12821",
432
+ "playground/views/429.vue": "d937e2d086a90dee0778b73d6999d0cb0892ff13acd8f8906582f44269dfb2c6",
433
+ "playground/views/500.vue": "5dfb14bff1b081eb857afc85789349074fe9a78d6e93f3b79013a974b402e9e3",
434
+ "playground/views/502.vue": "f30786713c1f71761df6eeeb75e5662d49a934bd3fba28fc11c20c2ad3ad5936",
435
+ "playground/views/503.vue": "d5244d04cedb967f943a0e5667a95ecab96a4a20c5a2f2c32add7bc6a1b32f8a",
436
+ "playground/views/[...all].vue": "22e093adcd2296cf3aecf2e01f5cd64d94b11ac523598a2385934b07a828d03f",
397
437
  "playground/views/component-docs/[component].vue": "967673807de7264c663a87b96a2abd70b370dde102a4a030d153f1c012312dc9",
398
- "playground/views/components.vue": "3fd082b7621b010e9499d5274c183cf99df10dda67483efe90b3db14bf575485",
438
+ "playground/views/components.vue": "5e4161f443fc6f54e82dbfeb2ed612021c92f6a8b4ecd99e085eb40083016f04",
399
439
  "playground/views/index.vue": "aa266dd79241d4dd932aa7059ec0a11e92df2f1999674f6d7fa5bf335ba11698",
400
440
  "playground/views/settings.vue": "8c4853775321eafac28dbd824f1cf8dbe08cce153944f269ade286071b1e1d56",
401
441
  "public/images/SOURCES.md": "24ccb6625b1168e48550b7651e9fc20cb747324d87666d39199608c7db20541b",
@@ -411,12 +451,12 @@
411
451
  "public/images/snow.jpg": "59fec6d2bbf9df11b7c697c57a253b7bd4b5a097489ce1017fb5209b9ee54b8e",
412
452
  "public/images/sunset.jpg": "4ee91e88f1e341143a807ef48fdfc24d63aa045d99351b4ea8ad7efcfef6ef9b",
413
453
  "public/images/waterfall.jpg": "cfd55ff5f41d3a58e91793d0e26a9ca90c86760aa401da033fbfa77d3364f238",
414
- "docs/COMPONENTS.md": "d7b2a217a57a4790765266e66f5aa00157cf75e950dec9daaf88b12cc6e3fb72",
454
+ "docs/COMPONENTS.md": "8ecae2f054754c84fac59d00f6dfd52e5260412cf2a16464cfdbd2d8441e523c",
415
455
  "docs/INPUT-WORKSHOP.md": "82ea6db156d2d9be4cfee233675b107c837aaa30a849f92010e988e1df7ce3a0",
416
456
  "docs/PLAYGROUND-TEMPLATE.md": "e476d6622e89d8cb04d9acdd54c090e5d559d666bb49f266bcf36d3f3bf8fe67",
417
457
  "docs/VALIDATION.md": "3c1755f4699d6b7d8febb44b2b0b00eb416b86559c26d8b69e46a1c98271af5f",
418
458
  "README.md": "25b70a5feb2de4642940d6e25ec7e21b30ffb6efc726fbbe9c4aead234e90688",
419
- "package.json": "b1e1f11cc08e2610c8aaa6dcb4a02b3257169e61174045a927c5ff3ae1ef12f7",
459
+ "package.json": "2aeb6ac7286166ecb63a29d286acd5931ad355bd04f2813d5ae010469e9e1f8c",
420
460
  "index.html": "75f6d93e3962ddca97a13b666a04d98ba9b263b6c288171383db764215034fea",
421
461
  "vite.config.ts": "988aa18f3adf428ee3e82a41422bf76771d91b7fc3738ed36d731a497022f049",
422
462
  "vite.lib.config.ts": "d7bc7e47f18ea4257eb1dafd8ed895f47cad8f756157cfa9a6e98b30086b1c72",
@@ -424,7 +464,7 @@
424
464
  "tsconfig.lib.json": "c885806b003cee01192cddcaf32df3e7c6d369e645360398aa088c14b1c4792f",
425
465
  "tooling/create-playground.mjs": "404227bb53b852f4c1ad8d8f406dab3cf3a89c53b5543bcd8c28234a2376ad44",
426
466
  "tooling/npm-command.mjs": "51c08c53cd395e32ec9b71b258dafadcdad3e6b227090d5b7bfbe55b9d0a97ba",
427
- "tooling/prepare-playground.mjs": "902bda2ed13e51938a31e8ce6296bac2895373336cc9a8cd3ef57274dd903533",
467
+ "tooling/prepare-playground.mjs": "1a867e91642f62b091cce348e6145f87342ad8b005c5e59b3894a713f5ec8de6",
428
468
  "tooling/prepare-package.mjs": "a663ad0343bee2e711cdbc1c497daa89edc20752c67f17fc45d5173c6807b66b"
429
469
  }
430
470
  }
@@ -64,7 +64,6 @@
64
64
  <apple-stack v-else-if="name === 'AppleBadge'" direction="row" align="center"><apple-badge :value="unread"><apple-link variant="secondary" :icon="icons.Bell" @click="unread++">新消息</apple-link></apple-badge><apple-link as="button" :disabled="!unread" @click="unread = 0">全部已读</apple-link></apple-stack>
65
65
  <apple-stack v-else-if="name === 'AppleTag'" class="demo-tag-row" direction="row" align="center" :gap="10"><apple-tag>默认标签</apple-tag><apple-tag tone="success">已完成</apple-tag><apple-tag tone="info">进行中</apple-tag><apple-tag tone="warning">待确认</apple-tag><apple-tag v-if="tag" label="设计系统" closable @close="tag = false">设计系统</apple-tag><apple-link as="button" v-else :icon="icons.Plus" @click="tag = true">添加标签</apple-link></apple-stack>
66
66
  <apple-stack v-else-if="name === 'AppleDivider'"><apple-switch v-model="dividerVertical" label="纵向分隔" /><apple-stack :direction="dividerVertical ? 'row' : 'column'" :gap="0" align="center"><span>配送到家</span><apple-divider :vertical="dividerVertical" :label="dividerVertical ? undefined : '更多选择'" /><span>到店取货</span></apple-stack></apple-stack>
67
- <div v-else-if="name === 'AppleScrollBar'" class="demo-scroll-bar" tabindex="0" aria-label="滚动示例"><div class="demo-scroll-bar__content"><apple-card v-for="n in 12" :key="n" class="demo-layout-tile"><strong>0{{ n }}</strong></apple-card></div></div>
68
67
  <apple-input v-else-if="name === 'AppleInput'" v-model="text" label="姓名" placeholder="怎么称呼你" clearable />
69
68
  <apple-textarea v-else-if="name === 'AppleTextarea'" v-model="bio" label="个人简介" placeholder="写下你的想法" :maxlength="160" counter />
70
69
  <apple-select v-else-if="name === 'AppleSelect'" v-model="city" label="所在城市" :items="cities" />
@@ -148,7 +147,7 @@
148
147
  import { imageUrl } from './images'
149
148
  import { defineComponent, h, markRaw } from 'vue'
150
149
  import { Plus, Heart, Bell, ArrowUpRight, ArrowUp, MoreHorizontal, ZoomIn, Share2, Trash2, Menu } from 'lucide-vue-next'
151
- import { AppleButton, resolveMotion, scrollToWithMotion, type MotionScroll } from 'apptify'
150
+ import { AppleLink, resolveMotion, scrollToWithMotion, type MotionScroll } from 'apptify'
152
151
  export default defineComponent({
153
152
  name: 'ComponentDemo', props: { name: { type: String, required: true } }, emits: ['navigate'],
154
153
  data() { return {
@@ -210,7 +209,7 @@ export default defineComponent({
210
209
  openDialog() { this.$apple.dialog({title:'保存更改?',message:'你的更改会同步到所有设备。',confirmText:'保存'}).result.then(result => { if (result) this.notify('你的更改已保存') }) },
211
210
  openStack() {
212
211
  const apple = this.$apple
213
- const Inner = defineComponent({ props:['close','sendMessage'], render() { return h('div', {class:'demo-dialog-body'}, [h('p','第一层仍然保留在下面。'), h(AppleButton, {onClick:() => apple.dialog({title:'第二层对话框',message:'关闭这一层后,会回到第一层。'})}, () => '打开第二层')]) } })
212
+ const Inner = defineComponent({ props:['close','sendMessage'], render() { return h('div', {class:'demo-dialog-body'}, [h('p','第一层仍然保留在下面。'), h(AppleLink, {as:'button', onClick:() => apple.dialog({title:'第二层对话框',message:'关闭这一层后,会回到第一层。'})}, () => '打开第二层')]) } })
214
213
  apple.dialog({title:'第一层对话框',component:Inner})
215
214
  },
216
215
  refresh(done: () => void) { this.timers.push(setTimeout(() => { this.refreshText = `更新于 ${new Date().toLocaleTimeString('zh-CN')}`; done() }, 700)) },
@@ -229,8 +228,6 @@ export default defineComponent({
229
228
  .component-demo > .demo-tag-row > :deep(.apple-button) { align-self: center; max-width: 100%; }
230
229
 
231
230
  .demo-transition-stage { display: grid; min-width: 0; overflow: hidden; --demo-slide-distance: 24px; }
232
- .demo-scroll-bar { height: 240px; overflow: auto; border-radius: 12px; }
233
- .demo-scroll-bar__content { width: 720px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; padding: 16px; }
234
231
  .demo-transition-stage.is-backward { --demo-slide-distance: -24px; }
235
232
  .demo-transition-stage :deep(.apple-statistic) { grid-area: 1 / 1; min-width: 0; }
236
233
  .demo-transition-stage :deep(.apple-slide-x-enter-active),
@@ -69,7 +69,6 @@ export const catalog: CatalogItem[] = [
69
69
  item('AppleAutoSize', 'axis(height|both) · motion | default', '<apple-auto-size><div v-if="expanded">详情内容</div></apple-auto-size>'),
70
70
  item('AppleTransition', 'name(page|slide-x|slide-y|fade) · mode · appear · motion | default', '<apple-transition name="page"><router-view /></apple-transition>'),
71
71
  item('AppleInfiniteScroll', 'loading · finished · error · disabled · distance | load(done), retry(done)', '<apple-infinite-scroll :finished="finished" @load="async done => { await loadMore(); done() }">内容</apple-infinite-scroll>'),
72
- item('AppleScrollBar', 'target · axis(both|horizontal|vertical) · label | interaction · refresh()', '<apple-scroll-bar target="#scroll-area" />'),
73
72
  ]
74
73
  export const groups = ['全部组件', '基础', '表单', '导航', '数据展示', '反馈', '移动交互']
75
74