Packages
corex
0.1.0-beta.2
0.1.2
0.1.1
0.1.0
0.1.0-rc.1
0.1.0-rc.0
0.1.0-beta.5
0.1.0-beta.4
0.1.0-beta.3
0.1.0-beta.2
0.1.0-beta.1
0.1.0-alpha.33
0.1.0-alpha.32
0.1.0-alpha.31
0.1.0-alpha.30
0.1.0-alpha.29
0.1.0-alpha.28
0.1.0-alpha.27
0.1.0-alpha.26
0.1.0-alpha.25
0.1.0-alpha.24
0.1.0-alpha.23
0.1.0-alpha.22
0.1.0-alpha.21
0.1.0-alpha.20
0.1.0-alpha.19
0.1.0-alpha.18
0.1.0-alpha.17
0.1.0-alpha.16
0.1.0-alpha.15
0.1.0-alpha.14
0.1.0-alpha.13
0.1.0-alpha.12
0.1.0-alpha.11
0.1.0-alpha.10
0.1.0-alpha.9
0.1.0-alpha.8
0.1.0-alpha.7
0.1.0-alpha.6
0.1.0-alpha.5
0.1.0-alpha.4
0.1.0-alpha.3
0.1.0-alpha.2
0.1.0-alpha.1
Accessible and unstyled UI components library written in Elixir and TypeScript that integrates Zag.js state machines into the Phoenix Framework.
Current section
Files
Jump to
Current section
Files
priv/static/corex.mjs.map
{
"version": 3,
"sources": ["../../assets/lib/custom-animation.ts", "../../assets/hooks/lazy-hook.ts", "../../assets/hooks/corex.ts"],
"sourcesContent": ["export type Animator = (\n el: HTMLElement,\n keyframes: Record<string, (number | string)[]>,\n options: { duration: number; easing: string | number[] }\n) => { finished: Promise<unknown> };\n\nexport type AnimateHeightOptions = {\n animator: Animator;\n duration?: number;\n easing?: string | number[];\n opacityStart?: number;\n opacityEnd?: number;\n};\n\nexport type AnimateScaleOptions = {\n animator: Animator;\n duration?: number;\n easing?: string | number[];\n opacityStart?: number;\n opacityEnd?: number;\n scaleStart?: number;\n scaleEnd?: number;\n};\n\nconst DEFAULT_DURATION = 0.3;\nconst DEFAULT_EASING: string = \"ease-out\";\nconst DEFAULT_OPACITY_START = 0;\nconst DEFAULT_OPACITY_END = 1;\nconst DEFAULT_SCALE_START = 0.96;\nconst DEFAULT_SCALE_END = 1;\n\nfunction reducedMotion(): boolean {\n return (\n typeof window !== \"undefined\" &&\n typeof window.matchMedia === \"function\" &&\n window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches\n );\n}\n\nexport function applyClosedHeight(el: HTMLElement): void {\n el.style.opacity = \"0\";\n el.style.height = \"0px\";\n el.style.overflow = \"hidden\";\n}\n\nexport function applyOpenHeight(el: HTMLElement): void {\n el.style.opacity = \"\";\n el.style.height = \"\";\n el.style.overflow = \"\";\n}\n\nexport function findAccordionContent(rootEl: HTMLElement, value: string): HTMLElement | null {\n return rootEl.querySelector<HTMLElement>(\n `[data-scope=\"accordion\"][data-part=\"item\"][data-value=\"${CSS.escape(value)}\"] [data-part=\"item-content\"]`\n );\n}\n\nexport function findTreeBranch(rootEl: HTMLElement, value: string): HTMLElement | null {\n return rootEl.querySelector<HTMLElement>(\n `[data-scope=\"tree-view\"][data-part=\"branch-content\"][data-value=\"${CSS.escape(value)}\"]`\n );\n}\n\nexport function findDialogBackdrop(rootEl: HTMLElement): HTMLElement | null {\n return rootEl.querySelector<HTMLElement>('[data-scope=\"dialog\"][data-part=\"backdrop\"]');\n}\n\nexport function findDialogContent(rootEl: HTMLElement): HTMLElement | null {\n return rootEl.querySelector<HTMLElement>('[data-scope=\"dialog\"][data-part=\"content\"]');\n}\n\nexport function applyClosedScale(\n el: HTMLElement,\n opts: { scaleStart?: number; opacityStart?: number } = {}\n): void {\n const isBackdrop = el.dataset.part === \"backdrop\";\n const opacityStart = opts.opacityStart ?? DEFAULT_OPACITY_START;\n const scaleStart = opts.scaleStart ?? DEFAULT_SCALE_START;\n el.style.opacity = String(opacityStart);\n if (!isBackdrop && scaleStart !== 1) {\n el.style.transform = `scale(${scaleStart})`;\n } else {\n el.style.removeProperty(\"transform\");\n }\n}\n\nexport function applyOpenScale(el: HTMLElement): void {\n el.style.opacity = \"\";\n el.style.removeProperty(\"transform\");\n}\n\nexport function animateHeightOpen(el: HTMLElement, opts: AnimateHeightOptions): Promise<void> {\n if (reducedMotion()) {\n applyOpenHeight(el);\n return Promise.resolve();\n }\n const duration = opts.duration ?? DEFAULT_DURATION;\n const easing = opts.easing ?? DEFAULT_EASING;\n const opacityStart = opts.opacityStart ?? DEFAULT_OPACITY_START;\n const opacityEnd = opts.opacityEnd ?? DEFAULT_OPACITY_END;\n\n const toHeight = `${el.scrollHeight}px`;\n el.style.height = \"0px\";\n el.style.overflow = \"hidden\";\n\n return Promise.resolve(\n opts\n .animator(\n el,\n { height: [\"0px\", toHeight], opacity: [opacityStart, opacityEnd] },\n { duration, easing }\n )\n .finished.then(() => {\n applyOpenHeight(el);\n })\n ).then(() => undefined);\n}\n\nexport function animateHeightClose(el: HTMLElement, opts: AnimateHeightOptions): Promise<void> {\n if (reducedMotion()) {\n applyClosedHeight(el);\n return Promise.resolve();\n }\n const duration = opts.duration ?? DEFAULT_DURATION;\n const easing = opts.easing ?? DEFAULT_EASING;\n const opacityStart = opts.opacityStart ?? DEFAULT_OPACITY_START;\n const opacityEnd = opts.opacityEnd ?? DEFAULT_OPACITY_END;\n\n const fromHeight = `${el.scrollHeight}px`;\n el.style.height = fromHeight;\n el.style.overflow = \"hidden\";\n\n return Promise.resolve(\n opts\n .animator(\n el,\n { height: [fromHeight, \"0px\"], opacity: [opacityEnd, opacityStart] },\n { duration, easing }\n )\n .finished.then(() => {\n applyClosedHeight(el);\n })\n ).then(() => undefined);\n}\n\nexport function animateScaleOpen(el: HTMLElement, opts: AnimateScaleOptions): Promise<void> {\n const isBackdrop = el.dataset.part === \"backdrop\";\n if (reducedMotion()) {\n applyOpenScale(el);\n return Promise.resolve();\n }\n const duration = opts.duration ?? DEFAULT_DURATION;\n const easing = opts.easing ?? DEFAULT_EASING;\n const opacityStart = opts.opacityStart ?? DEFAULT_OPACITY_START;\n const opacityEnd = opts.opacityEnd ?? DEFAULT_OPACITY_END;\n const scaleStart = opts.scaleStart ?? DEFAULT_SCALE_START;\n const scaleEnd = opts.scaleEnd ?? DEFAULT_SCALE_END;\n\n const keyframes: Record<string, (number | string)[]> = {\n opacity: [opacityStart, opacityEnd],\n };\n if (!isBackdrop && (scaleStart !== scaleEnd || scaleStart !== 1 || scaleEnd !== 1)) {\n keyframes.transform = [`scale(${scaleStart})`, `scale(${scaleEnd})`];\n }\n\n return Promise.resolve(\n opts.animator(el, keyframes, { duration, easing }).finished.then(() => {\n applyOpenScale(el);\n })\n ).then(() => undefined);\n}\n\nexport function animateScaleClose(el: HTMLElement, opts: AnimateScaleOptions): Promise<void> {\n const isBackdrop = el.dataset.part === \"backdrop\";\n if (reducedMotion()) {\n applyClosedScale(el, { scaleStart: opts.scaleStart, opacityStart: opts.opacityStart });\n return Promise.resolve();\n }\n const duration = opts.duration ?? DEFAULT_DURATION;\n const easing = opts.easing ?? DEFAULT_EASING;\n const opacityStart = opts.opacityStart ?? DEFAULT_OPACITY_START;\n const opacityEnd = opts.opacityEnd ?? DEFAULT_OPACITY_END;\n const scaleStart = opts.scaleStart ?? DEFAULT_SCALE_START;\n const scaleEnd = opts.scaleEnd ?? DEFAULT_SCALE_END;\n\n const keyframes: Record<string, (number | string)[]> = {\n opacity: [opacityEnd, opacityStart],\n };\n if (!isBackdrop && (scaleStart !== scaleEnd || scaleStart !== 1 || scaleEnd !== 1)) {\n keyframes.transform = [`scale(${scaleEnd})`, `scale(${scaleStart})`];\n }\n\n return Promise.resolve(\n opts.animator(el, keyframes, { duration, easing }).finished.then(() => {\n applyClosedScale(el, { scaleStart, opacityStart });\n })\n ).then(() => undefined);\n}\n", "import type { Hook } from \"phoenix_live_view\";\n\nexport type HookModule = Record<string, Hook<object, HTMLElement> | undefined>;\n\nexport function createLazyHook(importFn: () => Promise<HookModule>, exportName: string): Hook {\n return {\n async mounted() {\n const mod = await importFn();\n const real = mod[exportName];\n (this as { _realHook?: Hook<object, HTMLElement> })._realHook = real;\n if (real?.mounted) return real.mounted.call(this);\n },\n updated() {\n (this as { _realHook?: Hook })._realHook?.updated?.call(this);\n },\n destroyed() {\n (this as { _realHook?: Hook })._realHook?.destroyed?.call(this);\n },\n disconnected() {\n (this as { _realHook?: Hook })._realHook?.disconnected?.call(this);\n },\n reconnected() {\n (this as { _realHook?: Hook })._realHook?.reconnected?.call(this);\n },\n beforeUpdate() {\n (this as { _realHook?: Hook })._realHook?.beforeUpdate?.call(this);\n },\n };\n}\n", "export type {\n AccordionChangedDetail,\n TreeViewExpandedChangedDetail,\n TreeViewSelectionChangedDetail,\n DialogOpenChangedDetail,\n} from \"../lib/event-details\";\n\nexport type { Animator, AnimateHeightOptions, AnimateScaleOptions } from \"../lib/custom-animation\";\n\nexport {\n applyClosedHeight,\n applyOpenHeight,\n animateHeightOpen,\n animateHeightClose,\n applyClosedScale,\n applyOpenScale,\n animateScaleOpen,\n animateScaleClose,\n findAccordionContent,\n findTreeBranch,\n findDialogBackdrop,\n findDialogContent,\n} from \"../lib/custom-animation\";\n\nimport { createLazyHook } from \"./lazy-hook\";\n\nexport type { HookModule } from \"./lazy-hook\";\n\nexport const Hooks = {\n Accordion: createLazyHook(() => import(\"corex/accordion\"), \"Accordion\"),\n AngleSlider: createLazyHook(() => import(\"corex/angle-slider\"), \"AngleSlider\"),\n Avatar: createLazyHook(() => import(\"corex/avatar\"), \"Avatar\"),\n Carousel: createLazyHook(() => import(\"corex/carousel\"), \"Carousel\"),\n Checkbox: createLazyHook(() => import(\"corex/checkbox\"), \"Checkbox\"),\n Clipboard: createLazyHook(() => import(\"corex/clipboard\"), \"Clipboard\"),\n Code: createLazyHook(() => import(\"corex/code\"), \"Code\"),\n Collapsible: createLazyHook(() => import(\"corex/collapsible\"), \"Collapsible\"),\n Combobox: createLazyHook(() => import(\"corex/combobox\"), \"Combobox\"),\n ColorPicker: createLazyHook(() => import(\"corex/color-picker\"), \"ColorPicker\"),\n DatePicker: createLazyHook(() => import(\"corex/date-picker\"), \"DatePicker\"),\n Dialog: createLazyHook(() => import(\"corex/dialog\"), \"Dialog\"),\n Editable: createLazyHook(() => import(\"corex/editable\"), \"Editable\"),\n FileUpload: createLazyHook(() => import(\"corex/file-upload\"), \"FileUpload\"),\n FloatingPanel: createLazyHook(() => import(\"corex/floating-panel\"), \"FloatingPanel\"),\n Listbox: createLazyHook(() => import(\"corex/listbox\"), \"Listbox\"),\n Marquee: createLazyHook(() => import(\"corex/marquee\"), \"Marquee\"),\n Menu: createLazyHook(() => import(\"corex/menu\"), \"Menu\"),\n NumberInput: createLazyHook(() => import(\"corex/number-input\"), \"NumberInput\"),\n PasswordInput: createLazyHook(() => import(\"corex/password-input\"), \"PasswordInput\"),\n PinInput: createLazyHook(() => import(\"corex/pin-input\"), \"PinInput\"),\n RadioGroup: createLazyHook(() => import(\"corex/radio-group\"), \"RadioGroup\"),\n Select: createLazyHook(() => import(\"corex/select\"), \"Select\"),\n SignaturePad: createLazyHook(() => import(\"corex/signature-pad\"), \"SignaturePad\"),\n Switch: createLazyHook(() => import(\"corex/switch\"), \"Switch\"),\n Tabs: createLazyHook(() => import(\"corex/tabs\"), \"Tabs\"),\n Timer: createLazyHook(() => import(\"corex/timer\"), \"Timer\"),\n Toast: createLazyHook(() => import(\"corex/toast\"), \"Toast\"),\n Tooltip: createLazyHook(() => import(\"corex/tooltip\"), \"Tooltip\"),\n ToggleGroup: createLazyHook(() => import(\"corex/toggle-group\"), \"ToggleGroup\"),\n TreeView: createLazyHook(() => import(\"corex/tree-view\"), \"TreeView\"),\n};\n\nexport default Hooks;\n"],
"mappings": "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",
"names": []
}