{
  "version": 3,
  "sources": ["ssg:https://asset.29cm.co.kr/contents/framer/components/effects/SnowEffect/SnowFlake.js", "ssg:https://asset.29cm.co.kr/contents/framer/components/effects/SnowEffect/shader.js", "ssg:https://asset.29cm.co.kr/contents/framer/node_modules/gl-matrix/esm/common.js", "ssg:https://asset.29cm.co.kr/contents/framer/node_modules/gl-matrix/esm/mat3.js", "ssg:https://asset.29cm.co.kr/contents/framer/components/effects/SnowEffect/Snow.js", "ssg:https://asset.29cm.co.kr/contents/framer/node_modules/react-use/esm/useEvent.js", "ssg:https://asset.29cm.co.kr/contents/framer/components/effects/SnowEffect/SnowEffect.js", "ssg:https://framerusercontent.com/modules/wBCZOaswhwNDgy0gbCsM/v7wQkuwYSKuJ2W6mm6b8/SnowEffect.js"],
  "sourcesContent": ["var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n  __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n  return value;\n};\nclass SnowFlake {\n  constructor(getConfig, getCanvasSize) {\n    __publicField(this, \"getConfig\");\n    __publicField(this, \"getCanvasSize\");\n    __publicField(this, \"x\", 0);\n    __publicField(this, \"y\", 0);\n    __publicField(this, \"vx\", 0);\n    __publicField(this, \"vy\", 0);\n    __publicField(this, \"radius\", 0);\n    __publicField(this, \"alpha\", 0);\n    this.getConfig = getConfig;\n    this.getCanvasSize = getCanvasSize;\n    this.reset();\n  }\n  reset() {\n    const {\n      x,\n      y,\n      vx,\n      vy,\n      radius,\n      alpha\n    } = this.getConfig();\n    this.x = x;\n    this.y = y;\n    this.vx = vx;\n    this.vy = vy;\n    this.radius = radius;\n    this.alpha = alpha;\n  }\n  get props() {\n    return [this.x, this.y, this.radius, this.alpha];\n  }\n  update(delta) {\n    const {\n      width,\n      height\n    } = this.getCanvasSize();\n    this.x += this.vx * delta;\n    this.y += this.vy * delta;\n    if (this.x + this.radius < 0 || this.x - this.radius > width || this.y + this.radius > height) {\n      this.reset();\n    }\n  }\n}\nexport {\n  SnowFlake\n};\n", "const vertexShaderSource = `\n  attribute vec4 a_snowFlakeProps;\n  uniform mat3 u_projectionMatrix;\n  varying vec4 v_color;\n\n  void main() {\n    gl_Position = vec4((u_projectionMatrix * vec3(a_snowFlakeProps.xy, 1)).xy, 0, 1);\n    gl_PointSize = 2.0 * a_snowFlakeProps.z;\n    v_color = vec4(1, 1, 1, a_snowFlakeProps.w);\n  }\n`;\nconst fragmentShaderSource = `\n  precision mediump float;\n  varying vec4 v_color;\n\n  void main() {\n    vec2 distToCenter = gl_PointCoord - vec2(0.5, 0.5);\n    float distToCenterSquared = dot(distToCenter, distToCenter);\n    float alpha;\n\n    if (distToCenterSquared < 0.25) {\n      alpha = v_color.w;\n    } else {\n      alpha = 0.0;\n    }\n\n    gl_FragColor = vec4(v_color.xyz, alpha);\n  }\n`;\nfunction createShader(gl, type, shaderSource) {\n  const shader = gl.createShader(type);\n  gl.shaderSource(shader, shaderSource);\n  gl.compileShader(shader);\n  if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n    gl.deleteShader(shader);\n    return null;\n  }\n  return shader;\n}\nfunction createProgram(gl, vertexShader, fragmentShader) {\n  const program = gl.createProgram();\n  gl.attachShader(program, vertexShader);\n  gl.attachShader(program, fragmentShader);\n  gl.linkProgram(program);\n  if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n    gl.deleteProgram(program);\n    return null;\n  }\n  return program;\n}\nexport {\n  createProgram,\n  createShader,\n  fragmentShaderSource,\n  vertexShaderSource\n};\n", "var ARRAY_TYPE = typeof Float32Array !== \"undefined\" ? Float32Array : Array;\nif (!Math.hypot)\n  Math.hypot = function() {\n    var y = 0, i = arguments.length;\n    while (i--) {\n      y += arguments[i] * arguments[i];\n    }\n    return Math.sqrt(y);\n  };\nexport {\n  ARRAY_TYPE\n};\n", "import { ARRAY_TYPE } from \"./common.js\";\nfunction create() {\n  var out = new ARRAY_TYPE(9);\n  if (ARRAY_TYPE != Float32Array) {\n    out[1] = 0;\n    out[2] = 0;\n    out[3] = 0;\n    out[5] = 0;\n    out[6] = 0;\n    out[7] = 0;\n  }\n  out[0] = 1;\n  out[4] = 1;\n  out[8] = 1;\n  return out;\n}\nfunction identity(out) {\n  out[0] = 1;\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = 1;\n  out[5] = 0;\n  out[6] = 0;\n  out[7] = 0;\n  out[8] = 1;\n  return out;\n}\nfunction projection(out, width, height) {\n  out[0] = 2 / width;\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = -2 / height;\n  out[5] = 0;\n  out[6] = -1;\n  out[7] = 1;\n  out[8] = 1;\n  return out;\n}\nexport {\n  create,\n  identity,\n  projection\n};\n", "var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n  __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n  return value;\n};\nimport { SnowFlake } from \"./SnowFlake.js\";\nimport { createShader, vertexShaderSource, fragmentShaderSource, createProgram } from \"./shader.js\";\nimport { create, identity, projection } from \"../../../node_modules/gl-matrix/esm/mat3.js\";\nclass Snow {\n  constructor(canvas) {\n    __publicField(this, \"paused\", true);\n    __publicField(this, \"canvas\");\n    __publicField(this, \"gl\");\n    __publicField(this, \"projectionMatrix\");\n    __publicField(this, \"snowFlakes\", []);\n    __publicField(this, \"density\", 0.4);\n    __publicField(this, \"vxAverage\", 0);\n    __publicField(this, \"vyAverage\", 0.4);\n    __publicField(this, \"sizeAverage\", 3.2);\n    __publicField(this, \"vxDiversity\", 0.5);\n    __publicField(this, \"vyDiversity\", 0.9);\n    __publicField(this, \"sizeDiversity\", 3);\n    __publicField(this, \"color\", \"rgb(255,255,255)\");\n    __publicField(this, \"lastUpdatedTime\", 0);\n    __publicField(this, \"getSnowFlakeConfig\", () => {\n      return {\n        x: this.randomBetween(0, this.canvas.clientWidth),\n        y: this.randomBetween(0, -this.canvas.clientHeight),\n        vx: this.randomWithDiversity(this.vxAverage, this.vxDiversity),\n        vy: Math.max(0.2, this.randomWithDiversity(this.vyAverage, this.vyDiversity)),\n        radius: Math.max(0.1, this.randomWithDiversity(this.sizeAverage, this.sizeDiversity)) * window.devicePixelRatio,\n        alpha: this.randomBetween(0.2, 1),\n        color: this.color\n      };\n    });\n    __publicField(this, \"getCanvasSize\", () => {\n      return {\n        width: this.canvas.width,\n        height: this.canvas.height\n      };\n    });\n    this.canvas = canvas;\n    this.gl = canvas.getContext(\"webgl\");\n    this.projectionMatrix = this.getProjectionMatrix();\n    this.refreshSnowFlakes();\n    requestAnimationFrame((time) => {\n      this.lastUpdatedTime = time;\n      this.update(this.gl, time);\n    });\n  }\n  randomBetween(min, max) {\n    return Math.random() * (max - min) + min;\n  }\n  randomWithDiversity(average, diversity) {\n    return Math.random() * diversity + average - diversity / 2;\n  }\n  updateDensity(density) {\n    this.density = density;\n    this.refreshSnowFlakes();\n  }\n  refreshSnowFlakes() {\n    const count = this.canvas.width / 4 * this.density;\n    const snowFlakes = [];\n    for (let i = 0; i < count; i++) {\n      snowFlakes.push(this.createSnowFlake());\n    }\n    this.snowFlakes = snowFlakes;\n  }\n  createSnowFlake() {\n    return new SnowFlake(this.getSnowFlakeConfig, this.getCanvasSize);\n  }\n  getProjectionMatrix() {\n    const matrix = create();\n    identity(matrix);\n    projection(matrix, this.gl.canvas.clientWidth, this.gl.canvas.clientHeight);\n    return matrix;\n  }\n  get snowFlakesProps() {\n    let snowFlakesProps = [];\n    for (const snowFlake of this.snowFlakes) {\n      snowFlakesProps = [...snowFlakesProps, ...snowFlake.props];\n    }\n    return snowFlakesProps;\n  }\n  update(gl, time) {\n    if (this.paused) {\n      requestAnimationFrame(this.update.bind(this, gl));\n      return;\n    }\n    const delta = (time - this.lastUpdatedTime) * 0.06;\n    this.lastUpdatedTime = time;\n    this.snowFlakes.forEach((snowFlake) => snowFlake.update(delta));\n    const vertexShader = createShader(gl, gl.VERTEX_SHADER, vertexShaderSource);\n    const fragmentShader = createShader(gl, gl.FRAGMENT_SHADER, fragmentShaderSource);\n    const program = createProgram(gl, vertexShader, fragmentShader);\n    const snowFlakePropsAttribLocation = gl.getAttribLocation(program, \"a_snowFlakeProps\");\n    const projectionMatrixUniformLocation = gl.getUniformLocation(program, \"u_projectionMatrix\");\n    const snowFlakePropsBuffer = gl.createBuffer();\n    gl.bindBuffer(gl.ARRAY_BUFFER, snowFlakePropsBuffer);\n    gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(this.snowFlakesProps), gl.STATIC_DRAW);\n    gl.enableVertexAttribArray(snowFlakePropsBuffer);\n    const [size, type, normalize, stride, offset] = [4, gl.FLOAT, false, 0, 0];\n    gl.vertexAttribPointer(snowFlakePropsAttribLocation, size, type, normalize, stride, offset);\n    gl.viewport(0, 0, gl.canvas.width, gl.canvas.height);\n    gl.clearColor(0, 0, 0, 0);\n    gl.clear(gl.COLOR_BUFFER_BIT);\n    gl.clear(gl.DEPTH_BUFFER_BIT);\n    gl.useProgram(program);\n    gl.enable(gl.BLEND);\n    gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);\n    gl.uniformMatrix3fv(projectionMatrixUniformLocation, false, this.projectionMatrix);\n    const [mode, offset2, count] = [gl.POINTS, 0, this.snowFlakes.length];\n    gl.drawArrays(mode, offset2, count);\n    requestAnimationFrame((frameTime) => this.update(gl, frameTime));\n  }\n  updateConfig(config) {\n    this.vxAverage = config.vxAverage;\n    this.vyAverage = config.vyAverage;\n    this.sizeAverage = config.sizeAverage;\n    this.vxDiversity = config.vxDiversity;\n    this.vyDiversity = config.vyDiversity;\n    this.sizeDiversity = config.sizeDiversity;\n    this.color = config.color;\n  }\n}\nexport {\n  Snow\n};\n", "import { useEffect } from \"react\";\nimport { on, off, isBrowser } from \"./misc/util.js\";\nvar defaultTarget = isBrowser ? window : null;\nvar isListenerType1 = function(target) {\n  return !!target.addEventListener;\n};\nvar isListenerType2 = function(target) {\n  return !!target.on;\n};\nvar useEvent = function(name, handler, target, options) {\n  if (target === void 0) {\n    target = defaultTarget;\n  }\n  useEffect(function() {\n    if (!handler) {\n      return;\n    }\n    if (!target) {\n      return;\n    }\n    if (isListenerType1(target)) {\n      on(target, name, handler, options);\n    } else if (isListenerType2(target)) {\n      target.on(name, handler, options);\n    }\n    return function() {\n      if (isListenerType1(target)) {\n        off(target, name, handler, options);\n      } else if (isListenerType2(target)) {\n        target.off(name, handler, options);\n      }\n    };\n  }, [name, handler, target, JSON.stringify(options)]);\n};\nexport {\n  useEvent as default\n};\n", "import { jsx } from \"react/jsx-runtime\";\nimport { addPropertyControls, ControlType } from \"framer\";\nimport { motion } from \"framer-motion\";\nimport { useRef, useState, useEffect } from \"react\";\nimport { useEffectOnce } from \"../../../hooks/react/useEffectOnce.js\";\nimport { isCanvas } from \"../../../utils/framer/isCanvas.js\";\nimport { mergeRefs } from \"../../../utils/react/mergeRefs.js\";\nimport { Snow } from \"./Snow.js\";\nimport useMeasure from \"../../../node_modules/react-use/esm/useMeasure.js\";\nimport useEvent from \"../../../node_modules/react-use/esm/useEvent.js\";\nconst maxCanvasWidth = 3840;\nconst SnowEffect = ({\n  style,\n  color,\n  density,\n  vxAverage,\n  vyAverage,\n  sizeAverage,\n  vxDiversity,\n  vyDiversity,\n  sizeDiversity,\n  scrollInteractionDelay,\n  fadeOutDuration\n}) => {\n  const canvasRef = useRef(null);\n  const snowRef = useRef();\n  const [canvasRefForMeasure, {\n    width,\n    height\n  }] = useMeasure();\n  const scrollTimeoutRef = useRef();\n  const [isScrolling, setIsScrolling] = useState(false);\n  const [isSnowShowed, setIsSnowShowed] = useState(false);\n  const devicePixelRatio = (window == null ? void 0 : window.devicePixelRatio) ?? 1;\n  const maxCanvasHeight = height / Math.max(1, width) * maxCanvasWidth;\n  const canvasWidth = Math.min(maxCanvasWidth, width * devicePixelRatio);\n  const canvasHeight = Math.min(height * devicePixelRatio, maxCanvasHeight);\n  useEffectOnce(() => {\n    if (canvasRef.current === null) {\n      return;\n    }\n    snowRef.current = new Snow(canvasRef.current);\n    snowRef.current.updateConfig({\n      vxAverage,\n      vyAverage,\n      sizeAverage,\n      vxDiversity,\n      vyDiversity,\n      sizeDiversity,\n      color\n    });\n  });\n  useEffect(() => {\n    var _a;\n    if (!isCanvas()) {\n      return;\n    }\n    (_a = snowRef.current) == null ? void 0 : _a.updateConfig({\n      vxAverage,\n      vyAverage,\n      sizeAverage,\n      vxDiversity,\n      vyDiversity,\n      sizeDiversity,\n      color\n    });\n  }, [vxAverage, vyAverage, sizeAverage, vxDiversity, vyDiversity, sizeDiversity, color]);\n  useEffect(() => {\n    var _a;\n    (_a = snowRef.current) == null ? void 0 : _a.updateDensity(density);\n  }, [density, width, height]);\n  useEvent(\"scroll\", () => {\n    setIsScrolling(true);\n    clearTimeout(scrollTimeoutRef.current);\n    scrollTimeoutRef.current = setTimeout(() => {\n      setIsScrolling(false);\n    }, scrollInteractionDelay * 1e3);\n  });\n  useEffect(() => {\n    if (snowRef.current !== void 0) {\n      snowRef.current.paused = !isSnowShowed;\n    }\n  }, [isSnowShowed]);\n  return /* @__PURE__ */ jsx(motion.canvas, { ref: mergeRefs([canvasRef, canvasRefForMeasure]), style: {\n    ...style,\n    pointerEvents: \"none\"\n  }, width: canvasWidth, height: canvasHeight, animate: {\n    opacity: isScrolling ? 1 : 0\n  }, transition: {\n    duration: fadeOutDuration\n  }, onUpdate: (latest) => {\n    setIsSnowShowed(latest.opacity > 0);\n  } });\n};\naddPropertyControls(SnowEffect, {\n  // TODO: \uB208 \uC0C9\uC0C1 \uBCC0\uACBD \uC9C0\uC6D0\uD558\uAE30\n  // color: {\n  //   title: '\uB208 \uC0C9\uC0C1',\n  //   type: ControlType.Color,\n  //   defaultValue: 'rgba(255,255,255,1)',\n  // },\n  density: {\n    title: \"\uBC00\uB3C4\",\n    description: \"\uAC12\uC774 \uD074\uC218\uB85D \uB9CE\uC740 \uB208\uC774 \uB0B4\uB9BD\uB2C8\uB2E4\",\n    type: ControlType.Number,\n    min: 0.1,\n    max: 3,\n    step: 0.1,\n    defaultValue: 0.4\n  },\n  vxAverage: {\n    title: \"\uBC14\uB78C \uBC29\uD5A5(\uC88C\uC6B0)\",\n    type: ControlType.Number,\n    min: -3,\n    max: 3,\n    step: 0.1,\n    defaultValue: 0\n  },\n  vxDiversity: {\n    title: \"\uBC14\uB78C \uBC29\uD5A5 \uBCC0\uD654\",\n    description: \"\uAC12\uC774 \uD074\uC218\uB85D \uB2E4\uC591\uD55C \uBC29\uD5A5\uC73C\uB85C \uB208\uC774 \uD718\uB0A0\uB9BD\uB2C8\uB2E4\\n\\n\",\n    type: ControlType.Number,\n    min: 0.2,\n    max: 4,\n    step: 0.1,\n    defaultValue: 0.5\n  },\n  vyAverage: {\n    title: \"\uB099\uD558 \uC18D\uB3C4\",\n    type: ControlType.Number,\n    min: 0.2,\n    max: 4,\n    step: 0.1,\n    defaultValue: 0.4\n  },\n  vyDiversity: {\n    title: \"\uB099\uD558 \uC18D\uB3C4 \uBCC0\uD654\",\n    description: \"\uAC12\uC774 \uD074\uC218\uB85D \uB2E4\uC591\uD55C \uC18D\uB3C4\uB85C \uB208\uC774 \uB5A8\uC5B4\uC9D1\uB2C8\uB2E4\\n\\n\",\n    type: ControlType.Number,\n    min: 0.2,\n    max: 4,\n    step: 0.1,\n    defaultValue: 0.9\n  },\n  sizeAverage: {\n    title: \"\uB208 \uD06C\uAE30\",\n    type: ControlType.Number,\n    min: 0.2,\n    max: 20,\n    step: 0.1,\n    defaultValue: 3.2\n  },\n  sizeDiversity: {\n    title: \"\uB208 \uD06C\uAE30 \uBCC0\uD654\",\n    description: \"\uAC12\uC774 \uD074\uC218\uB85D \uB2E4\uC591\uD55C \uD06C\uAE30\uB85C \uB208\uC774 \uC0DD\uC131\uB429\uB2C8\uB2E4\",\n    type: ControlType.Number,\n    min: 0.2,\n    max: 20,\n    step: 0.1,\n    defaultValue: 3\n  },\n  scrollInteractionDelay: {\n    title: \"\uC2A4\uD06C\uB864 \uB51C\uB808\uC774\",\n    description: \"\uAC12\uC774 \uD074\uC218\uB85D \uC2A4\uD06C\uB864\uC774 \uBA48\uCD94\uACE0\uB098\uC11C \uB354 \uAE34 \uC2DC\uAC04 \uB208\uC774 \uB0B4\uB9BD\uB2C8\uB2E4 (\uCD08)\",\n    type: ControlType.Number,\n    min: 0,\n    max: 5,\n    step: 0.1,\n    defaultValue: 1\n  },\n  fadeOutDuration: {\n    title: \"\uC0AC\uB77C\uC9D0 \uC2DC\uAC04\",\n    description: \"\uAC12\uC774 \uD074\uC218\uB85D \uCC9C\uCC9C\uD788 \uC0AC\uB77C\uC9D1\uB2C8\uB2E4 (\uCD08)\",\n    type: ControlType.Number,\n    min: 0.1,\n    max: 5,\n    step: 0.1,\n    defaultValue: 1\n  }\n});\nexport {\n  SnowEffect\n};\n", "import{SnowEffect}from\"https://asset.29cm.co.kr/contents/framer/components/effects/SnowEffect/SnowEffect.js\";/**\n * @framerDisableUnlink\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n * @framerIntrinsicHeight 600\n * @framerIntrinsicWidth 400\n */export default SnowEffect;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SnowEffect\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"600\",\"framerDisableUnlink\":\"* @framerSupportedLayoutWidth fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicWidth\":\"400\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SnowEffect.map"],
  "mappings": "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",
  "names": ["__defProp", "__defNormalProp", "obj", "key", "value", "__publicField", "SnowFlake", "getConfig", "getCanvasSize", "x", "y", "vx", "vy", "radius", "alpha", "delta", "width", "height", "vertexShaderSource", "fragmentShaderSource", "createShader", "gl", "type", "shaderSource", "shader", "createProgram", "vertexShader", "fragmentShader", "program", "ARRAY_TYPE", "y", "i", "create", "out", "ARRAY_TYPE", "identity", "projection", "width", "height", "__defProp", "__defNormalProp", "obj", "key", "value", "__publicField", "Snow", "canvas", "window", "time", "min", "max", "average", "diversity", "density", "count", "snowFlakes", "SnowFlake", "matrix", "create", "identity", "projection", "snowFlakesProps", "snowFlake", "gl", "delta", "vertexShader", "createShader", "vertexShaderSource", "fragmentShader", "fragmentShaderSource", "program", "createProgram", "snowFlakePropsAttribLocation", "projectionMatrixUniformLocation", "snowFlakePropsBuffer", "size", "type", "normalize", "stride", "offset", "mode", "offset2", "frameTime", "config", "defaultTarget", "isBrowser", "window", "isListenerType1", "target", "isListenerType2", "useEvent", "name", "handler", "options", "ue", "on", "off", "maxCanvasWidth", "SnowEffect", "style", "color", "density", "vxAverage", "vyAverage", "sizeAverage", "vxDiversity", "vyDiversity", "sizeDiversity", "scrollInteractionDelay", "fadeOutDuration", "canvasRef", "pe", "snowRef", "canvasRefForMeasure", "width", "height", "useMeasure$1", "scrollTimeoutRef", "isScrolling", "setIsScrolling", "ye", "isSnowShowed", "setIsSnowShowed", "devicePixelRatio", "window", "maxCanvasHeight", "canvasWidth", "canvasHeight", "useEffectOnce", "Snow", "ue", "_a", "isCanvas", "useEvent", "p", "motion", "mergeRefs", "latest", "addPropertyControls", "ControlType", "SnowEffect_default", "SnowEffect"]
}
