mado-ui 0.5.5 → 0.5.7

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 (60) hide show
  1. package/css/index.css +100 -13
  2. package/dist/components/drop-down.d.ts +12 -12
  3. package/dist/components/drop-down.d.ts.map +1 -1
  4. package/dist/components/form/human-verification.d.ts +15 -0
  5. package/dist/components/form/human-verification.d.ts.map +1 -0
  6. package/dist/components/form/index.d.ts +0 -1
  7. package/dist/components/form/index.d.ts.map +1 -1
  8. package/dist/components/form/input/date/index.d.ts +16 -36
  9. package/dist/components/form/input/date/index.d.ts.map +1 -1
  10. package/dist/components/form/input/index.d.ts +91 -8
  11. package/dist/components/form/input/index.d.ts.map +1 -1
  12. package/dist/components/link.d.ts +14 -13
  13. package/dist/components/link.d.ts.map +1 -1
  14. package/dist/components/tooltip.d.ts +7 -7
  15. package/dist/components/tooltip.d.ts.map +1 -1
  16. package/dist/components/video.d.ts +6 -6
  17. package/dist/components/video.d.ts.map +1 -1
  18. package/dist/components.d.ts +96 -194
  19. package/dist/components.esm.js +624 -782
  20. package/dist/components.esm.js.map +1 -1
  21. package/dist/components.js +621 -779
  22. package/dist/components.js.map +1 -1
  23. package/dist/graphics.esm.js +2 -2
  24. package/dist/graphics.esm.js.map +1 -1
  25. package/dist/graphics.js +2 -2
  26. package/dist/graphics.js.map +1 -1
  27. package/dist/hooks/use-fieldset-context.d.ts.map +1 -1
  28. package/dist/hooks/use-form-context.d.ts +5 -5
  29. package/dist/hooks/use-form-context.d.ts.map +1 -1
  30. package/dist/hooks.d.ts +5 -5
  31. package/dist/hooks.esm.js.map +1 -1
  32. package/dist/hooks.js.map +1 -1
  33. package/dist/icons/index.d.ts +142 -143
  34. package/dist/icons/index.d.ts.map +1 -1
  35. package/dist/icons/square-and-arrow-up-right.d.ts +3 -0
  36. package/dist/icons/square-and-arrow-up-right.d.ts.map +1 -0
  37. package/dist/icons/square-and-pencil.d.ts +2 -2
  38. package/dist/icons/square-and-pencil.d.ts.map +1 -1
  39. package/dist/icons.d.ts +2 -4
  40. package/dist/icons.esm.js +2 -6
  41. package/dist/icons.esm.js.map +1 -1
  42. package/dist/icons.js +1 -6
  43. package/dist/icons.js.map +1 -1
  44. package/dist/index.d.ts +96 -194
  45. package/dist/index.esm.js +624 -782
  46. package/dist/index.esm.js.map +1 -1
  47. package/dist/index.js +621 -779
  48. package/dist/index.js.map +1 -1
  49. package/dist/utils/get-date.d.ts +20 -32
  50. package/dist/utils/get-date.d.ts.map +1 -1
  51. package/dist/utils.d.ts +22 -34
  52. package/dist/utils.esm.js +40 -1064
  53. package/dist/utils.esm.js.map +1 -1
  54. package/dist/utils.js +41 -1067
  55. package/dist/utils.js.map +1 -1
  56. package/package.json +88 -100
  57. package/dist/components/form/input/date/views/index.d.ts +0 -5
  58. package/dist/components/form/input/date/views/index.d.ts.map +0 -1
  59. package/dist/icons/square-and-pencil-fill.d.ts +0 -3
  60. package/dist/icons/square-and-pencil-fill.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.esm.js","sources":["../src/hooks/create-fast-context.tsx","../src/hooks/use-form-context.tsx","../src/hooks/use-fieldset-context.tsx","../src/hooks/use-form-status.tsx","../src/hooks/use-pointer-movement.ts"],"sourcesContent":["// * React\nimport { HTMLAttributes, useRef, createContext, useContext, useSyncExternalStore } from 'react'\n\nexport function createFastContext<Store>(defaultInitialState: Store) {\n\tfunction useStoreData(initialState: Store = defaultInitialState): {\n\t\tget: () => Store\n\t\tset: (value: Store | ((prevState: Store) => Store)) => void\n\t\tsubscribe: (callback: () => void) => () => void\n\t} {\n\t\tconst store = useRef(initialState),\n\t\t\tget = () => store.current,\n\t\t\tsubscribers = useRef(new Set<() => void>())\n\n\t\tconst set = (value: Store | ((prevState: Store) => Store)) => {\n\t\t\tif (typeof value === 'function') {\n\t\t\t\tstore.current = (value as (prevState: Store) => Store)(store.current)\n\t\t\t} else {\n\t\t\t\tstore.current = value\n\t\t\t}\n\t\t\tsubscribers.current.forEach(callback => callback())\n\t\t}\n\n\t\tconst subscribe = (callback: () => void) => {\n\t\t\tsubscribers.current.add(callback)\n\t\t\treturn () => subscribers.current.delete(callback)\n\t\t}\n\n\t\treturn {\n\t\t\tget,\n\t\t\tset,\n\t\t\tsubscribe,\n\t\t}\n\t}\n\n\ttype UseStoreDataReturnType = ReturnType<typeof useStoreData>\n\n\tconst StoreContext = createContext<UseStoreDataReturnType | null>(null)\n\n\tfunction Provider({\n\t\tinitialValue = defaultInitialState,\n\t\t...props\n\t}: Pick<HTMLAttributes<HTMLElement>, 'children'> & { initialValue?: Store }) {\n\t\treturn <StoreContext.Provider value={useStoreData(initialValue)} {...props} />\n\t}\n\n\tfunction useStore<SelectorOutput>(\n\t\tselector: (store: Store) => SelectorOutput,\n\t\tinitialValue?: Store,\n\t): [SelectorOutput | undefined, ((value: Store | ((prevState: Store) => Store)) => void) | undefined] {\n\t\tconst store = useContext(StoreContext)\n\n\t\tif (!store) {\n\t\t\tconst localStoreValue = initialValue !== undefined ? initialValue : defaultInitialState\n\n\t\t\tconst selectedValue = selector(localStoreValue)\n\t\t\tconst noOpSet = () => console.warn('Attempting to set store value outside of Provider')\n\n\t\t\treturn [selectedValue, noOpSet]\n\t\t}\n\n\t\tconst state = useSyncExternalStore(\n\t\t\tstore.subscribe,\n\t\t\t() => selector(store.get()),\n\t\t\t() => selector(initialValue !== undefined ? initialValue : defaultInitialState),\n\t\t)\n\n\t\treturn [state, store.set]\n\t}\n\n\treturn {\n\t\tProvider,\n\t\tuseStore,\n\t}\n}\n","// * Types\nexport type FieldType = 'array' | 'email' | 'file' | 'number' | 'object' | 'string' | 'tel' | 'textarea' | 'url'\n\nexport type StringField = {\n\ttype: 'email' | 'file' | 'number' | 'string' | 'tel' | 'textarea' | 'url'\n\tvalue: string\n}\n\nexport type ObjectField = { type: 'object'; fields: Field[] }\n\nexport type ArrayField = { type: 'array'; of: ArrayObjectOrNormalField[] }\n\ntype ArrayObjectOrNormalField = StringField | ArrayField | ObjectField\n\nexport type Field<T extends StringField | ArrayField | ObjectField = ArrayObjectOrNormalField> = T & {\n\tid: string\n\tname: string\n\trequired?: boolean\n\tinvalid?: boolean\n}\n\nexport type FormContext = Field[]\n\n// * React\nimport { ReactNode, useCallback } from 'react'\n\n// * Hooks\nimport { createFastContext } from './create-fast-context'\n\n/**\n * # Define Field\n *\n * This is a helper function to define a field in a form context with type safety.\n */\nexport function defineField(fieldDefinition: Field) {\n\treturn fieldDefinition\n}\n\nexport function isStringField(field: Field) {\n\treturn Boolean(field.type !== 'object' && field.type !== 'array')\n}\n\nconst { Provider, useStore } = createFastContext<FormContext>([])\n\nexport function FormContextProvider({ children }: { children?: ReactNode }) {\n\treturn <Provider>{children}</Provider>\n}\n\nexport function useFormContext() {\n\tconst [formContext, setFormContext] = useStore(store => store)\n\n\tconst registerField = useCallback((field: Field) => {\n\t\tsetFormContext?.(prevContext => {\n\t\t\tconst otherFields = (prevContext || []).filter(otherField => otherField.id !== field.id)\n\n\t\t\treturn [...otherFields, field]\n\t\t})\n\t}, [])\n\n\tconst removeField = useCallback((fieldID: string) => {\n\t\tsetFormContext?.(prevContext => (prevContext || []).filter(field => field.id !== fieldID))\n\t}, [])\n\n\tconst updateField = useCallback((fieldID: string, updates: Partial<Field>) => {\n\t\tsetFormContext?.(prevContext => {\n\t\t\tconst field = prevContext.find(({ id }) => id === fieldID)\n\n\t\t\tif (!field) throw new Error(`Field with id \"${fieldID}\" not found in form context.`)\n\n\t\t\tconst otherFields = prevContext.filter(({ id }) => id !== fieldID)\n\n\t\t\tconst updatedField = { ...field, ...updates } as Field\n\n\t\t\treturn [...otherFields, updatedField]\n\t\t})\n\t}, [])\n\n\treturn [formContext, { registerField, removeField, updateField }] as const\n}\n","// * Types\nimport { defineField, Field, isStringField, StringField, useFormContext } from './use-form-context'\n\nexport type FieldsetContextValue = {\n\tfieldList: Field[]\n\tdecorative: boolean\n\tid: string\n\tjoin?: string\n\tname: string\n}\n\nexport type FieldsetContext = [\n\tFieldsetContextValue | undefined,\n\t{\n\t\tregisterField: (field: Field) => void\n\t\tremoveField: (fieldID: string) => void\n\t\tupdateField: (fieldID: string, updates: Partial<Field>) => void\n\t},\n]\n\n// * React\nimport { FieldsetHTMLAttributes, ReactNode, useCallback, useEffect } from 'react'\n\n// * Hooks\nimport { createFastContext } from './create-fast-context'\n\nconst { Provider, useStore } = createFastContext<FieldsetContextValue | undefined>(undefined)\n\nexport function FieldsetContextProvider({\n\tchildren,\n\tinitialValue,\n}: {\n\tchildren?: ReactNode\n\tinitialValue?: FieldsetContextValue\n}) {\n\treturn <Provider initialValue={initialValue}>{children}</Provider>\n}\n\nexport function useFieldsetContext(): FieldsetContext {\n\tconst [fieldsetContext, setFieldsetContext] = useStore(store => store),\n\t\t[, formContextFunctions] = useFormContext()\n\n\tconst registerField = useCallback((field: Field) => {\n\t\tsetFieldsetContext?.(prev => {\n\t\t\tif (!prev) return prev\n\n\t\t\tconst existingFieldIndex = prev.fieldList.findIndex(existingField => existingField.id === field.id)\n\n\t\t\tconst newFieldList =\n\t\t\t\texistingFieldIndex >= 0\n\t\t\t\t\t? prev.fieldList.map((existingField, index) => (index === existingFieldIndex ? field : existingField))\n\t\t\t\t\t: [...prev.fieldList, field]\n\n\t\t\treturn { ...prev, fieldList: newFieldList }\n\t\t})\n\t}, [])\n\n\tconst removeField = useCallback((fieldID: string) => {\n\t\tsetFieldsetContext?.(prev => {\n\t\t\tif (!prev) return prev\n\n\t\t\treturn {\n\t\t\t\t...prev,\n\t\t\t\tfieldList: prev.fieldList.filter(field => field.id !== fieldID),\n\t\t\t}\n\t\t})\n\t}, [])\n\n\tconst updateField = useCallback((fieldID: string, updates: Partial<Field>) => {\n\t\tsetFieldsetContext?.(prev => {\n\t\t\tif (!prev) return prev\n\n\t\t\treturn {\n\t\t\t\t...prev,\n\t\t\t\tfieldList: prev.fieldList.map(field => (field.id === fieldID ? ({ ...field, ...updates } as Field) : field)),\n\t\t\t}\n\t\t})\n\t}, [])\n\n\tconst createFormContextEntry = useCallback((fieldsetEntry: FieldsetContextValue): Field => {\n\t\tif (fieldsetEntry.join) {\n\t\t\tconst joinedValue = fieldsetEntry.fieldList\n\t\t\t\t.filter(field => isStringField(field) && (field as Field<StringField>).value !== '')\n\t\t\t\t.map(field => (field as Field<StringField>).value)\n\t\t\t\t.join(fieldsetEntry.join)\n\n\t\t\treturn defineField({\n\t\t\t\ttype: 'string',\n\t\t\t\tid: fieldsetEntry.id,\n\t\t\t\tname: fieldsetEntry.name,\n\t\t\t\tvalue: joinedValue,\n\t\t\t\trequired: fieldsetEntry.fieldList.some(field => (field as Field<StringField>).required),\n\t\t\t\tinvalid: fieldsetEntry.fieldList.some(field => (field as Field<StringField>).invalid),\n\t\t\t})\n\t\t}\n\n\t\treturn defineField({\n\t\t\ttype: 'object',\n\t\t\tid: fieldsetEntry.id,\n\t\t\tname: fieldsetEntry.name,\n\t\t\tfields: fieldsetEntry.fieldList,\n\t\t})\n\t}, [])\n\n\tuseEffect(() => {\n\t\tif (!fieldsetContext || fieldsetContext.decorative) return\n\n\t\tconst formContextEntry = createFormContextEntry(fieldsetContext)\n\n\t\tformContextFunctions.registerField(formContextEntry)\n\n\t\treturn () => {\n\t\t\tformContextFunctions.removeField(fieldsetContext.id)\n\t\t}\n\t}, [fieldsetContext, formContextFunctions.registerField, formContextFunctions.removeField, createFormContextEntry])\n\n\treturn [fieldsetContext, { registerField, removeField, updateField }]\n}\n","// * Types\nimport { ReactNode, Suspense } from 'react'\n\nexport type FormStatus = 'error' | 'incomplete' | 'loading' | 'ready' | 'success' | 'readonly'\n\n// * Hooks\nimport { createFastContext } from './create-fast-context'\n\nconst DEFAULT_STATUS: FormStatus = 'incomplete'\n\nconst { Provider, useStore } = createFastContext<FormStatus>(DEFAULT_STATUS)\n\nexport function FormStatusProvider({\n\tchildren,\n\tinitialStatus = DEFAULT_STATUS,\n}: {\n\tchildren?: ReactNode\n\tinitialStatus?: FormStatus\n}) {\n\treturn (\n\t\t<Suspense>\n\t\t\t<Provider initialValue={initialStatus}>{children}</Provider>\n\t\t</Suspense>\n\t)\n}\n\nexport function useFormStatus() {\n\treturn useStore(store => store)\n}\n","import React, { useCallback, useEffect, useId, useRef, useState } from 'react'\n\nexport type Coords = { x: number; y: number }\n\nexport type Cursor =\n\t| 'alias'\n\t| 'all-scroll'\n\t| 'auto'\n\t| 'cell'\n\t| 'col-resize'\n\t| 'context-menu'\n\t| 'copy'\n\t| 'crosshair'\n\t| 'default'\n\t| 'e-resize'\n\t| 'ew-resize'\n\t| 'grab'\n\t| 'grabbing'\n\t| 'help'\n\t| 'move'\n\t| 'no-drop'\n\t| 'not-allowed'\n\t| 'n-resize'\n\t| 'ne-resize'\n\t| 'nw-resize'\n\t| 'ns-resize'\n\t| 'nesw-resize'\n\t| 'nwse-resize'\n\t| 'pointer'\n\t| 'progress'\n\t| 'row-resize'\n\t| 's-resize'\n\t| 'se-resize'\n\t| 'sw-resize'\n\t| 'text'\n\t| 'vertical-text'\n\t| 'w-resize'\n\t| 'wait'\n\t| 'zoom-in'\n\t| 'zoom-out'\n\nexport type UsePointerMovementProps = {\n\tactiveCursor?: Cursor\n\tonChange?: (delta: Coords) => void\n\tonEnd?: (delta: Coords) => void\n}\n\nexport function usePointerMovement(props?: UsePointerMovementProps) {\n\tconst pointerTypeRef = useRef<'mouse' | 'pointer' | 'touch'>('pointer'),\n\t\t[isTracking, setIsTracking] = useState(false),\n\t\t[delta, setDelta] = useState<Coords>({ x: 0, y: 0 }),\n\t\tstartCoordsRef = useRef<Coords>({ x: 0, y: 0 })\n\n\tconst styleID = useId()\n\n\tconst changeCursor = (cursor: Cursor | false) => {\n\t\tif (cursor === false) {\n\t\t\tdocument.querySelector<HTMLStyleElement>(`#${styleID}`)?.remove()\n\t\t\treturn\n\t\t}\n\n\t\tconst css = `*, *:active { cursor: ${cursor}; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; user-select: none; }`\n\n\t\tconst style = document.createElement('style')\n\n\t\tstyle.id = styleID\n\t\tstyle.innerHTML = css\n\n\t\tdocument.body.prepend(style)\n\t}\n\n\tconst trackPointerMovement = (\n\t\te: React.MouseEvent<HTMLElement> | React.PointerEvent<HTMLElement> | React.TouchEvent<HTMLElement>,\n\t) => {\n\t\tchangeCursor(props?.activeCursor || 'grabbing')\n\n\t\tconst { type } = e\n\n\t\tswitch (type) {\n\t\t\tcase 'mousemove':\n\t\t\tcase 'mouseup':\n\t\t\tcase 'pointermove':\n\t\t\tcase 'pointerup':\n\t\t\tcase 'touchmove':\n\t\t\tcase 'touchend':\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'To initiate the tracking of pointer movement, you must use a `mousedown`, `pointerdown`, or `touchstart`.',\n\t\t\t\t)\n\t\t\tcase 'mousedown':\n\t\t\t\tpointerTypeRef.current = 'mouse'\n\t\t\t\tbreak\n\t\t\tcase 'pointerdown':\n\t\t\t\tpointerTypeRef.current = 'pointer'\n\t\t\t\tbreak\n\t\t\tcase 'touchstart':\n\t\t\t\tpointerTypeRef.current = 'touch'\n\t\t\t\tbreak\n\t\t}\n\n\t\tlet x = 0,\n\t\t\ty = 0\n\n\t\tif ('touches' in e) {\n\t\t\tconst { touches } = e\n\n\t\t\tif (touches.length > 1) return\n\n\t\t\tx = touches[0].clientX\n\t\t\ty = touches[0].clientY\n\t\t} else {\n\t\t\tx = e.clientX\n\t\t\ty = e.clientY\n\t\t}\n\n\t\tstartCoordsRef.current = { x, y }\n\t\tsetIsTracking(true)\n\t}\n\n\tconst updateDelta = useCallback((e: MouseEvent | PointerEvent | TouchEvent) => {\n\t\tlet clientX = 0,\n\t\t\tclientY = 0\n\n\t\tif ('touches' in e) {\n\t\t\tconst { touches } = e\n\n\t\t\tif (touches.length > 1) return\n\n\t\t\tclientX = touches[0].clientX\n\t\t\tclientY = touches[0].clientY\n\t\t} else {\n\t\t\tclientX = e.clientX\n\t\t\tclientY = e.clientY\n\t\t}\n\n\t\tconst { x, y } = startCoordsRef.current,\n\t\t\tnewDelta = { x: clientX - x, y: clientY - y }\n\n\t\tsetDelta(newDelta)\n\t\tprops?.onChange?.(newDelta)\n\t}, [])\n\n\tconst stopTracking = useCallback(() => {\n\t\tchangeCursor(false)\n\t\tsetIsTracking(false)\n\t\tprops?.onEnd?.(delta)\n\t}, [delta])\n\n\tuseEffect(() => {\n\t\tif (typeof window === 'undefined') return\n\n\t\tconst controller = new AbortController(),\n\t\t\tsignal = controller.signal\n\n\t\tif (isTracking) {\n\t\t\tswitch (pointerTypeRef.current) {\n\t\t\t\tcase 'mouse':\n\t\t\t\t\tdocument.body.addEventListener('mousemove', updateDelta, { signal })\n\t\t\t\t\tdocument.body.addEventListener('mouseup', stopTracking, { signal })\n\t\t\t\t\tbreak\n\t\t\t\tcase 'pointer':\n\t\t\t\t\tdocument.body.addEventListener('pointermove', updateDelta, { signal })\n\t\t\t\t\tdocument.body.addEventListener('pointerup', stopTracking, { signal })\n\t\t\t\t\tbreak\n\t\t\t\tcase 'touch':\n\t\t\t\t\tdocument.body.addEventListener('touchmove', updateDelta, { signal })\n\t\t\t\t\tdocument.body.addEventListener('touchend', stopTracking, { signal })\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t} else {\n\t\t\tcontroller.abort()\n\t\t}\n\n\t\treturn () => {\n\t\t\tcontroller.abort()\n\t\t}\n\t}, [isTracking, updateDelta, stopTracking])\n\n\treturn { delta, stopTracking, trackPointerMovement }\n}\n"],"names":["_jsx","Provider","useStore"],"mappings":"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"}
1
+ {"version":3,"file":"hooks.esm.js","sources":["../src/hooks/create-fast-context.tsx","../src/hooks/use-form-context.tsx","../src/hooks/use-fieldset-context.tsx","../src/hooks/use-form-status.tsx","../src/hooks/use-pointer-movement.ts"],"sourcesContent":["// * React\nimport { HTMLAttributes, useRef, createContext, useContext, useSyncExternalStore } from 'react'\n\nexport function createFastContext<Store>(defaultInitialState: Store) {\n\tfunction useStoreData(initialState: Store = defaultInitialState): {\n\t\tget: () => Store\n\t\tset: (value: Store | ((prevState: Store) => Store)) => void\n\t\tsubscribe: (callback: () => void) => () => void\n\t} {\n\t\tconst store = useRef(initialState),\n\t\t\tget = () => store.current,\n\t\t\tsubscribers = useRef(new Set<() => void>())\n\n\t\tconst set = (value: Store | ((prevState: Store) => Store)) => {\n\t\t\tif (typeof value === 'function') {\n\t\t\t\tstore.current = (value as (prevState: Store) => Store)(store.current)\n\t\t\t} else {\n\t\t\t\tstore.current = value\n\t\t\t}\n\t\t\tsubscribers.current.forEach(callback => callback())\n\t\t}\n\n\t\tconst subscribe = (callback: () => void) => {\n\t\t\tsubscribers.current.add(callback)\n\t\t\treturn () => subscribers.current.delete(callback)\n\t\t}\n\n\t\treturn {\n\t\t\tget,\n\t\t\tset,\n\t\t\tsubscribe,\n\t\t}\n\t}\n\n\ttype UseStoreDataReturnType = ReturnType<typeof useStoreData>\n\n\tconst StoreContext = createContext<UseStoreDataReturnType | null>(null)\n\n\tfunction Provider({\n\t\tinitialValue = defaultInitialState,\n\t\t...props\n\t}: Pick<HTMLAttributes<HTMLElement>, 'children'> & { initialValue?: Store }) {\n\t\treturn <StoreContext.Provider value={useStoreData(initialValue)} {...props} />\n\t}\n\n\tfunction useStore<SelectorOutput>(\n\t\tselector: (store: Store) => SelectorOutput,\n\t\tinitialValue?: Store,\n\t): [SelectorOutput | undefined, ((value: Store | ((prevState: Store) => Store)) => void) | undefined] {\n\t\tconst store = useContext(StoreContext)\n\n\t\tif (!store) {\n\t\t\tconst localStoreValue = initialValue !== undefined ? initialValue : defaultInitialState\n\n\t\t\tconst selectedValue = selector(localStoreValue)\n\t\t\tconst noOpSet = () => console.warn('Attempting to set store value outside of Provider')\n\n\t\t\treturn [selectedValue, noOpSet]\n\t\t}\n\n\t\tconst state = useSyncExternalStore(\n\t\t\tstore.subscribe,\n\t\t\t() => selector(store.get()),\n\t\t\t() => selector(initialValue !== undefined ? initialValue : defaultInitialState),\n\t\t)\n\n\t\treturn [state, store.set]\n\t}\n\n\treturn {\n\t\tProvider,\n\t\tuseStore,\n\t}\n}\n","// * Types\nexport type FieldType = 'array' | 'email' | 'file' | 'number' | 'object' | 'string' | 'tel' | 'textarea' | 'url'\n\nexport type StringField = {\n\ttype: 'email' | 'file' | 'number' | 'string' | 'tel' | 'textarea' | 'url'\n\tvalue: string\n\trequired?: boolean\n\tinvalid?: boolean\n}\n\nexport type ObjectField = { type: 'object'; fields: Field[] }\n\nexport type ArrayField = { type: 'array'; of: ArrayObjectOrNormalField }\n\ntype ArrayObjectOrNormalField = StringField | ArrayField | ObjectField\n\nexport type Field = ArrayObjectOrNormalField & {\n\tid: string\n\tname: string\n}\n\nexport type FormContext = Field[]\n\n// * React\nimport { ReactNode, useCallback } from 'react'\n\n// * Hooks\nimport { createFastContext } from './create-fast-context'\n\n/**\n * # Define Field\n *\n * This is a helper function to define a field in a form context with type safety.\n */\nexport function defineField(fieldDefinition: Field) {\n\treturn fieldDefinition\n}\n\nexport function isStringField(field: Field) {\n\treturn Boolean(field.type !== 'object' && field.type !== 'array')\n}\n\nconst { Provider, useStore } = createFastContext<FormContext>([])\n\nexport function FormContextProvider({ children }: { children?: ReactNode }) {\n\treturn <Provider>{children}</Provider>\n}\n\nexport function useFormContext() {\n\tconst [formContext, setFormContext] = useStore(store => store)\n\n\tconst registerField = useCallback((field: Field) => {\n\t\tsetFormContext?.(prevContext => {\n\t\t\tconst otherFields = (prevContext || []).filter(otherField => otherField.id !== field.id)\n\n\t\t\treturn [...otherFields, field]\n\t\t})\n\t}, [])\n\n\tconst removeField = useCallback((fieldID: string) => {\n\t\tsetFormContext?.(prevContext => (prevContext || []).filter(field => field.id !== fieldID))\n\t}, [])\n\n\tconst updateField = useCallback((fieldID: string, updates: Partial<Field>) => {\n\t\tsetFormContext?.(prevContext => {\n\t\t\tconst field = prevContext.find(({ id }) => id === fieldID)\n\n\t\t\tif (!field) throw new Error(`Field with id \"${fieldID}\" not found in form context.`)\n\n\t\t\tconst otherFields = prevContext.filter(({ id }) => id !== fieldID)\n\n\t\t\tconst updatedField = { ...field, ...updates } as Field\n\n\t\t\treturn [...otherFields, updatedField]\n\t\t})\n\t}, [])\n\n\treturn [formContext, { registerField, removeField, updateField }] as const\n}\n","// * Types\nimport { defineField, Field, isStringField, StringField, useFormContext } from './use-form-context'\n\nexport type FieldsetContextValue = {\n\tfieldList: Field[]\n\tdecorative: boolean\n\tid: string\n\tjoin?: string\n\tname: string\n}\n\nexport type FieldsetContext = [\n\tFieldsetContextValue | undefined,\n\t{\n\t\tregisterField: (field: Field) => void\n\t\tremoveField: (fieldID: string) => void\n\t\tupdateField: (fieldID: string, updates: Partial<Field>) => void\n\t},\n]\n\n// * React\nimport { ReactNode, useCallback, useEffect } from 'react'\n\n// * Hooks\nimport { createFastContext } from './create-fast-context'\n\nconst { Provider, useStore } = createFastContext<FieldsetContextValue | undefined>(undefined)\n\nexport function FieldsetContextProvider({\n\tchildren,\n\tinitialValue,\n}: {\n\tchildren?: ReactNode\n\tinitialValue?: FieldsetContextValue\n}) {\n\treturn <Provider initialValue={initialValue}>{children}</Provider>\n}\n\nexport function useFieldsetContext(): FieldsetContext {\n\tconst [fieldsetContext, setFieldsetContext] = useStore(store => store),\n\t\t[, formContextFunctions] = useFormContext()\n\n\tconst registerField = useCallback((field: Field) => {\n\t\tsetFieldsetContext?.(prev => {\n\t\t\tif (!prev) return prev\n\n\t\t\tconst existingFieldIndex = prev.fieldList.findIndex(existingField => existingField.id === field.id)\n\n\t\t\tconst newFieldList =\n\t\t\t\texistingFieldIndex >= 0\n\t\t\t\t\t? prev.fieldList.map((existingField, index) => (index === existingFieldIndex ? field : existingField))\n\t\t\t\t\t: [...prev.fieldList, field]\n\n\t\t\treturn { ...prev, fieldList: newFieldList }\n\t\t})\n\t}, [])\n\n\tconst removeField = useCallback((fieldID: string) => {\n\t\tsetFieldsetContext?.(prev => {\n\t\t\tif (!prev) return prev\n\n\t\t\treturn {\n\t\t\t\t...prev,\n\t\t\t\tfieldList: prev.fieldList.filter(field => field.id !== fieldID),\n\t\t\t}\n\t\t})\n\t}, [])\n\n\tconst updateField = useCallback((fieldID: string, updates: Partial<Field>) => {\n\t\tsetFieldsetContext?.(prev => {\n\t\t\tif (!prev) return prev\n\n\t\t\treturn {\n\t\t\t\t...prev,\n\t\t\t\tfieldList: prev.fieldList.map(field => (field.id === fieldID ? ({ ...field, ...updates } as Field) : field)),\n\t\t\t}\n\t\t})\n\t}, [])\n\n\tconst createFormContextEntry = useCallback((fieldsetEntry: FieldsetContextValue): Field => {\n\t\tif (fieldsetEntry.join) {\n\t\t\tconst joinedValue = fieldsetEntry.fieldList\n\t\t\t\t.filter(field => isStringField(field) && (field as StringField).value !== '')\n\t\t\t\t.map(field => (field as StringField).value)\n\t\t\t\t.join(fieldsetEntry.join)\n\n\t\t\treturn defineField({\n\t\t\t\ttype: 'string',\n\t\t\t\tid: fieldsetEntry.id,\n\t\t\t\tname: fieldsetEntry.name,\n\t\t\t\tvalue: joinedValue,\n\t\t\t\trequired: fieldsetEntry.fieldList.some(field => (field as StringField).required),\n\t\t\t\tinvalid: fieldsetEntry.fieldList.some(field => (field as StringField).invalid),\n\t\t\t})\n\t\t}\n\n\t\treturn defineField({\n\t\t\ttype: 'object',\n\t\t\tid: fieldsetEntry.id,\n\t\t\tname: fieldsetEntry.name,\n\t\t\tfields: fieldsetEntry.fieldList,\n\t\t})\n\t}, [])\n\n\tuseEffect(() => {\n\t\tif (!fieldsetContext || fieldsetContext.decorative) return\n\n\t\tconst formContextEntry = createFormContextEntry(fieldsetContext)\n\n\t\tformContextFunctions.registerField(formContextEntry)\n\n\t\treturn () => {\n\t\t\tformContextFunctions.removeField(fieldsetContext.id)\n\t\t}\n\t}, [fieldsetContext, formContextFunctions.registerField, formContextFunctions.removeField, createFormContextEntry])\n\n\treturn [fieldsetContext, { registerField, removeField, updateField }]\n}\n","// * Types\nimport { ReactNode, Suspense } from 'react'\n\nexport type FormStatus = 'error' | 'incomplete' | 'loading' | 'ready' | 'success' | 'readonly'\n\n// * Hooks\nimport { createFastContext } from './create-fast-context'\n\nconst DEFAULT_STATUS: FormStatus = 'incomplete'\n\nconst { Provider, useStore } = createFastContext<FormStatus>(DEFAULT_STATUS)\n\nexport function FormStatusProvider({\n\tchildren,\n\tinitialStatus = DEFAULT_STATUS,\n}: {\n\tchildren?: ReactNode\n\tinitialStatus?: FormStatus\n}) {\n\treturn (\n\t\t<Suspense>\n\t\t\t<Provider initialValue={initialStatus}>{children}</Provider>\n\t\t</Suspense>\n\t)\n}\n\nexport function useFormStatus() {\n\treturn useStore(store => store)\n}\n","import React, { useCallback, useEffect, useId, useRef, useState } from 'react'\n\nexport type Coords = { x: number; y: number }\n\nexport type Cursor =\n\t| 'alias'\n\t| 'all-scroll'\n\t| 'auto'\n\t| 'cell'\n\t| 'col-resize'\n\t| 'context-menu'\n\t| 'copy'\n\t| 'crosshair'\n\t| 'default'\n\t| 'e-resize'\n\t| 'ew-resize'\n\t| 'grab'\n\t| 'grabbing'\n\t| 'help'\n\t| 'move'\n\t| 'no-drop'\n\t| 'not-allowed'\n\t| 'n-resize'\n\t| 'ne-resize'\n\t| 'nw-resize'\n\t| 'ns-resize'\n\t| 'nesw-resize'\n\t| 'nwse-resize'\n\t| 'pointer'\n\t| 'progress'\n\t| 'row-resize'\n\t| 's-resize'\n\t| 'se-resize'\n\t| 'sw-resize'\n\t| 'text'\n\t| 'vertical-text'\n\t| 'w-resize'\n\t| 'wait'\n\t| 'zoom-in'\n\t| 'zoom-out'\n\nexport type UsePointerMovementProps = {\n\tactiveCursor?: Cursor\n\tonChange?: (delta: Coords) => void\n\tonEnd?: (delta: Coords) => void\n}\n\nexport function usePointerMovement(props?: UsePointerMovementProps) {\n\tconst pointerTypeRef = useRef<'mouse' | 'pointer' | 'touch'>('pointer'),\n\t\t[isTracking, setIsTracking] = useState(false),\n\t\t[delta, setDelta] = useState<Coords>({ x: 0, y: 0 }),\n\t\tstartCoordsRef = useRef<Coords>({ x: 0, y: 0 })\n\n\tconst styleID = useId()\n\n\tconst changeCursor = (cursor: Cursor | false) => {\n\t\tif (cursor === false) {\n\t\t\tdocument.querySelector<HTMLStyleElement>(`#${styleID}`)?.remove()\n\t\t\treturn\n\t\t}\n\n\t\tconst css = `*, *:active { cursor: ${cursor}; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; user-select: none; }`\n\n\t\tconst style = document.createElement('style')\n\n\t\tstyle.id = styleID\n\t\tstyle.innerHTML = css\n\n\t\tdocument.body.prepend(style)\n\t}\n\n\tconst trackPointerMovement = (\n\t\te: React.MouseEvent<HTMLElement> | React.PointerEvent<HTMLElement> | React.TouchEvent<HTMLElement>,\n\t) => {\n\t\tchangeCursor(props?.activeCursor || 'grabbing')\n\n\t\tconst { type } = e\n\n\t\tswitch (type) {\n\t\t\tcase 'mousemove':\n\t\t\tcase 'mouseup':\n\t\t\tcase 'pointermove':\n\t\t\tcase 'pointerup':\n\t\t\tcase 'touchmove':\n\t\t\tcase 'touchend':\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'To initiate the tracking of pointer movement, you must use a `mousedown`, `pointerdown`, or `touchstart`.',\n\t\t\t\t)\n\t\t\tcase 'mousedown':\n\t\t\t\tpointerTypeRef.current = 'mouse'\n\t\t\t\tbreak\n\t\t\tcase 'pointerdown':\n\t\t\t\tpointerTypeRef.current = 'pointer'\n\t\t\t\tbreak\n\t\t\tcase 'touchstart':\n\t\t\t\tpointerTypeRef.current = 'touch'\n\t\t\t\tbreak\n\t\t}\n\n\t\tlet x = 0,\n\t\t\ty = 0\n\n\t\tif ('touches' in e) {\n\t\t\tconst { touches } = e\n\n\t\t\tif (touches.length > 1) return\n\n\t\t\tx = touches[0].clientX\n\t\t\ty = touches[0].clientY\n\t\t} else {\n\t\t\tx = e.clientX\n\t\t\ty = e.clientY\n\t\t}\n\n\t\tstartCoordsRef.current = { x, y }\n\t\tsetIsTracking(true)\n\t}\n\n\tconst updateDelta = useCallback((e: MouseEvent | PointerEvent | TouchEvent) => {\n\t\tlet clientX = 0,\n\t\t\tclientY = 0\n\n\t\tif ('touches' in e) {\n\t\t\tconst { touches } = e\n\n\t\t\tif (touches.length > 1) return\n\n\t\t\tclientX = touches[0].clientX\n\t\t\tclientY = touches[0].clientY\n\t\t} else {\n\t\t\tclientX = e.clientX\n\t\t\tclientY = e.clientY\n\t\t}\n\n\t\tconst { x, y } = startCoordsRef.current,\n\t\t\tnewDelta = { x: clientX - x, y: clientY - y }\n\n\t\tsetDelta(newDelta)\n\t\tprops?.onChange?.(newDelta)\n\t}, [])\n\n\tconst stopTracking = useCallback(() => {\n\t\tchangeCursor(false)\n\t\tsetIsTracking(false)\n\t\tprops?.onEnd?.(delta)\n\t}, [delta])\n\n\tuseEffect(() => {\n\t\tif (typeof window === 'undefined') return\n\n\t\tconst controller = new AbortController(),\n\t\t\tsignal = controller.signal\n\n\t\tif (isTracking) {\n\t\t\tswitch (pointerTypeRef.current) {\n\t\t\t\tcase 'mouse':\n\t\t\t\t\tdocument.body.addEventListener('mousemove', updateDelta, { signal })\n\t\t\t\t\tdocument.body.addEventListener('mouseup', stopTracking, { signal })\n\t\t\t\t\tbreak\n\t\t\t\tcase 'pointer':\n\t\t\t\t\tdocument.body.addEventListener('pointermove', updateDelta, { signal })\n\t\t\t\t\tdocument.body.addEventListener('pointerup', stopTracking, { signal })\n\t\t\t\t\tbreak\n\t\t\t\tcase 'touch':\n\t\t\t\t\tdocument.body.addEventListener('touchmove', updateDelta, { signal })\n\t\t\t\t\tdocument.body.addEventListener('touchend', stopTracking, { signal })\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t} else {\n\t\t\tcontroller.abort()\n\t\t}\n\n\t\treturn () => {\n\t\t\tcontroller.abort()\n\t\t}\n\t}, [isTracking, updateDelta, stopTracking])\n\n\treturn { delta, stopTracking, trackPointerMovement }\n}\n"],"names":["_jsx","Provider","useStore"],"mappings":"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"}
package/dist/hooks.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../src/hooks/create-fast-context.tsx","../src/hooks/use-form-context.tsx","../src/hooks/use-fieldset-context.tsx","../src/hooks/use-form-status.tsx","../src/hooks/use-pointer-movement.ts"],"sourcesContent":["// * React\nimport { HTMLAttributes, useRef, createContext, useContext, useSyncExternalStore } from 'react'\n\nexport function createFastContext<Store>(defaultInitialState: Store) {\n\tfunction useStoreData(initialState: Store = defaultInitialState): {\n\t\tget: () => Store\n\t\tset: (value: Store | ((prevState: Store) => Store)) => void\n\t\tsubscribe: (callback: () => void) => () => void\n\t} {\n\t\tconst store = useRef(initialState),\n\t\t\tget = () => store.current,\n\t\t\tsubscribers = useRef(new Set<() => void>())\n\n\t\tconst set = (value: Store | ((prevState: Store) => Store)) => {\n\t\t\tif (typeof value === 'function') {\n\t\t\t\tstore.current = (value as (prevState: Store) => Store)(store.current)\n\t\t\t} else {\n\t\t\t\tstore.current = value\n\t\t\t}\n\t\t\tsubscribers.current.forEach(callback => callback())\n\t\t}\n\n\t\tconst subscribe = (callback: () => void) => {\n\t\t\tsubscribers.current.add(callback)\n\t\t\treturn () => subscribers.current.delete(callback)\n\t\t}\n\n\t\treturn {\n\t\t\tget,\n\t\t\tset,\n\t\t\tsubscribe,\n\t\t}\n\t}\n\n\ttype UseStoreDataReturnType = ReturnType<typeof useStoreData>\n\n\tconst StoreContext = createContext<UseStoreDataReturnType | null>(null)\n\n\tfunction Provider({\n\t\tinitialValue = defaultInitialState,\n\t\t...props\n\t}: Pick<HTMLAttributes<HTMLElement>, 'children'> & { initialValue?: Store }) {\n\t\treturn <StoreContext.Provider value={useStoreData(initialValue)} {...props} />\n\t}\n\n\tfunction useStore<SelectorOutput>(\n\t\tselector: (store: Store) => SelectorOutput,\n\t\tinitialValue?: Store,\n\t): [SelectorOutput | undefined, ((value: Store | ((prevState: Store) => Store)) => void) | undefined] {\n\t\tconst store = useContext(StoreContext)\n\n\t\tif (!store) {\n\t\t\tconst localStoreValue = initialValue !== undefined ? initialValue : defaultInitialState\n\n\t\t\tconst selectedValue = selector(localStoreValue)\n\t\t\tconst noOpSet = () => console.warn('Attempting to set store value outside of Provider')\n\n\t\t\treturn [selectedValue, noOpSet]\n\t\t}\n\n\t\tconst state = useSyncExternalStore(\n\t\t\tstore.subscribe,\n\t\t\t() => selector(store.get()),\n\t\t\t() => selector(initialValue !== undefined ? initialValue : defaultInitialState),\n\t\t)\n\n\t\treturn [state, store.set]\n\t}\n\n\treturn {\n\t\tProvider,\n\t\tuseStore,\n\t}\n}\n","// * Types\nexport type FieldType = 'array' | 'email' | 'file' | 'number' | 'object' | 'string' | 'tel' | 'textarea' | 'url'\n\nexport type StringField = {\n\ttype: 'email' | 'file' | 'number' | 'string' | 'tel' | 'textarea' | 'url'\n\tvalue: string\n}\n\nexport type ObjectField = { type: 'object'; fields: Field[] }\n\nexport type ArrayField = { type: 'array'; of: ArrayObjectOrNormalField[] }\n\ntype ArrayObjectOrNormalField = StringField | ArrayField | ObjectField\n\nexport type Field<T extends StringField | ArrayField | ObjectField = ArrayObjectOrNormalField> = T & {\n\tid: string\n\tname: string\n\trequired?: boolean\n\tinvalid?: boolean\n}\n\nexport type FormContext = Field[]\n\n// * React\nimport { ReactNode, useCallback } from 'react'\n\n// * Hooks\nimport { createFastContext } from './create-fast-context'\n\n/**\n * # Define Field\n *\n * This is a helper function to define a field in a form context with type safety.\n */\nexport function defineField(fieldDefinition: Field) {\n\treturn fieldDefinition\n}\n\nexport function isStringField(field: Field) {\n\treturn Boolean(field.type !== 'object' && field.type !== 'array')\n}\n\nconst { Provider, useStore } = createFastContext<FormContext>([])\n\nexport function FormContextProvider({ children }: { children?: ReactNode }) {\n\treturn <Provider>{children}</Provider>\n}\n\nexport function useFormContext() {\n\tconst [formContext, setFormContext] = useStore(store => store)\n\n\tconst registerField = useCallback((field: Field) => {\n\t\tsetFormContext?.(prevContext => {\n\t\t\tconst otherFields = (prevContext || []).filter(otherField => otherField.id !== field.id)\n\n\t\t\treturn [...otherFields, field]\n\t\t})\n\t}, [])\n\n\tconst removeField = useCallback((fieldID: string) => {\n\t\tsetFormContext?.(prevContext => (prevContext || []).filter(field => field.id !== fieldID))\n\t}, [])\n\n\tconst updateField = useCallback((fieldID: string, updates: Partial<Field>) => {\n\t\tsetFormContext?.(prevContext => {\n\t\t\tconst field = prevContext.find(({ id }) => id === fieldID)\n\n\t\t\tif (!field) throw new Error(`Field with id \"${fieldID}\" not found in form context.`)\n\n\t\t\tconst otherFields = prevContext.filter(({ id }) => id !== fieldID)\n\n\t\t\tconst updatedField = { ...field, ...updates } as Field\n\n\t\t\treturn [...otherFields, updatedField]\n\t\t})\n\t}, [])\n\n\treturn [formContext, { registerField, removeField, updateField }] as const\n}\n","// * Types\nimport { defineField, Field, isStringField, StringField, useFormContext } from './use-form-context'\n\nexport type FieldsetContextValue = {\n\tfieldList: Field[]\n\tdecorative: boolean\n\tid: string\n\tjoin?: string\n\tname: string\n}\n\nexport type FieldsetContext = [\n\tFieldsetContextValue | undefined,\n\t{\n\t\tregisterField: (field: Field) => void\n\t\tremoveField: (fieldID: string) => void\n\t\tupdateField: (fieldID: string, updates: Partial<Field>) => void\n\t},\n]\n\n// * React\nimport { FieldsetHTMLAttributes, ReactNode, useCallback, useEffect } from 'react'\n\n// * Hooks\nimport { createFastContext } from './create-fast-context'\n\nconst { Provider, useStore } = createFastContext<FieldsetContextValue | undefined>(undefined)\n\nexport function FieldsetContextProvider({\n\tchildren,\n\tinitialValue,\n}: {\n\tchildren?: ReactNode\n\tinitialValue?: FieldsetContextValue\n}) {\n\treturn <Provider initialValue={initialValue}>{children}</Provider>\n}\n\nexport function useFieldsetContext(): FieldsetContext {\n\tconst [fieldsetContext, setFieldsetContext] = useStore(store => store),\n\t\t[, formContextFunctions] = useFormContext()\n\n\tconst registerField = useCallback((field: Field) => {\n\t\tsetFieldsetContext?.(prev => {\n\t\t\tif (!prev) return prev\n\n\t\t\tconst existingFieldIndex = prev.fieldList.findIndex(existingField => existingField.id === field.id)\n\n\t\t\tconst newFieldList =\n\t\t\t\texistingFieldIndex >= 0\n\t\t\t\t\t? prev.fieldList.map((existingField, index) => (index === existingFieldIndex ? field : existingField))\n\t\t\t\t\t: [...prev.fieldList, field]\n\n\t\t\treturn { ...prev, fieldList: newFieldList }\n\t\t})\n\t}, [])\n\n\tconst removeField = useCallback((fieldID: string) => {\n\t\tsetFieldsetContext?.(prev => {\n\t\t\tif (!prev) return prev\n\n\t\t\treturn {\n\t\t\t\t...prev,\n\t\t\t\tfieldList: prev.fieldList.filter(field => field.id !== fieldID),\n\t\t\t}\n\t\t})\n\t}, [])\n\n\tconst updateField = useCallback((fieldID: string, updates: Partial<Field>) => {\n\t\tsetFieldsetContext?.(prev => {\n\t\t\tif (!prev) return prev\n\n\t\t\treturn {\n\t\t\t\t...prev,\n\t\t\t\tfieldList: prev.fieldList.map(field => (field.id === fieldID ? ({ ...field, ...updates } as Field) : field)),\n\t\t\t}\n\t\t})\n\t}, [])\n\n\tconst createFormContextEntry = useCallback((fieldsetEntry: FieldsetContextValue): Field => {\n\t\tif (fieldsetEntry.join) {\n\t\t\tconst joinedValue = fieldsetEntry.fieldList\n\t\t\t\t.filter(field => isStringField(field) && (field as Field<StringField>).value !== '')\n\t\t\t\t.map(field => (field as Field<StringField>).value)\n\t\t\t\t.join(fieldsetEntry.join)\n\n\t\t\treturn defineField({\n\t\t\t\ttype: 'string',\n\t\t\t\tid: fieldsetEntry.id,\n\t\t\t\tname: fieldsetEntry.name,\n\t\t\t\tvalue: joinedValue,\n\t\t\t\trequired: fieldsetEntry.fieldList.some(field => (field as Field<StringField>).required),\n\t\t\t\tinvalid: fieldsetEntry.fieldList.some(field => (field as Field<StringField>).invalid),\n\t\t\t})\n\t\t}\n\n\t\treturn defineField({\n\t\t\ttype: 'object',\n\t\t\tid: fieldsetEntry.id,\n\t\t\tname: fieldsetEntry.name,\n\t\t\tfields: fieldsetEntry.fieldList,\n\t\t})\n\t}, [])\n\n\tuseEffect(() => {\n\t\tif (!fieldsetContext || fieldsetContext.decorative) return\n\n\t\tconst formContextEntry = createFormContextEntry(fieldsetContext)\n\n\t\tformContextFunctions.registerField(formContextEntry)\n\n\t\treturn () => {\n\t\t\tformContextFunctions.removeField(fieldsetContext.id)\n\t\t}\n\t}, [fieldsetContext, formContextFunctions.registerField, formContextFunctions.removeField, createFormContextEntry])\n\n\treturn [fieldsetContext, { registerField, removeField, updateField }]\n}\n","// * Types\nimport { ReactNode, Suspense } from 'react'\n\nexport type FormStatus = 'error' | 'incomplete' | 'loading' | 'ready' | 'success' | 'readonly'\n\n// * Hooks\nimport { createFastContext } from './create-fast-context'\n\nconst DEFAULT_STATUS: FormStatus = 'incomplete'\n\nconst { Provider, useStore } = createFastContext<FormStatus>(DEFAULT_STATUS)\n\nexport function FormStatusProvider({\n\tchildren,\n\tinitialStatus = DEFAULT_STATUS,\n}: {\n\tchildren?: ReactNode\n\tinitialStatus?: FormStatus\n}) {\n\treturn (\n\t\t<Suspense>\n\t\t\t<Provider initialValue={initialStatus}>{children}</Provider>\n\t\t</Suspense>\n\t)\n}\n\nexport function useFormStatus() {\n\treturn useStore(store => store)\n}\n","import React, { useCallback, useEffect, useId, useRef, useState } from 'react'\n\nexport type Coords = { x: number; y: number }\n\nexport type Cursor =\n\t| 'alias'\n\t| 'all-scroll'\n\t| 'auto'\n\t| 'cell'\n\t| 'col-resize'\n\t| 'context-menu'\n\t| 'copy'\n\t| 'crosshair'\n\t| 'default'\n\t| 'e-resize'\n\t| 'ew-resize'\n\t| 'grab'\n\t| 'grabbing'\n\t| 'help'\n\t| 'move'\n\t| 'no-drop'\n\t| 'not-allowed'\n\t| 'n-resize'\n\t| 'ne-resize'\n\t| 'nw-resize'\n\t| 'ns-resize'\n\t| 'nesw-resize'\n\t| 'nwse-resize'\n\t| 'pointer'\n\t| 'progress'\n\t| 'row-resize'\n\t| 's-resize'\n\t| 'se-resize'\n\t| 'sw-resize'\n\t| 'text'\n\t| 'vertical-text'\n\t| 'w-resize'\n\t| 'wait'\n\t| 'zoom-in'\n\t| 'zoom-out'\n\nexport type UsePointerMovementProps = {\n\tactiveCursor?: Cursor\n\tonChange?: (delta: Coords) => void\n\tonEnd?: (delta: Coords) => void\n}\n\nexport function usePointerMovement(props?: UsePointerMovementProps) {\n\tconst pointerTypeRef = useRef<'mouse' | 'pointer' | 'touch'>('pointer'),\n\t\t[isTracking, setIsTracking] = useState(false),\n\t\t[delta, setDelta] = useState<Coords>({ x: 0, y: 0 }),\n\t\tstartCoordsRef = useRef<Coords>({ x: 0, y: 0 })\n\n\tconst styleID = useId()\n\n\tconst changeCursor = (cursor: Cursor | false) => {\n\t\tif (cursor === false) {\n\t\t\tdocument.querySelector<HTMLStyleElement>(`#${styleID}`)?.remove()\n\t\t\treturn\n\t\t}\n\n\t\tconst css = `*, *:active { cursor: ${cursor}; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; user-select: none; }`\n\n\t\tconst style = document.createElement('style')\n\n\t\tstyle.id = styleID\n\t\tstyle.innerHTML = css\n\n\t\tdocument.body.prepend(style)\n\t}\n\n\tconst trackPointerMovement = (\n\t\te: React.MouseEvent<HTMLElement> | React.PointerEvent<HTMLElement> | React.TouchEvent<HTMLElement>,\n\t) => {\n\t\tchangeCursor(props?.activeCursor || 'grabbing')\n\n\t\tconst { type } = e\n\n\t\tswitch (type) {\n\t\t\tcase 'mousemove':\n\t\t\tcase 'mouseup':\n\t\t\tcase 'pointermove':\n\t\t\tcase 'pointerup':\n\t\t\tcase 'touchmove':\n\t\t\tcase 'touchend':\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'To initiate the tracking of pointer movement, you must use a `mousedown`, `pointerdown`, or `touchstart`.',\n\t\t\t\t)\n\t\t\tcase 'mousedown':\n\t\t\t\tpointerTypeRef.current = 'mouse'\n\t\t\t\tbreak\n\t\t\tcase 'pointerdown':\n\t\t\t\tpointerTypeRef.current = 'pointer'\n\t\t\t\tbreak\n\t\t\tcase 'touchstart':\n\t\t\t\tpointerTypeRef.current = 'touch'\n\t\t\t\tbreak\n\t\t}\n\n\t\tlet x = 0,\n\t\t\ty = 0\n\n\t\tif ('touches' in e) {\n\t\t\tconst { touches } = e\n\n\t\t\tif (touches.length > 1) return\n\n\t\t\tx = touches[0].clientX\n\t\t\ty = touches[0].clientY\n\t\t} else {\n\t\t\tx = e.clientX\n\t\t\ty = e.clientY\n\t\t}\n\n\t\tstartCoordsRef.current = { x, y }\n\t\tsetIsTracking(true)\n\t}\n\n\tconst updateDelta = useCallback((e: MouseEvent | PointerEvent | TouchEvent) => {\n\t\tlet clientX = 0,\n\t\t\tclientY = 0\n\n\t\tif ('touches' in e) {\n\t\t\tconst { touches } = e\n\n\t\t\tif (touches.length > 1) return\n\n\t\t\tclientX = touches[0].clientX\n\t\t\tclientY = touches[0].clientY\n\t\t} else {\n\t\t\tclientX = e.clientX\n\t\t\tclientY = e.clientY\n\t\t}\n\n\t\tconst { x, y } = startCoordsRef.current,\n\t\t\tnewDelta = { x: clientX - x, y: clientY - y }\n\n\t\tsetDelta(newDelta)\n\t\tprops?.onChange?.(newDelta)\n\t}, [])\n\n\tconst stopTracking = useCallback(() => {\n\t\tchangeCursor(false)\n\t\tsetIsTracking(false)\n\t\tprops?.onEnd?.(delta)\n\t}, [delta])\n\n\tuseEffect(() => {\n\t\tif (typeof window === 'undefined') return\n\n\t\tconst controller = new AbortController(),\n\t\t\tsignal = controller.signal\n\n\t\tif (isTracking) {\n\t\t\tswitch (pointerTypeRef.current) {\n\t\t\t\tcase 'mouse':\n\t\t\t\t\tdocument.body.addEventListener('mousemove', updateDelta, { signal })\n\t\t\t\t\tdocument.body.addEventListener('mouseup', stopTracking, { signal })\n\t\t\t\t\tbreak\n\t\t\t\tcase 'pointer':\n\t\t\t\t\tdocument.body.addEventListener('pointermove', updateDelta, { signal })\n\t\t\t\t\tdocument.body.addEventListener('pointerup', stopTracking, { signal })\n\t\t\t\t\tbreak\n\t\t\t\tcase 'touch':\n\t\t\t\t\tdocument.body.addEventListener('touchmove', updateDelta, { signal })\n\t\t\t\t\tdocument.body.addEventListener('touchend', stopTracking, { signal })\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t} else {\n\t\t\tcontroller.abort()\n\t\t}\n\n\t\treturn () => {\n\t\t\tcontroller.abort()\n\t\t}\n\t}, [isTracking, updateDelta, stopTracking])\n\n\treturn { delta, stopTracking, trackPointerMovement }\n}\n"],"names":["useRef","createContext","_jsx","useContext","useSyncExternalStore","Provider","useStore","useCallback","useEffect","Suspense","useState","useId"],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sources":["../src/hooks/create-fast-context.tsx","../src/hooks/use-form-context.tsx","../src/hooks/use-fieldset-context.tsx","../src/hooks/use-form-status.tsx","../src/hooks/use-pointer-movement.ts"],"sourcesContent":["// * React\nimport { HTMLAttributes, useRef, createContext, useContext, useSyncExternalStore } from 'react'\n\nexport function createFastContext<Store>(defaultInitialState: Store) {\n\tfunction useStoreData(initialState: Store = defaultInitialState): {\n\t\tget: () => Store\n\t\tset: (value: Store | ((prevState: Store) => Store)) => void\n\t\tsubscribe: (callback: () => void) => () => void\n\t} {\n\t\tconst store = useRef(initialState),\n\t\t\tget = () => store.current,\n\t\t\tsubscribers = useRef(new Set<() => void>())\n\n\t\tconst set = (value: Store | ((prevState: Store) => Store)) => {\n\t\t\tif (typeof value === 'function') {\n\t\t\t\tstore.current = (value as (prevState: Store) => Store)(store.current)\n\t\t\t} else {\n\t\t\t\tstore.current = value\n\t\t\t}\n\t\t\tsubscribers.current.forEach(callback => callback())\n\t\t}\n\n\t\tconst subscribe = (callback: () => void) => {\n\t\t\tsubscribers.current.add(callback)\n\t\t\treturn () => subscribers.current.delete(callback)\n\t\t}\n\n\t\treturn {\n\t\t\tget,\n\t\t\tset,\n\t\t\tsubscribe,\n\t\t}\n\t}\n\n\ttype UseStoreDataReturnType = ReturnType<typeof useStoreData>\n\n\tconst StoreContext = createContext<UseStoreDataReturnType | null>(null)\n\n\tfunction Provider({\n\t\tinitialValue = defaultInitialState,\n\t\t...props\n\t}: Pick<HTMLAttributes<HTMLElement>, 'children'> & { initialValue?: Store }) {\n\t\treturn <StoreContext.Provider value={useStoreData(initialValue)} {...props} />\n\t}\n\n\tfunction useStore<SelectorOutput>(\n\t\tselector: (store: Store) => SelectorOutput,\n\t\tinitialValue?: Store,\n\t): [SelectorOutput | undefined, ((value: Store | ((prevState: Store) => Store)) => void) | undefined] {\n\t\tconst store = useContext(StoreContext)\n\n\t\tif (!store) {\n\t\t\tconst localStoreValue = initialValue !== undefined ? initialValue : defaultInitialState\n\n\t\t\tconst selectedValue = selector(localStoreValue)\n\t\t\tconst noOpSet = () => console.warn('Attempting to set store value outside of Provider')\n\n\t\t\treturn [selectedValue, noOpSet]\n\t\t}\n\n\t\tconst state = useSyncExternalStore(\n\t\t\tstore.subscribe,\n\t\t\t() => selector(store.get()),\n\t\t\t() => selector(initialValue !== undefined ? initialValue : defaultInitialState),\n\t\t)\n\n\t\treturn [state, store.set]\n\t}\n\n\treturn {\n\t\tProvider,\n\t\tuseStore,\n\t}\n}\n","// * Types\nexport type FieldType = 'array' | 'email' | 'file' | 'number' | 'object' | 'string' | 'tel' | 'textarea' | 'url'\n\nexport type StringField = {\n\ttype: 'email' | 'file' | 'number' | 'string' | 'tel' | 'textarea' | 'url'\n\tvalue: string\n\trequired?: boolean\n\tinvalid?: boolean\n}\n\nexport type ObjectField = { type: 'object'; fields: Field[] }\n\nexport type ArrayField = { type: 'array'; of: ArrayObjectOrNormalField }\n\ntype ArrayObjectOrNormalField = StringField | ArrayField | ObjectField\n\nexport type Field = ArrayObjectOrNormalField & {\n\tid: string\n\tname: string\n}\n\nexport type FormContext = Field[]\n\n// * React\nimport { ReactNode, useCallback } from 'react'\n\n// * Hooks\nimport { createFastContext } from './create-fast-context'\n\n/**\n * # Define Field\n *\n * This is a helper function to define a field in a form context with type safety.\n */\nexport function defineField(fieldDefinition: Field) {\n\treturn fieldDefinition\n}\n\nexport function isStringField(field: Field) {\n\treturn Boolean(field.type !== 'object' && field.type !== 'array')\n}\n\nconst { Provider, useStore } = createFastContext<FormContext>([])\n\nexport function FormContextProvider({ children }: { children?: ReactNode }) {\n\treturn <Provider>{children}</Provider>\n}\n\nexport function useFormContext() {\n\tconst [formContext, setFormContext] = useStore(store => store)\n\n\tconst registerField = useCallback((field: Field) => {\n\t\tsetFormContext?.(prevContext => {\n\t\t\tconst otherFields = (prevContext || []).filter(otherField => otherField.id !== field.id)\n\n\t\t\treturn [...otherFields, field]\n\t\t})\n\t}, [])\n\n\tconst removeField = useCallback((fieldID: string) => {\n\t\tsetFormContext?.(prevContext => (prevContext || []).filter(field => field.id !== fieldID))\n\t}, [])\n\n\tconst updateField = useCallback((fieldID: string, updates: Partial<Field>) => {\n\t\tsetFormContext?.(prevContext => {\n\t\t\tconst field = prevContext.find(({ id }) => id === fieldID)\n\n\t\t\tif (!field) throw new Error(`Field with id \"${fieldID}\" not found in form context.`)\n\n\t\t\tconst otherFields = prevContext.filter(({ id }) => id !== fieldID)\n\n\t\t\tconst updatedField = { ...field, ...updates } as Field\n\n\t\t\treturn [...otherFields, updatedField]\n\t\t})\n\t}, [])\n\n\treturn [formContext, { registerField, removeField, updateField }] as const\n}\n","// * Types\nimport { defineField, Field, isStringField, StringField, useFormContext } from './use-form-context'\n\nexport type FieldsetContextValue = {\n\tfieldList: Field[]\n\tdecorative: boolean\n\tid: string\n\tjoin?: string\n\tname: string\n}\n\nexport type FieldsetContext = [\n\tFieldsetContextValue | undefined,\n\t{\n\t\tregisterField: (field: Field) => void\n\t\tremoveField: (fieldID: string) => void\n\t\tupdateField: (fieldID: string, updates: Partial<Field>) => void\n\t},\n]\n\n// * React\nimport { ReactNode, useCallback, useEffect } from 'react'\n\n// * Hooks\nimport { createFastContext } from './create-fast-context'\n\nconst { Provider, useStore } = createFastContext<FieldsetContextValue | undefined>(undefined)\n\nexport function FieldsetContextProvider({\n\tchildren,\n\tinitialValue,\n}: {\n\tchildren?: ReactNode\n\tinitialValue?: FieldsetContextValue\n}) {\n\treturn <Provider initialValue={initialValue}>{children}</Provider>\n}\n\nexport function useFieldsetContext(): FieldsetContext {\n\tconst [fieldsetContext, setFieldsetContext] = useStore(store => store),\n\t\t[, formContextFunctions] = useFormContext()\n\n\tconst registerField = useCallback((field: Field) => {\n\t\tsetFieldsetContext?.(prev => {\n\t\t\tif (!prev) return prev\n\n\t\t\tconst existingFieldIndex = prev.fieldList.findIndex(existingField => existingField.id === field.id)\n\n\t\t\tconst newFieldList =\n\t\t\t\texistingFieldIndex >= 0\n\t\t\t\t\t? prev.fieldList.map((existingField, index) => (index === existingFieldIndex ? field : existingField))\n\t\t\t\t\t: [...prev.fieldList, field]\n\n\t\t\treturn { ...prev, fieldList: newFieldList }\n\t\t})\n\t}, [])\n\n\tconst removeField = useCallback((fieldID: string) => {\n\t\tsetFieldsetContext?.(prev => {\n\t\t\tif (!prev) return prev\n\n\t\t\treturn {\n\t\t\t\t...prev,\n\t\t\t\tfieldList: prev.fieldList.filter(field => field.id !== fieldID),\n\t\t\t}\n\t\t})\n\t}, [])\n\n\tconst updateField = useCallback((fieldID: string, updates: Partial<Field>) => {\n\t\tsetFieldsetContext?.(prev => {\n\t\t\tif (!prev) return prev\n\n\t\t\treturn {\n\t\t\t\t...prev,\n\t\t\t\tfieldList: prev.fieldList.map(field => (field.id === fieldID ? ({ ...field, ...updates } as Field) : field)),\n\t\t\t}\n\t\t})\n\t}, [])\n\n\tconst createFormContextEntry = useCallback((fieldsetEntry: FieldsetContextValue): Field => {\n\t\tif (fieldsetEntry.join) {\n\t\t\tconst joinedValue = fieldsetEntry.fieldList\n\t\t\t\t.filter(field => isStringField(field) && (field as StringField).value !== '')\n\t\t\t\t.map(field => (field as StringField).value)\n\t\t\t\t.join(fieldsetEntry.join)\n\n\t\t\treturn defineField({\n\t\t\t\ttype: 'string',\n\t\t\t\tid: fieldsetEntry.id,\n\t\t\t\tname: fieldsetEntry.name,\n\t\t\t\tvalue: joinedValue,\n\t\t\t\trequired: fieldsetEntry.fieldList.some(field => (field as StringField).required),\n\t\t\t\tinvalid: fieldsetEntry.fieldList.some(field => (field as StringField).invalid),\n\t\t\t})\n\t\t}\n\n\t\treturn defineField({\n\t\t\ttype: 'object',\n\t\t\tid: fieldsetEntry.id,\n\t\t\tname: fieldsetEntry.name,\n\t\t\tfields: fieldsetEntry.fieldList,\n\t\t})\n\t}, [])\n\n\tuseEffect(() => {\n\t\tif (!fieldsetContext || fieldsetContext.decorative) return\n\n\t\tconst formContextEntry = createFormContextEntry(fieldsetContext)\n\n\t\tformContextFunctions.registerField(formContextEntry)\n\n\t\treturn () => {\n\t\t\tformContextFunctions.removeField(fieldsetContext.id)\n\t\t}\n\t}, [fieldsetContext, formContextFunctions.registerField, formContextFunctions.removeField, createFormContextEntry])\n\n\treturn [fieldsetContext, { registerField, removeField, updateField }]\n}\n","// * Types\nimport { ReactNode, Suspense } from 'react'\n\nexport type FormStatus = 'error' | 'incomplete' | 'loading' | 'ready' | 'success' | 'readonly'\n\n// * Hooks\nimport { createFastContext } from './create-fast-context'\n\nconst DEFAULT_STATUS: FormStatus = 'incomplete'\n\nconst { Provider, useStore } = createFastContext<FormStatus>(DEFAULT_STATUS)\n\nexport function FormStatusProvider({\n\tchildren,\n\tinitialStatus = DEFAULT_STATUS,\n}: {\n\tchildren?: ReactNode\n\tinitialStatus?: FormStatus\n}) {\n\treturn (\n\t\t<Suspense>\n\t\t\t<Provider initialValue={initialStatus}>{children}</Provider>\n\t\t</Suspense>\n\t)\n}\n\nexport function useFormStatus() {\n\treturn useStore(store => store)\n}\n","import React, { useCallback, useEffect, useId, useRef, useState } from 'react'\n\nexport type Coords = { x: number; y: number }\n\nexport type Cursor =\n\t| 'alias'\n\t| 'all-scroll'\n\t| 'auto'\n\t| 'cell'\n\t| 'col-resize'\n\t| 'context-menu'\n\t| 'copy'\n\t| 'crosshair'\n\t| 'default'\n\t| 'e-resize'\n\t| 'ew-resize'\n\t| 'grab'\n\t| 'grabbing'\n\t| 'help'\n\t| 'move'\n\t| 'no-drop'\n\t| 'not-allowed'\n\t| 'n-resize'\n\t| 'ne-resize'\n\t| 'nw-resize'\n\t| 'ns-resize'\n\t| 'nesw-resize'\n\t| 'nwse-resize'\n\t| 'pointer'\n\t| 'progress'\n\t| 'row-resize'\n\t| 's-resize'\n\t| 'se-resize'\n\t| 'sw-resize'\n\t| 'text'\n\t| 'vertical-text'\n\t| 'w-resize'\n\t| 'wait'\n\t| 'zoom-in'\n\t| 'zoom-out'\n\nexport type UsePointerMovementProps = {\n\tactiveCursor?: Cursor\n\tonChange?: (delta: Coords) => void\n\tonEnd?: (delta: Coords) => void\n}\n\nexport function usePointerMovement(props?: UsePointerMovementProps) {\n\tconst pointerTypeRef = useRef<'mouse' | 'pointer' | 'touch'>('pointer'),\n\t\t[isTracking, setIsTracking] = useState(false),\n\t\t[delta, setDelta] = useState<Coords>({ x: 0, y: 0 }),\n\t\tstartCoordsRef = useRef<Coords>({ x: 0, y: 0 })\n\n\tconst styleID = useId()\n\n\tconst changeCursor = (cursor: Cursor | false) => {\n\t\tif (cursor === false) {\n\t\t\tdocument.querySelector<HTMLStyleElement>(`#${styleID}`)?.remove()\n\t\t\treturn\n\t\t}\n\n\t\tconst css = `*, *:active { cursor: ${cursor}; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; user-select: none; }`\n\n\t\tconst style = document.createElement('style')\n\n\t\tstyle.id = styleID\n\t\tstyle.innerHTML = css\n\n\t\tdocument.body.prepend(style)\n\t}\n\n\tconst trackPointerMovement = (\n\t\te: React.MouseEvent<HTMLElement> | React.PointerEvent<HTMLElement> | React.TouchEvent<HTMLElement>,\n\t) => {\n\t\tchangeCursor(props?.activeCursor || 'grabbing')\n\n\t\tconst { type } = e\n\n\t\tswitch (type) {\n\t\t\tcase 'mousemove':\n\t\t\tcase 'mouseup':\n\t\t\tcase 'pointermove':\n\t\t\tcase 'pointerup':\n\t\t\tcase 'touchmove':\n\t\t\tcase 'touchend':\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'To initiate the tracking of pointer movement, you must use a `mousedown`, `pointerdown`, or `touchstart`.',\n\t\t\t\t)\n\t\t\tcase 'mousedown':\n\t\t\t\tpointerTypeRef.current = 'mouse'\n\t\t\t\tbreak\n\t\t\tcase 'pointerdown':\n\t\t\t\tpointerTypeRef.current = 'pointer'\n\t\t\t\tbreak\n\t\t\tcase 'touchstart':\n\t\t\t\tpointerTypeRef.current = 'touch'\n\t\t\t\tbreak\n\t\t}\n\n\t\tlet x = 0,\n\t\t\ty = 0\n\n\t\tif ('touches' in e) {\n\t\t\tconst { touches } = e\n\n\t\t\tif (touches.length > 1) return\n\n\t\t\tx = touches[0].clientX\n\t\t\ty = touches[0].clientY\n\t\t} else {\n\t\t\tx = e.clientX\n\t\t\ty = e.clientY\n\t\t}\n\n\t\tstartCoordsRef.current = { x, y }\n\t\tsetIsTracking(true)\n\t}\n\n\tconst updateDelta = useCallback((e: MouseEvent | PointerEvent | TouchEvent) => {\n\t\tlet clientX = 0,\n\t\t\tclientY = 0\n\n\t\tif ('touches' in e) {\n\t\t\tconst { touches } = e\n\n\t\t\tif (touches.length > 1) return\n\n\t\t\tclientX = touches[0].clientX\n\t\t\tclientY = touches[0].clientY\n\t\t} else {\n\t\t\tclientX = e.clientX\n\t\t\tclientY = e.clientY\n\t\t}\n\n\t\tconst { x, y } = startCoordsRef.current,\n\t\t\tnewDelta = { x: clientX - x, y: clientY - y }\n\n\t\tsetDelta(newDelta)\n\t\tprops?.onChange?.(newDelta)\n\t}, [])\n\n\tconst stopTracking = useCallback(() => {\n\t\tchangeCursor(false)\n\t\tsetIsTracking(false)\n\t\tprops?.onEnd?.(delta)\n\t}, [delta])\n\n\tuseEffect(() => {\n\t\tif (typeof window === 'undefined') return\n\n\t\tconst controller = new AbortController(),\n\t\t\tsignal = controller.signal\n\n\t\tif (isTracking) {\n\t\t\tswitch (pointerTypeRef.current) {\n\t\t\t\tcase 'mouse':\n\t\t\t\t\tdocument.body.addEventListener('mousemove', updateDelta, { signal })\n\t\t\t\t\tdocument.body.addEventListener('mouseup', stopTracking, { signal })\n\t\t\t\t\tbreak\n\t\t\t\tcase 'pointer':\n\t\t\t\t\tdocument.body.addEventListener('pointermove', updateDelta, { signal })\n\t\t\t\t\tdocument.body.addEventListener('pointerup', stopTracking, { signal })\n\t\t\t\t\tbreak\n\t\t\t\tcase 'touch':\n\t\t\t\t\tdocument.body.addEventListener('touchmove', updateDelta, { signal })\n\t\t\t\t\tdocument.body.addEventListener('touchend', stopTracking, { signal })\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t} else {\n\t\t\tcontroller.abort()\n\t\t}\n\n\t\treturn () => {\n\t\t\tcontroller.abort()\n\t\t}\n\t}, [isTracking, updateDelta, stopTracking])\n\n\treturn { delta, stopTracking, trackPointerMovement }\n}\n"],"names":["useRef","createContext","_jsx","useContext","useSyncExternalStore","Provider","useStore","useCallback","useEffect","Suspense","useState","useId"],"mappings":"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"}
@@ -1,144 +1,143 @@
1
- export * from './airplane';
2
- export * from './arrow-down-backward-and-arrow-up-forward-rectangle';
3
- export * from './arrow-triangle-2-circlepath-circle';
4
- export * from './arrow-triangle-2-circlepath-circle-fill';
5
- export * from './arrow-up-forward-and-arrow-down-backward-rectangle';
6
- export * from './bag-fill';
7
- export * from './banknote';
8
- export * from './bell-fill';
9
- export * from './bolt-car';
10
- export * from './bolt-fill';
11
- export * from './bolt-ring-closed';
12
- export * from './bolt-trianglebadge-exclamationmark';
13
- export * from './book-fill';
14
- export * from './bookmark-fill';
15
- export * from './briefcase-fill';
16
- export * from './bubble-left-fill';
17
- export * from './building-2-fill';
18
- export * from './calendar';
19
- export * from './camera-fill';
20
- export * from './car-fill';
21
- export * from './cart-fill';
22
- export * from './chart-bar-doc-horizontal';
23
- export * from './checkmark';
24
- export * from './checkmark-seal';
25
- export * from './chevron-compact-down';
26
- export * from './chevron-down';
27
- export * from './chevron-left';
28
- export * from './chevron-left-forwardslash-chevron-right';
29
- export * from './chevron-right';
30
- export * from './chevron-up-chevron-down';
31
- export * from './circle-fill';
32
- export * from './clock-badge-checkmark';
33
- export * from './clock-fill';
34
- export * from './cloud-fill';
35
- export * from './cube-fill';
36
- export * from './curve-point-left';
37
- export * from './dial-high';
38
- export * from './doc-fill';
39
- export * from './doc-on-clipboard';
40
- export * from './doc-on-doc';
41
- export * from './doc-on-doc-fill';
42
- export * from './doc-text-magnifyingglass';
43
- export * from './dollar-sign';
44
- export * from './ellipsis-circle';
45
- export * from './ellipsis-circle-fill';
46
- export * from './envelope';
47
- export * from './envelope-fill';
48
- export * from './eye';
49
- export * from './exclamationmark-octagon';
50
- export * from './figure-water-fitness';
51
- export * from './15-arrow-trianglehead-clockwise';
52
- export * from './15-arrow-trianglehead-counterclockwise';
53
- export * from './5-arrow-trianglehead-clockwise';
54
- export * from './5-arrow-trianglehead-counterclockwise';
55
- export * from './45-arrow-trianglehead-clockwise';
56
- export * from './45-arrow-trianglehead-counterclockwise';
57
- export * from './flag-fill';
58
- export * from './flame-fill';
59
- export * from './folder';
60
- export * from './folder-fill';
61
- export * from './gearshape';
62
- export * from './gearshape-fill';
63
- export * from './gift-fill';
64
- export * from './globe-americas-fill';
65
- export * from './hare-fill';
66
- export * from './house';
67
- export * from './house-deskclock';
68
- export * from './house-fill';
69
- export * from './iphone-house';
70
- export * from './lightbulb-fill';
71
- export * from './lightbulb-led';
72
- export * from './light-ribbon';
73
- export * from './list-bullet-clipboard-fill';
74
- export * from './magnifyingglass';
75
- export * from './map-pin-ellipse';
76
- export * from './minus-plus-batterblock';
77
- export * from './network';
78
- export * from './network-shield';
79
- export * from './newspaper-fill';
80
- export * from './90-arrow-trianglehead-clockwise';
81
- export * from './90-arrow-trianglehead-counterclockwise';
82
- export * from './number';
83
- export * from './paperplane-fill';
84
- export * from './pause-fill';
85
- export * from './person';
86
- export * from './person-crop-square';
87
- export * from './person-fill';
88
- export * from './person-fill-questionmark';
89
- export * from './phone';
90
- export * from './phone-arrow-up-right';
91
- export * from './phone-fill';
92
- export * from './photo-badge-arrow-down';
93
- export * from './photo-badge-arrow-down-fill';
94
- export * from './play-fill';
95
- export * from './play-rectangle-fill';
96
- export * from './plus';
97
- export * from './qrcode';
98
- export * from './rectangle';
99
- export * from './rectangle-fill';
100
- export * from './rectangle-fill-on-arrow-down-forward-topleading-rectangle';
101
- export * from './rectangle-portrait-and-arrow-left';
102
- export * from './rectangle-portrait-and-arrow-left-fill';
103
- export * from './rectangle-triangle-up';
104
- export * from './sensor';
105
- export * from './75-arrow-trianglehead-clockwise';
106
- export * from './75-arrow-trianglehead-counterclockwise';
107
- export * from './signature';
108
- export * from './60-arrow-trianglehead-clockwise';
109
- export * from './60-arrow-trianglehead-counterclockwise';
110
- export * from './solar-panel';
111
- export * from './speaker';
112
- export * from './speaker-fill';
113
- export * from './speaker-minus';
114
- export * from './speaker-minus-fill';
115
- export * from './speaker-plus';
116
- export * from './speaker-plus-fill';
117
- export * from './speaker-slash';
118
- export * from './speaker-slash-fill';
119
- export * from './speaker-wave-1';
120
- export * from './speaker-wave-1-fill';
121
- export * from './speaker-wave-2';
122
- export * from './speaker-wave-2-fill';
123
- export * from './speaker-wave-3';
124
- export * from './speaker-wave-3-fill';
125
- export * from './square-and-arrow-down';
126
- export * from './square-and-arrow-down-fill';
127
- export * from './square-and-arrow-up';
128
- export * from './square-and-arrow-up-fill';
129
- export * from './square-and-pencil';
130
- export * from './square-and-pencil-fill';
131
- export * from './10-arrow-trianglehead-clockwise';
132
- export * from './10-arrow-trianglehead-counterclockwise';
133
- export * from './30-arrow-trianglehead-clockwise';
134
- export * from './30-arrow-trianglehead-counterclockwise';
135
- export * from './text-bubble';
136
- export * from './3-people';
137
- export * from './3-rectangles-desktop';
138
- export * from './3-rectangles-desktop-fill';
139
- export * from './trash';
140
- export * from './trash-fill';
141
- export * from './tree';
142
- export * from './umbrella-fill';
143
- export * from './xmark';
1
+ export * from "./airplane";
2
+ export * from "./arrow-down-backward-and-arrow-up-forward-rectangle";
3
+ export * from "./arrow-triangle-2-circlepath-circle";
4
+ export * from "./arrow-triangle-2-circlepath-circle-fill";
5
+ export * from "./arrow-up-forward-and-arrow-down-backward-rectangle";
6
+ export * from "./bag-fill";
7
+ export * from "./banknote";
8
+ export * from "./bell-fill";
9
+ export * from "./bolt-car";
10
+ export * from "./bolt-fill";
11
+ export * from "./bolt-ring-closed";
12
+ export * from "./bolt-trianglebadge-exclamationmark";
13
+ export * from "./book-fill";
14
+ export * from "./bookmark-fill";
15
+ export * from "./briefcase-fill";
16
+ export * from "./bubble-left-fill";
17
+ export * from "./building-2-fill";
18
+ export * from "./calendar";
19
+ export * from "./camera-fill";
20
+ export * from "./car-fill";
21
+ export * from "./cart-fill";
22
+ export * from "./chart-bar-doc-horizontal";
23
+ export * from "./checkmark";
24
+ export * from "./checkmark-seal";
25
+ export * from "./chevron-compact-down";
26
+ export * from "./chevron-down";
27
+ export * from "./chevron-left";
28
+ export * from "./chevron-left-forwardslash-chevron-right";
29
+ export * from "./chevron-right";
30
+ export * from "./chevron-up-chevron-down";
31
+ export * from "./circle-fill";
32
+ export * from "./clock-badge-checkmark";
33
+ export * from "./clock-fill";
34
+ export * from "./cloud-fill";
35
+ export * from "./cube-fill";
36
+ export * from "./curve-point-left";
37
+ export * from "./dial-high";
38
+ export * from "./doc-fill";
39
+ export * from "./doc-on-clipboard";
40
+ export * from "./doc-on-doc";
41
+ export * from "./doc-on-doc-fill";
42
+ export * from "./doc-text-magnifyingglass";
43
+ export * from "./dollar-sign";
44
+ export * from "./ellipsis-circle";
45
+ export * from "./ellipsis-circle-fill";
46
+ export * from "./envelope";
47
+ export * from "./envelope-fill";
48
+ export * from "./eye";
49
+ export * from "./exclamationmark-octagon";
50
+ export * from "./figure-water-fitness";
51
+ export * from "./15-arrow-trianglehead-clockwise";
52
+ export * from "./15-arrow-trianglehead-counterclockwise";
53
+ export * from "./5-arrow-trianglehead-clockwise";
54
+ export * from "./5-arrow-trianglehead-counterclockwise";
55
+ export * from "./45-arrow-trianglehead-clockwise";
56
+ export * from "./45-arrow-trianglehead-counterclockwise";
57
+ export * from "./flag-fill";
58
+ export * from "./flame-fill";
59
+ export * from "./folder";
60
+ export * from "./folder-fill";
61
+ export * from "./gearshape";
62
+ export * from "./gearshape-fill";
63
+ export * from "./gift-fill";
64
+ export * from "./globe-americas-fill";
65
+ export * from "./hare-fill";
66
+ export * from "./house";
67
+ export * from "./house-deskclock";
68
+ export * from "./house-fill";
69
+ export * from "./iphone-house";
70
+ export * from "./lightbulb-fill";
71
+ export * from "./lightbulb-led";
72
+ export * from "./light-ribbon";
73
+ export * from "./list-bullet-clipboard-fill";
74
+ export * from "./magnifyingglass";
75
+ export * from "./map-pin-ellipse";
76
+ export * from "./minus-plus-batterblock";
77
+ export * from "./network";
78
+ export * from "./network-shield";
79
+ export * from "./newspaper-fill";
80
+ export * from "./90-arrow-trianglehead-clockwise";
81
+ export * from "./90-arrow-trianglehead-counterclockwise";
82
+ export * from "./number";
83
+ export * from "./paperplane-fill";
84
+ export * from "./pause-fill";
85
+ export * from "./person";
86
+ export * from "./person-crop-square";
87
+ export * from "./person-fill";
88
+ export * from "./person-fill-questionmark";
89
+ export * from "./phone";
90
+ export * from "./phone-arrow-up-right";
91
+ export * from "./phone-fill";
92
+ export * from "./photo-badge-arrow-down";
93
+ export * from "./photo-badge-arrow-down-fill";
94
+ export * from "./play-fill";
95
+ export * from "./play-rectangle-fill";
96
+ export * from "./plus";
97
+ export * from "./qrcode";
98
+ export * from "./rectangle";
99
+ export * from "./rectangle-fill";
100
+ export * from "./rectangle-fill-on-arrow-down-forward-topleading-rectangle";
101
+ export * from "./rectangle-portrait-and-arrow-left";
102
+ export * from "./rectangle-portrait-and-arrow-left-fill";
103
+ export * from "./rectangle-triangle-up";
104
+ export * from "./sensor";
105
+ export * from "./75-arrow-trianglehead-clockwise";
106
+ export * from "./75-arrow-trianglehead-counterclockwise";
107
+ export * from "./signature";
108
+ export * from "./60-arrow-trianglehead-clockwise";
109
+ export * from "./60-arrow-trianglehead-counterclockwise";
110
+ export * from "./solar-panel";
111
+ export * from "./speaker";
112
+ export * from "./speaker-fill";
113
+ export * from "./speaker-minus";
114
+ export * from "./speaker-minus-fill";
115
+ export * from "./speaker-plus";
116
+ export * from "./speaker-plus-fill";
117
+ export * from "./speaker-slash";
118
+ export * from "./speaker-slash-fill";
119
+ export * from "./speaker-wave-1";
120
+ export * from "./speaker-wave-1-fill";
121
+ export * from "./speaker-wave-2";
122
+ export * from "./speaker-wave-2-fill";
123
+ export * from "./speaker-wave-3";
124
+ export * from "./speaker-wave-3-fill";
125
+ export * from "./square-and-arrow-down";
126
+ export * from "./square-and-arrow-down-fill";
127
+ export * from "./square-and-arrow-up";
128
+ export * from "./square-and-arrow-up-fill";
129
+ export * from "./square-and-pencil";
130
+ export * from "./10-arrow-trianglehead-clockwise";
131
+ export * from "./10-arrow-trianglehead-counterclockwise";
132
+ export * from "./30-arrow-trianglehead-clockwise";
133
+ export * from "./30-arrow-trianglehead-counterclockwise";
134
+ export * from "./text-bubble";
135
+ export * from "./3-people";
136
+ export * from "./3-rectangles-desktop";
137
+ export * from "./3-rectangles-desktop-fill";
138
+ export * from "./trash";
139
+ export * from "./trash-fill";
140
+ export * from "./tree";
141
+ export * from "./umbrella-fill";
142
+ export * from "./xmark";
144
143
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/icons/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/icons/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { ComponentPropsWithRef } from "react";
2
+ export declare function SquareAndArrowUpRight(props: Omit<ComponentPropsWithRef<"svg">, "viewBox">): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=square-and-arrow-up-right.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"square-and-arrow-up-right.d.ts","sourceRoot":"","sources":["../../src/icons/square-and-arrow-up-right.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAC;AAE9C,wBAAgB,qBAAqB,CACpC,KAAK,EAAE,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,2CAQpD"}
@@ -1,3 +1,3 @@
1
- import { ComponentPropsWithRef } from 'react';
2
- export declare function SquareAndPencil(props: Omit<ComponentPropsWithRef<'svg'>, 'viewBox'>): import("react/jsx-runtime").JSX.Element;
1
+ import { ComponentPropsWithRef } from "react";
2
+ export declare function SquareAndPencil(props: Omit<ComponentPropsWithRef<"svg">, "viewBox">): import("react/jsx-runtime").JSX.Element;
3
3
  //# sourceMappingURL=square-and-pencil.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"square-and-pencil.d.ts","sourceRoot":"","sources":["../../src/icons/square-and-pencil.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAA;AAE7C,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,2CAOnF"}
1
+ {"version":3,"file":"square-and-pencil.d.ts","sourceRoot":"","sources":["../../src/icons/square-and-pencil.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAC;AAE9C,wBAAgB,eAAe,CAC9B,KAAK,EAAE,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,2CASpD"}