From 36469b3ac9f3b4fda24bb0f9d6b2eaca85e21021 Mon Sep 17 00:00:00 2001
From: Victor Bo <10667379@qq.com>
Date: Fri, 22 Dec 2023 15:17:12 +0800
Subject: [PATCH] feat: added affix component (#352)
* feat: create affix component
* chore: complete basic function
* test: added affix component unit test
* docs: added affix component document
---------
Co-authored-by: baiwusanyu-c <740132583@qq.com>
---
README.md | 2 +
.../__test__/__snapshots__/affix.spec.ts.snap | 7 +
components/Affix/__test__/affix.spec.ts | 76 ++++++++++
components/Affix/package.json | 48 +++++++
components/Affix/src/index.svelte | 123 ++++++++++++++++
components/Affix/src/index.ts | 5 +
components/Affix/src/types.d.ts | 13 ++
components/Affix/src/utils.ts | 42 ++++++
components/Affix/tsconfig.json | 11 ++
components/index.ts | 1 +
docs/.vitepress/config.ts | 4 +
docs/components/KAffix.md | 60 ++++++++
docs/example/affix/basic.svelte | 34 +++++
docs/example/affix/position.svelte | 28 ++++
package.json | 3 +-
pnpm-lock.yaml | 135 +++++++++++-------
preset/src/shortcuts/index.ts | 9 +-
preset/src/shortcuts/src/affix.ts | 4 +
18 files changed, 550 insertions(+), 55 deletions(-)
create mode 100644 components/Affix/__test__/__snapshots__/affix.spec.ts.snap
create mode 100644 components/Affix/__test__/affix.spec.ts
create mode 100644 components/Affix/package.json
create mode 100644 components/Affix/src/index.svelte
create mode 100644 components/Affix/src/index.ts
create mode 100644 components/Affix/src/types.d.ts
create mode 100644 components/Affix/src/utils.ts
create mode 100644 components/Affix/tsconfig.json
create mode 100644 docs/components/KAffix.md
create mode 100644 docs/example/affix/basic.svelte
create mode 100644 docs/example/affix/position.svelte
create mode 100644 preset/src/shortcuts/src/affix.ts
diff --git a/README.md b/README.md
index dd054942..0ef0ecde 100644
--- a/README.md
+++ b/README.md
@@ -31,3 +31,5 @@ Thanks to everyone who has already contributed to ikun-ui !
- [svelte](https://github.com/sveltejs/svelte)
- [unocss](https://github.com/unocss/unocss)
- [onu-ui](https://github.com/onu-ui/onu-ui)
+- [naive-ui](https://github.com/tusen-ai/naive-ui)
+- [element-plus](https://github.com/element-plus/element-plus)
diff --git a/components/Affix/__test__/__snapshots__/affix.spec.ts.snap b/components/Affix/__test__/__snapshots__/affix.spec.ts.snap
new file mode 100644
index 00000000..ded69055
--- /dev/null
+++ b/components/Affix/__test__/__snapshots__/affix.spec.ts.snap
@@ -0,0 +1,7 @@
+// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
+
+exports[`Test: KAffix > props: cls 1`] = `"
"`;
+
+exports[`Test: KAffix > should work with \`position\` prop 1`] = `""`;
+
+exports[`Test: KAffix > should work with \`top\` prop 1`] = `""`;
diff --git a/components/Affix/__test__/affix.spec.ts b/components/Affix/__test__/affix.spec.ts
new file mode 100644
index 00000000..5a0bc650
--- /dev/null
+++ b/components/Affix/__test__/affix.spec.ts
@@ -0,0 +1,76 @@
+import { afterEach, expect, test, describe, beforeEach, vi } from 'vitest';
+import KAffix from '../src';
+import { tick } from 'svelte';
+
+const initHost = () => {
+ document.body.style.height = '100px';
+ document.body.style.overflow = 'auto';
+};
+
+beforeEach(() => {
+ initHost();
+ vi.useFakeTimers();
+});
+afterEach(() => {
+ document.body.innerHTML = '';
+ vi.restoreAllMocks();
+});
+
+describe('Test: KAffix', () => {
+ vi.mock('svelte', async () => {
+ const actual = (await vi.importActual('svelte')) as object;
+ return {
+ ...actual,
+ // @ts-ignore
+ onMount: (await import('svelte/internal')).onMount
+ };
+ });
+
+ test('props: cls', async () => {
+ const instance = new KAffix({
+ target: document.body,
+ props: {
+ cls: 'k-affix--test'
+ }
+ });
+ expect(instance).toBeTruthy();
+ expect(
+ (document.documentElement as HTMLElement)!.innerHTML.includes('k-affix--test')
+ ).toBeTruthy();
+ expect(document.documentElement.innerHTML).matchSnapshot();
+ });
+
+ test('should work with `top` prop', async () => {
+ const instance = new KAffix({
+ target: document.body,
+ props: {
+ cls: 'k-affix--test',
+ top: 120
+ }
+ });
+ expect(instance).toBeTruthy();
+ expect(
+ (document.documentElement as HTMLElement)!.innerHTML.includes('k-affix--affixed')
+ ).not.toBeTruthy();
+ document.documentElement.scrollTop = 200;
+ document.documentElement.dispatchEvent(new Event('scroll', { bubbles: true }));
+ await tick();
+ await vi.advanceTimersByTimeAsync(300);
+ expect(document.body.innerHTML).toContain('top: 120px;');
+ expect(document.documentElement.innerHTML).matchSnapshot();
+ });
+
+ test('should work with `position` prop', async () => {
+ const instance = new KAffix({
+ target: document.body,
+ props: {
+ positionOption: 'absolute'
+ }
+ });
+ expect(instance).toBeTruthy();
+ expect(
+ (document.documentElement as HTMLElement)!.innerHTML.includes('k-affix--absolute-positioned')
+ ).toBeTruthy();
+ expect(document.documentElement.innerHTML).matchSnapshot();
+ });
+});
diff --git a/components/Affix/package.json b/components/Affix/package.json
new file mode 100644
index 00000000..27d8025c
--- /dev/null
+++ b/components/Affix/package.json
@@ -0,0 +1,48 @@
+{
+ "name": "@ikun-ui/affix",
+ "version": "0.0.16",
+ "type": "module",
+ "main": "src/index.ts",
+ "types": "src/index.d.ts",
+ "svelte": "src/index.ts",
+ "keywords": [
+ "svelte",
+ "svelte3",
+ "web component",
+ "component",
+ "react",
+ "vue",
+ "svelte-kit",
+ "dx"
+ ],
+ "files": [
+ "dist",
+ "package.json"
+ ],
+ "scripts": {
+ "build": "npm run build:js && npm run build:svelte",
+ "build:js": "tsc -p . --outDir dist/ --rootDir src/",
+ "build:svelte": "svelte-strip strip src/ dist",
+ "publish:pre": "node ../../scripts/pre-publish.js",
+ "publish:npm": "pnpm run publish:pre && pnpm publish --no-git-checks --access public"
+ },
+ "publishConfig": {
+ "access": "public",
+ "main": "dist/index.js",
+ "module": "dist/index.js",
+ "svelte": "dist/index.js",
+ "types": "dist/index.d.ts"
+ },
+ "dependencies": {
+ "@ikun-ui/icon": "workspace:*",
+ "@ikun-ui/utils": "workspace:*",
+ "baiwusanyu-utils": "^1.0.16",
+ "clsx": "^2.0.0"
+ },
+ "devDependencies": {
+ "@tsconfig/svelte": "^5.0.2",
+ "svelte-strip": "^2.0.0",
+ "tslib": "^2.6.2",
+ "typescript": "^5.3.2"
+ }
+}
diff --git a/components/Affix/src/index.svelte b/components/Affix/src/index.svelte
new file mode 100644
index 00000000..c9ed3890
--- /dev/null
+++ b/components/Affix/src/index.svelte
@@ -0,0 +1,123 @@
+
+
+
+
+
diff --git a/components/Affix/src/index.ts b/components/Affix/src/index.ts
new file mode 100644
index 00000000..5ab48552
--- /dev/null
+++ b/components/Affix/src/index.ts
@@ -0,0 +1,5 @@
+///
+import Affix from './index.svelte';
+export { Affix as KAffix };
+
+export default Affix;
diff --git a/components/Affix/src/types.d.ts b/components/Affix/src/types.d.ts
new file mode 100644
index 00000000..1bbaadf7
--- /dev/null
+++ b/components/Affix/src/types.d.ts
@@ -0,0 +1,13 @@
+///
+import type { ClassValue } from 'clsx';
+import type { ScrollTarget } from './utils';
+export type KAffixProps = {
+ listenTo: string | ScrollTarget | (() => HTMLElement) | undefined;
+ top: number | undefined;
+ bottom: number | undefined;
+ triggerTop: number | undefined;
+ triggerBottom: number | undefined;
+ positionOption: 'fixed' | 'absolute';
+ cls: ClassValue;
+ attrs: Record;
+};
diff --git a/components/Affix/src/utils.ts b/components/Affix/src/utils.ts
new file mode 100644
index 00000000..c15963c9
--- /dev/null
+++ b/components/Affix/src/utils.ts
@@ -0,0 +1,42 @@
+import type { IKunUncertainFunction } from '@ikun-ui/utils';
+
+export type ScrollTarget = Window | Document | HTMLElement;
+
+export function getScrollTop(target: ScrollTarget): number {
+ return target instanceof HTMLElement ? target.scrollTop : window.scrollY;
+}
+
+export function getRect(target: ScrollTarget): { top: number; bottom: number } {
+ return target instanceof HTMLElement
+ ? target.getBoundingClientRect()
+ : { top: 0, bottom: window.innerHeight };
+}
+
+type GetElement = () => HTMLElement;
+
+function unwrapElement(
+ target: T | string | GetElement
+): T extends HTMLElement ? HTMLElement : HTMLElement | null;
+function unwrapElement(target: HTMLElement | string | GetElement) {
+ if (typeof target === 'string') return document.querySelector(target);
+ if (typeof target === 'function') return target();
+ return target;
+}
+
+export { unwrapElement };
+
+let onceCbs: IKunUncertainFunction[] = [];
+const paramsMap: WeakMap = new WeakMap();
+
+function flushOnceCallbacks(): void {
+ // @ts-ignore
+ onceCbs.forEach((cb) => cb(...paramsMap.get(cb)!));
+ onceCbs = [];
+}
+
+function beforeNextFrameOnce(cb: IKunUncertainFunction, ...params: any[]): void {
+ paramsMap.set(cb, params);
+ if (onceCbs.includes(cb)) return;
+ onceCbs.push(cb) === 1 && requestAnimationFrame(flushOnceCallbacks);
+}
+export { beforeNextFrameOnce };
diff --git a/components/Affix/tsconfig.json b/components/Affix/tsconfig.json
new file mode 100644
index 00000000..fe0d7c4f
--- /dev/null
+++ b/components/Affix/tsconfig.json
@@ -0,0 +1,11 @@
+{
+ "extends": "@tsconfig/svelte/tsconfig.json",
+
+ "compilerOptions": {
+ "noImplicitAny": true,
+ "strict": true,
+ "declaration": true
+ },
+ "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.svelte"],
+ "exclude": ["node_modules/*", "**/*.spec.ts"]
+}
diff --git a/components/index.ts b/components/index.ts
index 18669998..c726e656 100644
--- a/components/index.ts
+++ b/components/index.ts
@@ -50,3 +50,4 @@ export * from '@ikun-ui/tabs';
export * from '@ikun-ui/descriptions';
export * from '@ikun-ui/descriptions-item';
export * from '@ikun-ui/carousel';
+export * from '@ikun-ui/affix';
diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts
index 681ae1ff..8adcbe1e 100644
--- a/docs/.vitepress/config.ts
+++ b/docs/.vitepress/config.ts
@@ -156,6 +156,10 @@ const components = [
text: 'Navigation',
collapsed: false,
items: [
+ {
+ text: 'Affix',
+ link: '/components/KAffix'
+ },
{
text: 'Breadcrumb',
link: '/components/KBreadcrumb'
diff --git a/docs/components/KAffix.md b/docs/components/KAffix.md
new file mode 100644
index 00000000..254f3ad8
--- /dev/null
+++ b/docs/components/KAffix.md
@@ -0,0 +1,60 @@
+---
+title: KAffix
+lang: en-US
+---
+
+# KAffix
+
+Avatars can be used to represent people or objects. It supports images, Icons, or characters.
+
+## Install
+
+::: code-group
+
+```bash [pnpm]
+pnpm add @ikun-ui/affix
+```
+
+```bash [yarn]
+yarn add @ikun-ui/affix
+```
+
+```bash [npm]
+npm install @ikun-ui/affix
+```
+
+:::
+
+## Basic usage
+
+Affix has `trigger-top`, `top`, `trigger-bottom` and `bottom`.
+`trigger-to`p is top affixing trigger point.
+`top` is the style `top` value after top affixing is trigger.
+`trigger-bottom` and `bottom` work in similar way.
+
+
+
+## Position
+
+Affix can be `absolute`or fixed positioned. You may need some css tricks to make it works as following.
+
+
+
+## Affix Props
+
+| Name | Type | Default | Description |
+| -------------- | ------------------------------------------------ | ---------- | --------------------------------------------------------------------------------------------- |
+| top | `number` | `-` | The css top property after trigger top affix. (if not set, use `trigger-top` prop). |
+| triggerTop | `number` | `-` | The distance px to top of target to trigger top affix. (if not set, use `top` prop). |
+| bottom | `number` | `-` | The css bottom property after trigger bottom affix. (if not set, use `trigger-bottom` prop). |
+| triggerBottom | `number` | `-` | The distance px to bottom of target to trigger bottom affix. (if not set, use `bottom` prop). |
+| positionOption | `'fixed' \| 'absolute'` | `fixed` | CSS position of the affix. |
+| listenTo | `string \| ScrollTarget \| (() => HTMLElement)` | `document` | The scrolling element to listen scrolling. |
+| cls | `string` | `''` | Additional class for component |
+| attrs | `Record` | `{}` | Additional attributes |
+
+## Affix Slots
+
+| Name | Description |
+| ------- | ------------------------- |
+| default | Customize default content |
diff --git a/docs/example/affix/basic.svelte b/docs/example/affix/basic.svelte
new file mode 100644
index 00000000..d1b363af
--- /dev/null
+++ b/docs/example/affix/basic.svelte
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+ top 120px triggerTop 60px
+
+
+
+
+
+
+
+
+ bottom 120px triggerBottom 60px
+
+
+
+
diff --git a/docs/example/affix/position.svelte b/docs/example/affix/position.svelte
new file mode 100644
index 00000000..0500d82b
--- /dev/null
+++ b/docs/example/affix/position.svelte
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+ triggerTop 50px
+
+
+
+
+
+ triggerBottom 60px
+
+
+
+
+
diff --git a/package.json b/package.json
index 2dcfe287..3213aee5 100644
--- a/package.json
+++ b/package.json
@@ -131,7 +131,8 @@
"baiwusanyu-utils": "^1.0.16",
"clsx": "^2.0.0",
"@ikun-ui/tabs": "workspace:*",
- "@ikun-ui/carousel": "workspace:*"
+ "@ikun-ui/carousel": "workspace:*",
+ "@ikun-ui/affix": "workspace:*"
},
"devDependencies": {
"@sveltejs/adapter-auto": "^2.1.1",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 0a23cdd2..36b66193 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -8,6 +8,9 @@ importers:
.:
dependencies:
+ '@ikun-ui/affix':
+ specifier: workspace:*
+ version: link:components/Affix
'@ikun-ui/alert':
specifier: workspace:*
version: link:components/Alert
@@ -295,6 +298,34 @@ importers:
specifier: ^0.34.6
version: 0.34.6(@vitest/ui@0.34.7)(jsdom@23.0.1)
+ components/Affix:
+ dependencies:
+ '@ikun-ui/icon':
+ specifier: workspace:*
+ version: link:../Icon
+ '@ikun-ui/utils':
+ specifier: workspace:*
+ version: link:../../utils
+ baiwusanyu-utils:
+ specifier: ^1.0.16
+ version: 1.0.16(ansi-colors@4.1.3)(moment@2.29.4)
+ clsx:
+ specifier: ^2.0.0
+ version: 2.0.0
+ devDependencies:
+ '@tsconfig/svelte':
+ specifier: ^5.0.2
+ version: 5.0.2
+ svelte-strip:
+ specifier: ^2.0.0
+ version: 2.0.0(@babel/core@7.23.5)(postcss@8.4.32)(svelte@3.59.2)
+ tslib:
+ specifier: ^2.6.2
+ version: 2.6.2
+ typescript:
+ specifier: ^5.3.2
+ version: 5.3.2
+
components/Alert:
dependencies:
'@ikun-ui/icon':
@@ -2616,7 +2647,7 @@ packages:
dev: true
/@esbuild/android-arm64@0.19.8:
- resolution: {integrity: sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA==}
+ resolution: {integrity: sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA==, tarball: https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.8.tgz}
engines: {node: '>=12'}
cpu: [arm64]
os: [android]
@@ -2625,7 +2656,7 @@ packages:
optional: true
/@esbuild/android-arm@0.19.8:
- resolution: {integrity: sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA==}
+ resolution: {integrity: sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA==, tarball: https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.8.tgz}
engines: {node: '>=12'}
cpu: [arm]
os: [android]
@@ -2634,7 +2665,7 @@ packages:
optional: true
/@esbuild/android-x64@0.19.8:
- resolution: {integrity: sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A==}
+ resolution: {integrity: sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A==, tarball: https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.8.tgz}
engines: {node: '>=12'}
cpu: [x64]
os: [android]
@@ -2643,7 +2674,7 @@ packages:
optional: true
/@esbuild/darwin-arm64@0.19.8:
- resolution: {integrity: sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw==}
+ resolution: {integrity: sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw==, tarball: https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.8.tgz}
engines: {node: '>=12'}
cpu: [arm64]
os: [darwin]
@@ -2652,7 +2683,7 @@ packages:
optional: true
/@esbuild/darwin-x64@0.19.8:
- resolution: {integrity: sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q==}
+ resolution: {integrity: sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q==, tarball: https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.8.tgz}
engines: {node: '>=12'}
cpu: [x64]
os: [darwin]
@@ -2661,7 +2692,7 @@ packages:
optional: true
/@esbuild/freebsd-arm64@0.19.8:
- resolution: {integrity: sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw==}
+ resolution: {integrity: sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw==, tarball: https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.8.tgz}
engines: {node: '>=12'}
cpu: [arm64]
os: [freebsd]
@@ -2670,7 +2701,7 @@ packages:
optional: true
/@esbuild/freebsd-x64@0.19.8:
- resolution: {integrity: sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg==}
+ resolution: {integrity: sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg==, tarball: https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.8.tgz}
engines: {node: '>=12'}
cpu: [x64]
os: [freebsd]
@@ -2679,7 +2710,7 @@ packages:
optional: true
/@esbuild/linux-arm64@0.19.8:
- resolution: {integrity: sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ==}
+ resolution: {integrity: sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ==, tarball: https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.8.tgz}
engines: {node: '>=12'}
cpu: [arm64]
os: [linux]
@@ -2688,7 +2719,7 @@ packages:
optional: true
/@esbuild/linux-arm@0.19.8:
- resolution: {integrity: sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ==}
+ resolution: {integrity: sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ==, tarball: https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.8.tgz}
engines: {node: '>=12'}
cpu: [arm]
os: [linux]
@@ -2697,7 +2728,7 @@ packages:
optional: true
/@esbuild/linux-ia32@0.19.8:
- resolution: {integrity: sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ==}
+ resolution: {integrity: sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ==, tarball: https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.8.tgz}
engines: {node: '>=12'}
cpu: [ia32]
os: [linux]
@@ -2706,7 +2737,7 @@ packages:
optional: true
/@esbuild/linux-loong64@0.19.8:
- resolution: {integrity: sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ==}
+ resolution: {integrity: sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ==, tarball: https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.8.tgz}
engines: {node: '>=12'}
cpu: [loong64]
os: [linux]
@@ -2715,7 +2746,7 @@ packages:
optional: true
/@esbuild/linux-mips64el@0.19.8:
- resolution: {integrity: sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q==}
+ resolution: {integrity: sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q==, tarball: https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.8.tgz}
engines: {node: '>=12'}
cpu: [mips64el]
os: [linux]
@@ -2724,7 +2755,7 @@ packages:
optional: true
/@esbuild/linux-ppc64@0.19.8:
- resolution: {integrity: sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg==}
+ resolution: {integrity: sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg==, tarball: https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.8.tgz}
engines: {node: '>=12'}
cpu: [ppc64]
os: [linux]
@@ -2733,7 +2764,7 @@ packages:
optional: true
/@esbuild/linux-riscv64@0.19.8:
- resolution: {integrity: sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg==}
+ resolution: {integrity: sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg==, tarball: https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.8.tgz}
engines: {node: '>=12'}
cpu: [riscv64]
os: [linux]
@@ -2742,7 +2773,7 @@ packages:
optional: true
/@esbuild/linux-s390x@0.19.8:
- resolution: {integrity: sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg==}
+ resolution: {integrity: sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg==, tarball: https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.8.tgz}
engines: {node: '>=12'}
cpu: [s390x]
os: [linux]
@@ -2751,7 +2782,7 @@ packages:
optional: true
/@esbuild/linux-x64@0.19.8:
- resolution: {integrity: sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==}
+ resolution: {integrity: sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==, tarball: https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.8.tgz}
engines: {node: '>=12'}
cpu: [x64]
os: [linux]
@@ -2760,7 +2791,7 @@ packages:
optional: true
/@esbuild/netbsd-x64@0.19.8:
- resolution: {integrity: sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw==}
+ resolution: {integrity: sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw==, tarball: https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.8.tgz}
engines: {node: '>=12'}
cpu: [x64]
os: [netbsd]
@@ -2769,7 +2800,7 @@ packages:
optional: true
/@esbuild/openbsd-x64@0.19.8:
- resolution: {integrity: sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ==}
+ resolution: {integrity: sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ==, tarball: https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.8.tgz}
engines: {node: '>=12'}
cpu: [x64]
os: [openbsd]
@@ -2778,7 +2809,7 @@ packages:
optional: true
/@esbuild/sunos-x64@0.19.8:
- resolution: {integrity: sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w==}
+ resolution: {integrity: sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w==, tarball: https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.8.tgz}
engines: {node: '>=12'}
cpu: [x64]
os: [sunos]
@@ -2787,7 +2818,7 @@ packages:
optional: true
/@esbuild/win32-arm64@0.19.8:
- resolution: {integrity: sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg==}
+ resolution: {integrity: sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg==, tarball: https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.8.tgz}
engines: {node: '>=12'}
cpu: [arm64]
os: [win32]
@@ -2796,7 +2827,7 @@ packages:
optional: true
/@esbuild/win32-ia32@0.19.8:
- resolution: {integrity: sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw==}
+ resolution: {integrity: sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw==, tarball: https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.8.tgz}
engines: {node: '>=12'}
cpu: [ia32]
os: [win32]
@@ -2805,7 +2836,7 @@ packages:
optional: true
/@esbuild/win32-x64@0.19.8:
- resolution: {integrity: sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA==}
+ resolution: {integrity: sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA==, tarball: https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.8.tgz}
engines: {node: '>=12'}
cpu: [x64]
os: [win32]
@@ -2974,7 +3005,7 @@ packages:
dev: true
/@pkgjs/parseargs@0.11.0:
- resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
+ resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, tarball: https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz}
engines: {node: '>=14'}
requiresBuild: true
dev: true
@@ -2985,7 +3016,7 @@ packages:
dev: true
/@popperjs/core@2.11.8:
- resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==}
+ resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==, tarball: https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz}
/@rollup/pluginutils@5.0.5:
resolution: {integrity: sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==}
@@ -3016,7 +3047,7 @@ packages:
dev: true
/@rollup/rollup-android-arm-eabi@4.6.0:
- resolution: {integrity: sha512-keHkkWAe7OtdALGoutLY3utvthkGF+Y17ws9LYT8pxMBYXaCoH/8dXS2uzo6e8+sEhY7y/zi5RFo22Dy2lFpDw==}
+ resolution: {integrity: sha512-keHkkWAe7OtdALGoutLY3utvthkGF+Y17ws9LYT8pxMBYXaCoH/8dXS2uzo6e8+sEhY7y/zi5RFo22Dy2lFpDw==, tarball: https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.6.0.tgz}
cpu: [arm]
os: [android]
requiresBuild: true
@@ -3024,7 +3055,7 @@ packages:
optional: true
/@rollup/rollup-android-arm64@4.6.0:
- resolution: {integrity: sha512-y3Kt+34smKQNWilicPbBz/MXEY7QwDzMFNgwEWeYiOhUt9MTWKjHqe3EVkXwT2fR7izOvHpDWZ0o2IyD9SWX7A==}
+ resolution: {integrity: sha512-y3Kt+34smKQNWilicPbBz/MXEY7QwDzMFNgwEWeYiOhUt9MTWKjHqe3EVkXwT2fR7izOvHpDWZ0o2IyD9SWX7A==, tarball: https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.6.0.tgz}
cpu: [arm64]
os: [android]
requiresBuild: true
@@ -3032,7 +3063,7 @@ packages:
optional: true
/@rollup/rollup-darwin-arm64@4.6.0:
- resolution: {integrity: sha512-oLzzxcUIHltHxOCmaXl+pkIlU+uhSxef5HfntW7RsLh1eHm+vJzjD9Oo4oUKso4YuP4PpbFJNlZjJuOrxo8dPg==}
+ resolution: {integrity: sha512-oLzzxcUIHltHxOCmaXl+pkIlU+uhSxef5HfntW7RsLh1eHm+vJzjD9Oo4oUKso4YuP4PpbFJNlZjJuOrxo8dPg==, tarball: https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.6.0.tgz}
cpu: [arm64]
os: [darwin]
requiresBuild: true
@@ -3040,7 +3071,7 @@ packages:
optional: true
/@rollup/rollup-darwin-x64@4.6.0:
- resolution: {integrity: sha512-+ANnmjkcOBaV25n0+M0Bere3roeVAnwlKW65qagtuAfIxXF9YxUneRyAn/RDcIdRa7QrjRNJL3jR7T43ObGe8Q==}
+ resolution: {integrity: sha512-+ANnmjkcOBaV25n0+M0Bere3roeVAnwlKW65qagtuAfIxXF9YxUneRyAn/RDcIdRa7QrjRNJL3jR7T43ObGe8Q==, tarball: https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.6.0.tgz}
cpu: [x64]
os: [darwin]
requiresBuild: true
@@ -3048,7 +3079,7 @@ packages:
optional: true
/@rollup/rollup-linux-arm-gnueabihf@4.6.0:
- resolution: {integrity: sha512-tBTSIkjSVUyrekddpkAqKOosnj1Fc0ZY0rJL2bIEWPKqlEQk0paORL9pUIlt7lcGJi3LzMIlUGXvtNi1Z6MOCQ==}
+ resolution: {integrity: sha512-tBTSIkjSVUyrekddpkAqKOosnj1Fc0ZY0rJL2bIEWPKqlEQk0paORL9pUIlt7lcGJi3LzMIlUGXvtNi1Z6MOCQ==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.6.0.tgz}
cpu: [arm]
os: [linux]
requiresBuild: true
@@ -3056,7 +3087,7 @@ packages:
optional: true
/@rollup/rollup-linux-arm64-gnu@4.6.0:
- resolution: {integrity: sha512-Ed8uJI3kM11de9S0j67wAV07JUNhbAqIrDYhQBrQW42jGopgheyk/cdcshgGO4fW5Wjq97COCY/BHogdGvKVNQ==}
+ resolution: {integrity: sha512-Ed8uJI3kM11de9S0j67wAV07JUNhbAqIrDYhQBrQW42jGopgheyk/cdcshgGO4fW5Wjq97COCY/BHogdGvKVNQ==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.6.0.tgz}
cpu: [arm64]
os: [linux]
requiresBuild: true
@@ -3064,7 +3095,7 @@ packages:
optional: true
/@rollup/rollup-linux-arm64-musl@4.6.0:
- resolution: {integrity: sha512-mZoNQ/qK4D7SSY8v6kEsAAyDgznzLLuSFCA3aBHZTmf3HP/dW4tNLTtWh9+LfyO0Z1aUn+ecpT7IQ3WtIg3ViQ==}
+ resolution: {integrity: sha512-mZoNQ/qK4D7SSY8v6kEsAAyDgznzLLuSFCA3aBHZTmf3HP/dW4tNLTtWh9+LfyO0Z1aUn+ecpT7IQ3WtIg3ViQ==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.6.0.tgz}
cpu: [arm64]
os: [linux]
requiresBuild: true
@@ -3072,7 +3103,7 @@ packages:
optional: true
/@rollup/rollup-linux-x64-gnu@4.6.0:
- resolution: {integrity: sha512-rouezFHpwCqdEXsqAfNsTgSWO0FoZ5hKv5p+TGO5KFhyN/dvYXNMqMolOb8BkyKcPqjYRBeT+Z6V3aM26rPaYg==}
+ resolution: {integrity: sha512-rouezFHpwCqdEXsqAfNsTgSWO0FoZ5hKv5p+TGO5KFhyN/dvYXNMqMolOb8BkyKcPqjYRBeT+Z6V3aM26rPaYg==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.6.0.tgz}
cpu: [x64]
os: [linux]
requiresBuild: true
@@ -3080,7 +3111,7 @@ packages:
optional: true
/@rollup/rollup-linux-x64-musl@4.6.0:
- resolution: {integrity: sha512-Bbm+fyn3S6u51urfj3YnqBXg5vI2jQPncRRELaucmhBVyZkbWClQ1fEsRmdnCPpQOQfkpg9gZArvtMVkOMsh1w==}
+ resolution: {integrity: sha512-Bbm+fyn3S6u51urfj3YnqBXg5vI2jQPncRRELaucmhBVyZkbWClQ1fEsRmdnCPpQOQfkpg9gZArvtMVkOMsh1w==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.6.0.tgz}
cpu: [x64]
os: [linux]
requiresBuild: true
@@ -3088,7 +3119,7 @@ packages:
optional: true
/@rollup/rollup-win32-arm64-msvc@4.6.0:
- resolution: {integrity: sha512-+MRMcyx9L2kTrTUzYmR61+XVsliMG4odFb5UmqtiT8xOfEicfYAGEuF/D1Pww1+uZkYhBqAHpvju7VN+GnC3ng==}
+ resolution: {integrity: sha512-+MRMcyx9L2kTrTUzYmR61+XVsliMG4odFb5UmqtiT8xOfEicfYAGEuF/D1Pww1+uZkYhBqAHpvju7VN+GnC3ng==, tarball: https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.6.0.tgz}
cpu: [arm64]
os: [win32]
requiresBuild: true
@@ -3096,7 +3127,7 @@ packages:
optional: true
/@rollup/rollup-win32-ia32-msvc@4.6.0:
- resolution: {integrity: sha512-rxfeE6K6s/Xl2HGeK6cO8SiQq3k/3BYpw7cfhW5Bk2euXNEpuzi2cc7llxx1si1QgwfjNtdRNTGqdBzGlFZGFw==}
+ resolution: {integrity: sha512-rxfeE6K6s/Xl2HGeK6cO8SiQq3k/3BYpw7cfhW5Bk2euXNEpuzi2cc7llxx1si1QgwfjNtdRNTGqdBzGlFZGFw==, tarball: https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.6.0.tgz}
cpu: [ia32]
os: [win32]
requiresBuild: true
@@ -3104,7 +3135,7 @@ packages:
optional: true
/@rollup/rollup-win32-x64-msvc@4.6.0:
- resolution: {integrity: sha512-QqmCsydHS172Y0Kc13bkMXvipbJSvzeglBncJG3LsYJSiPlxYACz7MmJBs4A8l1oU+jfhYEIC/+AUSlvjmiX/g==}
+ resolution: {integrity: sha512-QqmCsydHS172Y0Kc13bkMXvipbJSvzeglBncJG3LsYJSiPlxYACz7MmJBs4A8l1oU+jfhYEIC/+AUSlvjmiX/g==, tarball: https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.6.0.tgz}
cpu: [x64]
os: [win32]
requiresBuild: true
@@ -3940,7 +3971,7 @@ packages:
dev: true
/ansi-colors@4.1.3:
- resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
+ resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==, tarball: https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz}
engines: {node: '>=6'}
/ansi-escapes@6.2.0:
@@ -5134,7 +5165,7 @@ packages:
dev: true
/fsevents@2.3.3:
- resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, tarball: https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin]
requiresBuild: true
@@ -6249,7 +6280,7 @@ packages:
dev: true
/minimatch@5.1.6:
- resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
+ resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==, tarball: https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz}
engines: {node: '>=10'}
dependencies:
brace-expansion: 2.0.1
@@ -6281,7 +6312,7 @@ packages:
dev: true
/minipass@3.3.6:
- resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
+ resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==, tarball: https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz}
engines: {node: '>=8'}
dependencies:
yallist: 4.0.0
@@ -6293,7 +6324,7 @@ packages:
dev: true
/minipass@5.0.0:
- resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
+ resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==, tarball: https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz}
engines: {node: '>=8'}
dev: true
@@ -6337,7 +6368,7 @@ packages:
dev: true
/moment@2.29.4:
- resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==}
+ resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==, tarball: https://registry.npmjs.org/moment/-/moment-2.29.4.tgz}
/mri@1.2.0:
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
@@ -7123,7 +7154,7 @@ packages:
dev: true
/search-insights@2.9.0:
- resolution: {integrity: sha512-bkWW9nIHOFkLwjQ1xqVaMbjjO5vhP26ERsH9Y3pKr8imthofEFIxlnOabkmGcw6ksRj9jWidcI65vvjJH/nTGg==}
+ resolution: {integrity: sha512-bkWW9nIHOFkLwjQ1xqVaMbjjO5vhP26ERsH9Y3pKr8imthofEFIxlnOabkmGcw6ksRj9jWidcI65vvjJH/nTGg==, tarball: https://registry.npmjs.org/search-insights/-/search-insights-2.9.0.tgz}
dev: true
/semver@5.7.2:
@@ -7616,7 +7647,7 @@ packages:
'@popperjs/core': 2.11.8
svelte: 4.2.8
- /svelte-preprocess@5.1.2(@babel/core@7.23.5)(postcss@8.4.32)(svelte@3.59.2)(typescript@5.3.2):
+ /svelte-preprocess@5.1.2(@babel/core@7.23.5)(postcss@8.4.32)(svelte@4.2.8)(typescript@5.3.2):
resolution: {integrity: sha512-XF0aliMAcYnP4hLETvB6HRAMnaL09ASYT1Z2I1Gwu0nz6xbdg/dSgAEthtFZJA4AKrNhFDFdmUDO+H9d/6xg5g==}
engines: {node: '>= 14.10.0'}
requiresBuild: true
@@ -7661,13 +7692,13 @@ packages:
postcss: 8.4.32
sorcery: 0.11.0
strip-indent: 3.0.0
- svelte: 3.59.2
+ svelte: 4.2.8
typescript: 5.3.2
dev: true
- /svelte-preprocess@5.1.2(@babel/core@7.23.5)(postcss@8.4.32)(svelte@4.2.8)(typescript@5.3.2):
- resolution: {integrity: sha512-XF0aliMAcYnP4hLETvB6HRAMnaL09ASYT1Z2I1Gwu0nz6xbdg/dSgAEthtFZJA4AKrNhFDFdmUDO+H9d/6xg5g==}
- engines: {node: '>= 14.10.0'}
+ /svelte-preprocess@5.1.3(@babel/core@7.23.5)(postcss@8.4.32)(svelte@3.59.2)(typescript@5.3.2):
+ resolution: {integrity: sha512-xxAkmxGHT+J/GourS5mVJeOXZzne1FR5ljeOUAMXUkfEhkLEllRreXpbl3dIYJlcJRfL1LO1uIAPpBpBfiqGPw==, tarball: https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.1.3.tgz}
+ engines: {node: '>= 16.0.0', pnpm: ^8.0.0}
requiresBuild: true
peerDependencies:
'@babel/core': ^7.10.2
@@ -7706,11 +7737,11 @@ packages:
'@babel/core': 7.23.5
'@types/pug': 2.0.8
detect-indent: 6.1.0
- magic-string: 0.27.0
+ magic-string: 0.30.5
postcss: 8.4.32
sorcery: 0.11.0
strip-indent: 3.0.0
- svelte: 4.2.8
+ svelte: 3.59.2
typescript: 5.3.2
dev: true
@@ -7723,7 +7754,7 @@ packages:
glob: 9.3.5
minimatch: 7.4.6
svelte: 3.59.2
- svelte-preprocess: 5.1.2(@babel/core@7.23.5)(postcss@8.4.32)(svelte@3.59.2)(typescript@5.3.2)
+ svelte-preprocess: 5.1.3(@babel/core@7.23.5)(postcss@8.4.32)(svelte@3.59.2)(typescript@5.3.2)
typescript: 5.3.2
yargs: 17.7.2
transitivePeerDependencies:
@@ -7775,7 +7806,7 @@ packages:
dev: true
/svelte@3.59.2:
- resolution: {integrity: sha512-vzSyuGr3eEoAtT/A6bmajosJZIUWySzY2CzB3w2pgPvnkUjGqlDnsNnA0PMO+mMAhuyMul6C2uuZzY6ELSkzyA==}
+ resolution: {integrity: sha512-vzSyuGr3eEoAtT/A6bmajosJZIUWySzY2CzB3w2pgPvnkUjGqlDnsNnA0PMO+mMAhuyMul6C2uuZzY6ELSkzyA==, tarball: https://registry.npmjs.org/svelte/-/svelte-3.59.2.tgz}
engines: {node: '>= 8'}
dev: true
diff --git a/preset/src/shortcuts/index.ts b/preset/src/shortcuts/index.ts
index d0f2a097..4051f893 100644
--- a/preset/src/shortcuts/index.ts
+++ b/preset/src/shortcuts/index.ts
@@ -49,7 +49,7 @@ import { getDescriptionsGridColCls } from '../rules/src/descriptions';
import { descriptionsItemShortcuts } from './src/descriptions-item';
import { getDescriptionsItemGridColStartCls } from '../rules/src/descriptions-item';
import { carouselShortcuts } from './src/carousel';
-
+import { affixShortcuts } from './src/affix';
export const defaultShortcuts = [
baseShortcuts,
commonShortcuts,
@@ -138,7 +138,9 @@ export const defaultShortcuts = [
// descriptions item
descriptionsItemShortcuts,
// carousel
- carouselShortcuts
+ carouselShortcuts,
+ // affix
+ affixShortcuts
] as UserShortcuts;
export function getSafeList() {
@@ -188,6 +190,7 @@ export function getSafeList() {
const descriptionsList = Object.keys(descriptionsShortcuts);
const descriptionsItemList = Object.keys(descriptionsItemShortcuts);
const carouselList = Object.keys(carouselShortcuts);
+ const affixlList = Object.keys(affixShortcuts);
let res = iconList
.concat(IKUN_SAFE_LIST)
.concat(comList)
@@ -234,6 +237,7 @@ export function getSafeList() {
.concat(pageList)
.concat(descriptionsList)
.concat(descriptionsItemList)
+ .concat(affixlList)
.concat(carouselList);
// rules
@@ -294,3 +298,4 @@ export { tabsShortcuts } from './src/tabs';
export { descriptionsShortcuts } from './src/descriptions';
export { descriptionsItemShortcuts } from './src/descriptions-item';
export { carouselShortcuts } from './src/carousel';
+export { affixShortcuts } from './src/affix';
diff --git a/preset/src/shortcuts/src/affix.ts b/preset/src/shortcuts/src/affix.ts
new file mode 100644
index 00000000..408bdb77
--- /dev/null
+++ b/preset/src/shortcuts/src/affix.ts
@@ -0,0 +1,4 @@
+export const affixShortcuts: Record = {
+ // affix
+ 'k-affix': '[&.k-affix--affixed]:pf [&.k-affix--affixed.k-affix--absolute-positioned]:pa'
+};