@os-design/core 1.0.134 → 1.0.137
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Alert/index.js.map +1 -1
- package/dist/cjs/Avatar/index.js.map +1 -1
- package/dist/cjs/Avatar/utils/nameToInitials.js.map +1 -1
- package/dist/cjs/Avatar/utils/strToHue.js.map +1 -1
- package/dist/cjs/AvatarSkeleton/index.js.map +1 -1
- package/dist/cjs/Breadcrumb/index.js.map +1 -1
- package/dist/cjs/BreadcrumbItem/index.js.map +1 -1
- package/dist/cjs/Button/ButtonContent.js.map +1 -1
- package/dist/cjs/Button/index.js.map +1 -1
- package/dist/cjs/Button/utils/useButtonColors.js.map +1 -1
- package/dist/cjs/Checkbox/index.js.map +1 -1
- package/dist/cjs/CheckboxSkeleton/index.js.map +1 -1
- package/dist/cjs/DatePicker/DatePickerCalendar.js.map +1 -1
- package/dist/cjs/DatePicker/index.js.map +1 -1
- package/dist/cjs/Drawer/index.js.map +1 -1
- package/dist/cjs/Form/FormConfigContext.js.map +1 -1
- package/dist/cjs/Form/index.js.map +1 -1
- package/dist/cjs/FormDivider/index.js.map +1 -1
- package/dist/cjs/FormItem/index.js.map +1 -1
- package/dist/cjs/FormItem/utils/firstChildHasType.js.map +1 -1
- package/dist/cjs/GlobalStyles/index.js.map +1 -1
- package/dist/cjs/GlobalStyles/resetStyles.js.map +1 -1
- package/dist/cjs/GlobalStyles/typographyStyles.js.map +1 -1
- package/dist/cjs/HeaderSkeleton/index.js.map +1 -1
- package/dist/cjs/Image/index.js.map +1 -1
- package/dist/cjs/ImageSkeleton/index.js.map +1 -1
- package/dist/cjs/Input/index.js.map +1 -1
- package/dist/cjs/Input/utils/getFocusableElements.js.map +1 -1
- package/dist/cjs/InputNumber/index.js.map +1 -1
- package/dist/cjs/InputNumber/utils/defaultLocale.js.map +1 -1
- package/dist/cjs/InputPassword/index.js.map +1 -1
- package/dist/cjs/InputPassword/utils/defaultLocale.js.map +1 -1
- package/dist/cjs/InputSearch/index.js.map +1 -1
- package/dist/cjs/InputSearch/utils/defaultLocale.js.map +1 -1
- package/dist/cjs/InputSkeleton/index.js.map +1 -1
- package/dist/cjs/Layout/LayoutContext.js.map +1 -1
- package/dist/cjs/Layout/index.js.map +1 -1
- package/dist/cjs/Link/index.js.map +1 -1
- package/dist/cjs/LinkButton/index.js.map +1 -1
- package/dist/cjs/List/WindowScroller.js.map +1 -1
- package/dist/cjs/List/index.js +2 -4
- package/dist/cjs/List/index.js.map +1 -1
- package/dist/cjs/List/utils/bodyPointerEvents.js.map +1 -1
- package/dist/cjs/List/utils/frameTimeout.js.map +1 -1
- package/dist/cjs/List/utils/useRWLoadNext.js.map +1 -1
- package/dist/cjs/ListItem/ListItemContent.js.map +1 -1
- package/dist/cjs/ListItem/index.js.map +1 -1
- package/dist/cjs/ListItemLink/index.js.map +1 -1
- package/dist/cjs/ListSkeleton/index.js.map +1 -1
- package/dist/cjs/LogoLink/index.js.map +1 -1
- package/dist/cjs/Menu/index.js.map +1 -1
- package/dist/cjs/Menu/utils/useFocusWithArrows.js.map +1 -1
- package/dist/cjs/MenuDivider/index.js.map +1 -1
- package/dist/cjs/MenuGroup/index.js.map +1 -1
- package/dist/cjs/MenuItem/index.js.map +1 -1
- package/dist/cjs/Modal/index.js.map +1 -1
- package/dist/cjs/Modal/utils/defaultLocale.js.map +1 -1
- package/dist/cjs/Navigation/index.js.map +1 -1
- package/dist/cjs/Navigation/utils/useScrollFlags.js.map +1 -1
- package/dist/cjs/NavigationItem/index.js.map +1 -1
- package/dist/cjs/PageContent/index.js.map +1 -1
- package/dist/cjs/PageHeader/index.js.map +1 -1
- package/dist/cjs/PageHeader/utils/defaultLocale.js.map +1 -1
- package/dist/cjs/PageHeaderInputSearch/index.js.map +1 -1
- package/dist/cjs/PageHeaderInputSearch/utils/defaultLocale.js.map +1 -1
- package/dist/cjs/PageHeaderSkeleton/index.js.map +1 -1
- package/dist/cjs/ParagraphSkeleton/index.js.map +1 -1
- package/dist/cjs/Popover/index.js.map +1 -1
- package/dist/cjs/Popover/utils/usePopoverPosition.js.map +1 -1
- package/dist/cjs/Progress/index.js.map +1 -1
- package/dist/cjs/RadioGroup/index.js +4 -6
- package/dist/cjs/RadioGroup/index.js.map +1 -1
- package/dist/cjs/RadioGroupSkeleton/index.js.map +1 -1
- package/dist/cjs/Result/index.js.map +1 -1
- package/dist/cjs/ScrollButton/index.js.map +1 -1
- package/dist/cjs/ScrollButton/utils/useContainerPosition.js.map +1 -1
- package/dist/cjs/ScrollButton/utils/useVisibility.js.map +1 -1
- package/dist/cjs/Select/SelectList.js +2 -4
- package/dist/cjs/Select/SelectList.js.map +1 -1
- package/dist/cjs/Select/SelectToggle.js.map +1 -1
- package/dist/cjs/Select/index.js.map +1 -1
- package/dist/cjs/Select/utils/defaultLocale.js.map +1 -1
- package/dist/cjs/Skeleton/index.js.map +1 -1
- package/dist/cjs/Switch/index.js.map +1 -1
- package/dist/cjs/SwitchSkeleton/index.js.map +1 -1
- package/dist/cjs/Tag/index.js.map +1 -1
- package/dist/cjs/TagLink/index.js.map +1 -1
- package/dist/cjs/TagList/index.js.map +1 -1
- package/dist/cjs/TagListSkeleton/index.js.map +1 -1
- package/dist/cjs/TagSkeleton/index.js.map +1 -1
- package/dist/cjs/TextArea/index.js.map +1 -1
- package/dist/cjs/TextAreaSkeleton/index.js.map +1 -1
- package/dist/cjs/ThemeSwitcher/index.js.map +1 -1
- package/dist/cjs/YouTubeVideo/index.js.map +1 -1
- package/dist/cjs/emotion.d.js.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/message/AlertIcon.js.map +1 -1
- package/dist/cjs/message/Message.js.map +1 -1
- package/dist/cjs/message/index.js.map +1 -1
- package/dist/cjs/message/styles.js.map +1 -1
- package/dist/esm/Alert/index.js.map +1 -1
- package/dist/esm/Avatar/index.js.map +1 -1
- package/dist/esm/Avatar/utils/nameToInitials.js.map +1 -1
- package/dist/esm/Avatar/utils/strToHue.js.map +1 -1
- package/dist/esm/AvatarSkeleton/index.js.map +1 -1
- package/dist/esm/Breadcrumb/index.js.map +1 -1
- package/dist/esm/BreadcrumbItem/index.js.map +1 -1
- package/dist/esm/Button/ButtonContent.js.map +1 -1
- package/dist/esm/Button/index.js.map +1 -1
- package/dist/esm/Button/utils/useButtonColors.js.map +1 -1
- package/dist/esm/Checkbox/index.js.map +1 -1
- package/dist/esm/CheckboxSkeleton/index.js.map +1 -1
- package/dist/esm/DatePicker/DatePickerCalendar.js.map +1 -1
- package/dist/esm/DatePicker/index.js.map +1 -1
- package/dist/esm/Drawer/index.js.map +1 -1
- package/dist/esm/Form/FormConfigContext.js.map +1 -1
- package/dist/esm/Form/index.js.map +1 -1
- package/dist/esm/FormDivider/index.js.map +1 -1
- package/dist/esm/FormItem/index.js.map +1 -1
- package/dist/esm/FormItem/utils/firstChildHasType.js.map +1 -1
- package/dist/esm/GlobalStyles/index.js.map +1 -1
- package/dist/esm/GlobalStyles/resetStyles.js.map +1 -1
- package/dist/esm/GlobalStyles/typographyStyles.js.map +1 -1
- package/dist/esm/HeaderSkeleton/index.js.map +1 -1
- package/dist/esm/Image/index.js.map +1 -1
- package/dist/esm/ImageSkeleton/index.js.map +1 -1
- package/dist/esm/Input/index.js.map +1 -1
- package/dist/esm/Input/utils/getFocusableElements.js.map +1 -1
- package/dist/esm/InputNumber/index.js.map +1 -1
- package/dist/esm/InputNumber/utils/defaultLocale.js.map +1 -1
- package/dist/esm/InputPassword/index.js.map +1 -1
- package/dist/esm/InputPassword/utils/defaultLocale.js.map +1 -1
- package/dist/esm/InputSearch/index.js.map +1 -1
- package/dist/esm/InputSearch/utils/defaultLocale.js.map +1 -1
- package/dist/esm/InputSkeleton/index.js.map +1 -1
- package/dist/esm/Layout/LayoutContext.js.map +1 -1
- package/dist/esm/Layout/index.js.map +1 -1
- package/dist/esm/Link/index.js.map +1 -1
- package/dist/esm/LinkButton/index.js.map +1 -1
- package/dist/esm/List/WindowScroller.js.map +1 -1
- package/dist/esm/List/index.js +3 -5
- package/dist/esm/List/index.js.map +1 -1
- package/dist/esm/List/utils/bodyPointerEvents.js.map +1 -1
- package/dist/esm/List/utils/frameTimeout.js.map +1 -1
- package/dist/esm/List/utils/useRWLoadNext.js.map +1 -1
- package/dist/esm/ListItem/ListItemContent.js.map +1 -1
- package/dist/esm/ListItem/index.js.map +1 -1
- package/dist/esm/ListItemLink/index.js.map +1 -1
- package/dist/esm/ListSkeleton/index.js.map +1 -1
- package/dist/esm/LogoLink/index.js.map +1 -1
- package/dist/esm/Menu/index.js.map +1 -1
- package/dist/esm/Menu/utils/useFocusWithArrows.js.map +1 -1
- package/dist/esm/MenuDivider/index.js.map +1 -1
- package/dist/esm/MenuGroup/index.js.map +1 -1
- package/dist/esm/MenuItem/index.js.map +1 -1
- package/dist/esm/Modal/index.js.map +1 -1
- package/dist/esm/Modal/utils/defaultLocale.js.map +1 -1
- package/dist/esm/Navigation/index.js.map +1 -1
- package/dist/esm/Navigation/utils/useScrollFlags.js.map +1 -1
- package/dist/esm/NavigationItem/index.js.map +1 -1
- package/dist/esm/PageContent/index.js.map +1 -1
- package/dist/esm/PageHeader/index.js.map +1 -1
- package/dist/esm/PageHeader/utils/defaultLocale.js.map +1 -1
- package/dist/esm/PageHeaderInputSearch/index.js.map +1 -1
- package/dist/esm/PageHeaderInputSearch/utils/defaultLocale.js.map +1 -1
- package/dist/esm/PageHeaderSkeleton/index.js.map +1 -1
- package/dist/esm/ParagraphSkeleton/index.js.map +1 -1
- package/dist/esm/Popover/index.js.map +1 -1
- package/dist/esm/Popover/utils/usePopoverPosition.js.map +1 -1
- package/dist/esm/Progress/index.js.map +1 -1
- package/dist/esm/RadioGroup/index.js +3 -5
- package/dist/esm/RadioGroup/index.js.map +1 -1
- package/dist/esm/RadioGroupSkeleton/index.js.map +1 -1
- package/dist/esm/Result/index.js.map +1 -1
- package/dist/esm/ScrollButton/index.js.map +1 -1
- package/dist/esm/ScrollButton/utils/useContainerPosition.js.map +1 -1
- package/dist/esm/ScrollButton/utils/useVisibility.js.map +1 -1
- package/dist/esm/Select/SelectList.js +4 -6
- package/dist/esm/Select/SelectList.js.map +1 -1
- package/dist/esm/Select/SelectToggle.js.map +1 -1
- package/dist/esm/Select/index.js.map +1 -1
- package/dist/esm/Select/utils/defaultLocale.js.map +1 -1
- package/dist/esm/Skeleton/index.js.map +1 -1
- package/dist/esm/Switch/index.js.map +1 -1
- package/dist/esm/SwitchSkeleton/index.js.map +1 -1
- package/dist/esm/Tag/index.js.map +1 -1
- package/dist/esm/TagLink/index.js.map +1 -1
- package/dist/esm/TagList/index.js.map +1 -1
- package/dist/esm/TagListSkeleton/index.js.map +1 -1
- package/dist/esm/TagSkeleton/index.js.map +1 -1
- package/dist/esm/TextArea/index.js.map +1 -1
- package/dist/esm/TextAreaSkeleton/index.js.map +1 -1
- package/dist/esm/ThemeSwitcher/index.js.map +1 -1
- package/dist/esm/YouTubeVideo/index.js.map +1 -1
- package/dist/esm/emotion.d.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/message/AlertIcon.js.map +1 -1
- package/dist/esm/message/Message.js.map +1 -1
- package/dist/esm/message/index.js.map +1 -1
- package/dist/esm/message/styles.js.map +1 -1
- package/dist/types/List/index.d.ts.map +1 -1
- package/dist/types/RadioGroup/index.d.ts.map +1 -1
- package/dist/types/Select/SelectList.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["infoContainerStyles","p","type","css","clr","theme","alertInfoColorBg","successContainerStyles","alertSuccessColorBg","errorContainerStyles","alertErrorColorBg","Container","styled","omitEmotionProps","borderRadius","colorText","sizeStyles","infoIconContainerStyles","alertInfoColorIcon","successIconContainerStyles","alertSuccessColorIcon","errorIconContainerStyles","alertErrorColorIcon","IconContainer","typeIconMap","info","InfoCircle","success","CheckCircle","error","CloseCircle","Alert","forwardRef","ref","size","children","rest","Icon","useMemo","displayName"],"sources":["../../../src/Alert/index.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from 'react';\nimport { sizeStyles, WithSize } from '@os-design/styles';\nimport { omitEmotionProps } from '@os-design/utils';\nimport { clr } from '@os-design/theming';\nimport { CheckCircle, CloseCircle, InfoCircle } from '@os-design/icons';\nimport styled from '@emotion/styled';\nimport { css } from '@emotion/react';\n\ntype JsxDivProps = Omit<JSX.IntrinsicElements['div'], 'ref'>;\nexport interface AlertProps extends JsxDivProps, WithSize {\n /**\n * Type of styles.\n */\n type: 'info' | 'success' | 'error';\n}\n\nconst infoContainerStyles = (p) =>\n p.type === 'info' &&\n css`\n background-color: ${clr(p.theme.alertInfoColorBg)};\n `;\n\nconst successContainerStyles = (p) =>\n p.type === 'success' &&\n css`\n background-color: ${clr(p.theme.alertSuccessColorBg)};\n `;\n\nconst errorContainerStyles = (p) =>\n p.type === 'error' &&\n css`\n background-color: ${clr(p.theme.alertErrorColorBg)};\n `;\n\ntype ContainerProps = Pick<AlertProps, 'type' | 'size'>;\nconst Container = styled(\n 'div',\n omitEmotionProps('type', 'size')\n)<ContainerProps>`\n display: flex;\n flex-direction: row;\n align-items: center;\n\n padding: 1em;\n border-radius: ${(p) => p.theme.borderRadius}em;\n color: ${(p) => clr(p.theme.colorText)};\n\n ${infoContainerStyles};\n ${successContainerStyles};\n ${errorContainerStyles};\n ${sizeStyles};\n`;\n\nconst infoIconContainerStyles = (p) =>\n p.type === 'info' &&\n css`\n color: ${clr(p.theme.alertInfoColorIcon)};\n `;\n\nconst successIconContainerStyles = (p) =>\n p.type === 'success' &&\n css`\n color: ${clr(p.theme.alertSuccessColorIcon)};\n `;\n\nconst errorIconContainerStyles = (p) =>\n p.type === 'error' &&\n css`\n color: ${clr(p.theme.alertErrorColorIcon)};\n `;\n\ntype IconContainerProps = Pick<AlertProps, 'type'>;\nconst IconContainer = styled('i', omitEmotionProps('type'))<IconContainerProps>`\n display: flex;\n align-items: center;\n\n margin-right: 0.3em;\n font-size: 1.4em;\n\n ${infoIconContainerStyles};\n ${successIconContainerStyles};\n ${errorIconContainerStyles};\n`;\n\nconst typeIconMap = {\n info: InfoCircle,\n success: CheckCircle,\n error: CloseCircle,\n};\n\n/**\n * The component for feedback.\n */\nconst Alert = forwardRef<HTMLDivElement, AlertProps>(\n ({ type, size, children, ...rest }, ref) => {\n const Icon = useMemo(() => typeIconMap[type], [type]);\n\n return (\n <Container size={size} type={type} role='alert' {...rest} ref={ref}>\n <IconContainer type={type}>\n <Icon />\n </IconContainer>\n <span>{children}</span>\n </Container>\n );\n }\n);\n\nAlert.displayName = 'Alert';\n\nexport default Alert;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;AAUA,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,CAAD;EAAA,OAC1BA,CAAC,CAACC,IAAF,KAAW,MAAX,QACAC,WADA,wGAEsB,IAAAC,YAAA,EAAIH,CAAC,CAACI,KAAF,CAAQC,gBAAZ,CAFtB,CAD0B;AAAA,CAA5B;;AAMA,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACN,CAAD;EAAA,OAC7BA,CAAC,CAACC,IAAF,KAAW,SAAX,QACAC,WADA,0GAEsB,IAAAC,YAAA,EAAIH,CAAC,CAACI,KAAF,CAAQG,mBAAZ,CAFtB,CAD6B;AAAA,CAA/B;;AAMA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACR,CAAD;EAAA,OAC3BA,CAAC,CAACC,IAAF,KAAW,OAAX,QACAC,WADA,0GAEsB,IAAAC,YAAA,EAAIH,CAAC,CAACI,KAAF,CAAQK,iBAAZ,CAFtB,CAD2B;AAAA,CAA7B;;AAOA,IAAMC,SAAS,GAAG,IAAAC,kBAAA,EAChB,KADgB,EAEhB,IAAAC,uBAAA,EAAiB,MAAjB,EAAyB,MAAzB,CAFgB,CAAH,+OASI,UAACZ,CAAD;EAAA,OAAOA,CAAC,CAACI,KAAF,CAAQS,YAAf;AAAA,CATJ,EAUJ,UAACb,CAAD;EAAA,OAAO,IAAAG,YAAA,EAAIH,CAAC,CAACI,KAAF,CAAQU,SAAZ,CAAP;AAAA,CAVI,EAYXf,mBAZW,EAaXO,sBAbW,EAcXE,oBAdW,EAeXO,kBAfW,CAAf;;AAkBA,IAAMC,uBAAuB,GAAG,SAA1BA,uBAA0B,CAAChB,CAAD;EAAA,OAC9BA,CAAC,CAACC,IAAF,KAAW,MAAX,QACAC,WADA,+FAEW,IAAAC,YAAA,EAAIH,CAAC,CAACI,KAAF,CAAQa,kBAAZ,CAFX,CAD8B;AAAA,CAAhC;;AAMA,IAAMC,0BAA0B,GAAG,SAA7BA,0BAA6B,CAAClB,CAAD;EAAA,OACjCA,CAAC,CAACC,IAAF,KAAW,SAAX,QACAC,WADA,+FAEW,IAAAC,YAAA,EAAIH,CAAC,CAACI,KAAF,CAAQe,qBAAZ,CAFX,CADiC;AAAA,CAAnC;;AAMA,IAAMC,wBAAwB,GAAG,SAA3BA,wBAA2B,CAACpB,CAAD;EAAA,OAC/BA,CAAC,CAACC,IAAF,KAAW,OAAX,QACAC,WADA,+FAEW,IAAAC,YAAA,EAAIH,CAAC,CAACI,KAAF,CAAQiB,mBAAZ,CAFX,CAD+B;AAAA,CAAjC;;AAOA,IAAMC,aAAa,GAAG,IAAAX,kBAAA,EAAO,GAAP,EAAY,IAAAC,uBAAA,EAAiB,MAAjB,CAAZ,CAAH,gMAOfI,uBAPe,EAQfE,0BARe,EASfE,wBATe,CAAnB;AAYA,IAAMG,WAAW,GAAG;EAClBC,IAAI,EAAEC,iBADY;EAElBC,OAAO,EAAEC,kBAFS;EAGlBC,KAAK,EAAEC;AAHW,CAApB;AAMA;AACA;AACA;;AACA,IAAMC,KAAK,gBAAG,IAAAC,iBAAA,EACZ,gBAAoCC,GAApC,EAA4C;EAAA,IAAzC/B,IAAyC,QAAzCA,IAAyC;EAAA,IAAnCgC,IAAmC,QAAnCA,IAAmC;EAAA,IAA7BC,QAA6B,QAA7BA,QAA6B;EAAA,IAAhBC,IAAgB;;EAC1C,IAAMC,IAAI,GAAG,IAAAC,cAAA,EAAQ;IAAA,OAAMd,WAAW,CAACtB,IAAD,CAAjB;EAAA,CAAR,EAAiC,CAACA,IAAD,CAAjC,CAAb;EAEA,oBACE,gCAAC,SAAD;IAAW,IAAI,EAAEgC,IAAjB;IAAuB,IAAI,EAAEhC,IAA7B;IAAmC,IAAI,EAAC;EAAxC,GAAoDkC,IAApD;IAA0D,GAAG,EAAEH;EAA/D,iBACE,gCAAC,aAAD;IAAe,IAAI,EAAE/B;EAArB,gBACE,gCAAC,IAAD,OADF,CADF,eAIE,8CAAOiC,QAAP,CAJF,CADF;AAQD,CAZW,CAAd;AAeAJ,KAAK,CAACQ,WAAN,GAAoB,OAApB;eAEeR,K"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["Container","styled","omitEmotionProps","sizeStyles","AvatarContainer","p","theme","borderRadius","clr","bgColor","UserIcon","User","Initials","div","INNER_SIZE","OUTER_SIZE","Online","span","avatarOnlineColorScoop","avatarOnlineColorBg","Avatar","forwardRef","ref","firstName","lastName","image","imageProps","online","size","rest","useTheme","useMemo","parts","push","length","strToHue","join","avatarDefaultColorBg","fullName","filter","i","undefined","renderChildren","useCallback","initials","nameToInitials","displayName"],"sources":["../../../src/Avatar/index.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo } from 'react';\nimport styled from '@emotion/styled';\nimport { User } from '@os-design/icons';\nimport { WithSize, sizeStyles } from '@os-design/styles';\nimport { omitEmotionProps } from '@os-design/utils';\nimport { clr, Color, useTheme } from '@os-design/theming';\nimport nameToInitials from './utils/nameToInitials';\nimport strToHue from './utils/strToHue';\nimport Image, { ImageProps } from '../Image';\n\ntype JsxDivProps = Omit<JSX.IntrinsicElements['div'], 'ref'>;\nexport interface AvatarProps extends JsxDivProps, WithSize {\n /**\n * Used to render the first letter if the image URL is not specified.\n * @default undefined\n */\n firstName?: string;\n /**\n * Used to render the second letter if the image URL is not specified.\n * @default undefined\n */\n lastName?: string;\n /**\n * The URL of the image.\n * @default undefined\n */\n image?: string;\n /**\n * The props of the image.\n * @default undefined\n */\n imageProps?: Omit<ImageProps, 'url'>;\n /**\n * Whether the user is online.\n * @default false\n */\n online?: boolean;\n}\n\nconst Container = styled('div', omitEmotionProps('size'))<WithSize>`\n position: relative;\n width: 1em;\n height: 1em;\n min-width: 1em;\n min-height: 1em;\n ${sizeStyles};\n`;\n\ninterface AvatarContainerProps {\n bgColor: Color;\n}\n\nconst AvatarContainer = styled(\n 'div',\n omitEmotionProps('bgColor')\n)<AvatarContainerProps>`\n width: 100%;\n height: 100%;\n border-radius: ${(p) => p.theme.borderRadius}em;\n\n font-weight: 500;\n line-height: 1;\n\n color: hsl(0, 0%, 100%);\n background-color: ${(p) => clr(p.bgColor)};\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n white-space: nowrap; // To disable multiline text\n overflow: hidden; // To trim the image corners\n\n ${sizeStyles};\n`;\n\nconst UserIcon = styled(User)`\n font-size: 0.6em;\n`;\n\nconst Initials = styled.div`\n font-size: 0.35em;\n`;\n\nconst INNER_SIZE = 0.25;\nconst OUTER_SIZE = INNER_SIZE * 1.2;\n\nconst Online = styled.span`\n position: absolute;\n right: -0.05em;\n bottom: -0.05em;\n width: ${OUTER_SIZE}em;\n height: ${OUTER_SIZE}em;\n border-radius: 50%;\n background-color: ${(p) => clr(p.theme.avatarOnlineColorScoop)};\n\n &::before {\n content: '';\n position: absolute;\n left: ${(OUTER_SIZE - INNER_SIZE) / 2}em;\n bottom: ${(OUTER_SIZE - INNER_SIZE) / 2}em;\n width: ${INNER_SIZE}em;\n height: ${INNER_SIZE}em;\n border-radius: 50%;\n background-color: ${(p) => clr(p.theme.avatarOnlineColorBg)};\n }\n`;\n\n/**\n * Avatar can be used to represent people.\n */\nconst Avatar = forwardRef<HTMLDivElement, AvatarProps>(\n (\n {\n firstName,\n lastName,\n image,\n imageProps = {},\n online = false,\n size = '2em',\n ...rest\n },\n ref\n ) => {\n const { theme } = useTheme();\n\n const bgColor = useMemo<Color>(() => {\n const parts: string[] = [];\n if (firstName) parts.push(firstName);\n if (lastName) parts.push(lastName);\n if (parts.length > 0) return [strToHue(parts.join(' ')), 30, 60];\n return theme.avatarDefaultColorBg;\n }, [firstName, lastName, theme.avatarDefaultColorBg]);\n\n const fullName = useMemo(\n () => [firstName, lastName].filter((i) => i).join(' ') || undefined,\n [firstName, lastName]\n );\n\n const renderChildren = useCallback(() => {\n // Render the image if the image property was specified\n if (image) return <Image url={image} cropped {...imageProps} />;\n\n // Render the initials of the name if either firstName or lastName was specified\n const initials = nameToInitials({ firstName, lastName });\n if (initials) return <Initials>{initials}</Initials>;\n\n // Otherwise render the user icon\n return <UserIcon />;\n }, [image, imageProps, firstName, lastName]);\n\n return (\n <Container size={size}>\n <AvatarContainer\n bgColor={bgColor}\n role='img'\n aria-label={fullName || 'User'}\n {...rest}\n ref={ref}\n >\n {renderChildren()}\n </AvatarContainer>\n {online && <Online />}\n </Container>\n );\n }\n);\n\nAvatar.displayName = 'Avatar';\n\nexport default Avatar;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"nameToInitials.js","names":["nameToInitials","firstName","lastName","first","charAt","second","toUpperCase"],"sources":["../../../../src/Avatar/utils/nameToInitials.ts"],"sourcesContent":["interface Name {\n firstName?: string;\n lastName?: string;\n}\n\nconst nameToInitials = ({ firstName, lastName }: Name): string => {\n const first = firstName ? firstName.charAt(0) : '';\n const second = lastName ? lastName.charAt(0) : '';\n return `${first}${second}`.toUpperCase();\n};\n\nexport default nameToInitials;\n"],"mappings":";;;;;;;AAKA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,OAA2C;EAAA,IAAxCC,SAAwC,QAAxCA,SAAwC;EAAA,IAA7BC,QAA6B,QAA7BA,QAA6B;EAChE,IAAMC,KAAK,GAAGF,SAAS,GAAGA,SAAS,CAACG,MAAV,CAAiB,CAAjB,CAAH,GAAyB,EAAhD;EACA,IAAMC,MAAM,GAAGH,QAAQ,GAAGA,QAAQ,CAACE,MAAT,CAAgB,CAAhB,CAAH,GAAwB,EAA/C;EACA,OAAO,UAAGD,KAAH,SAAWE,MAAX,EAAoBC,WAApB,EAAP;AACD,CAJD;;eAMeN,c"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"strToHue.js","names":["strToHue","str","hash","i","length","charCodeAt"],"sources":["../../../../src/Avatar/utils/strToHue.ts"],"sourcesContent":["/**\n * Return the hue of the color by string.\n */\nconst strToHue = (str: string): number => {\n let hash = 0;\n for (let i = 0; i < str.length; i += 1) {\n // eslint-disable-next-line no-bitwise\n hash = str.charCodeAt(i) + ((hash << 5) - hash);\n }\n return hash % 360;\n};\n\nexport default strToHue;\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA,IAAMA,QAAQ,GAAG,SAAXA,QAAW,CAACC,GAAD,EAAyB;EACxC,IAAIC,IAAI,GAAG,CAAX;;EACA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,GAAG,CAACG,MAAxB,EAAgCD,CAAC,IAAI,CAArC,EAAwC;IACtC;IACAD,IAAI,GAAGD,GAAG,CAACI,UAAJ,CAAeF,CAAf,KAAqB,CAACD,IAAI,IAAI,CAAT,IAAcA,IAAnC,CAAP;EACD;;EACD,OAAOA,IAAI,GAAG,GAAd;AACD,CAPD;;eASeF,Q"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["Container","styled","omitEmotionProps","sizeStyles","AvatarSkeleton","forwardRef","ref","size","rest","displayName"],"sources":["../../../src/AvatarSkeleton/index.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport React, { forwardRef } from 'react';\nimport { sizeStyles, WithSize } from '@os-design/styles';\nimport { omitEmotionProps } from '@os-design/utils';\nimport Skeleton from '../Skeleton';\n\ntype JsxDivProps = Omit<JSX.IntrinsicElements['div'], 'ref'>;\nexport type AvatarSkeletonProps = JsxDivProps & WithSize;\n\nconst Container = styled('div', omitEmotionProps('size'))<WithSize>`\n ${sizeStyles};\n`;\n\n/**\n * Provides an avatar placeholder while a user waits for the content to load.\n */\nconst AvatarSkeleton = forwardRef<HTMLDivElement, AvatarSkeletonProps>(\n ({ size = '2em', ...rest }, ref) => (\n <Container size={size} {...rest} ref={ref}>\n <Skeleton width='1em' />\n </Container>\n )\n);\n\nAvatarSkeleton.displayName = 'AvatarSkeleton';\n\nexport default AvatarSkeleton;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;AAKA,IAAMA,SAAS,GAAG,IAAAC,kBAAA,EAAO,KAAP,EAAc,IAAAC,uBAAA,EAAiB,MAAjB,CAAd,CAAH,iFACXC,kBADW,CAAf;AAIA;AACA;AACA;;AACA,IAAMC,cAAc,gBAAG,IAAAC,iBAAA,EACrB,gBAA4BC,GAA5B;EAAA,qBAAGC,IAAH;EAAA,IAAGA,IAAH,0BAAU,KAAV;EAAA,IAAoBC,IAApB;;EAAA,oBACE,gCAAC,SAAD;IAAW,IAAI,EAAED;EAAjB,GAA2BC,IAA3B;IAAiC,GAAG,EAAEF;EAAtC,iBACE,gCAAC,oBAAD;IAAU,KAAK,EAAC;EAAhB,EADF,CADF;AAAA,CADqB,CAAvB;AAQAF,cAAc,CAACK,WAAf,GAA6B,gBAA7B;eAEeL,c"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["Container","styled","omitEmotionProps","p","clr","theme","colorText","enableScrollingStyles","sizeStyles","childIndex","Breadcrumb","forwardRef","ref","ariaLabel","children","rest","breadcrumbItems","useMemo","items","childrenArray","React","Children","toArray","forEach","child","index","isValidElement","element","breadcrumbItemProps","key","position","hasRightArrow","length","type","BreadcrumbItem","cloneElement","props","breadcrumbItem","push","displayName"],"sources":["../../../src/Breadcrumb/index.tsx"],"sourcesContent":["import React, { forwardRef, ReactElement, useMemo } from 'react';\nimport styled from '@emotion/styled';\nimport { enableScrollingStyles, sizeStyles, WithSize } from '@os-design/styles';\nimport { omitEmotionProps } from '@os-design/utils';\nimport { clr } from '@os-design/theming';\nimport BreadcrumbItem from '../BreadcrumbItem';\n\ntype JsxOlProps = Omit<JSX.IntrinsicElements['ol'], 'ref'>;\nexport interface BreadcrumbProps extends JsxOlProps, WithSize {\n 'aria-label'?: string;\n}\n\nconst Container = styled('ol', omitEmotionProps('size'))<WithSize>`\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n align-items: center;\n color: ${(p) => clr(p.theme.colorText)};\n\n ${enableScrollingStyles('x', false)};\n ${sizeStyles};\n`;\n\nlet childIndex = 0;\n\n/**\n * Displays the current location within the hierarchical structure.\n * Implements the Schema.org markup for breadcrumbs.\n * See https://schema.org/BreadcrumbList\n */\nconst Breadcrumb = forwardRef<HTMLOListElement, BreadcrumbProps>(\n ({ 'aria-label': ariaLabel = 'Breadcrumb', children, ...rest }, ref) => {\n const breadcrumbItems = useMemo(() => {\n const items: ReactElement[] = [];\n const childrenArray = React.Children.toArray(children);\n childrenArray.forEach((child, index) => {\n if (!React.isValidElement(child)) return;\n\n let element;\n const breadcrumbItemProps = {\n key: childIndex,\n position: index + 1,\n hasRightArrow: index < childrenArray.length - 1,\n };\n\n if (child.type === BreadcrumbItem) {\n element = React.cloneElement(child, breadcrumbItemProps);\n } else if (\n React.isValidElement(child.props.children) &&\n child.props.children.type === BreadcrumbItem\n ) {\n const breadcrumbItem = React.cloneElement(\n child.props.children,\n breadcrumbItemProps\n );\n element = React.cloneElement(\n child,\n {\n ...(child.props || {}),\n key: childIndex,\n },\n breadcrumbItem\n );\n }\n if (!element) return;\n\n items.push(element);\n childIndex += 1;\n });\n return items;\n }, [children]);\n\n if (breadcrumbItems.length === 0) return null;\n\n return (\n <nav aria-label={ariaLabel}>\n <Container\n itemScope\n itemType='https://schema.org/BreadcrumbList'\n {...rest}\n ref={ref}\n >\n {breadcrumbItems}\n </Container>\n </nav>\n );\n }\n);\n\nBreadcrumb.displayName = 'Breadcrumb';\n\nexport default Breadcrumb;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,IAAMA,SAAS,GAAG,IAAAC,kBAAA,EAAO,IAAP,EAAa,IAAAC,uBAAA,EAAiB,MAAjB,CAAb,CAAH,wMAMJ,UAACC,CAAD;EAAA,OAAO,IAAAC,YAAA,EAAID,CAAC,CAACE,KAAF,CAAQC,SAAZ,CAAP;AAAA,CANI,EAQX,IAAAC,6BAAA,EAAsB,GAAtB,EAA2B,KAA3B,CARW,EASXC,kBATW,CAAf;AAYA,IAAIC,UAAU,GAAG,CAAjB;AAEA;AACA;AACA;AACA;AACA;;AACA,IAAMC,UAAU,gBAAG,IAAAC,iBAAA,EACjB,gBAAgEC,GAAhE,EAAwE;EAAA,0BAArE,YAAqE;EAAA,IAAvDC,SAAuD,+BAA3C,YAA2C;EAAA,IAA7BC,QAA6B,QAA7BA,QAA6B;EAAA,IAAhBC,IAAgB;;EACtE,IAAMC,eAAe,GAAG,IAAAC,cAAA,EAAQ,YAAM;IACpC,IAAMC,KAAqB,GAAG,EAA9B;;IACA,IAAMC,aAAa,GAAGC,iBAAA,CAAMC,QAAN,CAAeC,OAAf,CAAuBR,QAAvB,CAAtB;;IACAK,aAAa,CAACI,OAAd,CAAsB,UAACC,KAAD,EAAQC,KAAR,EAAkB;MACtC,IAAI,eAACL,iBAAA,CAAMM,cAAN,CAAqBF,KAArB,CAAL,EAAkC;MAElC,IAAIG,OAAJ;MACA,IAAMC,mBAAmB,GAAG;QAC1BC,GAAG,EAAEpB,UADqB;QAE1BqB,QAAQ,EAAEL,KAAK,GAAG,CAFQ;QAG1BM,aAAa,EAAEN,KAAK,GAAGN,aAAa,CAACa,MAAd,GAAuB;MAHpB,CAA5B;;MAMA,IAAIR,KAAK,CAACS,IAAN,KAAeC,0BAAnB,EAAmC;QACjCP,OAAO,gBAAGP,iBAAA,CAAMe,YAAN,CAAmBX,KAAnB,EAA0BI,mBAA1B,CAAV;MACD,CAFD,MAEO,IACL,cAAAR,iBAAA,CAAMM,cAAN,CAAqBF,KAAK,CAACY,KAAN,CAAYtB,QAAjC,KACAU,KAAK,CAACY,KAAN,CAAYtB,QAAZ,CAAqBmB,IAArB,KAA8BC,0BAFzB,EAGL;QACA,IAAMG,cAAc,gBAAGjB,iBAAA,CAAMe,YAAN,CACrBX,KAAK,CAACY,KAAN,CAAYtB,QADS,EAErBc,mBAFqB,CAAvB;;QAIAD,OAAO,gBAAGP,iBAAA,CAAMe,YAAN,CACRX,KADQ,kCAGFA,KAAK,CAACY,KAAN,IAAe,EAHb;UAINP,GAAG,EAAEpB;QAJC,IAMR4B,cANQ,CAAV;MAQD;;MACD,IAAI,CAACV,OAAL,EAAc;MAEdT,KAAK,CAACoB,IAAN,CAAWX,OAAX;MACAlB,UAAU,IAAI,CAAd;IACD,CAjCD;IAkCA,OAAOS,KAAP;EACD,CAtCuB,EAsCrB,CAACJ,QAAD,CAtCqB,CAAxB;EAwCA,IAAIE,eAAe,CAACgB,MAAhB,KAA2B,CAA/B,EAAkC,OAAO,IAAP;EAElC,oBACE;IAAK,cAAYnB;EAAjB,gBACE,gCAAC,SAAD;IACE,SAAS,MADX;IAEE,QAAQ,EAAC;EAFX,GAGME,IAHN;IAIE,GAAG,EAAEH;EAJP,IAMGI,eANH,CADF,CADF;AAYD,CAxDgB,CAAnB;AA2DAN,UAAU,CAAC6B,WAAX,GAAyB,YAAzB;eAEe7B,U"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["Container","styled","li","Name","span","ellipsisStyles","RightIcon","Right","p","clr","theme","colorText","BreadcrumbItem","forwardRef","ref","currentPage","hasRightArrow","position","href","children","rest","underline","toString","displayName"],"sources":["../../../src/BreadcrumbItem/index.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport styled from '@emotion/styled';\nimport { ellipsisStyles } from '@os-design/styles';\nimport { Right } from '@os-design/icons';\nimport { clr } from '@os-design/theming';\nimport Link, { LinkProps } from '../Link';\n\nexport interface BreadcrumbItemProps extends LinkProps {\n /**\n * Whether the item is the current page.\n * @default false\n */\n currentPage?: boolean;\n /**\n * Whether the right arrow located to the right of the text is visible.\n * @default false\n */\n hasRightArrow?: boolean;\n /**\n * The position of the breadcrumb item.\n * @default undefined\n */\n position?: number;\n}\n\nconst Container = styled.li`\n list-style: none;\n`;\n\nconst Name = styled.span`\n max-width: 20em;\n ${ellipsisStyles};\n`;\n\nconst RightIcon = styled(Right)`\n color: ${(p) => clr(p.theme.colorText)};\n margin: 0 0.6em;\n font-size: 0.6em;\n opacity: 0.8;\n`;\n\n/**\n * The item of the breadcrumb.\n */\nconst BreadcrumbItem = forwardRef<HTMLAnchorElement, BreadcrumbItemProps>(\n (\n {\n currentPage = false,\n hasRightArrow = false,\n position,\n href,\n children,\n ...rest\n },\n ref\n ) => (\n <Container>\n <Link\n itemProp='itemListElement'\n itemScope\n itemType='https://schema.org/ListItem'\n href={href}\n {...(currentPage\n ? {\n underline: 'always',\n 'aria-current': 'page',\n }\n : {})}\n {...rest}\n ref={ref}\n >\n <link itemProp='item' href={href} />\n {position && <meta itemProp='position' content={position.toString()} />}\n <Name itemProp='name'>{children}</Name>\n </Link>\n {hasRightArrow && <RightIcon role='presentation' />}\n </Container>\n )\n);\n\nBreadcrumbItem.displayName = 'BreadcrumbItem';\n\nexport default BreadcrumbItem;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;AAoBA,IAAMA,SAAS,GAAGC,kBAAA,CAAOC,EAAV,4FAAf;;AAIA,IAAMC,IAAI,GAAGF,kBAAA,CAAOG,IAAV,uGAENC,sBAFM,CAAV;;AAKA,IAAMC,SAAS,GAAG,IAAAL,kBAAA,EAAOM,YAAP,CAAH,oJACJ,UAACC,CAAD;EAAA,OAAO,IAAAC,YAAA,EAAID,CAAC,CAACE,KAAF,CAAQC,SAAZ,CAAP;AAAA,CADI,CAAf;AAOA;AACA;AACA;;AACA,IAAMC,cAAc,gBAAG,IAAAC,iBAAA,EACrB,gBASEC,GATF;EAAA,4BAEIC,WAFJ;EAAA,IAEIA,WAFJ,iCAEkB,KAFlB;EAAA,8BAGIC,aAHJ;EAAA,IAGIA,aAHJ,mCAGoB,KAHpB;EAAA,IAIIC,QAJJ,QAIIA,QAJJ;EAAA,IAKIC,IALJ,QAKIA,IALJ;EAAA,IAMIC,QANJ,QAMIA,QANJ;EAAA,IAOOC,IAPP;;EAAA,oBAWE,gCAAC,SAAD,qBACE,gCAAC,gBAAD;IACE,QAAQ,EAAC,iBADX;IAEE,SAAS,MAFX;IAGE,QAAQ,EAAC,6BAHX;IAIE,IAAI,EAAEF;EAJR,GAKOH,WAAW,GACZ;IACEM,SAAS,EAAE,QADb;IAEE,gBAAgB;EAFlB,CADY,GAKZ,EAVN,EAWMD,IAXN;IAYE,GAAG,EAAEN;EAZP,iBAcE;IAAM,QAAQ,EAAC,MAAf;IAAsB,IAAI,EAAEI;EAA5B,EAdF,EAeGD,QAAQ,iBAAI;IAAM,QAAQ,EAAC,UAAf;IAA0B,OAAO,EAAEA,QAAQ,CAACK,QAAT;EAAnC,EAff,eAgBE,gCAAC,IAAD;IAAM,QAAQ,EAAC;EAAf,GAAuBH,QAAvB,CAhBF,CADF,EAmBGH,aAAa,iBAAI,gCAAC,SAAD;IAAW,IAAI,EAAC;EAAhB,EAnBpB,CAXF;AAAA,CADqB,CAAvB;AAoCAJ,cAAc,CAACW,WAAf,GAA6B,gBAA7B;eAEeX,c"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"ButtonContent.js","names":["LeftAddon","styled","div","p","theme","buttonAddonPaddingHorizontal","RightAddon","Content","span","buttonIconScaleFactor","LoadingIcon","Loading","loadingFadeIn","keyframes","LoadingContainer","omitEmotionProps","clr","colors","text","bg","transitionDelay","ButtonContent","left","right","loading","loadingColors","children"],"sources":["../../../src/Button/ButtonContent.tsx"],"sourcesContent":["import React from 'react';\nimport { Loading } from '@os-design/icons';\nimport styled from '@emotion/styled';\nimport { keyframes } from '@emotion/react';\nimport { omitEmotionProps } from '@os-design/utils';\nimport { clr } from '@os-design/theming';\nimport { LoadingColors } from './utils/useButtonColors';\n\ninterface ButtonContentProps {\n left?: React.ReactNode;\n right?: React.ReactNode;\n loading?: boolean;\n loadingColors: LoadingColors;\n children?: React.ReactNode;\n}\n\nconst LeftAddon = styled.div`\n display: inherit;\n padding-right: ${(p) => p.theme.buttonAddonPaddingHorizontal}em;\n`;\n\nconst RightAddon = styled.div`\n display: inherit;\n padding-left: ${(p) => p.theme.buttonAddonPaddingHorizontal}em;\n`;\n\nconst Content = styled.span`\n display: inherit;\n\n & > svg {\n transform: scale(${(p) => p.theme.buttonIconScaleFactor});\n vertical-align: middle;\n }\n`;\n\nconst LoadingIcon = styled(Loading)`\n font-size: 1.2em;\n`;\n\nconst loadingFadeIn = keyframes`\n from { opacity: 0; }\n to { opacity: 1; }\n`;\n\ninterface LoadingContainerProps {\n colors: LoadingColors;\n}\nconst LoadingContainer = styled(\n 'div',\n omitEmotionProps('colors')\n)<LoadingContainerProps>`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border-radius: inherit;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n color: ${(p) => clr(p.colors.text)};\n background-color: ${(p) => clr(p.colors.bg)};\n animation: ${loadingFadeIn} ${(p) => p.theme.transitionDelay}ms;\n`;\n\n// Used by Button, LinkButton\nconst ButtonContent: React.FC<ButtonContentProps> = ({\n left,\n right,\n loading = false,\n loadingColors,\n children,\n}) => (\n <>\n {left && <LeftAddon>{left}</LeftAddon>}\n <Content>{children}</Content>\n {right && <RightAddon>{right}</RightAddon>}\n {loading && (\n <LoadingContainer colors={loadingColors}>\n <LoadingIcon />\n </LoadingContainer>\n )}\n </>\n);\n\nexport default ButtonContent;\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAWA,IAAMA,SAAS,GAAGC,kBAAA,CAAOC,GAAV,uHAEI,UAACC,CAAD;EAAA,OAAOA,CAAC,CAACC,KAAF,CAAQC,4BAAf;AAAA,CAFJ,CAAf;;AAKA,IAAMC,UAAU,GAAGL,kBAAA,CAAOC,GAAV,wHAEE,UAACC,CAAD;EAAA,OAAOA,CAAC,CAACC,KAAF,CAAQC,4BAAf;AAAA,CAFF,CAAhB;;AAKA,IAAME,OAAO,GAAGN,kBAAA,CAAOO,IAAV,6KAIU,UAACL,CAAD;EAAA,OAAOA,CAAC,CAACC,KAAF,CAAQK,qBAAf;AAAA,CAJV,CAAb;;AASA,IAAMC,WAAW,GAAG,IAAAT,kBAAA,EAAOU,cAAP,CAAH,8FAAjB;AAIA,IAAMC,aAAa,OAAGC,iBAAH,wHAAnB;AAQA,IAAMC,gBAAgB,GAAG,IAAAb,kBAAA,EACvB,KADuB,EAEvB,IAAAc,uBAAA,EAAiB,QAAjB,CAFuB,CAAH,8TAeX,UAACZ,CAAD;EAAA,OAAO,IAAAa,YAAA,EAAIb,CAAC,CAACc,MAAF,CAASC,IAAb,CAAP;AAAA,CAfW,EAgBA,UAACf,CAAD;EAAA,OAAO,IAAAa,YAAA,EAAIb,CAAC,CAACc,MAAF,CAASE,EAAb,CAAP;AAAA,CAhBA,EAiBPP,aAjBO,EAiBU,UAACT,CAAD;EAAA,OAAOA,CAAC,CAACC,KAAF,CAAQgB,eAAf;AAAA,CAjBV,CAAtB,C,CAoBA;;AACA,IAAMC,aAA2C,GAAG,SAA9CA,aAA8C;EAAA,IAClDC,IADkD,QAClDA,IADkD;EAAA,IAElDC,KAFkD,QAElDA,KAFkD;EAAA,wBAGlDC,OAHkD;EAAA,IAGlDA,OAHkD,6BAGxC,KAHwC;EAAA,IAIlDC,aAJkD,QAIlDA,aAJkD;EAAA,IAKlDC,QALkD,QAKlDA,QALkD;EAAA,oBAOlD,kEACGJ,IAAI,iBAAI,gCAAC,SAAD,QAAYA,IAAZ,CADX,eAEE,gCAAC,OAAD,QAAUI,QAAV,CAFF,EAGGH,KAAK,iBAAI,gCAAC,UAAD,QAAaA,KAAb,CAHZ,EAIGC,OAAO,iBACN,gCAAC,gBAAD;IAAkB,MAAM,EAAEC;EAA1B,gBACE,gCAAC,WAAD,OADF,CALJ,CAPkD;AAAA,CAApD;;eAmBeJ,a"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["hoverStyles","p","disabled","css","clr","colors","bgHover","primaryStyles","btnType","text","bg","ghostStyles","outlineStyles","wideDefaultStyles","wide","m","max","xxs","wideAlwaysStyles","disabledStyles","StyledButton","styled","omitEmotionProps","resetButtonStyles","theme","borderRadius","buttonHeight","buttonPaddingHorizontal","sizeStyles","transitionStyles","Button","forwardRef","ref","type","danger","left","right","loading","size","children","onMouseDown","rest","useButtonColors","buttonColors","loadingColors","e","preventDefault","displayName"],"sources":["../../../src/Button/index.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport styled from '@emotion/styled';\nimport {\n resetButtonStyles,\n sizeStyles,\n transitionStyles,\n WithSize,\n} from '@os-design/styles';\nimport { omitEmotionProps } from '@os-design/utils';\nimport { clr } from '@os-design/theming';\nimport { css } from '@emotion/react';\nimport { m } from '@os-design/media';\nimport useButtonColors, { ButtonColors } from './utils/useButtonColors';\nimport ButtonContent from './ButtonContent';\n\ntype JsxButtonProps = Omit<\n JSX.IntrinsicElements['button'],\n 'type' | 'color' | 'ref'\n>;\n\n// Used by Button, LinkButton\nexport interface BaseButtonProps extends WithSize {\n /**\n * Type of button styles.\n * @default primary\n */\n type?: 'primary' | 'outline' | 'ghost';\n /**\n * Sets the danger styles.\n * @default false\n */\n danger?: boolean;\n /**\n * The component located on the left side.\n * @default undefined\n */\n left?: React.ReactNode;\n /**\n * The component located on the right side.\n * @default undefined\n */\n right?: React.ReactNode;\n /**\n * Whether the button has full width.\n * Possible values:\n * `default` – the button has full width if the screen width is less than xs;\n * `always` – the button always has full width;\n * `never` – the button never has full width.\n * @default default\n */\n wide?: 'default' | 'always' | 'never';\n /**\n * Shows the loading status and disables the button.\n * @default false\n */\n loading?: boolean;\n /**\n * Whether the button is disabled.\n * @default false\n */\n disabled?: boolean;\n}\n\nexport type ButtonProps = JsxButtonProps & BaseButtonProps;\n\ninterface StyledButtonProps\n extends Pick<ButtonProps, 'wide' | 'loading' | 'disabled' | 'size'> {\n btnType: ButtonProps['type'];\n colors: ButtonColors;\n}\n\nconst hoverStyles = (p) =>\n !p.disabled &&\n css`\n @media (hover: hover) {\n &:hover,\n &:focus {\n background-color: ${clr(p.colors.bgHover)};\n }\n }\n `;\n\nconst primaryStyles = (p) =>\n p.btnType === 'primary' &&\n css`\n color: ${clr(p.colors.text)};\n background-color: ${clr(p.colors.bg)};\n ${hoverStyles(p)};\n `;\n\nconst ghostStyles = (p) =>\n p.btnType === 'ghost' &&\n css`\n color: ${clr(p.colors.text)};\n background-color: transparent;\n ${hoverStyles(p)};\n `;\n\nconst outlineStyles = (p) =>\n p.btnType === 'outline' &&\n css`\n color: ${clr(p.colors.text)};\n background-color: transparent;\n border: 1px solid currentColor;\n ${hoverStyles(p)};\n `;\n\nconst wideDefaultStyles = (p) =>\n p.wide === 'default' &&\n css`\n ${m.max.xxs} {\n width: 100%;\n }\n `;\n\nconst wideAlwaysStyles = (p) =>\n p.wide === 'always' &&\n css`\n width: 100%;\n `;\n\nconst disabledStyles = (p) =>\n p.disabled &&\n css`\n cursor: not-allowed;\n `;\n\nexport const StyledButton = styled(\n 'button',\n omitEmotionProps('btnType', 'colors', 'wide', 'loading', 'size')\n)<StyledButtonProps>`\n ${resetButtonStyles};\n position: relative; // Because LoadingContainer has an absolute position\n cursor: pointer;\n user-select: none;\n box-sizing: border-box; // Important for LinkButton\n\n // Disable multiline\n white-space: nowrap;\n overflow: hidden;\n\n border-radius: ${(p) => p.theme.borderRadius}em;\n height: ${(p) => p.theme.buttonHeight}em;\n padding: 0 ${(p) => p.theme.buttonPaddingHorizontal}em;\n\n // Do not set inline-flex, otherwise the mobile safari cuts off\n // the bottom border of the button (tested in iPhone 6)\n display: flex;\n justify-content: center;\n align-items: center;\n\n font-weight: 500;\n line-height: 1;\n\n ${primaryStyles};\n ${outlineStyles};\n ${ghostStyles};\n\n ${wideDefaultStyles};\n ${wideAlwaysStyles};\n\n ${disabledStyles};\n\n ${sizeStyles};\n ${transitionStyles('background-color', 'color')};\n`;\n\n/**\n * Used to trigger the corresponding business logic.\n */\nconst Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n type = 'primary',\n danger = false,\n left,\n right,\n wide = 'default',\n loading = false,\n disabled = false,\n size,\n children,\n onMouseDown = () => {},\n ...rest\n },\n ref\n ) => {\n const { buttonColors, loadingColors } = useButtonColors({\n type,\n danger,\n disabled,\n });\n\n return (\n <StyledButton\n btnType={type}\n colors={buttonColors}\n wide={wide}\n loading={loading}\n disabled={disabled || loading}\n size={size}\n onMouseDown={(e) => {\n onMouseDown(e);\n e.preventDefault();\n }}\n aria-busy={loading}\n {...rest}\n ref={ref}\n >\n <ButtonContent\n left={left}\n right={right}\n loading={loading}\n loadingColors={loadingColors}\n >\n {children}\n </ButtonContent>\n </StyledButton>\n );\n }\n);\n\nButton.displayName = 'Button';\n\nexport default Button;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"useButtonColors.js","names":["useButtonColors","type","danger","disabled","useTheme","theme","prefix","useMemo","buttonColors","text","bg","bgHover","buttonDisabledPrimaryColorText","buttonDisabledPrimaryColorBg","buttonDisabledGhostColorText","loadingColors"],"sources":["../../../../src/Button/utils/useButtonColors.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport { Color, useTheme } from '@os-design/theming';\n\ninterface Props {\n type: 'primary' | 'outline' | 'ghost';\n danger: boolean;\n disabled: boolean;\n}\n\nexport interface ButtonColors {\n text: Color;\n bg?: Color;\n bgHover?: Color;\n}\n\nexport interface LoadingColors {\n text: Color;\n bg: Color;\n}\n\ninterface UseButtonColorsRes {\n buttonColors: ButtonColors;\n loadingColors: LoadingColors;\n}\n\n// Used by Button, LinkButton\nconst useButtonColors = ({\n type,\n danger,\n disabled,\n}: Props): UseButtonColorsRes => {\n const { theme } = useTheme();\n\n const prefix = useMemo<string>(() => {\n if (danger) return 'Danger';\n return '';\n }, [danger]);\n\n const buttonColors = useMemo<ButtonColors>(() => {\n if (type === 'primary') {\n return !disabled\n ? {\n text: theme[`button${prefix}PrimaryColorText`],\n bg: theme[`button${prefix}PrimaryColorBg`],\n bgHover: theme[`button${prefix}PrimaryColorBgHover`],\n }\n : {\n text: theme.buttonDisabledPrimaryColorText,\n bg: theme.buttonDisabledPrimaryColorBg,\n };\n }\n return !disabled\n ? {\n text: theme[`button${prefix}GhostColorText`],\n bgHover: theme[`button${prefix}GhostColorBgHover`],\n }\n : {\n text: theme.buttonDisabledGhostColorText,\n };\n }, [type, disabled, theme, prefix]);\n\n const loadingColors = useMemo<LoadingColors>(() => {\n if (disabled) {\n return {\n text: theme.buttonDisabledPrimaryColorText,\n bg: theme.buttonDisabledPrimaryColorBg,\n };\n }\n if (type === 'primary') {\n return {\n text: theme[`button${prefix}PrimaryColorLoadingText`],\n bg: theme[`button${prefix}PrimaryColorLoadingBg`],\n };\n }\n return {\n text: theme[`button${prefix}GhostColorLoadingText`],\n bg: theme[`button${prefix}GhostColorLoadingBg`],\n };\n }, [disabled, type, theme, prefix]);\n\n return { buttonColors, loadingColors };\n};\n\nexport default useButtonColors;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAwBA;AACA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,OAIS;EAAA,IAH/BC,IAG+B,QAH/BA,IAG+B;EAAA,IAF/BC,MAE+B,QAF/BA,MAE+B;EAAA,IAD/BC,QAC+B,QAD/BA,QAC+B;;EAC/B,gBAAkB,IAAAC,iBAAA,GAAlB;EAAA,IAAQC,KAAR,aAAQA,KAAR;;EAEA,IAAMC,MAAM,GAAG,IAAAC,cAAA,EAAgB,YAAM;IACnC,IAAIL,MAAJ,EAAY,OAAO,QAAP;IACZ,OAAO,EAAP;EACD,CAHc,EAGZ,CAACA,MAAD,CAHY,CAAf;EAKA,IAAMM,YAAY,GAAG,IAAAD,cAAA,EAAsB,YAAM;IAC/C,IAAIN,IAAI,KAAK,SAAb,EAAwB;MACtB,OAAO,CAACE,QAAD,GACH;QACEM,IAAI,EAAEJ,KAAK,iBAAUC,MAAV,sBADb;QAEEI,EAAE,EAAEL,KAAK,iBAAUC,MAAV,oBAFX;QAGEK,OAAO,EAAEN,KAAK,iBAAUC,MAAV;MAHhB,CADG,GAMH;QACEG,IAAI,EAAEJ,KAAK,CAACO,8BADd;QAEEF,EAAE,EAAEL,KAAK,CAACQ;MAFZ,CANJ;IAUD;;IACD,OAAO,CAACV,QAAD,GACH;MACEM,IAAI,EAAEJ,KAAK,iBAAUC,MAAV,oBADb;MAEEK,OAAO,EAAEN,KAAK,iBAAUC,MAAV;IAFhB,CADG,GAKH;MACEG,IAAI,EAAEJ,KAAK,CAACS;IADd,CALJ;EAQD,CArBoB,EAqBlB,CAACb,IAAD,EAAOE,QAAP,EAAiBE,KAAjB,EAAwBC,MAAxB,CArBkB,CAArB;EAuBA,IAAMS,aAAa,GAAG,IAAAR,cAAA,EAAuB,YAAM;IACjD,IAAIJ,QAAJ,EAAc;MACZ,OAAO;QACLM,IAAI,EAAEJ,KAAK,CAACO,8BADP;QAELF,EAAE,EAAEL,KAAK,CAACQ;MAFL,CAAP;IAID;;IACD,IAAIZ,IAAI,KAAK,SAAb,EAAwB;MACtB,OAAO;QACLQ,IAAI,EAAEJ,KAAK,iBAAUC,MAAV,6BADN;QAELI,EAAE,EAAEL,KAAK,iBAAUC,MAAV;MAFJ,CAAP;IAID;;IACD,OAAO;MACLG,IAAI,EAAEJ,KAAK,iBAAUC,MAAV,2BADN;MAELI,EAAE,EAAEL,KAAK,iBAAUC,MAAV;IAFJ,CAAP;EAID,CAjBqB,EAiBnB,CAACH,QAAD,EAAWF,IAAX,EAAiBI,KAAjB,EAAwBC,MAAxB,CAjBmB,CAAtB;EAmBA,OAAO;IAAEE,YAAY,EAAZA,YAAF;IAAgBO,aAAa,EAAbA;EAAhB,CAAP;AACD,CAvDD;;eAyDef,e"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Checkbox/index.tsx"],"names":["uncheckedIconStyles","p","checked","css","theme","checkboxUncheckedColorBg","checkboxUncheckedColorBorder","checkedIconStyles","checkboxCheckedColorBg","disabledIconStyles","disabled","checkboxDisabledColorBg","checkboxDisabledColorIcon","checkboxDisabledColorBorder","IconContainer","checkboxSize","borderRadius","checkboxCheckedColorIcon","lineHeight","hoverUncheckedIconStyles","checkboxUncheckedColorBgHover","hoverCheckedIconStyles","checkboxCheckedColorBgHover","hoverStyles","disabledContainerStyles","Container","resetFocusStyles","checkboxVerticalIndent","sizeStyles","disabledTextStyles","checkboxDisabledColorText","Text","colorText","Checkbox","ref","value","defaultValue","onChange","size","onKeyDown","onMouseDown","children","rest","forwardedValue","setForwardedValue","e","includes","key","preventDefault","displayName"],"mappings":"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","sourcesContent":["import React, { forwardRef } from 'react';\nimport styled from '@emotion/styled';\nimport { css } from '@emotion/react';\nimport { Check } from '@os-design/icons';\nimport {\n resetFocusStyles,\n sizeStyles,\n transitionStyles,\n WithSize,\n} from '@os-design/styles';\nimport { omitEmotionProps, useForwardedState } from '@os-design/utils';\nimport { clr } from '@os-design/theming';\n\ntype JsxLabelProps = Omit<\n JSX.IntrinsicElements['label'],\n 'defaultValue' | 'onChange' | 'onClick' | 'ref'\n>;\nexport interface CheckboxProps extends JsxLabelProps, WithSize {\n /**\n * Whether the checkbox is disabled.\n * @default false\n */\n disabled?: boolean;\n /**\n * Whether the checkbox is checked.\n * @default false\n */\n value?: boolean;\n /**\n * The default value.\n * @default undefined\n */\n defaultValue?: boolean;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: boolean) => void;\n}\n\nconst uncheckedIconStyles = (p) =>\n !p.checked &&\n css`\n background-color: ${clr(p.theme.checkboxUncheckedColorBg)};\n border-color: ${clr(p.theme.checkboxUncheckedColorBorder)};\n `;\n\nconst checkedIconStyles = (p) =>\n p.checked &&\n css`\n background-color: ${clr(p.theme.checkboxCheckedColorBg)};\n border-color: ${clr(p.theme.checkboxCheckedColorBg)};\n `;\n\nconst disabledIconStyles = (p) =>\n p.disabled &&\n css`\n background-color: ${clr(p.theme.checkboxDisabledColorBg)};\n color: ${clr(p.theme.checkboxDisabledColorIcon)};\n border-color: ${clr(p.theme.checkboxDisabledColorBorder)};\n `;\n\ninterface IconContainerProps extends Required<Pick<CheckboxProps, 'disabled'>> {\n checked: Required<CheckboxProps['value']>;\n}\nconst IconContainer = styled(\n 'span',\n omitEmotionProps('disabled', 'checked')\n)<IconContainerProps>`\n width: ${(p) => p.theme.checkboxSize}em;\n height: ${(p) => p.theme.checkboxSize}em;\n min-width: ${(p) => p.theme.checkboxSize}em;\n min-height: ${(p) => p.theme.checkboxSize}em;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n box-sizing: border-box;\n line-height: 1;\n\n border: 1px solid transparent;\n border-radius: ${(p) => p.theme.borderRadius}em;\n color: ${(p) => clr(p.theme.checkboxCheckedColorIcon)};\n margin-top: ${(p) => (p.theme.lineHeight - p.theme.checkboxSize) / 2}em;\n\n ${uncheckedIconStyles};\n ${checkedIconStyles};\n ${disabledIconStyles};\n ${transitionStyles('background-color', 'color', 'border-color')};\n`;\n\nconst hoverUncheckedIconStyles = (p) =>\n !p.checked &&\n css`\n background-color: ${clr(p.theme.checkboxUncheckedColorBgHover)};\n `;\n\nconst hoverCheckedIconStyles = (p) =>\n p.checked &&\n css`\n background-color: ${clr(p.theme.checkboxCheckedColorBgHover)};\n border-color: ${clr(p.theme.checkboxCheckedColorBgHover)};\n `;\n\nconst hoverStyles = (p) =>\n !p.disabled &&\n css`\n @media (hover: hover) {\n &:hover,\n &:focus {\n & > span {\n ${hoverUncheckedIconStyles(p)};\n ${hoverCheckedIconStyles(p)};\n }\n }\n }\n `;\n\nconst disabledContainerStyles = (p) =>\n p.disabled &&\n css`\n cursor: not-allowed;\n `;\n\ninterface ContainerProps\n extends Required<Pick<CheckboxProps, 'disabled'>>,\n Pick<CheckboxProps, 'size'> {\n checked: Required<CheckboxProps['value']>;\n}\nconst Container = styled(\n 'label',\n omitEmotionProps('disabled', 'size', 'checked')\n)<ContainerProps>`\n ${resetFocusStyles};\n cursor: pointer;\n user-select: none;\n\n display: flex;\n margin: ${(p) => p.theme.checkboxVerticalIndent}em 0;\n\n ${hoverStyles};\n ${disabledContainerStyles};\n ${sizeStyles};\n ${transitionStyles('color')};\n`;\n\nconst disabledTextStyles = (p) =>\n p.disabled &&\n css`\n color: ${clr(p.theme.checkboxDisabledColorText)};\n `;\n\ntype TextProps = Required<Pick<CheckboxProps, 'disabled'>>;\nconst Text = styled('div', omitEmotionProps('disabled'))<TextProps>`\n margin-left: 0.4em;\n color: ${(p) => clr(p.theme.colorText)};\n ${disabledTextStyles};\n`;\n\n/**\n * The checkbox that can be enabled or disabled.\n */\nconst Checkbox = forwardRef<HTMLLabelElement, CheckboxProps>(\n (\n {\n disabled = false,\n value,\n defaultValue,\n onChange = () => {},\n size,\n onKeyDown = () => {},\n onMouseDown = () => {},\n children,\n ...rest\n },\n ref\n ) => {\n const [forwardedValue, setForwardedValue] = useForwardedState({\n value,\n defaultValue,\n onChange,\n });\n\n return (\n <Container\n disabled={disabled}\n checked={forwardedValue}\n size={size}\n tabIndex={!disabled ? 0 : -1}\n onClick={() => {\n if (disabled) return;\n setForwardedValue(!forwardedValue);\n }}\n onKeyDown={(e) => {\n if (disabled) return;\n if (['Enter', ' '].includes(e.key)) {\n setForwardedValue(!forwardedValue);\n e.preventDefault();\n }\n onKeyDown(e);\n }}\n onMouseDown={(e) => {\n onMouseDown(e);\n e.preventDefault();\n }}\n role='checkbox'\n aria-checked={forwardedValue}\n aria-disabled={disabled}\n {...rest}\n ref={ref}\n >\n <IconContainer disabled={disabled} checked={forwardedValue}>\n {forwardedValue && <Check />}\n </IconContainer>\n\n {children && <Text disabled={disabled}>{children}</Text>}\n </Container>\n );\n }\n);\n\nCheckbox.displayName = 'Checkbox';\n\nexport default Checkbox;\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["uncheckedIconStyles","p","checked","css","clr","theme","checkboxUncheckedColorBg","checkboxUncheckedColorBorder","checkedIconStyles","checkboxCheckedColorBg","disabledIconStyles","disabled","checkboxDisabledColorBg","checkboxDisabledColorIcon","checkboxDisabledColorBorder","IconContainer","styled","omitEmotionProps","checkboxSize","borderRadius","checkboxCheckedColorIcon","lineHeight","transitionStyles","hoverUncheckedIconStyles","checkboxUncheckedColorBgHover","hoverCheckedIconStyles","checkboxCheckedColorBgHover","hoverStyles","disabledContainerStyles","Container","resetFocusStyles","checkboxVerticalIndent","sizeStyles","disabledTextStyles","checkboxDisabledColorText","Text","colorText","Checkbox","forwardRef","ref","value","defaultValue","onChange","size","onKeyDown","onMouseDown","children","rest","useForwardedState","forwardedValue","setForwardedValue","e","includes","key","preventDefault","displayName"],"sources":["../../../src/Checkbox/index.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport styled from '@emotion/styled';\nimport { css } from '@emotion/react';\nimport { Check } from '@os-design/icons';\nimport {\n resetFocusStyles,\n sizeStyles,\n transitionStyles,\n WithSize,\n} from '@os-design/styles';\nimport { omitEmotionProps, useForwardedState } from '@os-design/utils';\nimport { clr } from '@os-design/theming';\n\ntype JsxLabelProps = Omit<\n JSX.IntrinsicElements['label'],\n 'defaultValue' | 'onChange' | 'onClick' | 'ref'\n>;\nexport interface CheckboxProps extends JsxLabelProps, WithSize {\n /**\n * Whether the checkbox is disabled.\n * @default false\n */\n disabled?: boolean;\n /**\n * Whether the checkbox is checked.\n * @default false\n */\n value?: boolean;\n /**\n * The default value.\n * @default undefined\n */\n defaultValue?: boolean;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: boolean) => void;\n}\n\nconst uncheckedIconStyles = (p) =>\n !p.checked &&\n css`\n background-color: ${clr(p.theme.checkboxUncheckedColorBg)};\n border-color: ${clr(p.theme.checkboxUncheckedColorBorder)};\n `;\n\nconst checkedIconStyles = (p) =>\n p.checked &&\n css`\n background-color: ${clr(p.theme.checkboxCheckedColorBg)};\n border-color: ${clr(p.theme.checkboxCheckedColorBg)};\n `;\n\nconst disabledIconStyles = (p) =>\n p.disabled &&\n css`\n background-color: ${clr(p.theme.checkboxDisabledColorBg)};\n color: ${clr(p.theme.checkboxDisabledColorIcon)};\n border-color: ${clr(p.theme.checkboxDisabledColorBorder)};\n `;\n\ninterface IconContainerProps extends Required<Pick<CheckboxProps, 'disabled'>> {\n checked: Required<CheckboxProps['value']>;\n}\nconst IconContainer = styled(\n 'span',\n omitEmotionProps('disabled', 'checked')\n)<IconContainerProps>`\n width: ${(p) => p.theme.checkboxSize}em;\n height: ${(p) => p.theme.checkboxSize}em;\n min-width: ${(p) => p.theme.checkboxSize}em;\n min-height: ${(p) => p.theme.checkboxSize}em;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n box-sizing: border-box;\n line-height: 1;\n\n border: 1px solid transparent;\n border-radius: ${(p) => p.theme.borderRadius}em;\n color: ${(p) => clr(p.theme.checkboxCheckedColorIcon)};\n margin-top: ${(p) => (p.theme.lineHeight - p.theme.checkboxSize) / 2}em;\n\n ${uncheckedIconStyles};\n ${checkedIconStyles};\n ${disabledIconStyles};\n ${transitionStyles('background-color', 'color', 'border-color')};\n`;\n\nconst hoverUncheckedIconStyles = (p) =>\n !p.checked &&\n css`\n background-color: ${clr(p.theme.checkboxUncheckedColorBgHover)};\n `;\n\nconst hoverCheckedIconStyles = (p) =>\n p.checked &&\n css`\n background-color: ${clr(p.theme.checkboxCheckedColorBgHover)};\n border-color: ${clr(p.theme.checkboxCheckedColorBgHover)};\n `;\n\nconst hoverStyles = (p) =>\n !p.disabled &&\n css`\n @media (hover: hover) {\n &:hover,\n &:focus {\n & > span {\n ${hoverUncheckedIconStyles(p)};\n ${hoverCheckedIconStyles(p)};\n }\n }\n }\n `;\n\nconst disabledContainerStyles = (p) =>\n p.disabled &&\n css`\n cursor: not-allowed;\n `;\n\ninterface ContainerProps\n extends Required<Pick<CheckboxProps, 'disabled'>>,\n Pick<CheckboxProps, 'size'> {\n checked: Required<CheckboxProps['value']>;\n}\nconst Container = styled(\n 'label',\n omitEmotionProps('disabled', 'size', 'checked')\n)<ContainerProps>`\n ${resetFocusStyles};\n cursor: pointer;\n user-select: none;\n\n display: flex;\n margin: ${(p) => p.theme.checkboxVerticalIndent}em 0;\n\n ${hoverStyles};\n ${disabledContainerStyles};\n ${sizeStyles};\n ${transitionStyles('color')};\n`;\n\nconst disabledTextStyles = (p) =>\n p.disabled &&\n css`\n color: ${clr(p.theme.checkboxDisabledColorText)};\n `;\n\ntype TextProps = Required<Pick<CheckboxProps, 'disabled'>>;\nconst Text = styled('div', omitEmotionProps('disabled'))<TextProps>`\n margin-left: 0.4em;\n color: ${(p) => clr(p.theme.colorText)};\n ${disabledTextStyles};\n`;\n\n/**\n * The checkbox that can be enabled or disabled.\n */\nconst Checkbox = forwardRef<HTMLLabelElement, CheckboxProps>(\n (\n {\n disabled = false,\n value,\n defaultValue,\n onChange = () => {},\n size,\n onKeyDown = () => {},\n onMouseDown = () => {},\n children,\n ...rest\n },\n ref\n ) => {\n const [forwardedValue, setForwardedValue] = useForwardedState({\n value,\n defaultValue,\n onChange,\n });\n\n return (\n <Container\n disabled={disabled}\n checked={forwardedValue}\n size={size}\n tabIndex={!disabled ? 0 : -1}\n onClick={() => {\n if (disabled) return;\n setForwardedValue(!forwardedValue);\n }}\n onKeyDown={(e) => {\n if (disabled) return;\n if (['Enter', ' '].includes(e.key)) {\n setForwardedValue(!forwardedValue);\n e.preventDefault();\n }\n onKeyDown(e);\n }}\n onMouseDown={(e) => {\n onMouseDown(e);\n e.preventDefault();\n }}\n role='checkbox'\n aria-checked={forwardedValue}\n aria-disabled={disabled}\n {...rest}\n ref={ref}\n >\n <IconContainer disabled={disabled} checked={forwardedValue}>\n {forwardedValue && <Check />}\n </IconContainer>\n\n {children && <Text disabled={disabled}>{children}</Text>}\n </Container>\n );\n }\n);\n\nCheckbox.displayName = 'Checkbox';\n\nexport default Checkbox;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["Container","styled","omitEmotionProps","p","theme","checkboxVerticalIndent","sizeStyles","ImageSkeleton","Skeleton","checkboxSize","borderRadius","lineHeight","Text","div","clr","colorText","CheckboxSkeleton","forwardRef","ref","children","rest","displayName"],"sources":["../../../src/CheckboxSkeleton/index.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport React, { forwardRef } from 'react';\nimport { sizeStyles, WithSize } from '@os-design/styles';\nimport { omitEmotionProps } from '@os-design/utils';\nimport { clr } from '@os-design/theming';\nimport Skeleton from '../Skeleton';\n\ntype JsxDivProps = Omit<JSX.IntrinsicElements['div'], 'ref'>;\nexport type CheckboxSkeletonProps = JsxDivProps & WithSize;\n\nconst Container = styled('div', omitEmotionProps('size'))<WithSize>`\n user-select: none;\n display: flex;\n margin: ${(p) => p.theme.checkboxVerticalIndent}em 0;\n ${sizeStyles};\n`;\n\nconst ImageSkeleton = styled(Skeleton)`\n width: ${(p) => p.theme.checkboxSize}em;\n height: ${(p) => p.theme.checkboxSize}em;\n min-width: ${(p) => p.theme.checkboxSize}em;\n min-height: ${(p) => p.theme.checkboxSize}em;\n\n border-radius: ${(p) => p.theme.borderRadius}em;\n margin-top: ${(p) => (p.theme.lineHeight - p.theme.checkboxSize) / 2}em;\n`;\n\nconst Text = styled.div`\n margin-left: 0.4em;\n color: ${(p) => clr(p.theme.colorText)};\n`;\n\n/**\n * Provides a checkbox placeholder while a user waits for the content to load.\n */\nconst CheckboxSkeleton = forwardRef<HTMLDivElement, CheckboxSkeletonProps>(\n ({ children, ...rest }, ref) => (\n <Container role='checkbox' aria-busy {...rest} ref={ref}>\n <ImageSkeleton />\n {children && <Text>{children}</Text>}\n </Container>\n )\n);\n\nCheckboxSkeleton.displayName = 'CheckboxSkeleton';\n\nexport default CheckboxSkeleton;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;AAKA,IAAMA,SAAS,GAAG,IAAAC,kBAAA,EAAO,KAAP,EAAc,IAAAC,uBAAA,EAAiB,MAAjB,CAAd,CAAH,8IAGH,UAACC,CAAD;EAAA,OAAOA,CAAC,CAACC,KAAF,CAAQC,sBAAf;AAAA,CAHG,EAIXC,kBAJW,CAAf;AAOA,IAAMC,aAAa,GAAG,IAAAN,kBAAA,EAAOO,oBAAP,CAAH,+MACR,UAACL,CAAD;EAAA,OAAOA,CAAC,CAACC,KAAF,CAAQK,YAAf;AAAA,CADQ,EAEP,UAACN,CAAD;EAAA,OAAOA,CAAC,CAACC,KAAF,CAAQK,YAAf;AAAA,CAFO,EAGJ,UAACN,CAAD;EAAA,OAAOA,CAAC,CAACC,KAAF,CAAQK,YAAf;AAAA,CAHI,EAIH,UAACN,CAAD;EAAA,OAAOA,CAAC,CAACC,KAAF,CAAQK,YAAf;AAAA,CAJG,EAMA,UAACN,CAAD;EAAA,OAAOA,CAAC,CAACC,KAAF,CAAQM,YAAf;AAAA,CANA,EAOH,UAACP,CAAD;EAAA,OAAO,CAACA,CAAC,CAACC,KAAF,CAAQO,UAAR,GAAqBR,CAAC,CAACC,KAAF,CAAQK,YAA9B,IAA8C,CAArD;AAAA,CAPG,CAAnB;;AAUA,IAAMG,IAAI,GAAGX,kBAAA,CAAOY,GAAV,iHAEC,UAACV,CAAD;EAAA,OAAO,IAAAW,YAAA,EAAIX,CAAC,CAACC,KAAF,CAAQW,SAAZ,CAAP;AAAA,CAFD,CAAV;AAKA;AACA;AACA;;;AACA,IAAMC,gBAAgB,gBAAG,IAAAC,iBAAA,EACvB,gBAAwBC,GAAxB;EAAA,IAAGC,QAAH,QAAGA,QAAH;EAAA,IAAgBC,IAAhB;;EAAA,oBACE,gCAAC,SAAD;IAAW,IAAI,EAAC,UAAhB;IAA2B;EAA3B,GAAyCA,IAAzC;IAA+C,GAAG,EAAEF;EAApD,iBACE,gCAAC,aAAD,OADF,EAEGC,QAAQ,iBAAI,gCAAC,IAAD,QAAOA,QAAP,CAFf,CADF;AAAA,CADuB,CAAzB;AASAH,gBAAgB,CAACK,WAAjB,GAA+B,kBAA/B;eAEeL,gB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/DatePicker/DatePickerCalendar.tsx"],"names":["Container","styled","div","m","min","xs","p","theme","datePickerPadding","MonthContainer","Month","ellipsisStyles","Calendar","datePickerCellSize","DayOfWeek","datePickerDayOfWeekColorText","sizes","small","Day","resetFocusStyles","datePickerDaySize","borderRadius","datePickerDayColorBgHover","datePickerDayColorTextHover","DayAnotherMonth","datePickerDayAnotherMonthColorText","Today","datePickerTodayColorBg","datePickerTodayColorText","datePickerTodayColorBorder","SelectedDay","datePickerSelectedDayColorBg","datePickerSelectedDayColorText","DatePickerCalendar","firstDayOfWeek","locale","value","onChange","onChangeRef","current","selectedMonth","updateMonth","days","getDayProps","date","tabIndex","role","onClick","getTime","onKeyDown","e","includes","key","preventDefault","onMouseDown","prevMonthLabel","months","month","year","nextMonthLabel","shortDaysOfWeek","slice","map","item","type","toISOString","getDate"],"mappings":"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","sourcesContent":["import React, { HTMLAttributes, useCallback, useRef } from 'react';\nimport styled from '@emotion/styled';\nimport {\n ellipsisStyles,\n resetFocusStyles,\n transitionStyles,\n} from '@os-design/styles';\nimport { Left, Right } from '@os-design/icons';\nimport { clr } from '@os-design/theming';\nimport { m } from '@os-design/media';\nimport {\n DatePickerLocale,\n getAccessibilityDateLabel,\n useDatePickerCalendar,\n} from '@os-design/date-picker-utils';\nimport Button from '../Button';\n\ninterface DatePickerCalendarProps {\n firstDayOfWeek: 'sunday' | 'monday';\n locale: DatePickerLocale;\n value?: number | null;\n onChange?: (value: number) => void;\n}\n\nconst Container = styled.div`\n // For popover\n ${m.min.xs} {\n padding: ${(p) => p.theme.datePickerPadding}em;\n }\n`;\n\nconst MonthContainer = styled.div`\n display: flex;\n align-items: center;\n margin-bottom: 0.5em;\n`;\n\nconst Month = styled.div`\n flex-grow: 1;\n font-weight: 500;\n text-align: center;\n padding: 0 0.4em;\n ${ellipsisStyles};\n`;\n\nconst Calendar = styled.div`\n display: grid;\n grid-template-columns: repeat(7, ${(p) => p.theme.datePickerCellSize}em);\n grid-auto-rows: ${(p) => p.theme.datePickerCellSize}em;\n justify-content: space-between;\n overflow-x: auto;\n`;\n\nconst DayOfWeek = styled.div`\n justify-self: center;\n align-self: center;\n color: ${(p) => clr(p.theme.datePickerDayOfWeekColorText)};\n font-size: ${(p) => p.theme.sizes.small}em;\n`;\n\nconst Day = styled.div`\n ${resetFocusStyles};\n justify-self: center;\n align-self: center;\n\n width: ${(p) => p.theme.datePickerDaySize}em;\n height: ${(p) => p.theme.datePickerDaySize}em;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n border-radius: ${(p) => p.theme.borderRadius}em;\n cursor: pointer;\n\n @media (hover: hover) {\n &:hover,\n &:focus {\n background-color: ${(p) => clr(p.theme.datePickerDayColorBgHover)};\n color: ${(p) => clr(p.theme.datePickerDayColorTextHover)};\n }\n }\n\n ${transitionStyles('background-color', 'color')};\n`;\n\nconst DayAnotherMonth = styled(Day)`\n color: ${(p) => clr(p.theme.datePickerDayAnotherMonthColorText)};\n`;\n\nconst Today = styled(Day)`\n background-color: ${(p) => clr(p.theme.datePickerTodayColorBg)};\n color: ${(p) => clr(p.theme.datePickerTodayColorText)};\n border: 1px solid ${(p) => clr(p.theme.datePickerTodayColorBorder)};\n box-sizing: border-box;\n`;\n\nconst SelectedDay = styled(Day)`\n background-color: ${(p) => clr(p.theme.datePickerSelectedDayColorBg)};\n color: ${(p) => clr(p.theme.datePickerSelectedDayColorText)};\n`;\n\nconst DatePickerCalendar: React.FC<DatePickerCalendarProps> = ({\n firstDayOfWeek,\n locale,\n value,\n onChange = () => {},\n}) => {\n const onChangeRef = useRef(onChange);\n\n useCallback(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n\n const { selectedMonth, updateMonth, days } = useDatePickerCalendar({\n value,\n firstDayOfWeek,\n });\n\n const getDayProps = useCallback<\n (date: Date) => HTMLAttributes<HTMLDivElement>\n >(\n (date: Date) => ({\n tabIndex: 0,\n role: 'button',\n 'aria-label': getAccessibilityDateLabel(date, locale),\n onClick: () => {\n if (!onChangeRef.current) return;\n onChangeRef.current(date.getTime() / 1000);\n },\n onKeyDown: (e) => {\n if (!onChangeRef.current) return;\n if (['Enter', ' '].includes(e.key)) {\n onChangeRef.current(date.getTime() / 1000);\n e.preventDefault();\n }\n },\n onMouseDown: (e) => e.preventDefault(),\n }),\n [locale]\n );\n\n return (\n <Container>\n <MonthContainer>\n <Button\n type='ghost'\n wide='never'\n size='small'\n onClick={() => updateMonth(-1)}\n aria-label={locale.prevMonthLabel}\n >\n <Left />\n </Button>\n <Month>\n {locale.months[selectedMonth.month]} {selectedMonth.year}\n </Month>\n <Button\n type='ghost'\n wide='never'\n size='small'\n onClick={() => updateMonth(1)}\n aria-label={locale.nextMonthLabel}\n >\n <Right />\n </Button>\n </MonthContainer>\n\n <Calendar>\n {(firstDayOfWeek === 'sunday'\n ? locale.shortDaysOfWeek\n : [...locale.shortDaysOfWeek.slice(1), locale.shortDaysOfWeek[0]]\n ).map((item) => (\n <DayOfWeek key={item}>{item}</DayOfWeek>\n ))}\n\n {days.map(({ type, date }) => {\n if (type === 'dayAnotherMonth') {\n return (\n <DayAnotherMonth key={date.toISOString()} {...getDayProps(date)}>\n {date.getDate()}\n </DayAnotherMonth>\n );\n }\n if (type === 'selectedDay') {\n return (\n <SelectedDay key={date.toISOString()} {...getDayProps(date)}>\n {date.getDate()}\n </SelectedDay>\n );\n }\n if (type === 'today') {\n return (\n <Today key={date.toISOString()} {...getDayProps(date)}>\n {date.getDate()}\n </Today>\n );\n }\n return (\n <Day key={date.toISOString()} {...getDayProps(date)}>\n {date.getDate()}\n </Day>\n );\n })}\n </Calendar>\n </Container>\n );\n};\n\nexport default DatePickerCalendar;\n"],"file":"DatePickerCalendar.js"}
|
|
1
|
+
{"version":3,"file":"DatePickerCalendar.js","names":["Container","styled","div","m","min","xs","p","theme","datePickerPadding","MonthContainer","Month","ellipsisStyles","Calendar","datePickerCellSize","DayOfWeek","clr","datePickerDayOfWeekColorText","sizes","small","Day","resetFocusStyles","datePickerDaySize","borderRadius","datePickerDayColorBgHover","datePickerDayColorTextHover","transitionStyles","DayAnotherMonth","datePickerDayAnotherMonthColorText","Today","datePickerTodayColorBg","datePickerTodayColorText","datePickerTodayColorBorder","SelectedDay","datePickerSelectedDayColorBg","datePickerSelectedDayColorText","DatePickerCalendar","firstDayOfWeek","locale","value","onChange","onChangeRef","useRef","useCallback","current","useDatePickerCalendar","selectedMonth","updateMonth","days","getDayProps","date","tabIndex","role","getAccessibilityDateLabel","onClick","getTime","onKeyDown","e","includes","key","preventDefault","onMouseDown","prevMonthLabel","months","month","year","nextMonthLabel","shortDaysOfWeek","slice","map","item","type","toISOString","getDate"],"sources":["../../../src/DatePicker/DatePickerCalendar.tsx"],"sourcesContent":["import React, { HTMLAttributes, useCallback, useRef } from 'react';\nimport styled from '@emotion/styled';\nimport {\n ellipsisStyles,\n resetFocusStyles,\n transitionStyles,\n} from '@os-design/styles';\nimport { Left, Right } from '@os-design/icons';\nimport { clr } from '@os-design/theming';\nimport { m } from '@os-design/media';\nimport {\n DatePickerLocale,\n getAccessibilityDateLabel,\n useDatePickerCalendar,\n} from '@os-design/date-picker-utils';\nimport Button from '../Button';\n\ninterface DatePickerCalendarProps {\n firstDayOfWeek: 'sunday' | 'monday';\n locale: DatePickerLocale;\n value?: number | null;\n onChange?: (value: number) => void;\n}\n\nconst Container = styled.div`\n // For popover\n ${m.min.xs} {\n padding: ${(p) => p.theme.datePickerPadding}em;\n }\n`;\n\nconst MonthContainer = styled.div`\n display: flex;\n align-items: center;\n margin-bottom: 0.5em;\n`;\n\nconst Month = styled.div`\n flex-grow: 1;\n font-weight: 500;\n text-align: center;\n padding: 0 0.4em;\n ${ellipsisStyles};\n`;\n\nconst Calendar = styled.div`\n display: grid;\n grid-template-columns: repeat(7, ${(p) => p.theme.datePickerCellSize}em);\n grid-auto-rows: ${(p) => p.theme.datePickerCellSize}em;\n justify-content: space-between;\n overflow-x: auto;\n`;\n\nconst DayOfWeek = styled.div`\n justify-self: center;\n align-self: center;\n color: ${(p) => clr(p.theme.datePickerDayOfWeekColorText)};\n font-size: ${(p) => p.theme.sizes.small}em;\n`;\n\nconst Day = styled.div`\n ${resetFocusStyles};\n justify-self: center;\n align-self: center;\n\n width: ${(p) => p.theme.datePickerDaySize}em;\n height: ${(p) => p.theme.datePickerDaySize}em;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n border-radius: ${(p) => p.theme.borderRadius}em;\n cursor: pointer;\n\n @media (hover: hover) {\n &:hover,\n &:focus {\n background-color: ${(p) => clr(p.theme.datePickerDayColorBgHover)};\n color: ${(p) => clr(p.theme.datePickerDayColorTextHover)};\n }\n }\n\n ${transitionStyles('background-color', 'color')};\n`;\n\nconst DayAnotherMonth = styled(Day)`\n color: ${(p) => clr(p.theme.datePickerDayAnotherMonthColorText)};\n`;\n\nconst Today = styled(Day)`\n background-color: ${(p) => clr(p.theme.datePickerTodayColorBg)};\n color: ${(p) => clr(p.theme.datePickerTodayColorText)};\n border: 1px solid ${(p) => clr(p.theme.datePickerTodayColorBorder)};\n box-sizing: border-box;\n`;\n\nconst SelectedDay = styled(Day)`\n background-color: ${(p) => clr(p.theme.datePickerSelectedDayColorBg)};\n color: ${(p) => clr(p.theme.datePickerSelectedDayColorText)};\n`;\n\nconst DatePickerCalendar: React.FC<DatePickerCalendarProps> = ({\n firstDayOfWeek,\n locale,\n value,\n onChange = () => {},\n}) => {\n const onChangeRef = useRef(onChange);\n\n useCallback(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n\n const { selectedMonth, updateMonth, days } = useDatePickerCalendar({\n value,\n firstDayOfWeek,\n });\n\n const getDayProps = useCallback<\n (date: Date) => HTMLAttributes<HTMLDivElement>\n >(\n (date: Date) => ({\n tabIndex: 0,\n role: 'button',\n 'aria-label': getAccessibilityDateLabel(date, locale),\n onClick: () => {\n if (!onChangeRef.current) return;\n onChangeRef.current(date.getTime() / 1000);\n },\n onKeyDown: (e) => {\n if (!onChangeRef.current) return;\n if (['Enter', ' '].includes(e.key)) {\n onChangeRef.current(date.getTime() / 1000);\n e.preventDefault();\n }\n },\n onMouseDown: (e) => e.preventDefault(),\n }),\n [locale]\n );\n\n return (\n <Container>\n <MonthContainer>\n <Button\n type='ghost'\n wide='never'\n size='small'\n onClick={() => updateMonth(-1)}\n aria-label={locale.prevMonthLabel}\n >\n <Left />\n </Button>\n <Month>\n {locale.months[selectedMonth.month]} {selectedMonth.year}\n </Month>\n <Button\n type='ghost'\n wide='never'\n size='small'\n onClick={() => updateMonth(1)}\n aria-label={locale.nextMonthLabel}\n >\n <Right />\n </Button>\n </MonthContainer>\n\n <Calendar>\n {(firstDayOfWeek === 'sunday'\n ? locale.shortDaysOfWeek\n : [...locale.shortDaysOfWeek.slice(1), locale.shortDaysOfWeek[0]]\n ).map((item) => (\n <DayOfWeek key={item}>{item}</DayOfWeek>\n ))}\n\n {days.map(({ type, date }) => {\n if (type === 'dayAnotherMonth') {\n return (\n <DayAnotherMonth key={date.toISOString()} {...getDayProps(date)}>\n {date.getDate()}\n </DayAnotherMonth>\n );\n }\n if (type === 'selectedDay') {\n return (\n <SelectedDay key={date.toISOString()} {...getDayProps(date)}>\n {date.getDate()}\n </SelectedDay>\n );\n }\n if (type === 'today') {\n return (\n <Today key={date.toISOString()} {...getDayProps(date)}>\n {date.getDate()}\n </Today>\n );\n }\n return (\n <Day key={date.toISOString()} {...getDayProps(date)}>\n {date.getDate()}\n </Day>\n );\n })}\n </Calendar>\n </Container>\n );\n};\n\nexport default DatePickerCalendar;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/DatePicker/index.tsx"],"names":["DatePicker","ref","placeholder","disabled","format","defaultFormat","firstDayOfWeek","locale","defaultLocale","value","defaultValue","onChange","size","rest","containerRef","mergedContainerRef","opened","setOpened","forwardedValue","setForwardedValue","formattedValue","Date","closeHandler","window","undefined","isMinXs","calendar","v","e","includes","key","preventDefault","stopPropagation","current","focus","clearLabel","displayName"],"mappings":"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","sourcesContent":["import React, { forwardRef, useCallback, useMemo, useState } from 'react';\nimport { WithSize } from '@os-design/styles';\nimport {\n useForwardedRef,\n useForwardedState,\n useKeyPress,\n} from '@os-design/utils';\nimport { Down, Up } from '@os-design/icons';\nimport { useIsMinWidth } from '@os-design/media';\nimport {\n defaultLocale,\n DatePickerLocale,\n defaultFormat,\n getAccessibilityDateLabel,\n} from '@os-design/date-picker-utils';\nimport { SelectContainer } from '../Select';\nimport {\n ClearButtonContainer,\n ClearIcon,\n IconContainer,\n Placeholder,\n Title,\n} from '../Select/SelectToggle';\nimport Popover from '../Popover';\nimport Modal from '../Modal';\nimport DatePickerCalendar from './DatePickerCalendar';\nimport Button from '../Button';\n\ntype JsxDivProps = Omit<\n JSX.IntrinsicElements['div'],\n 'value' | 'defaultValue' | 'onChange' | 'ref'\n>;\nexport interface DatePickerProps extends JsxDivProps, WithSize {\n /**\n * The placeholder of the date picker.\n * @default undefined\n */\n placeholder?: string;\n /**\n * Whether the date picker is disabled.\n * @default false\n */\n disabled?: boolean;\n /**\n * The format of the date.\n * @default undefined\n */\n format?: (date: Date) => string;\n /**\n * The first day of the week.\n * @default sunday\n */\n firstDayOfWeek?: 'sunday' | 'monday';\n /**\n * The locale of the date picker.\n * @default undefined\n */\n locale?: DatePickerLocale;\n /**\n * Selected timestamp.\n * @default undefined\n */\n value?: number | null;\n /**\n * The default value.\n * @default undefined\n */\n defaultValue?: number | null;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: number | null) => void;\n}\n\n/**\n * The component to choose a date.\n */\nconst DatePicker = forwardRef<HTMLDivElement, DatePickerProps>(\n (\n {\n placeholder,\n disabled = false,\n format = defaultFormat,\n firstDayOfWeek = 'sunday',\n locale = defaultLocale,\n value,\n defaultValue,\n onChange,\n size,\n ...rest\n },\n ref\n ) => {\n const [containerRef, mergedContainerRef] = useForwardedRef(ref);\n const [opened, setOpened] = useState(false);\n const [forwardedValue, setForwardedValue] = useForwardedState({\n value,\n defaultValue,\n onChange,\n });\n\n const formattedValue = useMemo(() => {\n if (!forwardedValue) return forwardedValue;\n return format(new Date(forwardedValue * 1000), locale);\n }, [forwardedValue, format, locale]);\n\n const closeHandler = useCallback(() => {\n setOpened(false);\n }, []);\n\n useKeyPress(\n (typeof window !== 'undefined' ? window : undefined) as EventTarget,\n 'Escape',\n closeHandler\n );\n const isMinXs = useIsMinWidth('xs');\n\n const calendar = (\n <DatePickerCalendar\n firstDayOfWeek={firstDayOfWeek}\n locale={locale}\n value={forwardedValue}\n onChange={(v) => {\n setForwardedValue(v);\n closeHandler();\n }}\n />\n );\n\n return (\n <>\n <SelectContainer\n opened={opened}\n disabled={disabled}\n size={size}\n tabIndex={!disabled ? 0 : -1}\n onClick={() => {\n if (disabled) return;\n setOpened(!opened);\n }}\n onKeyDown={(e) => {\n if (disabled) return;\n if (['Enter', ' '].includes(e.key)) {\n setOpened(!opened);\n e.preventDefault();\n }\n }}\n onMouseDown={(e) => e.preventDefault()}\n role='combobox'\n aria-label={\n forwardedValue !== undefined && forwardedValue !== null\n ? getAccessibilityDateLabel(\n new Date(forwardedValue * 1000),\n locale\n )\n : undefined\n }\n aria-disabled={disabled}\n {...rest}\n ref={mergedContainerRef}\n >\n {formattedValue !== undefined && formattedValue !== null ? (\n <>\n <Title disabled={disabled} aria-hidden>\n {formattedValue}\n </Title>\n <ClearButtonContainer aria-hidden>\n <Button\n type='ghost'\n wide='never'\n size='small'\n disabled={disabled}\n onClick={(e) => {\n setForwardedValue(null);\n e.stopPropagation();\n }}\n onKeyDown={(e) => {\n if (disabled) return;\n if (['Enter', ' '].includes(e.key)) {\n setForwardedValue(null);\n if (!containerRef.current) return;\n containerRef.current.focus();\n e.preventDefault();\n e.stopPropagation();\n }\n }}\n aria-label={locale.clearLabel}\n >\n <ClearIcon />\n </Button>\n </ClearButtonContainer>\n </>\n ) : (\n <>\n <Placeholder>{placeholder}</Placeholder>\n <IconContainer>{opened ? <Up /> : <Down />}</IconContainer>\n </>\n )}\n </SelectContainer>\n\n {isMinXs ? (\n <Popover\n trigger={containerRef}\n placement='bottom-start'\n visible={opened}\n onClose={closeHandler}\n size={size}\n >\n {calendar}\n </Popover>\n ) : (\n <Modal\n title={placeholder}\n footer={null}\n visible={opened}\n onClose={closeHandler}\n size={size}\n >\n {calendar}\n </Modal>\n )}\n </>\n );\n }\n);\n\nDatePicker.displayName = 'DatePicker';\n\nexport default DatePicker;\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["DatePicker","forwardRef","ref","placeholder","disabled","format","defaultFormat","firstDayOfWeek","locale","defaultLocale","value","defaultValue","onChange","size","rest","useForwardedRef","containerRef","mergedContainerRef","useState","opened","setOpened","useForwardedState","forwardedValue","setForwardedValue","formattedValue","useMemo","Date","closeHandler","useCallback","useKeyPress","window","undefined","isMinXs","useIsMinWidth","calendar","v","e","includes","key","preventDefault","getAccessibilityDateLabel","stopPropagation","current","focus","clearLabel","displayName"],"sources":["../../../src/DatePicker/index.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo, useState } from 'react';\nimport { WithSize } from '@os-design/styles';\nimport {\n useForwardedRef,\n useForwardedState,\n useKeyPress,\n} from '@os-design/utils';\nimport { Down, Up } from '@os-design/icons';\nimport { useIsMinWidth } from '@os-design/media';\nimport {\n defaultLocale,\n DatePickerLocale,\n defaultFormat,\n getAccessibilityDateLabel,\n} from '@os-design/date-picker-utils';\nimport { SelectContainer } from '../Select';\nimport {\n ClearButtonContainer,\n ClearIcon,\n IconContainer,\n Placeholder,\n Title,\n} from '../Select/SelectToggle';\nimport Popover from '../Popover';\nimport Modal from '../Modal';\nimport DatePickerCalendar from './DatePickerCalendar';\nimport Button from '../Button';\n\ntype JsxDivProps = Omit<\n JSX.IntrinsicElements['div'],\n 'value' | 'defaultValue' | 'onChange' | 'ref'\n>;\nexport interface DatePickerProps extends JsxDivProps, WithSize {\n /**\n * The placeholder of the date picker.\n * @default undefined\n */\n placeholder?: string;\n /**\n * Whether the date picker is disabled.\n * @default false\n */\n disabled?: boolean;\n /**\n * The format of the date.\n * @default undefined\n */\n format?: (date: Date) => string;\n /**\n * The first day of the week.\n * @default sunday\n */\n firstDayOfWeek?: 'sunday' | 'monday';\n /**\n * The locale of the date picker.\n * @default undefined\n */\n locale?: DatePickerLocale;\n /**\n * Selected timestamp.\n * @default undefined\n */\n value?: number | null;\n /**\n * The default value.\n * @default undefined\n */\n defaultValue?: number | null;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: number | null) => void;\n}\n\n/**\n * The component to choose a date.\n */\nconst DatePicker = forwardRef<HTMLDivElement, DatePickerProps>(\n (\n {\n placeholder,\n disabled = false,\n format = defaultFormat,\n firstDayOfWeek = 'sunday',\n locale = defaultLocale,\n value,\n defaultValue,\n onChange,\n size,\n ...rest\n },\n ref\n ) => {\n const [containerRef, mergedContainerRef] = useForwardedRef(ref);\n const [opened, setOpened] = useState(false);\n const [forwardedValue, setForwardedValue] = useForwardedState({\n value,\n defaultValue,\n onChange,\n });\n\n const formattedValue = useMemo(() => {\n if (!forwardedValue) return forwardedValue;\n return format(new Date(forwardedValue * 1000), locale);\n }, [forwardedValue, format, locale]);\n\n const closeHandler = useCallback(() => {\n setOpened(false);\n }, []);\n\n useKeyPress(\n (typeof window !== 'undefined' ? window : undefined) as EventTarget,\n 'Escape',\n closeHandler\n );\n const isMinXs = useIsMinWidth('xs');\n\n const calendar = (\n <DatePickerCalendar\n firstDayOfWeek={firstDayOfWeek}\n locale={locale}\n value={forwardedValue}\n onChange={(v) => {\n setForwardedValue(v);\n closeHandler();\n }}\n />\n );\n\n return (\n <>\n <SelectContainer\n opened={opened}\n disabled={disabled}\n size={size}\n tabIndex={!disabled ? 0 : -1}\n onClick={() => {\n if (disabled) return;\n setOpened(!opened);\n }}\n onKeyDown={(e) => {\n if (disabled) return;\n if (['Enter', ' '].includes(e.key)) {\n setOpened(!opened);\n e.preventDefault();\n }\n }}\n onMouseDown={(e) => e.preventDefault()}\n role='combobox'\n aria-label={\n forwardedValue !== undefined && forwardedValue !== null\n ? getAccessibilityDateLabel(\n new Date(forwardedValue * 1000),\n locale\n )\n : undefined\n }\n aria-disabled={disabled}\n {...rest}\n ref={mergedContainerRef}\n >\n {formattedValue !== undefined && formattedValue !== null ? (\n <>\n <Title disabled={disabled} aria-hidden>\n {formattedValue}\n </Title>\n <ClearButtonContainer aria-hidden>\n <Button\n type='ghost'\n wide='never'\n size='small'\n disabled={disabled}\n onClick={(e) => {\n setForwardedValue(null);\n e.stopPropagation();\n }}\n onKeyDown={(e) => {\n if (disabled) return;\n if (['Enter', ' '].includes(e.key)) {\n setForwardedValue(null);\n if (!containerRef.current) return;\n containerRef.current.focus();\n e.preventDefault();\n e.stopPropagation();\n }\n }}\n aria-label={locale.clearLabel}\n >\n <ClearIcon />\n </Button>\n </ClearButtonContainer>\n </>\n ) : (\n <>\n <Placeholder>{placeholder}</Placeholder>\n <IconContainer>{opened ? <Up /> : <Down />}</IconContainer>\n </>\n )}\n </SelectContainer>\n\n {isMinXs ? (\n <Popover\n trigger={containerRef}\n placement='bottom-start'\n visible={opened}\n onClose={closeHandler}\n size={size}\n >\n {calendar}\n </Popover>\n ) : (\n <Modal\n title={placeholder}\n footer={null}\n visible={opened}\n onClose={closeHandler}\n size={size}\n >\n {calendar}\n </Modal>\n )}\n </>\n );\n }\n);\n\nDatePicker.displayName = 'DatePicker';\n\nexport default DatePicker;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["DRAWER_CONTAINER_Z_INDEX","DRAWER_BOX_SHADOW_SIZE_EM","DrawerMask","styled","ModalMask","Container","div","placementLeftFadeIn","keyframes","placementLeftFadeOut","placementRightFadeIn","placementRightFadeOut","placementLeftVisibleStyles","p","placement","visible","css","theme","transitionDelay","placementLeftInvisibleStyles","placementRightVisibleStyles","placementRightInvisibleStyles","Content","omitEmotionProps","width","clr","colorBg","colorText","drawerColorBoxShadow","enableScrollingStyles","sizeStyles","Drawer","forwardRef","ref","onClose","size","children","onClick","rest","useTheme","mounted","useClosable","useBodyScroll","useKeyPress","window","undefined","e","stopPropagation","displayName"],"sources":["../../../src/Drawer/index.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport FocusLock from 'react-focus-lock';\nimport {\n useBodyScroll,\n useClosable,\n useKeyPress,\n omitEmotionProps,\n} from '@os-design/utils';\nimport { enableScrollingStyles, sizeStyles, WithSize } from '@os-design/styles';\nimport { clr, useTheme } from '@os-design/theming';\nimport styled from '@emotion/styled';\nimport { css, keyframes } from '@emotion/react';\nimport Portal from '@os-design/portal';\nimport { ModalMask } from '../Modal';\n\ntype JsxDivProps = Omit<JSX.IntrinsicElements['div'], 'ref'>;\nexport interface DrawerProps extends JsxDivProps, WithSize {\n /**\n * The placement of the drawer.\n * @default right\n */\n placement?: 'left' | 'right';\n /**\n * The width of the drawer.\n * @default 15em\n */\n width?: string;\n /**\n * Whether the drawer is visible.\n * @default false\n */\n visible?: boolean;\n /**\n * Specifies a callback that will be called when a user clicks the mask.\n * The callback should set the visible state to false.\n * @default undefined\n */\n onClose?: () => void;\n}\n\nconst DRAWER_CONTAINER_Z_INDEX = 900;\nconst DRAWER_BOX_SHADOW_SIZE_EM = 1;\n\nconst DrawerMask = styled(ModalMask)`\n z-index: ${DRAWER_CONTAINER_Z_INDEX};\n`;\n\nconst Container = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n height: 100%;\n z-index: ${DRAWER_CONTAINER_Z_INDEX};\n`;\n\nconst placementLeftFadeIn = keyframes`\n from { transform: translateX(calc(-100% - ${DRAWER_BOX_SHADOW_SIZE_EM}em)); }\n to { transform: translateX(0); }\n`;\n\nconst placementLeftFadeOut = keyframes`\n from { transform: translateX(0); }\n to { transform: translateX(calc(-100% - ${DRAWER_BOX_SHADOW_SIZE_EM}em)); }\n`;\n\nconst placementRightFadeIn = keyframes`\n from { transform: translateX(calc(100vw + ${DRAWER_BOX_SHADOW_SIZE_EM}em)); }\n to { transform: translateX(calc(100vw - 100%)); }\n`;\n\nconst placementRightFadeOut = keyframes`\n from { transform: translateX(calc(100vw - 100%)); }\n to { transform: translateX(calc(100vw + ${DRAWER_BOX_SHADOW_SIZE_EM}em)); }\n`;\n\nconst placementLeftVisibleStyles = (p) =>\n p.placement === 'left' &&\n p.visible &&\n css`\n animation: ${placementLeftFadeIn} ${p.theme.transitionDelay}ms forwards;\n `;\n\nconst placementLeftInvisibleStyles = (p) =>\n p.placement === 'left' &&\n !p.visible &&\n css`\n animation: ${placementLeftFadeOut} ${p.theme.transitionDelay}ms forwards;\n `;\n\nconst placementRightVisibleStyles = (p) =>\n p.placement === 'right' &&\n p.visible &&\n css`\n animation: ${placementRightFadeIn} ${p.theme.transitionDelay}ms forwards;\n `;\n\nconst placementRightInvisibleStyles = (p) =>\n p.placement === 'right' &&\n !p.visible &&\n css`\n animation: ${placementRightFadeOut} ${p.theme.transitionDelay}ms forwards;\n `;\n\ntype ContentProps = Pick<\n DrawerProps,\n 'placement' | 'width' | 'visible' | 'size'\n>;\nconst Content = styled(\n 'div',\n omitEmotionProps('placement', 'width', 'visible', 'size')\n)<ContentProps>`\n position: absolute;\n top: 0;\n bottom: 0;\n width: ${(p) => p.width};\n padding-bottom: env(safe-area-inset-bottom);\n\n background-color: ${(p) => clr(p.theme.colorBg)};\n color: ${(p) => clr(p.theme.colorText)};\n box-shadow: 0 0 ${DRAWER_BOX_SHADOW_SIZE_EM}em\n ${(p) => clr(p.theme.drawerColorBoxShadow)};\n\n ${placementLeftVisibleStyles};\n ${placementLeftInvisibleStyles};\n ${placementRightVisibleStyles};\n ${placementRightInvisibleStyles};\n\n ${enableScrollingStyles('y')};\n ${sizeStyles};\n`;\n\n/**\n * The side panel that appears from the edge of the screen.\n */\nconst Drawer = forwardRef<HTMLDivElement, DrawerProps>(\n (\n {\n placement = 'right',\n width = '15em',\n visible = false,\n onClose = () => {},\n size,\n children,\n onClick = () => {},\n ...rest\n },\n ref\n ) => {\n const { theme } = useTheme();\n const mounted = useClosable(visible, theme.transitionDelay);\n useBodyScroll(!visible);\n useKeyPress(\n (typeof window !== 'undefined' ? window : undefined) as EventTarget,\n 'Escape',\n onClose\n );\n\n if (!mounted) return null;\n\n return (\n <Portal>\n <DrawerMask visible={visible} />\n <Container onClick={onClose}>\n <FocusLock autoFocus={false}>\n <Content\n placement={placement}\n width={width}\n visible={visible}\n size={size}\n onClick={(e) => {\n e.stopPropagation();\n onClick(e);\n }}\n role='dialog'\n aria-modal\n {...rest}\n ref={ref}\n >\n {children}\n </Content>\n </FocusLock>\n </Container>\n </Portal>\n );\n }\n);\n\nDrawer.displayName = 'Drawer';\n\nexport default Drawer;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"FormConfigContext.js","names":["FormConfigContext","React","createContext","optionalText","displayName"],"sources":["../../../src/Form/FormConfigContext.ts"],"sourcesContent":["import React from 'react';\n\nexport interface FormConfigContextProps {\n /**\n * The text that is displayed to the right of the label of the optional field.\n */\n optionalText: string;\n}\n\nconst FormConfigContext = React.createContext<FormConfigContextProps>({\n optionalText: 'optional',\n});\n\nFormConfigContext.displayName = 'FormConfigContext';\n\nexport default FormConfigContext;\n"],"mappings":";;;;;;;AAAA;;;;AASA,IAAMA,iBAAiB,gBAAGC,iBAAA,CAAMC,aAAN,CAA4C;EACpEC,YAAY,EAAE;AADsD,CAA5C,CAA1B;;AAIAH,iBAAiB,CAACI,WAAlB,GAAgC,mBAAhC;eAEeJ,iB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["StyledForm","styled","omitEmotionProps","sizeStyles","Form","forwardRef","ref","optionalText","rest","memoizedOptionalText","useMemo","displayName"],"sources":["../../../src/Form/index.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from 'react';\nimport styled from '@emotion/styled';\nimport { sizeStyles, WithSize } from '@os-design/styles';\nimport { omitEmotionProps } from '@os-design/utils';\nimport FormConfigContext from './FormConfigContext';\n\ntype JsxDivProps = Omit<JSX.IntrinsicElements['div'], 'ref'>;\nexport interface FormProps extends JsxDivProps, WithSize {\n /**\n * The text that is displayed to the right of the label of the optional field.\n * @default optional\n */\n optionalText?: string;\n}\n\nconst StyledForm = styled('div', omitEmotionProps('size'))<WithSize>`\n max-width: 50em;\n\n & > * + * {\n margin-top: 1em;\n }\n & > style + * {\n margin-top: 0;\n }\n\n ${sizeStyles};\n`;\n\n/**\n * The wrapper of the form.\n */\nconst Form = forwardRef<HTMLDivElement, FormProps>(\n ({ optionalText = 'optional', ...rest }, ref) => {\n const memoizedOptionalText = useMemo(\n () => ({ optionalText }),\n [optionalText]\n );\n\n return (\n <FormConfigContext.Provider value={memoizedOptionalText}>\n <StyledForm {...rest} ref={ref} />\n </FormConfigContext.Provider>\n );\n }\n);\n\nForm.displayName = 'Form';\n\nexport default Form;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;AAWA,IAAMA,UAAU,GAAG,IAAAC,kBAAA,EAAO,KAAP,EAAc,IAAAC,uBAAA,EAAiB,MAAjB,CAAd,CAAH,+LAUZC,kBAVY,CAAhB;AAaA;AACA;AACA;;AACA,IAAMC,IAAI,gBAAG,IAAAC,iBAAA,EACX,gBAAyCC,GAAzC,EAAiD;EAAA,6BAA9CC,YAA8C;EAAA,IAA9CA,YAA8C,kCAA/B,UAA+B;EAAA,IAAhBC,IAAgB;;EAC/C,IAAMC,oBAAoB,GAAG,IAAAC,cAAA,EAC3B;IAAA,OAAO;MAAEH,YAAY,EAAZA;IAAF,CAAP;EAAA,CAD2B,EAE3B,CAACA,YAAD,CAF2B,CAA7B;EAKA,oBACE,gCAAC,6BAAD,CAAmB,QAAnB;IAA4B,KAAK,EAAEE;EAAnC,gBACE,gCAAC,UAAD,eAAgBD,IAAhB;IAAsB,GAAG,EAAEF;EAA3B,GADF,CADF;AAKD,CAZU,CAAb;AAeAF,IAAI,CAACO,WAAL,GAAmB,MAAnB;eAEeP,I"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["Container","styled","omitEmotionProps","p","clr","theme","formDividerColor","sizeStyles","Content","div","Title","colorText","sizes","large","ellipsisStyles","Description","inputColorPlaceholder","small","FormDivider","forwardRef","ref","title","description","rest","displayName"],"sources":["../../../src/FormDivider/index.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport styled from '@emotion/styled';\nimport { ellipsisStyles, sizeStyles, WithSize } from '@os-design/styles';\nimport { omitEmotionProps } from '@os-design/utils';\nimport { clr } from '@os-design/theming';\n\ntype JsxDivProps = Omit<JSX.IntrinsicElements['div'], 'ref'>;\nexport interface FormDividerProps extends JsxDivProps, WithSize {\n /**\n * The title that is in the center of the divider.\n */\n title: string;\n /**\n * The description that is under the title.\n * @default undefined\n */\n description?: string;\n}\n\nconst Container = styled('div', omitEmotionProps('size'))<WithSize>`\n display: flex;\n align-items: center;\n margin: 3em 0 1em;\n\n &::before,\n &::after {\n content: '';\n flex: 1;\n min-width: 5%;\n max-width: 50%;\n border-top: 1px solid ${(p) => clr(p.theme.formDividerColor)};\n }\n\n ${sizeStyles};\n`;\n\nconst Content = styled.div`\n padding: 0 1.5em;\n text-align: center;\n overflow: hidden;\n`;\n\nconst Title = styled.div`\n color: ${(p) => clr(p.theme.colorText)};\n font-size: ${(p) => p.theme.sizes.large}em;\n font-weight: 500;\n ${ellipsisStyles};\n`;\n\nconst Description = styled.div`\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n font-size: ${(p) => p.theme.sizes.small}em;\n line-height: 1.2;\n ${ellipsisStyles};\n`;\n\n/**\n * The divider line for separating the various elements of the form.\n */\nconst FormDivider = forwardRef<HTMLDivElement, FormDividerProps>(\n ({ title, description, ...rest }, ref) => (\n <Container role='separator' {...rest} ref={ref}>\n <Content>\n <Title>{title}</Title>\n <Description>{description}</Description>\n </Content>\n </Container>\n )\n);\n\nFormDivider.displayName = 'FormDivider';\n\nexport default FormDivider;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;AAeA,IAAMA,SAAS,GAAG,IAAAC,kBAAA,EAAO,KAAP,EAAc,IAAAC,uBAAA,EAAiB,MAAjB,CAAd,CAAH,gSAWa,UAACC,CAAD;EAAA,OAAO,IAAAC,YAAA,EAAID,CAAC,CAACE,KAAF,CAAQC,gBAAZ,CAAP;AAAA,CAXb,EAcXC,kBAdW,CAAf;;AAiBA,IAAMC,OAAO,GAAGP,kBAAA,CAAOQ,GAAV,0IAAb;;AAMA,IAAMC,KAAK,GAAGT,kBAAA,CAAOQ,GAAV,8IACA,UAACN,CAAD;EAAA,OAAO,IAAAC,YAAA,EAAID,CAAC,CAACE,KAAF,CAAQM,SAAZ,CAAP;AAAA,CADA,EAEI,UAACR,CAAD;EAAA,OAAOA,CAAC,CAACE,KAAF,CAAQO,KAAR,CAAcC,KAArB;AAAA,CAFJ,EAIPC,sBAJO,CAAX;;AAOA,IAAMC,WAAW,GAAGd,kBAAA,CAAOQ,GAAV,8IACN,UAACN,CAAD;EAAA,OAAO,IAAAC,YAAA,EAAID,CAAC,CAACE,KAAF,CAAQW,qBAAZ,CAAP;AAAA,CADM,EAEF,UAACb,CAAD;EAAA,OAAOA,CAAC,CAACE,KAAF,CAAQO,KAAR,CAAcK,KAArB;AAAA,CAFE,EAIbH,sBAJa,CAAjB;AAOA;AACA;AACA;;;AACA,IAAMI,WAAW,gBAAG,IAAAC,iBAAA,EAClB,gBAAkCC,GAAlC;EAAA,IAAGC,KAAH,QAAGA,KAAH;EAAA,IAAUC,WAAV,QAAUA,WAAV;EAAA,IAA0BC,IAA1B;;EAAA,oBACE,gCAAC,SAAD;IAAW,IAAI,EAAC;EAAhB,GAAgCA,IAAhC;IAAsC,GAAG,EAAEH;EAA3C,iBACE,gCAAC,OAAD,qBACE,gCAAC,KAAD,QAAQC,KAAR,CADF,eAEE,gCAAC,WAAD,QAAcC,WAAd,CAFF,CADF,CADF;AAAA,CADkB,CAApB;AAWAJ,WAAW,CAACM,WAAZ,GAA0B,aAA1B;eAEeN,W"}
|