@scbt-ecom/ui 0.49.0 → 0.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/hooks.js.map +1 -1
- package/dist/{index-BiAdttkO.js → index-DJ_i5IU3.js} +6027 -5836
- package/dist/index-DJ_i5IU3.js.map +1 -0
- package/dist/shared/hooks/useFloating.d.ts +1 -1
- package/dist/shared/ui/calendar/Calendar.d.ts +1 -1
- package/dist/ui.js +2 -2
- package/dist/validation.js +93 -91
- package/dist/validation.js.map +1 -1
- package/dist/widget.js +1 -1
- package/package.json +1 -1
- package/dist/index-BiAdttkO.js.map +0 -1
package/dist/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sources":["../lib/shared/hooks/useBoolean.ts","../lib/shared/hooks/useObserveElements.ts","../lib/shared/hooks/useFieldsProgress.ts","../lib/shared/hooks/useFloating.ts"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\n\ntype UseBooleanReturn = [value: boolean, action: (val?: boolean) => void]\n\nexport const useBoolean = (initialValue = false): UseBooleanReturn => {\n const [value, setValue] = React.useState(initialValue)\n const action = (val?: boolean) => setValue((prevValue) => val ?? !prevValue)\n\n return [value, action]\n}\n","'use client'\n\nimport { useEffect, useState } from 'react'\n\nexport const useObserveElements = (ids: string[], options?: IntersectionObserverInit, initialState = false): boolean => {\n const [isVisible, setIsVisible] = useState(initialState)\n\n useEffect(() => {\n const observer = new IntersectionObserver((entries) => {\n const visibleIds = entries.filter((entry) => entry.isIntersecting).map((entry) => entry.target.id)\n setIsVisible(visibleIds.some((id) => ids.includes(id)))\n }, options)\n\n const elementsMap = new Map<string, HTMLElement | null>()\n\n ids.forEach((id) => {\n const element = document.getElementById(id)\n elementsMap.set(id, element)\n if (element) {\n observer.observe(element)\n }\n })\n\n return () => {\n observer.disconnect()\n }\n }, [ids, options])\n\n return isVisible\n}\n","'use client'\n\nimport { useEffect, useState } from 'react'\nimport { type Control, type FieldValues, type Path, useWatch } from 'react-hook-form'\nimport { type ZodObject, type ZodRawShape } from 'zod'\n\nexport interface ISubscribedField<T extends FieldValues> {\n name: Path<T>\n progress: number\n maxPercent: number\n}\n\ntype TUseFieldsProgress<T extends FieldValues, S extends ZodRawShape> = {\n control: Control<T>\n schema: ZodObject<S>\n fields: ISubscribedField<T>[]\n}\n\nconst formatProgress = <T extends FieldValues>(subscribeFields: ISubscribedField<T>[]) => {\n return Object.values(subscribeFields)?.reduce((acc, value) => {\n return acc + value?.progress\n }, 0)\n}\n\nexport const useFieldsProgress = <T extends FieldValues, S extends ZodRawShape>({\n control,\n schema,\n fields\n}: TUseFieldsProgress<T, S>): number => {\n const [subscribeFields, setSubscribeFields] = useState<ISubscribedField<T>[]>(fields)\n const watchedFields = useWatch({ control })\n\n useEffect(() => {\n setSubscribeFields((prevFields) =>\n prevFields?.map((field) => {\n const fieldSchema = schema.shape[field.name]\n const result = fieldSchema.safeParse(watchedFields[field.name])\n if (result.success && watchedFields[field.name] && watchedFields[field.name] !== '') {\n return { ...field, progress: field.maxPercent }\n } else {\n return { ...field, progress: 0 }\n }\n })\n )\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [watchedFields])\n\n return formatProgress(subscribeFields)\n}\n","'use client'\n\nimport { useEffect, useState } from 'react'\n\ntype FloatingPosition = {\n top?: number\n left?: number\n width?: number\n transformOrigin?: string\n}\n\nexport const useFloating = (\n trigger: React.RefObject<
|
|
1
|
+
{"version":3,"file":"hooks.js","sources":["../lib/shared/hooks/useBoolean.ts","../lib/shared/hooks/useObserveElements.ts","../lib/shared/hooks/useFieldsProgress.ts","../lib/shared/hooks/useFloating.ts"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\n\ntype UseBooleanReturn = [value: boolean, action: (val?: boolean) => void]\n\nexport const useBoolean = (initialValue = false): UseBooleanReturn => {\n const [value, setValue] = React.useState(initialValue)\n const action = (val?: boolean) => setValue((prevValue) => val ?? !prevValue)\n\n return [value, action]\n}\n","'use client'\n\nimport { useEffect, useState } from 'react'\n\nexport const useObserveElements = (ids: string[], options?: IntersectionObserverInit, initialState = false): boolean => {\n const [isVisible, setIsVisible] = useState(initialState)\n\n useEffect(() => {\n const observer = new IntersectionObserver((entries) => {\n const visibleIds = entries.filter((entry) => entry.isIntersecting).map((entry) => entry.target.id)\n setIsVisible(visibleIds.some((id) => ids.includes(id)))\n }, options)\n\n const elementsMap = new Map<string, HTMLElement | null>()\n\n ids.forEach((id) => {\n const element = document.getElementById(id)\n elementsMap.set(id, element)\n if (element) {\n observer.observe(element)\n }\n })\n\n return () => {\n observer.disconnect()\n }\n }, [ids, options])\n\n return isVisible\n}\n","'use client'\n\nimport { useEffect, useState } from 'react'\nimport { type Control, type FieldValues, type Path, useWatch } from 'react-hook-form'\nimport { type ZodObject, type ZodRawShape } from 'zod'\n\nexport interface ISubscribedField<T extends FieldValues> {\n name: Path<T>\n progress: number\n maxPercent: number\n}\n\ntype TUseFieldsProgress<T extends FieldValues, S extends ZodRawShape> = {\n control: Control<T>\n schema: ZodObject<S>\n fields: ISubscribedField<T>[]\n}\n\nconst formatProgress = <T extends FieldValues>(subscribeFields: ISubscribedField<T>[]) => {\n return Object.values(subscribeFields)?.reduce((acc, value) => {\n return acc + value?.progress\n }, 0)\n}\n\nexport const useFieldsProgress = <T extends FieldValues, S extends ZodRawShape>({\n control,\n schema,\n fields\n}: TUseFieldsProgress<T, S>): number => {\n const [subscribeFields, setSubscribeFields] = useState<ISubscribedField<T>[]>(fields)\n const watchedFields = useWatch({ control })\n\n useEffect(() => {\n setSubscribeFields((prevFields) =>\n prevFields?.map((field) => {\n const fieldSchema = schema.shape[field.name]\n const result = fieldSchema.safeParse(watchedFields[field.name])\n if (result.success && watchedFields[field.name] && watchedFields[field.name] !== '') {\n return { ...field, progress: field.maxPercent }\n } else {\n return { ...field, progress: 0 }\n }\n })\n )\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [watchedFields])\n\n return formatProgress(subscribeFields)\n}\n","'use client'\n\nimport { useEffect, useState } from 'react'\n\ntype FloatingPosition = {\n top?: number\n left?: number\n width?: number\n transformOrigin?: string\n}\n\nexport const useFloating = (\n trigger: React.RefObject<HTMLElement>,\n list: React.RefObject<HTMLElement>,\n offset: number\n): FloatingPosition | null => {\n const [position, setPosition] = useState<FloatingPosition | null>(null)\n\n useEffect(() => {\n const updatePosition = () => {\n if (trigger.current && list.current) {\n const triggerRect = trigger.current.getBoundingClientRect()\n const listRect = list.current.getBoundingClientRect()\n const viewportHeight = window.innerHeight\n\n let top: number\n let transformOrigin: string\n\n const spaceBelow = viewportHeight - triggerRect.bottom\n const fitsBelow = spaceBelow >= listRect.height + offset\n\n if (fitsBelow) {\n top = triggerRect.bottom + offset\n transformOrigin = 'top'\n } else {\n const spaceAbove = triggerRect.top\n const fitsAbove = spaceAbove >= listRect.height + offset\n\n if (fitsAbove) {\n top = triggerRect.top - listRect.height - offset * 2\n transformOrigin = 'bottom'\n } else {\n top = triggerRect.bottom + offset\n transformOrigin = 'top'\n list.current.style.maxHeight = `${spaceBelow - offset}px`\n }\n }\n\n setPosition({\n top,\n width: triggerRect.width,\n left: triggerRect.left,\n transformOrigin\n })\n }\n }\n\n updatePosition()\n window.addEventListener('resize', updatePosition)\n window.addEventListener('orientationchange', updatePosition)\n\n return () => {\n window.removeEventListener('resize', updatePosition)\n window.removeEventListener('orientationchange', updatePosition)\n }\n }, [trigger.current, list.current, offset])\n\n return position\n}\n"],"names":["useBoolean","initialValue","value","setValue","React","val","prevValue","useObserveElements","ids","options","initialState","isVisible","setIsVisible","useState","useEffect","observer","entries","visibleIds","entry","id","elementsMap","element","formatProgress","subscribeFields","_a","acc","useFieldsProgress","control","schema","fields","setSubscribeFields","watchedFields","useWatch","prevFields","field","useFloating","trigger","list","offset","position","setPosition","updatePosition","triggerRect","listRect","viewportHeight","top","transformOrigin","spaceBelow"],"mappings":"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"}
|