@doist/reactist 22.0.1-beta → 22.1.0

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.
Files changed (64) hide show
  1. package/dist/reactist.cjs.development.js +188 -353
  2. package/dist/reactist.cjs.development.js.map +1 -1
  3. package/dist/reactist.cjs.production.min.js +1 -1
  4. package/dist/reactist.cjs.production.min.js.map +1 -1
  5. package/es/checkbox-field/checkbox-field.js +1 -1
  6. package/es/checkbox-field/checkbox-field.js.map +1 -1
  7. package/es/hooks/use-previous/use-previous.js +26 -0
  8. package/es/hooks/use-previous/use-previous.js.map +1 -0
  9. package/es/index.js +0 -1
  10. package/es/index.js.map +1 -1
  11. package/es/menu/menu.js +38 -35
  12. package/es/menu/menu.js.map +1 -1
  13. package/es/modal/modal.js +4 -3
  14. package/es/modal/modal.js.map +1 -1
  15. package/es/tabs/tabs.js +47 -40
  16. package/es/tabs/tabs.js.map +1 -1
  17. package/es/text-area/text-area.module.css.js +1 -1
  18. package/es/toast/use-toasts.js +6 -4
  19. package/es/toast/use-toasts.js.map +1 -1
  20. package/es/tooltip/tooltip.js +62 -20
  21. package/es/tooltip/tooltip.js.map +1 -1
  22. package/lib/checkbox-field/checkbox-field.js +1 -1
  23. package/lib/checkbox-field/checkbox-field.js.map +1 -1
  24. package/lib/hooks/use-previous/use-previous.js +2 -0
  25. package/lib/hooks/use-previous/use-previous.js.map +1 -0
  26. package/lib/index.d.ts +0 -1
  27. package/lib/index.js +1 -1
  28. package/lib/menu/menu.d.ts +4 -4
  29. package/lib/menu/menu.js +1 -1
  30. package/lib/menu/menu.js.map +1 -1
  31. package/lib/modal/modal.d.ts +2 -1
  32. package/lib/modal/modal.js +1 -1
  33. package/lib/modal/modal.js.map +1 -1
  34. package/lib/tabs/tabs.d.ts +8 -10
  35. package/lib/tabs/tabs.js +1 -1
  36. package/lib/tabs/tabs.js.map +1 -1
  37. package/lib/text-area/text-area.module.css.js +1 -1
  38. package/lib/toast/use-toasts.d.ts +5 -1
  39. package/lib/toast/use-toasts.js +1 -1
  40. package/lib/toast/use-toasts.js.map +1 -1
  41. package/lib/tooltip/tooltip.d.ts +4 -2
  42. package/lib/tooltip/tooltip.js +1 -1
  43. package/lib/tooltip/tooltip.js.map +1 -1
  44. package/lib/utils/test-helpers.d.ts +2 -13
  45. package/package.json +6 -5
  46. package/styles/reactist.css +2 -3
  47. package/styles/text-area.css +1 -1
  48. package/styles/text-area.module.css.css +1 -1
  49. package/es/checkbox-field/use-fork-ref.js +0 -35
  50. package/es/checkbox-field/use-fork-ref.js.map +0 -1
  51. package/es/deprecated-modal/modal.js +0 -219
  52. package/es/deprecated-modal/modal.js.map +0 -1
  53. package/es/deprecated-modal/modal.module.css.js +0 -4
  54. package/es/deprecated-modal/modal.module.css.js.map +0 -1
  55. package/lib/checkbox-field/use-fork-ref.d.ts +0 -11
  56. package/lib/checkbox-field/use-fork-ref.js +0 -2
  57. package/lib/checkbox-field/use-fork-ref.js.map +0 -1
  58. package/lib/deprecated-modal/index.d.ts +0 -1
  59. package/lib/deprecated-modal/modal.d.ts +0 -157
  60. package/lib/deprecated-modal/modal.js +0 -2
  61. package/lib/deprecated-modal/modal.js.map +0 -1
  62. package/lib/deprecated-modal/modal.module.css.js +0 -2
  63. package/lib/deprecated-modal/modal.module.css.js.map +0 -1
  64. package/lib/deprecated-modal/modal.test.d.ts +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../_virtual/_rollupPluginBabelHelpers.js"),t=require("react"),o=require("../box/box.js"),r=require("@ariakit/react"),n=require("./tooltip.module.css.js");exports.Tooltip=function({children:l,content:i,position:u="top",gapSize:a=3,withArrow:s=!1,exceptionallySetClassName:c}){const p=r.useTooltipStore({placement:u,showTimeout:500,hideTimeout:100}),d=p.useState("open"),f=t.Children.only(l);if(!f)return f;if("string"==typeof f.ref)throw new Error("Tooltip: String refs cannot be used as they cannot be forwarded");function m(e){var t;e.currentTarget.addEventListener("keyup",(function(e){const t=e.key;"Escape"!==t&&"Enter"!==t&&"Space"!==t&&p.show()}),{once:!0}),e.preventDefault(),null==f||null==(t=f.props)||null==t.onFocus||t.onFocus(e)}function h(e){var t;p.hide(),null==f||null==(t=f.props)||null==t.onBlur||t.onBlur(e)}return t.createElement(t.Fragment,null,t.createElement(r.TooltipAnchor,{render:o=>t.cloneElement(f,e.objectSpread2(e.objectSpread2(e.objectSpread2({},f.props),o),{},{onFocus:m,onBlur:h})),store:p,ref:f.ref}),d&&i?t.createElement(o.Box,{as:r.Tooltip,gutter:a,store:p,className:[n.default.tooltip,c],background:"toast",borderRadius:"standard",paddingX:"small",paddingY:"xsmall",maxWidth:"medium",width:"fitContent",overflow:"hidden",textAlign:"center"},s?t.createElement(r.TooltipArrow,null):null,"function"==typeof i?i():i):null)};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../_virtual/_rollupPluginBabelHelpers.js"),t=require("react"),r=require("../box/box.js"),o=require("ariakit/tooltip"),n=require("./tooltip.module.css.js");exports.HIDE_DELAY=100,exports.SHOW_DELAY=500,exports.Tooltip=function({children:l,content:u,position:i="top",gapSize:a=3,withArrow:s=!1,exceptionallySetClassName:c}){const p=function(r){const n=o.useTooltipState(r),l=function(){const e=t.useRef(),r=t.useCallback((function(){null!=e.current&&clearTimeout(e.current)}),[]);return t.useEffect(()=>r,[r]),t.useCallback((function(t,o){return()=>{r(),e.current=setTimeout(t,o)}}),[r])}();return t.useMemo(()=>e.objectSpread2(e.objectSpread2({},n),{},{show:l(()=>n.show(),500),hide:l(()=>n.hide(),100)}),[l,n])}({placement:i,gutter:a}),d=t.Children.only(l);if(!d)return d;if("string"==typeof d.ref)throw new Error("Tooltip: String refs cannot be used as they cannot be forwarded");function f(e){var t;e.currentTarget.addEventListener("keyup",(function(e){const t=e.key;"Escape"!==t&&"Enter"!==t&&"Space"!==t&&p.show()}),{once:!0}),e.preventDefault(),null==d||null==(t=d.props)||null==t.onFocus||t.onFocus(e)}function m(e){var t;p.hide(),null==d||null==(t=d.props)||null==t.onBlur||t.onBlur(e)}return t.createElement(t.Fragment,null,t.createElement(o.TooltipAnchor,{state:p,ref:d.ref,described:!0},r=>t.cloneElement(d,e.objectSpread2(e.objectSpread2(e.objectSpread2({},r),d.props),{},{onFocus:f,onBlur:m}))),p.open&&u?t.createElement(r.Box,{as:o.Tooltip,state:p,className:[n.default.tooltip,c],background:"toast",borderRadius:"standard",paddingX:"small",paddingY:"xsmall",maxWidth:"medium",width:"fitContent",overflow:"hidden",textAlign:"center"},s?t.createElement(o.TooltipArrow,null):null,"function"==typeof u?u():u):null)};
2
2
  //# sourceMappingURL=tooltip.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip.js","sources":["../../src/tooltip/tooltip.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport {\n useTooltipStore,\n Tooltip as AriakitTooltip,\n TooltipAnchor,\n TooltipArrow,\n} from '@ariakit/react'\nimport { Box } from '../box'\n\nimport type { TooltipStoreState } from '@ariakit/react'\n\nimport styles from './tooltip.module.css'\n\ntype TooltipProps = {\n /**\n * The element that triggers the tooltip. Generally a button or link.\n *\n * It should be an interactive element accessible both via mouse and keyboard interactions.\n */\n children: React.ReactNode\n\n /**\n * The content to show in the tooltip.\n *\n * It can be rich content provided via React elements, or string content. It should not include\n * interactive elements inside it. This includes links or buttons.\n *\n * You can provide a function instead of the content itself. In this case, the function should\n * return the desired content. This is useful if the content is expensive to generate. It can\n * also be useful if the content dynamically changes often, so every time you trigger the\n * tooltip the content may have changed (e.g. if you show a ticking time clock in the tooltip).\n *\n * The trigger element will be associated to this content via `aria-describedby`. This means\n * that the tooltip content will be read by assistive technologies such as screen readers. It\n * will likely read this content right after reading the trigger element label.\n */\n content: React.ReactNode | (() => React.ReactNode)\n\n /**\n * How to place the tooltip relative to its trigger element.\n *\n * The possible values are \"top\", \"bottom\", \"left\", \"right\". Additionally, any of these values\n * can be combined with `-start` or `-end` for even more control. For instance `top-start` will\n * place the tooltip at the top, but with the start (e.g. left) side of the toolip and the\n * trigger aligned. If neither `-start` or `-end` are provided, the tooltip is centered along\n * the vertical or horizontal axis with the trigger.\n *\n * The position is enforced whenever possible, but tooltips can appear in different positions\n * if the specified one would make the tooltip intersect with the viewport edges.\n *\n * @default 'top'\n */\n position?: TooltipStoreState['placement']\n\n /**\n * The separation (in pixels) between the trigger element and the tooltip.\n * @default 3\n */\n gapSize?: number\n\n /**\n * Whether to show an arrow-like element attached to the tooltip, and pointing towards the\n * trigger element.\n * @default false\n */\n withArrow?: boolean\n\n /**\n * An escape hatch, in case you need to provide a custom class name to the tooltip.\n */\n exceptionallySetClassName?: string\n}\n\nfunction Tooltip({\n children,\n content,\n position = 'top',\n gapSize = 3,\n withArrow = false,\n exceptionallySetClassName,\n}: TooltipProps) {\n const tooltip = useTooltipStore({ placement: position, showTimeout: 500, hideTimeout: 100 })\n const isOpen = tooltip.useState('open')\n\n const child = React.Children.only(\n children as React.FunctionComponentElement<JSX.IntrinsicElements['div']> | null,\n )\n\n if (!child) {\n return child\n }\n\n if (typeof child.ref === 'string') {\n throw new Error('Tooltip: String refs cannot be used as they cannot be forwarded')\n }\n\n /**\n * Prevents the tooltip from automatically firing on focus all the time. This is to prevent\n * tooltips from showing when the trigger element is focused back after a popover or dialog that\n * it opened was closed. See link below for more details.\n * @see https://github.com/ariakit/ariakit/discussions/749\n */\n function handleFocus(event: React.FocusEvent<HTMLDivElement>) {\n // If focus is not followed by a key up event, does it mean that it's not an intentional\n // keyboard focus? Not sure but it seems to work.\n // This may be resolved soon in an upcoming version of ariakit:\n // https://github.com/ariakit/ariakit/issues/750\n function handleKeyUp(event: Event) {\n const eventKey = (event as KeyboardEvent).key\n if (eventKey !== 'Escape' && eventKey !== 'Enter' && eventKey !== 'Space') {\n tooltip.show()\n }\n }\n event.currentTarget.addEventListener('keyup', handleKeyUp, { once: true })\n event.preventDefault() // Prevent tooltip.show from being called by TooltipReference\n child?.props?.onFocus?.(event)\n }\n\n function handleBlur(event: React.FocusEvent<HTMLDivElement>) {\n tooltip.hide()\n child?.props?.onBlur?.(event)\n }\n\n return (\n <>\n <TooltipAnchor\n render={(anchorProps) => {\n return React.cloneElement(child, {\n ...child.props,\n ...anchorProps,\n onFocus: handleFocus,\n onBlur: handleBlur,\n })\n }}\n store={tooltip}\n ref={child.ref}\n />\n {isOpen && content ? (\n <Box\n as={AriakitTooltip}\n gutter={gapSize}\n store={tooltip}\n className={[styles.tooltip, exceptionallySetClassName]}\n background=\"toast\"\n borderRadius=\"standard\"\n paddingX=\"small\"\n paddingY=\"xsmall\"\n maxWidth=\"medium\"\n width=\"fitContent\"\n overflow=\"hidden\"\n textAlign=\"center\"\n >\n {withArrow ? <TooltipArrow /> : null}\n {typeof content === 'function' ? content() : content}\n </Box>\n ) : null}\n </>\n )\n}\n\nexport type { TooltipProps }\nexport { Tooltip }\n"],"names":["children","content","position","gapSize","withArrow","exceptionallySetClassName","tooltip","useTooltipStore","placement","showTimeout","hideTimeout","isOpen","useState","child","React","only","ref","Error","handleFocus","event","currentTarget","addEventListener","eventKey","key","show","once","preventDefault","props","onFocus","handleBlur","hide","onBlur","TooltipAnchor","render","anchorProps","store","Box","as","AriakitTooltip","gutter","className","styles","background","borderRadius","paddingX","paddingY","maxWidth","width","overflow","textAlign","TooltipArrow"],"mappings":"6PA0EA,UAAiBA,SACbA,EADaC,QAEbA,EAFaC,SAGbA,EAAW,MAHEC,QAIbA,EAAU,EAJGC,UAKbA,GAAY,EALCC,0BAMbA,IAEA,MAAMC,EAAUC,kBAAgB,CAAEC,UAAWN,EAAUO,YAAa,IAAKC,YAAa,MAChFC,EAASL,EAAQM,SAAS,QAE1BC,EAAQC,WAAeC,KACzBf,GAGJ,IAAKa,EACD,OAAOA,EAGX,GAAyB,iBAAdA,EAAMG,IACb,MAAM,IAAIC,MAAM,mEASpB,SAASC,EAAYC,SAWjBA,EAAMC,cAAcC,iBAAiB,SANrC,SAAqBF,GACjB,MAAMG,EAAYH,EAAwBI,IACzB,WAAbD,GAAsC,UAAbA,GAAqC,UAAbA,GACjDhB,EAAQkB,SAG2C,CAAEC,MAAM,IACnEN,EAAMO,uBACNb,YAAAA,EAAOc,gBAAOC,WAAAA,QAAUT,GAG5B,SAASU,EAAWV,SAChBb,EAAQwB,aACRjB,YAAAA,EAAOc,gBAAOI,UAAAA,OAASZ,GAG3B,OACIL,gCACIA,gBAACkB,iBACGC,OAASC,GACEpB,eAAmBD,qDACnBA,EAAMc,OACNO,OACHN,QAASV,EACTa,OAAQF,KAGhBM,MAAO7B,EACPU,IAAKH,EAAMG,MAEdL,GAAUV,EACPa,gBAACsB,OACGC,GAAIC,UACJC,OAAQpC,EACRgC,MAAO7B,EACPkC,UAAW,CAACC,UAAOnC,QAASD,GAC5BqC,WAAW,QACXC,aAAa,WACbC,SAAS,QACTC,SAAS,SACTC,SAAS,SACTC,MAAM,aACNC,SAAS,SACTC,UAAU,UAET7C,EAAYU,gBAACoC,qBAAkB,KACZ,mBAAZjD,EAAyBA,IAAYA,GAEjD"}
1
+ {"version":3,"file":"tooltip.js","sources":["../../src/tooltip/tooltip.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport {\n useTooltipState as useAriakitTooltipState,\n Tooltip as AriakitTooltip,\n TooltipAnchor,\n TooltipArrow,\n} from 'ariakit/tooltip'\nimport { Box } from '../box'\n\nimport type {\n TooltipStateProps as AriakitTooltipStateProps,\n TooltipAnchorProps,\n} from 'ariakit/tooltip'\nimport type { PopoverState } from 'ariakit/popover'\n\nimport styles from './tooltip.module.css'\n\ntype TooltipProps = {\n /**\n * The element that triggers the tooltip. Generally a button or link.\n *\n * It should be an interactive element accessible both via mouse and keyboard interactions.\n */\n children: React.ReactNode\n\n /**\n * The content to show in the tooltip.\n *\n * It can be rich content provided via React elements, or string content. It should not include\n * interactive elements inside it. This includes links or buttons.\n *\n * You can provide a function instead of the content itself. In this case, the function should\n * return the desired content. This is useful if the content is expensive to generate. It can\n * also be useful if the content dynamically changes often, so every time you trigger the\n * tooltip the content may have changed (e.g. if you show a ticking time clock in the tooltip).\n *\n * The trigger element will be associated to this content via `aria-describedby`. This means\n * that the tooltip content will be read by assistive technologies such as screen readers. It\n * will likely read this content right after reading the trigger element label.\n */\n content: React.ReactNode | (() => React.ReactNode)\n\n /**\n * How to place the tooltip relative to its trigger element.\n *\n * The possible values are \"top\", \"bottom\", \"left\", \"right\". Additionally, any of these values\n * can be combined with `-start` or `-end` for even more control. For instance `top-start` will\n * place the tooltip at the top, but with the start (e.g. left) side of the toolip and the\n * trigger aligned. If neither `-start` or `-end` are provided, the tooltip is centered along\n * the vertical or horizontal axis with the trigger.\n *\n * The position is enforced whenever possible, but tooltips can appear in different positions\n * if the specified one would make the tooltip intersect with the viewport edges.\n *\n * @default 'top'\n */\n position?: PopoverState['placement']\n\n /**\n * The separation (in pixels) between the trigger element and the tooltip.\n * @default 3\n */\n gapSize?: number\n\n /**\n * Whether to show an arrow-like element attached to the tooltip, and pointing towards the\n * trigger element.\n * @default false\n */\n withArrow?: boolean\n\n /**\n * An escape hatch, in case you need to provide a custom class name to the tooltip.\n */\n exceptionallySetClassName?: string\n}\n\n// These are exported to be used in the tests, they are not meant to be exported publicly\nexport const SHOW_DELAY = 500\nexport const HIDE_DELAY = 100\n\nfunction useDelayedTooltipState(initialState: AriakitTooltipStateProps) {\n const tooltipState = useAriakitTooltipState(initialState)\n const delay = useDelay()\n return React.useMemo(\n () => ({\n ...tooltipState,\n show: delay(() => tooltipState.show(), SHOW_DELAY),\n hide: delay(() => tooltipState.hide(), HIDE_DELAY),\n }),\n [delay, tooltipState],\n )\n}\n\nfunction Tooltip({\n children,\n content,\n position = 'top',\n gapSize = 3,\n withArrow = false,\n exceptionallySetClassName,\n}: TooltipProps) {\n const state = useDelayedTooltipState({ placement: position, gutter: gapSize })\n\n const child = React.Children.only(\n children as React.FunctionComponentElement<JSX.IntrinsicElements['div']> | null,\n )\n\n if (!child) {\n return child\n }\n\n if (typeof child.ref === 'string') {\n throw new Error('Tooltip: String refs cannot be used as they cannot be forwarded')\n }\n\n /**\n * Prevents the tooltip from automatically firing on focus all the time. This is to prevent\n * tooltips from showing when the trigger element is focused back after a popover or dialog that\n * it opened was closed. See link below for more details.\n * @see https://github.com/ariakit/ariakit/discussions/749\n */\n function handleFocus(event: React.FocusEvent<HTMLDivElement>) {\n // If focus is not followed by a key up event, does it mean that it's not an intentional\n // keyboard focus? Not sure but it seems to work.\n // This may be resolved soon in an upcoming version of ariakit:\n // https://github.com/ariakit/ariakit/issues/750\n function handleKeyUp(event: Event) {\n const eventKey = (event as KeyboardEvent).key\n if (eventKey !== 'Escape' && eventKey !== 'Enter' && eventKey !== 'Space') {\n state.show()\n }\n }\n event.currentTarget.addEventListener('keyup', handleKeyUp, { once: true })\n event.preventDefault() // Prevent tooltip.show from being called by TooltipReference\n child?.props?.onFocus?.(event)\n }\n\n function handleBlur(event: React.FocusEvent<HTMLDivElement>) {\n state.hide()\n child?.props?.onBlur?.(event)\n }\n\n return (\n <>\n <TooltipAnchor state={state} ref={child.ref} described>\n {(anchorProps: TooltipAnchorProps) => {\n // Let child props override anchor props so user can specify attributes like tabIndex\n // Also, do not apply the child's props to TooltipAnchor as props like `as` can create problems\n // by applying the replacement component/element twice\n return React.cloneElement(child, {\n ...anchorProps,\n ...child.props,\n onFocus: handleFocus,\n onBlur: handleBlur,\n })\n }}\n </TooltipAnchor>\n {state.open && content ? (\n <Box\n as={AriakitTooltip}\n state={state}\n className={[styles.tooltip, exceptionallySetClassName]}\n background=\"toast\"\n borderRadius=\"standard\"\n paddingX=\"small\"\n paddingY=\"xsmall\"\n maxWidth=\"medium\"\n width=\"fitContent\"\n overflow=\"hidden\"\n textAlign=\"center\"\n >\n {withArrow ? <TooltipArrow /> : null}\n {typeof content === 'function' ? content() : content}\n </Box>\n ) : null}\n </>\n )\n}\n\nexport type { TooltipProps }\nexport { Tooltip }\n\n//\n// Internal helpers\n//\n\n/**\n * Returns a function offering the same interface as setTimeout, but cleans up on unmount.\n *\n * The timeout state is shared, and only one delayed function can be active at any given time. If\n * a new delayed function is called while another one was waiting for its time to run, that older\n * invocation is cleared and it never runs.\n *\n * This is suitable for our use case here, but probably not the most intuitive thing in general.\n * That's why this is not made a shared util or something like it.\n */\nfunction useDelay() {\n const timeoutRef = React.useRef<ReturnType<typeof setTimeout>>()\n\n const clearTimeouts = React.useCallback(function clearTimeouts() {\n if (timeoutRef.current != null) {\n clearTimeout(timeoutRef.current)\n }\n }, [])\n\n // Runs clearTimeouts when the component is unmounted\n React.useEffect(() => clearTimeouts, [clearTimeouts])\n\n return React.useCallback(\n function delay(fn: () => void, delay: number) {\n return () => {\n clearTimeouts()\n timeoutRef.current = setTimeout(fn, delay)\n }\n },\n [clearTimeouts],\n )\n}\n"],"names":["children","content","position","gapSize","withArrow","exceptionallySetClassName","state","initialState","tooltipState","useAriakitTooltipState","delay","timeoutRef","React","clearTimeouts","current","clearTimeout","fn","setTimeout","useDelay","show","hide","useDelayedTooltipState","placement","gutter","child","only","ref","Error","handleFocus","event","currentTarget","addEventListener","eventKey","key","once","preventDefault","props","onFocus","handleBlur","onBlur","TooltipAnchor","described","anchorProps","open","Box","as","AriakitTooltip","className","styles","tooltip","background","borderRadius","paddingX","paddingY","maxWidth","width","overflow","textAlign","TooltipArrow"],"mappings":"iQAgF0B,uBADA,oBAgB1B,UAAiBA,SACbA,EADaC,QAEbA,EAFaC,SAGbA,EAAW,MAHEC,QAIbA,EAAU,EAJGC,UAKbA,GAAY,EALCC,0BAMbA,IAEA,MAAMC,EArBV,SAAgCC,GAC5B,MAAMC,EAAeC,kBAAuBF,GACtCG,EAkHV,WACI,MAAMC,EAAaC,WAEbC,EAAgBD,eAAkB,WACV,MAAtBD,EAAWG,SACXC,aAAaJ,EAAWG,WAE7B,IAKH,OAFAF,YAAgB,IAAMC,EAAe,CAACA,IAE/BD,eACH,SAAeI,EAAgBN,GAC3B,MAAO,KACHG,IACAF,EAAWG,QAAUG,WAAWD,EAAIN,MAG5C,CAACG,IArISK,GACd,OAAON,UACH,uCACOJ,OACHW,KAAMT,EAAM,IAAMF,EAAaW,OATjB,KAUdC,KAAMV,EAAM,IAAMF,EAAaY,OATjB,OAWlB,CAACV,EAAOF,IAYEa,CAAuB,CAAEC,UAAWpB,EAAUqB,OAAQpB,IAE9DqB,EAAQZ,WAAea,KACzBzB,GAGJ,IAAKwB,EACD,OAAOA,EAGX,GAAyB,iBAAdA,EAAME,IACb,MAAM,IAAIC,MAAM,mEASpB,SAASC,EAAYC,SAWjBA,EAAMC,cAAcC,iBAAiB,SANrC,SAAqBF,GACjB,MAAMG,EAAYH,EAAwBI,IACzB,WAAbD,GAAsC,UAAbA,GAAqC,UAAbA,GACjD1B,EAAMa,SAG6C,CAAEe,MAAM,IACnEL,EAAMM,uBACNX,YAAAA,EAAOY,gBAAOC,WAAAA,QAAUR,GAG5B,SAASS,EAAWT,SAChBvB,EAAMc,aACNI,YAAAA,EAAOY,gBAAOG,UAAAA,OAASV,GAG3B,OACIjB,gCACIA,gBAAC4B,iBAAclC,MAAOA,EAAOoB,IAAKF,EAAME,IAAKe,cACvCC,GAIS9B,eAAmBY,qDACnBkB,GACAlB,EAAMY,WACTC,QAAST,EACTW,OAAQD,MAInBhC,EAAMqC,MAAQ1C,EACXW,gBAACgC,OACGC,GAAIC,UACJxC,MAAOA,EACPyC,UAAW,CAACC,UAAOC,QAAS5C,GAC5B6C,WAAW,QACXC,aAAa,WACbC,SAAS,QACTC,SAAS,SACTC,SAAS,SACTC,MAAM,aACNC,SAAS,SACTC,UAAU,UAETrD,EAAYQ,gBAAC8C,qBAAkB,KACZ,mBAAZzD,EAAyBA,IAAYA,GAEjD"}
@@ -6,17 +6,6 @@ declare type PropsWithSpace = {
6
6
  'data-testid'?: string;
7
7
  };
8
8
  declare function runSpaceTests<Props extends PropsWithSpace>(Component: React.ComponentType<Props>): void;
9
- /**
10
- * Solves some issues with unwanted warnings in tests of ariakit components due to its internal
11
- * usage of the event queue for asynchronous side-effects.
12
- *
13
- * Think of it as a special version of `act` that we need to call to make sure some async (but
14
- * immediate) actions are taken care of. Mostly around the ariakit popover and combobox elements'
15
- * state management.
16
- *
17
- * @see https://twitter.com/diegohaz/status/1560525455383461888
18
- * @see https://github.com/ariakit/ariakit/issues/1800#issuecomment-1227862399
19
- */
20
- declare function flushMicrotasks(): Promise<undefined>;
9
+ declare function flushPromises(): Promise<void>;
21
10
  declare function TestIcon(): JSX.Element;
22
- export { runSpaceTests, flushMicrotasks, TestIcon };
11
+ export { runSpaceTests, flushPromises, TestIcon };
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "email": "henning@doist.com",
7
7
  "url": "http://doist.com"
8
8
  },
9
- "version": "22.0.1-beta",
9
+ "version": "22.1.0",
10
10
  "license": "MIT",
11
11
  "homepage": "https://github.com/Doist/reactist#readme",
12
12
  "repository": {
@@ -28,8 +28,8 @@
28
28
  "styles"
29
29
  ],
30
30
  "engines": {
31
- "node": "^16.0.0 || ^18.0.0",
32
- "npm": "^8.3.0 || ^9.0.0"
31
+ "node": "^16.0.0 || ^18.0.0 || ^20.0.0",
32
+ "npm": "^8.3.0 || ^9.0.0 || ^10.0.0"
33
33
  },
34
34
  "scripts": {
35
35
  "postinstall": "patch-package",
@@ -143,9 +143,10 @@
143
143
  "webpack": "^4.43.0"
144
144
  },
145
145
  "dependencies": {
146
- "@ariakit/react": "^0.2.3",
147
- "@reach/dialog": "^0.16.0",
148
146
  "aria-hidden": "^1.2.1",
147
+ "ariakit": "2.0.0-next.43",
148
+ "ariakit-react-utils": "0.17.0-next.27",
149
+ "ariakit-utils": "0.17.0-next.27",
149
150
  "dayjs": "^1.8.10",
150
151
  "patch-package": "^6.4.6",
151
152
  "react-focus-lock": "^2.9.1",
@@ -22,7 +22,7 @@
22
22
  ._616a033e{font-family:var(--reactist-font-family)}._616a033e ._0b88d85e,._616a033e label{padding-bottom:var(--reactist-spacing-small)}._616a033e.c466cda3{border-radius:var(--reactist-border-radius-large);border:1px solid var(--reactist-inputs-idle);padding:var(--reactist-spacing-small);padding-bottom:var(--reactist-spacing-xsmall);overflow:clip}._616a033e.c466cda3 label{flex-grow:1;cursor:text}._616a033e.c466cda3 label span{cursor:default}._616a033e.c466cda3:focus-within{border-color:var(--reactist-inputs-focus)!important}._616a033e.c466cda3._4156d9cb{border-color:var(--reactist-alert-tone-critical-border)!important}._616a033e.c466cda3 ._274ef80a{font-weight:500}._616a033e.c466cda3 ._0b88d85e{font-size:var(--reactist-font-size-caption)}._616a033e:not(.c466cda3) ._274ef80a{font-weight:var(--reactist-font-weight-strong)}._616a033e:not(.c466cda3) ._0b88d85e{font-size:var(--reactist-font-size-body)}._2c4a8aed{color:var(--reactist-content-secondary)}._0b88d85e{text-align:right}.cd105f69{vertical-align:bottom}
23
23
  .a9cbb3a6{width:100%;position:relative}.a9cbb3a6.f3869290 select{padding:0;height:24px;border-color:transparent;outline:none}.a9cbb3a6 svg{position:absolute;right:10px;top:8px;bottom:8px;color:var(--reactist-content-secondary)}.a9cbb3a6 select{position:relative;z-index:1;--tmp-desired-height:32px;--tmp-line-height-increase:4px;--tmp-vertical-padding:calc((var(--tmp-desired-height) - var(--reactist-font-size-body) - var(--tmp-line-height-increase))/2);padding:var(--tmp-vertical-padding) 10px;padding-right:30px;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;width:100%;color:var(--reactist-content-primary);background:none;border-radius:var(--reactist-border-radius-small);border:1px solid var(--reactist-inputs-idle);font-size:var(--reactist-font-size-body);line-height:calc(var(--reactist-font-size-body) + 4px);margin:0}.a9cbb3a6:not(.f3869290).aefdbdaa select{border-color:var(--reactist-alert-tone-critical-border)!important}.a9cbb3a6:not(.f3869290) option{background-color:var(--reactist-bg-aside)}.a9cbb3a6:not(.f3869290) select:focus{border-color:var(--reactist-inputs-focus)}
24
24
  :root{--reactist-switch-background:var(--reactist-framework-fill-summit);--reactist-switch-checked:var(--reactist-content-positive);--reactist-switch-toggle:var(--reactist-bg-default)}.bae487be,.bae487be *{font-family:var(--reactist-font-family);cursor:pointer}.bae487be._408d32a0,.bae487be._408d32a0 *{cursor:not-allowed}.bae487be._408d32a0._99b0ead7 ._5af09fb5,.bae487be._408d32a0 .a66e1846{opacity:.5}._5af09fb5{--tmp-switch-width:32px;--tmp-switch-height:18px;--tmp-inner-padding:3px;--tmp-handle-size:calc(var(--tmp-switch-height) - 2*var(--tmp-inner-padding));--tmp-slide-length:calc(var(--tmp-switch-width) - var(--tmp-handle-size) - var(--tmp-inner-padding));min-height:auto;border-radius:calc(var(--tmp-switch-height)/2);background-color:var(--reactist-switch-background);cursor:pointer;position:relative}._5af09fb5,._5af09fb5>div,._5af09fb5 input[type=checkbox]{width:var(--tmp-switch-width);height:var(--tmp-switch-height)}._0dcf70ec{position:absolute;display:block;padding:0;top:var(--tmp-inner-padding);left:var(--tmp-inner-padding);width:var(--tmp-handle-size);height:var(--tmp-handle-size);border-radius:50%;background:var(--reactist-switch-toggle);transition:left .28s cubic-bezier(.4,0,.2,1)}._99b0ead7 ._5af09fb5{background-color:var(--reactist-switch-checked)}._99b0ead7 ._5af09fb5 ._0dcf70ec{left:var(--tmp-slide-length)}.bae487be._1f5e7fd4 ._5af09fb5:after{border-radius:calc(var(--tmp-switch-height) + 4px);border:2px solid var(--reactist-actionable-primary-idle-fill);bottom:-4px;content:"";left:-4px;position:absolute;right:-4px;top:-4px}
25
- .fdc243b3{font-family:var(--reactist-font-family)}._5c1dd8bc:after,.fdc243b3 textarea{outline:none;border:none;padding:0;box-sizing:border-box;font:inherit;width:100%;resize:vertical}.fdc243b3:not(._269f9e63) ._5c1dd8bc:after,.fdc243b3:not(._269f9e63) textarea{border-radius:var(--reactist-border-radius-small);padding:var(--reactist-spacing-small)}.fdc243b3._269f9e63{border-radius:var(--reactist-border-radius-large)}.fdc243b3._269f9e63,.fdc243b3:not(._269f9e63) ._5c1dd8bc:after,.fdc243b3:not(._269f9e63) textarea{border:1px solid var(--reactist-inputs-idle)}.fdc243b3._269f9e63:focus-within,.fdc243b3:not(._269f9e63) textarea:focus{border-color:var(--reactist-inputs-focus)}.fdc243b3._269f9e63.d1e4b585,.fdc243b3.d1e4b585:not(._269f9e63) ._5c1dd8bc:after,.fdc243b3.d1e4b585:not(._269f9e63) textarea{border-color:var(--reactist-alert-tone-critical-border)!important}._5c1dd8bc{display:grid}._5c1dd8bc:after{content:attr(data-replicated-value) " ";white-space:pre-wrap;visibility:hidden}._5c1dd8bc:after,._5c1dd8bc>textarea{grid-area:1/1/2/2}textarea._10c6f2ef{resize:none;overflow:hidden}
25
+ ._29503131{font-family:var(--reactist-font-family)}._6ea894ce:after,._29503131 textarea{outline:none;border:none;padding:0;box-sizing:border-box;font:inherit;width:100%;resize:vertical;overflow-wrap:anywhere}._29503131:not(.e1e8b6a7) ._6ea894ce:after,._29503131:not(.e1e8b6a7) textarea{border-radius:var(--reactist-border-radius-small);padding:var(--reactist-spacing-small)}._29503131.e1e8b6a7{border-radius:var(--reactist-border-radius-large)}._29503131.e1e8b6a7,._29503131:not(.e1e8b6a7) ._6ea894ce:after,._29503131:not(.e1e8b6a7) textarea{border:1px solid var(--reactist-inputs-idle)}._29503131.e1e8b6a7:focus-within,._29503131:not(.e1e8b6a7) textarea:focus{border-color:var(--reactist-inputs-focus)}._29503131.e1e8b6a7._1b94ff46,._29503131._1b94ff46:not(.e1e8b6a7) ._6ea894ce:after,._29503131._1b94ff46:not(.e1e8b6a7) textarea{border-color:var(--reactist-alert-tone-critical-border)!important}._6ea894ce{display:grid}._6ea894ce:after{content:attr(data-replicated-value) " ";white-space:pre-wrap;visibility:hidden}._6ea894ce:after,._6ea894ce>textarea{grid-area:1/1/2/2}textarea.e82223c4{resize:none;overflow:hidden}
26
26
  ._483abe7b{cursor:text;height:var(--reactist-input-wrapper-height)}._483abe7b:not(.fce9399c){--reactist-input-wrapper-height:32px;border-radius:var(--reactist-border-radius-small);border:1px solid var(--reactist-inputs-idle);overflow:clip}._483abe7b.fce9399c{--reactist-input-wrapper-height:24px}._483abe7b.fce9399c input{padding:0;height:var(--reactist-input-wrapper-height)}._483abe7b:not(.fce9399c):focus-within{border-color:var(--reactist-inputs-focus)}._483abe7b:not(.fce9399c)._603b8c4b{border-color:var(--reactist-alert-tone-critical-border)!important}._483abe7b input{color:var(--reactist-content-primary);flex:1;outline:none;box-sizing:border-box;width:100%;background:transparent;border:none;--tmp-desired-height:30px;--tmp-line-height-increase:4px;--tmp-vertical-padding:calc((var(--tmp-desired-height) - var(--reactist-font-size-body) - var(--tmp-line-height-increase))/2);font-size:var(--reactist-font-size-body);line-height:calc(var(--reactist-font-size-body) + 4px);margin:0}._483abe7b:not(.fce9399c) input{padding:var(--tmp-vertical-padding) var(--reactist-spacing-small)}._79ca0da5 button{--reactist-btn-height:24px!important}
27
27
  :root{--reactist-avatar-size-xxsmall:16px;--reactist-avatar-size-xsmall:20px;--reactist-avatar-size-small:30px;--reactist-avatar-size-medium:32px;--reactist-avatar-size-large:34px;--reactist-avatar-size-xlarge:48px;--reactist-avatar-size-xxlarge:70px;--reactist-avatar-size-xxxlarge:100px;--reactist-avatar-size:var(--reactist-avatar-size-large)}._38a1be89{flex-shrink:0;background-position:50%;color:#fff;text-align:center;border-radius:50%;width:var(--reactist-avatar-size);height:var(--reactist-avatar-size);line-height:var(--reactist-avatar-size);background-size:var(--reactist-avatar-size);font-size:calc(var(--reactist-avatar-size)/2)}.d32e92ae{--reactist-avatar-size:var(--reactist-avatar-size-xxsmall)}._0667d719{--reactist-avatar-size:var(--reactist-avatar-size-xsmall)}.cf529fcf{--reactist-avatar-size:var(--reactist-avatar-size-small)}._6e268eab{--reactist-avatar-size:var(--reactist-avatar-size-medium)}.d64c62cf{--reactist-avatar-size:var(--reactist-avatar-size-large)}._44fb77de{--reactist-avatar-size:var(--reactist-avatar-size-xlarge)}._01f85e0e{--reactist-avatar-size:var(--reactist-avatar-size-xxlarge)}._41a5fe19{--reactist-avatar-size:var(--reactist-avatar-size-xxxlarge)}@media (min-width:768px){._6ab1577d{--reactist-avatar-size:var(--reactist-avatar-size-xxsmall)}.b52a4963{--reactist-avatar-size:var(--reactist-avatar-size-xsmall)}._714a8419{--reactist-avatar-size:var(--reactist-avatar-size-small)}._81cd4d51{--reactist-avatar-size:var(--reactist-avatar-size-medium)}.bf0a4edb{--reactist-avatar-size:var(--reactist-avatar-size-large)}.e4f0dabd{--reactist-avatar-size:var(--reactist-avatar-size-xlarge)}._67ea065d{--reactist-avatar-size:var(--reactist-avatar-size-xxlarge)}._2af7f76f{--reactist-avatar-size:var(--reactist-avatar-size-xxxlarge)}}@media (min-width:992px){._759081dc{--reactist-avatar-size:var(--reactist-avatar-size-xxsmall)}._8290d1c1{--reactist-avatar-size:var(--reactist-avatar-size-xsmall)}._48ea172d{--reactist-avatar-size:var(--reactist-avatar-size-small)}._758f6641{--reactist-avatar-size:var(--reactist-avatar-size-medium)}.f9ada088{--reactist-avatar-size:var(--reactist-avatar-size-large)}.d3bb7470{--reactist-avatar-size:var(--reactist-avatar-size-xlarge)}._9a312ee3{--reactist-avatar-size:var(--reactist-avatar-size-xxlarge)}.a1d30c23{--reactist-avatar-size:var(--reactist-avatar-size-xxxlarge)}}
28
28
  :root{--reactist-badge-font-size:10px;--reactist-badge-info-tint:#666;--reactist-badge-info-fill:#eee;--reactist-badge-positive-tint:#058527;--reactist-badge-positive-fill:#e0f0e3;--reactist-badge-promote-tint:#8f4700;--reactist-badge-promote-fill:#faead1;--reactist-badge-attention-tint:#cf473a;--reactist-badge-attention-fill:#f9e3e2}._7957de66{font-family:var(--reactist-font-family);font-weight:var(--reactist-font-weight-strong);font-size:var(--reactist-badge-font-size);text-transform:uppercase;letter-spacing:.1em;border-radius:3px;padding:1px var(--reactist-spacing-xsmall);color:var(--reactist-badge-tint);background-color:var(--reactist-badge-fill);line-height:calc(var(--reactist-badge-font-size) + 3px)}.c6106b8c{--reactist-badge-tint:var(--reactist-badge-info-tint);--reactist-badge-fill:var(--reactist-badge-info-fill)}._6b06bf87{--reactist-badge-tint:var(--reactist-badge-positive-tint);--reactist-badge-fill:var(--reactist-badge-positive-fill)}.a6d2daa2{--reactist-badge-tint:var(--reactist-badge-promote-tint);--reactist-badge-fill:var(--reactist-badge-promote-fill)}.bbb036ff{--reactist-badge-tint:var(--reactist-badge-attention-tint);--reactist-badge-fill:var(--reactist-badge-attention-fill)}
@@ -36,5 +36,4 @@
36
36
  .reactist_button{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:inherit;border:none;background-color:transparent;padding:0}.reactist_button[aria-disabled=true]{opacity:.4;cursor:not-allowed}.reactist_button--small{font-size:.81rem;color:#202020;font-weight:400;line-height:1.6}.reactist_button--danger,.reactist_button--primary,.reactist_button--secondary{font-size:.875rem;color:#202020;font-weight:400;line-height:1.7;box-sizing:border-box;padding:5px 15px;border:1px solid rgba(0,0,0,.1);border-radius:3px}.reactist_button--danger.reactist_button--small,.reactist_button--primary.reactist_button--small,.reactist_button--secondary.reactist_button--small{padding:5px 10px}.reactist_button--danger.reactist_button--large,.reactist_button--primary.reactist_button--large,.reactist_button--secondary.reactist_button--large{padding:10px 15px}.reactist_button--primary{background-color:#3f82ef;color:#fff}.reactist_button--primary:not([disabled]):hover{background-color:#3b7be2}.reactist_button--danger{background-color:#de4c4a;color:#fff}.reactist_button--danger:not([disabled]):hover{background-color:#cf2826}.reactist_button--secondary{background-color:#fff;color:#202020;border-color:#dcdcdc}.reactist_button--secondary:not([disabled]):hover{background-color:#f9f9f9}.reactist_button--link{color:#3f82ef;text-decoration:none}.reactist_button--link:disabled{color:grey}.reactist_button--link:not(:disabled):hover{text-decoration:underline}.reactist_button--link:not(.reactist_button--link--small):not(.reactist_button--link--large){font-size:inherit}.reactist_button--danger.reactist_button--loading,.reactist_button--primary.reactist_button--loading,.reactist_button--secondary.reactist_button--loading{cursor:progress!important}.reactist_button--danger.reactist_button--loading:after,.reactist_button--primary.reactist_button--loading:after,.reactist_button--secondary.reactist_button--loading:after{background-repeat:no-repeat;background-size:15px;content:"";display:inline-block;height:15px;margin-left:12px;vertical-align:middle;width:15px;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-name:reactistRotateRight;animation-name:reactistRotateRight;-webkit-animation-timing-function:linear;animation-timing-function:linear;color:#fff;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNi4yNTciIGhlaWdodD0iMTYuMjU3IiB2aWV3Qm94PSItMTQ3LjgxMyAyMDYuNzUgMTYuMjU3IDE2LjI1NyIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAtMTQ3LjgxMyAyMDYuNzUgMTYuMjU3IDE2LjI1NyI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAtMikiPjxkZWZzPjxmaWx0ZXIgaWQ9ImEiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iLTE0Ny42ODQiIHk9IjIxMC45MjkiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxMy45NSI+PGZlQ29sb3JNYXRyaXggdmFsdWVzPSIxIDAgMCAwIDAgMCAxIDAgMCAwIDAgMCAxIDAgMCAwIDAgMCAxIDAiLz48L2ZpbHRlcj48L2RlZnM+PG1hc2sgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iLTE0Ny42ODQiIHk9IjIxMC45MjkiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxMy45NSIgaWQ9ImIiPjxnIGZpbHRlcj0idXJsKCNhKSI+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTS0xNDguNTg0IDIwNy45NzloMTh2MThoLTE4eiIvPjwvZz48L21hc2s+PHBhdGggbWFzaz0idXJsKCNiKSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjRkZGIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0iTS0xNDQuNjM0IDIxMS45MjlhNi45OTkgNi45OTkgMCAwMDAgOS44OTloMGE2Ljk5OSA2Ljk5OSAwIDAwOS44OTkgMCA2Ljk5OSA2Ljk5OSAwIDAwMC05Ljg5OSIvPjwvZz48L3N2Zz4=")}.reactist_button--secondary.reactist_button--loading{border-color:#dcdcdc;background-color:#dcdcdc;color:grey}@-webkit-keyframes reactistRotateRight{0%{transform:rotate(0deg);transform-origin:center center}to{transform:rotate(1turn);transform-origin:center center}}@keyframes reactistRotateRight{0%{transform:rotate(0deg);transform-origin:center center}to{transform:rotate(1turn);transform-origin:center center}}
37
37
  .reactist_dropdown .trigger{cursor:pointer;display:block}.reactist_dropdown .body{border-radius:3px;border:1px solid #dcdcdc;overflow:hidden;box-shadow:0 1px 8px 0 rgba(0,0,0,.08);z-index:1;background-color:#fff}.reactist_dropdown hr{border:none;height:1px;background-color:#dcdcdc;margin:0 5px}.reactist_dropdown .with_arrow:after,.reactist_dropdown .with_arrow:before{z-index:1;content:"";display:block;position:absolute;width:0;height:0;border-style:solid;border-width:6px;right:14px}.reactist_dropdown .with_arrow:after{top:-11px;border-color:transparent transparent #fff}.reactist_dropdown .with_arrow:before{top:-12px;border-color:transparent transparent #dcdcdc}.reactist_dropdown .with_arrow.top:after{top:-1px;border-color:#fff transparent transparent}.reactist_dropdown .with_arrow.top:before{top:-1px;right:13px;border-width:7px;border-color:#dcdcdc transparent transparent}
38
38
  .reactist_input{font-size:.875rem;color:#202020;font-weight:400;line-height:1.7;box-sizing:border-box;width:100%;display:block;outline:none;border:1px solid #dcdcdc;border-radius:3px;padding:5px 10px;margin:0}.reactist_input:focus{border-color:#3f82ef}.reactist_input:disabled{background-color:#fafafa}
39
- .reactist_select{font-size:.875rem;color:#202020;font-weight:400;line-height:1.7;background-color:#fff;border:1px solid #dcdcdc;border-radius:3px;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin:0;padding:5px 25px 5px 10px;background-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOCIgaGVpZ2h0PSIxMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMSAzbDMtMyAzIDNNMSA3bDMgMyAzLTMiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBvcGFjaXR5PSIuOCIvPjwvc3ZnPg==");background-position:calc(100% - 11px) 50%;background-repeat:no-repeat;background-size:8px 11px}.reactist_select.disabled{background-color:#fafafa}.reactist_select:focus{outline:none;border:1px solid #3f82ef}
40
- @-webkit-keyframes f7a1b219{0%{opacity:0}to{opacity:1}}@keyframes f7a1b219{0%{opacity:0}to{opacity:1}}:root{--reach-dialog:1;--reactist-modal-overlay-fill:rgba(0,0,0,0.5);--reactist-modal-padding-top:13vh}.ad18b0a0{isolation:isolate}[data-reach-dialog-overlay]{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;background-color:var(--reactist-modal-overlay-fill);-webkit-animation:f7a1b219 .2s;animation:f7a1b219 .2s;-webkit-animation-timing-function:cubic-bezier(.4,0,.2,1);animation-timing-function:cubic-bezier(.4,0,.2,1);transition:background-color .5s;display:flex;align-items:center;justify-content:center;z-index:var(--reactist-stacking-order-modal)}[data-reach-dialog-overlay]>[data-focus-lock-disabled]{display:flex;flex-direction:column;align-items:center;width:100%;height:100%;box-sizing:border-box;padding:var(--reactist-spacing-xxlarge)}[data-reach-dialog-overlay]._8ed9bb5c>[data-focus-lock-disabled]{padding-top:var(--reactist-modal-padding-top)}[data-reach-dialog-overlay]._8ed9bb5c>[data-focus-lock-disabled] .f67e892e{max-height:calc(100vh - 2*var(--reactist-modal-padding-top))}[data-reach-dialog-content]{background:var(--reactist-bg-default);padding:0;outline:none;transition:box-shadow .5s}.f67e892e{box-shadow:0 2px 8px 0 rgba(0,0,0,.16);transition:width .2s ease-in-out;max-width:100%}._4139421e .f67e892e{width:100%}._649eb5fe .f67e892e{width:768px}._5323e676 .f67e892e{width:580px}._56ca7ae6 .f67e892e{width:450px}@media (min-width:992px){.a7be0fce .f67e892e{width:960px}}@media (min-width:1200px){.a7be0fce .f67e892e{width:1060px}}@media (max-width:1000px){.a7be0fce .f67e892e{width:768px}}@media (max-width:580px){._88a7a680:not(._56ca7ae6) .f67e892e{width:100%!important;max-height:none}._88a7a680.b29456b8:not(._56ca7ae6)>[data-focus-lock-disabled]{padding-left:0;padding-right:0;padding-bottom:0}._88a7a680.b29456b8:not(._56ca7ae6) .f67e892e{border-bottom-left-radius:0;border-bottom-right-radius:0}}@media (max-width:400px){.f67e892e{width:100%!important;max-height:none}._88a7a680.b29456b8>[data-focus-lock-disabled]{padding-left:0;padding-right:0;padding-bottom:0}._88a7a680.b29456b8 .f67e892e{border-bottom-left-radius:0;border-bottom-right-radius:0}}._09ef1f4f{display:flex;align-items:center;height:32px}._0e5b530a{min-height:32px}
39
+ .reactist_select{font-size:.875rem;color:#202020;font-weight:400;line-height:1.7;background-color:#fff;border:1px solid #dcdcdc;border-radius:3px;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin:0;padding:5px 25px 5px 10px;background-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOCIgaGVpZ2h0PSIxMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMSAzbDMtMyAzIDNNMSA3bDMgMyAzLTMiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBvcGFjaXR5PSIuOCIvPjwvc3ZnPg==");background-position:calc(100% - 11px) 50%;background-repeat:no-repeat;background-size:8px 11px}.reactist_select.disabled{background-color:#fafafa}.reactist_select:focus{outline:none;border:1px solid #3f82ef}
@@ -7,4 +7,4 @@
7
7
  .c7813d79{margin-top:var(--reactist-spacing-xsmall)}.d3449da6{margin-top:var(--reactist-spacing-small)}._4ea254c1{margin-top:var(--reactist-spacing-medium)}.c0844f64{margin-top:var(--reactist-spacing-large)}._213145b4{margin-top:var(--reactist-spacing-xlarge)}.df61c84c{margin-top:var(--reactist-spacing-xxlarge)}.efe72b13{margin-top:calc(var(--reactist-spacing-xsmall)*-1)}._870c2768{margin-top:calc(var(--reactist-spacing-small)*-1)}._0b927c57{margin-top:calc(var(--reactist-spacing-medium)*-1)}._461db014{margin-top:calc(var(--reactist-spacing-large)*-1)}._2a3a8cb8{margin-top:calc(var(--reactist-spacing-xlarge)*-1)}._9bcda921{margin-top:calc(var(--reactist-spacing-xxlarge)*-1)}@media (min-width:768px){._6add01e4{margin-top:var(--reactist-spacing-xsmall)}._735ef86b{margin-top:var(--reactist-spacing-small)}._0477d068{margin-top:var(--reactist-spacing-medium)}._2c90af97{margin-top:var(--reactist-spacing-large)}._63a82db6{margin-top:var(--reactist-spacing-xlarge)}._03cd7726{margin-top:var(--reactist-spacing-xxlarge)}.c986a62a{margin-top:calc(var(--reactist-spacing-xsmall)*-1)}.be2bdcdd{margin-top:calc(var(--reactist-spacing-small)*-1)}._47d2686b{margin-top:calc(var(--reactist-spacing-medium)*-1)}._25e5af9d{margin-top:calc(var(--reactist-spacing-large)*-1)}.ee82f441{margin-top:calc(var(--reactist-spacing-xlarge)*-1)}.a6f9d404{margin-top:calc(var(--reactist-spacing-xxlarge)*-1)}}@media (min-width:992px){._4d8d9a36{margin-top:var(--reactist-spacing-xsmall)}.e813cee7{margin-top:var(--reactist-spacing-small)}._56975b7d{margin-top:var(--reactist-spacing-medium)}._53b367f6{margin-top:var(--reactist-spacing-large)}.d69e7311{margin-top:var(--reactist-spacing-xlarge)}._92f57c7e{margin-top:var(--reactist-spacing-xxlarge)}._96880d3e{margin-top:calc(var(--reactist-spacing-xsmall)*-1)}.dc3f3555{margin-top:calc(var(--reactist-spacing-small)*-1)}._86dd06bb{margin-top:calc(var(--reactist-spacing-medium)*-1)}.c93ef12e{margin-top:calc(var(--reactist-spacing-large)*-1)}.bc8fd4a2{margin-top:calc(var(--reactist-spacing-xlarge)*-1)}.b12a9124{margin-top:calc(var(--reactist-spacing-xxlarge)*-1)}}._6016f4fb{margin-right:var(--reactist-spacing-xsmall)}.b85e3dfa{margin-right:var(--reactist-spacing-small)}._297575f4{margin-right:var(--reactist-spacing-medium)}.b401ac6c{margin-right:var(--reactist-spacing-large)}.dc3ec387{margin-right:var(--reactist-spacing-xlarge)}._24694604{margin-right:var(--reactist-spacing-xxlarge)}._8e9bf2ee{margin-right:calc(var(--reactist-spacing-xsmall)*-1)}.ae9d1115{margin-right:calc(var(--reactist-spacing-small)*-1)}._14e46fc3{margin-right:calc(var(--reactist-spacing-medium)*-1)}._3370631b{margin-right:calc(var(--reactist-spacing-large)*-1)}._3f0e9b50{margin-right:calc(var(--reactist-spacing-xlarge)*-1)}.bc13e010{margin-right:calc(var(--reactist-spacing-xxlarge)*-1)}@media (min-width:768px){._6fa1aae3{margin-right:var(--reactist-spacing-xsmall)}._2976c5cb{margin-right:var(--reactist-spacing-small)}._38d94802{margin-right:var(--reactist-spacing-medium)}.db9569b5{margin-right:var(--reactist-spacing-large)}._4a52f06d{margin-right:var(--reactist-spacing-xlarge)}._8a0f0410{margin-right:var(--reactist-spacing-xxlarge)}.e7d40e9d{margin-right:calc(var(--reactist-spacing-xsmall)*-1)}._680fde91{margin-right:calc(var(--reactist-spacing-small)*-1)}._021010ca{margin-right:calc(var(--reactist-spacing-medium)*-1)}._9e52c87c{margin-right:calc(var(--reactist-spacing-large)*-1)}._4d602613{margin-right:calc(var(--reactist-spacing-xlarge)*-1)}._21b1b65a{margin-right:calc(var(--reactist-spacing-xxlarge)*-1)}}@media (min-width:992px){._7321bc07{margin-right:var(--reactist-spacing-xsmall)}.fa1721f4{margin-right:var(--reactist-spacing-small)}._3fd7b4b8{margin-right:var(--reactist-spacing-medium)}._4fdc2f74{margin-right:var(--reactist-spacing-large)}.c0254761{margin-right:var(--reactist-spacing-xlarge)}._710a5f09{margin-right:var(--reactist-spacing-xxlarge)}.e08bee7f{margin-right:calc(var(--reactist-spacing-xsmall)*-1)}.e5ab73d2{margin-right:calc(var(--reactist-spacing-small)*-1)}._5e731477{margin-right:calc(var(--reactist-spacing-medium)*-1)}._0f57a22e{margin-right:calc(var(--reactist-spacing-large)*-1)}._25f26ed3{margin-right:calc(var(--reactist-spacing-xlarge)*-1)}._11a3b4e0{margin-right:calc(var(--reactist-spacing-xxlarge)*-1)}}._6a4f69f7{margin-bottom:var(--reactist-spacing-xsmall)}.db26b033{margin-bottom:var(--reactist-spacing-small)}.c7313022{margin-bottom:var(--reactist-spacing-medium)}.a5885889{margin-bottom:var(--reactist-spacing-large)}._33dfbd8e{margin-bottom:var(--reactist-spacing-xlarge)}._795ad2de{margin-bottom:var(--reactist-spacing-xxlarge)}.a329dbd3{margin-bottom:calc(var(--reactist-spacing-xsmall)*-1)}._85e739fb{margin-bottom:calc(var(--reactist-spacing-small)*-1)}._681f65ff{margin-bottom:calc(var(--reactist-spacing-medium)*-1)}.caf50d8f{margin-bottom:calc(var(--reactist-spacing-large)*-1)}._1e084cbf{margin-bottom:calc(var(--reactist-spacing-xlarge)*-1)}._3dfb1c7e{margin-bottom:calc(var(--reactist-spacing-xxlarge)*-1)}@media (min-width:768px){.ef4735be{margin-bottom:var(--reactist-spacing-xsmall)}.de55afba{margin-bottom:var(--reactist-spacing-small)}._0e33ce88{margin-bottom:var(--reactist-spacing-medium)}._8ca391fc{margin-bottom:var(--reactist-spacing-large)}._3a609d23{margin-bottom:var(--reactist-spacing-xlarge)}._3e1177e4{margin-bottom:var(--reactist-spacing-xxlarge)}.d384884d{margin-bottom:calc(var(--reactist-spacing-xsmall)*-1)}._75254cec{margin-bottom:calc(var(--reactist-spacing-small)*-1)}._5d9f127d{margin-bottom:calc(var(--reactist-spacing-medium)*-1)}._835f1089{margin-bottom:calc(var(--reactist-spacing-large)*-1)}.dad52a72{margin-bottom:calc(var(--reactist-spacing-xlarge)*-1)}._8703a4bf{margin-bottom:calc(var(--reactist-spacing-xxlarge)*-1)}}@media (min-width:992px){._90fd20e9{margin-bottom:var(--reactist-spacing-xsmall)}.f3769191{margin-bottom:var(--reactist-spacing-small)}._156410f8{margin-bottom:var(--reactist-spacing-medium)}._7fed74d0{margin-bottom:var(--reactist-spacing-large)}._477dc10e{margin-bottom:var(--reactist-spacing-xlarge)}._85c82d89{margin-bottom:var(--reactist-spacing-xxlarge)}._4f09c1e0{margin-bottom:calc(var(--reactist-spacing-xsmall)*-1)}._9523e048{margin-bottom:calc(var(--reactist-spacing-small)*-1)}.efe10240{margin-bottom:calc(var(--reactist-spacing-medium)*-1)}.c43971e6{margin-bottom:calc(var(--reactist-spacing-large)*-1)}.f9b4da15{margin-bottom:calc(var(--reactist-spacing-xlarge)*-1)}.a10fdf70{margin-bottom:calc(var(--reactist-spacing-xxlarge)*-1)}}.f9be90b4{margin-left:var(--reactist-spacing-xsmall)}.f53218d5{margin-left:var(--reactist-spacing-small)}.c4a9b3ab{margin-left:var(--reactist-spacing-medium)}._5755e2c3{margin-left:var(--reactist-spacing-large)}._33fc9354{margin-left:var(--reactist-spacing-xlarge)}._4749a3bf{margin-left:var(--reactist-spacing-xxlarge)}.c76cb3c7{margin-left:calc(var(--reactist-spacing-xsmall)*-1)}._96003c07{margin-left:calc(var(--reactist-spacing-small)*-1)}._09988d07{margin-left:calc(var(--reactist-spacing-medium)*-1)}.b4a486f6{margin-left:calc(var(--reactist-spacing-large)*-1)}.f396e75e{margin-left:calc(var(--reactist-spacing-xlarge)*-1)}._81d1f26d{margin-left:calc(var(--reactist-spacing-xxlarge)*-1)}@media (min-width:768px){._0a46e8f1{margin-left:var(--reactist-spacing-xsmall)}._57c970af{margin-left:var(--reactist-spacing-small)}._4b6099d3{margin-left:var(--reactist-spacing-medium)}._378fcff5{margin-left:var(--reactist-spacing-large)}.f8785663{margin-left:var(--reactist-spacing-xlarge)}._72f957ee{margin-left:var(--reactist-spacing-xxlarge)}._2288c7e1{margin-left:calc(var(--reactist-spacing-xsmall)*-1)}.b27c1c05{margin-left:calc(var(--reactist-spacing-small)*-1)}._702cbb13{margin-left:calc(var(--reactist-spacing-medium)*-1)}._1a2748b4{margin-left:calc(var(--reactist-spacing-large)*-1)}.b8c043a5{margin-left:calc(var(--reactist-spacing-xlarge)*-1)}._8dc8ff63{margin-left:calc(var(--reactist-spacing-xxlarge)*-1)}}@media (min-width:992px){.c2af646d{margin-left:var(--reactist-spacing-xsmall)}.c03d07be{margin-left:var(--reactist-spacing-small)}._915fb1d3{margin-left:var(--reactist-spacing-medium)}._64214ee1{margin-left:var(--reactist-spacing-large)}._7be4a22c{margin-left:var(--reactist-spacing-xlarge)}._5ec0a401{margin-left:var(--reactist-spacing-xxlarge)}.ea29f1ee{margin-left:calc(var(--reactist-spacing-xsmall)*-1)}.c26652c7{margin-left:calc(var(--reactist-spacing-small)*-1)}.c24f6af9{margin-left:calc(var(--reactist-spacing-medium)*-1)}.c2671f27{margin-left:calc(var(--reactist-spacing-large)*-1)}.cc51a04e{margin-left:calc(var(--reactist-spacing-xlarge)*-1)}.fd581f54{margin-left:calc(var(--reactist-spacing-xxlarge)*-1)}}
8
8
  ._68ab48ca{min-width:0}._6fa2b565{min-width:var(--reactist-width-xsmall)}.dd50fabd{min-width:var(--reactist-width-small)}.e7e2c808{min-width:var(--reactist-width-medium)}._6abbe25e{min-width:var(--reactist-width-large)}._54f479ac{min-width:var(--reactist-width-xlarge)}._148492bc{max-width:var(--reactist-width-xsmall)}.bd023b96{max-width:var(--reactist-width-small)}.e102903f{max-width:var(--reactist-width-medium)}._0e8d76d7{max-width:var(--reactist-width-large)}._47a031d0{max-width:var(--reactist-width-xlarge)}.cd4c8183{max-width:100%}._5f5959e8{width:0}._8c75067a{width:100%}._56a651f6{width:auto}._26f87bb8{width:-moz-max-content;width:-webkit-max-content;width:max-content}._07a6ab44{width:-moz-min-content;width:-webkit-min-content;width:min-content}.a87016fa{width:-moz-fit-content;width:-webkit-fit-content;width:fit-content}._1a972e50{width:var(--reactist-width-xsmall)}.c96d8261{width:var(--reactist-width-small)}.f3829d42{width:var(--reactist-width-medium)}._2caef228{width:var(--reactist-width-large)}._069e1491{width:var(--reactist-width-xlarge)}
9
9
  ._64ed24f4{gap:0}._2580a74b{gap:var(--reactist-spacing-xsmall)}.c68f8bf6{gap:var(--reactist-spacing-small)}._43e5f8e9{gap:var(--reactist-spacing-medium)}._966b120f{gap:var(--reactist-spacing-large)}.f957894c{gap:var(--reactist-spacing-xlarge)}._8cca104b{gap:var(--reactist-spacing-xxlarge)}@media (min-width:768px){._5797cee2{gap:0}._9015672f{gap:var(--reactist-spacing-xsmall)}._7ec86eec{gap:var(--reactist-spacing-small)}._714d7179{gap:var(--reactist-spacing-medium)}.ae1deb59{gap:var(--reactist-spacing-large)}.e1cfce55{gap:var(--reactist-spacing-xlarge)}._168a8ff8{gap:var(--reactist-spacing-xxlarge)}}@media (min-width:992px){._43e2b619{gap:0}._0ea9bf88{gap:var(--reactist-spacing-xsmall)}.d451307a{gap:var(--reactist-spacing-small)}.bf93cf66{gap:var(--reactist-spacing-medium)}._1430cddf{gap:var(--reactist-spacing-large)}.fa00c93e{gap:var(--reactist-spacing-xlarge)}._6f3aee54{gap:var(--reactist-spacing-xxlarge)}}
10
- .fdc243b3{font-family:var(--reactist-font-family)}._5c1dd8bc:after,.fdc243b3 textarea{outline:none;border:none;padding:0;box-sizing:border-box;font:inherit;width:100%;resize:vertical}.fdc243b3:not(._269f9e63) ._5c1dd8bc:after,.fdc243b3:not(._269f9e63) textarea{border-radius:var(--reactist-border-radius-small);padding:var(--reactist-spacing-small)}.fdc243b3._269f9e63{border-radius:var(--reactist-border-radius-large)}.fdc243b3._269f9e63,.fdc243b3:not(._269f9e63) ._5c1dd8bc:after,.fdc243b3:not(._269f9e63) textarea{border:1px solid var(--reactist-inputs-idle)}.fdc243b3._269f9e63:focus-within,.fdc243b3:not(._269f9e63) textarea:focus{border-color:var(--reactist-inputs-focus)}.fdc243b3._269f9e63.d1e4b585,.fdc243b3.d1e4b585:not(._269f9e63) ._5c1dd8bc:after,.fdc243b3.d1e4b585:not(._269f9e63) textarea{border-color:var(--reactist-alert-tone-critical-border)!important}._5c1dd8bc{display:grid}._5c1dd8bc:after{content:attr(data-replicated-value) " ";white-space:pre-wrap;visibility:hidden}._5c1dd8bc:after,._5c1dd8bc>textarea{grid-area:1/1/2/2}textarea._10c6f2ef{resize:none;overflow:hidden}
10
+ ._29503131{font-family:var(--reactist-font-family)}._6ea894ce:after,._29503131 textarea{outline:none;border:none;padding:0;box-sizing:border-box;font:inherit;width:100%;resize:vertical;overflow-wrap:anywhere}._29503131:not(.e1e8b6a7) ._6ea894ce:after,._29503131:not(.e1e8b6a7) textarea{border-radius:var(--reactist-border-radius-small);padding:var(--reactist-spacing-small)}._29503131.e1e8b6a7{border-radius:var(--reactist-border-radius-large)}._29503131.e1e8b6a7,._29503131:not(.e1e8b6a7) ._6ea894ce:after,._29503131:not(.e1e8b6a7) textarea{border:1px solid var(--reactist-inputs-idle)}._29503131.e1e8b6a7:focus-within,._29503131:not(.e1e8b6a7) textarea:focus{border-color:var(--reactist-inputs-focus)}._29503131.e1e8b6a7._1b94ff46,._29503131._1b94ff46:not(.e1e8b6a7) ._6ea894ce:after,._29503131._1b94ff46:not(.e1e8b6a7) textarea{border-color:var(--reactist-alert-tone-critical-border)!important}._6ea894ce{display:grid}._6ea894ce:after{content:attr(data-replicated-value) " ";white-space:pre-wrap;visibility:hidden}._6ea894ce:after,._6ea894ce>textarea{grid-area:1/1/2/2}textarea.e82223c4{resize:none;overflow:hidden}
@@ -1 +1 @@
1
- .fdc243b3{font-family:var(--reactist-font-family)}._5c1dd8bc:after,.fdc243b3 textarea{outline:none;border:none;padding:0;box-sizing:border-box;font:inherit;width:100%;resize:vertical}.fdc243b3:not(._269f9e63) ._5c1dd8bc:after,.fdc243b3:not(._269f9e63) textarea{border-radius:var(--reactist-border-radius-small);padding:var(--reactist-spacing-small)}.fdc243b3._269f9e63{border-radius:var(--reactist-border-radius-large)}.fdc243b3._269f9e63,.fdc243b3:not(._269f9e63) ._5c1dd8bc:after,.fdc243b3:not(._269f9e63) textarea{border:1px solid var(--reactist-inputs-idle)}.fdc243b3._269f9e63:focus-within,.fdc243b3:not(._269f9e63) textarea:focus{border-color:var(--reactist-inputs-focus)}.fdc243b3._269f9e63.d1e4b585,.fdc243b3.d1e4b585:not(._269f9e63) ._5c1dd8bc:after,.fdc243b3.d1e4b585:not(._269f9e63) textarea{border-color:var(--reactist-alert-tone-critical-border)!important}._5c1dd8bc{display:grid}._5c1dd8bc:after{content:attr(data-replicated-value) " ";white-space:pre-wrap;visibility:hidden}._5c1dd8bc:after,._5c1dd8bc>textarea{grid-area:1/1/2/2}textarea._10c6f2ef{resize:none;overflow:hidden}
1
+ ._29503131{font-family:var(--reactist-font-family)}._6ea894ce:after,._29503131 textarea{outline:none;border:none;padding:0;box-sizing:border-box;font:inherit;width:100%;resize:vertical;overflow-wrap:anywhere}._29503131:not(.e1e8b6a7) ._6ea894ce:after,._29503131:not(.e1e8b6a7) textarea{border-radius:var(--reactist-border-radius-small);padding:var(--reactist-spacing-small)}._29503131.e1e8b6a7{border-radius:var(--reactist-border-radius-large)}._29503131.e1e8b6a7,._29503131:not(.e1e8b6a7) ._6ea894ce:after,._29503131:not(.e1e8b6a7) textarea{border:1px solid var(--reactist-inputs-idle)}._29503131.e1e8b6a7:focus-within,._29503131:not(.e1e8b6a7) textarea:focus{border-color:var(--reactist-inputs-focus)}._29503131.e1e8b6a7._1b94ff46,._29503131._1b94ff46:not(.e1e8b6a7) ._6ea894ce:after,._29503131._1b94ff46:not(.e1e8b6a7) textarea{border-color:var(--reactist-alert-tone-critical-border)!important}._6ea894ce{display:grid}._6ea894ce:after{content:attr(data-replicated-value) " ";white-space:pre-wrap;visibility:hidden}._6ea894ce:after,._6ea894ce>textarea{grid-area:1/1/2/2}textarea.e82223c4{resize:none;overflow:hidden}
@@ -1,35 +0,0 @@
1
- import { useMemo } from 'react';
2
-
3
- /**
4
- * Sets both a function and object React ref.
5
- */
6
-
7
- function setRef(ref, value) {
8
- if (typeof ref === 'function') {
9
- ref(value);
10
- } else if (ref) {
11
- ref.current = value;
12
- }
13
- }
14
- /**
15
- * Merges React Refs into a single memoized function ref so you can pass it to an element.
16
- * @example
17
- * const Component = React.forwardRef((props, ref) => {
18
- * const internalRef = React.useRef();
19
- * return <div {...props} ref={useForkRef(internalRef, ref)} />;
20
- * });
21
- */
22
-
23
-
24
- function useForkRef(...refs) {
25
- return useMemo(() => {
26
- if (!refs.some(Boolean)) return;
27
- return value => {
28
- refs.forEach(ref => setRef(ref, value));
29
- };
30
- }, // eslint-disable-next-line react-hooks/exhaustive-deps
31
- refs);
32
- }
33
-
34
- export { useForkRef };
35
- //# sourceMappingURL=use-fork-ref.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-fork-ref.js","sources":["../../src/checkbox-field/use-fork-ref.ts"],"sourcesContent":["import { useMemo } from 'react'\n\n/**\n * Sets both a function and object React ref.\n */\nfunction setRef<T>(\n ref: React.RefCallback<T> | React.MutableRefObject<T> | null | undefined,\n value: T,\n) {\n if (typeof ref === 'function') {\n ref(value)\n } else if (ref) {\n ref.current = value\n }\n}\n\n/**\n * Merges React Refs into a single memoized function ref so you can pass it to an element.\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const internalRef = React.useRef();\n * return <div {...props} ref={useForkRef(internalRef, ref)} />;\n * });\n */\nfunction useForkRef(...refs: Array<React.Ref<unknown> | undefined>) {\n return useMemo(\n () => {\n if (!refs.some(Boolean)) return\n return (value: unknown) => {\n refs.forEach((ref) => setRef(ref, value))\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n refs,\n )\n}\n\nexport { useForkRef }\n"],"names":["setRef","ref","value","current","useForkRef","refs","useMemo","some","Boolean","forEach"],"mappings":";;AAEA;;;;AAGA,SAASA,MAAT,CACIC,GADJ,EAEIC,KAFJ;EAII,IAAI,OAAOD,GAAP,KAAe,UAAnB,EAA+B;IAC3BA,GAAG,CAACC,KAAD,CAAH;GADJ,MAEO,IAAID,GAAJ,EAAS;IACZA,GAAG,CAACE,OAAJ,GAAcD,KAAd;;AAEP;AAED;;;;;;;;;;AAQA,SAASE,UAAT,CAAoB,GAAGC,IAAvB;EACI,OAAOC,OAAO,CACV;IACI,IAAI,CAACD,IAAI,CAACE,IAAL,CAAUC,OAAV,CAAL,EAAyB;IACzB,OAAQN,KAAD;MACHG,IAAI,CAACI,OAAL,CAAcR,GAAD,IAASD,MAAM,CAACC,GAAD,EAAMC,KAAN,CAA5B;KADJ;GAHM;EAQVG,IARU,CAAd;AAUH;;;;"}
@@ -1,219 +0,0 @@
1
- import { objectWithoutProperties as _objectWithoutProperties, objectSpread2 as _objectSpread2 } from '../_virtual/_rollupPluginBabelHelpers.js';
2
- import { useMemo, createElement, useContext, useState, useEffect, Fragment, createContext } from 'react';
3
- import classNames from 'classnames';
4
- import { Box } from '../box/box.js';
5
- import { Columns, Column } from '../columns/columns.js';
6
- import { Divider } from '../divider/divider.js';
7
- import { Inline } from '../inline/inline.js';
8
- import { Button } from '../button/button.js';
9
- import { CloseIcon } from '../icons/close-icon.js';
10
- import FocusLock from 'react-focus-lock';
11
- import { DialogOverlay, DialogContent } from '@reach/dialog';
12
- import styles from './modal.module.css.js';
13
-
14
- const _excluded = ["isOpen", "onDismiss", "height", "width", "exceptionallySetClassName", "autoFocus", "children"],
15
- _excluded2 = ["children", "button", "withDivider", "exceptionallySetClassName"],
16
- _excluded3 = ["exceptionallySetClassName", "children"],
17
- _excluded4 = ["exceptionallySetClassName", "withDivider"],
18
- _excluded5 = ["children"];
19
- const ModalContext = /*#__PURE__*/createContext({
20
- onDismiss: undefined,
21
- height: 'fitContent'
22
- });
23
-
24
- function isNotInternalFrame(element) {
25
- return !(element.ownerDocument === document && element.tagName.toLowerCase() === 'iframe');
26
- }
27
- /**
28
- * Renders a modal that sits on top of the rest of the content in the entire page.
29
- *
30
- * Follows the WAI-ARIA Dialog (Modal) Pattern.
31
- *
32
- * @see DeprecatedModalHeader
33
- * @see DeprecatedModalFooter
34
- * @see DeprecatedModalBody
35
- * @deprecated
36
- */
37
-
38
-
39
- function DeprecatedModal(_ref) {
40
- let {
41
- isOpen,
42
- onDismiss,
43
- height = 'fitContent',
44
- width = 'medium',
45
- exceptionallySetClassName,
46
- autoFocus = true,
47
- children
48
- } = _ref,
49
- props = _objectWithoutProperties(_ref, _excluded);
50
-
51
- const contextValue = useMemo(() => ({
52
- onDismiss,
53
- height
54
- }), [onDismiss, height]);
55
- return /*#__PURE__*/createElement(DialogOverlay, {
56
- isOpen: isOpen,
57
- onDismiss: onDismiss,
58
- dangerouslyBypassFocusLock // We're setting up our own focus lock below
59
- : true,
60
- className: classNames(styles.overlay, styles[height], styles[width]),
61
- "data-testid": "modal-overlay"
62
- }, /*#__PURE__*/createElement(FocusLock, {
63
- autoFocus: autoFocus,
64
- whiteList: isNotInternalFrame,
65
- returnFocus: true
66
- }, /*#__PURE__*/createElement(DialogContent, _objectSpread2(_objectSpread2({}, props), {}, {
67
- as: Box,
68
- borderRadius: "full",
69
- background: "default",
70
- display: "flex",
71
- flexDirection: "column",
72
- overflow: "hidden",
73
- height: height === 'expand' ? 'full' : undefined,
74
- flexGrow: height === 'expand' ? 1 : 0,
75
- className: [exceptionallySetClassName, styles.container]
76
- }), /*#__PURE__*/createElement(ModalContext.Provider, {
77
- value: contextValue
78
- }, children))));
79
- }
80
- /**
81
- * The close button rendered by ModalHeader. Provided independently so that consumers can customize
82
- * the button's label.
83
- *
84
- * @see DeprecatedModalHeader
85
- */
86
-
87
- function DeprecatedModalCloseButton(props) {
88
- const {
89
- onDismiss
90
- } = useContext(ModalContext);
91
- const [includeInTabOrder, setIncludeInTabOrder] = useState(false);
92
- const [isMounted, setIsMounted] = useState(false);
93
- useEffect(function skipAutoFocus() {
94
- if (isMounted) {
95
- setIncludeInTabOrder(true);
96
- } else {
97
- setIsMounted(true);
98
- }
99
- }, [isMounted]);
100
- return /*#__PURE__*/createElement(Button, _objectSpread2(_objectSpread2({}, props), {}, {
101
- variant: "quaternary",
102
- onClick: onDismiss,
103
- icon: /*#__PURE__*/createElement(CloseIcon, null),
104
- tabIndex: includeInTabOrder ? 0 : -1
105
- }));
106
- }
107
- /**
108
- * Renders a standard modal header area with an optional close button.
109
- *
110
- * @see DeprecatedModal
111
- * @see DeprecatedModalFooter
112
- * @see DeprecatedModalBody
113
- */
114
-
115
- function DeprecatedModalHeader(_ref2) {
116
- let {
117
- children,
118
- button = true,
119
- withDivider = false,
120
- exceptionallySetClassName
121
- } = _ref2,
122
- props = _objectWithoutProperties(_ref2, _excluded2);
123
-
124
- return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Box, _objectSpread2(_objectSpread2({}, props), {}, {
125
- as: "header",
126
- paddingLeft: "large",
127
- paddingRight: button === false || button === null ? 'large' : 'small',
128
- paddingY: "small",
129
- className: exceptionallySetClassName
130
- }), /*#__PURE__*/createElement(Columns, {
131
- space: "large",
132
- alignY: "center"
133
- }, /*#__PURE__*/createElement(Column, {
134
- width: "auto"
135
- }, children), button === false || button === null ? /*#__PURE__*/createElement("div", {
136
- className: styles.headerContent
137
- }) : /*#__PURE__*/createElement(Column, {
138
- width: "content",
139
- exceptionallySetClassName: styles.buttonContainer,
140
- "data-testid": "button-container"
141
- }, typeof button === 'boolean' ? /*#__PURE__*/createElement(DeprecatedModalCloseButton, {
142
- "aria-label": "Close modal",
143
- autoFocus: false
144
- }) : button))), withDivider ? /*#__PURE__*/createElement(Divider, null) : null);
145
- }
146
- /**
147
- * Renders the body of a modal.
148
- *
149
- * Convenient to use alongside ModalHeader and/or ModalFooter as needed. It ensures, among other
150
- * things, that the contet of the modal body expands or contracts depending on the modal height
151
- * setting or the size of the content. The body content also automatically scrolls when it's too
152
- * large to fit the available space.
153
- *
154
- * @see DeprecatedModal
155
- * @see DeprecatedModalHeader
156
- * @see DeprecatedModalFooter
157
- */
158
-
159
- function DeprecatedModalBody(_ref3) {
160
- let {
161
- exceptionallySetClassName,
162
- children
163
- } = _ref3,
164
- props = _objectWithoutProperties(_ref3, _excluded3);
165
-
166
- const {
167
- height
168
- } = useContext(ModalContext);
169
- return /*#__PURE__*/createElement(Box, _objectSpread2(_objectSpread2({}, props), {}, {
170
- className: exceptionallySetClassName,
171
- flexGrow: height === 'expand' ? 1 : 0,
172
- height: height === 'expand' ? 'full' : undefined,
173
- overflow: "auto"
174
- }), /*#__PURE__*/createElement(Box, {
175
- padding: "large",
176
- paddingBottom: "xxlarge"
177
- }, children));
178
- }
179
- /**
180
- * Renders a standard modal footer area.
181
- *
182
- * @see DeprecatedModal
183
- * @see DeprecatedModalHeader
184
- * @see DeprecatedModalBody
185
- */
186
-
187
- function DeprecatedModalFooter(_ref4) {
188
- let {
189
- exceptionallySetClassName,
190
- withDivider = false
191
- } = _ref4,
192
- props = _objectWithoutProperties(_ref4, _excluded4);
193
-
194
- return /*#__PURE__*/createElement(Fragment, null, withDivider ? /*#__PURE__*/createElement(Divider, null) : null, /*#__PURE__*/createElement(Box, _objectSpread2(_objectSpread2({
195
- as: "footer"
196
- }, props), {}, {
197
- className: exceptionallySetClassName,
198
- padding: "large"
199
- })));
200
- }
201
- /**
202
- * A specific version of the ModalFooter, tailored to showing an inline list of actions (buttons).
203
- * @see DeprecatedModalFooter
204
- */
205
-
206
- function DeprecatedModalActions(_ref5) {
207
- let {
208
- children
209
- } = _ref5,
210
- props = _objectWithoutProperties(_ref5, _excluded5);
211
-
212
- return /*#__PURE__*/createElement(DeprecatedModalFooter, _objectSpread2({}, props), /*#__PURE__*/createElement(Inline, {
213
- align: "right",
214
- space: "large"
215
- }, children));
216
- }
217
-
218
- export { DeprecatedModal, DeprecatedModalActions, DeprecatedModalBody, DeprecatedModalCloseButton, DeprecatedModalFooter, DeprecatedModalHeader };
219
- //# sourceMappingURL=modal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"modal.js","sources":["../../src/deprecated-modal/modal.tsx"],"sourcesContent":["import * as React from 'react'\nimport classNames from 'classnames'\nimport { DialogOverlay, DialogContent } from '@reach/dialog'\nimport FocusLock from 'react-focus-lock'\n\nimport { CloseIcon } from '../icons/close-icon'\nimport { Column, Columns } from '../columns'\nimport { Inline } from '../inline'\nimport { Divider } from '../divider'\nimport { Box } from '../box'\nimport { Button, ButtonProps } from '../button'\n\nimport styles from './modal.module.css'\n\ntype ModalWidth = 'small' | 'medium' | 'large' | 'xlarge' | 'full'\ntype ModalHeightMode = 'expand' | 'fitContent'\n\n//\n// ModalContext\n//\n\ntype ModalContextValue = {\n onDismiss?(this: void): void\n height: ModalHeightMode\n}\n\nconst ModalContext = React.createContext<ModalContextValue>({\n onDismiss: undefined,\n height: 'fitContent',\n})\n\n//\n// Modal container\n//\n\ntype DivProps = Omit<\n React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLDivElement>, HTMLDivElement>,\n 'className' | 'children' | `aria-label` | `aria-labelledby`\n>\n\nexport type DeprecatedModalProps = DivProps & {\n /**\n * The content of the modal.\n */\n children: React.ReactNode\n /**\n * Whether the modal is open and visible or not.\n */\n isOpen: boolean\n /**\n * Called when the user triggers closing the modal.\n */\n onDismiss?(): void\n /**\n * A descriptive setting for how wide the modal should aim to be, depending on how much space\n * it has on screen.\n * @default 'medium'\n */\n width?: ModalWidth\n /**\n * A descriptive setting for how tall the modal should aim to be.\n *\n * - 'expand': the modal aims to fill most of the available screen height, leaving only a small\n * padding above and below.\n * - 'fitContent': the modal shrinks to the smallest size that allow it to fit its content.\n *\n * In either case, if content does not fit, the content of the main body is set to scroll\n * (provided you use `ModalBody`) so that the modal never has to strech vertically beyond the\n * viewport boundaries.\n *\n * If you do not use `ModalBody`, the modal still prevents overflow, and you are in charge of\n * the inner layout to ensure scroll, or whatever other strategy you may want.\n */\n height?: ModalHeightMode\n /**\n * Whether to set or not the focus initially to the first focusable element inside the modal.\n */\n autoFocus?: boolean\n /**\n * A escape hatch in case you need to provide a custom class name to the container element.\n */\n exceptionallySetClassName?: string\n /** Defines a string value that labels the current modal for assistive technologies. */\n 'aria-label'?: string\n /** Identifies the element (or elements) that labels the current modal for assistive technologies. */\n 'aria-labelledby'?: string\n}\n\nfunction isNotInternalFrame(element: HTMLElement) {\n return !(element.ownerDocument === document && element.tagName.toLowerCase() === 'iframe')\n}\n\n/**\n * Renders a modal that sits on top of the rest of the content in the entire page.\n *\n * Follows the WAI-ARIA Dialog (Modal) Pattern.\n *\n * @see DeprecatedModalHeader\n * @see DeprecatedModalFooter\n * @see DeprecatedModalBody\n * @deprecated\n */\nexport function DeprecatedModal({\n isOpen,\n onDismiss,\n height = 'fitContent',\n width = 'medium',\n exceptionallySetClassName,\n autoFocus = true,\n children,\n ...props\n}: DeprecatedModalProps) {\n const contextValue: ModalContextValue = React.useMemo(() => ({ onDismiss, height }), [\n onDismiss,\n height,\n ])\n\n return (\n <DialogOverlay\n isOpen={isOpen}\n onDismiss={onDismiss}\n dangerouslyBypassFocusLock // We're setting up our own focus lock below\n className={classNames(styles.overlay, styles[height], styles[width])}\n data-testid=\"modal-overlay\"\n >\n <FocusLock autoFocus={autoFocus} whiteList={isNotInternalFrame} returnFocus={true}>\n <DialogContent\n {...props}\n as={Box}\n borderRadius=\"full\"\n background=\"default\"\n display=\"flex\"\n flexDirection=\"column\"\n overflow=\"hidden\"\n height={height === 'expand' ? 'full' : undefined}\n flexGrow={height === 'expand' ? 1 : 0}\n className={[exceptionallySetClassName, styles.container]}\n >\n <ModalContext.Provider value={contextValue}>{children}</ModalContext.Provider>\n </DialogContent>\n </FocusLock>\n </DialogOverlay>\n )\n}\n\n//\n// ModalCloseButton\n//\n\nexport type DeprecatedModalCloseButtonProps = Omit<\n ButtonProps,\n | 'type'\n | 'children'\n | 'variant'\n | 'icon'\n | 'startIcon'\n | 'endIcon'\n | 'disabled'\n | 'loading'\n | 'tabIndex'\n | 'width'\n | 'align'\n> & {\n /**\n * The descriptive label of the button.\n */\n 'aria-label': string\n}\n\n/**\n * The close button rendered by ModalHeader. Provided independently so that consumers can customize\n * the button's label.\n *\n * @see DeprecatedModalHeader\n */\nexport function DeprecatedModalCloseButton(props: DeprecatedModalCloseButtonProps) {\n const { onDismiss } = React.useContext(ModalContext)\n const [includeInTabOrder, setIncludeInTabOrder] = React.useState(false)\n const [isMounted, setIsMounted] = React.useState(false)\n\n React.useEffect(\n function skipAutoFocus() {\n if (isMounted) {\n setIncludeInTabOrder(true)\n } else {\n setIsMounted(true)\n }\n },\n [isMounted],\n )\n\n return (\n <Button\n {...props}\n variant=\"quaternary\"\n onClick={onDismiss}\n icon={<CloseIcon />}\n tabIndex={includeInTabOrder ? 0 : -1}\n />\n )\n}\n\n//\n// ModalHeader\n//\n\nexport type DeprecatedModalHeaderProps = DivProps & {\n /**\n * The content of the header.\n */\n children: React.ReactNode\n /**\n * Allows to provide a custom button element, or to omit the close button if set to false.\n * @see DeprecatedModalCloseButton\n */\n button?: React.ReactNode | boolean\n /**\n * Whether to render a divider line below the header.\n * @default false\n */\n withDivider?: boolean\n /**\n * A escape hatch in case you need to provide a custom class name to the container element.\n */\n exceptionallySetClassName?: string\n}\n\n/**\n * Renders a standard modal header area with an optional close button.\n *\n * @see DeprecatedModal\n * @see DeprecatedModalFooter\n * @see DeprecatedModalBody\n */\nexport function DeprecatedModalHeader({\n children,\n button = true,\n withDivider = false,\n exceptionallySetClassName,\n ...props\n}: DeprecatedModalHeaderProps) {\n return (\n <>\n <Box\n {...props}\n as=\"header\"\n paddingLeft=\"large\"\n paddingRight={button === false || button === null ? 'large' : 'small'}\n paddingY=\"small\"\n className={exceptionallySetClassName}\n >\n <Columns space=\"large\" alignY=\"center\">\n <Column width=\"auto\">{children}</Column>\n {button === false || button === null ? (\n <div className={styles.headerContent} />\n ) : (\n <Column\n width=\"content\"\n exceptionallySetClassName={styles.buttonContainer}\n data-testid=\"button-container\"\n >\n {typeof button === 'boolean' ? (\n <DeprecatedModalCloseButton\n aria-label=\"Close modal\"\n autoFocus={false}\n />\n ) : (\n button\n )}\n </Column>\n )}\n </Columns>\n </Box>\n {withDivider ? <Divider /> : null}\n </>\n )\n}\n\n//\n// ModalBody\n//\n\nexport type DeprecatedModalBodyProps = DivProps & {\n /**\n * The content of the modal body.\n */\n children: React.ReactNode\n /**\n * A escape hatch in case you need to provide a custom class name to the container element.\n */\n exceptionallySetClassName?: string\n}\n\n/**\n * Renders the body of a modal.\n *\n * Convenient to use alongside ModalHeader and/or ModalFooter as needed. It ensures, among other\n * things, that the contet of the modal body expands or contracts depending on the modal height\n * setting or the size of the content. The body content also automatically scrolls when it's too\n * large to fit the available space.\n *\n * @see DeprecatedModal\n * @see DeprecatedModalHeader\n * @see DeprecatedModalFooter\n */\nexport function DeprecatedModalBody({\n exceptionallySetClassName,\n children,\n ...props\n}: DeprecatedModalBodyProps) {\n const { height } = React.useContext(ModalContext)\n return (\n <Box\n {...props}\n className={exceptionallySetClassName}\n flexGrow={height === 'expand' ? 1 : 0}\n height={height === 'expand' ? 'full' : undefined}\n overflow=\"auto\"\n >\n <Box padding=\"large\" paddingBottom=\"xxlarge\">\n {children}\n </Box>\n </Box>\n )\n}\n\n//\n// ModalFooter\n//\n\nexport type DeprecatedModalFooterProps = DivProps & {\n /**\n * The contant of the modal footer.\n */\n children: React.ReactNode\n /**\n * Whether to render a divider line below the footer.\n * @default false\n */\n withDivider?: boolean\n /**\n * A escape hatch in case you need to provide a custom class name to the container element.\n */\n exceptionallySetClassName?: string\n}\n\n/**\n * Renders a standard modal footer area.\n *\n * @see DeprecatedModal\n * @see DeprecatedModalHeader\n * @see DeprecatedModalBody\n */\nexport function DeprecatedModalFooter({\n exceptionallySetClassName,\n withDivider = false,\n ...props\n}: DeprecatedModalFooterProps) {\n return (\n <>\n {withDivider ? <Divider /> : null}\n <Box as=\"footer\" {...props} className={exceptionallySetClassName} padding=\"large\" />\n </>\n )\n}\n\n//\n// ModalActions\n//\n\nexport type DeprecatedModalActionsProps = DeprecatedModalFooterProps\n\n/**\n * A specific version of the ModalFooter, tailored to showing an inline list of actions (buttons).\n * @see DeprecatedModalFooter\n */\nexport function DeprecatedModalActions({ children, ...props }: DeprecatedModalActionsProps) {\n return (\n <DeprecatedModalFooter {...props}>\n <Inline align=\"right\" space=\"large\">\n {children}\n </Inline>\n </DeprecatedModalFooter>\n )\n}\n"],"names":["ModalContext","React","onDismiss","undefined","height","isNotInternalFrame","element","ownerDocument","document","tagName","toLowerCase","DeprecatedModal","isOpen","width","exceptionallySetClassName","autoFocus","children","props","contextValue","DialogOverlay","dangerouslyBypassFocusLock","className","classNames","styles","overlay","FocusLock","whiteList","returnFocus","DialogContent","as","Box","borderRadius","background","display","flexDirection","overflow","flexGrow","container","Provider","value","DeprecatedModalCloseButton","includeInTabOrder","setIncludeInTabOrder","isMounted","setIsMounted","skipAutoFocus","Button","variant","onClick","icon","CloseIcon","tabIndex","DeprecatedModalHeader","button","withDivider","paddingLeft","paddingRight","paddingY","Columns","space","alignY","Column","headerContent","buttonContainer","Divider","DeprecatedModalBody","padding","paddingBottom","DeprecatedModalFooter","DeprecatedModalActions","Inline","align"],"mappings":";;;;;;;;;;;;;;;;;;AA0BA,MAAMA,YAAY,gBAAGC,aAAA,CAAuC;EACxDC,SAAS,EAAEC,SAD6C;EAExDC,MAAM,EAAE;AAFgD,CAAvC,CAArB;;AA8DA,SAASC,kBAAT,CAA4BC,OAA5B;EACI,OAAO,EAAEA,OAAO,CAACC,aAAR,KAA0BC,QAA1B,IAAsCF,OAAO,CAACG,OAAR,CAAgBC,WAAhB,OAAkC,QAA1E,CAAP;AACH;AAED;;;;;;;;;;;;SAUgBC;MAAgB;IAC5BC,MAD4B;IAE5BV,SAF4B;IAG5BE,MAAM,GAAG,YAHmB;IAI5BS,KAAK,GAAG,QAJoB;IAK5BC,yBAL4B;IAM5BC,SAAS,GAAG,IANgB;IAO5BC;;MACGC;;EAEH,MAAMC,YAAY,GAAsBjB,OAAA,CAAc,OAAO;IAAEC,SAAF;IAAaE;GAApB,CAAd,EAA6C,CACjFF,SADiF,EAEjFE,MAFiF,CAA7C,CAAxC;EAKA,oBACIH,aAAA,CAACkB,aAAD;IACIP,MAAM,EAAEA;IACRV,SAAS,EAAEA;IACXkB,0BAA0B;;IAC1BC,SAAS,EAAEC,UAAU,CAACC,MAAM,CAACC,OAAR,EAAiBD,MAAM,CAACnB,MAAD,CAAvB,EAAiCmB,MAAM,CAACV,KAAD,CAAvC;mBACT;GALhB,eAOIZ,aAAA,CAACwB,SAAD;IAAWV,SAAS,EAAEA;IAAWW,SAAS,EAAErB;IAAoBsB,WAAW,EAAE;GAA7E,eACI1B,aAAA,CAAC2B,aAAD,oCACQX,KADR;IAEIY,EAAE,EAAEC,GAFR;IAGIC,YAAY,EAAC,MAHjB;IAIIC,UAAU,EAAC,SAJf;IAKIC,OAAO,EAAC,MALZ;IAMIC,aAAa,EAAC,QANlB;IAOIC,QAAQ,EAAC,QAPb;IAQI/B,MAAM,EAAEA,MAAM,KAAK,QAAX,GAAsB,MAAtB,GAA+BD,SAR3C;IASIiC,QAAQ,EAAEhC,MAAM,KAAK,QAAX,GAAsB,CAAtB,GAA0B,CATxC;IAUIiB,SAAS,EAAE,CAACP,yBAAD,EAA4BS,MAAM,CAACc,SAAnC;mBAEXpC,aAAA,CAACD,YAAY,CAACsC,QAAd;IAAuBC,KAAK,EAAErB;GAA9B,EAA6CF,QAA7C,CAZJ,CADJ,CAPJ,CADJ;AA0BH;AA0BD;;;;;;;SAMgBwB,2BAA2BvB;EACvC,MAAM;IAAEf;MAAcD,UAAA,CAAiBD,YAAjB,CAAtB;EACA,MAAM,CAACyC,iBAAD,EAAoBC,oBAApB,IAA4CzC,QAAA,CAAe,KAAf,CAAlD;EACA,MAAM,CAAC0C,SAAD,EAAYC,YAAZ,IAA4B3C,QAAA,CAAe,KAAf,CAAlC;EAEAA,SAAA,CACI,SAAS4C,aAAT;IACI,IAAIF,SAAJ,EAAe;MACXD,oBAAoB,CAAC,IAAD,CAApB;KADJ,MAEO;MACHE,YAAY,CAAC,IAAD,CAAZ;;GALZ,EAQI,CAACD,SAAD,CARJ;EAWA,oBACI1C,aAAA,CAAC6C,MAAD,oCACQ7B,KADR;IAEI8B,OAAO,EAAC,YAFZ;IAGIC,OAAO,EAAE9C,SAHb;IAII+C,IAAI,eAAEhD,aAAA,CAACiD,SAAD,MAAA,CAJV;IAKIC,QAAQ,EAAEV,iBAAiB,GAAG,CAAH,GAAO,CAAC;KAN3C;AASH;AA2BD;;;;;;;;SAOgBW;MAAsB;IAClCpC,QADkC;IAElCqC,MAAM,GAAG,IAFyB;IAGlCC,WAAW,GAAG,KAHoB;IAIlCxC;;MACGG;;EAEH,oBACIhB,aAAA,SAAA,MAAA,eACIA,aAAA,CAAC6B,GAAD,oCACQb,KADR;IAEIY,EAAE,EAAC,QAFP;IAGI0B,WAAW,EAAC,OAHhB;IAIIC,YAAY,EAAEH,MAAM,KAAK,KAAX,IAAoBA,MAAM,KAAK,IAA/B,GAAsC,OAAtC,GAAgD,OAJlE;IAKII,QAAQ,EAAC,OALb;IAMIpC,SAAS,EAAEP;mBAEXb,aAAA,CAACyD,OAAD;IAASC,KAAK,EAAC;IAAQC,MAAM,EAAC;GAA9B,eACI3D,aAAA,CAAC4D,MAAD;IAAQhD,KAAK,EAAC;GAAd,EAAsBG,QAAtB,CADJ,EAEKqC,MAAM,KAAK,KAAX,IAAoBA,MAAM,KAAK,IAA/B,gBACGpD,aAAA,MAAA;IAAKoB,SAAS,EAAEE,MAAM,CAACuC;GAAvB,CADH,gBAGG7D,aAAA,CAAC4D,MAAD;IACIhD,KAAK,EAAC;IACNC,yBAAyB,EAAES,MAAM,CAACwC;mBACtB;GAHhB,EAKK,OAAOV,MAAP,KAAkB,SAAlB,gBACGpD,aAAA,CAACuC,0BAAD;kBACe;IACXzB,SAAS,EAAE;GAFf,CADH,GAMGsC,MAXR,CALR,CARJ,CADJ,EA+BKC,WAAW,gBAAGrD,aAAA,CAAC+D,OAAD,MAAA,CAAH,GAAiB,IA/BjC,CADJ;AAmCH;AAiBD;;;;;;;;;;;;;SAYgBC;MAAoB;IAChCnD,yBADgC;IAEhCE;;MACGC;;EAEH,MAAM;IAAEb;MAAWH,UAAA,CAAiBD,YAAjB,CAAnB;EACA,oBACIC,aAAA,CAAC6B,GAAD,oCACQb,KADR;IAEII,SAAS,EAAEP,yBAFf;IAGIsB,QAAQ,EAAEhC,MAAM,KAAK,QAAX,GAAsB,CAAtB,GAA0B,CAHxC;IAIIA,MAAM,EAAEA,MAAM,KAAK,QAAX,GAAsB,MAAtB,GAA+BD,SAJ3C;IAKIgC,QAAQ,EAAC;mBAETlC,aAAA,CAAC6B,GAAD;IAAKoC,OAAO,EAAC;IAAQC,aAAa,EAAC;GAAnC,EACKnD,QADL,CAPJ,CADJ;AAaH;AAsBD;;;;;;;;SAOgBoD;MAAsB;IAClCtD,yBADkC;IAElCwC,WAAW,GAAG;;MACXrC;;EAEH,oBACIhB,aAAA,SAAA,MAAA,EACKqD,WAAW,gBAAGrD,aAAA,CAAC+D,OAAD,MAAA,CAAH,GAAiB,IADjC,eAEI/D,aAAA,CAAC6B,GAAD;IAAKD,EAAE,EAAC;KAAaZ,KAArB;IAA4BI,SAAS,EAAEP,yBAAvC;IAAkEoD,OAAO,EAAC;KAF9E,CADJ;AAMH;AAQD;;;;;SAIgBG;MAAuB;IAAErD;;MAAaC;;EAClD,oBACIhB,aAAA,CAACmE,qBAAD,qBAA2BnD,KAA3B,gBACIhB,aAAA,CAACqE,MAAD;IAAQC,KAAK,EAAC;IAAQZ,KAAK,EAAC;GAA5B,EACK3C,QADL,CADJ,CADJ;AAOH;;;;"}
@@ -1,4 +0,0 @@
1
- var modules_8f59d13b = {"reach-portal":"ad18b0a0","fadein":"f7a1b219","fitContent":"_8ed9bb5c","container":"f67e892e","full":"_4139421e","large":"_649eb5fe","medium":"_5323e676","small":"_56ca7ae6","xlarge":"a7be0fce","overlay":"_88a7a680","expand":"b29456b8","buttonContainer":"_09ef1f4f","headerContent":"_0e5b530a"};
2
-
3
- export default modules_8f59d13b;
4
- //# sourceMappingURL=modal.module.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"modal.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,11 +0,0 @@
1
- /// <reference types="react" />
2
- /**
3
- * Merges React Refs into a single memoized function ref so you can pass it to an element.
4
- * @example
5
- * const Component = React.forwardRef((props, ref) => {
6
- * const internalRef = React.useRef();
7
- * return <div {...props} ref={useForkRef(internalRef, ref)} />;
8
- * });
9
- */
10
- declare function useForkRef(...refs: Array<React.Ref<unknown> | undefined>): ((value: unknown) => void) | undefined;
11
- export { useForkRef };
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");exports.useForkRef=function(...r){return e.useMemo(()=>{if(r.some(Boolean))return e=>{r.forEach(r=>function(e,r){"function"==typeof e?e(r):e&&(e.current=r)}(r,e))}},r)};
2
- //# sourceMappingURL=use-fork-ref.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-fork-ref.js","sources":["../../src/checkbox-field/use-fork-ref.ts"],"sourcesContent":["import { useMemo } from 'react'\n\n/**\n * Sets both a function and object React ref.\n */\nfunction setRef<T>(\n ref: React.RefCallback<T> | React.MutableRefObject<T> | null | undefined,\n value: T,\n) {\n if (typeof ref === 'function') {\n ref(value)\n } else if (ref) {\n ref.current = value\n }\n}\n\n/**\n * Merges React Refs into a single memoized function ref so you can pass it to an element.\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const internalRef = React.useRef();\n * return <div {...props} ref={useForkRef(internalRef, ref)} />;\n * });\n */\nfunction useForkRef(...refs: Array<React.Ref<unknown> | undefined>) {\n return useMemo(\n () => {\n if (!refs.some(Boolean)) return\n return (value: unknown) => {\n refs.forEach((ref) => setRef(ref, value))\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n refs,\n )\n}\n\nexport { useForkRef }\n"],"names":["refs","useMemo","some","Boolean","value","forEach","ref","current","setRef"],"mappings":"8GAwBA,YAAuBA,GACnB,OAAOC,UACH,KACI,GAAKD,EAAKE,KAAKC,SACf,OAAQC,IACJJ,EAAKK,QAASC,GAxB9B,SACIA,EACAF,GAEmB,mBAARE,EACPA,EAAIF,GACGE,IACPA,EAAIC,QAAUH,GAiBgBI,CAAOF,EAAKF,MAI1CJ"}
@@ -1 +0,0 @@
1
- export * from './modal';