@vanstack/solid-ark 0.0.1

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 (47) hide show
  1. package/dist/FormDatePicker-BWrGST8J.js +433 -0
  2. package/dist/FormSelect-Dex9R5TZ.js +92 -0
  3. package/dist/button/Button.d.ts +10 -0
  4. package/dist/button/index.d.ts +2 -0
  5. package/dist/button/index.mjs +2 -0
  6. package/dist/button-C9xYlZbo.js +44 -0
  7. package/dist/data-table/DataTable.d.ts +2 -0
  8. package/dist/data-table/Pagination.d.ts +9 -0
  9. package/dist/data-table/index.d.ts +4 -0
  10. package/dist/data-table/index.mjs +251 -0
  11. package/dist/data-table/type.d.ts +59 -0
  12. package/dist/drawer/index.d.ts +2 -0
  13. package/dist/drawer/index.mjs +236 -0
  14. package/dist/drawer/manager.d.ts +9 -0
  15. package/dist/drawer/type.d.ts +34 -0
  16. package/dist/form/Form.d.ts +7 -0
  17. package/dist/form/components/FieldRenderer.d.ts +8 -0
  18. package/dist/form/components/FieldSkeleton.d.ts +1 -0
  19. package/dist/form/components/FormCheckbox.d.ts +6 -0
  20. package/dist/form/components/FormCheckboxGroup.d.ts +7 -0
  21. package/dist/form/components/FormDatePicker.d.ts +8 -0
  22. package/dist/form/components/FormInput.d.ts +7 -0
  23. package/dist/form/components/FormRadio.d.ts +7 -0
  24. package/dist/form/components/FormSelect.d.ts +8 -0
  25. package/dist/form/components/FormSwitch.d.ts +6 -0
  26. package/dist/form/components/FormTextarea.d.ts +7 -0
  27. package/dist/form/components/useDebouncedValue.d.ts +16 -0
  28. package/dist/form/components/utils.d.ts +6 -0
  29. package/dist/form/index.d.ts +2 -0
  30. package/dist/form/index.mjs +2 -0
  31. package/dist/form/type.d.ts +127 -0
  32. package/dist/form-TmnHhNkx.js +559 -0
  33. package/dist/index.d.ts +1 -0
  34. package/dist/index.mjs +0 -0
  35. package/dist/modal/index.d.ts +2 -0
  36. package/dist/modal/index.mjs +239 -0
  37. package/dist/modal/manager.d.ts +10 -0
  38. package/dist/modal/type.d.ts +32 -0
  39. package/dist/solid-ark.css +2 -0
  40. package/dist/table/Table.d.ts +2 -0
  41. package/dist/table/index.d.ts +2 -0
  42. package/dist/table/index.mjs +2 -0
  43. package/dist/table/type.d.ts +23 -0
  44. package/dist/table-B88tYpbb.js +230 -0
  45. package/dist/toast/index.d.ts +9 -0
  46. package/dist/toast/index.mjs +81 -0
  47. package/package.json +91 -0
@@ -0,0 +1,16 @@
1
+ /**
2
+ * 输入防抖:本地值即时回显,onChange 延迟 debounce 毫秒提交;
3
+ * blur 时立即 flush 未提交值;外部 value 变化(重置/外部同步)同步本地展示。
4
+ */
5
+ export declare function useDebouncedValue(p: {
6
+ debounce?: number;
7
+ onBlur: () => void;
8
+ onChange: (v: string) => void;
9
+ /** 值读取函数:保持响应式,外部 value 变化时能同步本地展示 */
10
+ value: () => unknown;
11
+ }): {
12
+ local: import('solid-js').Accessor<string>;
13
+ handleInput: (v: string) => void;
14
+ handleBlur: () => void;
15
+ handleClear: () => void;
16
+ };
@@ -0,0 +1,6 @@
1
+ import { FieldConfig } from '../type';
2
+ export declare function isFieldType<T extends FieldConfig["fieldType"]>(field: FieldConfig, type: T): field is Extract<FieldConfig, {
3
+ fieldType: T;
4
+ }>;
5
+ /** 宽度配置 → CSS 值:数字转 px,字符串原样 */
6
+ export declare function toCssWidth(width: number | string | undefined): string | undefined;
@@ -0,0 +1,2 @@
1
+ export { Form } from './Form';
2
+ export type { DatePickerStoredValue, FieldConfig, FieldControlProps, FieldRule, FieldRuleContext, FormInvalidSubmitProps, FormProps, } from './type';
@@ -0,0 +1,2 @@
1
+ import { t as e } from "../form-TmnHhNkx.js";
2
+ export { e as Form };
@@ -0,0 +1,127 @@
1
+ import { JSX } from 'solid-js';
2
+ import { z } from 'zod';
3
+ /** 跨字段校验上下文:可读取其他字段的当前值 */
4
+ export interface FieldRuleContext {
5
+ value: unknown;
6
+ /** 读取其他字段当前值,用于跨字段规则 */
7
+ getValue: (name: string) => unknown;
8
+ }
9
+ /** 校验规则:Zod schema 或同步函数(函数可访问其他字段做跨字段校验) */
10
+ export type FieldRule = ((props: FieldRuleContext) => string | undefined) | z.ZodType;
11
+ interface BaseFieldConfig {
12
+ name: string;
13
+ label?: string;
14
+ helperText?: string;
15
+ placeholder?: string;
16
+ /** 字段宽度:数字为 px(如 240),也支持字符串如 "240px" / "100%";不传时按容器默认 */
17
+ fieldWidth?: number | string;
18
+ /** 校验规则:Zod schema 或函数;函数通过 getValue 读取其他字段 */
19
+ rule?: FieldRule;
20
+ /** 这些字段变化时重新触发本字段校验(跨字段规则) */
21
+ validateListenTo?: string[];
22
+ /** 自定义控件(优先级高于 fieldType) */
23
+ control?: (props: FieldControlProps) => JSX.Element;
24
+ /** 自定义 label */
25
+ renderLabel?: (label: string) => JSX.Element;
26
+ /** 自定义 error */
27
+ renderError?: (errors: string[]) => JSX.Element;
28
+ }
29
+ export interface InputFieldConfig extends BaseFieldConfig {
30
+ fieldType: "input";
31
+ type?: "email" | "number" | "password" | "tel" | "text" | "url";
32
+ /** 浏览器自动填充语义,如 "username" / "current-password" / "new-password" */
33
+ autocomplete?: string;
34
+ /** 输入防抖毫秒数;> 0 时开启(输入即时回显,onChange/校验延迟触发),默认即时 */
35
+ debounce?: number;
36
+ /** 前置内容(图标/文字) */
37
+ prefix?: JSX.Element | string;
38
+ /** 后置内容(图标/文字) */
39
+ suffix?: JSX.Element | string;
40
+ /** 有值时显示清除按钮,点击清空输入 */
41
+ clearable?: boolean;
42
+ }
43
+ export interface TextareaFieldConfig extends BaseFieldConfig {
44
+ fieldType: "textarea";
45
+ rows?: number;
46
+ /** 输入防抖毫秒数;> 0 时开启(输入即时回显,onChange/校验延迟触发),默认即时 */
47
+ debounce?: number;
48
+ }
49
+ export interface SelectFieldConfig extends BaseFieldConfig {
50
+ fieldType: "select";
51
+ options: {
52
+ label: string;
53
+ value: string;
54
+ }[];
55
+ /** 有值时显示清除按钮,点击清空已选值 */
56
+ clearable?: boolean;
57
+ }
58
+ export interface CheckboxFieldConfig extends BaseFieldConfig {
59
+ fieldType: "checkbox";
60
+ }
61
+ export interface RadioFieldConfig extends BaseFieldConfig {
62
+ fieldType: "radio";
63
+ options: {
64
+ label: string;
65
+ value: string;
66
+ }[];
67
+ }
68
+ export interface SwitchFieldConfig extends BaseFieldConfig {
69
+ fieldType: "switch";
70
+ }
71
+ export interface CheckboxGroupFieldConfig extends BaseFieldConfig {
72
+ fieldType: "checkbox-group";
73
+ options: {
74
+ label: string;
75
+ value: string;
76
+ }[];
77
+ }
78
+ export interface DatePickerFieldConfig extends BaseFieldConfig {
79
+ fieldType: "datePicker";
80
+ /** 选择粒度:year | month | week | date | datetime,默认 date */
81
+ mode?: "date" | "datetime" | "month" | "week" | "year";
82
+ /** 范围选择,默认 false(datetime 暂不支持 range;week 本身是区间,忽略该配置) */
83
+ range?: boolean;
84
+ /** 返回值类型:string=ISO 字符串(默认);timestamp=UTC 毫秒时间戳 */
85
+ valueType?: "string" | "timestamp";
86
+ /** 每周起始日 0=周日…6=周六,week 模式默认 1(周一) */
87
+ startOfWeek?: number;
88
+ /** 相邻月份日期是否可点击,默认 true;设为 false 时面板中相邻月份的日期禁用 */
89
+ outsideDaySelectable?: boolean;
90
+ /** 区域设置,影响日历星期/月份文案,默认 "zh-CN" */
91
+ locale?: string;
92
+ /** 有值时显示清除按钮,点击清空已选值 */
93
+ clearable?: boolean;
94
+ }
95
+ /** datePicker 字段值:单值为 string/number,范围值为 string[]/number[],空值单值为 undefined、范围为 [] */
96
+ export type DatePickerStoredValue = number | number[] | string | string[] | undefined;
97
+ export type FieldConfig = CheckboxFieldConfig | CheckboxGroupFieldConfig | DatePickerFieldConfig | InputFieldConfig | RadioFieldConfig | SelectFieldConfig | SwitchFieldConfig | TextareaFieldConfig;
98
+ export interface FieldControlProps {
99
+ value: unknown;
100
+ onChange: (value: unknown) => void;
101
+ onBlur: () => void;
102
+ error?: string[];
103
+ id: string;
104
+ }
105
+ export interface FormInvalidSubmitProps<TData extends Record<string, unknown>> {
106
+ /** 提交被拦截时的表单值 */
107
+ value: TData;
108
+ /** 字段名 → 错误消息列表,只包含有错误的字段 */
109
+ errors: Record<string, string[]>;
110
+ }
111
+ export interface FormProps<TData extends Record<string, unknown>> {
112
+ /** 字段配置 */
113
+ fields: FieldConfig[];
114
+ /** 表单值:挂载时作为初始值;之后引用变化会同步进表单 */
115
+ values?: Partial<TData>;
116
+ /** 表单值变化通知:内部值变化(用户输入、外部 values 同步)时触发,配合 values 使用可实现双向绑定 */
117
+ onValuesChange?: (values: TData) => void;
118
+ /** 提交回调(仅在校验通过时触发) */
119
+ onSubmit: (props: {
120
+ value: TData;
121
+ }) => Promise<void> | void;
122
+ /** 提交被校验拦截时的回调 */
123
+ onSubmitInvalid?: (props: FormInvalidSubmitProps<TData>) => void;
124
+ /** 表单布局 class */
125
+ className?: string;
126
+ }
127
+ export {};