next-flow-design 1.0.2 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -1
- package/dist/components/nf-checkbox/nf-checkbox.d.ts +8 -0
- package/dist/components/nf-color-picker/nf-color-picker.d.ts +76 -0
- package/dist/components/nf-input-number/nf-input-number.d.ts +25 -0
- package/dist/components/nf-slider/nf-slider.d.ts +26 -0
- package/dist/components/nf-switch/nf-switch.d.ts +10 -0
- package/dist/index.css +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.js +1279 -54
- package/dist/react/components/nf-checkbox/nf-checkbox.d.ts +5 -0
- package/dist/react/components/nf-color-picker/nf-color-picker.d.ts +28 -0
- package/dist/react/components/nf-input/nf-input.d.ts +7 -0
- package/dist/react/components/nf-input-number/nf-input-number.d.ts +8 -0
- package/dist/react/components/nf-slider/nf-slider.d.ts +5 -0
- package/dist/react/components/nf-switch/nf-switch.d.ts +10 -0
- package/dist/react/index.d.ts +7 -1
- package/dist/react/index.js +1371 -7
- package/package.json +14 -11
- package/dist/nf-select-CUntTjoX.js +0 -355
package/README.md
CHANGED
|
@@ -1 +1,59 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Next Flow Design
|
|
2
|
+
|
|
3
|
+
为 Next Flow 项目设计的高性能 UI 组件库。提供原生使用,及react使用两种版本。
|
|
4
|
+
|
|
5
|
+
## Development
|
|
6
|
+
|
|
7
|
+
项目采用 lit 框架进行 Web Components 开发,并由 @lit-react 封装 react 组件。
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
├── src/ # 源代码目录
|
|
11
|
+
│ ├── components/ # Web Components 组件
|
|
12
|
+
│ │ ├── nf-input/
|
|
13
|
+
│ │ ├── nf-select/
|
|
14
|
+
│ │ └── ...
|
|
15
|
+
│ ├── react/ # React 封装
|
|
16
|
+
│ │ └── components/ # React 组件目录
|
|
17
|
+
│ │ └── ...
|
|
18
|
+
│ ├── general/ # 通用工具和样式
|
|
19
|
+
│ ├── types/ # TypeScript 类型定义
|
|
20
|
+
│ └── utils/ # 工具函数
|
|
21
|
+
├── playground/ # 开发调试环境
|
|
22
|
+
│ ├── native/ # 原生组件测试页面
|
|
23
|
+
│ └── react/ # React 组件测试页面
|
|
24
|
+
├── dist/ # 构建输出目录
|
|
25
|
+
│ ├── index.js # 原生组件入口
|
|
26
|
+
│ ├── react/index.js # React 组件入口
|
|
27
|
+
│ └── index.css # 样式文件
|
|
28
|
+
└── package.json # 项目配置
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
参考技术文档:Lit: https://lit.dev/docs/ React: https://react.dev/learn
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
## Quick Start
|
|
35
|
+
|
|
36
|
+
1. 使用 bun 作为包管理器和运行器。安装地址:https://bun.com/
|
|
37
|
+
|
|
38
|
+
```powershell
|
|
39
|
+
powershell -c "irm bun.sh/install.ps1 | iex"
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
2. 安装依赖
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
bun i
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
3. 启动 playground 调试
|
|
49
|
+
|
|
50
|
+
- 原生组件测试:
|
|
51
|
+
```bash
|
|
52
|
+
bun run dev
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
- React测试:
|
|
56
|
+
```bash
|
|
57
|
+
bun run dev:react
|
|
58
|
+
```
|
|
59
|
+
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
/**
|
|
3
|
+
* 颜色选择器组件属性接口
|
|
4
|
+
*/
|
|
5
|
+
export interface NfColorPickerProps {
|
|
6
|
+
/** 当前颜色值 */
|
|
7
|
+
value?: string;
|
|
8
|
+
/** 禁用状态 */
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
/** 禁用透明度 */
|
|
11
|
+
disabledAlpha?: boolean;
|
|
12
|
+
/** 控制面板显示状态 */
|
|
13
|
+
open?: boolean;
|
|
14
|
+
/** 显示颜色文本 */
|
|
15
|
+
showText?: boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* 颜色选择器组件事件接口
|
|
19
|
+
*/
|
|
20
|
+
export interface NfColorPickerEvents {
|
|
21
|
+
/** 颜色变化时触发 */
|
|
22
|
+
onChange: string;
|
|
23
|
+
/** 面板显示状态变化时触发 */
|
|
24
|
+
onOpenChange: boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* 颜色选择器组件JSX元素接口
|
|
28
|
+
*/
|
|
29
|
+
export interface NfColorPickerJSXElement extends NfColorPickerProps {
|
|
30
|
+
children?: any;
|
|
31
|
+
}
|
|
32
|
+
declare global {
|
|
33
|
+
namespace JSX {
|
|
34
|
+
interface IntrinsicElements {
|
|
35
|
+
'nf-color-picker': NfColorPickerJSXElement;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export declare class NfColorPickerElement extends LitElement {
|
|
40
|
+
static styles: CSSStyleSheet[];
|
|
41
|
+
value: string;
|
|
42
|
+
disabled: boolean;
|
|
43
|
+
disabledAlpha: boolean;
|
|
44
|
+
open: boolean;
|
|
45
|
+
showText: boolean;
|
|
46
|
+
private _panelVisible;
|
|
47
|
+
private _internalValue;
|
|
48
|
+
private _hsb;
|
|
49
|
+
private _panelPosition;
|
|
50
|
+
connectedCallback(): void;
|
|
51
|
+
disconnectedCallback(): void;
|
|
52
|
+
protected firstUpdated(): void;
|
|
53
|
+
protected updated(changedProperties: Map<string, unknown>): void;
|
|
54
|
+
private _updateInternalValue;
|
|
55
|
+
private _updateHSBFromHex;
|
|
56
|
+
private _generateHexFromHSB;
|
|
57
|
+
private _updatePanelPosition;
|
|
58
|
+
private _handleGlobalClick;
|
|
59
|
+
private _handleKeyDown;
|
|
60
|
+
private _openPanel;
|
|
61
|
+
private _closePanel;
|
|
62
|
+
private _togglePanel;
|
|
63
|
+
private _handleHSBChange;
|
|
64
|
+
private _handleAlphaChange;
|
|
65
|
+
private _handleColorChange;
|
|
66
|
+
private _handleHueChange;
|
|
67
|
+
private _handleSBChange;
|
|
68
|
+
private _handleAlphaChangeInput;
|
|
69
|
+
private _renderTrigger;
|
|
70
|
+
private _renderColorSelector;
|
|
71
|
+
private _renderHueSlider;
|
|
72
|
+
private _renderAlphaSlider;
|
|
73
|
+
private _renderCurrentColor;
|
|
74
|
+
private _renderPanel;
|
|
75
|
+
render(): import('lit-html').TemplateResult<1>;
|
|
76
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
export declare class NfInputNumberElement extends LitElement {
|
|
3
|
+
static styles: CSSStyleSheet[];
|
|
4
|
+
value: number;
|
|
5
|
+
controls: boolean;
|
|
6
|
+
changeOnWheel: boolean;
|
|
7
|
+
min: number | undefined;
|
|
8
|
+
max: number | undefined;
|
|
9
|
+
step: number;
|
|
10
|
+
decimalSeparator: string;
|
|
11
|
+
prefix: string;
|
|
12
|
+
suffix: string;
|
|
13
|
+
private isInputFocused;
|
|
14
|
+
render(): import('lit-html').TemplateResult<1>;
|
|
15
|
+
private formatDisplayValue;
|
|
16
|
+
private parseInputValue;
|
|
17
|
+
private clampValue;
|
|
18
|
+
private handleInput;
|
|
19
|
+
private handleChange;
|
|
20
|
+
private handleKeyDown;
|
|
21
|
+
private handleStepChange;
|
|
22
|
+
private handleWheel;
|
|
23
|
+
private handleFocus;
|
|
24
|
+
private handleBlur;
|
|
25
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
export declare class NfSliderElement extends LitElement {
|
|
3
|
+
static styles: CSSStyleSheet[];
|
|
4
|
+
value: number;
|
|
5
|
+
defaultValue: number;
|
|
6
|
+
min: number;
|
|
7
|
+
max: number;
|
|
8
|
+
step: number;
|
|
9
|
+
disabled: boolean;
|
|
10
|
+
range: boolean;
|
|
11
|
+
tooltip: boolean;
|
|
12
|
+
private _currentValue;
|
|
13
|
+
private _isDragging;
|
|
14
|
+
private _showTooltip;
|
|
15
|
+
connectedCallback(): void;
|
|
16
|
+
protected updated(changedProperties: Map<string, unknown>): void;
|
|
17
|
+
private _handleMouseDown;
|
|
18
|
+
private _handleTouchStart;
|
|
19
|
+
private _handleKeyDown;
|
|
20
|
+
private _startDrag;
|
|
21
|
+
private _handleDrag;
|
|
22
|
+
private _stopDrag;
|
|
23
|
+
private _updateValue;
|
|
24
|
+
private _getValuePercentage;
|
|
25
|
+
render(): import('lit-html').TemplateResult<1>;
|
|
26
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { LitElement } from 'lit-element';
|
|
2
|
+
export declare class NfSwitchElement extends LitElement {
|
|
3
|
+
static styles: CSSStyleSheet[];
|
|
4
|
+
checked: boolean;
|
|
5
|
+
disabled: boolean;
|
|
6
|
+
private rippleElement;
|
|
7
|
+
private toggleSwitch;
|
|
8
|
+
private createRipple;
|
|
9
|
+
render(): import('lit-html').TemplateResult<1>;
|
|
10
|
+
}
|
package/dist/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.nf{--nf-width: auto;--nf-height: 2rem;--nf-margin: 0;--nf-padding: 0 .75rem;--nf-font-size: .875rem;--nf-text-font-size: calc(var(--nf-font-size) * var(--font-scale));--nf-font-weight: 200;--nf-
|
|
1
|
+
.nf{--nf-width: auto;--nf-height: 2rem;--nf-margin: 0;--nf-padding: 0 .75rem;--nf-font-size: .875rem;--nf-text-font-size: calc(var(--nf-font-size) * var(--font-scale));--nf-font-weight: 200;--nf-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;--nf-border-radius: .5rem;--nf-primary-color: var(--primary-color);--nf-primary-color-lighter: color-mix(in srgb, var(--nf-primary-color) 80%, #ffffff);--nf-primary-color-darker: color-mix(in srgb, var(--nf-primary-color) 90%, #000000);--nf-primary-color-opacity: color-mix(in srgb, var(--nf-primary-color) 0%, transparent);--nf-transition: .16s;--nf-transition-fast: .11s;--nf-transition-slow: .3s;--nf-input-padding: 0 .75rem;--nf-switch-padding: .1rem;color:var(--nf-color);font-weight:var(--nf-font-weight);font-size:var(--nf-font-size);font-family:var(--nf-font-family),sans-serif}.nf input,.nf textarea{color:var(--nf-color);font-weight:var(--nf-font-weight);font-size:var(--nf-font-size);font-family:var(--nf-font-family),sans-serif}[nf-theme=dark].nf{--nf-color: #ffffff;--nf-background-color: #08080866;--nf-background-color-hover: #08080899;--nf-background-color-active: #080808bb;--nf-border-color: var(--nf-background-color);--nf-border-color-hover: #7e8fe8;--nf-border-color-focus: #5566dc;--nf-box-shadow-color: #5e72f900;--nf-box-shadow-color-hover: #5e72f900;--nf-box-shadow-color-focus: #5e72f933;--nf-select-icon-color: #aaaaaa;--nf-icon-color-hover: #c1c1c1;--nf-icon-color-active: #e1e1e1;--nf-dropdown-background: #141414;--nf-dropdown-shadow: #00000055;--nf-item-background-hover: #ffffff14;--nf-item-background-active: #ffffff21;--nf-focus-text-color: #ffffff77}[nf-theme=light].nf{--nf-color: #000000;--nf-background-color: #e2e2e266;--nf-background-color-hover: #e2e2e299;--nf-background-color-active: #e2e2e2bb;--nf-border-color: var(--nf-background-color);--nf-border-color-hover: #7e8fe8;--nf-border-color-focus: #5566dc;--nf-box-shadow-color: #00000000;--nf-box-shadow-color-hover: #00000000;--nf-box-shadow-color-focus: #5566dc33;--nf-select-icon-color: #6c757d;--nf-icon-color-hover: #495057;--nf-icon-color-active: #343a40;--nf-dropdown-background: #ffffff;--nf-dropdown-shadow: #00000022;--nf-item-background-hover: #f8f9fa;--nf-item-background-active: #e9ecef;--nf-focus-text-color: #495057}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
+
import { NfCheckboxElement } from './components/nf-checkbox/nf-checkbox';
|
|
2
|
+
import { NfColorPickerElement, NfColorPickerProps, NfColorPickerEvents, NfColorPickerJSXElement } from './components/nf-color-picker/nf-color-picker';
|
|
1
3
|
import { NfInputElement } from './components/nf-input/nf-input';
|
|
4
|
+
import { NfInputNumberElement } from './components/nf-input-number/nf-input-number';
|
|
2
5
|
import { NfSelectElement, Options } from './components/nf-select/nf-select';
|
|
3
|
-
|
|
6
|
+
import { NfSwitchElement } from './components/nf-switch/nf-switch';
|
|
7
|
+
import { NfSliderElement } from './components/nf-slider/nf-slider';
|
|
8
|
+
export { NfSelectElement, NfInputElement, NfSwitchElement, NfInputNumberElement, NfCheckboxElement, NfColorPickerElement, NfSliderElement };
|
|
9
|
+
export type { NfColorPickerProps, NfColorPickerEvents, NfColorPickerJSXElement };
|
|
4
10
|
export type { Options };
|