@semcore/feedback-form 17.0.0-prerelease.27 → 17.0.0-prerelease.30

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/CHANGELOG.md CHANGED
@@ -2,12 +2,16 @@
2
2
 
3
3
  CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
- ## [17.0.0] - 2026-02-23
5
+ ## [17.0.0] - 2026-03-09
6
6
 
7
7
  ### BREAK
8
8
 
9
9
  - **ellipsis**: New major version.
10
10
 
11
+ ### Fixed
12
+
13
+ - `Star` SVG alignment for `FeedbackRating` component.
14
+
11
15
  ## [16.2.0] - 2026-02-10
12
16
 
13
17
  ### Added
@@ -80,12 +80,12 @@ class FeedbackRatingRoot extends _core.Component {
80
80
  }, config.label) : config.label;
81
81
  const isDescriptionReactFragment = config.description?.type === _react.default.Fragment;
82
82
  return /*#__PURE__*/_react.default.createElement(_baseComponents.Flex, {
83
+ key: config.key,
83
84
  direction: "column"
84
85
  }, /*#__PURE__*/_react.default.createElement(_baseComponents.Flex, {
85
86
  tag: "label",
86
87
  mt: 4,
87
- htmlFor: config.key,
88
- key: config.key
88
+ htmlFor: config.key
89
89
  }, label), /*#__PURE__*/_react.default.createElement(FeedbackRating.Item, {
90
90
  name: config.key,
91
91
  validate: config.validate,
@@ -1 +1 @@
1
- {"version":3,"file":"FeedbackRating.js","names":["_core","require","_baseComponents","_i18nEnhance","_interopRequireDefault","_uniqueID","_m","_m2","_Feedback","_input","_link","_modal","_notice","_noticeBubble","_spinContainer","_textarea","_typography","_finalFormFocus","_react","_reactFinalForm","_intergalacticDynamicLocales","_CheckboxButton","_FeedbackItem","_SliderRating","_SubmitButton","style","sstyled","insert","FeedbackRatingRoot","Component","constructor","args","_defineProperty2","default","error","NoticeBubbleManager","createFocusDecorator","rating","asProps","onVisibleChange","fn","_value","e","config","index","initialValue","props","initialValues","key","createElement","Field","name","type","input","FeedbackRating","Checkbox","_extends2","id","label","onChange","_checked","focused","Text","mb","size","isDescriptionReactFragment","description","React","Fragment","Flex","direction","tag","mt","htmlFor","Item","validate","placement","flip","fallbackPlacements","undefined","h","handleChange","autoComplete","state","Value","Box","color","headerId","uid","getHeaderProps","getItemProps","validateOnBlur","getNoticeTextId","componentDidUpdate","prevProps","status","getI18nText","setState","setTimeout","manager","add","icon","children","initialAnimation","duration","render","_ref","_ref2","_ref4","header","submitText","formConfig","notificationText","notificationTitle","learnMoreLink","Children","_Children","styles","forwardRef","theme","background","visible","_onVisibleChange","notificationVisible","onNotificationClose","errorFeedbackEmail","modalWidth","Illustration","Notice","NoticeComponent","other","SFeedbackRating","Modal","checkboxFields","filter","item","textFields","notificationId","assignProps","cn","Label","mr","Content","Title","gap","alignItems","Actions","handleChangeRating","Close","onClick","handelCloseModal","Form","focusDecorator","api","_ref5","submitting","Header","handleSubmit","map","formConfigItem","renderCheckbox","renderTextField","email","Submit","loading","NoticeBubbleContainer","i18nEnhance","localizedMessages","uniqueIDEnhancement","onSubmit","i18n","locale","FeedbackIllustration","SemcoreNotice","value","words","split","symbols","join","Boolean","length","test","String","toLowerCase","_ref3","arguments[0]","_ref6","SHeader","createComponent","FeedbackItem","CheckboxButton","SubmitButton","_default","exports"],"sources":["../../../../src/component/feedback-rating/FeedbackRating.tsx"],"sourcesContent":["import { Box, Flex } from '@semcore/base-components';\nimport type Button from '@semcore/button';\nimport type Checkbox from '@semcore/checkbox';\nimport { createComponent, Component, sstyled, Root } from '@semcore/core';\nimport type { Intergalactic } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport CheckM from '@semcore/icon/Check/m';\nimport WarnM from '@semcore/icon/Warning/m';\nimport FeedbackIllustration from '@semcore/illustration/Feedback';\nimport Input from '@semcore/input';\nimport Link from '@semcore/link';\nimport Modal from '@semcore/modal';\nimport { default as SemcoreNotice } from '@semcore/notice';\nimport { NoticeBubbleContainer, NoticeBubbleManager } from '@semcore/notice-bubble';\nimport SpinContainer from '@semcore/spin-container';\nimport Textarea from '@semcore/textarea';\nimport { Text } from '@semcore/typography';\nimport createFocusDecorator from 'final-form-focus';\nimport React, { type ReactElement } from 'react';\nimport { Field, Form } from 'react-final-form';\n\nimport type {\n FeedbackRatingCheckboxProps,\n FeedbackRatingItemProps,\n FeedbackRatingProps,\n FormConfigItem,\n FeedbackRatingDefaultProps,\n} from './FeedbackRating.type';\nimport style from '../../style/feedback-rating.shadow.css';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\nimport CheckboxButton from '../checkbox-button/CheckboxButton';\nimport { FeedbackItem } from '../feedback-item/FeedbackItem';\nimport SliderRating from '../slider-rating/SliderRating';\nimport { SubmitButton } from '../submit-button/SubmitButton';\n\ntype State = {\n error: boolean;\n};\n\nclass FeedbackRatingRoot extends Component<\n FeedbackRatingProps,\n typeof FeedbackRatingRoot.enhance,\n {},\n FeedbackRatingDefaultProps,\n State\n> {\n static displayName = 'FeedbackRatingForm';\n static style = style;\n\n static enhance = [i18nEnhance(localizedMessages), uniqueIDEnhancement()] as const;\n\n static defaultProps: FeedbackRatingDefaultProps = {\n onSubmit: () => {},\n i18n: localizedMessages,\n locale: 'en',\n Illustration: FeedbackIllustration,\n Notice: SemcoreNotice,\n };\n\n static validate = {\n description: (error: Error | string) => (value = '') => {\n const words = value.split(/\\s+/);\n const symbols = words.join(' ');\n if (Boolean(value) && (symbols.length < 10 || words.length < 3)) {\n return error;\n }\n },\n email: (error: Error | string) => (value = '') => {\n if (Boolean(value) && !/.+@.+\\..+/i.test(String(value).toLowerCase())) {\n return error;\n }\n },\n };\n\n state: State = {\n error: false,\n };\n\n manager = new NoticeBubbleManager();\n\n private focusDecorator = createFocusDecorator<Record<string, any>>();\n\n get headerId() {\n const { uid } = this.asProps;\n\n return `${uid}-feedback-rating-header`;\n }\n\n getHeaderProps() {\n return {\n id: this.headerId,\n };\n }\n\n getItemProps() {\n const { validateOnBlur } = this.asProps;\n\n return {\n validateOnBlur,\n };\n }\n\n getNoticeTextId() {\n const { uid } = this.asProps;\n return `${uid}-feedback-rating-notice`;\n }\n\n handleChangeRating = (rating: number) => {\n if (rating > 0) {\n this.asProps.onVisibleChange(true, rating);\n }\n };\n\n handelCloseModal = () => {\n this.asProps.onVisibleChange(false, this.asProps.rating);\n };\n\n handleChange =\n (fn: (e: React.SyntheticEvent) => void) => (_value: any, e: React.SyntheticEvent) => {\n fn(e);\n };\n\n componentDidUpdate(prevProps: Readonly<FeedbackRatingProps>) {\n const { status, getI18nText } = this.asProps;\n\n if (prevProps.status !== status) {\n this.setState({ error: false });\n\n if (status === 'success') {\n // showing notice with delay for SR, less than 100ms is not enough\n setTimeout(() => {\n this.manager.add({\n icon: <CheckM color='green-400' />,\n children: getI18nText('successMessage'),\n initialAnimation: true,\n duration: 5000,\n });\n }, 300);\n } else if (status === 'error') {\n this.setState({ error: true });\n }\n }\n }\n\n renderCheckbox = (config: FormConfigItem, index: number) => {\n const initialValue = this.props.initialValues[config.key];\n\n return (\n <Field name={config.key} initialValue={initialValue} type='checkbox' key={config.key}>\n {({ input }) => (\n <FeedbackRating.Checkbox\n {...input}\n id={config.key}\n label={config.label}\n onChange={(_checked, e) => input.onChange(e)}\n focused={index === 0}\n />\n )}\n </Field>\n );\n };\n\n renderTextField = (config: FormConfigItem) => {\n const initialValue = this.props.initialValues[config.key];\n\n const label =\n typeof config.label === 'string'\n ? (\n <Text mb={2} size={200}>\n {config.label}\n </Text>\n )\n : (\n (config.label as unknown as JSX.Element)\n );\n\n const isDescriptionReactFragment =\n (config.description as ReactElement)?.type === React.Fragment;\n\n return (\n <Flex direction='column'>\n <Flex tag='label' mt={4} htmlFor={config.key} key={config.key}>\n {label}\n </Flex>\n\n <FeedbackRating.Item\n name={config.key}\n validate={config.validate}\n initialValue={initialValue}\n placement='left-start'\n flip={{\n fallbackPlacements: ['right-start', 'bottom'],\n }}\n aria-describedby={config.description ? config.key + '-description' : undefined}\n >\n {/* @ts-ignore */}\n {({ input }) => {\n if (config.type === 'textarea') {\n return (\n <Textarea\n {...input}\n h={80}\n onChange={this.handleChange(input.onChange)}\n id={config.key}\n />\n );\n }\n if (config.type === 'input' || config.type === 'email') {\n if (config.type === 'email') {\n input.autoComplete = 'email';\n input.type = 'email';\n }\n\n return (\n <Input state={input.state}>\n <Input.Value\n {...input}\n onChange={this.handleChange(input.onChange)}\n id={config.key}\n />\n </Input>\n );\n }\n return null;\n }}\n </FeedbackRating.Item>\n {config.description && (\n <Box mt={2}>\n {typeof config.description === 'string' || isDescriptionReactFragment\n ? (\n <Text size={200} color='text-secondary' id={config.key + '-description'}>\n {config.description}\n </Text>\n )\n : (\n config.description\n )}\n </Box>\n )}\n </Flex>\n );\n };\n\n render() {\n const {\n header,\n submitText,\n formConfig,\n notificationText,\n notificationTitle,\n learnMoreLink,\n Children: _Children,\n styles,\n forwardRef,\n status,\n theme,\n background,\n rating,\n visible,\n onVisibleChange: _onVisibleChange,\n notificationVisible,\n onNotificationClose,\n getI18nText,\n errorFeedbackEmail,\n modalWidth,\n Illustration,\n Notice: NoticeComponent,\n ...other\n } = this.asProps;\n\n const SFeedbackRating = Root;\n const checkboxFields = formConfig.filter((item) => item.type === 'checkbox');\n const textFields = formConfig.filter(\n (item) => item.type === 'textarea' || item.type === 'input' || item.type === 'email',\n );\n const notificationId = this.getNoticeTextId();\n\n return sstyled(styles)(\n <Root render={Box}>\n <NoticeComponent\n visible={notificationVisible}\n aria-label={getI18nText('leaveFeedback')}\n tag={Flex}\n alignItems={notificationTitle ? 'flex-start' : 'center'}\n >\n <NoticeComponent.Label mr={3} aria-hidden={true}>\n <Illustration />\n </NoticeComponent.Label>\n <NoticeComponent.Content>\n {notificationTitle ? <NoticeComponent.Title>{notificationTitle}</NoticeComponent.Title> : null}\n <NoticeComponent.Text gap={3} tag={Flex} alignItems={notificationTitle ? 'flex-start' : 'center'}>\n <Text id={notificationId}>\n {notificationText}\n </Text>\n <NoticeComponent.Actions mt={0}>\n <SliderRating\n value={rating}\n onChange={this.handleChangeRating}\n aria-labelledby={notificationId}\n />\n </NoticeComponent.Actions>\n {learnMoreLink && (\n <Link href={learnMoreLink}>\n {getI18nText('learnMore')}\n </Link>\n )}\n </NoticeComponent.Text>\n </NoticeComponent.Content>\n <NoticeComponent.Close onClick={onNotificationClose} />\n </NoticeComponent>\n\n <SFeedbackRating\n render={Modal}\n visible={visible}\n onClose={this.handelCloseModal}\n p={0}\n use:w={modalWidth ?? 440}\n aria-labelledby={this.headerId}\n >\n <Form decorators={[this.focusDecorator]} {...other}>\n {(api) =>\n sstyled(styles)(\n <SpinContainer\n background={background}\n theme={theme}\n size='xl'\n loading={status !== 'loading' ? api.submitting : status === 'loading'}\n p={1}\n m={9}\n >\n <Flex justifyContent='center'>\n <SliderRating value={rating} readonly={true} />\n </Flex>\n\n {(header as ReactElement)?.type === FeedbackRating.Header\n ? (\n header\n )\n : (\n <FeedbackRating.Header>{header}</FeedbackRating.Header>\n )}\n\n <Box\n tag='form'\n noValidate\n method='POST'\n ref={forwardRef}\n {...other}\n onSubmit={api.handleSubmit}\n >\n <Field name='rating' initialValue={rating}>\n {({ input }) => <input {...input} type='hidden' />}\n </Field>\n\n <div role='group' aria-labelledby={this.headerId}>\n {checkboxFields.map((formConfigItem, index) =>\n this.renderCheckbox(formConfigItem, index),\n )}\n </div>\n\n {textFields.map((formConfigItem) => this.renderTextField(formConfigItem))}\n\n {this.state.error && (\n <SemcoreNotice theme='warning' mt={4} mb={4}>\n <SemcoreNotice.Label>\n <WarnM />\n </SemcoreNotice.Label>\n <SemcoreNotice.Content>\n {getI18nText('errorMessage', {\n // todo: Brauer Ilia - think how to fix type\n // @ts-ignore\n email: (\n <Link href={`mailto:${errorFeedbackEmail}`}>\n {errorFeedbackEmail}\n </Link>\n ),\n })}\n </SemcoreNotice.Content>\n </SemcoreNotice>\n )}\n\n <Flex mt={4} justifyContent='center'>\n <FeedbackRating.Submit\n loading={status !== 'loading' ? api.submitting : status === 'loading'}\n size='l'\n >\n {submitText ?? getI18nText('submitButton')}\n </FeedbackRating.Submit>\n </Flex>\n </Box>\n </SpinContainer>,\n )}\n </Form>\n </SFeedbackRating>\n\n <NoticeBubbleContainer manager={this.manager} />\n </Root>,\n );\n }\n}\n\nfunction Header(props: any) {\n const { styles } = props;\n const SHeader = Root;\n return sstyled(styles)(\n <SHeader render={Modal.Title} />,\n );\n}\n\nconst FeedbackRating = createComponent<'form', FeedbackRatingProps, {}, typeof FeedbackRatingRoot.enhance>(FeedbackRatingRoot, {\n Header,\n Item: FeedbackItem,\n Checkbox: CheckboxButton,\n Submit: SubmitButton,\n}) as Intergalactic.Component<'form', FeedbackRatingProps, {}, typeof FeedbackRatingRoot.enhance> & {\n validate: typeof FeedbackRatingRoot.validate;\n Item: Intergalactic.Component<'div', FeedbackRatingItemProps>;\n Submit: typeof Button;\n Checkbox: Intergalactic.Component<typeof Checkbox, FeedbackRatingCheckboxProps>;\n Header: typeof Text;\n};\n\nexport default FeedbackRating;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FeedbackRating.js","names":["_core","require","_baseComponents","_i18nEnhance","_interopRequireDefault","_uniqueID","_m","_m2","_Feedback","_input","_link","_modal","_notice","_noticeBubble","_spinContainer","_textarea","_typography","_finalFormFocus","_react","_reactFinalForm","_intergalacticDynamicLocales","_CheckboxButton","_FeedbackItem","_SliderRating","_SubmitButton","style","sstyled","insert","FeedbackRatingRoot","Component","constructor","args","_defineProperty2","default","error","NoticeBubbleManager","createFocusDecorator","rating","asProps","onVisibleChange","fn","_value","e","config","index","initialValue","props","initialValues","key","createElement","Field","name","type","input","FeedbackRating","Checkbox","_extends2","id","label","onChange","_checked","focused","Text","mb","size","isDescriptionReactFragment","description","React","Fragment","Flex","direction","tag","mt","htmlFor","Item","validate","placement","flip","fallbackPlacements","undefined","h","handleChange","autoComplete","state","Value","Box","color","headerId","uid","getHeaderProps","getItemProps","validateOnBlur","getNoticeTextId","componentDidUpdate","prevProps","status","getI18nText","setState","setTimeout","manager","add","icon","children","initialAnimation","duration","render","_ref","_ref2","_ref4","header","submitText","formConfig","notificationText","notificationTitle","learnMoreLink","Children","_Children","styles","forwardRef","theme","background","visible","_onVisibleChange","notificationVisible","onNotificationClose","errorFeedbackEmail","modalWidth","Illustration","Notice","NoticeComponent","other","SFeedbackRating","Modal","checkboxFields","filter","item","textFields","notificationId","assignProps","cn","Label","mr","Content","Title","gap","alignItems","Actions","handleChangeRating","Close","onClick","handelCloseModal","Form","focusDecorator","api","_ref5","submitting","Header","handleSubmit","map","formConfigItem","renderCheckbox","renderTextField","email","Submit","loading","NoticeBubbleContainer","i18nEnhance","localizedMessages","uniqueIDEnhancement","onSubmit","i18n","locale","FeedbackIllustration","SemcoreNotice","value","words","split","symbols","join","Boolean","length","test","String","toLowerCase","_ref3","arguments[0]","_ref6","SHeader","createComponent","FeedbackItem","CheckboxButton","SubmitButton","_default","exports"],"sources":["../../../../src/component/feedback-rating/FeedbackRating.tsx"],"sourcesContent":["import { Box, Flex } from '@semcore/base-components';\nimport type Button from '@semcore/button';\nimport type Checkbox from '@semcore/checkbox';\nimport { createComponent, Component, sstyled, Root } from '@semcore/core';\nimport type { Intergalactic } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport CheckM from '@semcore/icon/Check/m';\nimport WarnM from '@semcore/icon/Warning/m';\nimport FeedbackIllustration from '@semcore/illustration/Feedback';\nimport Input from '@semcore/input';\nimport Link from '@semcore/link';\nimport Modal from '@semcore/modal';\nimport { default as SemcoreNotice } from '@semcore/notice';\nimport { NoticeBubbleContainer, NoticeBubbleManager } from '@semcore/notice-bubble';\nimport SpinContainer from '@semcore/spin-container';\nimport Textarea from '@semcore/textarea';\nimport { Text } from '@semcore/typography';\nimport createFocusDecorator from 'final-form-focus';\nimport React, { type ReactElement } from 'react';\nimport { Field, Form } from 'react-final-form';\n\nimport type {\n FeedbackRatingCheckboxProps,\n FeedbackRatingItemProps,\n FeedbackRatingProps,\n FormConfigItem,\n FeedbackRatingDefaultProps,\n} from './FeedbackRating.type';\nimport style from '../../style/feedback-rating.shadow.css';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\nimport CheckboxButton from '../checkbox-button/CheckboxButton';\nimport { FeedbackItem } from '../feedback-item/FeedbackItem';\nimport SliderRating from '../slider-rating/SliderRating';\nimport { SubmitButton } from '../submit-button/SubmitButton';\n\ntype State = {\n error: boolean;\n};\n\nclass FeedbackRatingRoot extends Component<\n FeedbackRatingProps,\n typeof FeedbackRatingRoot.enhance,\n {},\n FeedbackRatingDefaultProps,\n State\n> {\n static displayName = 'FeedbackRatingForm';\n static style = style;\n\n static enhance = [i18nEnhance(localizedMessages), uniqueIDEnhancement()] as const;\n\n static defaultProps: FeedbackRatingDefaultProps = {\n onSubmit: () => {},\n i18n: localizedMessages,\n locale: 'en',\n Illustration: FeedbackIllustration,\n Notice: SemcoreNotice,\n };\n\n static validate = {\n description: (error: Error | string) => (value = '') => {\n const words = value.split(/\\s+/);\n const symbols = words.join(' ');\n if (Boolean(value) && (symbols.length < 10 || words.length < 3)) {\n return error;\n }\n },\n email: (error: Error | string) => (value = '') => {\n if (Boolean(value) && !/.+@.+\\..+/i.test(String(value).toLowerCase())) {\n return error;\n }\n },\n };\n\n state: State = {\n error: false,\n };\n\n manager = new NoticeBubbleManager();\n\n private focusDecorator = createFocusDecorator<Record<string, any>>();\n\n get headerId() {\n const { uid } = this.asProps;\n\n return `${uid}-feedback-rating-header`;\n }\n\n getHeaderProps() {\n return {\n id: this.headerId,\n };\n }\n\n getItemProps() {\n const { validateOnBlur } = this.asProps;\n\n return {\n validateOnBlur,\n };\n }\n\n getNoticeTextId() {\n const { uid } = this.asProps;\n return `${uid}-feedback-rating-notice`;\n }\n\n handleChangeRating = (rating: number) => {\n if (rating > 0) {\n this.asProps.onVisibleChange(true, rating);\n }\n };\n\n handelCloseModal = () => {\n this.asProps.onVisibleChange(false, this.asProps.rating);\n };\n\n handleChange =\n (fn: (e: React.SyntheticEvent) => void) => (_value: any, e: React.SyntheticEvent) => {\n fn(e);\n };\n\n componentDidUpdate(prevProps: Readonly<FeedbackRatingProps>) {\n const { status, getI18nText } = this.asProps;\n\n if (prevProps.status !== status) {\n this.setState({ error: false });\n\n if (status === 'success') {\n // showing notice with delay for SR, less than 100ms is not enough\n setTimeout(() => {\n this.manager.add({\n icon: <CheckM color='green-400' />,\n children: getI18nText('successMessage'),\n initialAnimation: true,\n duration: 5000,\n });\n }, 300);\n } else if (status === 'error') {\n this.setState({ error: true });\n }\n }\n }\n\n renderCheckbox = (config: FormConfigItem, index: number) => {\n const initialValue = this.props.initialValues[config.key];\n\n return (\n <Field name={config.key} initialValue={initialValue} type='checkbox' key={config.key}>\n {({ input }) => (\n <FeedbackRating.Checkbox\n {...input}\n id={config.key}\n label={config.label}\n onChange={(_checked, e) => input.onChange(e)}\n focused={index === 0}\n />\n )}\n </Field>\n );\n };\n\n renderTextField = (config: FormConfigItem) => {\n const initialValue = this.props.initialValues[config.key];\n\n const label =\n typeof config.label === 'string'\n ? (\n <Text mb={2} size={200}>\n {config.label}\n </Text>\n )\n : (\n (config.label as unknown as JSX.Element)\n );\n\n const isDescriptionReactFragment =\n (config.description as ReactElement)?.type === React.Fragment;\n\n return (\n <Flex key={config.key} direction='column'>\n <Flex tag='label' mt={4} htmlFor={config.key}>\n {label}\n </Flex>\n\n <FeedbackRating.Item\n name={config.key}\n validate={config.validate}\n initialValue={initialValue}\n placement='left-start'\n flip={{\n fallbackPlacements: ['right-start', 'bottom'],\n }}\n aria-describedby={config.description ? config.key + '-description' : undefined}\n >\n {/* @ts-ignore */}\n {({ input }) => {\n if (config.type === 'textarea') {\n return (\n <Textarea\n {...input}\n h={80}\n onChange={this.handleChange(input.onChange)}\n id={config.key}\n />\n );\n }\n if (config.type === 'input' || config.type === 'email') {\n if (config.type === 'email') {\n input.autoComplete = 'email';\n input.type = 'email';\n }\n\n return (\n <Input state={input.state}>\n <Input.Value\n {...input}\n onChange={this.handleChange(input.onChange)}\n id={config.key}\n />\n </Input>\n );\n }\n return null;\n }}\n </FeedbackRating.Item>\n {config.description && (\n <Box mt={2}>\n {typeof config.description === 'string' || isDescriptionReactFragment\n ? (\n <Text size={200} color='text-secondary' id={config.key + '-description'}>\n {config.description}\n </Text>\n )\n : (\n config.description\n )}\n </Box>\n )}\n </Flex>\n );\n };\n\n render() {\n const {\n header,\n submitText,\n formConfig,\n notificationText,\n notificationTitle,\n learnMoreLink,\n Children: _Children,\n styles,\n forwardRef,\n status,\n theme,\n background,\n rating,\n visible,\n onVisibleChange: _onVisibleChange,\n notificationVisible,\n onNotificationClose,\n getI18nText,\n errorFeedbackEmail,\n modalWidth,\n Illustration,\n Notice: NoticeComponent,\n ...other\n } = this.asProps;\n\n const SFeedbackRating = Root;\n const checkboxFields = formConfig.filter((item) => item.type === 'checkbox');\n const textFields = formConfig.filter(\n (item) => item.type === 'textarea' || item.type === 'input' || item.type === 'email',\n );\n const notificationId = this.getNoticeTextId();\n\n return sstyled(styles)(\n <Root render={Box}>\n <NoticeComponent\n visible={notificationVisible}\n aria-label={getI18nText('leaveFeedback')}\n tag={Flex}\n alignItems={notificationTitle ? 'flex-start' : 'center'}\n >\n <NoticeComponent.Label mr={3} aria-hidden={true}>\n <Illustration />\n </NoticeComponent.Label>\n <NoticeComponent.Content>\n {notificationTitle ? <NoticeComponent.Title>{notificationTitle}</NoticeComponent.Title> : null}\n <NoticeComponent.Text gap={3} tag={Flex} alignItems={notificationTitle ? 'flex-start' : 'center'}>\n <Text id={notificationId}>\n {notificationText}\n </Text>\n <NoticeComponent.Actions mt={0}>\n <SliderRating\n value={rating}\n onChange={this.handleChangeRating}\n aria-labelledby={notificationId}\n />\n </NoticeComponent.Actions>\n {learnMoreLink && (\n <Link href={learnMoreLink}>\n {getI18nText('learnMore')}\n </Link>\n )}\n </NoticeComponent.Text>\n </NoticeComponent.Content>\n <NoticeComponent.Close onClick={onNotificationClose} />\n </NoticeComponent>\n\n <SFeedbackRating\n render={Modal}\n visible={visible}\n onClose={this.handelCloseModal}\n p={0}\n use:w={modalWidth ?? 440}\n aria-labelledby={this.headerId}\n >\n <Form decorators={[this.focusDecorator]} {...other}>\n {(api) =>\n sstyled(styles)(\n <SpinContainer\n background={background}\n theme={theme}\n size='xl'\n loading={status !== 'loading' ? api.submitting : status === 'loading'}\n p={1}\n m={9}\n >\n <Flex justifyContent='center'>\n <SliderRating value={rating} readonly={true} />\n </Flex>\n\n {(header as ReactElement)?.type === FeedbackRating.Header\n ? (\n header\n )\n : (\n <FeedbackRating.Header>{header}</FeedbackRating.Header>\n )}\n\n <Box\n tag='form'\n noValidate\n method='POST'\n ref={forwardRef}\n {...other}\n onSubmit={api.handleSubmit}\n >\n <Field name='rating' initialValue={rating}>\n {({ input }) => <input {...input} type='hidden' />}\n </Field>\n\n <div role='group' aria-labelledby={this.headerId}>\n {checkboxFields.map((formConfigItem, index) =>\n this.renderCheckbox(formConfigItem, index),\n )}\n </div>\n\n {textFields.map((formConfigItem) => this.renderTextField(formConfigItem))}\n\n {this.state.error && (\n <SemcoreNotice theme='warning' mt={4} mb={4}>\n <SemcoreNotice.Label>\n <WarnM />\n </SemcoreNotice.Label>\n <SemcoreNotice.Content>\n {getI18nText('errorMessage', {\n // todo: Brauer Ilia - think how to fix type\n // @ts-ignore\n email: (\n <Link href={`mailto:${errorFeedbackEmail}`}>\n {errorFeedbackEmail}\n </Link>\n ),\n })}\n </SemcoreNotice.Content>\n </SemcoreNotice>\n )}\n\n <Flex mt={4} justifyContent='center'>\n <FeedbackRating.Submit\n loading={status !== 'loading' ? api.submitting : status === 'loading'}\n size='l'\n >\n {submitText ?? getI18nText('submitButton')}\n </FeedbackRating.Submit>\n </Flex>\n </Box>\n </SpinContainer>,\n )}\n </Form>\n </SFeedbackRating>\n\n <NoticeBubbleContainer manager={this.manager} />\n </Root>,\n );\n }\n}\n\nfunction Header(props: any) {\n const { styles } = props;\n const SHeader = Root;\n return sstyled(styles)(\n <SHeader render={Modal.Title} />,\n );\n}\n\nconst FeedbackRating = createComponent<'form', FeedbackRatingProps, {}, typeof FeedbackRatingRoot.enhance>(FeedbackRatingRoot, {\n Header,\n Item: FeedbackItem,\n Checkbox: CheckboxButton,\n Submit: SubmitButton,\n}) as Intergalactic.Component<'form', FeedbackRatingProps, {}, typeof FeedbackRatingRoot.enhance> & {\n validate: typeof FeedbackRatingRoot.validate;\n Item: Intergalactic.Component<'div', FeedbackRatingItemProps>;\n Submit: typeof Button;\n Checkbox: Intergalactic.Component<typeof Checkbox, FeedbackRatingCheckboxProps>;\n Header: typeof Text;\n};\n\nexport default FeedbackRating;\n"],"mappings":";;;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAHA,IAAAC,eAAA,GAAAD,OAAA;AAKA,IAAAE,YAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,SAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,EAAA,GAAAF,sBAAA,CAAAH,OAAA;AACA,IAAAM,GAAA,GAAAH,sBAAA,CAAAH,OAAA;AACA,IAAAO,SAAA,GAAAJ,sBAAA,CAAAH,OAAA;AACA,IAAAQ,MAAA,GAAAL,sBAAA,CAAAH,OAAA;AACA,IAAAS,KAAA,GAAAN,sBAAA,CAAAH,OAAA;AACA,IAAAU,MAAA,GAAAP,sBAAA,CAAAH,OAAA;AACA,IAAAW,OAAA,GAAAR,sBAAA,CAAAH,OAAA;AACA,IAAAY,aAAA,GAAAZ,OAAA;AACA,IAAAa,cAAA,GAAAV,sBAAA,CAAAH,OAAA;AACA,IAAAc,SAAA,GAAAX,sBAAA,CAAAH,OAAA;AACA,IAAAe,WAAA,GAAAf,OAAA;AACA,IAAAgB,eAAA,GAAAb,sBAAA,CAAAH,OAAA;AACA,IAAAiB,MAAA,GAAAd,sBAAA,CAAAH,OAAA;AACA,IAAAkB,eAAA,GAAAlB,OAAA;AAUA,IAAAmB,4BAAA,GAAAnB,OAAA;AACA,IAAAoB,eAAA,GAAAjB,sBAAA,CAAAH,OAAA;AACA,IAAAqB,aAAA,GAAArB,OAAA;AACA,IAAAsB,aAAA,GAAAnB,sBAAA,CAAAH,OAAA;AACA,IAAAuB,aAAA,GAAAvB,OAAA;AAA6D;AAAA,MAAAwB,KAAA,8BAAAzB,KAAA,CAAA0B,OAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;AAAA;AAM7D,MAAMC,kBAAkB,SAASC,eAAS,CAMxC;EAAAC,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,iBA6Be;MACbC,KAAK,EAAE;IACT,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,mBAES,IAAIE,iCAAmB,CAAC,CAAC;IAAA,IAAAH,gBAAA,CAAAC,OAAA,0BAEV,IAAAG,uBAAoB,EAAsB,CAAC;IAAA,IAAAJ,gBAAA,CAAAC,OAAA,8BA2B9CI,MAAc,IAAK;MACvC,IAAIA,MAAM,GAAG,CAAC,EAAE;QACd,IAAI,CAACC,OAAO,CAACC,eAAe,CAAC,IAAI,EAAEF,MAAM,CAAC;MAC5C;IACF,CAAC;IAAA,IAAAL,gBAAA,CAAAC,OAAA,4BAEkB,MAAM;MACvB,IAAI,CAACK,OAAO,CAACC,eAAe,CAAC,KAAK,EAAE,IAAI,CAACD,OAAO,CAACD,MAAM,CAAC;IAC1D,CAAC;IAAA,IAAAL,gBAAA,CAAAC,OAAA,wBAGEO,EAAqC,IAAK,CAACC,MAAW,EAAEC,CAAuB,KAAK;MACnFF,EAAE,CAACE,CAAC,CAAC;IACP,CAAC;IAAA,IAAAV,gBAAA,CAAAC,OAAA,0BAwBc,CAACU,MAAsB,EAAEC,KAAa,KAAK;MAC1D,MAAMC,YAAY,GAAG,IAAI,CAACC,KAAK,CAACC,aAAa,CAACJ,MAAM,CAACK,GAAG,CAAC;MAEzD,oBACE9B,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAAC9B,eAAA,CAAA+B,KAAK;QAACC,IAAI,EAAER,MAAM,CAACK,GAAI;QAACH,YAAY,EAAEA,YAAa;QAACO,IAAI,EAAC,UAAU;QAACJ,GAAG,EAAEL,MAAM,CAACK;MAAI,GAClF,CAAC;QAAEK;MAAM,CAAC,kBACTnC,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACK,cAAc,CAACC,QAAQ,MAAAC,SAAA,CAAAvB,OAAA,MAClBoB,KAAK;QACTI,EAAE,EAAEd,MAAM,CAACK,GAAI;QACfU,KAAK,EAAEf,MAAM,CAACe,KAAM;QACpBC,QAAQ,EAAEA,CAACC,QAAQ,EAAElB,CAAC,KAAKW,KAAK,CAACM,QAAQ,CAACjB,CAAC,CAAE;QAC7CmB,OAAO,EAAEjB,KAAK,KAAK;MAAE,EACtB,CAEE,CAAC;IAEZ,CAAC;IAAA,IAAAZ,gBAAA,CAAAC,OAAA,2BAEkBU,MAAsB,IAAK;MAC5C,MAAME,YAAY,GAAG,IAAI,CAACC,KAAK,CAACC,aAAa,CAACJ,MAAM,CAACK,GAAG,CAAC;MAEzD,MAAMU,KAAK,GACT,OAAOf,MAAM,CAACe,KAAK,KAAK,QAAQ,gBAE1BxC,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACjC,WAAA,CAAA8C,IAAI;QAACC,EAAE,EAAE,CAAE;QAACC,IAAI,EAAE;MAAI,GACpBrB,MAAM,CAACe,KACJ,CAAC,GAGNf,MAAM,CAACe,KACT;MAEP,MAAMO,0BAA0B,GAC7BtB,MAAM,CAACuB,WAAW,EAAmBd,IAAI,KAAKe,cAAK,CAACC,QAAQ;MAE/D,oBACElD,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAAC/C,eAAA,CAAAmE,IAAI;QAACrB,GAAG,EAAEL,MAAM,CAACK,GAAI;QAACsB,SAAS,EAAC;MAAQ,gBACvCpD,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAAC/C,eAAA,CAAAmE,IAAI;QAACE,GAAG,EAAC,OAAO;QAACC,EAAE,EAAE,CAAE;QAACC,OAAO,EAAE9B,MAAM,CAACK;MAAI,GAC1CU,KACG,CAAC,eAEPxC,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACK,cAAc,CAACoB,IAAI;QAClBvB,IAAI,EAAER,MAAM,CAACK,GAAI;QACjB2B,QAAQ,EAAEhC,MAAM,CAACgC,QAAS;QAC1B9B,YAAY,EAAEA,YAAa;QAC3B+B,SAAS,EAAC,YAAY;QACtBC,IAAI,EAAE;UACJC,kBAAkB,EAAE,CAAC,aAAa,EAAE,QAAQ;QAC9C,CAAE;QACF,oBAAkBnC,MAAM,CAACuB,WAAW,GAAGvB,MAAM,CAACK,GAAG,GAAG,cAAc,GAAG+B;MAAU,GAG9E,CAAC;QAAE1B;MAAM,CAAC,KAAK;QACd,IAAIV,MAAM,CAACS,IAAI,KAAK,UAAU,EAAE;UAC9B,oBACElC,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAAClC,SAAA,CAAAkB,OAAQ,MAAAuB,SAAA,CAAAvB,OAAA,MACHoB,KAAK;YACT2B,CAAC,EAAE,EAAG;YACNrB,QAAQ,EAAE,IAAI,CAACsB,YAAY,CAAC5B,KAAK,CAACM,QAAQ,CAAE;YAC5CF,EAAE,EAAEd,MAAM,CAACK;UAAI,EAChB,CAAC;QAEN;QACA,IAAIL,MAAM,CAACS,IAAI,KAAK,OAAO,IAAIT,MAAM,CAACS,IAAI,KAAK,OAAO,EAAE;UACtD,IAAIT,MAAM,CAACS,IAAI,KAAK,OAAO,EAAE;YAC3BC,KAAK,CAAC6B,YAAY,GAAG,OAAO;YAC5B7B,KAAK,CAACD,IAAI,GAAG,OAAO;UACtB;UAEA,oBACElC,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACxC,MAAA,CAAAwB,OAAK;YAACkD,KAAK,EAAE9B,KAAK,CAAC8B;UAAM,gBACxBjE,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACxC,MAAA,CAAAwB,OAAK,CAACmD,KAAK,MAAA5B,SAAA,CAAAvB,OAAA,MACNoB,KAAK;YACTM,QAAQ,EAAE,IAAI,CAACsB,YAAY,CAAC5B,KAAK,CAACM,QAAQ,CAAE;YAC5CF,EAAE,EAAEd,MAAM,CAACK;UAAI,EAChB,CACI,CAAC;QAEZ;QACA,OAAO,IAAI;MACb,CACmB,CAAC,EACrBL,MAAM,CAACuB,WAAW,iBACjBhD,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAAC/C,eAAA,CAAAmF,GAAG;QAACb,EAAE,EAAE;MAAE,GACR,OAAO7B,MAAM,CAACuB,WAAW,KAAK,QAAQ,IAAID,0BAA0B,gBAE/D/C,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACjC,WAAA,CAAA8C,IAAI;QAACE,IAAI,EAAE,GAAI;QAACsB,KAAK,EAAC,gBAAgB;QAAC7B,EAAE,EAAEd,MAAM,CAACK,GAAG,GAAG;MAAe,GACrEL,MAAM,CAACuB,WACJ,CAAC,GAGPvB,MAAM,CAACuB,WAEV,CAEH,CAAC;IAEX,CAAC;EAAA;EA/JD,IAAIqB,QAAQA,CAAA,EAAG;IACb,MAAM;MAAEC;IAAI,CAAC,GAAG,IAAI,CAAClD,OAAO;IAE5B,OAAO,GAAGkD,GAAG,yBAAyB;EACxC;EAEAC,cAAcA,CAAA,EAAG;IACf,OAAO;MACLhC,EAAE,EAAE,IAAI,CAAC8B;IACX,CAAC;EACH;EAEAG,YAAYA,CAAA,EAAG;IACb,MAAM;MAAEC;IAAe,CAAC,GAAG,IAAI,CAACrD,OAAO;IAEvC,OAAO;MACLqD;IACF,CAAC;EACH;EAEAC,eAAeA,CAAA,EAAG;IAChB,MAAM;MAAEJ;IAAI,CAAC,GAAG,IAAI,CAAClD,OAAO;IAC5B,OAAO,GAAGkD,GAAG,yBAAyB;EACxC;EAiBAK,kBAAkBA,CAACC,SAAwC,EAAE;IAC3D,MAAM;MAAEC,MAAM;MAAEC;IAAY,CAAC,GAAG,IAAI,CAAC1D,OAAO;IAE5C,IAAIwD,SAAS,CAACC,MAAM,KAAKA,MAAM,EAAE;MAC/B,IAAI,CAACE,QAAQ,CAAC;QAAE/D,KAAK,EAAE;MAAM,CAAC,CAAC;MAE/B,IAAI6D,MAAM,KAAK,SAAS,EAAE;QACxB;QACAG,UAAU,CAAC,MAAM;UACf,IAAI,CAACC,OAAO,CAACC,GAAG,CAAC;YACfC,IAAI,eAAEnF,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAAC3C,EAAA,CAAA2B,OAAM;cAACqD,KAAK,EAAC;YAAW,CAAE,CAAC;YAClCgB,QAAQ,EAAEN,WAAW,CAAC,gBAAgB,CAAC;YACvCO,gBAAgB,EAAE,IAAI;YACtBC,QAAQ,EAAE;UACZ,CAAC,CAAC;QACJ,CAAC,EAAE,GAAG,CAAC;MACT,CAAC,MAAM,IAAIT,MAAM,KAAK,OAAO,EAAE;QAC7B,IAAI,CAACE,QAAQ,CAAC;UAAE/D,KAAK,EAAE;QAAK,CAAC,CAAC;MAChC;IACF;EACF;EAqGAuE,MAAMA,CAAA,EAAG;IAAA,IAAAC,IAAA,QAAApE,OAAA;MAAAqE,KAAA,QAAArE,OAAA;MAAAsE,KAAA;IACP,MAAM;MACJC,MAAM;MACNC,UAAU;MACVC,UAAU;MACVC,gBAAgB;MAChBC,iBAAiB;MACjBC,aAAa;MACbC,QAAQ,EAAEC,SAAS;MACnBC,MAAM;MACNC,UAAU;MACVvB,MAAM;MACNwB,KAAK;MACLC,UAAU;MACVnF,MAAM;MACNoF,OAAO;MACPlF,eAAe,EAAEmF,gBAAgB;MACjCC,mBAAmB;MACnBC,mBAAmB;MACnB5B,WAAW;MACX6B,kBAAkB;MAClBC,UAAU;MACVC,YAAY;MACZC,MAAM,EAAEC,eAAe;MACvB,GAAGC;IACL,CAAC,GAAG,IAAI,CAAC5F,OAAO;IAEhB,MAAM6F,eAAe,GA0CPC,cAAK;IAzCnB,MAAMC,cAAc,GAAGtB,UAAU,CAACuB,MAAM,CAAEC,IAAI,IAAKA,IAAI,CAACnF,IAAI,KAAK,UAAU,CAAC;IAC5E,MAAMoF,UAAU,GAAGzB,UAAU,CAACuB,MAAM,CACjCC,IAAI,IAAKA,IAAI,CAACnF,IAAI,KAAK,UAAU,IAAImF,IAAI,CAACnF,IAAI,KAAK,OAAO,IAAImF,IAAI,CAACnF,IAAI,KAAK,OAC/E,CAAC;IACD,MAAMqF,cAAc,GAAG,IAAI,CAAC7C,eAAe,CAAC,CAAC;IAE7C,OAAAgB,KAAA,GAAO,IAAAlF,aAAO,EAAC2F,MAAM,CAAC,eACpBnG,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAAcoC,mBAAG,MAAArF,KAAA,CAAA0I,WAAA,MAAA/B,KAAA,gBACfzF,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACgF,eAAe,EAAArB,KAAA,CAAA+B,EAAA;MAAA,WACLhB,mBAAmB;MAAA,cAChB3B,WAAW,CAAC,eAAe,CAAC;MAAA,OACnC3B,oBAAI;MAAA,cACG4C,iBAAiB,GAAG,YAAY,GAAG;IAAQ,iBAEvD/F,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACgF,eAAe,CAACW,KAAK;MAACC,EAAE,EAAE,CAAE;MAAC,eAAa;IAAK,gBAC9C3H,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAAC8E,YAAY,EAAAnB,KAAA,CAAA+B,EAAA,oBAAE,CACM,CAAC,eACxBzH,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACgF,eAAe,CAACa,OAAO,QACrB7B,iBAAiB,gBAAG/F,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACgF,eAAe,CAACc,KAAK,QAAE9B,iBAAyC,CAAC,GAAG,IAAI,eAC9F/F,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACgF,eAAe,CAACnE,IAAI;MAACkF,GAAG,EAAE,CAAE;MAACzE,GAAG,EAAEF,oBAAK;MAAC4E,UAAU,EAAEhC,iBAAiB,GAAG,YAAY,GAAG;IAAS,gBAC/F/F,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACjC,WAAA,CAAA8C,IAAI,EAAA8C,KAAA,CAAA+B,EAAA;MAAA,MAAKF;IAAc,IACrBzB,gBACG,CAAC,eACP9F,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACgF,eAAe,CAACiB,OAAO;MAAC1E,EAAE,EAAE;IAAE,gBAC7BtD,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAAC1B,aAAA,CAAAU,OAAY,EAAA2E,KAAA,CAAA+B,EAAA;MAAA,SACJtG,MAAM;MAAA,YACH,IAAI,CAAC8G,kBAAkB;MAAA,mBAChBV;IAAc,EAChC,CACsB,CAAC,EACzBvB,aAAa,iBACZhG,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACvC,KAAA,CAAAuB,OAAI,EAAA2E,KAAA,CAAA+B,EAAA;MAAA,QAAOzB;IAAa,IACtBlB,WAAW,CAAC,WAAW,CACpB,CAEY,CACC,CAAC,eAC1B9E,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACgF,eAAe,CAACmB,KAAK;MAACC,OAAO,EAAEzB;IAAoB,CAAE,CACvC,CAAC,eAElB1G,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACkF,eAAe,EAAAvB,KAAA,CAAA+B,EAAA;MAAA,OAAA3I,KAAA,CAAA0I,WAAA;QAAA,WAELjB,OAAO;QAAA,WACP,IAAI,CAAC6B,gBAAgB;QAAA,KAC3B,CAAC;QAAA,SACGxB,UAAU,IAAI,GAAG;QAAA,mBACP,IAAI,CAACvC;MAAQ,GAAAmB,IAAA;IAAA,iBAE9BxF,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAAC9B,eAAA,CAAAoI,IAAI,EAAA3C,KAAA,CAAA+B,EAAA;MAAA,cAAa,CAAC,IAAI,CAACa,cAAc,CAAC;MAAA,GAAMtB;IAAK,IAC9CuB,GAAG;MAAA,IAAAC,KAAA;MAAA,OAAAA,KAAA,GACH,IAAAhI,aAAO,EAAC2F,MAAM,CAAC,eACbnG,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACnC,cAAA,CAAAmB,OAAa,EAAAyH,KAAA,CAAAf,EAAA;QAAA,cACAnB,UAAU;QAAA,SACfD,KAAK;QAAA,QACP,IAAI;QAAA,WACAxB,MAAM,KAAK,SAAS,GAAG0D,GAAG,CAACE,UAAU,GAAG5D,MAAM,KAAK,SAAS;QAAA,KAClE,CAAC;QAAA,KACD;MAAC,iBAEJ7E,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAAC/C,eAAA,CAAAmE,IAAI,EAAAqF,KAAA,CAAAf,EAAA;QAAA,kBAAgB;MAAQ,iBAC3BzH,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAAC1B,aAAA,CAAAU,OAAY,EAAAyH,KAAA,CAAAf,EAAA;QAAA,SAAQtG,MAAM;QAAA,YAAY;MAAI,EAAG,CAC1C,CAAC,EAELwE,MAAM,EAAmBzD,IAAI,KAAKE,cAAc,CAACsG,MAAM,GAEnD/C,MAAM,gBAGN3F,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACK,cAAc,CAACsG,MAAM,QAAE/C,MAA8B,CACvD,eAEL3F,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAAC/C,eAAA,CAAAmF,GAAG,EAAAqE,KAAA,CAAAf,EAAA;QAAA,OACE,MAAM;QAAA;QAAA,UAEH,MAAM;QAAA,OACRrB,UAAU;QAAA,GACXY,KAAK;QAAA,YACCuB,GAAG,CAACI;MAAY,iBAE1B3I,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAAC9B,eAAA,CAAA+B,KAAK,EAAAwG,KAAA,CAAAf,EAAA;QAAA,QAAM,QAAQ;QAAA,gBAAetG;MAAM,IACtC,CAAC;QAAEgB;MAAM,CAAC,kBAAKnC,MAAA,CAAAe,OAAA,CAAAgB,aAAA,cAAAO,SAAA,CAAAvB,OAAA,MAAWoB,KAAK;QAAED,IAAI,EAAC;MAAQ,EAAE,CAC5C,CAAC,eAERlC,MAAA,CAAAe,OAAA,CAAAgB,aAAA,QAAAyG,KAAA,CAAAf,EAAA;QAAA,QAAU,OAAO;QAAA,mBAAkB,IAAI,CAACpD;MAAQ,IAC7C8C,cAAc,CAACyB,GAAG,CAAC,CAACC,cAAc,EAAEnH,KAAK,KACxC,IAAI,CAACoH,cAAc,CAACD,cAAc,EAAEnH,KAAK,CAC3C,CACG,CAAC,EAEL4F,UAAU,CAACsB,GAAG,CAAEC,cAAc,IAAK,IAAI,CAACE,eAAe,CAACF,cAAc,CAAC,CAAC,EAExE,IAAI,CAAC5E,KAAK,CAACjD,KAAK,iBACfhB,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACrC,OAAA,CAAAqB,OAAa,EAAAyH,KAAA,CAAAf,EAAA;QAAA,SAAO,SAAS;QAAA,MAAK,CAAC;QAAA,MAAM;MAAC,iBACzCzH,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACrC,OAAA,CAAAqB,OAAa,CAAC2G,KAAK,qBAClB1H,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAAC1C,GAAA,CAAA0B,OAAK,EAAAyH,KAAA,CAAAf,EAAA,aAAE,CACW,CAAC,eACtBzH,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACrC,OAAA,CAAAqB,OAAa,CAAC6G,OAAO,QACnB9C,WAAW,CAAC,cAAc,EAAE;QAC3B;QACA;QACAkE,KAAK,eACHhJ,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACvC,KAAA,CAAAuB,OAAI,EAAAyH,KAAA,CAAAf,EAAA;UAAA,QAAO,UAAUd,kBAAkB;QAAE,IACvCA,kBACG;MAEV,CAAC,CACoB,CACV,CAChB,eAED3G,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAAC/C,eAAA,CAAAmE,IAAI,EAAAqF,KAAA,CAAAf,EAAA;QAAA,MAAK,CAAC;QAAA,kBAAiB;MAAQ,iBAClCzH,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACK,cAAc,CAAC6G,MAAM;QACpBC,OAAO,EAAErE,MAAM,KAAK,SAAS,GAAG0D,GAAG,CAACE,UAAU,GAAG5D,MAAM,KAAK,SAAU;QACtE/B,IAAI,EAAC;MAAG,GAEP8C,UAAU,IAAId,WAAW,CAAC,cAAc,CACpB,CACnB,CACH,CACQ,CAAC;IAAA,CAEhB,CACS,CAAC,eAElB9E,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAACpC,aAAA,CAAAwJ,qBAAqB,EAAAzD,KAAA,CAAA+B,EAAA;MAAA,WAAU,IAAI,CAACxC;IAAO,EAAG,CAC3C,CAAC;EAEX;AACF;AAAC,IAAAnE,gBAAA,CAAAC,OAAA,EAxWKL,kBAAkB,iBAOD,oBAAoB;AAAA,IAAAI,gBAAA,CAAAC,OAAA,EAPrCL,kBAAkB,WAQPH,KAAK;AAAA,IAAAO,gBAAA,CAAAC,OAAA,EARhBL,kBAAkB,aAUL,CAAC,IAAA0I,oBAAW,EAACC,8CAAiB,CAAC,EAAE,IAAAC,iBAAmB,EAAC,CAAC,CAAC;AAAA,IAAAxI,gBAAA,CAAAC,OAAA,EAVpEL,kBAAkB,kBAY4B;EAChD6I,QAAQ,EAAEA,CAAA,KAAM,CAAC,CAAC;EAClBC,IAAI,EAAEH,8CAAiB;EACvBI,MAAM,EAAE,IAAI;EACZ5C,YAAY,EAAE6C,iBAAoB;EAClC5C,MAAM,EAAE6C;AACV,CAAC;AAAA,IAAA7I,gBAAA,CAAAC,OAAA,EAlBGL,kBAAkB,cAoBJ;EAChBsC,WAAW,EAAGhC,KAAqB,IAAK,CAAC4I,KAAK,GAAG,EAAE,KAAK;IACtD,MAAMC,KAAK,GAAGD,KAAK,CAACE,KAAK,CAAC,KAAK,CAAC;IAChC,MAAMC,OAAO,GAAGF,KAAK,CAACG,IAAI,CAAC,GAAG,CAAC;IAC/B,IAAIC,OAAO,CAACL,KAAK,CAAC,KAAKG,OAAO,CAACG,MAAM,GAAG,EAAE,IAAIL,KAAK,CAACK,MAAM,GAAG,CAAC,CAAC,EAAE;MAC/D,OAAOlJ,KAAK;IACd;EACF,CAAC;EACDgI,KAAK,EAAGhI,KAAqB,IAAK,CAAC4I,KAAK,GAAG,EAAE,KAAK;IAChD,IAAIK,OAAO,CAACL,KAAK,CAAC,IAAI,CAAC,YAAY,CAACO,IAAI,CAACC,MAAM,CAACR,KAAK,CAAC,CAACS,WAAW,CAAC,CAAC,CAAC,EAAE;MACrE,OAAOrJ,KAAK;IACd;EACF;AACF,CAAC;AAyUH,SAAS0H,MAAMA,CAAC9G,KAAU,EAAE;EAAA,IAAA0I,KAAA,GAAAC,YAAA;IAAAC,KAAA;EAC1B,MAAM;IAAErE;EAAO,CAAC,GAAGvE,KAAK;EACxB,MAAM6I,OAAO,GAEMvD,cAAK,CAACW,KAAK;EAD9B,OAAA2C,KAAA,GAAO,IAAAhK,aAAO,EAAC2F,MAAM,CAAC,eACpBnG,MAAA,CAAAe,OAAA,CAAAgB,aAAA,CAAC0I,OAAO,EAAAD,KAAA,CAAA/C,EAAA;IAAA,OAAA3I,KAAA,CAAA0I,WAAA,MAAA8C,KAAA;EAAA,EAAuB,CAAC;AAEpC;AAEA,MAAMlI,cAAc,GAAG,IAAAsI,qBAAe,EAAqEhK,kBAAkB,EAAE;EAC7HgI,MAAM;EACNlF,IAAI,EAAEmH,0BAAY;EAClBtI,QAAQ,EAAEuI,uBAAc;EACxB3B,MAAM,EAAE4B;AACV,CAAC,CAMA;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAhK,OAAA,GAEaqB,cAAc","ignoreList":[]}
@@ -155,12 +155,9 @@ class SliderRatingRoot extends _core.Component {
155
155
  "gap": 1,
156
156
  "role": 'img',
157
157
  "aria-label": label
158
- }, _ref), new Array(MAX).fill(null).map((_, index) => {
159
- return /*#__PURE__*/_react.default.createElement(_baseComponents.Box, {
160
- key: index,
161
- position: "relative"
162
- }, /*#__PURE__*/_react.default.createElement(SliderRating.Star, null));
163
- }));
158
+ }, _ref), new Array(MAX).fill(null).map((_, index) => /*#__PURE__*/_react.default.createElement(SliderRating.Star, {
159
+ key: index
160
+ })));
164
161
  }
165
162
  const hoverValue = hoveredIndex + 1;
166
163
  const editModeLabel = hoverValue > 0 || value ? `${label}. ${getI18nText('FeedbackRating.SliderRating.ScreenReaderOnly.sliderDescriber')}.` : label;
@@ -177,12 +174,9 @@ class SliderRatingRoot extends _core.Component {
177
174
  "aria-valuetext": editModeLabel,
178
175
  "aria-valuenow": hoverValue
179
176
  }, _ref)
180
- }), new Array(MAX).fill(null).map((_, index) => {
181
- return /*#__PURE__*/_react.default.createElement(_baseComponents.Box, {
182
- key: index,
183
- position: "relative"
184
- }, /*#__PURE__*/_react.default.createElement(SliderRating.Star, null));
185
- }));
177
+ }), new Array(MAX).fill(null).map((_, index) => /*#__PURE__*/_react.default.createElement(SliderRating.Star, {
178
+ key: index
179
+ })));
186
180
  }
187
181
  }
188
182
  (0, _defineProperty2.default)(SliderRatingRoot, "displayName", 'SliderRating');
@@ -1 +1 @@
1
- {"version":3,"file":"SliderRating.js","names":["_core","require","_baseComponents","_i18nEnhance","_interopRequireDefault","_uniqueID","_react","_intergalacticDynamicLocales","style","sstyled","insert","MIN","MAX","SliderRatingRoot","Component","constructor","args","_defineProperty2","default","hoveredIndex","clickedIndex","newValue","_e","readonly","asProps","setValue","index","setState","onChange","value","event","includes","key","preventDefault","state","direction","getStarProps","_","filled","onClick","handleClick","onMouseEnter","undefined","handleMouseEnder","hovered","getLabelText","getI18nText","selectedRating","max","render","_ref","_ref3","styles","SSliderRating","Flex","label","createElement","assignProps","Array","fill","map","Box","position","SliderRating","Star","hoverValue","editModeLabel","cn","handleMouseLeave","handleKeyDown","uniqueIDEnhancement","i18nEnhance","localizedMessages","i18n","locale","props","_ref2","arguments[0]","_ref4","SStar","displayName","createComponent","_default","exports"],"sources":["../../../../src/component/slider-rating/SliderRating.tsx"],"sourcesContent":["import { Flex, Box, type BoxProps } from '@semcore/base-components';\nimport { createComponent, Component, Root, sstyled, type Intergalactic } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport React from 'react';\n\nimport style from '../../style/slider-rating.shadow.css';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\n\ntype SliderRatingProps = {\n value: number;\n onChange?: (value: number) => void;\n readonly?: boolean;\n};\n\ntype State = {\n hoveredIndex: number;\n clickedIndex: number;\n};\n\ntype StarProps = BoxProps & {\n filled?: boolean;\n};\n\nconst MIN = 1;\nconst MAX = 5;\n\nclass SliderRatingRoot extends Component<\n SliderRatingProps,\n typeof SliderRatingRoot.enhance,\n {},\n {},\n State\n> {\n static displayName = 'SliderRating';\n static style = style;\n\n static enhance = [uniqueIDEnhancement(), i18nEnhance(localizedMessages)] as const;\n\n state: State = {\n hoveredIndex: -1,\n clickedIndex: -1,\n };\n\n static defaultProps = {\n i18n: localizedMessages,\n locale: 'en',\n };\n\n handleClick = (newValue: number) => (_e: React.SyntheticEvent<SVGElement>) => {\n const { readonly } = this.asProps;\n\n if (!readonly) {\n this.setValue(newValue);\n }\n };\n\n handleMouseEnder = (index: number) => () => {\n this.setState({ hoveredIndex: index });\n };\n\n handleMouseLeave = () => {\n this.setState({ hoveredIndex: -1 });\n };\n\n getStarProps(_: any, index: number) {\n const { value, readonly } = this.asProps;\n const { hoveredIndex } = this.state;\n\n return {\n filled: value ? index + 1 <= value || index <= hoveredIndex : index <= hoveredIndex,\n onClick: this.handleClick(index + 1),\n onMouseEnter: readonly ? undefined : this.handleMouseEnder(index),\n hovered: hoveredIndex === index,\n };\n }\n\n setValue = (newValue: number) => {\n const { onChange, value } = this.asProps;\n\n if (onChange) {\n onChange(newValue);\n }\n\n if (newValue <= value) {\n this.setState({ clickedIndex: newValue, hoveredIndex: -1 });\n } else {\n this.setState({ clickedIndex: -1, hoveredIndex: -1 });\n }\n };\n\n handleKeyDown = (event: React.KeyboardEvent) => {\n if (!['ArrowLeft', 'ArrowRight', 'Enter'].includes(event.key)) return;\n event.preventDefault();\n\n if (event.key === 'Enter') {\n const { hoveredIndex } = this.state;\n\n this.setValue(hoveredIndex + 1);\n } else {\n const { value } = this.asProps;\n const { hoveredIndex } = this.state;\n\n const direction = event.key === 'ArrowLeft' ? -1 : 1;\n let newValue = hoveredIndex === -1 ? value + direction : hoveredIndex + 1 + direction;\n\n if (newValue > MAX) newValue = MAX;\n if (newValue < MIN) newValue = MIN;\n\n this.setState({ hoveredIndex: newValue - 1 });\n }\n };\n\n getLabelText() {\n const { hoveredIndex } = this.state;\n const { readonly, value, getI18nText } = this.asProps;\n\n if (readonly) {\n return getI18nText('FeedbackRating.SliderRating.aria-valuetext.readonly', {\n selectedRating: value,\n max: MAX,\n });\n }\n\n if (value) {\n const selectedRating = hoveredIndex > -1 ? hoveredIndex + 1 : value;\n return getI18nText('FeedbackRating.SliderRating.aria-valuetext', {\n selectedRating: selectedRating,\n max: MAX,\n });\n }\n\n return hoveredIndex === -1\n ? getI18nText('FeedbackRating.SliderRating.aria-valuetext.empty')\n : getI18nText('FeedbackRating.SliderRating.aria-valuetext', {\n selectedRating: hoveredIndex + 1,\n max: MAX,\n });\n }\n\n render() {\n const { styles, readonly, getI18nText, value } = this.asProps;\n const { hoveredIndex } = this.state;\n\n const SSliderRating = Root;\n const label = this.getLabelText();\n\n if (readonly) {\n return (\n <SSliderRating render={Flex} gap={1} role='img' aria-label={label}>\n {new Array(MAX).fill(null).map((_, index) => {\n return (\n <Box key={index} position='relative'>\n <SliderRating.Star />\n </Box>\n );\n })}\n </SSliderRating>\n );\n }\n\n const hoverValue = hoveredIndex + 1;\n\n const editModeLabel =\n hoverValue > 0 || value\n ? `${label}. ${getI18nText(\n 'FeedbackRating.SliderRating.ScreenReaderOnly.sliderDescriber',\n )}.`\n : label;\n\n return sstyled(styles)(\n <SSliderRating\n render={Flex}\n gap={1}\n tabIndex={0}\n onMouseLeave={this.handleMouseLeave}\n onKeyDown={this.handleKeyDown}\n role='slider'\n aria-orientation='horizontal'\n aria-valuemin={MIN}\n aria-valuemax={MAX}\n aria-valuetext={editModeLabel}\n aria-valuenow={hoverValue}\n >\n {new Array(MAX).fill(null).map((_, index) => {\n return (\n <Box key={index} position='relative'>\n <SliderRating.Star />\n </Box>\n );\n })}\n </SSliderRating>,\n );\n }\n}\n\nfunction Star(props: StarProps) {\n const SStar = Root;\n return sstyled(props.styles)(\n <SStar\n render={Box}\n tag='svg'\n role='none'\n width='24'\n height='24'\n viewBox='0 0 24 24'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n {props.filled\n ? (\n <path d='M11.646 1.214a.4.4 0 0 1 .708 0l3.314 6.293 7 1.214a.4.4 0 0 1 .219.673l-4.952 5.104 1.012 7.044a.4.4 0 0 1-.573.416L12 18.818l-6.374 3.14a.4.4 0 0 1-.572-.416l1.01-7.044-4.95-5.104a.4.4 0 0 1 .218-.673l7-1.214 3.314-6.293Z' />\n )\n : (\n <path\n d='M14.358 9.31 12 4.834 9.642 9.31l-4.985.864 3.526 3.634-.72 5.014L12 16.588l4.537 2.235-.72-5.014 3.526-3.634-4.985-.864Zm8.31-.59a.4.4 0 0 1 .219.674l-4.952 5.104 1.012 7.044a.4.4 0 0 1-.573.416L12 18.818l-6.374 3.14a.4.4 0 0 1-.572-.416l1.01-7.044-4.95-5.104a.4.4 0 0 1 .218-.673l7-1.214 3.314-6.293a.4.4 0 0 1 .708 0l3.314 6.293 7 1.214Z'\n fillRule='evenodd'\n clipRule='evenodd'\n />\n )}\n </SStar>,\n );\n}\nStar.displayName = 'Star';\n\nconst SliderRating = createComponent(SliderRatingRoot, {\n Star,\n}) as Intergalactic.Component<typeof Flex, SliderRatingProps> & {\n Star: Intergalactic.Component<typeof Box, StarProps>;\n};\n\nexport default SliderRating;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SliderRating.js","names":["_core","require","_baseComponents","_i18nEnhance","_interopRequireDefault","_uniqueID","_react","_intergalacticDynamicLocales","style","sstyled","insert","MIN","MAX","SliderRatingRoot","Component","constructor","args","_defineProperty2","default","hoveredIndex","clickedIndex","newValue","_e","readonly","asProps","setValue","index","setState","onChange","value","event","includes","key","preventDefault","state","direction","getStarProps","_","filled","onClick","handleClick","onMouseEnter","undefined","handleMouseEnder","hovered","getLabelText","getI18nText","selectedRating","max","render","_ref","_ref3","styles","SSliderRating","Flex","label","createElement","assignProps","Array","fill","map","SliderRating","Star","hoverValue","editModeLabel","cn","handleMouseLeave","handleKeyDown","uniqueIDEnhancement","i18nEnhance","localizedMessages","i18n","locale","props","_ref2","arguments[0]","_ref4","SStar","Box","displayName","createComponent","_default","exports"],"sources":["../../../../src/component/slider-rating/SliderRating.tsx"],"sourcesContent":["import { Flex, Box, type BoxProps } from '@semcore/base-components';\nimport { createComponent, Component, Root, sstyled, type Intergalactic } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport React from 'react';\n\nimport style from '../../style/slider-rating.shadow.css';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\n\ntype SliderRatingProps = {\n value: number;\n onChange?: (value: number) => void;\n readonly?: boolean;\n};\n\ntype State = {\n hoveredIndex: number;\n clickedIndex: number;\n};\n\ntype StarProps = BoxProps & {\n filled?: boolean;\n};\n\nconst MIN = 1;\nconst MAX = 5;\n\nclass SliderRatingRoot extends Component<\n SliderRatingProps,\n typeof SliderRatingRoot.enhance,\n {},\n {},\n State\n> {\n static displayName = 'SliderRating';\n static style = style;\n\n static enhance = [uniqueIDEnhancement(), i18nEnhance(localizedMessages)] as const;\n\n state: State = {\n hoveredIndex: -1,\n clickedIndex: -1,\n };\n\n static defaultProps = {\n i18n: localizedMessages,\n locale: 'en',\n };\n\n handleClick = (newValue: number) => (_e: React.SyntheticEvent<SVGElement>) => {\n const { readonly } = this.asProps;\n\n if (!readonly) {\n this.setValue(newValue);\n }\n };\n\n handleMouseEnder = (index: number) => () => {\n this.setState({ hoveredIndex: index });\n };\n\n handleMouseLeave = () => {\n this.setState({ hoveredIndex: -1 });\n };\n\n getStarProps(_: any, index: number) {\n const { value, readonly } = this.asProps;\n const { hoveredIndex } = this.state;\n\n return {\n filled: value ? index + 1 <= value || index <= hoveredIndex : index <= hoveredIndex,\n onClick: this.handleClick(index + 1),\n onMouseEnter: readonly ? undefined : this.handleMouseEnder(index),\n hovered: hoveredIndex === index,\n };\n }\n\n setValue = (newValue: number) => {\n const { onChange, value } = this.asProps;\n\n if (onChange) {\n onChange(newValue);\n }\n\n if (newValue <= value) {\n this.setState({ clickedIndex: newValue, hoveredIndex: -1 });\n } else {\n this.setState({ clickedIndex: -1, hoveredIndex: -1 });\n }\n };\n\n handleKeyDown = (event: React.KeyboardEvent) => {\n if (!['ArrowLeft', 'ArrowRight', 'Enter'].includes(event.key)) return;\n event.preventDefault();\n\n if (event.key === 'Enter') {\n const { hoveredIndex } = this.state;\n\n this.setValue(hoveredIndex + 1);\n } else {\n const { value } = this.asProps;\n const { hoveredIndex } = this.state;\n\n const direction = event.key === 'ArrowLeft' ? -1 : 1;\n let newValue = hoveredIndex === -1 ? value + direction : hoveredIndex + 1 + direction;\n\n if (newValue > MAX) newValue = MAX;\n if (newValue < MIN) newValue = MIN;\n\n this.setState({ hoveredIndex: newValue - 1 });\n }\n };\n\n getLabelText() {\n const { hoveredIndex } = this.state;\n const { readonly, value, getI18nText } = this.asProps;\n\n if (readonly) {\n return getI18nText('FeedbackRating.SliderRating.aria-valuetext.readonly', {\n selectedRating: value,\n max: MAX,\n });\n }\n\n if (value) {\n const selectedRating = hoveredIndex > -1 ? hoveredIndex + 1 : value;\n return getI18nText('FeedbackRating.SliderRating.aria-valuetext', {\n selectedRating: selectedRating,\n max: MAX,\n });\n }\n\n return hoveredIndex === -1\n ? getI18nText('FeedbackRating.SliderRating.aria-valuetext.empty')\n : getI18nText('FeedbackRating.SliderRating.aria-valuetext', {\n selectedRating: hoveredIndex + 1,\n max: MAX,\n });\n }\n\n render() {\n const { styles, readonly, getI18nText, value } = this.asProps;\n const { hoveredIndex } = this.state;\n\n const SSliderRating = Root;\n const label = this.getLabelText();\n\n if (readonly) {\n return (\n <SSliderRating render={Flex} gap={1} role='img' aria-label={label}>\n {new Array(MAX).fill(null).map((_, index) => <SliderRating.Star key={index} />)}\n </SSliderRating>\n );\n }\n\n const hoverValue = hoveredIndex + 1;\n\n const editModeLabel =\n hoverValue > 0 || value\n ? `${label}. ${getI18nText(\n 'FeedbackRating.SliderRating.ScreenReaderOnly.sliderDescriber',\n )}.`\n : label;\n\n return sstyled(styles)(\n <SSliderRating\n render={Flex}\n gap={1}\n tabIndex={0}\n onMouseLeave={this.handleMouseLeave}\n onKeyDown={this.handleKeyDown}\n role='slider'\n aria-orientation='horizontal'\n aria-valuemin={MIN}\n aria-valuemax={MAX}\n aria-valuetext={editModeLabel}\n aria-valuenow={hoverValue}\n >\n {new Array(MAX).fill(null).map((_, index) => <SliderRating.Star key={index} />)}\n </SSliderRating>,\n );\n }\n}\n\nfunction Star(props: StarProps) {\n const SStar = Root;\n return sstyled(props.styles)(\n <SStar\n render={Box}\n tag='svg'\n role='none'\n width='24'\n height='24'\n viewBox='0 0 24 24'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n {props.filled\n ? (\n <path d='M11.646 1.214a.4.4 0 0 1 .708 0l3.314 6.293 7 1.214a.4.4 0 0 1 .219.673l-4.952 5.104 1.012 7.044a.4.4 0 0 1-.573.416L12 18.818l-6.374 3.14a.4.4 0 0 1-.572-.416l1.01-7.044-4.95-5.104a.4.4 0 0 1 .218-.673l7-1.214 3.314-6.293Z' />\n )\n : (\n <path\n d='M14.358 9.31 12 4.834 9.642 9.31l-4.985.864 3.526 3.634-.72 5.014L12 16.588l4.537 2.235-.72-5.014 3.526-3.634-4.985-.864Zm8.31-.59a.4.4 0 0 1 .219.674l-4.952 5.104 1.012 7.044a.4.4 0 0 1-.573.416L12 18.818l-6.374 3.14a.4.4 0 0 1-.572-.416l1.01-7.044-4.95-5.104a.4.4 0 0 1 .218-.673l7-1.214 3.314-6.293a.4.4 0 0 1 .708 0l3.314 6.293 7 1.214Z'\n fillRule='evenodd'\n clipRule='evenodd'\n />\n )}\n </SStar>,\n );\n}\nStar.displayName = 'Star';\n\nconst SliderRating = createComponent(SliderRatingRoot, {\n Star,\n}) as Intergalactic.Component<typeof Flex, SliderRatingProps> & {\n Star: Intergalactic.Component<typeof Box, StarProps>;\n};\n\nexport default SliderRating;\n"],"mappings":";;;;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AADA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAAE,YAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,SAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,MAAA,GAAAF,sBAAA,CAAAH,OAAA;AAGA,IAAAM,4BAAA,GAAAN,OAAA;AAAuF;AAAA,MAAAO,KAAA,8BAAAR,KAAA,CAAAS,OAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAiBvF,MAAMC,GAAG,GAAG,CAAC;AACb,MAAMC,GAAG,GAAG,CAAC;AAEb,MAAMC,gBAAgB,SAASC,eAAS,CAMtC;EAAAC,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,iBAMe;MACbC,YAAY,EAAE,CAAC,CAAC;MAChBC,YAAY,EAAE,CAAC;IACjB,CAAC;IAAA,IAAAH,gBAAA,CAAAC,OAAA,uBAOcG,QAAgB,IAAMC,EAAoC,IAAK;MAC5E,MAAM;QAAEC;MAAS,CAAC,GAAG,IAAI,CAACC,OAAO;MAEjC,IAAI,CAACD,QAAQ,EAAE;QACb,IAAI,CAACE,QAAQ,CAACJ,QAAQ,CAAC;MACzB;IACF,CAAC;IAAA,IAAAJ,gBAAA,CAAAC,OAAA,4BAEmBQ,KAAa,IAAK,MAAM;MAC1C,IAAI,CAACC,QAAQ,CAAC;QAAER,YAAY,EAAEO;MAAM,CAAC,CAAC;IACxC,CAAC;IAAA,IAAAT,gBAAA,CAAAC,OAAA,4BAEkB,MAAM;MACvB,IAAI,CAACS,QAAQ,CAAC;QAAER,YAAY,EAAE,CAAC;MAAE,CAAC,CAAC;IACrC,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,oBAcWG,QAAgB,IAAK;MAC/B,MAAM;QAAEO,QAAQ;QAAEC;MAAM,CAAC,GAAG,IAAI,CAACL,OAAO;MAExC,IAAII,QAAQ,EAAE;QACZA,QAAQ,CAACP,QAAQ,CAAC;MACpB;MAEA,IAAIA,QAAQ,IAAIQ,KAAK,EAAE;QACrB,IAAI,CAACF,QAAQ,CAAC;UAAEP,YAAY,EAAEC,QAAQ;UAAEF,YAAY,EAAE,CAAC;QAAE,CAAC,CAAC;MAC7D,CAAC,MAAM;QACL,IAAI,CAACQ,QAAQ,CAAC;UAAEP,YAAY,EAAE,CAAC,CAAC;UAAED,YAAY,EAAE,CAAC;QAAE,CAAC,CAAC;MACvD;IACF,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,yBAEgBY,KAA0B,IAAK;MAC9C,IAAI,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC,CAACC,QAAQ,CAACD,KAAK,CAACE,GAAG,CAAC,EAAE;MAC/DF,KAAK,CAACG,cAAc,CAAC,CAAC;MAEtB,IAAIH,KAAK,CAACE,GAAG,KAAK,OAAO,EAAE;QACzB,MAAM;UAAEb;QAAa,CAAC,GAAG,IAAI,CAACe,KAAK;QAEnC,IAAI,CAACT,QAAQ,CAACN,YAAY,GAAG,CAAC,CAAC;MACjC,CAAC,MAAM;QACL,MAAM;UAAEU;QAAM,CAAC,GAAG,IAAI,CAACL,OAAO;QAC9B,MAAM;UAAEL;QAAa,CAAC,GAAG,IAAI,CAACe,KAAK;QAEnC,MAAMC,SAAS,GAAGL,KAAK,CAACE,GAAG,KAAK,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC;QACpD,IAAIX,QAAQ,GAAGF,YAAY,KAAK,CAAC,CAAC,GAAGU,KAAK,GAAGM,SAAS,GAAGhB,YAAY,GAAG,CAAC,GAAGgB,SAAS;QAErF,IAAId,QAAQ,GAAGT,GAAG,EAAES,QAAQ,GAAGT,GAAG;QAClC,IAAIS,QAAQ,GAAGV,GAAG,EAAEU,QAAQ,GAAGV,GAAG;QAElC,IAAI,CAACgB,QAAQ,CAAC;UAAER,YAAY,EAAEE,QAAQ,GAAG;QAAE,CAAC,CAAC;MAC/C;IACF,CAAC;EAAA;EA9CDe,YAAYA,CAACC,CAAM,EAAEX,KAAa,EAAE;IAClC,MAAM;MAAEG,KAAK;MAAEN;IAAS,CAAC,GAAG,IAAI,CAACC,OAAO;IACxC,MAAM;MAAEL;IAAa,CAAC,GAAG,IAAI,CAACe,KAAK;IAEnC,OAAO;MACLI,MAAM,EAAET,KAAK,GAAGH,KAAK,GAAG,CAAC,IAAIG,KAAK,IAAIH,KAAK,IAAIP,YAAY,GAAGO,KAAK,IAAIP,YAAY;MACnFoB,OAAO,EAAE,IAAI,CAACC,WAAW,CAACd,KAAK,GAAG,CAAC,CAAC;MACpCe,YAAY,EAAElB,QAAQ,GAAGmB,SAAS,GAAG,IAAI,CAACC,gBAAgB,CAACjB,KAAK,CAAC;MACjEkB,OAAO,EAAEzB,YAAY,KAAKO;IAC5B,CAAC;EACH;EAsCAmB,YAAYA,CAAA,EAAG;IACb,MAAM;MAAE1B;IAAa,CAAC,GAAG,IAAI,CAACe,KAAK;IACnC,MAAM;MAAEX,QAAQ;MAAEM,KAAK;MAAEiB;IAAY,CAAC,GAAG,IAAI,CAACtB,OAAO;IAErD,IAAID,QAAQ,EAAE;MACZ,OAAOuB,WAAW,CAAC,qDAAqD,EAAE;QACxEC,cAAc,EAAElB,KAAK;QACrBmB,GAAG,EAAEpC;MACP,CAAC,CAAC;IACJ;IAEA,IAAIiB,KAAK,EAAE;MACT,MAAMkB,cAAc,GAAG5B,YAAY,GAAG,CAAC,CAAC,GAAGA,YAAY,GAAG,CAAC,GAAGU,KAAK;MACnE,OAAOiB,WAAW,CAAC,4CAA4C,EAAE;QAC/DC,cAAc,EAAEA,cAAc;QAC9BC,GAAG,EAAEpC;MACP,CAAC,CAAC;IACJ;IAEA,OAAOO,YAAY,KAAK,CAAC,CAAC,GACtB2B,WAAW,CAAC,kDAAkD,CAAC,GAC/DA,WAAW,CAAC,4CAA4C,EAAE;MACxDC,cAAc,EAAE5B,YAAY,GAAG,CAAC;MAChC6B,GAAG,EAAEpC;IACP,CAAC,CAAC;EACR;EAEAqC,MAAMA,CAAA,EAAG;IAAA,IAAAC,IAAA,QAAA1B,OAAA;MAAA2B,KAAA;IACP,MAAM;MAAEC,MAAM;MAAE7B,QAAQ;MAAEuB,WAAW;MAAEjB;IAAM,CAAC,GAAG,IAAI,CAACL,OAAO;IAC7D,MAAM;MAAEL;IAAa,CAAC,GAAG,IAAI,CAACe,KAAK;IAEnC,MAAMmB,aAAa,GAsBPC,oBAAI;IArBhB,MAAMC,KAAK,GAAG,IAAI,CAACV,YAAY,CAAC,CAAC;IAEjC,IAAItB,QAAQ,EAAE;MACZ,oBACEjB,MAAA,CAAAY,OAAA,CAAAsC,aAAA,CAACH,aAAa,MAAArD,KAAA,CAAAyD,WAAA;QAAA,OAAoB,CAAC;QAAA,QAAO,KAAK;QAAA,cAAaF;MAAK,GAAAL,IAAA,GAC9D,IAAIQ,KAAK,CAAC9C,GAAG,CAAC,CAAC+C,IAAI,CAAC,IAAI,CAAC,CAACC,GAAG,CAAC,CAACvB,CAAC,EAAEX,KAAK,kBAAKpB,MAAA,CAAAY,OAAA,CAAAsC,aAAA,CAACK,YAAY,CAACC,IAAI;QAAC9B,GAAG,EAAEN;MAAM,CAAE,CAAC,CACjE,CAAC;IAEpB;IAEA,MAAMqC,UAAU,GAAG5C,YAAY,GAAG,CAAC;IAEnC,MAAM6C,aAAa,GACjBD,UAAU,GAAG,CAAC,IAAIlC,KAAK,GACnB,GAAG0B,KAAK,KAAKT,WAAW,CACxB,8DACF,CAAC,GAAG,GACFS,KAAK;IAEX,OAAAJ,KAAA,GAAO,IAAA1C,aAAO,EAAC2C,MAAM,CAAC,eACpB9C,MAAA,CAAAY,OAAA,CAAAsC,aAAA,CAACH,aAAa,EAAAF,KAAA,CAAAc,EAAA;MAAA,OAAAjE,KAAA,CAAAyD,WAAA;QAAA,OAEP,CAAC;QAAA,YACI,CAAC;QAAA,gBACG,IAAI,CAACS,gBAAgB;QAAA,aACxB,IAAI,CAACC,aAAa;QAAA,QACxB,QAAQ;QAAA,oBACI,YAAY;QAAA,iBACdxD,GAAG;QAAA,iBACHC,GAAG;QAAA,kBACFoD,aAAa;QAAA,iBACdD;MAAU,GAAAb,IAAA;IAAA,IAExB,IAAIQ,KAAK,CAAC9C,GAAG,CAAC,CAAC+C,IAAI,CAAC,IAAI,CAAC,CAACC,GAAG,CAAC,CAACvB,CAAC,EAAEX,KAAK,kBAAKpB,MAAA,CAAAY,OAAA,CAAAsC,aAAA,CAACK,YAAY,CAACC,IAAI;MAAC9B,GAAG,EAAEN;IAAM,CAAE,CAAC,CACjE,CAAC;EAEpB;AACF;AAAC,IAAAT,gBAAA,CAAAC,OAAA,EA3JKL,gBAAgB,iBAOC,cAAc;AAAA,IAAAI,gBAAA,CAAAC,OAAA,EAP/BL,gBAAgB,WAQLL,KAAK;AAAA,IAAAS,gBAAA,CAAAC,OAAA,EARhBL,gBAAgB,aAUH,CAAC,IAAAuD,iBAAmB,EAAC,CAAC,EAAE,IAAAC,oBAAW,EAACC,8CAAiB,CAAC,CAAC;AAAA,IAAArD,gBAAA,CAAAC,OAAA,EAVpEL,gBAAgB,kBAiBE;EACpB0D,IAAI,EAAED,8CAAiB;EACvBE,MAAM,EAAE;AACV,CAAC;AAyIH,SAASV,IAAIA,CAACW,KAAgB,EAAE;EAAA,IAAAC,KAAA,GAAAC,YAAA;IAAAC,KAAA;EAC9B,MAAMC,KAAK,GAGCC,mBAAG;EAFf,OAAAF,KAAA,GAAO,IAAAnE,aAAO,EAACgE,KAAK,CAACrB,MAAM,CAAC,eAC1B9C,MAAA,CAAAY,OAAA,CAAAsC,aAAA,CAACqB,KAAK,EAAAD,KAAA,CAAAX,EAAA;IAAA,OAAAjE,KAAA,CAAAyD,WAAA;MAAA,OAEA,KAAK;MAAA,QACJ,MAAM;MAAA,SACL,IAAI;MAAA,UACH,IAAI;MAAA,WACH,WAAW;MAAA,QACd,MAAM;MAAA,SACL;IAA4B,GAAAiB,KAAA;EAAA,IAEjCD,KAAK,CAACnC,MAAM,gBAEPhC,MAAA,CAAAY,OAAA,CAAAsC,aAAA,SAAAoB,KAAA,CAAAX,EAAA;IAAA,KAAQ;EAAiO,EAAE,CAAC,gBAG5O3D,MAAA,CAAAY,OAAA,CAAAsC,aAAA,SAAAoB,KAAA,CAAAX,EAAA;IAAA,KACI,sVAAsV;IAAA,YAC/U,SAAS;IAAA,YACT;EAAS,EACnB,CAEF,CAAC;AAEZ;AACAH,IAAI,CAACiB,WAAW,GAAG,MAAM;AAEzB,MAAMlB,YAAY,GAAG,IAAAmB,qBAAe,EAACnE,gBAAgB,EAAE;EACrDiD;AACF,CAAC,CAEA;AAAC,IAAAmB,QAAA,GAAAC,OAAA,CAAAhE,OAAA,GAEa2C,YAAY","ignoreList":[]}
@@ -77,12 +77,12 @@ class FeedbackRatingRoot extends Component {
77
77
  }, config.label) : config.label;
78
78
  const isDescriptionReactFragment = config.description?.type === React.Fragment;
79
79
  return /*#__PURE__*/React.createElement(Flex, {
80
+ key: config.key,
80
81
  direction: "column"
81
82
  }, /*#__PURE__*/React.createElement(Flex, {
82
83
  tag: "label",
83
84
  mt: 4,
84
- htmlFor: config.key,
85
- key: config.key
85
+ htmlFor: config.key
86
86
  }, label), /*#__PURE__*/React.createElement(FeedbackRating.Item, {
87
87
  name: config.key,
88
88
  validate: config.validate,
@@ -1 +1 @@
1
- {"version":3,"file":"FeedbackRating.js","names":["Box","Flex","createComponent","Component","sstyled","Root","i18nEnhance","uniqueIDEnhancement","CheckM","WarnM","FeedbackIllustration","Input","Link","Modal","default","SemcoreNotice","NoticeBubbleContainer","NoticeBubbleManager","SpinContainer","Textarea","Text","createFocusDecorator","React","Field","Form","style","_sstyled","insert","localizedMessages","CheckboxButton","FeedbackItem","SliderRating","SubmitButton","FeedbackRatingRoot","constructor","args","_defineProperty","error","rating","asProps","onVisibleChange","fn","_value","e","config","index","initialValue","props","initialValues","key","createElement","name","type","input","FeedbackRating","Checkbox","_extends","id","label","onChange","_checked","focused","mb","size","isDescriptionReactFragment","description","Fragment","direction","tag","mt","htmlFor","Item","validate","placement","flip","fallbackPlacements","undefined","h","handleChange","autoComplete","state","Value","color","headerId","uid","getHeaderProps","getItemProps","validateOnBlur","getNoticeTextId","componentDidUpdate","prevProps","status","getI18nText","setState","setTimeout","manager","add","icon","children","initialAnimation","duration","render","_ref","_ref2","_ref4","header","submitText","formConfig","notificationText","notificationTitle","learnMoreLink","Children","_Children","styles","forwardRef","theme","background","visible","_onVisibleChange","notificationVisible","onNotificationClose","errorFeedbackEmail","modalWidth","Illustration","Notice","NoticeComponent","other","SFeedbackRating","checkboxFields","filter","item","textFields","notificationId","_assignProps2","cn","Label","mr","Content","Title","gap","alignItems","Actions","handleChangeRating","Close","onClick","_assignProps","handelCloseModal","focusDecorator","api","_ref5","submitting","Header","handleSubmit","map","formConfigItem","renderCheckbox","renderTextField","email","Submit","loading","onSubmit","i18n","locale","value","words","split","symbols","join","Boolean","length","test","String","toLowerCase","_ref3","arguments[0]","_ref6","SHeader","_assignProps3"],"sources":["../../../../src/component/feedback-rating/FeedbackRating.tsx"],"sourcesContent":["import { Box, Flex } from '@semcore/base-components';\nimport type Button from '@semcore/button';\nimport type Checkbox from '@semcore/checkbox';\nimport { createComponent, Component, sstyled, Root } from '@semcore/core';\nimport type { Intergalactic } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport CheckM from '@semcore/icon/Check/m';\nimport WarnM from '@semcore/icon/Warning/m';\nimport FeedbackIllustration from '@semcore/illustration/Feedback';\nimport Input from '@semcore/input';\nimport Link from '@semcore/link';\nimport Modal from '@semcore/modal';\nimport { default as SemcoreNotice } from '@semcore/notice';\nimport { NoticeBubbleContainer, NoticeBubbleManager } from '@semcore/notice-bubble';\nimport SpinContainer from '@semcore/spin-container';\nimport Textarea from '@semcore/textarea';\nimport { Text } from '@semcore/typography';\nimport createFocusDecorator from 'final-form-focus';\nimport React, { type ReactElement } from 'react';\nimport { Field, Form } from 'react-final-form';\n\nimport type {\n FeedbackRatingCheckboxProps,\n FeedbackRatingItemProps,\n FeedbackRatingProps,\n FormConfigItem,\n FeedbackRatingDefaultProps,\n} from './FeedbackRating.type';\nimport style from '../../style/feedback-rating.shadow.css';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\nimport CheckboxButton from '../checkbox-button/CheckboxButton';\nimport { FeedbackItem } from '../feedback-item/FeedbackItem';\nimport SliderRating from '../slider-rating/SliderRating';\nimport { SubmitButton } from '../submit-button/SubmitButton';\n\ntype State = {\n error: boolean;\n};\n\nclass FeedbackRatingRoot extends Component<\n FeedbackRatingProps,\n typeof FeedbackRatingRoot.enhance,\n {},\n FeedbackRatingDefaultProps,\n State\n> {\n static displayName = 'FeedbackRatingForm';\n static style = style;\n\n static enhance = [i18nEnhance(localizedMessages), uniqueIDEnhancement()] as const;\n\n static defaultProps: FeedbackRatingDefaultProps = {\n onSubmit: () => {},\n i18n: localizedMessages,\n locale: 'en',\n Illustration: FeedbackIllustration,\n Notice: SemcoreNotice,\n };\n\n static validate = {\n description: (error: Error | string) => (value = '') => {\n const words = value.split(/\\s+/);\n const symbols = words.join(' ');\n if (Boolean(value) && (symbols.length < 10 || words.length < 3)) {\n return error;\n }\n },\n email: (error: Error | string) => (value = '') => {\n if (Boolean(value) && !/.+@.+\\..+/i.test(String(value).toLowerCase())) {\n return error;\n }\n },\n };\n\n state: State = {\n error: false,\n };\n\n manager = new NoticeBubbleManager();\n\n private focusDecorator = createFocusDecorator<Record<string, any>>();\n\n get headerId() {\n const { uid } = this.asProps;\n\n return `${uid}-feedback-rating-header`;\n }\n\n getHeaderProps() {\n return {\n id: this.headerId,\n };\n }\n\n getItemProps() {\n const { validateOnBlur } = this.asProps;\n\n return {\n validateOnBlur,\n };\n }\n\n getNoticeTextId() {\n const { uid } = this.asProps;\n return `${uid}-feedback-rating-notice`;\n }\n\n handleChangeRating = (rating: number) => {\n if (rating > 0) {\n this.asProps.onVisibleChange(true, rating);\n }\n };\n\n handelCloseModal = () => {\n this.asProps.onVisibleChange(false, this.asProps.rating);\n };\n\n handleChange =\n (fn: (e: React.SyntheticEvent) => void) => (_value: any, e: React.SyntheticEvent) => {\n fn(e);\n };\n\n componentDidUpdate(prevProps: Readonly<FeedbackRatingProps>) {\n const { status, getI18nText } = this.asProps;\n\n if (prevProps.status !== status) {\n this.setState({ error: false });\n\n if (status === 'success') {\n // showing notice with delay for SR, less than 100ms is not enough\n setTimeout(() => {\n this.manager.add({\n icon: <CheckM color='green-400' />,\n children: getI18nText('successMessage'),\n initialAnimation: true,\n duration: 5000,\n });\n }, 300);\n } else if (status === 'error') {\n this.setState({ error: true });\n }\n }\n }\n\n renderCheckbox = (config: FormConfigItem, index: number) => {\n const initialValue = this.props.initialValues[config.key];\n\n return (\n <Field name={config.key} initialValue={initialValue} type='checkbox' key={config.key}>\n {({ input }) => (\n <FeedbackRating.Checkbox\n {...input}\n id={config.key}\n label={config.label}\n onChange={(_checked, e) => input.onChange(e)}\n focused={index === 0}\n />\n )}\n </Field>\n );\n };\n\n renderTextField = (config: FormConfigItem) => {\n const initialValue = this.props.initialValues[config.key];\n\n const label =\n typeof config.label === 'string'\n ? (\n <Text mb={2} size={200}>\n {config.label}\n </Text>\n )\n : (\n (config.label as unknown as JSX.Element)\n );\n\n const isDescriptionReactFragment =\n (config.description as ReactElement)?.type === React.Fragment;\n\n return (\n <Flex direction='column'>\n <Flex tag='label' mt={4} htmlFor={config.key} key={config.key}>\n {label}\n </Flex>\n\n <FeedbackRating.Item\n name={config.key}\n validate={config.validate}\n initialValue={initialValue}\n placement='left-start'\n flip={{\n fallbackPlacements: ['right-start', 'bottom'],\n }}\n aria-describedby={config.description ? config.key + '-description' : undefined}\n >\n {/* @ts-ignore */}\n {({ input }) => {\n if (config.type === 'textarea') {\n return (\n <Textarea\n {...input}\n h={80}\n onChange={this.handleChange(input.onChange)}\n id={config.key}\n />\n );\n }\n if (config.type === 'input' || config.type === 'email') {\n if (config.type === 'email') {\n input.autoComplete = 'email';\n input.type = 'email';\n }\n\n return (\n <Input state={input.state}>\n <Input.Value\n {...input}\n onChange={this.handleChange(input.onChange)}\n id={config.key}\n />\n </Input>\n );\n }\n return null;\n }}\n </FeedbackRating.Item>\n {config.description && (\n <Box mt={2}>\n {typeof config.description === 'string' || isDescriptionReactFragment\n ? (\n <Text size={200} color='text-secondary' id={config.key + '-description'}>\n {config.description}\n </Text>\n )\n : (\n config.description\n )}\n </Box>\n )}\n </Flex>\n );\n };\n\n render() {\n const {\n header,\n submitText,\n formConfig,\n notificationText,\n notificationTitle,\n learnMoreLink,\n Children: _Children,\n styles,\n forwardRef,\n status,\n theme,\n background,\n rating,\n visible,\n onVisibleChange: _onVisibleChange,\n notificationVisible,\n onNotificationClose,\n getI18nText,\n errorFeedbackEmail,\n modalWidth,\n Illustration,\n Notice: NoticeComponent,\n ...other\n } = this.asProps;\n\n const SFeedbackRating = Root;\n const checkboxFields = formConfig.filter((item) => item.type === 'checkbox');\n const textFields = formConfig.filter(\n (item) => item.type === 'textarea' || item.type === 'input' || item.type === 'email',\n );\n const notificationId = this.getNoticeTextId();\n\n return sstyled(styles)(\n <Root render={Box}>\n <NoticeComponent\n visible={notificationVisible}\n aria-label={getI18nText('leaveFeedback')}\n tag={Flex}\n alignItems={notificationTitle ? 'flex-start' : 'center'}\n >\n <NoticeComponent.Label mr={3} aria-hidden={true}>\n <Illustration />\n </NoticeComponent.Label>\n <NoticeComponent.Content>\n {notificationTitle ? <NoticeComponent.Title>{notificationTitle}</NoticeComponent.Title> : null}\n <NoticeComponent.Text gap={3} tag={Flex} alignItems={notificationTitle ? 'flex-start' : 'center'}>\n <Text id={notificationId}>\n {notificationText}\n </Text>\n <NoticeComponent.Actions mt={0}>\n <SliderRating\n value={rating}\n onChange={this.handleChangeRating}\n aria-labelledby={notificationId}\n />\n </NoticeComponent.Actions>\n {learnMoreLink && (\n <Link href={learnMoreLink}>\n {getI18nText('learnMore')}\n </Link>\n )}\n </NoticeComponent.Text>\n </NoticeComponent.Content>\n <NoticeComponent.Close onClick={onNotificationClose} />\n </NoticeComponent>\n\n <SFeedbackRating\n render={Modal}\n visible={visible}\n onClose={this.handelCloseModal}\n p={0}\n use:w={modalWidth ?? 440}\n aria-labelledby={this.headerId}\n >\n <Form decorators={[this.focusDecorator]} {...other}>\n {(api) =>\n sstyled(styles)(\n <SpinContainer\n background={background}\n theme={theme}\n size='xl'\n loading={status !== 'loading' ? api.submitting : status === 'loading'}\n p={1}\n m={9}\n >\n <Flex justifyContent='center'>\n <SliderRating value={rating} readonly={true} />\n </Flex>\n\n {(header as ReactElement)?.type === FeedbackRating.Header\n ? (\n header\n )\n : (\n <FeedbackRating.Header>{header}</FeedbackRating.Header>\n )}\n\n <Box\n tag='form'\n noValidate\n method='POST'\n ref={forwardRef}\n {...other}\n onSubmit={api.handleSubmit}\n >\n <Field name='rating' initialValue={rating}>\n {({ input }) => <input {...input} type='hidden' />}\n </Field>\n\n <div role='group' aria-labelledby={this.headerId}>\n {checkboxFields.map((formConfigItem, index) =>\n this.renderCheckbox(formConfigItem, index),\n )}\n </div>\n\n {textFields.map((formConfigItem) => this.renderTextField(formConfigItem))}\n\n {this.state.error && (\n <SemcoreNotice theme='warning' mt={4} mb={4}>\n <SemcoreNotice.Label>\n <WarnM />\n </SemcoreNotice.Label>\n <SemcoreNotice.Content>\n {getI18nText('errorMessage', {\n // todo: Brauer Ilia - think how to fix type\n // @ts-ignore\n email: (\n <Link href={`mailto:${errorFeedbackEmail}`}>\n {errorFeedbackEmail}\n </Link>\n ),\n })}\n </SemcoreNotice.Content>\n </SemcoreNotice>\n )}\n\n <Flex mt={4} justifyContent='center'>\n <FeedbackRating.Submit\n loading={status !== 'loading' ? api.submitting : status === 'loading'}\n size='l'\n >\n {submitText ?? getI18nText('submitButton')}\n </FeedbackRating.Submit>\n </Flex>\n </Box>\n </SpinContainer>,\n )}\n </Form>\n </SFeedbackRating>\n\n <NoticeBubbleContainer manager={this.manager} />\n </Root>,\n );\n }\n}\n\nfunction Header(props: any) {\n const { styles } = props;\n const SHeader = Root;\n return sstyled(styles)(\n <SHeader render={Modal.Title} />,\n );\n}\n\nconst FeedbackRating = createComponent<'form', FeedbackRatingProps, {}, typeof FeedbackRatingRoot.enhance>(FeedbackRatingRoot, {\n Header,\n Item: FeedbackItem,\n Checkbox: CheckboxButton,\n Submit: SubmitButton,\n}) as Intergalactic.Component<'form', FeedbackRatingProps, {}, typeof FeedbackRatingRoot.enhance> & {\n validate: typeof FeedbackRatingRoot.validate;\n Item: Intergalactic.Component<'div', FeedbackRatingItemProps>;\n Submit: typeof Button;\n Checkbox: Intergalactic.Component<typeof Checkbox, FeedbackRatingCheckboxProps>;\n Header: typeof Text;\n};\n\nexport default FeedbackRating;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FeedbackRating.js","names":["Box","Flex","createComponent","Component","sstyled","Root","i18nEnhance","uniqueIDEnhancement","CheckM","WarnM","FeedbackIllustration","Input","Link","Modal","default","SemcoreNotice","NoticeBubbleContainer","NoticeBubbleManager","SpinContainer","Textarea","Text","createFocusDecorator","React","Field","Form","style","_sstyled","insert","localizedMessages","CheckboxButton","FeedbackItem","SliderRating","SubmitButton","FeedbackRatingRoot","constructor","args","_defineProperty","error","rating","asProps","onVisibleChange","fn","_value","e","config","index","initialValue","props","initialValues","key","createElement","name","type","input","FeedbackRating","Checkbox","_extends","id","label","onChange","_checked","focused","mb","size","isDescriptionReactFragment","description","Fragment","direction","tag","mt","htmlFor","Item","validate","placement","flip","fallbackPlacements","undefined","h","handleChange","autoComplete","state","Value","color","headerId","uid","getHeaderProps","getItemProps","validateOnBlur","getNoticeTextId","componentDidUpdate","prevProps","status","getI18nText","setState","setTimeout","manager","add","icon","children","initialAnimation","duration","render","_ref","_ref2","_ref4","header","submitText","formConfig","notificationText","notificationTitle","learnMoreLink","Children","_Children","styles","forwardRef","theme","background","visible","_onVisibleChange","notificationVisible","onNotificationClose","errorFeedbackEmail","modalWidth","Illustration","Notice","NoticeComponent","other","SFeedbackRating","checkboxFields","filter","item","textFields","notificationId","_assignProps2","cn","Label","mr","Content","Title","gap","alignItems","Actions","handleChangeRating","Close","onClick","_assignProps","handelCloseModal","focusDecorator","api","_ref5","submitting","Header","handleSubmit","map","formConfigItem","renderCheckbox","renderTextField","email","Submit","loading","onSubmit","i18n","locale","value","words","split","symbols","join","Boolean","length","test","String","toLowerCase","_ref3","arguments[0]","_ref6","SHeader","_assignProps3"],"sources":["../../../../src/component/feedback-rating/FeedbackRating.tsx"],"sourcesContent":["import { Box, Flex } from '@semcore/base-components';\nimport type Button from '@semcore/button';\nimport type Checkbox from '@semcore/checkbox';\nimport { createComponent, Component, sstyled, Root } from '@semcore/core';\nimport type { Intergalactic } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport CheckM from '@semcore/icon/Check/m';\nimport WarnM from '@semcore/icon/Warning/m';\nimport FeedbackIllustration from '@semcore/illustration/Feedback';\nimport Input from '@semcore/input';\nimport Link from '@semcore/link';\nimport Modal from '@semcore/modal';\nimport { default as SemcoreNotice } from '@semcore/notice';\nimport { NoticeBubbleContainer, NoticeBubbleManager } from '@semcore/notice-bubble';\nimport SpinContainer from '@semcore/spin-container';\nimport Textarea from '@semcore/textarea';\nimport { Text } from '@semcore/typography';\nimport createFocusDecorator from 'final-form-focus';\nimport React, { type ReactElement } from 'react';\nimport { Field, Form } from 'react-final-form';\n\nimport type {\n FeedbackRatingCheckboxProps,\n FeedbackRatingItemProps,\n FeedbackRatingProps,\n FormConfigItem,\n FeedbackRatingDefaultProps,\n} from './FeedbackRating.type';\nimport style from '../../style/feedback-rating.shadow.css';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\nimport CheckboxButton from '../checkbox-button/CheckboxButton';\nimport { FeedbackItem } from '../feedback-item/FeedbackItem';\nimport SliderRating from '../slider-rating/SliderRating';\nimport { SubmitButton } from '../submit-button/SubmitButton';\n\ntype State = {\n error: boolean;\n};\n\nclass FeedbackRatingRoot extends Component<\n FeedbackRatingProps,\n typeof FeedbackRatingRoot.enhance,\n {},\n FeedbackRatingDefaultProps,\n State\n> {\n static displayName = 'FeedbackRatingForm';\n static style = style;\n\n static enhance = [i18nEnhance(localizedMessages), uniqueIDEnhancement()] as const;\n\n static defaultProps: FeedbackRatingDefaultProps = {\n onSubmit: () => {},\n i18n: localizedMessages,\n locale: 'en',\n Illustration: FeedbackIllustration,\n Notice: SemcoreNotice,\n };\n\n static validate = {\n description: (error: Error | string) => (value = '') => {\n const words = value.split(/\\s+/);\n const symbols = words.join(' ');\n if (Boolean(value) && (symbols.length < 10 || words.length < 3)) {\n return error;\n }\n },\n email: (error: Error | string) => (value = '') => {\n if (Boolean(value) && !/.+@.+\\..+/i.test(String(value).toLowerCase())) {\n return error;\n }\n },\n };\n\n state: State = {\n error: false,\n };\n\n manager = new NoticeBubbleManager();\n\n private focusDecorator = createFocusDecorator<Record<string, any>>();\n\n get headerId() {\n const { uid } = this.asProps;\n\n return `${uid}-feedback-rating-header`;\n }\n\n getHeaderProps() {\n return {\n id: this.headerId,\n };\n }\n\n getItemProps() {\n const { validateOnBlur } = this.asProps;\n\n return {\n validateOnBlur,\n };\n }\n\n getNoticeTextId() {\n const { uid } = this.asProps;\n return `${uid}-feedback-rating-notice`;\n }\n\n handleChangeRating = (rating: number) => {\n if (rating > 0) {\n this.asProps.onVisibleChange(true, rating);\n }\n };\n\n handelCloseModal = () => {\n this.asProps.onVisibleChange(false, this.asProps.rating);\n };\n\n handleChange =\n (fn: (e: React.SyntheticEvent) => void) => (_value: any, e: React.SyntheticEvent) => {\n fn(e);\n };\n\n componentDidUpdate(prevProps: Readonly<FeedbackRatingProps>) {\n const { status, getI18nText } = this.asProps;\n\n if (prevProps.status !== status) {\n this.setState({ error: false });\n\n if (status === 'success') {\n // showing notice with delay for SR, less than 100ms is not enough\n setTimeout(() => {\n this.manager.add({\n icon: <CheckM color='green-400' />,\n children: getI18nText('successMessage'),\n initialAnimation: true,\n duration: 5000,\n });\n }, 300);\n } else if (status === 'error') {\n this.setState({ error: true });\n }\n }\n }\n\n renderCheckbox = (config: FormConfigItem, index: number) => {\n const initialValue = this.props.initialValues[config.key];\n\n return (\n <Field name={config.key} initialValue={initialValue} type='checkbox' key={config.key}>\n {({ input }) => (\n <FeedbackRating.Checkbox\n {...input}\n id={config.key}\n label={config.label}\n onChange={(_checked, e) => input.onChange(e)}\n focused={index === 0}\n />\n )}\n </Field>\n );\n };\n\n renderTextField = (config: FormConfigItem) => {\n const initialValue = this.props.initialValues[config.key];\n\n const label =\n typeof config.label === 'string'\n ? (\n <Text mb={2} size={200}>\n {config.label}\n </Text>\n )\n : (\n (config.label as unknown as JSX.Element)\n );\n\n const isDescriptionReactFragment =\n (config.description as ReactElement)?.type === React.Fragment;\n\n return (\n <Flex key={config.key} direction='column'>\n <Flex tag='label' mt={4} htmlFor={config.key}>\n {label}\n </Flex>\n\n <FeedbackRating.Item\n name={config.key}\n validate={config.validate}\n initialValue={initialValue}\n placement='left-start'\n flip={{\n fallbackPlacements: ['right-start', 'bottom'],\n }}\n aria-describedby={config.description ? config.key + '-description' : undefined}\n >\n {/* @ts-ignore */}\n {({ input }) => {\n if (config.type === 'textarea') {\n return (\n <Textarea\n {...input}\n h={80}\n onChange={this.handleChange(input.onChange)}\n id={config.key}\n />\n );\n }\n if (config.type === 'input' || config.type === 'email') {\n if (config.type === 'email') {\n input.autoComplete = 'email';\n input.type = 'email';\n }\n\n return (\n <Input state={input.state}>\n <Input.Value\n {...input}\n onChange={this.handleChange(input.onChange)}\n id={config.key}\n />\n </Input>\n );\n }\n return null;\n }}\n </FeedbackRating.Item>\n {config.description && (\n <Box mt={2}>\n {typeof config.description === 'string' || isDescriptionReactFragment\n ? (\n <Text size={200} color='text-secondary' id={config.key + '-description'}>\n {config.description}\n </Text>\n )\n : (\n config.description\n )}\n </Box>\n )}\n </Flex>\n );\n };\n\n render() {\n const {\n header,\n submitText,\n formConfig,\n notificationText,\n notificationTitle,\n learnMoreLink,\n Children: _Children,\n styles,\n forwardRef,\n status,\n theme,\n background,\n rating,\n visible,\n onVisibleChange: _onVisibleChange,\n notificationVisible,\n onNotificationClose,\n getI18nText,\n errorFeedbackEmail,\n modalWidth,\n Illustration,\n Notice: NoticeComponent,\n ...other\n } = this.asProps;\n\n const SFeedbackRating = Root;\n const checkboxFields = formConfig.filter((item) => item.type === 'checkbox');\n const textFields = formConfig.filter(\n (item) => item.type === 'textarea' || item.type === 'input' || item.type === 'email',\n );\n const notificationId = this.getNoticeTextId();\n\n return sstyled(styles)(\n <Root render={Box}>\n <NoticeComponent\n visible={notificationVisible}\n aria-label={getI18nText('leaveFeedback')}\n tag={Flex}\n alignItems={notificationTitle ? 'flex-start' : 'center'}\n >\n <NoticeComponent.Label mr={3} aria-hidden={true}>\n <Illustration />\n </NoticeComponent.Label>\n <NoticeComponent.Content>\n {notificationTitle ? <NoticeComponent.Title>{notificationTitle}</NoticeComponent.Title> : null}\n <NoticeComponent.Text gap={3} tag={Flex} alignItems={notificationTitle ? 'flex-start' : 'center'}>\n <Text id={notificationId}>\n {notificationText}\n </Text>\n <NoticeComponent.Actions mt={0}>\n <SliderRating\n value={rating}\n onChange={this.handleChangeRating}\n aria-labelledby={notificationId}\n />\n </NoticeComponent.Actions>\n {learnMoreLink && (\n <Link href={learnMoreLink}>\n {getI18nText('learnMore')}\n </Link>\n )}\n </NoticeComponent.Text>\n </NoticeComponent.Content>\n <NoticeComponent.Close onClick={onNotificationClose} />\n </NoticeComponent>\n\n <SFeedbackRating\n render={Modal}\n visible={visible}\n onClose={this.handelCloseModal}\n p={0}\n use:w={modalWidth ?? 440}\n aria-labelledby={this.headerId}\n >\n <Form decorators={[this.focusDecorator]} {...other}>\n {(api) =>\n sstyled(styles)(\n <SpinContainer\n background={background}\n theme={theme}\n size='xl'\n loading={status !== 'loading' ? api.submitting : status === 'loading'}\n p={1}\n m={9}\n >\n <Flex justifyContent='center'>\n <SliderRating value={rating} readonly={true} />\n </Flex>\n\n {(header as ReactElement)?.type === FeedbackRating.Header\n ? (\n header\n )\n : (\n <FeedbackRating.Header>{header}</FeedbackRating.Header>\n )}\n\n <Box\n tag='form'\n noValidate\n method='POST'\n ref={forwardRef}\n {...other}\n onSubmit={api.handleSubmit}\n >\n <Field name='rating' initialValue={rating}>\n {({ input }) => <input {...input} type='hidden' />}\n </Field>\n\n <div role='group' aria-labelledby={this.headerId}>\n {checkboxFields.map((formConfigItem, index) =>\n this.renderCheckbox(formConfigItem, index),\n )}\n </div>\n\n {textFields.map((formConfigItem) => this.renderTextField(formConfigItem))}\n\n {this.state.error && (\n <SemcoreNotice theme='warning' mt={4} mb={4}>\n <SemcoreNotice.Label>\n <WarnM />\n </SemcoreNotice.Label>\n <SemcoreNotice.Content>\n {getI18nText('errorMessage', {\n // todo: Brauer Ilia - think how to fix type\n // @ts-ignore\n email: (\n <Link href={`mailto:${errorFeedbackEmail}`}>\n {errorFeedbackEmail}\n </Link>\n ),\n })}\n </SemcoreNotice.Content>\n </SemcoreNotice>\n )}\n\n <Flex mt={4} justifyContent='center'>\n <FeedbackRating.Submit\n loading={status !== 'loading' ? api.submitting : status === 'loading'}\n size='l'\n >\n {submitText ?? getI18nText('submitButton')}\n </FeedbackRating.Submit>\n </Flex>\n </Box>\n </SpinContainer>,\n )}\n </Form>\n </SFeedbackRating>\n\n <NoticeBubbleContainer manager={this.manager} />\n </Root>,\n );\n }\n}\n\nfunction Header(props: any) {\n const { styles } = props;\n const SHeader = Root;\n return sstyled(styles)(\n <SHeader render={Modal.Title} />,\n );\n}\n\nconst FeedbackRating = createComponent<'form', FeedbackRatingProps, {}, typeof FeedbackRatingRoot.enhance>(FeedbackRatingRoot, {\n Header,\n Item: FeedbackItem,\n Checkbox: CheckboxButton,\n Submit: SubmitButton,\n}) as Intergalactic.Component<'form', FeedbackRatingProps, {}, typeof FeedbackRatingRoot.enhance> & {\n validate: typeof FeedbackRatingRoot.validate;\n Item: Intergalactic.Component<'div', FeedbackRatingItemProps>;\n Submit: typeof Button;\n Checkbox: Intergalactic.Component<typeof Checkbox, FeedbackRatingCheckboxProps>;\n Header: typeof Text;\n};\n\nexport default FeedbackRating;\n"],"mappings":"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","ignoreList":[]}
@@ -152,12 +152,9 @@ class SliderRatingRoot extends Component {
152
152
  "gap": 1,
153
153
  "role": 'img',
154
154
  "aria-label": label
155
- }, _ref), new Array(MAX).fill(null).map((_, index) => {
156
- return /*#__PURE__*/React.createElement(Box, {
157
- key: index,
158
- position: "relative"
159
- }, /*#__PURE__*/React.createElement(SliderRating.Star, null));
160
- }));
155
+ }, _ref), new Array(MAX).fill(null).map((_, index) => /*#__PURE__*/React.createElement(SliderRating.Star, {
156
+ key: index
157
+ })));
161
158
  }
162
159
  const hoverValue = hoveredIndex + 1;
163
160
  const editModeLabel = hoverValue > 0 || value ? `${label}. ${getI18nText('FeedbackRating.SliderRating.ScreenReaderOnly.sliderDescriber')}.` : label;
@@ -174,12 +171,9 @@ class SliderRatingRoot extends Component {
174
171
  "aria-valuetext": editModeLabel,
175
172
  "aria-valuenow": hoverValue
176
173
  }, _ref)
177
- }), new Array(MAX).fill(null).map((_, index) => {
178
- return /*#__PURE__*/React.createElement(Box, {
179
- key: index,
180
- position: "relative"
181
- }, /*#__PURE__*/React.createElement(SliderRating.Star, null));
182
- }));
174
+ }), new Array(MAX).fill(null).map((_, index) => /*#__PURE__*/React.createElement(SliderRating.Star, {
175
+ key: index
176
+ })));
183
177
  }
184
178
  }
185
179
  _defineProperty(SliderRatingRoot, "displayName", 'SliderRating');
@@ -1 +1 @@
1
- {"version":3,"file":"SliderRating.js","names":["Flex","Box","createComponent","Component","Root","sstyled","i18nEnhance","uniqueIDEnhancement","React","style","_sstyled","insert","localizedMessages","MIN","MAX","SliderRatingRoot","constructor","args","_defineProperty","hoveredIndex","clickedIndex","newValue","_e","readonly","asProps","setValue","index","setState","onChange","value","event","includes","key","preventDefault","state","direction","getStarProps","_","filled","onClick","handleClick","onMouseEnter","undefined","handleMouseEnder","hovered","getLabelText","getI18nText","selectedRating","max","render","_ref","_ref3","styles","SSliderRating","label","createElement","_assignProps","Array","fill","map","position","SliderRating","Star","hoverValue","editModeLabel","cn","_assignProps2","handleMouseLeave","handleKeyDown","i18n","locale","props","_ref2","arguments[0]","_ref4","SStar","_assignProps3","displayName"],"sources":["../../../../src/component/slider-rating/SliderRating.tsx"],"sourcesContent":["import { Flex, Box, type BoxProps } from '@semcore/base-components';\nimport { createComponent, Component, Root, sstyled, type Intergalactic } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport React from 'react';\n\nimport style from '../../style/slider-rating.shadow.css';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\n\ntype SliderRatingProps = {\n value: number;\n onChange?: (value: number) => void;\n readonly?: boolean;\n};\n\ntype State = {\n hoveredIndex: number;\n clickedIndex: number;\n};\n\ntype StarProps = BoxProps & {\n filled?: boolean;\n};\n\nconst MIN = 1;\nconst MAX = 5;\n\nclass SliderRatingRoot extends Component<\n SliderRatingProps,\n typeof SliderRatingRoot.enhance,\n {},\n {},\n State\n> {\n static displayName = 'SliderRating';\n static style = style;\n\n static enhance = [uniqueIDEnhancement(), i18nEnhance(localizedMessages)] as const;\n\n state: State = {\n hoveredIndex: -1,\n clickedIndex: -1,\n };\n\n static defaultProps = {\n i18n: localizedMessages,\n locale: 'en',\n };\n\n handleClick = (newValue: number) => (_e: React.SyntheticEvent<SVGElement>) => {\n const { readonly } = this.asProps;\n\n if (!readonly) {\n this.setValue(newValue);\n }\n };\n\n handleMouseEnder = (index: number) => () => {\n this.setState({ hoveredIndex: index });\n };\n\n handleMouseLeave = () => {\n this.setState({ hoveredIndex: -1 });\n };\n\n getStarProps(_: any, index: number) {\n const { value, readonly } = this.asProps;\n const { hoveredIndex } = this.state;\n\n return {\n filled: value ? index + 1 <= value || index <= hoveredIndex : index <= hoveredIndex,\n onClick: this.handleClick(index + 1),\n onMouseEnter: readonly ? undefined : this.handleMouseEnder(index),\n hovered: hoveredIndex === index,\n };\n }\n\n setValue = (newValue: number) => {\n const { onChange, value } = this.asProps;\n\n if (onChange) {\n onChange(newValue);\n }\n\n if (newValue <= value) {\n this.setState({ clickedIndex: newValue, hoveredIndex: -1 });\n } else {\n this.setState({ clickedIndex: -1, hoveredIndex: -1 });\n }\n };\n\n handleKeyDown = (event: React.KeyboardEvent) => {\n if (!['ArrowLeft', 'ArrowRight', 'Enter'].includes(event.key)) return;\n event.preventDefault();\n\n if (event.key === 'Enter') {\n const { hoveredIndex } = this.state;\n\n this.setValue(hoveredIndex + 1);\n } else {\n const { value } = this.asProps;\n const { hoveredIndex } = this.state;\n\n const direction = event.key === 'ArrowLeft' ? -1 : 1;\n let newValue = hoveredIndex === -1 ? value + direction : hoveredIndex + 1 + direction;\n\n if (newValue > MAX) newValue = MAX;\n if (newValue < MIN) newValue = MIN;\n\n this.setState({ hoveredIndex: newValue - 1 });\n }\n };\n\n getLabelText() {\n const { hoveredIndex } = this.state;\n const { readonly, value, getI18nText } = this.asProps;\n\n if (readonly) {\n return getI18nText('FeedbackRating.SliderRating.aria-valuetext.readonly', {\n selectedRating: value,\n max: MAX,\n });\n }\n\n if (value) {\n const selectedRating = hoveredIndex > -1 ? hoveredIndex + 1 : value;\n return getI18nText('FeedbackRating.SliderRating.aria-valuetext', {\n selectedRating: selectedRating,\n max: MAX,\n });\n }\n\n return hoveredIndex === -1\n ? getI18nText('FeedbackRating.SliderRating.aria-valuetext.empty')\n : getI18nText('FeedbackRating.SliderRating.aria-valuetext', {\n selectedRating: hoveredIndex + 1,\n max: MAX,\n });\n }\n\n render() {\n const { styles, readonly, getI18nText, value } = this.asProps;\n const { hoveredIndex } = this.state;\n\n const SSliderRating = Root;\n const label = this.getLabelText();\n\n if (readonly) {\n return (\n <SSliderRating render={Flex} gap={1} role='img' aria-label={label}>\n {new Array(MAX).fill(null).map((_, index) => {\n return (\n <Box key={index} position='relative'>\n <SliderRating.Star />\n </Box>\n );\n })}\n </SSliderRating>\n );\n }\n\n const hoverValue = hoveredIndex + 1;\n\n const editModeLabel =\n hoverValue > 0 || value\n ? `${label}. ${getI18nText(\n 'FeedbackRating.SliderRating.ScreenReaderOnly.sliderDescriber',\n )}.`\n : label;\n\n return sstyled(styles)(\n <SSliderRating\n render={Flex}\n gap={1}\n tabIndex={0}\n onMouseLeave={this.handleMouseLeave}\n onKeyDown={this.handleKeyDown}\n role='slider'\n aria-orientation='horizontal'\n aria-valuemin={MIN}\n aria-valuemax={MAX}\n aria-valuetext={editModeLabel}\n aria-valuenow={hoverValue}\n >\n {new Array(MAX).fill(null).map((_, index) => {\n return (\n <Box key={index} position='relative'>\n <SliderRating.Star />\n </Box>\n );\n })}\n </SSliderRating>,\n );\n }\n}\n\nfunction Star(props: StarProps) {\n const SStar = Root;\n return sstyled(props.styles)(\n <SStar\n render={Box}\n tag='svg'\n role='none'\n width='24'\n height='24'\n viewBox='0 0 24 24'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n {props.filled\n ? (\n <path d='M11.646 1.214a.4.4 0 0 1 .708 0l3.314 6.293 7 1.214a.4.4 0 0 1 .219.673l-4.952 5.104 1.012 7.044a.4.4 0 0 1-.573.416L12 18.818l-6.374 3.14a.4.4 0 0 1-.572-.416l1.01-7.044-4.95-5.104a.4.4 0 0 1 .218-.673l7-1.214 3.314-6.293Z' />\n )\n : (\n <path\n d='M14.358 9.31 12 4.834 9.642 9.31l-4.985.864 3.526 3.634-.72 5.014L12 16.588l4.537 2.235-.72-5.014 3.526-3.634-4.985-.864Zm8.31-.59a.4.4 0 0 1 .219.674l-4.952 5.104 1.012 7.044a.4.4 0 0 1-.573.416L12 18.818l-6.374 3.14a.4.4 0 0 1-.572-.416l1.01-7.044-4.95-5.104a.4.4 0 0 1 .218-.673l7-1.214 3.314-6.293a.4.4 0 0 1 .708 0l3.314 6.293 7 1.214Z'\n fillRule='evenodd'\n clipRule='evenodd'\n />\n )}\n </SStar>,\n );\n}\nStar.displayName = 'Star';\n\nconst SliderRating = createComponent(SliderRatingRoot, {\n Star,\n}) as Intergalactic.Component<typeof Flex, SliderRatingProps> & {\n Star: Intergalactic.Component<typeof Box, StarProps>;\n};\n\nexport default SliderRating;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SliderRating.js","names":["Flex","Box","createComponent","Component","Root","sstyled","i18nEnhance","uniqueIDEnhancement","React","style","_sstyled","insert","localizedMessages","MIN","MAX","SliderRatingRoot","constructor","args","_defineProperty","hoveredIndex","clickedIndex","newValue","_e","readonly","asProps","setValue","index","setState","onChange","value","event","includes","key","preventDefault","state","direction","getStarProps","_","filled","onClick","handleClick","onMouseEnter","undefined","handleMouseEnder","hovered","getLabelText","getI18nText","selectedRating","max","render","_ref","_ref3","styles","SSliderRating","label","createElement","_assignProps","Array","fill","map","SliderRating","Star","hoverValue","editModeLabel","cn","_assignProps2","handleMouseLeave","handleKeyDown","i18n","locale","props","_ref2","arguments[0]","_ref4","SStar","_assignProps3","displayName"],"sources":["../../../../src/component/slider-rating/SliderRating.tsx"],"sourcesContent":["import { Flex, Box, type BoxProps } from '@semcore/base-components';\nimport { createComponent, Component, Root, sstyled, type Intergalactic } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport React from 'react';\n\nimport style from '../../style/slider-rating.shadow.css';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\n\ntype SliderRatingProps = {\n value: number;\n onChange?: (value: number) => void;\n readonly?: boolean;\n};\n\ntype State = {\n hoveredIndex: number;\n clickedIndex: number;\n};\n\ntype StarProps = BoxProps & {\n filled?: boolean;\n};\n\nconst MIN = 1;\nconst MAX = 5;\n\nclass SliderRatingRoot extends Component<\n SliderRatingProps,\n typeof SliderRatingRoot.enhance,\n {},\n {},\n State\n> {\n static displayName = 'SliderRating';\n static style = style;\n\n static enhance = [uniqueIDEnhancement(), i18nEnhance(localizedMessages)] as const;\n\n state: State = {\n hoveredIndex: -1,\n clickedIndex: -1,\n };\n\n static defaultProps = {\n i18n: localizedMessages,\n locale: 'en',\n };\n\n handleClick = (newValue: number) => (_e: React.SyntheticEvent<SVGElement>) => {\n const { readonly } = this.asProps;\n\n if (!readonly) {\n this.setValue(newValue);\n }\n };\n\n handleMouseEnder = (index: number) => () => {\n this.setState({ hoveredIndex: index });\n };\n\n handleMouseLeave = () => {\n this.setState({ hoveredIndex: -1 });\n };\n\n getStarProps(_: any, index: number) {\n const { value, readonly } = this.asProps;\n const { hoveredIndex } = this.state;\n\n return {\n filled: value ? index + 1 <= value || index <= hoveredIndex : index <= hoveredIndex,\n onClick: this.handleClick(index + 1),\n onMouseEnter: readonly ? undefined : this.handleMouseEnder(index),\n hovered: hoveredIndex === index,\n };\n }\n\n setValue = (newValue: number) => {\n const { onChange, value } = this.asProps;\n\n if (onChange) {\n onChange(newValue);\n }\n\n if (newValue <= value) {\n this.setState({ clickedIndex: newValue, hoveredIndex: -1 });\n } else {\n this.setState({ clickedIndex: -1, hoveredIndex: -1 });\n }\n };\n\n handleKeyDown = (event: React.KeyboardEvent) => {\n if (!['ArrowLeft', 'ArrowRight', 'Enter'].includes(event.key)) return;\n event.preventDefault();\n\n if (event.key === 'Enter') {\n const { hoveredIndex } = this.state;\n\n this.setValue(hoveredIndex + 1);\n } else {\n const { value } = this.asProps;\n const { hoveredIndex } = this.state;\n\n const direction = event.key === 'ArrowLeft' ? -1 : 1;\n let newValue = hoveredIndex === -1 ? value + direction : hoveredIndex + 1 + direction;\n\n if (newValue > MAX) newValue = MAX;\n if (newValue < MIN) newValue = MIN;\n\n this.setState({ hoveredIndex: newValue - 1 });\n }\n };\n\n getLabelText() {\n const { hoveredIndex } = this.state;\n const { readonly, value, getI18nText } = this.asProps;\n\n if (readonly) {\n return getI18nText('FeedbackRating.SliderRating.aria-valuetext.readonly', {\n selectedRating: value,\n max: MAX,\n });\n }\n\n if (value) {\n const selectedRating = hoveredIndex > -1 ? hoveredIndex + 1 : value;\n return getI18nText('FeedbackRating.SliderRating.aria-valuetext', {\n selectedRating: selectedRating,\n max: MAX,\n });\n }\n\n return hoveredIndex === -1\n ? getI18nText('FeedbackRating.SliderRating.aria-valuetext.empty')\n : getI18nText('FeedbackRating.SliderRating.aria-valuetext', {\n selectedRating: hoveredIndex + 1,\n max: MAX,\n });\n }\n\n render() {\n const { styles, readonly, getI18nText, value } = this.asProps;\n const { hoveredIndex } = this.state;\n\n const SSliderRating = Root;\n const label = this.getLabelText();\n\n if (readonly) {\n return (\n <SSliderRating render={Flex} gap={1} role='img' aria-label={label}>\n {new Array(MAX).fill(null).map((_, index) => <SliderRating.Star key={index} />)}\n </SSliderRating>\n );\n }\n\n const hoverValue = hoveredIndex + 1;\n\n const editModeLabel =\n hoverValue > 0 || value\n ? `${label}. ${getI18nText(\n 'FeedbackRating.SliderRating.ScreenReaderOnly.sliderDescriber',\n )}.`\n : label;\n\n return sstyled(styles)(\n <SSliderRating\n render={Flex}\n gap={1}\n tabIndex={0}\n onMouseLeave={this.handleMouseLeave}\n onKeyDown={this.handleKeyDown}\n role='slider'\n aria-orientation='horizontal'\n aria-valuemin={MIN}\n aria-valuemax={MAX}\n aria-valuetext={editModeLabel}\n aria-valuenow={hoverValue}\n >\n {new Array(MAX).fill(null).map((_, index) => <SliderRating.Star key={index} />)}\n </SSliderRating>,\n );\n }\n}\n\nfunction Star(props: StarProps) {\n const SStar = Root;\n return sstyled(props.styles)(\n <SStar\n render={Box}\n tag='svg'\n role='none'\n width='24'\n height='24'\n viewBox='0 0 24 24'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n {props.filled\n ? (\n <path d='M11.646 1.214a.4.4 0 0 1 .708 0l3.314 6.293 7 1.214a.4.4 0 0 1 .219.673l-4.952 5.104 1.012 7.044a.4.4 0 0 1-.573.416L12 18.818l-6.374 3.14a.4.4 0 0 1-.572-.416l1.01-7.044-4.95-5.104a.4.4 0 0 1 .218-.673l7-1.214 3.314-6.293Z' />\n )\n : (\n <path\n d='M14.358 9.31 12 4.834 9.642 9.31l-4.985.864 3.526 3.634-.72 5.014L12 16.588l4.537 2.235-.72-5.014 3.526-3.634-4.985-.864Zm8.31-.59a.4.4 0 0 1 .219.674l-4.952 5.104 1.012 7.044a.4.4 0 0 1-.573.416L12 18.818l-6.374 3.14a.4.4 0 0 1-.572-.416l1.01-7.044-4.95-5.104a.4.4 0 0 1 .218-.673l7-1.214 3.314-6.293a.4.4 0 0 1 .708 0l3.314 6.293 7 1.214Z'\n fillRule='evenodd'\n clipRule='evenodd'\n />\n )}\n </SStar>,\n );\n}\nStar.displayName = 'Star';\n\nconst SliderRating = createComponent(SliderRatingRoot, {\n Star,\n}) as Intergalactic.Component<typeof Flex, SliderRatingProps> & {\n Star: Intergalactic.Component<typeof Box, StarProps>;\n};\n\nexport default SliderRating;\n"],"mappings":"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","ignoreList":[]}
@@ -81,12 +81,12 @@ class FeedbackRatingRoot extends Component {
81
81
  }, config.label) : config.label;
82
82
  const isDescriptionReactFragment = ((_a = config.description) == null ? void 0 : _a.type) === React.Fragment;
83
83
  return /* @__PURE__ */ React.createElement(Flex, {
84
+ key: config.key,
84
85
  direction: "column"
85
86
  }, /* @__PURE__ */ React.createElement(Flex, {
86
87
  tag: "label",
87
88
  mt: 4,
88
- htmlFor: config.key,
89
- key: config.key
89
+ htmlFor: config.key
90
90
  }, label), /* @__PURE__ */ React.createElement(FeedbackRating.Item, {
91
91
  name: config.key,
92
92
  validate: config.validate,
@@ -154,12 +154,9 @@ class SliderRatingRoot extends Component {
154
154
  "gap": 1,
155
155
  "role": "img",
156
156
  "aria-label": label
157
- }, _ref), new Array(MAX).fill(null).map((_, index) => {
158
- return /* @__PURE__ */ React.createElement(Box, {
159
- key: index,
160
- position: "relative"
161
- }, /* @__PURE__ */ React.createElement(SliderRating.Star, null));
162
- }));
157
+ }, _ref), new Array(MAX).fill(null).map((_, index) => /* @__PURE__ */ React.createElement(SliderRating.Star, {
158
+ key: index
159
+ })));
163
160
  }
164
161
  const hoverValue = hoveredIndex + 1;
165
162
  const editModeLabel = hoverValue > 0 || value ? `${label}. ${getI18nText("FeedbackRating.SliderRating.ScreenReaderOnly.sliderDescriber")}.` : label;
@@ -176,12 +173,9 @@ class SliderRatingRoot extends Component {
176
173
  "aria-valuetext": editModeLabel,
177
174
  "aria-valuenow": hoverValue
178
175
  }, _ref)
179
- }), new Array(MAX).fill(null).map((_, index) => {
180
- return /* @__PURE__ */ React.createElement(Box, {
181
- key: index,
182
- position: "relative"
183
- }, /* @__PURE__ */ React.createElement(SliderRating.Star, null));
184
- }));
176
+ }), new Array(MAX).fill(null).map((_, index) => /* @__PURE__ */ React.createElement(SliderRating.Star, {
177
+ key: index
178
+ })));
185
179
  }
186
180
  }
187
181
  _defineProperty(SliderRatingRoot, "displayName", "SliderRating");
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/feedback-form",
3
3
  "description": "Semrush Feedback Form Component",
4
- "version": "17.0.0-prerelease.27",
4
+ "version": "17.0.0-prerelease.30",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",
@@ -14,19 +14,19 @@
14
14
  "types": "./lib/types/index.d.ts"
15
15
  },
16
16
  "dependencies": {
17
- "@semcore/checkbox": "^17.0.0-prerelease.27",
18
- "@semcore/notice-bubble": "^17.0.0-prerelease.27",
19
- "@semcore/typography": "^17.0.0-prerelease.27",
20
- "@semcore/link": "^17.0.0-prerelease.27",
21
- "@semcore/modal": "^17.0.0-prerelease.27",
17
+ "@semcore/checkbox": "^17.0.0-prerelease.30",
18
+ "@semcore/notice-bubble": "^17.0.0-prerelease.30",
19
+ "@semcore/typography": "^17.0.0-prerelease.30",
20
+ "@semcore/link": "^17.0.0-prerelease.30",
21
+ "@semcore/modal": "^17.0.0-prerelease.30",
22
22
  "@semcore/illustration": "17.0.0-prerelease.4",
23
- "@semcore/textarea": "^17.0.0-prerelease.27",
24
- "@semcore/input": "^17.0.0-prerelease.27",
23
+ "@semcore/textarea": "^17.0.0-prerelease.30",
24
+ "@semcore/input": "^17.0.0-prerelease.30",
25
25
  "final-form": "4.20.7",
26
- "@semcore/button": "^17.0.0-prerelease.27",
27
- "@semcore/notice": "^17.0.0-prerelease.27",
28
- "@semcore/spin-container": "^17.0.0-prerelease.27",
29
- "@semcore/tooltip": "^17.0.0-prerelease.27",
26
+ "@semcore/button": "^17.0.0-prerelease.30",
27
+ "@semcore/notice": "^17.0.0-prerelease.30",
28
+ "@semcore/spin-container": "^17.0.0-prerelease.30",
29
+ "@semcore/tooltip": "^17.0.0-prerelease.30",
30
30
  "final-form-focus": "1.1.2",
31
31
  "react-final-form": "6.5.9"
32
32
  },
@@ -41,10 +41,10 @@
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/final-form-focus": "1.1.7",
44
- "@semcore/core": "17.0.0-prerelease.27",
44
+ "@semcore/core": "17.0.0-prerelease.30",
45
45
  "@semcore/testing-utils": "1.0.0",
46
- "@semcore/base-components": "17.0.0-prerelease.27",
47
- "@semcore/icon": "16.7.2-prerelease.27"
46
+ "@semcore/base-components": "17.0.0-prerelease.30",
47
+ "@semcore/icon": "16.7.2-prerelease.30"
48
48
  },
49
49
  "overrides": {
50
50
  "final-form": {