@channel.io/bezier-react 2.0.1 → 2.0.2

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.
@@ -16,6 +16,7 @@ const BaseHelperText = /*#__PURE__*/React.forwardRef(function BaseHelperText(pro
16
16
  type: type$1,
17
17
  typo = '13',
18
18
  children,
19
+ className,
19
20
  ...rest
20
21
  } = props;
21
22
  const contextValue = FormControl.useFormControlContext();
@@ -38,7 +39,7 @@ const BaseHelperText = /*#__PURE__*/React.forwardRef(function BaseHelperText(pro
38
39
  return /*#__PURE__*/React.createElement(Text.Text, Object.assign({
39
40
  ref: mergedRef,
40
41
  as: "p",
41
- className: index.default(FormHelperText_module.default.FormHelperText, formControlClassName),
42
+ className: index.default(FormHelperText_module.default.FormHelperText, formControlClassName, className),
42
43
  typo: typo,
43
44
  align: "left"
44
45
  }, ownProps), children);
@@ -1 +1 @@
1
- {"version":3,"file":"FormHelperText.js","sources":["../../../../src/components/FormHelperText/FormHelperText.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport useMergeRefs from '~/src/hooks/useMergeRefs'\nimport { noop } from '~/src/utils/function'\nimport { isEmpty } from '~/src/utils/type'\n\nimport { useFormControlContext } from '~/src/components/FormControl'\nimport { Text } from '~/src/components/Text'\n\nimport type {\n BaseHelperTextProps,\n FormErrorMessageProps,\n FormHelperTextProps,\n} from './FormHelperText.types'\n\nimport styles from './FormHelperText.module.scss'\n\nexport const FORM_HELPER_TEXT_TEST_ID = 'bezier-form-helper-text'\nexport const FORM_ERROR_MESSAGE_TEST_ID = 'bezier-form-error-message'\n\nconst BaseHelperText = forwardRef<HTMLSpanElement, BaseHelperTextProps>(\n function BaseHelperText(props, forwardedRef) {\n const { type, typo = '13', children, ...rest } = props\n\n const contextValue = useFormControlContext()\n const getProps =\n type === 'info'\n ? contextValue?.getHelperTextProps\n : contextValue?.getErrorMessageProps\n\n const {\n visible,\n ref,\n className: formControlClassName,\n ...ownProps\n } = getProps?.(rest) ?? {\n visible: true,\n ref: noop,\n className: undefined,\n ...rest,\n }\n\n const mergedRef = useMergeRefs(ref, forwardedRef)\n\n if (isEmpty(children) || !visible) {\n return null\n }\n\n return (\n <Text\n ref={mergedRef}\n as=\"p\"\n className={classNames(styles.FormHelperText, formControlClassName)}\n typo={typo}\n align=\"left\"\n {...ownProps}\n >\n {children}\n </Text>\n )\n }\n)\n\n/**\n * `FormHelperText` is a component to show the description of the input element.\n * `FormControl` component can handle its layout by `position` props.\n * @example\n * ```tsx\n * <FormControl position=\"top\">\n * <FormLabel>\n * Password\n * </FormLabel>\n * <TextField />\n * <FormHelperText>\n * Please use at least 6 characters\n * </FormHelperText>\n * </FormControl>\n * ```\n */\nexport const FormHelperText = forwardRef<HTMLSpanElement, FormHelperTextProps>(\n function FormHelperText(props, forwardedRef) {\n const { color = 'txt-black-dark', children, ...rest } = props\n\n return (\n <BaseHelperText\n type=\"info\"\n ref={forwardedRef}\n color={color}\n data-testid={FORM_HELPER_TEXT_TEST_ID}\n {...rest}\n >\n {children}\n </BaseHelperText>\n )\n }\n)\n\n/**\n * `FormErrorMessage` is a component to show error message when form values are invalid.\n * It should be used with `FormControl` component.\n * @example\n * ```tsx\n * <FormControl>\n * <FormLabel>\n * Password\n * </FormLabel>\n * <TextField />\n * <FormErrorMessage>\n * Password should be at least 6 characters\n * </FormErrorMessage>\n * </FormControl>\n * ```\n */\nexport const FormErrorMessage = forwardRef<\n HTMLSpanElement,\n FormErrorMessageProps\n>(function FormErrorMessage(props, forwardedRef) {\n const { color = 'bgtxt-orange-normal', children, ...rest } = props\n\n return (\n <BaseHelperText\n aria-live=\"polite\"\n type=\"error\"\n ref={forwardedRef}\n color={color}\n data-testid={FORM_ERROR_MESSAGE_TEST_ID}\n {...rest}\n >\n {children}\n </BaseHelperText>\n )\n})\n"],"names":["FORM_HELPER_TEXT_TEST_ID","FORM_ERROR_MESSAGE_TEST_ID","BaseHelperText","forwardRef","props","forwardedRef","type","typo","children","rest","contextValue","useFormControlContext","getProps","getHelperTextProps","getErrorMessageProps","visible","ref","className","formControlClassName","ownProps","noop","undefined","mergedRef","useMergeRefs","isEmpty","React","createElement","Text","Object","assign","as","classNames","styles","FormHelperText","align","color","FormErrorMessage"],"mappings":"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"}
1
+ {"version":3,"file":"FormHelperText.js","sources":["../../../../src/components/FormHelperText/FormHelperText.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport useMergeRefs from '~/src/hooks/useMergeRefs'\nimport { noop } from '~/src/utils/function'\nimport { isEmpty } from '~/src/utils/type'\n\nimport { useFormControlContext } from '~/src/components/FormControl'\nimport { Text } from '~/src/components/Text'\n\nimport type {\n BaseHelperTextProps,\n FormErrorMessageProps,\n FormHelperTextProps,\n} from './FormHelperText.types'\n\nimport styles from './FormHelperText.module.scss'\n\nexport const FORM_HELPER_TEXT_TEST_ID = 'bezier-form-helper-text'\nexport const FORM_ERROR_MESSAGE_TEST_ID = 'bezier-form-error-message'\n\nconst BaseHelperText = forwardRef<HTMLSpanElement, BaseHelperTextProps>(\n function BaseHelperText(props, forwardedRef) {\n const { type, typo = '13', children, className, ...rest } = props\n\n const contextValue = useFormControlContext()\n const getProps =\n type === 'info'\n ? contextValue?.getHelperTextProps\n : contextValue?.getErrorMessageProps\n\n const {\n visible,\n ref,\n className: formControlClassName,\n ...ownProps\n } = getProps?.(rest) ?? {\n visible: true,\n ref: noop,\n className: undefined,\n ...rest,\n }\n\n const mergedRef = useMergeRefs(ref, forwardedRef)\n\n if (isEmpty(children) || !visible) {\n return null\n }\n\n return (\n <Text\n ref={mergedRef}\n as=\"p\"\n className={classNames(\n styles.FormHelperText,\n formControlClassName,\n className\n )}\n typo={typo}\n align=\"left\"\n {...ownProps}\n >\n {children}\n </Text>\n )\n }\n)\n\n/**\n * `FormHelperText` is a component to show the description of the input element.\n * `FormControl` component can handle its layout by `position` props.\n * @example\n * ```tsx\n * <FormControl position=\"top\">\n * <FormLabel>\n * Password\n * </FormLabel>\n * <TextField />\n * <FormHelperText>\n * Please use at least 6 characters\n * </FormHelperText>\n * </FormControl>\n * ```\n */\nexport const FormHelperText = forwardRef<HTMLSpanElement, FormHelperTextProps>(\n function FormHelperText(props, forwardedRef) {\n const { color = 'txt-black-dark', children, ...rest } = props\n\n return (\n <BaseHelperText\n type=\"info\"\n ref={forwardedRef}\n color={color}\n data-testid={FORM_HELPER_TEXT_TEST_ID}\n {...rest}\n >\n {children}\n </BaseHelperText>\n )\n }\n)\n\n/**\n * `FormErrorMessage` is a component to show error message when form values are invalid.\n * It should be used with `FormControl` component.\n * @example\n * ```tsx\n * <FormControl>\n * <FormLabel>\n * Password\n * </FormLabel>\n * <TextField />\n * <FormErrorMessage>\n * Password should be at least 6 characters\n * </FormErrorMessage>\n * </FormControl>\n * ```\n */\nexport const FormErrorMessage = forwardRef<\n HTMLSpanElement,\n FormErrorMessageProps\n>(function FormErrorMessage(props, forwardedRef) {\n const { color = 'bgtxt-orange-normal', children, ...rest } = props\n\n return (\n <BaseHelperText\n aria-live=\"polite\"\n type=\"error\"\n ref={forwardedRef}\n color={color}\n data-testid={FORM_ERROR_MESSAGE_TEST_ID}\n {...rest}\n >\n {children}\n </BaseHelperText>\n )\n})\n"],"names":["FORM_HELPER_TEXT_TEST_ID","FORM_ERROR_MESSAGE_TEST_ID","BaseHelperText","forwardRef","props","forwardedRef","type","typo","children","className","rest","contextValue","useFormControlContext","getProps","getHelperTextProps","getErrorMessageProps","visible","ref","formControlClassName","ownProps","noop","undefined","mergedRef","useMergeRefs","isEmpty","React","createElement","Text","Object","assign","as","classNames","styles","FormHelperText","align","color","FormErrorMessage"],"mappings":"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"}
@@ -30,6 +30,7 @@ const FormLabel = /*#__PURE__*/React.forwardRef(function FormLabel(props, forwar
30
30
  help,
31
31
  bold = true,
32
32
  color = 'txt-black-darkest',
33
+ className,
33
34
  children,
34
35
  ...rest
35
36
  } = props;
@@ -58,7 +59,7 @@ const FormLabel = /*#__PURE__*/React.forwardRef(function FormLabel(props, forwar
58
59
  return /*#__PURE__*/React.createElement(Help.Help, null, help);
59
60
  })();
60
61
  const LabelComponent = /*#__PURE__*/React.createElement(Text.Text, Object.assign({
61
- className: index.default(FormLabel_module.default.LabelText, !HelpComponent && formControlClassName),
62
+ className: index.default(FormLabel_module.default.LabelText, !HelpComponent && formControlClassName, className),
62
63
  ref: forwardedRef,
63
64
  as: "label",
64
65
  align: "left",
@@ -72,7 +73,7 @@ const FormLabel = /*#__PURE__*/React.forwardRef(function FormLabel(props, forwar
72
73
  return !HelpComponent ? LabelComponent : /*#__PURE__*/React.createElement(LegacyHStack.LegacyHStack, {
73
74
  align: "center",
74
75
  spacing: 6,
75
- className: HelpComponent && formControlClassName
76
+ className: formControlClassName
76
77
  }, /*#__PURE__*/React.createElement(LegacyStackItem.LegacyStackItem, {
77
78
  shrink: true,
78
79
  weight: 1
@@ -1 +1 @@
1
- {"version":3,"file":"FormLabel.js","sources":["../../../../src/components/FormLabel/FormLabel.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport { isEmpty } from '~/src/utils/type'\n\nimport { useFormControlContext } from '~/src/components/FormControl'\nimport { Help } from '~/src/components/Help'\nimport { HELP_DISPLAY_NAME } from '~/src/components/Help/Help'\nimport { LegacyHStack, LegacyStackItem } from '~/src/components/LegacyStack'\nimport { Text } from '~/src/components/Text'\n\nimport { type FormLabelProps } from './FormLabel.types'\n\nimport styles from './FormLabel.module.scss'\n\nexport const FORM_LABEL_TEST_ID = 'bezier-form-label'\n\n/**\n * `FormLabel` is a component to show label.\n * `FormControl` component can handle its layout by `position` props.\n * @example\n * ```tsx\n * <FormControl position=\"top\">\n * <FormLabel>\n * Name\n * </FormLabel>\n * <TextField />\n * </FormControl>\n * ```\n */\nexport const FormLabel = forwardRef<HTMLLabelElement, FormLabelProps>(\n function FormLabel(props, forwardedRef) {\n const {\n help,\n bold = true,\n color = 'txt-black-darkest',\n children,\n ...rest\n } = props\n\n const contextValue = useFormControlContext()\n const { className: formControlClassName, ...ownProps } =\n contextValue?.getLabelProps(rest) ?? {\n typo: '13',\n className: undefined,\n ...rest,\n }\n\n const HelpComponent = (() => {\n if (isEmpty(help)) {\n return null\n }\n\n if (React.isValidElement(help)) {\n // FIXME(@bora): string, JSXElementCostructor 타입에 displayName 속성이 존재하지 않음, 임시로 any 타입으로 설정\n const { displayName } = help?.type as any\n if (displayName === HELP_DISPLAY_NAME) {\n return help\n }\n }\n\n return <Help>{help}</Help>\n })()\n\n const LabelComponent = (\n <Text\n className={classNames(\n styles.LabelText,\n !HelpComponent && formControlClassName\n )}\n ref={forwardedRef}\n as=\"label\"\n align=\"left\"\n bold={bold}\n color={color}\n data-testid={FORM_LABEL_TEST_ID}\n {...ownProps}\n >\n {children}\n </Text>\n )\n\n if (isEmpty(children)) {\n return null\n }\n\n return !HelpComponent ? (\n LabelComponent\n ) : (\n <LegacyHStack\n align=\"center\"\n spacing={6}\n className={HelpComponent && formControlClassName}\n >\n <LegacyStackItem\n shrink\n weight={1}\n >\n {LabelComponent}\n </LegacyStackItem>\n <LegacyStackItem>{HelpComponent}</LegacyStackItem>\n </LegacyHStack>\n )\n }\n)\n"],"names":["FORM_LABEL_TEST_ID","FormLabel","forwardRef","props","forwardedRef","help","bold","color","children","rest","contextValue","useFormControlContext","className","formControlClassName","ownProps","getLabelProps","typo","undefined","HelpComponent","isEmpty","React","isValidElement","displayName","type","HELP_DISPLAY_NAME","createElement","Help","LabelComponent","Text","Object","assign","classNames","styles","LabelText","ref","as","align","LegacyHStack","spacing","LegacyStackItem","shrink","weight"],"mappings":";;;;;;;;;;;;AAgBO,MAAMA,kBAAkB,GAAG,oBAAmB;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,SAAS,gBAAGC,gBAAU,CACjC,SAASD,SAASA,CAACE,KAAK,EAAEC,YAAY,EAAE;EACtC,MAAM;IACJC,IAAI;AACJC,IAAAA,IAAI,GAAG,IAAI;AACXC,IAAAA,KAAK,GAAG,mBAAmB;IAC3BC,QAAQ;IACR,GAAGC,IAAAA;AACL,GAAC,GAAGN,KAAK,CAAA;AAET,EAAA,MAAMO,YAAY,GAAGC,iCAAqB,EAAE,CAAA;EAC5C,MAAM;AAAEC,IAAAA,SAAS,EAAEC,oBAAoB;IAAE,GAAGC,QAAAA;AAAS,GAAC,GACpDJ,YAAY,EAAEK,aAAa,CAACN,IAAI,CAAC,IAAI;AACnCO,IAAAA,IAAI,EAAE,IAAI;AACVJ,IAAAA,SAAS,EAAEK,SAAS;IACpB,GAAGR,IAAAA;GACJ,CAAA;EAEH,MAAMS,aAAa,GAAG,CAAC,MAAM;AAC3B,IAAA,IAAIC,YAAO,CAACd,IAAI,CAAC,EAAE;AACjB,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AAEA,IAAA,kBAAIe,KAAK,CAACC,cAAc,CAAChB,IAAI,CAAC,EAAE;AAC9B;MACA,MAAM;AAAEiB,QAAAA,WAAAA;OAAa,GAAGjB,IAAI,EAAEkB,IAAW,CAAA;MACzC,IAAID,WAAW,KAAKE,sBAAiB,EAAE;AACrC,QAAA,OAAOnB,IAAI,CAAA;AACb,OAAA;AACF,KAAA;AAEA,IAAA,oBAAOe,KAAA,CAAAK,aAAA,CAACC,SAAI,EAAA,IAAA,EAAErB,IAAW,CAAC,CAAA;AAC5B,GAAC,GAAG,CAAA;EAEJ,MAAMsB,cAAc,gBAClBP,KAAA,CAAAK,aAAA,CAACG,SAAI,EAAAC,MAAA,CAAAC,MAAA,CAAA;IACHlB,SAAS,EAAEmB,aAAU,CACnBC,wBAAM,CAACC,SAAS,EAChB,CAACf,aAAa,IAAIL,oBACpB,CAAE;AACFqB,IAAAA,GAAG,EAAE9B,YAAa;AAClB+B,IAAAA,EAAE,EAAC,OAAO;AACVC,IAAAA,KAAK,EAAC,MAAM;AACZ9B,IAAAA,IAAI,EAAEA,IAAK;AACXC,IAAAA,KAAK,EAAEA,KAAM;IACb,aAAaP,EAAAA,kBAAAA;GACTc,EAAAA,QAAQ,CAEXN,EAAAA,QACG,CACP,CAAA;AAED,EAAA,IAAIW,YAAO,CAACX,QAAQ,CAAC,EAAE;AACrB,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;EAEA,OAAO,CAACU,aAAa,GACnBS,cAAc,gBAEdP,KAAA,CAAAK,aAAA,CAACY,yBAAY,EAAA;AACXD,IAAAA,KAAK,EAAC,QAAQ;AACdE,IAAAA,OAAO,EAAE,CAAE;IACX1B,SAAS,EAAEM,aAAa,IAAIL,oBAAAA;AAAqB,GAAA,eAEjDO,KAAA,CAAAK,aAAA,CAACc,+BAAe,EAAA;IACdC,MAAM,EAAA,IAAA;AACNC,IAAAA,MAAM,EAAE,CAAA;GAEPd,EAAAA,cACc,CAAC,eAClBP,KAAA,CAAAK,aAAA,CAACc,+BAAe,EAAA,IAAA,EAAErB,aAA+B,CACrC,CACf,CAAA;AACH,CACF;;;;;"}
1
+ {"version":3,"file":"FormLabel.js","sources":["../../../../src/components/FormLabel/FormLabel.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport { isEmpty } from '~/src/utils/type'\n\nimport { useFormControlContext } from '~/src/components/FormControl'\nimport { Help } from '~/src/components/Help'\nimport { HELP_DISPLAY_NAME } from '~/src/components/Help/Help'\nimport { LegacyHStack, LegacyStackItem } from '~/src/components/LegacyStack'\nimport { Text } from '~/src/components/Text'\n\nimport { type FormLabelProps } from './FormLabel.types'\n\nimport styles from './FormLabel.module.scss'\n\nexport const FORM_LABEL_TEST_ID = 'bezier-form-label'\n\n/**\n * `FormLabel` is a component to show label.\n * `FormControl` component can handle its layout by `position` props.\n * @example\n * ```tsx\n * <FormControl position=\"top\">\n * <FormLabel>\n * Name\n * </FormLabel>\n * <TextField />\n * </FormControl>\n * ```\n */\nexport const FormLabel = forwardRef<HTMLLabelElement, FormLabelProps>(\n function FormLabel(props, forwardedRef) {\n const {\n help,\n bold = true,\n color = 'txt-black-darkest',\n className,\n children,\n ...rest\n } = props\n\n const contextValue = useFormControlContext()\n const { className: formControlClassName, ...ownProps } =\n contextValue?.getLabelProps(rest) ?? {\n typo: '13',\n className: undefined,\n ...rest,\n }\n\n const HelpComponent = (() => {\n if (isEmpty(help)) {\n return null\n }\n\n if (React.isValidElement(help)) {\n // FIXME(@bora): string, JSXElementCostructor 타입에 displayName 속성이 존재하지 않음, 임시로 any 타입으로 설정\n const { displayName } = help?.type as any\n if (displayName === HELP_DISPLAY_NAME) {\n return help\n }\n }\n\n return <Help>{help}</Help>\n })()\n\n const LabelComponent = (\n <Text\n className={classNames(\n styles.LabelText,\n !HelpComponent && formControlClassName,\n className\n )}\n ref={forwardedRef}\n as=\"label\"\n align=\"left\"\n bold={bold}\n color={color}\n data-testid={FORM_LABEL_TEST_ID}\n {...ownProps}\n >\n {children}\n </Text>\n )\n\n if (isEmpty(children)) {\n return null\n }\n\n return !HelpComponent ? (\n LabelComponent\n ) : (\n <LegacyHStack\n align=\"center\"\n spacing={6}\n className={formControlClassName}\n >\n <LegacyStackItem\n shrink\n weight={1}\n >\n {LabelComponent}\n </LegacyStackItem>\n <LegacyStackItem>{HelpComponent}</LegacyStackItem>\n </LegacyHStack>\n )\n }\n)\n"],"names":["FORM_LABEL_TEST_ID","FormLabel","forwardRef","props","forwardedRef","help","bold","color","className","children","rest","contextValue","useFormControlContext","formControlClassName","ownProps","getLabelProps","typo","undefined","HelpComponent","isEmpty","React","isValidElement","displayName","type","HELP_DISPLAY_NAME","createElement","Help","LabelComponent","Text","Object","assign","classNames","styles","LabelText","ref","as","align","LegacyHStack","spacing","LegacyStackItem","shrink","weight"],"mappings":";;;;;;;;;;;;AAgBO,MAAMA,kBAAkB,GAAG,oBAAmB;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,SAAS,gBAAGC,gBAAU,CACjC,SAASD,SAASA,CAACE,KAAK,EAAEC,YAAY,EAAE;EACtC,MAAM;IACJC,IAAI;AACJC,IAAAA,IAAI,GAAG,IAAI;AACXC,IAAAA,KAAK,GAAG,mBAAmB;IAC3BC,SAAS;IACTC,QAAQ;IACR,GAAGC,IAAAA;AACL,GAAC,GAAGP,KAAK,CAAA;AAET,EAAA,MAAMQ,YAAY,GAAGC,iCAAqB,EAAE,CAAA;EAC5C,MAAM;AAAEJ,IAAAA,SAAS,EAAEK,oBAAoB;IAAE,GAAGC,QAAAA;AAAS,GAAC,GACpDH,YAAY,EAAEI,aAAa,CAACL,IAAI,CAAC,IAAI;AACnCM,IAAAA,IAAI,EAAE,IAAI;AACVR,IAAAA,SAAS,EAAES,SAAS;IACpB,GAAGP,IAAAA;GACJ,CAAA;EAEH,MAAMQ,aAAa,GAAG,CAAC,MAAM;AAC3B,IAAA,IAAIC,YAAO,CAACd,IAAI,CAAC,EAAE;AACjB,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AAEA,IAAA,kBAAIe,KAAK,CAACC,cAAc,CAAChB,IAAI,CAAC,EAAE;AAC9B;MACA,MAAM;AAAEiB,QAAAA,WAAAA;OAAa,GAAGjB,IAAI,EAAEkB,IAAW,CAAA;MACzC,IAAID,WAAW,KAAKE,sBAAiB,EAAE;AACrC,QAAA,OAAOnB,IAAI,CAAA;AACb,OAAA;AACF,KAAA;AAEA,IAAA,oBAAOe,KAAA,CAAAK,aAAA,CAACC,SAAI,EAAA,IAAA,EAAErB,IAAW,CAAC,CAAA;AAC5B,GAAC,GAAG,CAAA;EAEJ,MAAMsB,cAAc,gBAClBP,KAAA,CAAAK,aAAA,CAACG,SAAI,EAAAC,MAAA,CAAAC,MAAA,CAAA;AACHtB,IAAAA,SAAS,EAAEuB,aAAU,CACnBC,wBAAM,CAACC,SAAS,EAChB,CAACf,aAAa,IAAIL,oBAAoB,EACtCL,SACF,CAAE;AACF0B,IAAAA,GAAG,EAAE9B,YAAa;AAClB+B,IAAAA,EAAE,EAAC,OAAO;AACVC,IAAAA,KAAK,EAAC,MAAM;AACZ9B,IAAAA,IAAI,EAAEA,IAAK;AACXC,IAAAA,KAAK,EAAEA,KAAM;IACb,aAAaP,EAAAA,kBAAAA;GACTc,EAAAA,QAAQ,CAEXL,EAAAA,QACG,CACP,CAAA;AAED,EAAA,IAAIU,YAAO,CAACV,QAAQ,CAAC,EAAE;AACrB,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;EAEA,OAAO,CAACS,aAAa,GACnBS,cAAc,gBAEdP,KAAA,CAAAK,aAAA,CAACY,yBAAY,EAAA;AACXD,IAAAA,KAAK,EAAC,QAAQ;AACdE,IAAAA,OAAO,EAAE,CAAE;AACX9B,IAAAA,SAAS,EAAEK,oBAAAA;AAAqB,GAAA,eAEhCO,KAAA,CAAAK,aAAA,CAACc,+BAAe,EAAA;IACdC,MAAM,EAAA,IAAA;AACNC,IAAAA,MAAM,EAAE,CAAA;GAEPd,EAAAA,cACc,CAAC,eAClBP,KAAA,CAAAK,aAAA,CAACc,+BAAe,EAAA,IAAA,EAAErB,aAA+B,CACrC,CACf,CAAA;AACH,CACF;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","sources":["../../../../src/components/Modal/Modal.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo, useState } from 'react'\n\nimport { CancelIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport useMergeRefs from '~/src/hooks/useMergeRefs'\nimport { getZIndexClassName } from '~/src/types/props-helpers'\nimport { createContext } from '~/src/utils/react'\nimport { cssDimension } from '~/src/utils/style'\nimport { isNil, isNumber } from '~/src/utils/type'\n\nimport {\n AlphaDialogPrimitive,\n AlphaDialogPrimitiveClose,\n AlphaDialogPrimitiveContent,\n AlphaDialogPrimitiveDescription,\n AlphaDialogPrimitiveOverlay,\n AlphaDialogPrimitivePortal,\n type AlphaDialogPrimitiveProps,\n AlphaDialogPrimitiveTitle,\n AlphaDialogPrimitiveTrigger,\n} from '~/src/components/AlphaDialogPrimitive'\nimport { Button } from '~/src/components/Button'\nimport { Text } from '~/src/components/Text'\nimport { ThemeProvider, useThemeName } from '~/src/components/ThemeProvider'\nimport { VisuallyHidden } from '~/src/components/VisuallyHidden'\nimport { useRootElement } from '~/src/components/WindowProvider'\n\nimport {\n type ModalBodyProps,\n type ModalCloseProps,\n type ModalContentProps,\n type ModalContentPropsContextValue,\n type ModalFooterProps,\n type ModalHeaderProps,\n type ModalProps,\n type ModalTitleSize,\n type ModalTriggerProps,\n} from './Modal.types'\n\nimport styles from './Modal.module.scss'\n\nconst [ModalContainerContextProvider, useModalContainerContext] = createContext<\n HTMLElement | undefined\n>(undefined)\n\nexport { useModalContainerContext }\n\nconst [ModalContentPropsContextProvider, useModalContentPropsContext] =\n createContext<ModalContentPropsContextValue>({\n showCloseIcon: false,\n })\n\n/**\n * `Modal` is a dialog that appears on top of the page.\n *\n * `Modal` is a context of the Modal-related components. It doesn't render any DOM node.\n * It controls the visibility of the entire component and provides\n * handlers and accessibility properties to Modal-related components.\n * @example\n *\n * ```tsx\n * // Anatomy of the Modal\n * <Modal>\n * <ModalTrigger />\n * <ModalContent>\n * <ModalHeader />\n * <ModalBody />\n * <ModalFooter />\n * </ModalContent>\n * </Modal>\n * ```\n */\nexport function Modal({\n children,\n show,\n defaultShow,\n onShow,\n onHide,\n}: ModalProps) {\n const onOpenChange = useCallback<\n NonNullable<AlphaDialogPrimitiveProps['onOpenChange']>\n >(\n (open) => {\n const callback = open ? onShow : onHide\n callback?.()\n },\n [onShow, onHide]\n )\n\n return (\n <AlphaDialogPrimitive\n open={show}\n defaultOpen={defaultShow}\n onOpenChange={onOpenChange}\n >\n {children}\n </AlphaDialogPrimitive>\n )\n}\n\n/**\n * `ModalContent` is a container of the modal content.\n * It creates a portal to render the modal content outside of the DOM tree\n * and renders overlay behind the modal content too.\n */\nexport const ModalContent = forwardRef<HTMLDivElement, ModalContentProps>(\n function ModalContent(\n {\n children,\n style,\n className,\n container: givenContainer,\n showCloseIcon = false,\n preventHideOnOutsideClick = false,\n width = 'max-content',\n height = 'fit-content',\n zIndex = 'modal',\n collisionPadding = { top: 40, bottom: 40 },\n ...rest\n },\n forwardedRef\n ) {\n const rootElement = useRootElement()\n const container = givenContainer ?? rootElement\n const [contentContainer, setContentContainer] = useState<HTMLElement>()\n\n const contentRef = useMergeRefs(\n forwardedRef,\n useCallback((node: HTMLElement | null) => {\n setContentContainer(node ?? undefined)\n }, [])\n )\n\n const overlayStyle = (() => {\n const padding = (() => {\n if (isNumber(collisionPadding)) {\n return `${collisionPadding}px`\n }\n\n const { top, right, bottom, left } = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...collisionPadding,\n }\n\n return `${top}px ${right}px ${bottom}px ${left}px`\n })()\n\n return {\n '--b-modal-collision-padding': padding,\n } as React.CSSProperties\n })()\n\n const propsContextValue = useMemo(\n (): ModalContentPropsContextValue => ({\n showCloseIcon,\n }),\n [showCloseIcon]\n )\n\n return (\n <AlphaDialogPrimitivePortal container={container}>\n <ThemeProvider themeName={useThemeName()}>\n <AlphaDialogPrimitiveOverlay\n style={overlayStyle}\n className={classNames(\n styles.ModalOverlay,\n getZIndexClassName(zIndex)\n )}\n >\n <AlphaDialogPrimitiveContent\n asChild\n onPointerDownOutside={(e) => {\n if (preventHideOnOutsideClick) {\n e.preventDefault()\n }\n }}\n onInteractOutside={(e) => {\n if (preventHideOnOutsideClick) {\n e.preventDefault()\n }\n }}\n >\n <div\n aria-modal=\"true\"\n ref={contentRef}\n style={\n {\n '--b-modal-width': cssDimension(width),\n '--b-modal-height': cssDimension(height),\n ...style,\n } as React.CSSProperties\n }\n className={classNames(styles.ModalContent, className)}\n {...rest}\n >\n <section className={styles.ModalSection}>\n <ModalContainerContextProvider value={contentContainer}>\n <ModalContentPropsContextProvider value={propsContextValue}>\n {children}\n </ModalContentPropsContextProvider>\n </ModalContainerContextProvider>\n\n {/* NOTE: To prevent focusing first on the close button when opening the modal, place the close button behind. */}\n {showCloseIcon && (\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n <ModalClose>\n <Button\n className={styles.CloseIconButton}\n size=\"m\"\n leftContent={CancelIcon}\n colorVariant=\"monochrome-dark\"\n styleVariant=\"tertiary\"\n />\n </ModalClose>\n )}\n </section>\n </div>\n </AlphaDialogPrimitiveContent>\n </AlphaDialogPrimitiveOverlay>\n </ThemeProvider>\n </AlphaDialogPrimitivePortal>\n )\n }\n)\n\nfunction getTitleTypo(size: ModalTitleSize) {\n return (\n {\n l: '24',\n m: '16',\n } as const\n )[size]\n}\n\nfunction ModalHeaderTitle({\n children,\n size,\n subtitle,\n}: React.PropsWithChildren<\n Pick<ModalHeaderProps, 'subtitle'> & {\n size: NonNullable<ModalHeaderProps['titleSize']>\n }\n>) {\n const Title = (\n <Text\n className={styles.Title}\n as=\"h2\"\n typo={getTitleTypo(size)}\n bold\n color=\"txt-black-darkest\"\n >\n {children}\n </Text>\n )\n\n return (\n <AlphaDialogPrimitiveTitle asChild>\n {!isNil(subtitle) ? (\n <hgroup\n className={styles.HeadingGroup}\n role=\"group\"\n aria-roledescription=\"Heading group\"\n >\n {Title}\n\n <Text\n aria-roledescription=\"subtitle\"\n as=\"p\"\n bold\n color=\"txt-black-dark\"\n typo=\"13\"\n >\n {subtitle}\n </Text>\n </hgroup>\n ) : (\n Title\n )}\n </AlphaDialogPrimitiveTitle>\n )\n}\n\n/**\n * `ModalHeader` is a header of the modal content.\n * It renders the accessible title and description of the modal.\n * If you want to hide the title and description, use `hidden` prop.\n */\nexport const ModalHeader = forwardRef<HTMLElement, ModalHeaderProps>(\n function ModalHeader(\n {\n className,\n title,\n subtitle,\n description,\n titleSize = 'l',\n hidden = false,\n ...rest\n },\n forwardedRef\n ) {\n const { showCloseIcon } = useModalContentPropsContext()\n const hasTitleArea = title || showCloseIcon\n const Hidden = hidden ? VisuallyHidden : React.Fragment\n\n return (\n <Hidden>\n <header\n ref={forwardedRef}\n className={classNames(\n styles.ModalHeader,\n hidden && styles.hidden,\n className\n )}\n {...rest}\n >\n {hasTitleArea && (\n <div className={styles.TitleContainer}>\n {title && (\n <ModalHeaderTitle\n size={titleSize}\n subtitle={subtitle}\n >\n {title}\n </ModalHeaderTitle>\n )}\n\n {showCloseIcon && (\n <Button\n className={styles.CloseIconButtonSpacer}\n as=\"div\"\n size=\"m\"\n />\n )}\n </div>\n )}\n\n {description && (\n <AlphaDialogPrimitiveDescription asChild>\n <Text\n as=\"p\"\n color=\"txt-black-darkest\"\n typo=\"15\"\n >\n {description}\n </Text>\n </AlphaDialogPrimitiveDescription>\n )}\n </header>\n </Hidden>\n )\n }\n)\n\n/**\n * `ModalBody` is a simple wrapper of the main modal content.\n */\nexport const ModalBody = forwardRef(function ModalBody(\n { children, className, ...rest }: ModalBodyProps,\n forwardedRef: React.Ref<HTMLDivElement>\n) {\n return (\n <div\n ref={forwardedRef}\n className={classNames(styles.ModalBody, className)}\n {...rest}\n >\n {children}\n </div>\n )\n})\n\n/**\n * `ModalFooter` is a simple wrapper of the footer of the modal content.\n * Usually, it contains the action buttons of the modal.\n */\nexport const ModalFooter = forwardRef<HTMLElement, ModalFooterProps>(\n function ModalFooter(\n { className, leftContent, rightContent, ...rest },\n forwardedRef\n ) {\n return (\n <footer\n ref={forwardedRef}\n className={classNames(styles.ModalFooter, className)}\n {...rest}\n >\n {leftContent && (\n <div className={styles.FooterLeftContent}>{leftContent}</div>\n )}\n\n {rightContent && (\n <div className={styles.FooterRightContent}>{rightContent}</div>\n )}\n </footer>\n )\n }\n)\n\n/**\n * `ModalTrigger` is a button that opens the modal. **It doesn't render any DOM node.**\n * It passes the handler that opens the modal and accessibility properties to the children.\n *\n * It **must** be placed outside of the `ModalContent`.\n */\nexport function ModalTrigger({ children }: ModalTriggerProps) {\n return <AlphaDialogPrimitiveTrigger asChild>{children}</AlphaDialogPrimitiveTrigger>\n}\n\n/**\n * `ModalClose` is a button that closes the modal. **It doesn't render any DOM node.**\n * It passes the handler that closes the modal to the children.\n */\nexport function ModalClose({ children }: ModalCloseProps) {\n return <AlphaDialogPrimitiveClose asChild>{children}</AlphaDialogPrimitiveClose>\n}\n"],"names":["ModalContainerContextProvider","useModalContainerContext","createContext","undefined","ModalContentPropsContextProvider","useModalContentPropsContext","showCloseIcon","Modal","children","show","defaultShow","onShow","onHide","onOpenChange","useCallback","open","callback","React","createElement","AlphaDialogPrimitive","defaultOpen","ModalContent","forwardRef","style","className","container","givenContainer","preventHideOnOutsideClick","width","height","zIndex","collisionPadding","top","bottom","rest","forwardedRef","rootElement","useRootElement","contentContainer","setContentContainer","useState","contentRef","useMergeRefs","node","overlayStyle","padding","isNumber","right","left","propsContextValue","useMemo","AlphaDialogPrimitivePortal","ThemeProvider","themeName","useThemeName","AlphaDialogPrimitiveOverlay","classNames","styles","ModalOverlay","getZIndexClassName","AlphaDialogPrimitiveContent","asChild","onPointerDownOutside","e","preventDefault","onInteractOutside","Object","assign","ref","cssDimension","ModalSection","value","ModalClose","Button","CloseIconButton","size","leftContent","CancelIcon","colorVariant","styleVariant","getTitleTypo","l","m","ModalHeaderTitle","subtitle","Title","Text","as","typo","bold","color","AlphaDialogPrimitiveTitle","isNil","HeadingGroup","role","ModalHeader","title","description","titleSize","hidden","hasTitleArea","Hidden","VisuallyHidden","Fragment","TitleContainer","CloseIconButtonSpacer","AlphaDialogPrimitiveDescription","ModalBody","ModalFooter","rightContent","FooterLeftContent","FooterRightContent","ModalTrigger","AlphaDialogPrimitiveTrigger","AlphaDialogPrimitiveClose"],"mappings":"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"}
1
+ {"version":3,"file":"Modal.js","sources":["../../../../src/components/Modal/Modal.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo, useState } from 'react'\n\nimport { CancelIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport useMergeRefs from '~/src/hooks/useMergeRefs'\nimport { getZIndexClassName } from '~/src/types/props-helpers'\nimport { createContext } from '~/src/utils/react'\nimport { cssDimension } from '~/src/utils/style'\nimport { isNil, isNumber } from '~/src/utils/type'\n\nimport {\n AlphaDialogPrimitive,\n AlphaDialogPrimitiveClose,\n AlphaDialogPrimitiveContent,\n AlphaDialogPrimitiveDescription,\n AlphaDialogPrimitiveOverlay,\n AlphaDialogPrimitivePortal,\n type AlphaDialogPrimitiveProps,\n AlphaDialogPrimitiveTitle,\n AlphaDialogPrimitiveTrigger,\n} from '~/src/components/AlphaDialogPrimitive'\nimport { Button } from '~/src/components/Button'\nimport { Text } from '~/src/components/Text'\nimport { ThemeProvider, useThemeName } from '~/src/components/ThemeProvider'\nimport { VisuallyHidden } from '~/src/components/VisuallyHidden'\nimport { useRootElement } from '~/src/components/WindowProvider'\n\nimport {\n type ModalBodyProps,\n type ModalCloseProps,\n type ModalContentProps,\n type ModalContentPropsContextValue,\n type ModalFooterProps,\n type ModalHeaderProps,\n type ModalProps,\n type ModalTitleSize,\n type ModalTriggerProps,\n} from './Modal.types'\n\nimport styles from './Modal.module.scss'\n\nconst [ModalContainerContextProvider, useModalContainerContext] = createContext<\n HTMLElement | undefined\n>(undefined)\n\nexport { useModalContainerContext }\n\nconst [ModalContentPropsContextProvider, useModalContentPropsContext] =\n createContext<ModalContentPropsContextValue>({\n showCloseIcon: false,\n })\n\n/**\n * `Modal` is a dialog that appears on top of the page.\n *\n * `Modal` is a context of the Modal-related components. It doesn't render any DOM node.\n * It controls the visibility of the entire component and provides\n * handlers and accessibility properties to Modal-related components.\n * @example\n *\n * ```tsx\n * // Anatomy of the Modal\n * <Modal>\n * <ModalTrigger />\n * <ModalContent>\n * <ModalHeader />\n * <ModalBody />\n * <ModalFooter />\n * </ModalContent>\n * </Modal>\n * ```\n */\nexport function Modal({\n children,\n show,\n defaultShow,\n onShow,\n onHide,\n}: ModalProps) {\n const onOpenChange = useCallback<\n NonNullable<AlphaDialogPrimitiveProps['onOpenChange']>\n >(\n (open) => {\n const callback = open ? onShow : onHide\n callback?.()\n },\n [onShow, onHide]\n )\n\n return (\n <AlphaDialogPrimitive\n open={show}\n defaultOpen={defaultShow}\n onOpenChange={onOpenChange}\n >\n {children}\n </AlphaDialogPrimitive>\n )\n}\n\n/**\n * `ModalContent` is a container of the modal content.\n * It creates a portal to render the modal content outside of the DOM tree\n * and renders overlay behind the modal content too.\n */\nexport const ModalContent = forwardRef<HTMLDivElement, ModalContentProps>(\n function ModalContent(\n {\n children,\n style,\n className,\n container: givenContainer,\n showCloseIcon = false,\n preventHideOnOutsideClick = false,\n width = 'max-content',\n height = 'fit-content',\n zIndex = 'modal',\n collisionPadding = { top: 40, bottom: 40 },\n ...rest\n },\n forwardedRef\n ) {\n const rootElement = useRootElement()\n const container = givenContainer ?? rootElement\n const [contentContainer, setContentContainer] = useState<HTMLElement>()\n\n const contentRef = useMergeRefs(\n forwardedRef,\n useCallback((node: HTMLElement | null) => {\n setContentContainer(node ?? undefined)\n }, [])\n )\n\n const overlayStyle = (() => {\n const padding = (() => {\n if (isNumber(collisionPadding)) {\n return `${collisionPadding}px`\n }\n\n const { top, right, bottom, left } = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...collisionPadding,\n }\n\n return `${top}px ${right}px ${bottom}px ${left}px`\n })()\n\n return {\n '--b-modal-collision-padding': padding,\n } as React.CSSProperties\n })()\n\n const propsContextValue = useMemo(\n (): ModalContentPropsContextValue => ({\n showCloseIcon,\n }),\n [showCloseIcon]\n )\n\n return (\n <AlphaDialogPrimitivePortal container={container}>\n <ThemeProvider themeName={useThemeName()}>\n <AlphaDialogPrimitiveOverlay\n style={overlayStyle}\n className={classNames(\n styles.ModalOverlay,\n getZIndexClassName(zIndex)\n )}\n >\n <AlphaDialogPrimitiveContent\n asChild\n onPointerDownOutside={(e) => {\n if (preventHideOnOutsideClick) {\n e.preventDefault()\n }\n }}\n onInteractOutside={(e) => {\n if (preventHideOnOutsideClick) {\n e.preventDefault()\n }\n }}\n >\n <div\n aria-modal=\"true\"\n ref={contentRef}\n style={\n {\n '--b-modal-width': cssDimension(width),\n '--b-modal-height': cssDimension(height),\n ...style,\n } as React.CSSProperties\n }\n className={classNames(styles.ModalContent, className)}\n {...rest}\n >\n <section className={styles.ModalSection}>\n <ModalContainerContextProvider value={contentContainer}>\n <ModalContentPropsContextProvider value={propsContextValue}>\n {children}\n </ModalContentPropsContextProvider>\n </ModalContainerContextProvider>\n\n {/* NOTE: To prevent focusing first on the close button when opening the modal, place the close button behind. */}\n {showCloseIcon && (\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n <ModalClose>\n <Button\n className={styles.CloseIconButton}\n size=\"m\"\n leftContent={CancelIcon}\n colorVariant=\"monochrome-dark\"\n styleVariant=\"tertiary\"\n />\n </ModalClose>\n )}\n </section>\n </div>\n </AlphaDialogPrimitiveContent>\n </AlphaDialogPrimitiveOverlay>\n </ThemeProvider>\n </AlphaDialogPrimitivePortal>\n )\n }\n)\n\nfunction getTitleTypo(size: ModalTitleSize) {\n return (\n {\n l: '24',\n m: '16',\n } as const\n )[size]\n}\n\nfunction ModalHeaderTitle({\n children,\n size,\n subtitle,\n}: React.PropsWithChildren<\n Pick<ModalHeaderProps, 'subtitle'> & {\n size: NonNullable<ModalHeaderProps['titleSize']>\n }\n>) {\n const Title = (\n <Text\n className={styles.Title}\n as=\"h2\"\n typo={getTitleTypo(size)}\n bold\n color=\"txt-black-darkest\"\n >\n {children}\n </Text>\n )\n\n return (\n <AlphaDialogPrimitiveTitle asChild>\n {!isNil(subtitle) ? (\n <hgroup\n className={styles.HeadingGroup}\n role=\"group\"\n aria-roledescription=\"Heading group\"\n >\n {Title}\n\n <Text\n aria-roledescription=\"subtitle\"\n as=\"p\"\n bold\n color=\"txt-black-dark\"\n typo=\"13\"\n >\n {subtitle}\n </Text>\n </hgroup>\n ) : (\n Title\n )}\n </AlphaDialogPrimitiveTitle>\n )\n}\n\n/**\n * `ModalHeader` is a header of the modal content.\n * It renders the accessible title and description of the modal.\n * If you want to hide the title and description, use `hidden` prop.\n */\nexport const ModalHeader = forwardRef<HTMLElement, ModalHeaderProps>(\n function ModalHeader(\n {\n className,\n title,\n subtitle,\n description,\n titleSize = 'l',\n hidden = false,\n ...rest\n },\n forwardedRef\n ) {\n const { showCloseIcon } = useModalContentPropsContext()\n const hasTitleArea = title || showCloseIcon\n const Hidden = hidden ? VisuallyHidden : React.Fragment\n\n return (\n <Hidden>\n <header\n ref={forwardedRef}\n className={classNames(\n styles.ModalHeader,\n hidden && styles.hidden,\n className\n )}\n {...rest}\n >\n {hasTitleArea && (\n <div className={styles.TitleContainer}>\n {title && (\n <ModalHeaderTitle\n size={titleSize}\n subtitle={subtitle}\n >\n {title}\n </ModalHeaderTitle>\n )}\n\n {showCloseIcon && (\n <Button\n className={styles.CloseIconButtonSpacer}\n as=\"div\"\n size=\"m\"\n />\n )}\n </div>\n )}\n\n {description && (\n <AlphaDialogPrimitiveDescription asChild>\n <Text\n as=\"p\"\n color=\"txt-black-darkest\"\n typo=\"15\"\n >\n {description}\n </Text>\n </AlphaDialogPrimitiveDescription>\n )}\n </header>\n </Hidden>\n )\n }\n)\n\n/**\n * `ModalBody` is a simple wrapper of the main modal content.\n */\nexport const ModalBody = forwardRef(function ModalBody(\n { children, className, ...rest }: ModalBodyProps,\n forwardedRef: React.Ref<HTMLDivElement>\n) {\n return (\n <div\n ref={forwardedRef}\n className={classNames(styles.ModalBody, className)}\n {...rest}\n >\n {children}\n </div>\n )\n})\n\n/**\n * `ModalFooter` is a simple wrapper of the footer of the modal content.\n * Usually, it contains the action buttons of the modal.\n */\nexport const ModalFooter = forwardRef<HTMLElement, ModalFooterProps>(\n function ModalFooter(\n { className, leftContent, rightContent, ...rest },\n forwardedRef\n ) {\n return (\n <footer\n ref={forwardedRef}\n className={classNames(styles.ModalFooter, className)}\n {...rest}\n >\n {leftContent && (\n <div className={styles.FooterLeftContent}>{leftContent}</div>\n )}\n\n {rightContent && (\n <div className={styles.FooterRightContent}>{rightContent}</div>\n )}\n </footer>\n )\n }\n)\n\n/**\n * `ModalTrigger` is a button that opens the modal. **It doesn't render any DOM node.**\n * It passes the handler that opens the modal and accessibility properties to the children.\n *\n * It **must** be placed outside of the `ModalContent`.\n */\nexport function ModalTrigger({ children }: ModalTriggerProps) {\n return (\n <AlphaDialogPrimitiveTrigger asChild>\n {children}\n </AlphaDialogPrimitiveTrigger>\n )\n}\n\n/**\n * `ModalClose` is a button that closes the modal. **It doesn't render any DOM node.**\n * It passes the handler that closes the modal to the children.\n */\nexport function ModalClose({ children }: ModalCloseProps) {\n return (\n <AlphaDialogPrimitiveClose asChild>{children}</AlphaDialogPrimitiveClose>\n )\n}\n"],"names":["ModalContainerContextProvider","useModalContainerContext","createContext","undefined","ModalContentPropsContextProvider","useModalContentPropsContext","showCloseIcon","Modal","children","show","defaultShow","onShow","onHide","onOpenChange","useCallback","open","callback","React","createElement","AlphaDialogPrimitive","defaultOpen","ModalContent","forwardRef","style","className","container","givenContainer","preventHideOnOutsideClick","width","height","zIndex","collisionPadding","top","bottom","rest","forwardedRef","rootElement","useRootElement","contentContainer","setContentContainer","useState","contentRef","useMergeRefs","node","overlayStyle","padding","isNumber","right","left","propsContextValue","useMemo","AlphaDialogPrimitivePortal","ThemeProvider","themeName","useThemeName","AlphaDialogPrimitiveOverlay","classNames","styles","ModalOverlay","getZIndexClassName","AlphaDialogPrimitiveContent","asChild","onPointerDownOutside","e","preventDefault","onInteractOutside","Object","assign","ref","cssDimension","ModalSection","value","ModalClose","Button","CloseIconButton","size","leftContent","CancelIcon","colorVariant","styleVariant","getTitleTypo","l","m","ModalHeaderTitle","subtitle","Title","Text","as","typo","bold","color","AlphaDialogPrimitiveTitle","isNil","HeadingGroup","role","ModalHeader","title","description","titleSize","hidden","hasTitleArea","Hidden","VisuallyHidden","Fragment","TitleContainer","CloseIconButtonSpacer","AlphaDialogPrimitiveDescription","ModalBody","ModalFooter","rightContent","FooterLeftContent","FooterRightContent","ModalTrigger","AlphaDialogPrimitiveTrigger","AlphaDialogPrimitiveClose"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.js","sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport { isEmpty } from '~/src/utils/type'\n\nimport {\n AlphaTooltipPrimitive,\n AlphaTooltipPrimitiveContent,\n type AlphaTooltipPrimitiveContentProps,\n AlphaTooltipPrimitivePortal,\n AlphaTooltipPrimitiveProvider,\n AlphaTooltipPrimitiveTrigger,\n} from '~/src/components/AlphaTooltipPrimitive'\nimport { Icon } from '~/src/components/Icon'\nimport { HStack } from '~/src/components/Stack'\nimport { Text } from '~/src/components/Text'\nimport { InvertedThemeProvider } from '~/src/components/ThemeProvider'\nimport { useRootElement } from '~/src/components/WindowProvider'\n\nimport { type TooltipPosition, type TooltipProps } from './Tooltip.types'\n\nimport styles from './Tooltip.module.scss'\n\nfunction getSideAndAlign(\n placement: TooltipPosition\n): Pick<AlphaTooltipPrimitiveContentProps, 'side' | 'align'> {\n switch (placement) {\n case 'top-center':\n return {\n side: 'top',\n align: 'center',\n }\n case 'top-left':\n return {\n side: 'top',\n align: 'start',\n }\n case 'top-right':\n return {\n side: 'top',\n align: 'end',\n }\n case 'right-center':\n return {\n side: 'right',\n align: 'center',\n }\n case 'right-top':\n return {\n side: 'right',\n align: 'start',\n }\n case 'right-bottom':\n return {\n side: 'right',\n align: 'end',\n }\n case 'bottom-center':\n return {\n side: 'bottom',\n align: 'center',\n }\n case 'bottom-left':\n return {\n side: 'bottom',\n align: 'start',\n }\n case 'bottom-right':\n return {\n side: 'bottom',\n align: 'end',\n }\n case 'left-center':\n return {\n side: 'left',\n align: 'center',\n }\n case 'left-top':\n return {\n side: 'left',\n align: 'start',\n }\n case 'left-bottom':\n return {\n side: 'left',\n align: 'end',\n }\n default:\n // NOTE: should not reach here\n return {\n side: undefined,\n align: undefined,\n }\n }\n}\n\n/**\n * `Tooltip` is a component that shows additional information when the mouse hovers or the keyboard is focused.\n *\n * Components that pass to children **must spread props and forward ref.**\n * @example\n * ```tsx\n * // Your component must spread props and forward ref.\n * const Button = React.forwardRef((props, forwardedRef) => (<button {...props} ref={forwardedRef} />))\n * // Then, you can use `Tooltip` with your component.\n * <Tooltip content=\"Ta-da!\">\n * <Button>Hover me</Button>\n * </Tooltip>\n * ```\n */\nexport const Tooltip = forwardRef<HTMLDivElement, TooltipProps>(\n function Tooltip(\n {\n children,\n defaultShow,\n onShow: onShowProp,\n onHide: onHideProp,\n disabled,\n title,\n content,\n description,\n icon,\n placement = 'bottom-center',\n offset = 4,\n container: containerProp,\n keepInContainer = true,\n allowHover = false,\n delayShow = 0,\n delayHide = 0,\n ...rest\n },\n forwardedRef\n ) {\n const [show, setShow] = useState<boolean>(defaultShow ?? false)\n const timeoutRef = useRef<NodeJS.Timeout>()\n\n const rootElement = useRootElement()\n const container = containerProp ?? rootElement\n\n const shouldBeHidden = useMemo(\n () => disabled || isEmpty(content),\n [disabled, content]\n )\n\n const onShow = useCallback(() => {\n setShow(true)\n onShowProp?.()\n }, [onShowProp])\n\n const onHide = useCallback(() => {\n setShow(false)\n onHideProp?.()\n }, [onHideProp])\n\n useEffect(\n function forceHide() {\n if (shouldBeHidden) {\n onHide()\n }\n },\n [shouldBeHidden, onHide]\n )\n\n useEffect(\n function cleanUpTimeout() {\n return function cleanUp() {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n }\n },\n [shouldBeHidden]\n )\n\n const onOpenChange = useCallback(\n (open: boolean) => {\n if (shouldBeHidden) {\n return\n }\n\n if (open) {\n onShow()\n return\n }\n\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n timeoutRef.current = undefined\n }\n\n if (delayHide > 0) {\n timeoutRef.current = setTimeout(() => {\n onHide()\n }, delayHide)\n return\n }\n\n onHide()\n },\n [shouldBeHidden, delayHide, onShow, onHide]\n )\n\n return (\n <AlphaTooltipPrimitiveProvider skipDelayDuration={0}>\n <AlphaTooltipPrimitive\n open={show}\n defaultOpen={defaultShow}\n delayDuration={delayShow}\n disableHoverableContent={!allowHover}\n onOpenChange={onOpenChange}\n >\n <AlphaTooltipPrimitiveTrigger asChild>{children}</AlphaTooltipPrimitiveTrigger>\n\n <AlphaTooltipPrimitivePortal container={container}>\n <InvertedThemeProvider>\n <AlphaTooltipPrimitiveContent\n {...rest}\n {...getSideAndAlign(placement)}\n asChild\n ref={forwardedRef}\n sideOffset={offset}\n avoidCollisions={keepInContainer}\n collisionPadding={8}\n hideWhenDetached\n >\n <HStack\n spacing={4}\n className={styles.Tooltip}\n >\n <div className={styles.TooltipContainer}>\n {title && (\n <Text\n typo=\"13\"\n bold\n marginBottom={2}\n color=\"txt-black-darkest\"\n >\n {title}\n </Text>\n )}\n\n <Text\n color=\"txt-black-darkest\"\n className={styles.TooltipContent}\n truncated={20}\n typo=\"13\"\n >\n {content}\n </Text>\n\n {description && (\n <Text\n typo=\"12\"\n color=\"txt-black-dark\"\n >\n {description}\n </Text>\n )}\n </div>\n\n {icon && (\n <Icon\n size=\"xs\"\n color=\"txt-black-darkest\"\n source={icon}\n className={styles.Icon}\n />\n )}\n </HStack>\n </AlphaTooltipPrimitiveContent>\n </InvertedThemeProvider>\n </AlphaTooltipPrimitivePortal>\n </AlphaTooltipPrimitive>\n </AlphaTooltipPrimitiveProvider>\n )\n }\n)\n"],"names":["getSideAndAlign","placement","side","align","undefined","Tooltip","forwardRef","children","defaultShow","onShow","onShowProp","onHide","onHideProp","disabled","title","content","description","icon","offset","container","containerProp","keepInContainer","allowHover","delayShow","delayHide","rest","forwardedRef","show","setShow","useState","timeoutRef","useRef","rootElement","useRootElement","shouldBeHidden","useMemo","isEmpty","useCallback","useEffect","forceHide","cleanUpTimeout","cleanUp","current","clearTimeout","onOpenChange","open","setTimeout","React","createElement","AlphaTooltipPrimitiveProvider","skipDelayDuration","AlphaTooltipPrimitive","defaultOpen","delayDuration","disableHoverableContent","AlphaTooltipPrimitiveTrigger","asChild","AlphaTooltipPrimitivePortal","InvertedThemeProvider","AlphaTooltipPrimitiveContent","Object","assign","ref","sideOffset","avoidCollisions","collisionPadding","hideWhenDetached","HStack","spacing","className","styles","TooltipContainer","Text","typo","bold","marginBottom","color","TooltipContent","truncated","Icon","size","source"],"mappings":"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"}
1
+ {"version":3,"file":"Tooltip.js","sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport { isEmpty } from '~/src/utils/type'\n\nimport {\n AlphaTooltipPrimitive,\n AlphaTooltipPrimitiveContent,\n type AlphaTooltipPrimitiveContentProps,\n AlphaTooltipPrimitivePortal,\n AlphaTooltipPrimitiveProvider,\n AlphaTooltipPrimitiveTrigger,\n} from '~/src/components/AlphaTooltipPrimitive'\nimport { Icon } from '~/src/components/Icon'\nimport { HStack } from '~/src/components/Stack'\nimport { Text } from '~/src/components/Text'\nimport { InvertedThemeProvider } from '~/src/components/ThemeProvider'\nimport { useRootElement } from '~/src/components/WindowProvider'\n\nimport { type TooltipPosition, type TooltipProps } from './Tooltip.types'\n\nimport styles from './Tooltip.module.scss'\n\nfunction getSideAndAlign(\n placement: TooltipPosition\n): Pick<AlphaTooltipPrimitiveContentProps, 'side' | 'align'> {\n switch (placement) {\n case 'top-center':\n return {\n side: 'top',\n align: 'center',\n }\n case 'top-left':\n return {\n side: 'top',\n align: 'start',\n }\n case 'top-right':\n return {\n side: 'top',\n align: 'end',\n }\n case 'right-center':\n return {\n side: 'right',\n align: 'center',\n }\n case 'right-top':\n return {\n side: 'right',\n align: 'start',\n }\n case 'right-bottom':\n return {\n side: 'right',\n align: 'end',\n }\n case 'bottom-center':\n return {\n side: 'bottom',\n align: 'center',\n }\n case 'bottom-left':\n return {\n side: 'bottom',\n align: 'start',\n }\n case 'bottom-right':\n return {\n side: 'bottom',\n align: 'end',\n }\n case 'left-center':\n return {\n side: 'left',\n align: 'center',\n }\n case 'left-top':\n return {\n side: 'left',\n align: 'start',\n }\n case 'left-bottom':\n return {\n side: 'left',\n align: 'end',\n }\n default:\n // NOTE: should not reach here\n return {\n side: undefined,\n align: undefined,\n }\n }\n}\n\n/**\n * `Tooltip` is a component that shows additional information when the mouse hovers or the keyboard is focused.\n *\n * Components that pass to children **must spread props and forward ref.**\n * @example\n * ```tsx\n * // Your component must spread props and forward ref.\n * const Button = React.forwardRef((props, forwardedRef) => (<button {...props} ref={forwardedRef} />))\n * // Then, you can use `Tooltip` with your component.\n * <Tooltip content=\"Ta-da!\">\n * <Button>Hover me</Button>\n * </Tooltip>\n * ```\n */\nexport const Tooltip = forwardRef<HTMLDivElement, TooltipProps>(\n function Tooltip(\n {\n children,\n defaultShow,\n onShow: onShowProp,\n onHide: onHideProp,\n disabled,\n title,\n content,\n description,\n icon,\n placement = 'bottom-center',\n offset = 4,\n container: containerProp,\n keepInContainer = true,\n allowHover = false,\n delayShow = 0,\n delayHide = 0,\n ...rest\n },\n forwardedRef\n ) {\n const [show, setShow] = useState<boolean>(defaultShow ?? false)\n const timeoutRef = useRef<NodeJS.Timeout>()\n\n const rootElement = useRootElement()\n const container = containerProp ?? rootElement\n\n const shouldBeHidden = useMemo(\n () => disabled || isEmpty(content),\n [disabled, content]\n )\n\n const onShow = useCallback(() => {\n setShow(true)\n onShowProp?.()\n }, [onShowProp])\n\n const onHide = useCallback(() => {\n setShow(false)\n onHideProp?.()\n }, [onHideProp])\n\n useEffect(\n function forceHide() {\n if (shouldBeHidden) {\n onHide()\n }\n },\n [shouldBeHidden, onHide]\n )\n\n useEffect(\n function cleanUpTimeout() {\n return function cleanUp() {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n }\n },\n [shouldBeHidden]\n )\n\n const onOpenChange = useCallback(\n (open: boolean) => {\n if (shouldBeHidden) {\n return\n }\n\n if (open) {\n onShow()\n return\n }\n\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n timeoutRef.current = undefined\n }\n\n if (delayHide > 0) {\n timeoutRef.current = setTimeout(() => {\n onHide()\n }, delayHide)\n return\n }\n\n onHide()\n },\n [shouldBeHidden, delayHide, onShow, onHide]\n )\n\n return (\n <AlphaTooltipPrimitiveProvider skipDelayDuration={0}>\n <AlphaTooltipPrimitive\n open={show}\n defaultOpen={defaultShow}\n delayDuration={delayShow}\n disableHoverableContent={!allowHover}\n onOpenChange={onOpenChange}\n >\n <AlphaTooltipPrimitiveTrigger asChild>\n {children}\n </AlphaTooltipPrimitiveTrigger>\n\n <AlphaTooltipPrimitivePortal container={container}>\n <InvertedThemeProvider>\n <AlphaTooltipPrimitiveContent\n {...rest}\n {...getSideAndAlign(placement)}\n asChild\n ref={forwardedRef}\n sideOffset={offset}\n avoidCollisions={keepInContainer}\n collisionPadding={8}\n hideWhenDetached\n >\n <HStack\n spacing={4}\n className={styles.Tooltip}\n >\n <div className={styles.TooltipContainer}>\n {title && (\n <Text\n typo=\"13\"\n bold\n marginBottom={2}\n color=\"txt-black-darkest\"\n >\n {title}\n </Text>\n )}\n\n <Text\n color=\"txt-black-darkest\"\n className={styles.TooltipContent}\n truncated={20}\n typo=\"13\"\n >\n {content}\n </Text>\n\n {description && (\n <Text\n typo=\"12\"\n color=\"txt-black-dark\"\n >\n {description}\n </Text>\n )}\n </div>\n\n {icon && (\n <Icon\n size=\"xs\"\n color=\"txt-black-darkest\"\n source={icon}\n className={styles.Icon}\n />\n )}\n </HStack>\n </AlphaTooltipPrimitiveContent>\n </InvertedThemeProvider>\n </AlphaTooltipPrimitivePortal>\n </AlphaTooltipPrimitive>\n </AlphaTooltipPrimitiveProvider>\n )\n }\n)\n"],"names":["getSideAndAlign","placement","side","align","undefined","Tooltip","forwardRef","children","defaultShow","onShow","onShowProp","onHide","onHideProp","disabled","title","content","description","icon","offset","container","containerProp","keepInContainer","allowHover","delayShow","delayHide","rest","forwardedRef","show","setShow","useState","timeoutRef","useRef","rootElement","useRootElement","shouldBeHidden","useMemo","isEmpty","useCallback","useEffect","forceHide","cleanUpTimeout","cleanUp","current","clearTimeout","onOpenChange","open","setTimeout","React","createElement","AlphaTooltipPrimitiveProvider","skipDelayDuration","AlphaTooltipPrimitive","defaultOpen","delayDuration","disableHoverableContent","AlphaTooltipPrimitiveTrigger","asChild","AlphaTooltipPrimitivePortal","InvertedThemeProvider","AlphaTooltipPrimitiveContent","Object","assign","ref","sideOffset","avoidCollisions","collisionPadding","hideWhenDetached","HStack","spacing","className","styles","TooltipContainer","Text","typo","bold","marginBottom","color","TooltipContent","truncated","Icon","size","source"],"mappings":";;;;;;;;;;;;AA6BA,SAASA,eAAeA,CACtBC,SAA0B,EACiC;AAC3D,EAAA,QAAQA,SAAS;AACf,IAAA,KAAK,YAAY;MACf,OAAO;AACLC,QAAAA,IAAI,EAAE,KAAK;AACXC,QAAAA,KAAK,EAAE,QAAA;OACR,CAAA;AACH,IAAA,KAAK,UAAU;MACb,OAAO;AACLD,QAAAA,IAAI,EAAE,KAAK;AACXC,QAAAA,KAAK,EAAE,OAAA;OACR,CAAA;AACH,IAAA,KAAK,WAAW;MACd,OAAO;AACLD,QAAAA,IAAI,EAAE,KAAK;AACXC,QAAAA,KAAK,EAAE,KAAA;OACR,CAAA;AACH,IAAA,KAAK,cAAc;MACjB,OAAO;AACLD,QAAAA,IAAI,EAAE,OAAO;AACbC,QAAAA,KAAK,EAAE,QAAA;OACR,CAAA;AACH,IAAA,KAAK,WAAW;MACd,OAAO;AACLD,QAAAA,IAAI,EAAE,OAAO;AACbC,QAAAA,KAAK,EAAE,OAAA;OACR,CAAA;AACH,IAAA,KAAK,cAAc;MACjB,OAAO;AACLD,QAAAA,IAAI,EAAE,OAAO;AACbC,QAAAA,KAAK,EAAE,KAAA;OACR,CAAA;AACH,IAAA,KAAK,eAAe;MAClB,OAAO;AACLD,QAAAA,IAAI,EAAE,QAAQ;AACdC,QAAAA,KAAK,EAAE,QAAA;OACR,CAAA;AACH,IAAA,KAAK,aAAa;MAChB,OAAO;AACLD,QAAAA,IAAI,EAAE,QAAQ;AACdC,QAAAA,KAAK,EAAE,OAAA;OACR,CAAA;AACH,IAAA,KAAK,cAAc;MACjB,OAAO;AACLD,QAAAA,IAAI,EAAE,QAAQ;AACdC,QAAAA,KAAK,EAAE,KAAA;OACR,CAAA;AACH,IAAA,KAAK,aAAa;MAChB,OAAO;AACLD,QAAAA,IAAI,EAAE,MAAM;AACZC,QAAAA,KAAK,EAAE,QAAA;OACR,CAAA;AACH,IAAA,KAAK,UAAU;MACb,OAAO;AACLD,QAAAA,IAAI,EAAE,MAAM;AACZC,QAAAA,KAAK,EAAE,OAAA;OACR,CAAA;AACH,IAAA,KAAK,aAAa;MAChB,OAAO;AACLD,QAAAA,IAAI,EAAE,MAAM;AACZC,QAAAA,KAAK,EAAE,KAAA;OACR,CAAA;AACH,IAAA;AACE;MACA,OAAO;AACLD,QAAAA,IAAI,EAAEE,SAAS;AACfD,QAAAA,KAAK,EAAEC,SAAAA;OACR,CAAA;AACL,GAAA;AACF,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaC,OAAO,gBAAGC,gBAAU,CAC/B,SAASD,OAAOA,CACd;EACEE,QAAQ;EACRC,WAAW;AACXC,EAAAA,MAAM,EAAEC,UAAU;AAClBC,EAAAA,MAAM,EAAEC,UAAU;EAClBC,QAAQ;EACRC,KAAK;EACLC,OAAO;EACPC,WAAW;EACXC,IAAI;AACJhB,EAAAA,SAAS,GAAG,eAAe;AAC3BiB,EAAAA,MAAM,GAAG,CAAC;AACVC,EAAAA,SAAS,EAAEC,aAAa;AACxBC,EAAAA,eAAe,GAAG,IAAI;AACtBC,EAAAA,UAAU,GAAG,KAAK;AAClBC,EAAAA,SAAS,GAAG,CAAC;AACbC,EAAAA,SAAS,GAAG,CAAC;EACb,GAAGC,IAAAA;AACL,CAAC,EACDC,YAAY,EACZ;EACA,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAGC,cAAQ,CAAUrB,WAAW,IAAI,KAAK,CAAC,CAAA;AAC/D,EAAA,MAAMsB,UAAU,GAAGC,YAAM,EAAkB,CAAA;AAE3C,EAAA,MAAMC,WAAW,GAAGC,6BAAc,EAAE,CAAA;AACpC,EAAA,MAAMd,SAAS,GAAGC,aAAa,IAAIY,WAAW,CAAA;AAE9C,EAAA,MAAME,cAAc,GAAGC,aAAO,CAC5B,MAAMtB,QAAQ,IAAIuB,YAAO,CAACrB,OAAO,CAAC,EAClC,CAACF,QAAQ,EAAEE,OAAO,CACpB,CAAC,CAAA;AAED,EAAA,MAAMN,MAAM,GAAG4B,iBAAW,CAAC,MAAM;IAC/BT,OAAO,CAAC,IAAI,CAAC,CAAA;AACblB,IAAAA,UAAU,IAAI,CAAA;AAChB,GAAC,EAAE,CAACA,UAAU,CAAC,CAAC,CAAA;AAEhB,EAAA,MAAMC,MAAM,GAAG0B,iBAAW,CAAC,MAAM;IAC/BT,OAAO,CAAC,KAAK,CAAC,CAAA;AACdhB,IAAAA,UAAU,IAAI,CAAA;AAChB,GAAC,EAAE,CAACA,UAAU,CAAC,CAAC,CAAA;AAEhB0B,EAAAA,eAAS,CACP,SAASC,SAASA,GAAG;AACnB,IAAA,IAAIL,cAAc,EAAE;AAClBvB,MAAAA,MAAM,EAAE,CAAA;AACV,KAAA;AACF,GAAC,EACD,CAACuB,cAAc,EAAEvB,MAAM,CACzB,CAAC,CAAA;AAED2B,EAAAA,eAAS,CACP,SAASE,cAAcA,GAAG;IACxB,OAAO,SAASC,OAAOA,GAAG;MACxB,IAAIX,UAAU,CAACY,OAAO,EAAE;AACtBC,QAAAA,YAAY,CAACb,UAAU,CAACY,OAAO,CAAC,CAAA;AAClC,OAAA;KACD,CAAA;AACH,GAAC,EACD,CAACR,cAAc,CACjB,CAAC,CAAA;AAED,EAAA,MAAMU,YAAY,GAAGP,iBAAW,CAC7BQ,IAAa,IAAK;AACjB,IAAA,IAAIX,cAAc,EAAE;AAClB,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAIW,IAAI,EAAE;AACRpC,MAAAA,MAAM,EAAE,CAAA;AACR,MAAA,OAAA;AACF,KAAA;IAEA,IAAIqB,UAAU,CAACY,OAAO,EAAE;AACtBC,MAAAA,YAAY,CAACb,UAAU,CAACY,OAAO,CAAC,CAAA;MAChCZ,UAAU,CAACY,OAAO,GAAGtC,SAAS,CAAA;AAChC,KAAA;IAEA,IAAIoB,SAAS,GAAG,CAAC,EAAE;AACjBM,MAAAA,UAAU,CAACY,OAAO,GAAGI,UAAU,CAAC,MAAM;AACpCnC,QAAAA,MAAM,EAAE,CAAA;OACT,EAAEa,SAAS,CAAC,CAAA;AACb,MAAA,OAAA;AACF,KAAA;AAEAb,IAAAA,MAAM,EAAE,CAAA;GACT,EACD,CAACuB,cAAc,EAAEV,SAAS,EAAEf,MAAM,EAAEE,MAAM,CAC5C,CAAC,CAAA;AAED,EAAA,oBACEoC,KAAA,CAAAC,aAAA,CAACC,yCAA6B,EAAA;AAACC,IAAAA,iBAAiB,EAAE,CAAA;AAAE,GAAA,eAClDH,KAAA,CAAAC,aAAA,CAACG,iCAAqB,EAAA;AACpBN,IAAAA,IAAI,EAAElB,IAAK;AACXyB,IAAAA,WAAW,EAAE5C,WAAY;AACzB6C,IAAAA,aAAa,EAAE9B,SAAU;IACzB+B,uBAAuB,EAAE,CAAChC,UAAW;AACrCsB,IAAAA,YAAY,EAAEA,YAAAA;AAAa,GAAA,eAE3BG,KAAA,CAAAC,aAAA,CAACO,wCAA4B,EAAA;IAACC,OAAO,EAAA,IAAA;AAAA,GAAA,EAClCjD,QAC2B,CAAC,eAE/BwC,KAAA,CAAAC,aAAA,CAACS,uCAA2B,EAAA;AAACtC,IAAAA,SAAS,EAAEA,SAAAA;GACtC4B,eAAAA,KAAA,CAAAC,aAAA,CAACU,mCAAqB,EACpBX,IAAAA,eAAAA,KAAA,CAAAC,aAAA,CAACW,wCAA4B,EAAAC,MAAA,CAAAC,MAAA,CAAA,EAAA,EACvBpC,IAAI,EACJzB,eAAe,CAACC,SAAS,CAAC,EAAA;IAC9BuD,OAAO,EAAA,IAAA;AACPM,IAAAA,GAAG,EAAEpC,YAAa;AAClBqC,IAAAA,UAAU,EAAE7C,MAAO;AACnB8C,IAAAA,eAAe,EAAE3C,eAAgB;AACjC4C,IAAAA,gBAAgB,EAAE,CAAE;IACpBC,gBAAgB,EAAA,IAAA;AAAA,GAAA,CAAA,eAEhBnB,KAAA,CAAAC,aAAA,CAACmB,YAAM,EAAA;AACLC,IAAAA,OAAO,EAAE,CAAE;IACXC,SAAS,EAAEC,sBAAM,CAACjE,OAAAA;GAElB0C,eAAAA,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKqB,SAAS,EAAEC,sBAAM,CAACC,gBAAAA;AAAiB,GAAA,EACrCzD,KAAK,iBACJiC,KAAA,CAAAC,aAAA,CAACwB,SAAI,EAAA;AACHC,IAAAA,IAAI,EAAC,IAAI;IACTC,IAAI,EAAA,IAAA;AACJC,IAAAA,YAAY,EAAE,CAAE;AAChBC,IAAAA,KAAK,EAAC,mBAAA;AAAmB,GAAA,EAExB9D,KACG,CACP,eAEDiC,KAAA,CAAAC,aAAA,CAACwB,SAAI,EAAA;AACHI,IAAAA,KAAK,EAAC,mBAAmB;IACzBP,SAAS,EAAEC,sBAAM,CAACO,cAAe;AACjCC,IAAAA,SAAS,EAAE,EAAG;AACdL,IAAAA,IAAI,EAAC,IAAA;GAEJ1D,EAAAA,OACG,CAAC,EAENC,WAAW,iBACV+B,KAAA,CAAAC,aAAA,CAACwB,SAAI,EAAA;AACHC,IAAAA,IAAI,EAAC,IAAI;AACTG,IAAAA,KAAK,EAAC,gBAAA;GAEL5D,EAAAA,WACG,CAEL,CAAC,EAELC,IAAI,iBACH8B,KAAA,CAAAC,aAAA,CAAC+B,SAAI,EAAA;AACHC,IAAAA,IAAI,EAAC,IAAI;AACTJ,IAAAA,KAAK,EAAC,mBAAmB;AACzBK,IAAAA,MAAM,EAAEhE,IAAK;IACboD,SAAS,EAAEC,sBAAM,CAACS,IAAAA;AAAK,GACxB,CAEG,CACoB,CACT,CACI,CACR,CACM,CAAC,CAAA;AAEpC,CACF;;;;"}