next-flow-design 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE CHANGED
@@ -198,4 +198,4 @@ Apache License
198
198
  distributed under the License is distributed on an "AS IS" BASIS,
199
199
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
200
  See the License for the specific language governing permissions and
201
- limitations under the License.
201
+ limitations under the License.
package/README.md CHANGED
@@ -1 +1,59 @@
1
- # next-flow-design
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,8 @@
1
+ import { LitElement } from 'lit-element';
2
+ export declare class NfCheckboxElement extends LitElement {
3
+ static styles: CSSStyleSheet[];
4
+ checked: boolean;
5
+ disabled: boolean;
6
+ private toggleCheckbox;
7
+ render(): import('lit-html').TemplateResult<1>;
8
+ }
@@ -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,17 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class NfInputElement extends LitElement {
3
+ static styles: CSSStyleSheet[];
4
+ value: string;
5
+ placeholder: string;
6
+ type: 'text' | 'password';
7
+ maxLength?: number;
8
+ private showPassword;
9
+ render(): import('lit-html').TemplateResult<1>;
10
+ private renderEyeIcon;
11
+ private renderEyeOffIcon;
12
+ private onInput;
13
+ private onChange;
14
+ private onKeyDown;
15
+ private togglePasswordVisibility;
16
+ connectedCallback(): void;
17
+ }
@@ -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,20 @@
1
+ import { LitElement } from 'lit';
2
+ export type Options = {
3
+ label: string;
4
+ value: string;
5
+ }[];
6
+ export declare class NfSelectElement extends LitElement {
7
+ static styles: CSSStyleSheet[];
8
+ value: string;
9
+ options: Options;
10
+ private showDropdown;
11
+ private jumpCloseFlag;
12
+ private timeoutId;
13
+ private onFocus;
14
+ private onBlur;
15
+ private onClick;
16
+ private set;
17
+ render(): import('lit-html').TemplateResult<1>;
18
+ connectedCallback(): void;
19
+ disconnectedCallback(): void;
20
+ }
@@ -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 ADDED
@@ -0,0 +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-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}
@@ -0,0 +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';
3
+ import { NfInputElement } from './components/nf-input/nf-input';
4
+ import { NfInputNumberElement } from './components/nf-input-number/nf-input-number';
5
+ import { NfSelectElement, Options } from './components/nf-select/nf-select';
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 };
10
+ export type { Options };
package/dist/index.js ADDED
@@ -0,0 +1,10 @@
1
+ import { d as l, e as f, a as m, c as n, N, f as a, b as s } from "./nf-slider-CZmx94AZ.js";
2
+ export {
3
+ l as NfCheckboxElement,
4
+ f as NfColorPickerElement,
5
+ m as NfInputElement,
6
+ n as NfInputNumberElement,
7
+ N as NfSelectElement,
8
+ a as NfSliderElement,
9
+ s as NfSwitchElement
10
+ };