@ark-ui/solid 0.0.0-rc-20221106094212

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.
@@ -0,0 +1,211 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
24
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
+
26
+ // src/index.ts
27
+ var src_exports = {};
28
+ __export(src_exports, {
29
+ Accordion: () => Accordion,
30
+ AccordionButton: () => AccordionButton,
31
+ AccordionItem: () => AccordionItem,
32
+ AccordionPanel: () => AccordionPanel,
33
+ PinInput: () => PinInput,
34
+ PinInputField: () => PinInputField,
35
+ useAccordion: () => useAccordion,
36
+ usePinInput: () => usePinInput
37
+ });
38
+ module.exports = __toCommonJS(src_exports);
39
+
40
+ // src/accordion/accordion.tsx
41
+ var import_solid_js3 = require("solid-js");
42
+
43
+ // src/createContext.ts
44
+ var import_solid_js = require("solid-js");
45
+ function getErrorMessage(hook, provider) {
46
+ return `${hook} returned \`undefined\`. Seems you forgot to wrap component within ${provider}`;
47
+ }
48
+ function createContext(options = {}) {
49
+ const {
50
+ strict = true,
51
+ hookName = "useContext",
52
+ providerName = "Provider",
53
+ errorMessage
54
+ } = options;
55
+ const Context2 = (0, import_solid_js.createContext)(void 0);
56
+ function useContext() {
57
+ const context = (0, import_solid_js.useContext)(Context2);
58
+ if (!context && strict) {
59
+ const error = new Error(errorMessage ?? getErrorMessage(hookName, providerName));
60
+ error.name = "ContextError";
61
+ Error.captureStackTrace?.(error, useContext);
62
+ throw error;
63
+ }
64
+ return context;
65
+ }
66
+ return [Context2.Provider, useContext, Context2];
67
+ }
68
+
69
+ // src/accordion/accordion-context.tsx
70
+ var [AccordionProvider, useAccordionContext] = createContext({
71
+ hookName: "useAccordionContext",
72
+ providerName: "<AccordionProvider />"
73
+ });
74
+
75
+ // src/accordion/use-accordion.ts
76
+ var accordion = __toESM(require("@zag-js/accordion"));
77
+ var import_solid = require("@zag-js/solid");
78
+ var import_solid_js2 = require("solid-js");
79
+ var useAccordion = (props) => {
80
+ const [state, send] = (0, import_solid.useMachine)(
81
+ accordion.machine({
82
+ id: (0, import_solid_js2.createUniqueId)(),
83
+ ...props,
84
+ value: props.defaultValue ?? props.value
85
+ })
86
+ );
87
+ return (0, import_solid_js2.createMemo)(() => accordion.connect(state, send, import_solid.normalizeProps));
88
+ };
89
+
90
+ // src/accordion/accordion.tsx
91
+ function Accordion(props) {
92
+ const [accordionProps, htmlProps] = (0, import_solid_js3.splitProps)(props, [
93
+ "collapsible",
94
+ "defaultValue",
95
+ "dir",
96
+ "disabled",
97
+ "ids",
98
+ "multiple",
99
+ "onChange",
100
+ "value"
101
+ ]);
102
+ const accordion2 = useAccordion(accordionProps);
103
+ return <AccordionProvider value={accordion2}><div {...accordion2?.().rootProps} {...htmlProps} /></AccordionProvider>;
104
+ }
105
+
106
+ // src/accordion/accordion-item-context.ts
107
+ var [AccordionItemProvider, useAccordionItemContext] = createContext(
108
+ {
109
+ hookName: "useAccordionItemContext",
110
+ providerName: "<AccordionItemProvider />"
111
+ }
112
+ );
113
+
114
+ // src/accordion/accordion-button.tsx
115
+ function AccordionButton(props) {
116
+ const api = useAccordionContext();
117
+ const { value, disabled } = useAccordionItemContext();
118
+ return <button {...api?.().getTriggerProps?.({
119
+ value,
120
+ disabled
121
+ })} {...props} />;
122
+ }
123
+
124
+ // src/accordion/accordion-item.tsx
125
+ var import_solid_js4 = require("solid-js");
126
+ function AccordionItem(props) {
127
+ const [itemProps, htmlProps] = (0, import_solid_js4.splitProps)(props, ["value", "disabled"]);
128
+ const api = useAccordionContext();
129
+ return <AccordionItemProvider value={itemProps}><div {...api?.().getItemProps({ value: itemProps.value })} {...htmlProps} /></AccordionItemProvider>;
130
+ }
131
+
132
+ // src/accordion/accordion-panel.tsx
133
+ function AccordionPanel(props) {
134
+ const api = useAccordionContext();
135
+ const { value, disabled } = useAccordionItemContext();
136
+ return <div {...api?.().getContentProps({
137
+ value,
138
+ disabled
139
+ })} {...props} />;
140
+ }
141
+
142
+ // src/pin-input/pin-input.tsx
143
+ var import_solid_js6 = require("solid-js");
144
+
145
+ // src/pin-input/pin-input-context.ts
146
+ var [PinInputProvider, usePinInputContext] = createContext({
147
+ hookName: "usePinInputContext",
148
+ providerName: "<PinInputProvider />"
149
+ });
150
+
151
+ // src/pin-input/use-pin-input.ts
152
+ var pinInput = __toESM(require("@zag-js/pin-input"));
153
+ var import_solid2 = require("@zag-js/solid");
154
+ var import_solid_js5 = require("solid-js");
155
+ var usePinInput = (props) => {
156
+ const [state, send] = (0, import_solid2.useMachine)(
157
+ pinInput.machine({
158
+ id: (0, import_solid_js5.createUniqueId)(),
159
+ ...props,
160
+ value: props.defaultValue ?? props.value ?? []
161
+ })
162
+ );
163
+ return (0, import_solid_js5.createMemo)(() => pinInput.connect(state, send, import_solid2.normalizeProps));
164
+ };
165
+
166
+ // src/pin-input/pin-input.tsx
167
+ var PinInput = (props) => {
168
+ const [pinInputProps, htmlProps] = (0, import_solid_js6.splitProps)(props, [
169
+ "autoFocus",
170
+ "blurOnComplete",
171
+ "defaultValue",
172
+ "dir",
173
+ "disabled",
174
+ "getRootNode",
175
+ "ids",
176
+ "invalid",
177
+ "mask",
178
+ "name",
179
+ "onChange",
180
+ "onComplete",
181
+ "onInvalid",
182
+ "otp",
183
+ "pattern",
184
+ "placeholder",
185
+ "translations",
186
+ "type",
187
+ "value"
188
+ ]);
189
+ const pinInput2 = usePinInput(pinInputProps);
190
+ return <PinInputProvider value={pinInput2}><div {...pinInput2?.().rootProps} {...htmlProps} /></PinInputProvider>;
191
+ };
192
+
193
+ // src/pin-input/pin-input-field.tsx
194
+ var PinInputField = (props) => {
195
+ const { index, ...htmlProps } = props;
196
+ const pinInput2 = usePinInputContext();
197
+ return <input {...pinInput2().getInputProps({
198
+ index
199
+ })} {...htmlProps} />;
200
+ };
201
+ // Annotate the CommonJS export names for ESM import in node:
202
+ 0 && (module.exports = {
203
+ Accordion,
204
+ AccordionButton,
205
+ AccordionItem,
206
+ AccordionPanel,
207
+ PinInput,
208
+ PinInputField,
209
+ useAccordion,
210
+ usePinInput
211
+ });
@@ -0,0 +1,81 @@
1
+ import * as solid_js from 'solid-js';
2
+ import { JSX } from 'solid-js';
3
+ import * as accordion from '@zag-js/accordion';
4
+ import * as pinInput from '@zag-js/pin-input';
5
+
6
+ declare type UseAccordionProps = Omit<accordion.Context, 'id'> & {
7
+ defaultValue?: accordion.Context['value'];
8
+ };
9
+ declare type UseAccordionReturn = ReturnType<typeof useAccordion>;
10
+ declare const useAccordion: (props: UseAccordionProps) => solid_js.Accessor<{
11
+ value: string | string[] | null;
12
+ setValue(value: string | string[]): void;
13
+ rootProps: solid_js.JSX.HTMLAttributes<any>;
14
+ getItemState(props: {
15
+ value: string;
16
+ disabled?: boolean | undefined;
17
+ }): {
18
+ isOpen: boolean;
19
+ isFocused: boolean;
20
+ isDisabled: boolean;
21
+ };
22
+ getItemProps(props: {
23
+ value: string;
24
+ disabled?: boolean | undefined;
25
+ }): solid_js.JSX.HTMLAttributes<any>;
26
+ getContentProps(props: {
27
+ value: string;
28
+ disabled?: boolean | undefined;
29
+ }): solid_js.JSX.HTMLAttributes<any>;
30
+ getTriggerProps(props: {
31
+ value: string;
32
+ disabled?: boolean | undefined;
33
+ }): solid_js.JSX.ButtonHTMLAttributes<HTMLButtonElement>;
34
+ }>;
35
+
36
+ declare type AccordionProps = UseAccordionProps & JSX.HTMLAttributes<HTMLDivElement>;
37
+ declare function Accordion(props: AccordionProps): JSX.Element;
38
+
39
+ declare type AccordionButtonProps = JSX.HTMLAttributes<HTMLButtonElement>;
40
+ declare function AccordionButton(props: AccordionButtonProps): JSX.Element;
41
+
42
+ declare type AccordionItemProps = JSX.HTMLAttributes<HTMLDivElement> & {
43
+ value: string;
44
+ disabled?: boolean;
45
+ };
46
+ declare function AccordionItem(props: AccordionItemProps): JSX.Element;
47
+
48
+ declare type AccordionPanelProps = JSX.HTMLAttributes<HTMLDivElement>;
49
+ declare function AccordionPanel(props: AccordionPanelProps): JSX.Element;
50
+
51
+ declare type Assign<Target, Source> = Omit<Target, keyof Source> & Source;
52
+
53
+ declare type UsePinInputProps = Omit<pinInput.Context, 'id'> & {
54
+ defaultValue?: pinInput.Context['value'];
55
+ };
56
+ declare type UsePinInputReturn = ReturnType<typeof usePinInput>;
57
+ declare const usePinInput: (props: UsePinInputProps) => solid_js.Accessor<{
58
+ value: string[];
59
+ valueAsString: string;
60
+ isValueComplete: boolean;
61
+ setValue(value: string[]): void;
62
+ clearValue(): void;
63
+ setValueAtIndex(index: number, value: string): void;
64
+ focus: () => void;
65
+ rootProps: solid_js.JSX.HTMLAttributes<any>;
66
+ labelProps: solid_js.JSX.LabelHTMLAttributes<HTMLLabelElement>;
67
+ hiddenInputProps: solid_js.JSX.InputHTMLAttributes<HTMLInputElement>;
68
+ getInputProps({ index }: {
69
+ index: number;
70
+ }): solid_js.JSX.InputHTMLAttributes<HTMLInputElement>;
71
+ }>;
72
+
73
+ declare type PinInputProps = Assign<JSX.HTMLAttributes<HTMLDivElement>, UsePinInputProps>;
74
+ declare const PinInput: (props: PinInputProps) => JSX.Element;
75
+
76
+ declare type PinInputFieldProps = {
77
+ index: number;
78
+ } & JSX.HTMLAttributes<HTMLInputElement>;
79
+ declare const PinInputField: (props: PinInputFieldProps) => JSX.Element;
80
+
81
+ export { Accordion, AccordionButton, AccordionButtonProps, AccordionItem, AccordionItemProps, AccordionPanel, AccordionPanelProps, AccordionProps, PinInput, PinInputField, PinInputFieldProps, PinInputProps, UseAccordionProps, UseAccordionReturn, UsePinInputProps, UsePinInputReturn, useAccordion, usePinInput };
@@ -0,0 +1,174 @@
1
+ // src/accordion/accordion.tsx
2
+ import { splitProps } from "solid-js";
3
+
4
+ // src/createContext.ts
5
+ import {
6
+ createContext as createSolidContext,
7
+ useContext as useSolidContext
8
+ } from "solid-js";
9
+ function getErrorMessage(hook, provider) {
10
+ return `${hook} returned \`undefined\`. Seems you forgot to wrap component within ${provider}`;
11
+ }
12
+ function createContext(options = {}) {
13
+ const {
14
+ strict = true,
15
+ hookName = "useContext",
16
+ providerName = "Provider",
17
+ errorMessage
18
+ } = options;
19
+ const Context2 = createSolidContext(void 0);
20
+ function useContext() {
21
+ const context = useSolidContext(Context2);
22
+ if (!context && strict) {
23
+ const error = new Error(errorMessage ?? getErrorMessage(hookName, providerName));
24
+ error.name = "ContextError";
25
+ Error.captureStackTrace?.(error, useContext);
26
+ throw error;
27
+ }
28
+ return context;
29
+ }
30
+ return [Context2.Provider, useContext, Context2];
31
+ }
32
+
33
+ // src/accordion/accordion-context.tsx
34
+ var [AccordionProvider, useAccordionContext] = createContext({
35
+ hookName: "useAccordionContext",
36
+ providerName: "<AccordionProvider />"
37
+ });
38
+
39
+ // src/accordion/use-accordion.ts
40
+ import * as accordion from "@zag-js/accordion";
41
+ import { normalizeProps, useMachine } from "@zag-js/solid";
42
+ import { createMemo, createUniqueId } from "solid-js";
43
+ var useAccordion = (props) => {
44
+ const [state, send] = useMachine(
45
+ accordion.machine({
46
+ id: createUniqueId(),
47
+ ...props,
48
+ value: props.defaultValue ?? props.value
49
+ })
50
+ );
51
+ return createMemo(() => accordion.connect(state, send, normalizeProps));
52
+ };
53
+
54
+ // src/accordion/accordion.tsx
55
+ function Accordion(props) {
56
+ const [accordionProps, htmlProps] = splitProps(props, [
57
+ "collapsible",
58
+ "defaultValue",
59
+ "dir",
60
+ "disabled",
61
+ "ids",
62
+ "multiple",
63
+ "onChange",
64
+ "value"
65
+ ]);
66
+ const accordion2 = useAccordion(accordionProps);
67
+ return <AccordionProvider value={accordion2}><div {...accordion2?.().rootProps} {...htmlProps} /></AccordionProvider>;
68
+ }
69
+
70
+ // src/accordion/accordion-item-context.ts
71
+ var [AccordionItemProvider, useAccordionItemContext] = createContext(
72
+ {
73
+ hookName: "useAccordionItemContext",
74
+ providerName: "<AccordionItemProvider />"
75
+ }
76
+ );
77
+
78
+ // src/accordion/accordion-button.tsx
79
+ function AccordionButton(props) {
80
+ const api = useAccordionContext();
81
+ const { value, disabled } = useAccordionItemContext();
82
+ return <button {...api?.().getTriggerProps?.({
83
+ value,
84
+ disabled
85
+ })} {...props} />;
86
+ }
87
+
88
+ // src/accordion/accordion-item.tsx
89
+ import { splitProps as splitProps2 } from "solid-js";
90
+ function AccordionItem(props) {
91
+ const [itemProps, htmlProps] = splitProps2(props, ["value", "disabled"]);
92
+ const api = useAccordionContext();
93
+ return <AccordionItemProvider value={itemProps}><div {...api?.().getItemProps({ value: itemProps.value })} {...htmlProps} /></AccordionItemProvider>;
94
+ }
95
+
96
+ // src/accordion/accordion-panel.tsx
97
+ function AccordionPanel(props) {
98
+ const api = useAccordionContext();
99
+ const { value, disabled } = useAccordionItemContext();
100
+ return <div {...api?.().getContentProps({
101
+ value,
102
+ disabled
103
+ })} {...props} />;
104
+ }
105
+
106
+ // src/pin-input/pin-input.tsx
107
+ import { splitProps as splitProps3 } from "solid-js";
108
+
109
+ // src/pin-input/pin-input-context.ts
110
+ var [PinInputProvider, usePinInputContext] = createContext({
111
+ hookName: "usePinInputContext",
112
+ providerName: "<PinInputProvider />"
113
+ });
114
+
115
+ // src/pin-input/use-pin-input.ts
116
+ import * as pinInput from "@zag-js/pin-input";
117
+ import { normalizeProps as normalizeProps2, useMachine as useMachine2 } from "@zag-js/solid";
118
+ import { createMemo as createMemo2, createUniqueId as createUniqueId2 } from "solid-js";
119
+ var usePinInput = (props) => {
120
+ const [state, send] = useMachine2(
121
+ pinInput.machine({
122
+ id: createUniqueId2(),
123
+ ...props,
124
+ value: props.defaultValue ?? props.value ?? []
125
+ })
126
+ );
127
+ return createMemo2(() => pinInput.connect(state, send, normalizeProps2));
128
+ };
129
+
130
+ // src/pin-input/pin-input.tsx
131
+ var PinInput = (props) => {
132
+ const [pinInputProps, htmlProps] = splitProps3(props, [
133
+ "autoFocus",
134
+ "blurOnComplete",
135
+ "defaultValue",
136
+ "dir",
137
+ "disabled",
138
+ "getRootNode",
139
+ "ids",
140
+ "invalid",
141
+ "mask",
142
+ "name",
143
+ "onChange",
144
+ "onComplete",
145
+ "onInvalid",
146
+ "otp",
147
+ "pattern",
148
+ "placeholder",
149
+ "translations",
150
+ "type",
151
+ "value"
152
+ ]);
153
+ const pinInput2 = usePinInput(pinInputProps);
154
+ return <PinInputProvider value={pinInput2}><div {...pinInput2?.().rootProps} {...htmlProps} /></PinInputProvider>;
155
+ };
156
+
157
+ // src/pin-input/pin-input-field.tsx
158
+ var PinInputField = (props) => {
159
+ const { index, ...htmlProps } = props;
160
+ const pinInput2 = usePinInputContext();
161
+ return <input {...pinInput2().getInputProps({
162
+ index
163
+ })} {...htmlProps} />;
164
+ };
165
+ export {
166
+ Accordion,
167
+ AccordionButton,
168
+ AccordionItem,
169
+ AccordionPanel,
170
+ PinInput,
171
+ PinInputField,
172
+ useAccordion,
173
+ usePinInput
174
+ };
package/package.json ADDED
@@ -0,0 +1,67 @@
1
+ {
2
+ "name": "@ark-ui/solid",
3
+ "version": "0.0.0-rc-20221106094212",
4
+ "description": "",
5
+ "keywords": [],
6
+ "homepage": "https://github.com/chakra-ui/ark#readme",
7
+ "license": "MIT",
8
+ "main": "dist/index.cjs.js",
9
+ "module": "dist/index.esm.js",
10
+ "types": "dist/index.d.ts",
11
+ "exports": {
12
+ ".": {
13
+ "import": "./dist/index.esm.js",
14
+ "require": "./dist/index.cjs.js"
15
+ },
16
+ "./package.json": "./package.json"
17
+ },
18
+ "sideEffects": false,
19
+ "files": [
20
+ "dist"
21
+ ],
22
+ "publishConfig": {
23
+ "access": "public"
24
+ },
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "git+https://github.com/chakra-ui/ark.git",
28
+ "directory": "packages/solid"
29
+ },
30
+ "bugs": {
31
+ "url": "https://github.com/chakra-ui/ark/issues"
32
+ },
33
+ "dependencies": {
34
+ "@zag-js/accordion": "0.2.0",
35
+ "@zag-js/checkbox": "0.2.0",
36
+ "@zag-js/dialog": "0.2.0",
37
+ "@zag-js/editable": "0.2.0",
38
+ "@zag-js/hover-card": "0.1.0",
39
+ "@zag-js/menu": "0.2.0",
40
+ "@zag-js/number-input": "0.2.0",
41
+ "@zag-js/pagination": "0.1.0",
42
+ "@zag-js/pin-input": "0.2.0",
43
+ "@zag-js/popover": "0.2.0",
44
+ "@zag-js/pressable": "0.3.0",
45
+ "@zag-js/radio": "0.1.0",
46
+ "@zag-js/range-slider": "0.2.0",
47
+ "@zag-js/rating": "0.2.0",
48
+ "@zag-js/slider": "0.2.0",
49
+ "@zag-js/solid": "0.2.0",
50
+ "@zag-js/tags-input": "0.3.0",
51
+ "@zag-js/toast": "0.2.0",
52
+ "@zag-js/tooltip": "0.2.0"
53
+ },
54
+ "devDependencies": {
55
+ "solid-js": "1.6.1",
56
+ "tsup": "6.4.0",
57
+ "typescript": "4.8.4"
58
+ },
59
+ "peerDependencies": {
60
+ "solid-js": ">=1.6.0"
61
+ },
62
+ "scripts": {
63
+ "build": "tsup src/index.ts",
64
+ "lint": "eslint --ext .ts,.tsx src",
65
+ "typecheck": "tsc --noEmit"
66
+ }
67
+ }