@ensolid/radix 0.0.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/dist/components/Accordion/Accordion.d.ts +79 -0
- package/dist/components/Accordion/Accordion.d.ts.map +1 -0
- package/dist/components/Accordion/Accordion.js +193 -0
- package/dist/components/Accordion/Accordion.js.map +1 -0
- package/dist/components/Accordion/index.d.ts +2 -0
- package/dist/components/Accordion/index.d.ts.map +1 -0
- package/dist/components/AlertDialog/AlertDialog.d.ts +89 -0
- package/dist/components/AlertDialog/AlertDialog.d.ts.map +1 -0
- package/dist/components/AlertDialog/AlertDialog.js +235 -0
- package/dist/components/AlertDialog/AlertDialog.js.map +1 -0
- package/dist/components/AlertDialog/index.d.ts +2 -0
- package/dist/components/AlertDialog/index.d.ts.map +1 -0
- package/dist/components/AspectRatio/AspectRatio.d.ts +14 -0
- package/dist/components/AspectRatio/AspectRatio.d.ts.map +1 -0
- package/dist/components/AspectRatio/AspectRatio.js +25 -0
- package/dist/components/AspectRatio/AspectRatio.js.map +1 -0
- package/dist/components/AspectRatio/index.d.ts +2 -0
- package/dist/components/AspectRatio/index.d.ts.map +1 -0
- package/dist/components/Avatar/Avatar.d.ts +41 -0
- package/dist/components/Avatar/Avatar.d.ts.map +1 -0
- package/dist/components/Avatar/Avatar.js +144 -0
- package/dist/components/Avatar/Avatar.js.map +1 -0
- package/dist/components/Avatar/index.d.ts +2 -0
- package/dist/components/Avatar/index.d.ts.map +1 -0
- package/dist/components/Checkbox/Checkbox.d.ts +27 -0
- package/dist/components/Checkbox/Checkbox.d.ts.map +1 -0
- package/dist/components/Checkbox/Checkbox.js +49 -0
- package/dist/components/Checkbox/Checkbox.js.map +1 -0
- package/dist/components/Checkbox/index.d.ts +2 -0
- package/dist/components/Checkbox/index.d.ts.map +1 -0
- package/dist/components/Collapsible/Collapsible.d.ts +54 -0
- package/dist/components/Collapsible/Collapsible.d.ts.map +1 -0
- package/dist/components/Collapsible/Collapsible.js +110 -0
- package/dist/components/Collapsible/Collapsible.js.map +1 -0
- package/dist/components/Collapsible/index.d.ts +2 -0
- package/dist/components/Collapsible/index.d.ts.map +1 -0
- package/dist/components/ContextMenu/ContextMenu.d.ts +89 -0
- package/dist/components/ContextMenu/ContextMenu.d.ts.map +1 -0
- package/dist/components/ContextMenu/ContextMenu.js +263 -0
- package/dist/components/ContextMenu/ContextMenu.js.map +1 -0
- package/dist/components/ContextMenu/index.d.ts +2 -0
- package/dist/components/ContextMenu/index.d.ts.map +1 -0
- package/dist/components/Dialog/Dialog.d.ts +87 -0
- package/dist/components/Dialog/Dialog.d.ts.map +1 -0
- package/dist/components/Dialog/Dialog.js +218 -0
- package/dist/components/Dialog/Dialog.js.map +1 -0
- package/dist/components/Dialog/index.d.ts +2 -0
- package/dist/components/Dialog/index.d.ts.map +1 -0
- package/dist/components/DropdownMenu/DropdownMenu.d.ts +81 -0
- package/dist/components/DropdownMenu/DropdownMenu.d.ts.map +1 -0
- package/dist/components/DropdownMenu/DropdownMenu.js +244 -0
- package/dist/components/DropdownMenu/DropdownMenu.js.map +1 -0
- package/dist/components/DropdownMenu/index.d.ts +2 -0
- package/dist/components/DropdownMenu/index.d.ts.map +1 -0
- package/dist/components/HoverCard/HoverCard.d.ts +63 -0
- package/dist/components/HoverCard/HoverCard.d.ts.map +1 -0
- package/dist/components/HoverCard/HoverCard.js +199 -0
- package/dist/components/HoverCard/HoverCard.js.map +1 -0
- package/dist/components/HoverCard/index.d.ts +2 -0
- package/dist/components/HoverCard/index.d.ts.map +1 -0
- package/dist/components/Label/Label.d.ts +14 -0
- package/dist/components/Label/Label.d.ts.map +1 -0
- package/dist/components/Label/Label.js +23 -0
- package/dist/components/Label/Label.js.map +1 -0
- package/dist/components/Label/index.d.ts +2 -0
- package/dist/components/Label/index.d.ts.map +1 -0
- package/dist/components/Menubar/Menubar.d.ts +85 -0
- package/dist/components/Menubar/Menubar.d.ts.map +1 -0
- package/dist/components/Menubar/Menubar.js +299 -0
- package/dist/components/Menubar/Menubar.js.map +1 -0
- package/dist/components/Menubar/index.d.ts +2 -0
- package/dist/components/Menubar/index.d.ts.map +1 -0
- package/dist/components/NavigationMenu/NavigationMenu.d.ts +105 -0
- package/dist/components/NavigationMenu/NavigationMenu.d.ts.map +1 -0
- package/dist/components/NavigationMenu/NavigationMenu.js +320 -0
- package/dist/components/NavigationMenu/NavigationMenu.js.map +1 -0
- package/dist/components/NavigationMenu/index.d.ts +2 -0
- package/dist/components/NavigationMenu/index.d.ts.map +1 -0
- package/dist/components/Popover/Popover.d.ts +52 -0
- package/dist/components/Popover/Popover.d.ts.map +1 -0
- package/dist/components/Popover/Popover.js +176 -0
- package/dist/components/Popover/Popover.js.map +1 -0
- package/dist/components/Popover/index.d.ts +2 -0
- package/dist/components/Popover/index.d.ts.map +1 -0
- package/dist/components/Progress/Progress.d.ts +19 -0
- package/dist/components/Progress/Progress.d.ts.map +1 -0
- package/dist/components/Progress/Progress.js +44 -0
- package/dist/components/Progress/Progress.js.map +1 -0
- package/dist/components/Progress/index.d.ts +2 -0
- package/dist/components/Progress/index.d.ts.map +1 -0
- package/dist/components/RadioGroup/RadioGroup.d.ts +54 -0
- package/dist/components/RadioGroup/RadioGroup.d.ts.map +1 -0
- package/dist/components/RadioGroup/RadioGroup.js +100 -0
- package/dist/components/RadioGroup/RadioGroup.js.map +1 -0
- package/dist/components/RadioGroup/index.d.ts +2 -0
- package/dist/components/RadioGroup/index.d.ts.map +1 -0
- package/dist/components/ScrollArea/ScrollArea.d.ts +58 -0
- package/dist/components/ScrollArea/ScrollArea.d.ts.map +1 -0
- package/dist/components/ScrollArea/ScrollArea.js +91 -0
- package/dist/components/ScrollArea/ScrollArea.js.map +1 -0
- package/dist/components/ScrollArea/index.d.ts +2 -0
- package/dist/components/ScrollArea/index.d.ts.map +1 -0
- package/dist/components/Select/Select.d.ts +80 -0
- package/dist/components/Select/Select.d.ts.map +1 -0
- package/dist/components/Select/Select.js +240 -0
- package/dist/components/Select/Select.js.map +1 -0
- package/dist/components/Select/index.d.ts +2 -0
- package/dist/components/Select/index.d.ts.map +1 -0
- package/dist/components/Separator/Separator.d.ts +15 -0
- package/dist/components/Separator/Separator.d.ts.map +1 -0
- package/dist/components/Separator/Separator.js +30 -0
- package/dist/components/Separator/Separator.js.map +1 -0
- package/dist/components/Separator/index.d.ts +2 -0
- package/dist/components/Separator/index.d.ts.map +1 -0
- package/dist/components/Slider/Slider.d.ts +37 -0
- package/dist/components/Slider/Slider.d.ts.map +1 -0
- package/dist/components/Slider/Slider.js +63 -0
- package/dist/components/Slider/Slider.js.map +1 -0
- package/dist/components/Slider/index.d.ts +2 -0
- package/dist/components/Slider/index.d.ts.map +1 -0
- package/dist/components/Switch/Switch.d.ts +27 -0
- package/dist/components/Switch/Switch.d.ts.map +1 -0
- package/dist/components/Switch/Switch.js +50 -0
- package/dist/components/Switch/Switch.js.map +1 -0
- package/dist/components/Switch/index.d.ts +2 -0
- package/dist/components/Switch/index.d.ts.map +1 -0
- package/dist/components/Tabs/Tabs.d.ts +72 -0
- package/dist/components/Tabs/Tabs.d.ts.map +1 -0
- package/dist/components/Tabs/Tabs.js +150 -0
- package/dist/components/Tabs/Tabs.js.map +1 -0
- package/dist/components/Tabs/index.d.ts +2 -0
- package/dist/components/Tabs/index.d.ts.map +1 -0
- package/dist/components/Toggle/Toggle.d.ts +22 -0
- package/dist/components/Toggle/Toggle.d.ts.map +1 -0
- package/dist/components/Toggle/Toggle.js +51 -0
- package/dist/components/Toggle/Toggle.js.map +1 -0
- package/dist/components/Toggle/index.d.ts +2 -0
- package/dist/components/Toggle/index.d.ts.map +1 -0
- package/dist/components/ToggleGroup/ToggleGroup.d.ts +67 -0
- package/dist/components/ToggleGroup/ToggleGroup.d.ts.map +1 -0
- package/dist/components/ToggleGroup/ToggleGroup.js +119 -0
- package/dist/components/ToggleGroup/ToggleGroup.js.map +1 -0
- package/dist/components/ToggleGroup/index.d.ts +2 -0
- package/dist/components/ToggleGroup/index.d.ts.map +1 -0
- package/dist/components/Toolbar/Toolbar.d.ts +82 -0
- package/dist/components/Toolbar/Toolbar.d.ts.map +1 -0
- package/dist/components/Toolbar/Toolbar.js +110 -0
- package/dist/components/Toolbar/Toolbar.js.map +1 -0
- package/dist/components/Toolbar/index.d.ts +2 -0
- package/dist/components/Toolbar/index.d.ts.map +1 -0
- package/dist/components/Tooltip/Tooltip.d.ts +56 -0
- package/dist/components/Tooltip/Tooltip.d.ts.map +1 -0
- package/dist/components/Tooltip/Tooltip.js +155 -0
- package/dist/components/Tooltip/Tooltip.js.map +1 -0
- package/dist/components/Tooltip/index.d.ts +2 -0
- package/dist/components/Tooltip/index.d.ts.map +1 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +9 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.d.ts.map +1 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.js +23 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.js.map +1 -0
- package/dist/components/VisuallyHidden/index.d.ts +2 -0
- package/dist/components/VisuallyHidden/index.d.ts.map +1 -0
- package/dist/components/index.d.ts +28 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +140 -0
- package/dist/index.js.map +1 -0
- package/package.json +97 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { template, spread, mergeProps, insert, memo, effect, style } from "solid-js/web";
|
|
2
|
+
import { splitProps } from "solid-js";
|
|
3
|
+
var _tmpl$ = /* @__PURE__ */ template(`<div role=progressbar aria-valuemin=0><div class="h-full transition-all">`), _tmpl$2 = /* @__PURE__ */ template(`<span class="absolute inset-0 flex items-center justify-center text-sm">%`);
|
|
4
|
+
const Progress = (props) => {
|
|
5
|
+
const [local, others] = splitProps(props, ["value", "max", "showValue", "class", "children"]);
|
|
6
|
+
const value = () => local.value ?? 0;
|
|
7
|
+
const max = () => local.max ?? 100;
|
|
8
|
+
const percentage = () => Math.min(Math.max(value() / max() * 100, 0), 100);
|
|
9
|
+
return (() => {
|
|
10
|
+
var _el$ = _tmpl$(), _el$2 = _el$.firstChild;
|
|
11
|
+
spread(_el$, mergeProps({
|
|
12
|
+
get ["class"]() {
|
|
13
|
+
return local.class;
|
|
14
|
+
},
|
|
15
|
+
get ["aria-valuenow"]() {
|
|
16
|
+
return value();
|
|
17
|
+
},
|
|
18
|
+
get ["aria-valuemax"]() {
|
|
19
|
+
return max();
|
|
20
|
+
},
|
|
21
|
+
get ["data-value"]() {
|
|
22
|
+
return value();
|
|
23
|
+
},
|
|
24
|
+
get ["data-max"]() {
|
|
25
|
+
return max();
|
|
26
|
+
}
|
|
27
|
+
}, others), false, true);
|
|
28
|
+
insert(_el$, (() => {
|
|
29
|
+
var _c$ = memo(() => !!local.showValue);
|
|
30
|
+
return () => _c$() && (() => {
|
|
31
|
+
var _el$3 = _tmpl$2(), _el$4 = _el$3.firstChild;
|
|
32
|
+
insert(_el$3, () => Math.round(percentage()), _el$4);
|
|
33
|
+
return _el$3;
|
|
34
|
+
})();
|
|
35
|
+
})(), null);
|
|
36
|
+
insert(_el$, () => local.children, null);
|
|
37
|
+
effect((_$p) => style(_el$2, `width: ${percentage()}%`, _$p));
|
|
38
|
+
return _el$;
|
|
39
|
+
})();
|
|
40
|
+
};
|
|
41
|
+
export {
|
|
42
|
+
Progress
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=Progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Progress.js","sources":["../../../src/components/Progress/Progress.tsx"],"sourcesContent":["import { splitProps } from 'solid-js';\nimport type { Component } from 'solid-js';\nimport type { JSX } from 'solid-js';\n\nexport interface ProgressProps extends JSX.HTMLAttributes<HTMLDivElement> {\n /**\n * 进度值(0-100)\n */\n value?: number;\n /**\n * 最大值\n * @default 100\n */\n max?: number;\n /**\n * 是否显示值\n * @default false\n */\n showValue?: boolean;\n}\n\nexport const Progress: Component<ProgressProps> = (props) => {\n const [local, others] = splitProps(props, [\n 'value',\n 'max',\n 'showValue',\n 'class',\n 'children',\n ]);\n\n const value = () => local.value ?? 0;\n const max = () => local.max ?? 100;\n const percentage = () => Math.min(Math.max((value() / max()) * 100, 0), 100);\n\n return (\n <div\n class={local.class}\n role=\"progressbar\"\n aria-valuenow={value()}\n aria-valuemin={0}\n aria-valuemax={max()}\n data-value={value()}\n data-max={max()}\n {...others}\n >\n <div\n class=\"h-full transition-all\"\n style={`width: ${percentage()}%`}\n />\n {local.showValue && (\n <span class=\"absolute inset-0 flex items-center justify-center text-sm\">\n {Math.round(percentage())}%\n </span>\n )}\n {local.children}\n </div>\n );\n};\n\n"],"names":["Progress","props","local","others","splitProps","value","max","percentage","Math","min","_el$","_tmpl$","_el$2","firstChild","_$spread","_$mergeProps","class","_$insert","_c$","_$memo","showValue","_el$3","_tmpl$2","_el$4","round","children","_$effect","_$p","_$style"],"mappings":";;;AAqBO,MAAMA,WAAsCC,CAAAA,UAAU;AAC3D,QAAM,CAACC,OAAOC,MAAM,IAAIC,WAAWH,OAAO,CACxC,SACA,OACA,aACA,SACA,UAAU,CACX;AAED,QAAMI,QAAQA,MAAMH,MAAMG,SAAS;AACnC,QAAMC,MAAMA,MAAMJ,MAAMI,OAAO;AAC/B,QAAMC,aAAaA,MAAMC,KAAKC,IAAID,KAAKF,IAAKD,MAAAA,IAAUC,IAAAA,IAAS,KAAK,CAAC,GAAG,GAAG;AAE3E,UAAA,MAAA;AAAA,QAAAI,OAAAC,OAAAA,GAAAC,QAAAF,KAAAG;AAAAC,WAAAJ,MAAAK,WAAA;AAAA,MAAA,KAAA,OAAA,IAAA;AAAA,eAEWb,MAAMc;AAAAA,MAAK;AAAA,MAAA,KAAA,eAAA,IAAA;AAAA,eAEHX,MAAAA;AAAAA,MAAO;AAAA,MAAA,KAAA,eAAA,IAAA;AAAA,eAEPC,IAAAA;AAAAA,MAAK;AAAA,MAAA,KAAA,YAAA,IAAA;AAAA,eACRD,MAAAA;AAAAA,MAAO;AAAA,MAAA,KAAA,UAAA,IAAA;AAAA,eACTC,IAAAA;AAAAA,MAAK;AAAA,IAAA,GACXH,MAAM,GAAA,OAAA,IAAA;AAAAc,WAAAP,OAAA,MAAA;AAAA,UAAAQ,MAAAC,KAAA,MAAA,CAAA,CAMTjB,MAAMkB,SAAS;AAAA,aAAA,MAAfF,IAAAA,MAAA,MAAA;AAAA,YAAAG,QAAAC,QAAAA,GAAAC,QAAAF,MAAAR;AAAAI,eAAAI,OAAA,MAEIb,KAAKgB,MAAMjB,WAAAA,CAAY,GAACgB,KAAA;AAAA,eAAAF;AAAAA,MAAA,GAAA;AAAA,IAE5B,GAAA,GAAA,IAAA;AAAAJ,WAAAP,MAAA,MACAR,MAAMuB,UAAQ,IAAA;AAAAC,WAAAC,CAAAA,QAAAC,MAAAhB,OAPN,UAAUL,YAAY,KAAGoB,GAAA,CAAA;AAAA,WAAAjB;AAAAA,EAAA,GAAA;AAUxC;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Progress/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Component, JSX as JSXTypes } from 'solid-js';
|
|
2
|
+
interface RadioGroupContextValue {
|
|
3
|
+
value: () => string | undefined;
|
|
4
|
+
setValue: (value: string) => void;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
name?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const useRadioGroupContext: () => RadioGroupContextValue;
|
|
9
|
+
export interface RadioGroupProps extends JSXTypes.HTMLAttributes<HTMLDivElement> {
|
|
10
|
+
/**
|
|
11
|
+
* 选中的值
|
|
12
|
+
*/
|
|
13
|
+
value?: string;
|
|
14
|
+
/**
|
|
15
|
+
* 默认选中的值
|
|
16
|
+
*/
|
|
17
|
+
defaultValue?: string;
|
|
18
|
+
/**
|
|
19
|
+
* 值变化回调
|
|
20
|
+
*/
|
|
21
|
+
onValueChange?: (value: string) => void;
|
|
22
|
+
/**
|
|
23
|
+
* 是否禁用
|
|
24
|
+
* @default false
|
|
25
|
+
*/
|
|
26
|
+
disabled?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* 表单字段名称
|
|
29
|
+
*/
|
|
30
|
+
name?: string;
|
|
31
|
+
/**
|
|
32
|
+
* 是否必填
|
|
33
|
+
* @default false
|
|
34
|
+
*/
|
|
35
|
+
required?: boolean;
|
|
36
|
+
}
|
|
37
|
+
export interface RadioGroupComponent extends Component<RadioGroupProps> {
|
|
38
|
+
Item: Component<RadioGroupItemProps>;
|
|
39
|
+
}
|
|
40
|
+
export declare const RadioGroup: RadioGroupComponent;
|
|
41
|
+
export interface RadioGroupItemProps extends JSXTypes.InputHTMLAttributes<HTMLInputElement> {
|
|
42
|
+
/**
|
|
43
|
+
* 选项的值
|
|
44
|
+
*/
|
|
45
|
+
value: string;
|
|
46
|
+
/**
|
|
47
|
+
* 是否禁用
|
|
48
|
+
* @default false
|
|
49
|
+
*/
|
|
50
|
+
disabled?: boolean;
|
|
51
|
+
}
|
|
52
|
+
export declare const RadioGroupItem: Component<RadioGroupItemProps>;
|
|
53
|
+
export {};
|
|
54
|
+
//# sourceMappingURL=RadioGroup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadioGroup.d.ts","sourceRoot":"","sources":["../../../src/components/RadioGroup/RadioGroup.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,GAAG,IAAI,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEhD,UAAU,sBAAsB;IAC9B,KAAK,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAID,eAAO,MAAM,oBAAoB,8BAMhC,CAAC;AAEF,MAAM,WAAW,eAAgB,SAAQ,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC;IAC9E;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAkDD,MAAM,WAAW,mBAAoB,SAAQ,SAAS,CAAC,eAAe,CAAC;IACrE,IAAI,EAAE,SAAS,CAAC,mBAAmB,CAAC,CAAC;CACtC;AAED,eAAO,MAAM,UAAU,EAEjB,mBAAmB,CAAC;AAE1B,MAAM,WAAW,mBAAoB,SAAQ,QAAQ,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;IACzF;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,cAAc,EAAE,SAAS,CAAC,mBAAmB,CA4BzD,CAAC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { createComponent, template, spread, mergeProps, insert } from "solid-js/web";
|
|
2
|
+
import { createContext, splitProps, createSignal, useContext } from "solid-js";
|
|
3
|
+
var _tmpl$ = /* @__PURE__ */ template(`<div role=radiogroup>`), _tmpl$2 = /* @__PURE__ */ template(`<input type=radio>`);
|
|
4
|
+
const RadioGroupContext = createContext();
|
|
5
|
+
const useRadioGroupContext = () => {
|
|
6
|
+
const context = useContext(RadioGroupContext);
|
|
7
|
+
if (!context) {
|
|
8
|
+
throw new Error("RadioGroup.Item must be used within RadioGroup");
|
|
9
|
+
}
|
|
10
|
+
return context;
|
|
11
|
+
};
|
|
12
|
+
const RadioGroupBase = (props) => {
|
|
13
|
+
const [local, others] = splitProps(props, ["value", "defaultValue", "onValueChange", "disabled", "name", "required", "class", "children"]);
|
|
14
|
+
const [internalValue, setInternalValue] = createSignal(local.value ?? local.defaultValue);
|
|
15
|
+
const isControlled = () => local.value !== void 0;
|
|
16
|
+
const value = () => isControlled() ? local.value : internalValue();
|
|
17
|
+
const handleValueChange = (newValue) => {
|
|
18
|
+
if (!isControlled()) {
|
|
19
|
+
setInternalValue(newValue);
|
|
20
|
+
}
|
|
21
|
+
local.onValueChange?.(newValue);
|
|
22
|
+
};
|
|
23
|
+
const contextValue = {
|
|
24
|
+
value,
|
|
25
|
+
setValue: handleValueChange,
|
|
26
|
+
disabled: local.disabled,
|
|
27
|
+
name: local.name
|
|
28
|
+
};
|
|
29
|
+
return createComponent(RadioGroupContext.Provider, {
|
|
30
|
+
value: contextValue,
|
|
31
|
+
get children() {
|
|
32
|
+
var _el$ = _tmpl$();
|
|
33
|
+
spread(_el$, mergeProps({
|
|
34
|
+
get ["class"]() {
|
|
35
|
+
return local.class;
|
|
36
|
+
},
|
|
37
|
+
get ["aria-required"]() {
|
|
38
|
+
return local.required;
|
|
39
|
+
},
|
|
40
|
+
get ["data-disabled"]() {
|
|
41
|
+
return local.disabled ? "" : void 0;
|
|
42
|
+
}
|
|
43
|
+
}, others), false, true);
|
|
44
|
+
insert(_el$, () => local.children);
|
|
45
|
+
return _el$;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
const RadioGroup = Object.assign(RadioGroupBase, {
|
|
50
|
+
Item: null
|
|
51
|
+
});
|
|
52
|
+
const RadioGroupItem = (props) => {
|
|
53
|
+
const [local, others] = splitProps(props, ["value", "disabled", "class", "id"]);
|
|
54
|
+
const context = useRadioGroupContext();
|
|
55
|
+
const checked = () => context.value() === local.value;
|
|
56
|
+
const disabled = () => local.disabled ?? context.disabled;
|
|
57
|
+
const handleChange = () => {
|
|
58
|
+
if (!disabled()) {
|
|
59
|
+
context.setValue(local.value);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
return (() => {
|
|
63
|
+
var _el$2 = _tmpl$2();
|
|
64
|
+
_el$2.addEventListener("change", handleChange);
|
|
65
|
+
spread(_el$2, mergeProps({
|
|
66
|
+
get id() {
|
|
67
|
+
return local.id;
|
|
68
|
+
},
|
|
69
|
+
get name() {
|
|
70
|
+
return context.name;
|
|
71
|
+
},
|
|
72
|
+
get value() {
|
|
73
|
+
return local.value;
|
|
74
|
+
},
|
|
75
|
+
get checked() {
|
|
76
|
+
return checked();
|
|
77
|
+
},
|
|
78
|
+
get disabled() {
|
|
79
|
+
return disabled();
|
|
80
|
+
},
|
|
81
|
+
get ["class"]() {
|
|
82
|
+
return local.class;
|
|
83
|
+
},
|
|
84
|
+
get ["data-state"]() {
|
|
85
|
+
return checked() ? "checked" : "unchecked";
|
|
86
|
+
},
|
|
87
|
+
get ["aria-checked"]() {
|
|
88
|
+
return checked();
|
|
89
|
+
}
|
|
90
|
+
}, others), false, false);
|
|
91
|
+
return _el$2;
|
|
92
|
+
})();
|
|
93
|
+
};
|
|
94
|
+
RadioGroup.Item = RadioGroupItem;
|
|
95
|
+
export {
|
|
96
|
+
RadioGroup,
|
|
97
|
+
RadioGroupItem,
|
|
98
|
+
useRadioGroupContext
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=RadioGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadioGroup.js","sources":["../../../src/components/RadioGroup/RadioGroup.tsx"],"sourcesContent":["import { splitProps, createSignal, createContext, useContext } from 'solid-js';\nimport type { Component } from 'solid-js';\nimport type { JSX as JSXTypes } from 'solid-js';\n\ninterface RadioGroupContextValue {\n value: () => string | undefined;\n setValue: (value: string) => void;\n disabled?: boolean;\n name?: string;\n}\n\nconst RadioGroupContext = createContext<RadioGroupContextValue>();\n\nexport const useRadioGroupContext = () => {\n const context = useContext(RadioGroupContext);\n if (!context) {\n throw new Error('RadioGroup.Item must be used within RadioGroup');\n }\n return context;\n};\n\nexport interface RadioGroupProps extends JSXTypes.HTMLAttributes<HTMLDivElement> {\n /**\n * 选中的值\n */\n value?: string;\n /**\n * 默认选中的值\n */\n defaultValue?: string;\n /**\n * 值变化回调\n */\n onValueChange?: (value: string) => void;\n /**\n * 是否禁用\n * @default false\n */\n disabled?: boolean;\n /**\n * 表单字段名称\n */\n name?: string;\n /**\n * 是否必填\n * @default false\n */\n required?: boolean;\n}\n\nconst RadioGroupBase: Component<RadioGroupProps> = (props) => {\n const [local, others] = splitProps(props, [\n 'value',\n 'defaultValue',\n 'onValueChange',\n 'disabled',\n 'name',\n 'required',\n 'class',\n 'children',\n ]);\n\n const [internalValue, setInternalValue] = createSignal<string | undefined>(\n local.value ?? local.defaultValue\n );\n\n const isControlled = () => local.value !== undefined;\n const value = () => (isControlled() ? local.value : internalValue());\n\n const handleValueChange = (newValue: string) => {\n if (!isControlled()) {\n setInternalValue(newValue);\n }\n local.onValueChange?.(newValue);\n };\n\n const contextValue: RadioGroupContextValue = {\n value,\n setValue: handleValueChange,\n disabled: local.disabled,\n name: local.name,\n };\n\n return (\n <RadioGroupContext.Provider value={contextValue}>\n <div\n role=\"radiogroup\"\n class={local.class}\n aria-required={local.required}\n data-disabled={local.disabled ? '' : undefined}\n {...others}\n >\n {local.children}\n </div>\n </RadioGroupContext.Provider>\n );\n};\n\nexport interface RadioGroupComponent extends Component<RadioGroupProps> {\n Item: Component<RadioGroupItemProps>;\n}\n\nexport const RadioGroup = Object.assign(RadioGroupBase, {\n Item: null as unknown as Component<RadioGroupItemProps>,\n}) as RadioGroupComponent;\n\nexport interface RadioGroupItemProps extends JSXTypes.InputHTMLAttributes<HTMLInputElement> {\n /**\n * 选项的值\n */\n value: string;\n /**\n * 是否禁用\n * @default false\n */\n disabled?: boolean;\n}\n\nexport const RadioGroupItem: Component<RadioGroupItemProps> = (props) => {\n const [local, others] = splitProps(props, ['value', 'disabled', 'class', 'id']);\n const context = useRadioGroupContext();\n\n const checked = () => context.value() === local.value;\n const disabled = () => local.disabled ?? context.disabled;\n\n const handleChange = () => {\n if (!disabled()) {\n context.setValue(local.value);\n }\n };\n\n return (\n <input\n type=\"radio\"\n id={local.id}\n name={context.name}\n value={local.value}\n checked={checked()}\n disabled={disabled()}\n class={local.class}\n onChange={handleChange}\n data-state={checked() ? 'checked' : 'unchecked'}\n aria-checked={checked()}\n {...others}\n />\n );\n};\n\nRadioGroup.Item = RadioGroupItem;\n\n"],"names":["RadioGroupContext","createContext","useRadioGroupContext","context","useContext","Error","RadioGroupBase","props","local","others","splitProps","internalValue","setInternalValue","createSignal","value","defaultValue","isControlled","undefined","handleValueChange","newValue","onValueChange","contextValue","setValue","disabled","name","_$createComponent","Provider","children","_el$","_tmpl$","_$spread","_$mergeProps","class","required","_$insert","RadioGroup","Object","assign","Item","RadioGroupItem","checked","handleChange","_el$2","_tmpl$2","addEventListener","id"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/RadioGroup/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Component, JSX } from 'solid-js';
|
|
2
|
+
export interface ScrollAreaProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
/**
|
|
4
|
+
* 子元素
|
|
5
|
+
*/
|
|
6
|
+
children?: JSX.Element;
|
|
7
|
+
/**
|
|
8
|
+
* 滚动条方向
|
|
9
|
+
* @default 'vertical'
|
|
10
|
+
*/
|
|
11
|
+
orientation?: 'vertical' | 'horizontal' | 'both';
|
|
12
|
+
/**
|
|
13
|
+
* 类型
|
|
14
|
+
* @default 'hover'
|
|
15
|
+
*/
|
|
16
|
+
type?: 'auto' | 'always' | 'scroll' | 'hover';
|
|
17
|
+
}
|
|
18
|
+
export interface ScrollAreaComponent extends Component<ScrollAreaProps> {
|
|
19
|
+
Viewport: Component<ScrollAreaViewportProps>;
|
|
20
|
+
Scrollbar: Component<ScrollAreaScrollbarProps>;
|
|
21
|
+
Thumb: Component<ScrollAreaThumbProps>;
|
|
22
|
+
Corner: Component<ScrollAreaCornerProps>;
|
|
23
|
+
}
|
|
24
|
+
export declare const ScrollArea: ScrollAreaComponent;
|
|
25
|
+
export interface ScrollAreaViewportProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
26
|
+
/**
|
|
27
|
+
* 子元素
|
|
28
|
+
*/
|
|
29
|
+
children?: JSX.Element;
|
|
30
|
+
}
|
|
31
|
+
export declare const ScrollAreaViewport: Component<ScrollAreaViewportProps>;
|
|
32
|
+
export interface ScrollAreaScrollbarProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
33
|
+
/**
|
|
34
|
+
* 滚动条方向
|
|
35
|
+
*/
|
|
36
|
+
orientation?: 'vertical' | 'horizontal';
|
|
37
|
+
/**
|
|
38
|
+
* 是否强制显示
|
|
39
|
+
* @default false
|
|
40
|
+
*/
|
|
41
|
+
forceMount?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* 子元素
|
|
44
|
+
*/
|
|
45
|
+
children?: JSX.Element;
|
|
46
|
+
}
|
|
47
|
+
export declare const ScrollAreaScrollbar: Component<ScrollAreaScrollbarProps>;
|
|
48
|
+
export interface ScrollAreaThumbProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
49
|
+
/**
|
|
50
|
+
* 子元素
|
|
51
|
+
*/
|
|
52
|
+
children?: JSX.Element;
|
|
53
|
+
}
|
|
54
|
+
export declare const ScrollAreaThumb: Component<ScrollAreaThumbProps>;
|
|
55
|
+
export interface ScrollAreaCornerProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
56
|
+
}
|
|
57
|
+
export declare const ScrollAreaCorner: Component<ScrollAreaCornerProps>;
|
|
58
|
+
//# sourceMappingURL=ScrollArea.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScrollArea.d.ts","sourceRoot":"","sources":["../../../src/components/ScrollArea/ScrollArea.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,WAAW,eAAgB,SAAQ,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC;IACzE;;OAEG;IACH,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACvB;;;OAGG;IACH,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,MAAM,CAAC;IACjD;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;CAC/C;AAED,MAAM,WAAW,mBAAoB,SAAQ,SAAS,CAAC,eAAe,CAAC;IACrE,QAAQ,EAAE,SAAS,CAAC,uBAAuB,CAAC,CAAC;IAC7C,SAAS,EAAE,SAAS,CAAC,wBAAwB,CAAC,CAAC;IAC/C,KAAK,EAAE,SAAS,CAAC,oBAAoB,CAAC,CAAC;IACvC,MAAM,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;CAC1C;AAqBD,eAAO,MAAM,UAAU,EAKjB,mBAAmB,CAAC;AAE1B,MAAM,WAAW,uBAAwB,SAAQ,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC;IACjF;;OAEG;IACH,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,kBAAkB,EAAE,SAAS,CAAC,uBAAuB,CAYjE,CAAC;AAEF,MAAM,WAAW,wBAAyB,SAAQ,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC;IAClF;;OAEG;IACH,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,mBAAmB,EAAE,SAAS,CAAC,wBAAwB,CAkBnE,CAAC;AAEF,MAAM,WAAW,oBAAqB,SAAQ,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC;IAC9E;;OAEG;IACH,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,eAAe,EAAE,SAAS,CAAC,oBAAoB,CAW3D,CAAC;AAEF,MAAM,WAAW,qBAAsB,SAAQ,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC;CAChF;AAED,eAAO,MAAM,gBAAgB,EAAE,SAAS,CAAC,qBAAqB,CAS7D,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { template, spread, mergeProps, insert } from "solid-js/web";
|
|
2
|
+
import { splitProps } from "solid-js";
|
|
3
|
+
var _tmpl$ = /* @__PURE__ */ template(`<div>`), _tmpl$2 = /* @__PURE__ */ template(`<div style=overflow:scroll;width:100%;height:100%>`), _tmpl$3 = /* @__PURE__ */ template(`<div role=scrollbar>`);
|
|
4
|
+
const ScrollAreaBase = (props) => {
|
|
5
|
+
const [local, others] = splitProps(props, ["children", "orientation", "type", "class"]);
|
|
6
|
+
return (() => {
|
|
7
|
+
var _el$ = _tmpl$();
|
|
8
|
+
spread(_el$, mergeProps({
|
|
9
|
+
get ["class"]() {
|
|
10
|
+
return local.class;
|
|
11
|
+
},
|
|
12
|
+
get ["data-orientation"]() {
|
|
13
|
+
return local.orientation ?? "vertical";
|
|
14
|
+
}
|
|
15
|
+
}, others), false, true);
|
|
16
|
+
insert(_el$, () => local.children);
|
|
17
|
+
return _el$;
|
|
18
|
+
})();
|
|
19
|
+
};
|
|
20
|
+
const ScrollArea = Object.assign(ScrollAreaBase, {
|
|
21
|
+
Viewport: null,
|
|
22
|
+
Scrollbar: null,
|
|
23
|
+
Thumb: null,
|
|
24
|
+
Corner: null
|
|
25
|
+
});
|
|
26
|
+
const ScrollAreaViewport = (props) => {
|
|
27
|
+
const [local, others] = splitProps(props, ["children", "class"]);
|
|
28
|
+
return (() => {
|
|
29
|
+
var _el$2 = _tmpl$2();
|
|
30
|
+
spread(_el$2, mergeProps({
|
|
31
|
+
get ["class"]() {
|
|
32
|
+
return local.class;
|
|
33
|
+
}
|
|
34
|
+
}, others), false, true);
|
|
35
|
+
insert(_el$2, () => local.children);
|
|
36
|
+
return _el$2;
|
|
37
|
+
})();
|
|
38
|
+
};
|
|
39
|
+
const ScrollAreaScrollbar = (props) => {
|
|
40
|
+
const [local, others] = splitProps(props, ["orientation", "forceMount", "class", "children"]);
|
|
41
|
+
return (() => {
|
|
42
|
+
var _el$3 = _tmpl$3();
|
|
43
|
+
spread(_el$3, mergeProps({
|
|
44
|
+
get ["class"]() {
|
|
45
|
+
return local.class;
|
|
46
|
+
},
|
|
47
|
+
get ["data-orientation"]() {
|
|
48
|
+
return local.orientation;
|
|
49
|
+
}
|
|
50
|
+
}, others), false, true);
|
|
51
|
+
insert(_el$3, () => local.children);
|
|
52
|
+
return _el$3;
|
|
53
|
+
})();
|
|
54
|
+
};
|
|
55
|
+
const ScrollAreaThumb = (props) => {
|
|
56
|
+
const [local, others] = splitProps(props, ["children", "class"]);
|
|
57
|
+
return (() => {
|
|
58
|
+
var _el$4 = _tmpl$();
|
|
59
|
+
spread(_el$4, mergeProps({
|
|
60
|
+
get ["class"]() {
|
|
61
|
+
return local.class;
|
|
62
|
+
}
|
|
63
|
+
}, others), false, true);
|
|
64
|
+
insert(_el$4, () => local.children);
|
|
65
|
+
return _el$4;
|
|
66
|
+
})();
|
|
67
|
+
};
|
|
68
|
+
const ScrollAreaCorner = (props) => {
|
|
69
|
+
const [local, others] = splitProps(props, ["class"]);
|
|
70
|
+
return (() => {
|
|
71
|
+
var _el$5 = _tmpl$();
|
|
72
|
+
spread(_el$5, mergeProps({
|
|
73
|
+
get ["class"]() {
|
|
74
|
+
return local.class;
|
|
75
|
+
}
|
|
76
|
+
}, others), false, false);
|
|
77
|
+
return _el$5;
|
|
78
|
+
})();
|
|
79
|
+
};
|
|
80
|
+
ScrollArea.Viewport = ScrollAreaViewport;
|
|
81
|
+
ScrollArea.Scrollbar = ScrollAreaScrollbar;
|
|
82
|
+
ScrollArea.Thumb = ScrollAreaThumb;
|
|
83
|
+
ScrollArea.Corner = ScrollAreaCorner;
|
|
84
|
+
export {
|
|
85
|
+
ScrollArea,
|
|
86
|
+
ScrollAreaCorner,
|
|
87
|
+
ScrollAreaScrollbar,
|
|
88
|
+
ScrollAreaThumb,
|
|
89
|
+
ScrollAreaViewport
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=ScrollArea.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScrollArea.js","sources":["../../../src/components/ScrollArea/ScrollArea.tsx"],"sourcesContent":["import { splitProps } from 'solid-js';\nimport type { Component, JSX } from 'solid-js';\n\nexport interface ScrollAreaProps extends JSX.HTMLAttributes<HTMLDivElement> {\n /**\n * 子元素\n */\n children?: JSX.Element;\n /**\n * 滚动条方向\n * @default 'vertical'\n */\n orientation?: 'vertical' | 'horizontal' | 'both';\n /**\n * 类型\n * @default 'hover'\n */\n type?: 'auto' | 'always' | 'scroll' | 'hover';\n}\n\nexport interface ScrollAreaComponent extends Component<ScrollAreaProps> {\n Viewport: Component<ScrollAreaViewportProps>;\n Scrollbar: Component<ScrollAreaScrollbarProps>;\n Thumb: Component<ScrollAreaThumbProps>;\n Corner: Component<ScrollAreaCornerProps>;\n}\n\nconst ScrollAreaBase: Component<ScrollAreaProps> = (props) => {\n const [local, others] = splitProps(props, [\n 'children',\n 'orientation',\n 'type',\n 'class',\n ]);\n\n return (\n <div\n class={local.class}\n data-orientation={local.orientation ?? 'vertical'}\n {...others}\n >\n {local.children}\n </div>\n );\n};\n\nexport const ScrollArea = Object.assign(ScrollAreaBase, {\n Viewport: null as unknown as Component<ScrollAreaViewportProps>,\n Scrollbar: null as unknown as Component<ScrollAreaScrollbarProps>,\n Thumb: null as unknown as Component<ScrollAreaThumbProps>,\n Corner: null as unknown as Component<ScrollAreaCornerProps>,\n}) as ScrollAreaComponent;\n\nexport interface ScrollAreaViewportProps extends JSX.HTMLAttributes<HTMLDivElement> {\n /**\n * 子元素\n */\n children?: JSX.Element;\n}\n\nexport const ScrollAreaViewport: Component<ScrollAreaViewportProps> = (props) => {\n const [local, others] = splitProps(props, ['children', 'class']);\n\n return (\n <div\n class={local.class}\n style=\"overflow: scroll; width: 100%; height: 100%;\"\n {...others}\n >\n {local.children}\n </div>\n );\n};\n\nexport interface ScrollAreaScrollbarProps extends JSX.HTMLAttributes<HTMLDivElement> {\n /**\n * 滚动条方向\n */\n orientation?: 'vertical' | 'horizontal';\n /**\n * 是否强制显示\n * @default false\n */\n forceMount?: boolean;\n /**\n * 子元素\n */\n children?: JSX.Element;\n}\n\nexport const ScrollAreaScrollbar: Component<ScrollAreaScrollbarProps> = (props) => {\n const [local, others] = splitProps(props, [\n 'orientation',\n 'forceMount',\n 'class',\n 'children',\n ]);\n\n return (\n <div\n role=\"scrollbar\"\n class={local.class}\n data-orientation={local.orientation}\n {...others}\n >\n {local.children}\n </div>\n );\n};\n\nexport interface ScrollAreaThumbProps extends JSX.HTMLAttributes<HTMLDivElement> {\n /**\n * 子元素\n */\n children?: JSX.Element;\n}\n\nexport const ScrollAreaThumb: Component<ScrollAreaThumbProps> = (props) => {\n const [local, others] = splitProps(props, ['children', 'class']);\n\n return (\n <div\n class={local.class}\n {...others}\n >\n {local.children}\n </div>\n );\n};\n\nexport interface ScrollAreaCornerProps extends JSX.HTMLAttributes<HTMLDivElement> {\n}\n\nexport const ScrollAreaCorner: Component<ScrollAreaCornerProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n\n return (\n <div\n class={local.class}\n {...others}\n />\n );\n};\n\nScrollArea.Viewport = ScrollAreaViewport;\nScrollArea.Scrollbar = ScrollAreaScrollbar;\nScrollArea.Thumb = ScrollAreaThumb;\nScrollArea.Corner = ScrollAreaCorner;\n\n"],"names":["ScrollAreaBase","props","local","others","splitProps","_el$","_tmpl$","_$spread","_$mergeProps","class","orientation","_$insert","children","ScrollArea","Object","assign","Viewport","Scrollbar","Thumb","Corner","ScrollAreaViewport","_el$2","_tmpl$2","ScrollAreaScrollbar","_el$3","_tmpl$3","ScrollAreaThumb","_el$4","ScrollAreaCorner","_el$5"],"mappings":";;;AA2BA,MAAMA,iBAA8CC,CAAAA,UAAU;AAC5D,QAAM,CAACC,OAAOC,MAAM,IAAIC,WAAWH,OAAO,CACxC,YACA,eACA,QACA,OAAO,CACR;AAED,UAAA,MAAA;AAAA,QAAAI,OAAAC,OAAAA;AAAAC,WAAAF,MAAAG,WAAA;AAAA,MAAA,KAAA,OAAA,IAAA;AAAA,eAEWN,MAAMO;AAAAA,MAAK;AAAA,MAAA,KAAA,kBAAA,IAAA;AAAA,eACAP,MAAMQ,eAAe;AAAA,MAAU;AAAA,IAAA,GAC7CP,MAAM,GAAA,OAAA,IAAA;AAAAQ,WAAAN,MAAA,MAETH,MAAMU,QAAQ;AAAA,WAAAP;AAAAA,EAAA,GAAA;AAGrB;AAEO,MAAMQ,aAAaC,OAAOC,OAAOf,gBAAgB;AAAA,EACtDgB,UAAU;AAAA,EACVC,WAAW;AAAA,EACXC,OAAO;AAAA,EACPC,QAAQ;AACV,CAAC;AASM,MAAMC,qBAA0DnB,CAAAA,UAAU;AAC/E,QAAM,CAACC,OAAOC,MAAM,IAAIC,WAAWH,OAAO,CAAC,YAAY,OAAO,CAAC;AAE/D,UAAA,MAAA;AAAA,QAAAoB,QAAAC,QAAAA;AAAAf,WAAAc,OAAAb,WAAA;AAAA,MAAA,KAAA,OAAA,IAAA;AAAA,eAEWN,MAAMO;AAAAA,MAAK;AAAA,IAAA,GAEdN,MAAM,GAAA,OAAA,IAAA;AAAAQ,WAAAU,OAAA,MAETnB,MAAMU,QAAQ;AAAA,WAAAS;AAAAA,EAAA,GAAA;AAGrB;AAkBO,MAAME,sBAA4DtB,CAAAA,UAAU;AACjF,QAAM,CAACC,OAAOC,MAAM,IAAIC,WAAWH,OAAO,CACxC,eACA,cACA,SACA,UAAU,CACX;AAED,UAAA,MAAA;AAAA,QAAAuB,QAAAC,QAAAA;AAAAlB,WAAAiB,OAAAhB,WAAA;AAAA,MAAA,KAAA,OAAA,IAAA;AAAA,eAGWN,MAAMO;AAAAA,MAAK;AAAA,MAAA,KAAA,kBAAA,IAAA;AAAA,eACAP,MAAMQ;AAAAA,MAAW;AAAA,IAAA,GAC/BP,MAAM,GAAA,OAAA,IAAA;AAAAQ,WAAAa,OAAA,MAETtB,MAAMU,QAAQ;AAAA,WAAAY;AAAAA,EAAA,GAAA;AAGrB;AASO,MAAME,kBAAoDzB,CAAAA,UAAU;AACzE,QAAM,CAACC,OAAOC,MAAM,IAAIC,WAAWH,OAAO,CAAC,YAAY,OAAO,CAAC;AAE/D,UAAA,MAAA;AAAA,QAAA0B,QAAArB,OAAAA;AAAAC,WAAAoB,OAAAnB,WAAA;AAAA,MAAA,KAAA,OAAA,IAAA;AAAA,eAEWN,MAAMO;AAAAA,MAAK;AAAA,IAAA,GACdN,MAAM,GAAA,OAAA,IAAA;AAAAQ,WAAAgB,OAAA,MAETzB,MAAMU,QAAQ;AAAA,WAAAe;AAAAA,EAAA,GAAA;AAGrB;AAKO,MAAMC,mBAAsD3B,CAAAA,UAAU;AAC3E,QAAM,CAACC,OAAOC,MAAM,IAAIC,WAAWH,OAAO,CAAC,OAAO,CAAC;AAEnD,UAAA,MAAA;AAAA,QAAA4B,QAAAvB,OAAAA;AAAAC,WAAAsB,OAAArB,WAAA;AAAA,MAAA,KAAA,OAAA,IAAA;AAAA,eAEWN,MAAMO;AAAAA,MAAK;AAAA,IAAA,GACdN,MAAM,GAAA,OAAA,KAAA;AAAA,WAAA0B;AAAAA,EAAA,GAAA;AAGhB;AAEAhB,WAAWG,WAAWI;AACtBP,WAAWI,YAAYM;AACvBV,WAAWK,QAAQQ;AACnBb,WAAWM,SAASS;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ScrollArea/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { Component, JSX } from 'solid-js';
|
|
2
|
+
interface SelectContextValue {
|
|
3
|
+
value: () => string | undefined;
|
|
4
|
+
setValue: (value: string) => void;
|
|
5
|
+
open: () => boolean;
|
|
6
|
+
setOpen: (open: boolean) => void;
|
|
7
|
+
triggerRef: () => HTMLElement | undefined;
|
|
8
|
+
setTriggerRef: (ref: HTMLElement | undefined) => void;
|
|
9
|
+
setContentElement: (el: HTMLElement | undefined) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare const useSelectContext: () => SelectContextValue;
|
|
12
|
+
export interface SelectProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
13
|
+
/**
|
|
14
|
+
* 选中的值
|
|
15
|
+
*/
|
|
16
|
+
value?: string;
|
|
17
|
+
/**
|
|
18
|
+
* 默认选中的值
|
|
19
|
+
*/
|
|
20
|
+
defaultValue?: string;
|
|
21
|
+
/**
|
|
22
|
+
* 值变化回调
|
|
23
|
+
*/
|
|
24
|
+
onValueChange?: (value: string) => void;
|
|
25
|
+
/**
|
|
26
|
+
* 是否禁用
|
|
27
|
+
* @default false
|
|
28
|
+
*/
|
|
29
|
+
disabled?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* 子元素
|
|
32
|
+
*/
|
|
33
|
+
children?: JSX.Element;
|
|
34
|
+
}
|
|
35
|
+
export interface SelectComponent extends Component<SelectProps> {
|
|
36
|
+
Trigger: Component<SelectTriggerProps>;
|
|
37
|
+
Value: Component<SelectValueProps>;
|
|
38
|
+
Content: Component<SelectContentProps>;
|
|
39
|
+
Item: Component<SelectItemProps>;
|
|
40
|
+
}
|
|
41
|
+
export declare const Select: SelectComponent;
|
|
42
|
+
export interface SelectTriggerProps extends JSX.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
43
|
+
/**
|
|
44
|
+
* 子元素
|
|
45
|
+
*/
|
|
46
|
+
children?: JSX.Element;
|
|
47
|
+
}
|
|
48
|
+
export declare const SelectTrigger: Component<SelectTriggerProps>;
|
|
49
|
+
export interface SelectValueProps extends JSX.HTMLAttributes<HTMLSpanElement> {
|
|
50
|
+
/**
|
|
51
|
+
* 占位符文本
|
|
52
|
+
*/
|
|
53
|
+
placeholder?: string;
|
|
54
|
+
}
|
|
55
|
+
export declare const SelectValue: Component<SelectValueProps>;
|
|
56
|
+
export interface SelectContentProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
57
|
+
/**
|
|
58
|
+
* 子元素
|
|
59
|
+
*/
|
|
60
|
+
children?: JSX.Element;
|
|
61
|
+
}
|
|
62
|
+
export declare const SelectContent: Component<SelectContentProps>;
|
|
63
|
+
export interface SelectItemProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
64
|
+
/**
|
|
65
|
+
* 选项的值
|
|
66
|
+
*/
|
|
67
|
+
value: string;
|
|
68
|
+
/**
|
|
69
|
+
* 是否禁用
|
|
70
|
+
* @default false
|
|
71
|
+
*/
|
|
72
|
+
disabled?: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* 子元素
|
|
75
|
+
*/
|
|
76
|
+
children?: JSX.Element;
|
|
77
|
+
}
|
|
78
|
+
export declare const SelectItem: Component<SelectItemProps>;
|
|
79
|
+
export {};
|
|
80
|
+
//# sourceMappingURL=Select.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/C,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,IAAI,EAAE,MAAM,OAAO,CAAC;IACpB,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,UAAU,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;IAC1C,aAAa,EAAE,CAAC,GAAG,EAAE,WAAW,GAAG,SAAS,KAAK,IAAI,CAAC;IACtD,iBAAiB,EAAE,CAAC,EAAE,EAAE,WAAW,GAAG,SAAS,KAAK,IAAI,CAAC;CAC1D;AAID,eAAO,MAAM,gBAAgB,0BAM5B,CAAC;AAEF,MAAM,WAAW,WAAY,SAAQ,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC;IACrE;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;CACxB;AAmFD,MAAM,WAAW,eAAgB,SAAQ,SAAS,CAAC,WAAW,CAAC;IAC7D,OAAO,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;IACvC,KAAK,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACnC,OAAO,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;IACvC,IAAI,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;CAClC;AAED,eAAO,MAAM,MAAM,EAKb,eAAe,CAAC;AAEtB,MAAM,WAAW,kBAAmB,SAAQ,GAAG,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IACrF;;OAEG;IACH,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,aAAa,EAAE,SAAS,CAAC,kBAAkB,CAgCvD,CAAC;AAEF,MAAM,WAAW,gBAAiB,SAAQ,GAAG,CAAC,cAAc,CAAC,eAAe,CAAC;IAC3E;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,WAAW,EAAE,SAAS,CAAC,gBAAgB,CASnD,CAAC;AAEF,MAAM,WAAW,kBAAmB,SAAQ,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC;IAC5E;;OAEG;IACH,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,aAAa,EAAE,SAAS,CAAC,kBAAkB,CAsEvD,CAAC;AAEF,MAAM,WAAW,eAAgB,SAAQ,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC;IACzE;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,UAAU,EAAE,SAAS,CAAC,eAAe,CA6BjD,CAAC"}
|