@zxkit/surface 1.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../node_modules/.bun/mitt@3.0.1/node_modules/mitt/dist/mitt.mjs","../src/lib/factory.tsx","../src/lib/responsive.tsx"],"sourcesContent":["export default function(n){return{all:n=n||new Map,on:function(t,e){var i=n.get(t);i?i.push(e):n.set(t,[e])},off:function(t,e){var i=n.get(t);i&&(e?i.splice(i.indexOf(e)>>>0,1):n.set(t,[]))},emit:function(t,e){var i=n.get(t);i&&i.slice().map(function(n){n(e)}),(i=n.get(\"*\"))&&i.slice().map(function(n){n(t,e)})}}}\n//# sourceMappingURL=mitt.mjs.map\n","'use client'\r\n\r\nimport React, { Suspense, useEffect, useState } from 'react'\r\nimport mitt, { Handler } from 'mitt'\r\nimport { Dialog } from 'radix-ui'\r\n\r\ninterface CreatePushModalOptions<T> {\r\n modals: {\r\n [key in keyof T]:\r\n | {\r\n Wrapper: React.ComponentType<{\r\n open?: boolean\r\n onOpenChange?: (open: boolean) => void\r\n children?: React.ReactNode\r\n defaultOpen?: boolean\r\n }>\r\n Component: React.ComponentType<T[key]>\r\n }\r\n | React.ComponentType<T[key]>\r\n }\r\n}\r\n\r\nexport function createPushModal<T>({ modals }: CreatePushModalOptions<T>) {\r\n type Modals = typeof modals\r\n type ModalKeys = keyof Modals\r\n\r\n type EventHandlers = {\r\n change: { name: ModalKeys; open: boolean; props: Record<string, unknown> }\r\n push: {\r\n name: ModalKeys\r\n props: Record<string, unknown>\r\n }\r\n replace: {\r\n name: ModalKeys\r\n props: Record<string, unknown>\r\n }\r\n pop: { name?: ModalKeys }\r\n popAll: undefined\r\n }\r\n\r\n interface StateItem {\r\n key: string\r\n name: ModalKeys\r\n props: Record<string, unknown>\r\n open: boolean\r\n closedAt?: number\r\n }\r\n\r\n const filterGarbage = (item: StateItem): boolean => {\r\n if (item.open || !item.closedAt) {\r\n return true\r\n }\r\n return Date.now() - item.closedAt < 300\r\n }\r\n\r\n const emitter = mitt<EventHandlers>()\r\n\r\n function ModalProvider() {\r\n const [state, setState] = useState<StateItem[]>([])\r\n\r\n // Remove closed modals from state after their exit animation completes\r\n useEffect(() => {\r\n const hasClosedModals = state.some((item) => typeof item.closedAt === 'number')\r\n if (!hasClosedModals) return\r\n\r\n const timer = setTimeout(() => {\r\n setState((p) => p.filter(filterGarbage))\r\n }, 350)\r\n\r\n return () => {\r\n clearTimeout(timer)\r\n }\r\n }, [state])\r\n\r\n useEffect(() => {\r\n const pushHandler: Handler<EventHandlers['push']> = ({ name, props }) => {\r\n emitter.emit('change', { name, open: true, props })\r\n setState((p) =>\r\n [\r\n ...p,\r\n {\r\n key: Math.random().toString(),\r\n name,\r\n props,\r\n open: true,\r\n },\r\n ].filter(filterGarbage)\r\n )\r\n }\r\n const replaceHandler: Handler<EventHandlers['replace']> = ({ name, props }) => {\r\n setState((p) => {\r\n // find last item to replace\r\n const last = p.findLast((item) => item.open)\r\n if (last) {\r\n // if found emit close event\r\n emitter.emit('change', { name: last.name, open: false, props: last.props })\r\n }\r\n emitter.emit('change', { name, open: true, props })\r\n\r\n return [\r\n // 1) close last item 2) filter garbage 3) add new item\r\n ...p\r\n .map((item) => {\r\n if (item.key === last?.key) {\r\n return { ...item, open: false, closedAt: Date.now() }\r\n }\r\n return item\r\n })\r\n .filter(filterGarbage),\r\n {\r\n key: Math.random().toString(),\r\n name,\r\n props,\r\n open: true,\r\n },\r\n ]\r\n })\r\n }\r\n\r\n const popHandler: Handler<EventHandlers['pop']> = ({ name }) => {\r\n setState((items) => {\r\n // Find last open item index\r\n const index =\r\n name === undefined\r\n ? // Pick last open item if no name is provided\r\n items.findLastIndex((item) => item.open)\r\n : items.findLastIndex((item) => item.name === name && item.open)\r\n const match = items[index]\r\n if (match) {\r\n emitter.emit('change', {\r\n name: match.name,\r\n open: false,\r\n props: match.props,\r\n })\r\n }\r\n return items.map((item) =>\r\n match?.key !== item.key ? item : { ...item, open: false, closedAt: Date.now() }\r\n )\r\n })\r\n }\r\n\r\n const popAllHandler: Handler<EventHandlers['popAll']> = () => {\r\n setState((items) => {\r\n items.forEach((item) => {\r\n if (item.open) {\r\n emitter.emit('change', { name: item.name, open: false, props: item.props })\r\n }\r\n })\r\n return items.map((item) =>\r\n item.open ? { ...item, open: false, closedAt: Date.now() } : item\r\n )\r\n })\r\n }\r\n emitter.on('push', pushHandler)\r\n emitter.on('replace', replaceHandler)\r\n emitter.on('pop', popHandler)\r\n emitter.on('popAll', popAllHandler)\r\n return () => {\r\n emitter.off('push', pushHandler)\r\n emitter.off('replace', replaceHandler)\r\n emitter.off('pop', popHandler)\r\n emitter.off('popAll', popAllHandler)\r\n }\r\n }, [])\r\n\r\n return (\r\n <>\r\n {state.map((item) => {\r\n const modal = modals[item.name]\r\n const Component = ('Component' in modal ? modal.Component : modal) as React.ComponentType<\r\n Record<string, unknown>\r\n >\r\n const Root = 'Wrapper' in modal ? modal.Wrapper : Dialog.Root\r\n\r\n return (\r\n <Root\r\n key={item.key}\r\n open={item.open}\r\n onOpenChange={(isOpen) => {\r\n if (!isOpen) {\r\n popModal(item.name)\r\n }\r\n }}\r\n >\r\n <Suspense>\r\n <Component {...item.props} />\r\n </Suspense>\r\n </Root>\r\n )\r\n })}\r\n </>\r\n )\r\n }\r\n\r\n type Prettify<T> = {\r\n [K in keyof T]: T[K]\r\n } & Record<never, never>\r\n type GetComponentProps<T> = T extends\r\n | React.ComponentType<infer P>\r\n | React.Component<infer P>\r\n | { Component: React.ComponentType<infer P> }\r\n ? P\r\n : never\r\n type IsObject<T> =\r\n Prettify<T> extends Record<string | number | symbol, unknown> ? Prettify<T> : never\r\n type HasKeys<T> = keyof T extends never ? never : T\r\n\r\n const pushModal = <T extends StateItem['name'], B extends Prettify<GetComponentProps<Modals[T]>>>(\r\n name: T,\r\n ...args: HasKeys<IsObject<B>> extends never\r\n ? // No props provided\r\n []\r\n : // Props provided\r\n [props: B]\r\n ) => {\r\n const [props] = args\r\n return emitter.emit('push', {\r\n name,\r\n props: props ?? {},\r\n })\r\n }\r\n\r\n const popModal = (name?: StateItem['name']) =>\r\n emitter.emit('pop', {\r\n name,\r\n })\r\n\r\n const replaceWithModal = <T extends StateItem['name'], B extends GetComponentProps<Modals[T]>>(\r\n name: T,\r\n ...args: HasKeys<IsObject<B>> extends never\r\n ? // No props provided\r\n []\r\n : // Props provided\r\n [props: B]\r\n ) => {\r\n const [props] = args\r\n emitter.emit('replace', {\r\n name,\r\n props: props ?? {},\r\n })\r\n }\r\n\r\n const popAllModals = () => emitter.emit('popAll')\r\n\r\n type EventCallback<T extends ModalKeys> = (\r\n open: boolean,\r\n props: GetComponentProps<Modals[T]>,\r\n name?: T\r\n ) => void\r\n\r\n type CloseCallback<T extends ModalKeys> = (props: GetComponentProps<Modals[T]>, name?: T) => void\r\n\r\n const onPushModal = <T extends ModalKeys>(name: T | '*', callback: EventCallback<T>) => {\r\n const fn: Handler<EventHandlers['change']> = (payload) => {\r\n if (payload.name === name) {\r\n callback(payload.open, payload.props as GetComponentProps<Modals[T]>, payload.name as T)\r\n } else if (name === '*') {\r\n callback(\r\n payload.open,\r\n payload.props as unknown as GetComponentProps<Modals[T]>,\r\n payload.name as T\r\n )\r\n }\r\n }\r\n emitter.on('change', fn)\r\n return () => emitter.off('change', fn)\r\n }\r\n\r\n const onCloseModal = <T extends ModalKeys>(\r\n name: T | '*',\r\n callback: CloseCallback<T>,\r\n options?: { delay?: number }\r\n ) => {\r\n const delay = options?.delay ?? 0\r\n\r\n const fn: Handler<EventHandlers['change']> = (payload) => {\r\n if (!payload.open) {\r\n if (payload.name === name) {\r\n if (delay > 0) {\r\n setTimeout(() => {\r\n callback(payload.props as GetComponentProps<Modals[T]>, payload.name as T)\r\n }, delay)\r\n } else {\r\n callback(payload.props as GetComponentProps<Modals[T]>, payload.name as T)\r\n }\r\n } else if (name === '*') {\r\n if (delay > 0) {\r\n setTimeout(() => {\r\n callback(payload.props as GetComponentProps<Modals[T]>, payload.name as T)\r\n }, delay)\r\n } else {\r\n callback(payload.props as GetComponentProps<Modals[T]>, payload.name as T)\r\n }\r\n }\r\n }\r\n }\r\n\r\n emitter.on('change', fn)\r\n return () => emitter.off('change', fn)\r\n }\r\n\r\n return {\r\n ModalProvider,\r\n pushModal,\r\n popModal,\r\n popAllModals,\r\n replaceWithModal,\r\n onPushModal,\r\n onCloseModal,\r\n useOnPushModal: <T extends ModalKeys>(name: T | '*', callback: EventCallback<T>) => {\r\n useEffect(() => {\r\n return onPushModal(name, callback)\r\n }, [name, callback])\r\n },\r\n useOnCloseModal: <T extends ModalKeys>(\r\n name: T | '*',\r\n callback: CloseCallback<T>,\r\n options?: { delay?: number }\r\n ) => {\r\n useEffect(() => {\r\n return onCloseModal(name, callback, options)\r\n }, [name, callback, options])\r\n },\r\n }\r\n}\r\n","import { FieldValues, DefaultValues, UseFormProps, UseFormReturn, useForm } from 'react-hook-form'\r\nimport { createContext, useContext, useEffect, useRef, useState, useSyncExternalStore } from 'react'\r\n\r\nexport interface WrapperProps {\r\n open?: boolean\r\n onOpenChange?: (open: boolean) => void\r\n children?: React.ReactNode\r\n defaultOpen?: boolean\r\n modal?: boolean\r\n}\r\n\r\nexport interface ContentProps {\r\n children?: React.ReactNode\r\n className?: string\r\n onAnimationEnd?: (...args: unknown[]) => void\r\n onOpenAutoFocus?: (event: Event) => void\r\n onCloseAutoFocus?: (event: Event) => void\r\n onEscapeKeyDown?: (event: KeyboardEvent) => void\r\n onPointerDownOutside?: (event: Event) => void\r\n onInteractOutside?: (event: Event) => void\r\n [key: string]: unknown\r\n}\r\n\r\ntype Options = {\r\n mobile: {\r\n Wrapper: React.ComponentType<WrapperProps>\r\n Content: React.ComponentType<ContentProps>\r\n }\r\n desktop: {\r\n Wrapper: React.ComponentType<WrapperProps>\r\n Content: React.ComponentType<ContentProps>\r\n }\r\n breakpoint?: number\r\n}\r\n\r\nexport interface ResponsiveWrapperReturn {\r\n Wrapper: React.ComponentType<WrapperProps>\r\n Content: React.ComponentType<ContentProps>\r\n usePreservedState: <T>(\r\n key: string,\r\n initialValue: T\r\n ) => [T, React.Dispatch<React.SetStateAction<T>>]\r\n usePreservedForm: <T extends FieldValues>(\r\n key: string,\r\n options: UseFormProps<T>\r\n ) => UseFormReturn<T>\r\n}\r\n\r\nexport function createResponsiveWrapper({\r\n mobile,\r\n desktop,\r\n breakpoint = 640,\r\n}: Options): ResponsiveWrapperReturn {\r\n // Create a context to share the isMobile state between Wrapper and Content\r\n const ResponsiveContext = createContext<boolean | undefined>(undefined)\r\n\r\n const mediaQuery = `(max-width: ${breakpoint}px)`\r\n\r\n let mql: MediaQueryList | null = null\r\n function getMql() {\r\n if (!mql) mql = window.matchMedia(mediaQuery)\r\n return mql\r\n }\r\n\r\n function subscribe(callback: () => void) {\r\n const m = getMql()\r\n m.addEventListener('change', callback)\r\n return () => m.removeEventListener('change', callback)\r\n }\r\n\r\n function getSnapshot() {\r\n return getMql().matches\r\n }\r\n\r\n function useIsMobile() {\r\n return useSyncExternalStore(\r\n subscribe,\r\n getSnapshot,\r\n // server snapshot is always false (desktop) to match initial client render and avoid hydration mismatch\r\n () => false\r\n )\r\n }\r\n\r\n const StateStoreContext = createContext<Map<string, unknown>>(new Map())\r\n\r\n function Wrapper(props: WrapperProps) {\r\n const isMobile = useIsMobile()\r\n const stateStore = useRef(new Map<string, unknown>()).current\r\n const WrapperComponent = isMobile ? mobile.Wrapper : desktop.Wrapper\r\n\r\n // Clear the preserved state store when the dialog/drawer closes\r\n useEffect(() => {\r\n if (props.open === false) {\r\n stateStore.clear()\r\n }\r\n }, [props.open, stateStore])\r\n\r\n return (\r\n <StateStoreContext.Provider value={stateStore}>\r\n <ResponsiveContext.Provider value={isMobile}>\r\n <WrapperComponent {...props} />\r\n </ResponsiveContext.Provider>\r\n </StateStoreContext.Provider>\r\n )\r\n }\r\n\r\n function Content(props: ContentProps) {\r\n const contextIsMobile = useContext(ResponsiveContext)\r\n\r\n if (contextIsMobile === undefined) {\r\n throw new Error('Content must be used within a Wrapper component')\r\n }\r\n\r\n const ContentComponent = contextIsMobile ? mobile.Content : desktop.Content\r\n\r\n return <ContentComponent {...props} />\r\n }\r\n\r\n // Hook to preserve state across unmounts. State is stored in the StateStoreContext and keyed by the provided key.\r\n function usePreservedState<T>(\r\n key: string,\r\n initialValue: T\r\n ): [T, React.Dispatch<React.SetStateAction<T>>] {\r\n const store = useContext(StateStoreContext)\r\n\r\n const [state, setState] = useState<T>(() => {\r\n // if the store already has a value for this key, use it.\r\n // Otherwise, use the provided initial value\r\n if (store.has(key)) return store.get(key) as T\r\n return initialValue\r\n })\r\n\r\n useEffect(() => {\r\n store.set(key, state)\r\n }, [store, key, state])\r\n\r\n return [state, setState]\r\n }\r\n\r\n // Hook to create a react-hook-form form with preserved state. Form state is stored in the StateStoreContext and keyed by the provided key.\r\n function usePreservedForm<T extends FieldValues>(\r\n key: string,\r\n options: UseFormProps<T>\r\n ): UseFormReturn<T> {\r\n const store = useContext(StateStoreContext)\r\n const hasStoredValues = store.has(key)\r\n\r\n const form = useForm<T>({\r\n ...options,\r\n // Use stored values as initial defaultValues so data is visible immediately (no flash)\r\n defaultValues: (hasStoredValues ? store.get(key) : options.defaultValues) as DefaultValues<T>,\r\n })\r\n\r\n // When restoring from store, the stored values ARE the defaultValues,\r\n // so isDirty is false. Fix this by re-establishing the original defaults\r\n // as the baseline, then restoring the stored values with keepDefaultValues.\r\n const didRestore = useRef(hasStoredValues)\r\n useEffect(() => {\r\n if (didRestore.current) {\r\n didRestore.current = false\r\n const currentValues = form.getValues()\r\n // Set internal defaults back to the originals\r\n form.reset(options.defaultValues as DefaultValues<T> as T)\r\n // Restore stored values, keeping original defaults as the isDirty baseline\r\n form.reset(currentValues as T, { keepDefaultValues: true })\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n useEffect(() => {\r\n const subscription = form.watch((values) => {\r\n store.set(key, values)\r\n })\r\n return () => subscription.unsubscribe()\r\n }, [form, store, key])\r\n\r\n return form\r\n }\r\n\r\n return {\r\n Wrapper,\r\n Content,\r\n usePreservedState,\r\n usePreservedForm,\r\n }\r\n}\r\n"],"names":["_jsx"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,139 @@
1
+ import React from 'react';
2
+ interface CreatePushModalOptions<T> {
3
+ modals: {
4
+ [key in keyof T]: {
5
+ Wrapper: React.ComponentType<{
6
+ open?: boolean;
7
+ onOpenChange?: (open: boolean) => void;
8
+ children?: React.ReactNode;
9
+ defaultOpen?: boolean;
10
+ }>;
11
+ Component: React.ComponentType<T[key]>;
12
+ } | React.ComponentType<T[key]>;
13
+ };
14
+ }
15
+ export declare function createPushModal<T>({ modals }: CreatePushModalOptions<T>): {
16
+ ModalProvider: () => import("react/jsx-runtime").JSX.Element;
17
+ pushModal: <T_1 extends keyof T, B extends (({ [key in keyof T]: React.ComponentType<T[key]> | {
18
+ Wrapper: React.ComponentType<{
19
+ open?: boolean;
20
+ onOpenChange?: (open: boolean) => void;
21
+ children?: React.ReactNode;
22
+ defaultOpen?: boolean;
23
+ }>;
24
+ Component: React.ComponentType<T[key]>;
25
+ }; }[T_1] extends infer T_4 ? T_4 extends { [key in keyof T]: React.ComponentType<T[key]> | {
26
+ Wrapper: React.ComponentType<{
27
+ open?: boolean;
28
+ onOpenChange?: (open: boolean) => void;
29
+ children?: React.ReactNode;
30
+ defaultOpen?: boolean;
31
+ }>;
32
+ Component: React.ComponentType<T[key]>;
33
+ }; }[T_1] ? T_4 extends React.ComponentType<infer P> | React.Component<infer P, {}, any> | {
34
+ Component: React.ComponentType<infer P>;
35
+ } ? P : never : never : never) extends infer T_3 ? { [K in keyof T_3]: T_3[K]; } : never) & Record<never, never>>(name: T_1, ...args: (keyof ({ [K_1 in keyof B]: B[K_1]; } & Record<never, never> extends Record<string | number | symbol, unknown> ? { [K_1 in keyof B]: B[K_1]; } & Record<never, never> : never) extends never ? never : { [K_1 in keyof B]: B[K_1]; } & Record<never, never> extends Record<string | number | symbol, unknown> ? { [K_1 in keyof B]: B[K_1]; } & Record<never, never> : never) extends never ? [] : [props: B]) => void;
36
+ popModal: (name?: keyof T) => void;
37
+ popAllModals: () => void;
38
+ replaceWithModal: <T_1 extends keyof T, B extends { [key in keyof T]: React.ComponentType<T[key]> | {
39
+ Wrapper: React.ComponentType<{
40
+ open?: boolean;
41
+ onOpenChange?: (open: boolean) => void;
42
+ children?: React.ReactNode;
43
+ defaultOpen?: boolean;
44
+ }>;
45
+ Component: React.ComponentType<T[key]>;
46
+ }; }[T_1] extends infer T_2 ? T_2 extends { [key in keyof T]: React.ComponentType<T[key]> | {
47
+ Wrapper: React.ComponentType<{
48
+ open?: boolean;
49
+ onOpenChange?: (open: boolean) => void;
50
+ children?: React.ReactNode;
51
+ defaultOpen?: boolean;
52
+ }>;
53
+ Component: React.ComponentType<T[key]>;
54
+ }; }[T_1] ? T_2 extends React.ComponentType<infer P> | React.Component<infer P, {}, any> | {
55
+ Component: React.ComponentType<infer P>;
56
+ } ? P : never : never : never>(name: T_1, ...args: (keyof ({ [K in keyof B]: B[K]; } & Record<never, never> extends Record<string | number | symbol, unknown> ? { [K in keyof B]: B[K]; } & Record<never, never> : never) extends never ? never : { [K in keyof B]: B[K]; } & Record<never, never> extends Record<string | number | symbol, unknown> ? { [K in keyof B]: B[K]; } & Record<never, never> : never) extends never ? [] : [props: B]) => void;
57
+ onPushModal: <T_1 extends keyof T>(name: T_1 | "*", callback: (open: boolean, props: { [key in keyof T]: React.ComponentType<T[key]> | {
58
+ Wrapper: React.ComponentType<{
59
+ open?: boolean;
60
+ onOpenChange?: (open: boolean) => void;
61
+ children?: React.ReactNode;
62
+ defaultOpen?: boolean;
63
+ }>;
64
+ Component: React.ComponentType<T[key]>;
65
+ }; }[T_1] extends infer T_2 ? T_2 extends { [key in keyof T]: React.ComponentType<T[key]> | {
66
+ Wrapper: React.ComponentType<{
67
+ open?: boolean;
68
+ onOpenChange?: (open: boolean) => void;
69
+ children?: React.ReactNode;
70
+ defaultOpen?: boolean;
71
+ }>;
72
+ Component: React.ComponentType<T[key]>;
73
+ }; }[T_1] ? T_2 extends React.ComponentType<infer P> | React.Component<infer P, {}, any> | {
74
+ Component: React.ComponentType<infer P>;
75
+ } ? P : never : never : never, name?: T_1 | undefined) => void) => () => void;
76
+ onCloseModal: <T_1 extends keyof T>(name: T_1 | "*", callback: (props: { [key in keyof T]: React.ComponentType<T[key]> | {
77
+ Wrapper: React.ComponentType<{
78
+ open?: boolean;
79
+ onOpenChange?: (open: boolean) => void;
80
+ children?: React.ReactNode;
81
+ defaultOpen?: boolean;
82
+ }>;
83
+ Component: React.ComponentType<T[key]>;
84
+ }; }[T_1] extends infer T_2 ? T_2 extends { [key in keyof T]: React.ComponentType<T[key]> | {
85
+ Wrapper: React.ComponentType<{
86
+ open?: boolean;
87
+ onOpenChange?: (open: boolean) => void;
88
+ children?: React.ReactNode;
89
+ defaultOpen?: boolean;
90
+ }>;
91
+ Component: React.ComponentType<T[key]>;
92
+ }; }[T_1] ? T_2 extends React.ComponentType<infer P> | React.Component<infer P, {}, any> | {
93
+ Component: React.ComponentType<infer P>;
94
+ } ? P : never : never : never, name?: T_1 | undefined) => void, options?: {
95
+ delay?: number;
96
+ }) => () => void;
97
+ useOnPushModal: <T_1 extends keyof T>(name: T_1 | "*", callback: (open: boolean, props: { [key in keyof T]: React.ComponentType<T[key]> | {
98
+ Wrapper: React.ComponentType<{
99
+ open?: boolean;
100
+ onOpenChange?: (open: boolean) => void;
101
+ children?: React.ReactNode;
102
+ defaultOpen?: boolean;
103
+ }>;
104
+ Component: React.ComponentType<T[key]>;
105
+ }; }[T_1] extends infer T_2 ? T_2 extends { [key in keyof T]: React.ComponentType<T[key]> | {
106
+ Wrapper: React.ComponentType<{
107
+ open?: boolean;
108
+ onOpenChange?: (open: boolean) => void;
109
+ children?: React.ReactNode;
110
+ defaultOpen?: boolean;
111
+ }>;
112
+ Component: React.ComponentType<T[key]>;
113
+ }; }[T_1] ? T_2 extends React.ComponentType<infer P> | React.Component<infer P, {}, any> | {
114
+ Component: React.ComponentType<infer P>;
115
+ } ? P : never : never : never, name?: T_1 | undefined) => void) => void;
116
+ useOnCloseModal: <T_1 extends keyof T>(name: T_1 | "*", callback: (props: { [key in keyof T]: React.ComponentType<T[key]> | {
117
+ Wrapper: React.ComponentType<{
118
+ open?: boolean;
119
+ onOpenChange?: (open: boolean) => void;
120
+ children?: React.ReactNode;
121
+ defaultOpen?: boolean;
122
+ }>;
123
+ Component: React.ComponentType<T[key]>;
124
+ }; }[T_1] extends infer T_2 ? T_2 extends { [key in keyof T]: React.ComponentType<T[key]> | {
125
+ Wrapper: React.ComponentType<{
126
+ open?: boolean;
127
+ onOpenChange?: (open: boolean) => void;
128
+ children?: React.ReactNode;
129
+ defaultOpen?: boolean;
130
+ }>;
131
+ Component: React.ComponentType<T[key]>;
132
+ }; }[T_1] ? T_2 extends React.ComponentType<infer P> | React.Component<infer P, {}, any> | {
133
+ Component: React.ComponentType<infer P>;
134
+ } ? P : never : never : never, name?: T_1 | undefined) => void, options?: {
135
+ delay?: number;
136
+ }) => void;
137
+ };
138
+ export {};
139
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/lib/factory.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { FieldValues, UseFormProps, UseFormReturn } from 'react-hook-form';
2
+ export interface WrapperProps {
3
+ open?: boolean;
4
+ onOpenChange?: (open: boolean) => void;
5
+ children?: React.ReactNode;
6
+ defaultOpen?: boolean;
7
+ modal?: boolean;
8
+ }
9
+ export interface ContentProps {
10
+ children?: React.ReactNode;
11
+ className?: string;
12
+ onAnimationEnd?: (...args: unknown[]) => void;
13
+ onOpenAutoFocus?: (event: Event) => void;
14
+ onCloseAutoFocus?: (event: Event) => void;
15
+ onEscapeKeyDown?: (event: KeyboardEvent) => void;
16
+ onPointerDownOutside?: (event: Event) => void;
17
+ onInteractOutside?: (event: Event) => void;
18
+ [key: string]: unknown;
19
+ }
20
+ type Options = {
21
+ mobile: {
22
+ Wrapper: React.ComponentType<WrapperProps>;
23
+ Content: React.ComponentType<ContentProps>;
24
+ };
25
+ desktop: {
26
+ Wrapper: React.ComponentType<WrapperProps>;
27
+ Content: React.ComponentType<ContentProps>;
28
+ };
29
+ breakpoint?: number;
30
+ };
31
+ export interface ResponsiveWrapperReturn {
32
+ Wrapper: React.ComponentType<WrapperProps>;
33
+ Content: React.ComponentType<ContentProps>;
34
+ usePreservedState: <T>(key: string, initialValue: T) => [T, React.Dispatch<React.SetStateAction<T>>];
35
+ usePreservedForm: <T extends FieldValues>(key: string, options: UseFormProps<T>) => UseFormReturn<T>;
36
+ }
37
+ export declare function createResponsiveWrapper({ mobile, desktop, breakpoint, }: Options): ResponsiveWrapperReturn;
38
+ export {};
39
+ //# sourceMappingURL=responsive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responsive.d.ts","sourceRoot":"","sources":["../../src/lib/responsive.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAiB,YAAY,EAAE,aAAa,EAAW,MAAM,iBAAiB,CAAA;AAGlG,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;IAC7C,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IACxC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IACzC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;IAChD,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAC7C,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAC1C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,KAAK,OAAO,GAAG;IACb,MAAM,EAAE;QACN,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAA;QAC1C,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAA;KAC3C,CAAA;IACD,OAAO,EAAE;QACP,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAA;QAC1C,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAA;KAC3C,CAAA;IACD,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAA;IAC1C,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAA;IAC1C,iBAAiB,EAAE,CAAC,CAAC,EACnB,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,CAAC,KACZ,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACjD,gBAAgB,EAAE,CAAC,CAAC,SAAS,WAAW,EACtC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,KACrB,aAAa,CAAC,CAAC,CAAC,CAAA;CACtB;AAED,wBAAgB,uBAAuB,CAAC,EACtC,MAAM,EACN,OAAO,EACP,UAAgB,GACjB,EAAE,OAAO,GAAG,uBAAuB,CAqInC"}
package/package.json ADDED
@@ -0,0 +1,86 @@
1
+ {
2
+ "name": "@zxkit/surface",
3
+ "version": "1.0.0",
4
+ "description": "",
5
+ "author": "nxtvoid",
6
+ "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/nxtvoid/zxkit/tree/main/packages/surface"
10
+ },
11
+ "keywords": [
12
+ "shadcn",
13
+ "shadcn-ui",
14
+ "surface",
15
+ "shadcn dialog",
16
+ "shadcn drawer",
17
+ "shadcn modal",
18
+ "react",
19
+ "nextjs"
20
+ ],
21
+ "type": "module",
22
+ "main": "./dist/index.cjs",
23
+ "module": "./dist/index.js",
24
+ "types": "./dist/index.d.ts",
25
+ "exports": {
26
+ ".": {
27
+ "import": {
28
+ "types": "./dist/index.d.ts",
29
+ "default": "./dist/index.js"
30
+ },
31
+ "require": {
32
+ "types": "./dist/index.d.cts",
33
+ "default": "./dist/index.cjs"
34
+ }
35
+ }
36
+ },
37
+ "files": [
38
+ "dist",
39
+ "README.md",
40
+ "LICENSE",
41
+ "CHANGELOG.md"
42
+ ],
43
+ "sideEffects": false,
44
+ "scripts": {
45
+ "dev": "rollup -c --watch",
46
+ "build": "rollup -c",
47
+ "clean": "rm -rf dist",
48
+ "lint": "eslint . --max-warnings 0",
49
+ "check-types": "tsc --noEmit",
50
+ "format": "prettier --write \"**/*.{js,ts,tsx,md,json,mjs,css}\"",
51
+ "format:check": "prettier --check \"**/*.{js,ts,tsx,md,json,mjs,css}\""
52
+ },
53
+ "bugs": {
54
+ "url": "https://github.com/nxtvoid/zxkit/issues"
55
+ },
56
+ "homepage": "https://github.com/nxtvoid/zxkit/tree/main/packages/surface#readme",
57
+ "devDependencies": {
58
+ "@rollup-extras/plugin-clean": "^1.3.9",
59
+ "@rollup/plugin-babel": "^6.1.0",
60
+ "@rollup/plugin-commonjs": "^29.0.0",
61
+ "@rollup/plugin-node-resolve": "^16.0.3",
62
+ "@rollup/plugin-terser": "^0.4.4",
63
+ "@rollup/plugin-typescript": "^12.3.0",
64
+ "@workspace/eslint-config": "*",
65
+ "@workspace/typescript-config": "*",
66
+ "eslint": "^9.32.0",
67
+ "@types/node": "^25.3.0",
68
+ "@types/react": "^19.2.14",
69
+ "radix-ui": "^1.4.3",
70
+ "react": "^19.2.4",
71
+ "react-hook-form": "^7.71.2",
72
+ "rollup": "^4.59.0",
73
+ "rollup-plugin-dts": "^6.3.0",
74
+ "rollup-plugin-peer-deps-external": "^2.2.4",
75
+ "rollup-preserve-directives": "^1.1.3",
76
+ "typescript": "^5.9.3"
77
+ },
78
+ "peerDependencies": {
79
+ "react": "^18.0.0 || ^19.0.0",
80
+ "react-hook-form": "^7.0.0",
81
+ "radix-ui": "^1.0.0"
82
+ },
83
+ "dependencies": {
84
+ "mitt": "^3.0.1"
85
+ }
86
+ }