@kanso-labs/kanso-ui 0.40.2 → 0.40.3

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 (51) hide show
  1. package/dist/chip/styles.js +2 -2
  2. package/dist/chip/styles.js.map +1 -1
  3. package/dist/components/app-bar/index.js +5 -2
  4. package/dist/components/app-bar/index.js.map +1 -1
  5. package/dist/components/card/index.js +7 -1
  6. package/dist/components/card/index.js.map +1 -1
  7. package/dist/components/checkbox/index.js +3 -3
  8. package/dist/components/checkbox/index.js.map +1 -1
  9. package/dist/components/checkbox-group/index.js +1 -1
  10. package/dist/components/chip-group/index.js +1 -1
  11. package/dist/components/dialog/index.d.ts +5 -0
  12. package/dist/components/dialog/index.js +5 -0
  13. package/dist/components/dialog/index.js.map +1 -1
  14. package/dist/components/menu/index.js +4 -1
  15. package/dist/components/menu/index.js.map +1 -1
  16. package/dist/components/popover/index.js +310 -93
  17. package/dist/components/popover/index.js.map +1 -1
  18. package/dist/components/progress-indicator/index.js +6 -6
  19. package/dist/components/progress-indicator/index.js.map +1 -1
  20. package/dist/components/radio-group/index.js +27 -38
  21. package/dist/components/radio-group/index.js.map +1 -1
  22. package/dist/components/segmented-button/index.d.ts +3 -1
  23. package/dist/components/segmented-button/index.js +33 -17
  24. package/dist/components/segmented-button/index.js.map +1 -1
  25. package/dist/components/select/index.js +1 -0
  26. package/dist/components/select/index.js.map +1 -1
  27. package/dist/components/sheet/index.d.ts +5 -0
  28. package/dist/components/sheet/index.js +6 -1
  29. package/dist/components/sheet/index.js.map +1 -1
  30. package/dist/components/snackbar/index.js +1 -1
  31. package/dist/components/snackbar/index.js.map +1 -1
  32. package/dist/control/index.js +54 -1
  33. package/dist/control/index.js.map +1 -1
  34. package/dist/control/styles.js +1 -1
  35. package/dist/control/styles.js.map +1 -1
  36. package/dist/field/index.js +183 -131
  37. package/dist/field/index.js.map +1 -1
  38. package/dist/field/styles.js +25 -1
  39. package/dist/field/styles.js.map +1 -1
  40. package/dist/indicator/styles.js +2 -2
  41. package/dist/indicator/styles.js.map +1 -1
  42. package/dist/mark/styles.js +3 -0
  43. package/dist/mark/styles.js.map +1 -1
  44. package/dist/navigation/styles.js +1 -1
  45. package/dist/navigation/styles.js.map +1 -1
  46. package/dist/row/styles.js +1 -1
  47. package/dist/row/styles.js.map +1 -1
  48. package/dist/styles/overlay.js +1 -0
  49. package/dist/styles/overlay.js.map +1 -1
  50. package/dist/styles.css +17 -1
  51. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","ReactNode","RefAttributes","RefObject","ClassNameOrFunction","DialogProps","DialogTriggerProps","HeadingProps","PopoverRenderProps","StyleOrFunction","TextProps","stylex","createContext","useCallback","useContext","useEffect","useId","useMemo","useState","Dialog","DialogTrigger","Heading","PreviewTrigger","Popover","RACPopover","Text","OverlayAlign","OverlaySide","focus","mergeStatefulStyles","mergeStyles","overlay","placementOf","popupOrigin","colors","spacing","typography","DEFAULT_SIDE_OFFSET","styles","content","kGO01o","kLKAdn","kg3NbH","$$css","description","kB7OPa","kMwMTN","kMv6JI","kGuDYH","k63SB2","kb6lSQ","kLWn49","kogj98","md","ks0D6T","sm","title","DEFAULT_HOVER_DELAY","DEFAULT_HOVER_CLOSE_DELAY","PopoverAlign","PopoverSide","PopoverSize","PopoverContext","modal","size","DescriptionContext","id","register","PopoverProps","Omit","children","closeDelay","delay","trigger","PopoverTrigger","t0","$","props","t1","t2","t3","t4","t5","undefined","t6","context","t7","t8","PopoverContent","alignOffset","className","container","ref","style","triggerRef","align","side","sideOffset","descriptionId","described","setDescribed","Symbol","for","state","popup","placement","t9","t10","t11","popupDialog","ring","t12","t13","t14","PopoverDescription","PopoverTitle","Content","Description","Title","PopoverContentProps","Element","PopoverDescriptionProps","PopoverTitleProps","Popover","_c","props","stylex.props","RACPopover"],"sources":["../../../src/components/popover/index.tsx"],"sourcesContent":["'use client';\n\nimport type { ReactNode, RefAttributes, RefObject } from 'react';\nimport type { ClassNameOrFunction, DialogProps, DialogTriggerProps, HeadingProps, PopoverRenderProps, StyleOrFunction, TextProps } from 'react-aria-components';\nimport * as stylex from '@stylexjs/stylex';\nimport { createContext, useCallback, useContext, useEffect, useId, useMemo, useState } from 'react';\nimport { Dialog, DialogTrigger, Heading, PreviewTrigger, Popover as RACPopover, Text } from 'react-aria-components';\nimport type { OverlayAlign, OverlaySide } from '../../styles/overlay';\nimport { focus } from '../../styles/focus';\nimport { mergeStatefulStyles, mergeStyles } from '../../styles/merge';\nimport { overlay, placementOf, popupOrigin } from '../../styles/overlay';\nimport '../../tokens/design.tokens.stylex';\nimport { colors, spacing, typography } from '../../tokens/design.tokens.stylex';\n\n// The gap between the anchor and the panel, matching `spacing.sm`'s default.\n// A number rather than the token, because React Aria computes the position in\n// JavaScript and so cannot read a CSS custom property — this is the one place\n// in the component where a step of the spacing scale is spelled out. React\n// Aria's own default is 8 as well, but the value is this component's decision\n// rather than an inherited one.\nconst DEFAULT_SIDE_OFFSET = 8;\n\n// The surface, its entry and the dialog's focus ring are the overlay module's,\n// shared with every anchored overlay; what is here is Popover's own — its\n// inset, its two widths, and the type of its title and description.\n//\n// Popover has no page of its own, so the inset and the type follow the rich\n// tooltip, the nearest thing the Material Design pages draw: a plain rounded\n// panel offset from its anchor, with no caret drawn between the two, holding\n// a subhead over supporting text.\n//\n// React Aria's popover is two elements — the positioned panel and the dialog\n// inside it — so the styles are split the same way: the surface, `content`\n// and a size on the panel, the dialog style on the element that carries the\n// role.\nconst styles = {\n content: {\n kGO01o: \"xqf7pud\",\n kLKAdn: \"x6gmt8y\",\n kg3NbH: \"x790zyz\",\n $$css: true\n },\n description: {\n kB7OPa: \"x9f619\",\n kMwMTN: \"x1w5n3ug\",\n kMv6JI: \"xpo2rfv\",\n kGuDYH: \"x193rfdd\",\n k63SB2: \"x1hews6w\",\n kb6lSQ: \"xn43zvd\",\n kLWn49: \"xv61bfh\",\n kogj98: \"x1ghz6dp\",\n $$css: true\n },\n md: {\n ks0D6T: \"x10u2fgw\",\n $$css: true\n },\n sm: {\n ks0D6T: \"xjjheoa\",\n $$css: true\n },\n title: {\n kB7OPa: \"x9f619\",\n kMwMTN: \"x1w5n3ug\",\n kMv6JI: \"xrgwony\",\n kGuDYH: \"x12s497w\",\n k63SB2: \"x1szcwkt\",\n kb6lSQ: \"xo803ec\",\n kLWn49: \"xyl1r0q\",\n kogj98: \"x1ghz6dp\",\n $$css: true\n }\n};\n\n// How long a pointer rests on the trigger before a hovered popover opens,\n// and how long it has to leave before it closes. React Aria's own defaults,\n// spelled out because they are the whole feel of a hover trigger and worth\n// finding in the component rather than in a changelog.\nconst DEFAULT_HOVER_DELAY = 600;\nconst DEFAULT_HOVER_CLOSE_DELAY = 200;\n\n// The overlay module's, since which side a surface opens on is the same\n// question for every anchored overlay. Aliased rather than re-declared so\n// the names a call site imports stay this component's.\ntype PopoverAlign = OverlayAlign;\ntype PopoverSide = OverlaySide;\ntype PopoverSize = 'md' | 'sm';\n\n// `size` and `modal` are declared on the root, where a reader expects to set\n// the shape of the whole popover, but it is `Popover.Content` that has to\n// apply them. Through context rather than making the call site repeat them —\n// the same arrangement Sheet uses, and worth keeping identical between the\n// two panels a consumer is most likely to reach for in the same afternoon.\nconst PopoverContext = createContext<{\n modal: boolean;\n size: PopoverSize;\n}>({\n modal: false,\n size: 'md'\n});\n\n// React Aria points a dialog's `aria-describedby` at its description slot\n// only for an alert dialog, on the grounds that an ordinary dialog's content\n// is read anyway. A popover's description names what the panel is for, so it\n// is pointed at here: the content hands the description an id, and the\n// description reports that it is mounted, since an `aria-describedby` with\n// nothing at the other end is an invalid reference rather than a harmless one.\nconst DescriptionContext = createContext<{\n id: string;\n register: () => () => void;\n}>({\n id: '',\n register: () => () => {}\n});\ntype PopoverProps = Omit<DialogTriggerProps, 'children'> & {\n children?: ReactNode;\n /**\n * How long the pointer has to leave a hovered popover before it closes, in\n * milliseconds. Ignored by a pressed one.\n * @default 200\n */\n closeDelay?: number;\n /**\n * How long the pointer has to rest on the trigger before a hovered popover\n * opens, in milliseconds. Ignored by a pressed one.\n * @default 600\n */\n delay?: number;\n /**\n * Blocks the page behind the panel while it is open, as a dialog would.\n * Off by default: a popover leaves the page interactive, which is the\n * difference from `Sheet`.\n * @default false\n */\n modal?: boolean;\n /**\n * Panel width: `sm` caps at 240px, `md` at 320px. Either way the panel is\n * only as wide as its contents, and never wider than the viewport.\n * @default 'md'\n */\n size?: PopoverSize;\n /**\n * What opens the panel: a press, or a pointer resting on the trigger.\n * `hover` is the tooltips page's rich tooltip — it opens on hover, focus\n * or a long press, and stays open while the pointer is inside it, so the\n * panel's own buttons and links can be reached.\n * @default 'press'\n */\n trigger?: PopoverTrigger;\n};\ntype PopoverTrigger = 'hover' | 'press';\n\n// React Aria names a placement by the side and, along it, the end the panel\n// is aligned to — `bottom start`, or `left top` on the sides where the axis\n// runs the other way.\n/**\n * A panel anchored to the control that opened it. Open state is React Aria's:\n * pass `isOpen` with `onOpenChange` to control it, or `defaultOpen` to let it\n * keep its own.\n *\n * Non-modal by design — the page behind stays scrollable and clickable, which\n * is the difference from `Sheet`. Pass `modal` to change that.\n *\n * Composed rather than configured by props, because a popover's contents are\n * arbitrary — the parts are `Popover.Content`, `Popover.Title`, and\n * `Popover.Description`. A `Button` or `IconButton` placed directly inside\n * `Popover` opens it, and one given `slot=\"close\"` inside the content closes\n * it; neither needs a part of its own.\n */\nfunction Popover({\n children,\n closeDelay = DEFAULT_HOVER_CLOSE_DELAY,\n delay = DEFAULT_HOVER_DELAY,\n modal = false,\n size = 'md',\n trigger = 'press',\n ...props\n}: PopoverProps) {\n const context = useMemo(() => ({\n modal,\n size\n }), [modal, size]);\n\n // A hovered popover is React Aria's preview trigger, which is a different\n // element around the same parts rather than a mode of the pressed one: it\n // opens from hover, focus or a long press, and it is always non-modal,\n // since a panel that blocked the page while the pointer merely rested on\n // something would be a trap. `modal` is left alone rather than refused,\n // and `Popover.Content` reads it as it always did — the two are simply\n // never combined by anything the page draws.\n if (trigger === 'hover') {\n return <PopoverContext value={context}>\n <PreviewTrigger closeDelay={closeDelay} delay={delay} {...props}>\n {children}\n </PreviewTrigger>\n </PopoverContext>;\n }\n return <PopoverContext value={context}>\n <DialogTrigger {...props}>{children}</DialogTrigger>\n </PopoverContext>;\n}\n\n/**\n * The panel itself. Everything the popover shows goes in here; the trigger\n * stays outside it, since the trigger lives in the page while this is\n * portalled out to the end of the body.\n *\n * Placement is React Aria's anchor positioning, so the panel flips to the\n * opposite side and shifts along the edge of the viewport on its own rather\n * than being clipped by it.\n */\nfunction PopoverContent({\n align = 'center',\n alignOffset,\n children,\n className,\n container,\n ref,\n side = 'bottom',\n sideOffset = DEFAULT_SIDE_OFFSET,\n style,\n triggerRef,\n ...props\n}: PopoverContentProps & RefAttributes<HTMLElement>) {\n const {\n modal,\n size\n } = useContext(PopoverContext);\n const descriptionId = useId();\n const [described, setDescribed] = useState(false);\n const register = useCallback(() => {\n setDescribed(true);\n return () => {\n setDescribed(false);\n };\n }, []);\n const description = useMemo(() => ({\n id: descriptionId,\n register\n }), [descriptionId, register]);\n return <RACPopover crossOffset={alignOffset} isNonModal={!modal} offset={sideOffset} placement={placementOf(side, align)}\n // The surface, where the call site's class and style land, rather than\n // the dialog inside it, which takes the rest of the props.\n ref={ref} triggerRef={triggerRef}\n // oxlint-disable-next-line typescript/no-deprecated -- its replacement, UNSAFE_PortalProvider, is not exported by react-aria-components\n UNSTABLE_portalContainer={container} {...mergeStatefulStyles((state: PopoverRenderProps) => stylex.props(overlay.popup, styles.content, styles[size], popupOrigin(state.placement)), {\n className,\n style\n })}>\n <Dialog aria-describedby={described ? descriptionId : undefined} {...props} {...stylex.props(overlay.popupDialog, focus.ring)}>\n <DescriptionContext value={description}>{children}</DescriptionContext>\n </Dialog>\n </RACPopover>;\n}\n\n/**\n * Supporting copy under the title. The panel's `aria-describedby` points at\n * it — see DescriptionContext for why that is this component's doing.\n */\nfunction PopoverDescription(props: PopoverDescriptionProps & RefAttributes<HTMLElement>) {\n const {\n id,\n register\n } = useContext(DescriptionContext);\n useEffect(() => register(), [register]);\n return <Text id={id} slot=\"description\" {...props} {...mergeStyles({\n className: \"x9f619 x1w5n3ug xpo2rfv x193rfdd x1hews6w xn43zvd xv61bfh x1ghz6dp\"\n }, props)} />;\n}\n\n/**\n * Names the popover. Rendered through React Aria's title slot, which is what\n * points the panel's `aria-labelledby` at it — a popover without one announces\n * itself unnamed.\n */\nfunction PopoverTitle(props: PopoverTitleProps & RefAttributes<HTMLHeadingElement>) {\n return <Heading slot=\"title\" {...props} {...mergeStyles({\n className: \"x9f619 x1w5n3ug xrgwony x12s497w x1szcwkt xo803ec xyl1r0q x1ghz6dp\"\n }, props)} />;\n}\nPopover.Content = PopoverContent;\nPopover.Description = PopoverDescription;\nPopover.Title = PopoverTitle;\n\n// The dialog's own props, plus the four that place the panel and its\n// styling. Those belong to the positioned panel rather than to the dialog,\n// but a call site has no reason to know there are two elements — `className`\n// and `style` reach the panel, which is the one worth restyling, and\n// everything else lands on the dialog.\ntype PopoverContentProps = Omit<DialogProps, 'children' | 'className' | 'style'> & {\n /**\n * Where the panel sits along the side it opens on.\n * @default 'center'\n */\n align?: PopoverAlign;\n /** Moves the panel along that side, in pixels. */\n alignOffset?: number;\n children?: ReactNode;\n /** A function may compute the class from the panel's render state. */\n className?: ClassNameOrFunction<PopoverRenderProps>;\n /**\n * Where to portal the panel. Defaults to the container of the `ThemeScope`\n * around it, which keeps the popover on that scope's tokens, or to the end of\n * `<body>` where there is none. A subtree themed through the `themeScope`\n * class has no container of its own, so point this inside it, or the popover\n * renders outside and keeps the page's tokens.\n */\n container?: Element;\n /**\n * Which side of the trigger the panel opens on. It flips to the opposite\n * side when there is no room.\n * @default 'bottom'\n */\n side?: PopoverSide;\n /**\n * The gap between the trigger and the panel, in pixels.\n * @default 8\n */\n sideOffset?: number;\n /** A function may compute the style from the panel's render state. */\n style?: StyleOrFunction<PopoverRenderProps>;\n /**\n * An element to anchor the panel to other than the trigger that opened it.\n */\n triggerRef?: RefObject<Element | null>;\n};\ntype PopoverDescriptionProps = TextProps;\ntype PopoverTitleProps = HeadingProps;\nexport type { PopoverAlign, PopoverContentProps, PopoverDescriptionProps, PopoverProps, PopoverSide, PopoverSize, PopoverTitleProps, PopoverTrigger };\nexport { PopoverContent, PopoverDescription, PopoverTitle };\nexport default Popover;"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["c","_c","ReactNode","RefAttributes","RefObject","ClassNameOrFunction","DialogProps","DialogTriggerProps","HeadingProps","PopoverRenderProps","StyleOrFunction","TextProps","stylex","createContext","useCallback","useContext","useEffect","useId","useMemo","useRef","useState","ButtonContext","DEFAULT_SLOT","Dialog","DialogContext","DialogTrigger","Heading","HeadingContext","OverlayTriggerStateContext","PreviewTrigger","Popover","RACPopover","Text","TextContext","OverlayAlign","OverlaySide","focus","mergeStatefulStyles","mergeStyles","overlay","placementOf","popupOrigin","colors","spacing","typography","DEFAULT_SIDE_OFFSET","styles","content","kGO01o","kLKAdn","kg3NbH","$$css","description","kB7OPa","kMwMTN","kMv6JI","kGuDYH","k63SB2","kb6lSQ","kLWn49","kogj98","md","ks0D6T","sm","title","DEFAULT_HOVER_DELAY","DEFAULT_HOVER_CLOSE_DELAY","PopoverAlign","PopoverSide","PopoverSize","PopoverContext","modal","size","DescriptionContext","id","register","TitleContext","TEXT_SLOTS","slots","PopoverProps","Omit","children","closeDelay","delay","trigger","PopoverTrigger","PanelDialog","t0","$","labelledBy","props","slot","t1","t2","t3","render","_render","t4","t5","ref","state","triggerOf","pressed","undefined","titleId","titled","setTitled","Symbol","for","registerTitle","level","headings","t6","onPress","close","t7","t8","buttons","t10","t9","element","current","contains","document","activeElement","preventScroll","t11","t12","t13","t14","popupDialog","ring","t15","t16","t17","t18","context","PopoverContent","alignOffset","className","container","style","triggerRef","align","side","sideOffset","descriptionId","described","setDescribed","popup","placement","PopoverDescription","PopoverTitle","Content","Description","Title","PopoverContentProps","Element","PopoverDescriptionProps","PopoverTitleProps","_c","props","stylex.props","Popover","RACPopover"],"sources":["../../../src/components/popover/index.tsx"],"sourcesContent":["'use client';\n\nimport type { ReactNode, RefAttributes, RefObject } from 'react';\nimport type { ClassNameOrFunction, DialogProps, DialogTriggerProps, HeadingProps, PopoverRenderProps, StyleOrFunction, TextProps } from 'react-aria-components';\nimport * as stylex from '@stylexjs/stylex';\nimport { createContext, useCallback, useContext, useEffect, useId, useMemo, useRef, useState } from 'react';\nimport { ButtonContext, DEFAULT_SLOT, Dialog, DialogContext, DialogTrigger, Heading, HeadingContext, OverlayTriggerStateContext, PreviewTrigger, Popover as RACPopover, Text, TextContext } from 'react-aria-components';\nimport type { OverlayAlign, OverlaySide } from '../../styles/overlay';\nimport { focus } from '../../styles/focus';\nimport { mergeStatefulStyles, mergeStyles } from '../../styles/merge';\nimport { overlay, placementOf, popupOrigin } from '../../styles/overlay';\nimport '../../tokens/design.tokens.stylex';\nimport { colors, spacing, typography } from '../../tokens/design.tokens.stylex';\n\n// The gap between the anchor and the panel, matching `spacing.sm`'s default.\n// A number rather than the token, because React Aria computes the position in\n// JavaScript and so cannot read a CSS custom property — this is the one place\n// in the component where a step of the spacing scale is spelled out. React\n// Aria's own default is 8 as well, but the value is this component's decision\n// rather than an inherited one.\nconst DEFAULT_SIDE_OFFSET = 8;\n\n// The surface, its entry and the dialog's focus ring are the overlay module's,\n// shared with every anchored overlay; what is here is Popover's own — its\n// inset, its two widths, and the type of its title and description.\n//\n// Popover has no page of its own, so the inset and the type follow the rich\n// tooltip, the nearest thing the Material Design pages draw: a plain rounded\n// panel offset from its anchor, with no caret drawn between the two, holding\n// a subhead over supporting text.\n//\n// React Aria's popover is two elements — the positioned panel and the dialog\n// inside it — so the styles are split the same way: the surface, `content`\n// and a size on the panel, the dialog style on the element that carries the\n// role.\nconst styles = {\n content: {\n kGO01o: \"xqf7pud\",\n kLKAdn: \"x6gmt8y\",\n kg3NbH: \"x790zyz\",\n $$css: true\n },\n description: {\n kB7OPa: \"x9f619\",\n kMwMTN: \"x1w5n3ug\",\n kMv6JI: \"xpo2rfv\",\n kGuDYH: \"x193rfdd\",\n k63SB2: \"x1hews6w\",\n kb6lSQ: \"xn43zvd\",\n kLWn49: \"xv61bfh\",\n kogj98: \"x1ghz6dp\",\n $$css: true\n },\n md: {\n ks0D6T: \"x10u2fgw\",\n $$css: true\n },\n sm: {\n ks0D6T: \"xjjheoa\",\n $$css: true\n },\n title: {\n kB7OPa: \"x9f619\",\n kMwMTN: \"x1w5n3ug\",\n kMv6JI: \"xrgwony\",\n kGuDYH: \"x12s497w\",\n k63SB2: \"x1szcwkt\",\n kb6lSQ: \"xo803ec\",\n kLWn49: \"xyl1r0q\",\n kogj98: \"x1ghz6dp\",\n $$css: true\n }\n};\n\n// How long a pointer rests on the trigger before a hovered popover opens,\n// and how long it has to leave before it closes. React Aria's own defaults,\n// spelled out because they are the whole feel of a hover trigger and worth\n// finding in the component rather than in a changelog.\nconst DEFAULT_HOVER_DELAY = 600;\nconst DEFAULT_HOVER_CLOSE_DELAY = 200;\n\n// The overlay module's, since which side a surface opens on is the same\n// question for every anchored overlay. Aliased rather than re-declared so\n// the names a call site imports stay this component's.\ntype PopoverAlign = OverlayAlign;\ntype PopoverSide = OverlaySide;\ntype PopoverSize = 'md' | 'sm';\n\n// `size` and `modal` are declared on the root, where a reader expects to set\n// the shape of the whole popover, but it is `Popover.Content` that has to\n// apply them. Through context rather than making the call site repeat them —\n// the same arrangement Sheet uses, and worth keeping identical between the\n// two panels a consumer is most likely to reach for in the same afternoon.\nconst PopoverContext = createContext<{\n modal: boolean;\n size: PopoverSize;\n}>({\n modal: false,\n size: 'md'\n});\n\n// React Aria points a dialog's `aria-describedby` at its description slot\n// only for an alert dialog, on the grounds that an ordinary dialog's content\n// is read anyway. A popover's description names what the panel is for, so it\n// is pointed at here: the content hands the description an id, and the\n// description reports that it is mounted, since an `aria-describedby` with\n// nothing at the other end is an invalid reference rather than a harmless one.\nconst DescriptionContext = createContext<{\n id: string;\n register: () => () => void;\n}>({\n id: '',\n register: () => () => {}\n});\n\n// The same for the title, which the non-modal panel names itself by — see\n// PanelDialog. React Aria's own Dialog finds its title by looking for it;\n// the panel here is told it is there.\nconst TitleContext = createContext<() => () => void>(() => () => {});\n\n// The text slot the description fills, with the default beside it so a\n// plain `Text` still renders. Hoisted, since it never changes.\nconst TEXT_SLOTS = {\n slots: {\n [DEFAULT_SLOT]: {},\n description: {}\n }\n};\ntype PopoverProps = Omit<DialogTriggerProps, 'children'> & {\n children?: ReactNode;\n /**\n * How long the pointer has to leave a hovered popover before it closes, in\n * milliseconds. Ignored by a pressed one.\n * @default 200\n */\n closeDelay?: number;\n /**\n * How long the pointer has to rest on the trigger before a hovered popover\n * opens, in milliseconds. Ignored by a pressed one.\n * @default 600\n */\n delay?: number;\n /**\n * Blocks the page behind the panel while it is open, as a dialog would.\n * Off by default: a popover leaves the page interactive, which is the\n * difference from `Sheet`.\n * @default false\n */\n modal?: boolean;\n /**\n * Panel width: `sm` caps at 240px, `md` at 320px. Either way the panel is\n * only as wide as its contents, and never wider than the viewport.\n * @default 'md'\n */\n size?: PopoverSize;\n /**\n * What opens the panel: a press, or a pointer resting on the trigger.\n * `hover` is the tooltips page's rich tooltip — it opens on hover, focus\n * or a long press, and stays open while the pointer is inside it, so the\n * panel's own buttons and links can be reached.\n * @default 'press'\n */\n trigger?: PopoverTrigger;\n};\ntype PopoverTrigger = 'hover' | 'press';\n\n/**\n * The element that carries the dialog role in a non-modal popover: what\n * React Aria's `Dialog` gives a modal one — the role, the name from the\n * title, the description, and the close slot — without the two things that\n * make `Dialog` a modal's.\n *\n * `Dialog` moves focus into itself as it mounts, whatever opened it, and\n * holds focus inside the overlay until it closes. A hover popover therefore\n * took focus from wherever the reader was typing the moment a pointer\n * rested on its trigger, and Tab in an open popover went round its own\n * controls forever, though the page behind a non-modal popover is meant to\n * stay in reach. Here a pressed popover still takes focus as it opens, since\n * a press asked for the panel, but a hovered one leaves it where it is, and\n * Tab past the panel's last control carries on from the trigger in the\n * page. React Aria's popover sees a dialog inside it and so adds no role or\n * focus handling of its own.\n */\nfunction PanelDialog({\n 'aria-labelledby': labelledBy,\n children,\n id,\n // React Aria's render prop is the one part of a dialog's props this\n // element cannot honour, being an element of its own rather than React\n // Aria's; left out rather than spread onto the DOM.\n render: _render,\n slot,\n ...props\n}: Omit<PopoverContentProps, 'align' | 'alignOffset' | 'className' | 'container' | 'side' | 'sideOffset' | 'style' | 'triggerRef'>) {\n const ref = useRef<HTMLElement>(null);\n const state = useContext(OverlayTriggerStateContext);\n // What the trigger hands its overlay: the id the trigger's\n // `aria-controls` points at, and the trigger itself as the name of a\n // panel with no title. A hover trigger hands nothing, and is a hover\n // trigger for exactly that reason.\n const trigger = triggerOf(useContext(DialogContext));\n const pressed = trigger !== undefined;\n const titleId = useId();\n const [titled, setTitled] = useState(false);\n const registerTitle = useCallback(() => {\n setTitled(true);\n return () => {\n setTitled(false);\n };\n }, []);\n const headings = useMemo(() => ({\n slots: {\n [DEFAULT_SLOT]: {},\n title: {\n id: titleId,\n level: 2\n }\n }\n }), [titleId]);\n const buttons = useMemo(() => ({\n slots: {\n close: {\n onPress: () => {\n state?.close();\n }\n },\n [DEFAULT_SLOT]: {}\n }\n }), [state]);\n useEffect(() => {\n const element = ref.current;\n if (pressed && element !== null && !element.contains(document.activeElement)) {\n element.focus({\n preventScroll: true\n });\n }\n }, [pressed]);\n return (\n // A section with the role, as React Aria's own dialog is: a `<dialog>`\n // element brings the browser's own positioning, border, padding and top\n // layer, all of which the panel around it already decides.\n <section {...props} aria-labelledby={labelledBy ?? (titled ? titleId : trigger?.labelledBy)} id={id ?? trigger?.id} ref={ref}\n // oxlint-disable-next-line jsx-a11y/prefer-tag-over-role -- a `<dialog>` element would bring the browser's own positioning and top layer, which the panel around it already decides\n role=\"dialog\" slot={slot ?? undefined} tabIndex={-1} {...stylex.props(overlay.popupDialog, focus.ring)}>\n <HeadingContext value={headings}>\n <TextContext value={TEXT_SLOTS}>\n <ButtonContext value={buttons}>\n <TitleContext value={registerTitle}>{children}</TitleContext>\n </ButtonContext>\n </TextContext>\n </HeadingContext>\n </section>\n );\n}\n\n// React Aria names a placement by the side and, along it, the end the panel\n// is aligned to — `bottom start`, or `left top` on the sides where the axis\n// runs the other way.\n/**\n * A panel anchored to the control that opened it. Open state is React Aria's:\n * pass `isOpen` with `onOpenChange` to control it, or `defaultOpen` to let it\n * keep its own.\n *\n * Non-modal by design — the page behind stays scrollable and clickable, which\n * is the difference from `Sheet`. Pass `modal` to change that.\n *\n * Composed rather than configured by props, because a popover's contents are\n * arbitrary — the parts are `Popover.Content`, `Popover.Title`, and\n * `Popover.Description`. A `Button` or `IconButton` placed directly inside\n * `Popover` opens it, and one given `slot=\"close\"` inside the content closes\n * it; neither needs a part of its own.\n */\nfunction Popover({\n children,\n closeDelay = DEFAULT_HOVER_CLOSE_DELAY,\n delay = DEFAULT_HOVER_DELAY,\n modal = false,\n size = 'md',\n trigger = 'press',\n ...props\n}: PopoverProps) {\n // A hovered popover is React Aria's preview trigger, which is a different\n // element around the same parts rather than a mode of the pressed one: it\n // opens from hover, focus or a long press, and it is always non-modal,\n // since a panel that blocked the page while the pointer merely rested on\n // something would be a trap. `modal` is ignored there rather than\n // refused, so the content draws the non-modal panel whatever it says.\n const context = useMemo(() => ({\n modal: modal && trigger !== 'hover',\n size\n }), [modal, size, trigger]);\n if (trigger === 'hover') {\n return <PopoverContext value={context}>\n <PreviewTrigger closeDelay={closeDelay} delay={delay} {...props}>\n {children}\n </PreviewTrigger>\n </PopoverContext>;\n }\n return <PopoverContext value={context}>\n <DialogTrigger {...props}>{children}</DialogTrigger>\n </PopoverContext>;\n}\n\n/**\n * The panel itself. Everything the popover shows goes in here; the trigger\n * stays outside it, since the trigger lives in the page while this is\n * portalled out to the end of the body.\n *\n * Placement is React Aria's anchor positioning, so the panel flips to the\n * opposite side and shifts along the edge of the viewport on its own rather\n * than being clipped by it.\n */\nfunction PopoverContent({\n align = 'center',\n alignOffset,\n children,\n className,\n container,\n ref,\n side = 'bottom',\n sideOffset = DEFAULT_SIDE_OFFSET,\n style,\n triggerRef,\n ...props\n}: PopoverContentProps & RefAttributes<HTMLElement>) {\n const {\n modal,\n size\n } = useContext(PopoverContext);\n const descriptionId = useId();\n const [described, setDescribed] = useState(false);\n const register = useCallback(() => {\n setDescribed(true);\n return () => {\n setDescribed(false);\n };\n }, []);\n const description = useMemo(() => ({\n id: descriptionId,\n register\n }), [descriptionId, register]);\n return <RACPopover crossOffset={alignOffset} isNonModal={!modal} offset={sideOffset} placement={placementOf(side, align)}\n // The surface, where the call site's class and style land, rather than\n // the dialog inside it, which takes the rest of the props.\n ref={ref} triggerRef={triggerRef}\n // oxlint-disable-next-line typescript/no-deprecated -- its replacement, UNSAFE_PortalProvider, is not exported by react-aria-components\n UNSTABLE_portalContainer={container} {...mergeStatefulStyles((state: PopoverRenderProps) => stylex.props(overlay.popup, styles.content, styles[size], popupOrigin(state.placement)), {\n className,\n style\n })}>\n {modal ? <Dialog aria-describedby={described ? descriptionId : undefined} {...props} {...stylex.props(overlay.popupDialog, focus.ring)}>\n <DescriptionContext value={description}>\n {children}\n </DescriptionContext>\n </Dialog> : <PanelDialog aria-describedby={described ? descriptionId : undefined} {...props}>\n <DescriptionContext value={description}>\n {children}\n </DescriptionContext>\n </PanelDialog>}\n </RACPopover>;\n}\n\n/**\n * Supporting copy under the title. The panel's `aria-describedby` points at\n * it — see DescriptionContext for why that is this component's doing.\n */\nfunction PopoverDescription(props: PopoverDescriptionProps & RefAttributes<HTMLElement>) {\n const {\n id,\n register\n } = useContext(DescriptionContext);\n useEffect(() => register(), [register]);\n return <Text id={id} slot=\"description\" {...props} {...mergeStyles({\n className: \"x9f619 x1w5n3ug xpo2rfv x193rfdd x1hews6w xn43zvd xv61bfh x1ghz6dp\"\n }, props)} />;\n}\n\n/**\n * Names the popover. Rendered through React Aria's title slot, which is what\n * points the panel's `aria-labelledby` at it — a popover without one announces\n * itself unnamed.\n */\nfunction PopoverTitle(props: PopoverTitleProps & RefAttributes<HTMLHeadingElement>) {\n const register = useContext(TitleContext);\n useEffect(() => register(), [register]);\n return <Heading slot=\"title\" {...props} {...mergeStyles({\n className: \"x9f619 x1w5n3ug xrgwony x12s497w x1szcwkt xo803ec xyl1r0q x1ghz6dp\"\n }, props)} />;\n}\n\n/**\n * What a pressed trigger hands the overlay it opens: the id its\n * `aria-controls` points at, and its own id to name a panel with no title.\n * Read field by field, since the context's type also admits a slotted\n * value; a hover trigger hands nothing.\n */\nfunction triggerOf(context: unknown) {\n if (typeof context !== 'object' || context === null || 'slots' in context) {\n return undefined;\n }\n return {\n id: 'id' in context && typeof context.id === 'string' ? context.id : undefined,\n labelledBy: 'aria-labelledby' in context && typeof context['aria-labelledby'] === 'string' ? context['aria-labelledby'] : undefined\n };\n}\nPopover.Content = PopoverContent;\nPopover.Description = PopoverDescription;\nPopover.Title = PopoverTitle;\n\n// The dialog's own props, plus the four that place the panel and its\n// styling. Those belong to the positioned panel rather than to the dialog,\n// but a call site has no reason to know there are two elements — `className`\n// and `style` reach the panel, which is the one worth restyling, and\n// everything else lands on the dialog.\ntype PopoverContentProps = Omit<DialogProps, 'children' | 'className' | 'style'> & {\n /**\n * Where the panel sits along the side it opens on.\n * @default 'center'\n */\n align?: PopoverAlign;\n /** Moves the panel along that side, in pixels. */\n alignOffset?: number;\n children?: ReactNode;\n /** A function may compute the class from the panel's render state. */\n className?: ClassNameOrFunction<PopoverRenderProps>;\n /**\n * Where to portal the panel. Defaults to the container of the `ThemeScope`\n * around it, which keeps the popover on that scope's tokens, or to the end of\n * `<body>` where there is none. A subtree themed through the `themeScope`\n * class has no container of its own, so point this inside it, or the popover\n * renders outside and keeps the page's tokens.\n */\n container?: Element;\n /**\n * Which side of the trigger the panel opens on. It flips to the opposite\n * side when there is no room.\n * @default 'bottom'\n */\n side?: PopoverSide;\n /**\n * The gap between the trigger and the panel, in pixels.\n * @default 8\n */\n sideOffset?: number;\n /** A function may compute the style from the panel's render state. */\n style?: StyleOrFunction<PopoverRenderProps>;\n /**\n * An element to anchor the panel to other than the trigger that opened it.\n */\n triggerRef?: RefObject<Element | null>;\n};\ntype PopoverDescriptionProps = TextProps;\ntype PopoverTitleProps = HeadingProps;\nexport type { PopoverAlign, PopoverContentProps, PopoverDescriptionProps, PopoverProps, PopoverSide, PopoverSize, PopoverTitleProps, PopoverTrigger };\nexport { PopoverContent, PopoverDescription, PopoverTitle };\nexport default Popover;"],"mappings":"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"}
@@ -54,7 +54,7 @@ const styles = {
54
54
  $$css: true
55
55
  },
56
56
  arcActive: {
57
- kjVXCG: "x1i9vjva",
57
+ kjVXCG: "x1i9vjva xbabvq0",
58
58
  $$css: true
59
59
  },
60
60
  arcFade: {
@@ -67,7 +67,7 @@ const styles = {
67
67
  ko0y90: "x77zgwx",
68
68
  kKVMdj: "x14p4i3i",
69
69
  kyAemX: "x1582zw4",
70
- kjVXCG: "x1i9vjva",
70
+ kjVXCG: "x1i9vjva xbabvq0",
71
71
  k1ekBW: "x13b0p5u",
72
72
  $$css: true
73
73
  },
@@ -79,7 +79,7 @@ const styles = {
79
79
  $$css: true
80
80
  },
81
81
  arcTrack: {
82
- kjVXCG: "xynoiew",
82
+ kjVXCG: "xynoiew x8jos32",
83
83
  $$css: true
84
84
  },
85
85
  circular: {
@@ -137,7 +137,7 @@ const styles = {
137
137
  ko0y90: "x77zgwx",
138
138
  kKVMdj: "x15en9ga",
139
139
  kyAemX: "xlges3w",
140
- kjVXCG: "x1i9vjva",
140
+ kjVXCG: "x1i9vjva xbabvq0",
141
141
  $$css: true
142
142
  },
143
143
  ringWave: {
@@ -162,7 +162,7 @@ const styles = {
162
162
  ko0y90: "x77zgwx",
163
163
  kKVMdj: "x1sz9pa8",
164
164
  kyAemX: "xlges3w",
165
- kjVXCG: "x1i9vjva",
165
+ kjVXCG: "x1i9vjva xbabvq0",
166
166
  $$css: true
167
167
  },
168
168
  trackBuffered: {
@@ -180,7 +180,7 @@ const styles = {
180
180
  },
181
181
  waveMotion: {
182
182
  k6CgDc: "x12w9bfk",
183
- kjVXCG: "x1i9vjva",
183
+ kjVXCG: "x1i9vjva xbabvq0",
184
184
  kIyJzY: "xioksi3",
185
185
  k1ekBW: "xvfbvx2",
186
186
  kAMwcw: "x16pyfke",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","ReactNode","RefAttributes","ProgressBarRenderProps","ProgressBarProps","RACProgressBarProps","stylex","ProgressBar","IndicatorTone","IndicatorLabels","IndicatorLine","indicatorStyles","mergeStatefulStyles","colors","motion","radii","CIRCULAR_SIZE","CIRCULAR_SIZE_PX","THICKNESS","GAP","RADIUS","CIRCUMFERENCE","Math","PI","FORCED_COLORS","ARC_MS","CYCLE_MS","ROTATE_MS","round","RING_EASING","INDETERMINATE_MS","BUFFER_MS","LINE_SLOWDOWN","RING_SLOWDOWN","WAVE_AMPLITUDE","WAVE_WAVELENGTH","INDETERMINATE_WAVELENGTH","WAVE_HEIGHT","WAVE_REACH","DETERMINATE_EASING","WAVE_FROM","WAVE_UNTIL","WAVY_SIZE","WAVY_SIZE_PX","RING_AMPLITUDE","RING_WAVELENGTH","WAVY_RADIUS","WAVY_CIRCUMFERENCE","RING_WAVES","REDUCED_MOTION","TOO_WIDE","DETERMINATE_WAVE","linearWave","INDETERMINATE_WAVE","RING_WAVE","ringWave","primaryTranslate","primaryScale","secondaryTranslate","secondaryScale","buffering","expandArc","travelArc","spin","primaryWaveOffset","primaryWaveLength","secondaryWaveOffset","secondaryWaveLength","_temp","kZKoxP","kzqmXN","_temp2","_temp3","k5rJSQ","styles","activeFade","k1ekBW","$$css","activeUnderWave","kSiTet","arcActive","kjVXCG","arcFade","arcIndeterminate","kkDQuc","k44tkh","ko0y90","kKVMdj","kyAemX","arcMotion","k6CgDc","kIyJzY","kAMwcw","arcTrack","circular","kB7OPa","k1xSpc","k3aq6I","circularIndeterminate","circularSize","size","val","undefined","flatUnderWave","indeterminateBarInner","kWkggS","kaIpWk","kpwlN0","kVAEAm","indeterminateTrack","kjBf7l","kInvED","k3XXqK","kMeerF","primaryBarInner","primaryWave","rootCircular","kGNEyG","secondaryBarInner","secondaryWave","trackBuffered","kmuXW","trackBufferedAt","share","waveAt","percentage","waveFlat","waveMotion","ProgressIndicatorProps","buffer","className","diameter","label","shape","ProgressIndicatorShape","showValue","style","tone","ProgressIndicatorTone","variant","ProgressIndicatorVariant","Omit","Extract","arcsFor","circumference","active","track","max","strokeDasharray","strokeDashoffset","bufferShare","minValue","maxValue","value","range","buffered","remaining","min","CircularTrack","t0","$","isIndeterminate","inherit","wavy","radius","t1","arcs","t2","isWaving","waving","t3","t4","props","t5","inheritTrack","t6","t7","t8","t9","t10","t11","inheritActive","t12","t13","t14","indicatorContent","state","valueText","LinearTrack","Symbol","for","0","1","bars","t15","path","extent","t16","t17","t18","t19","line","wavelength","half","inset","lift","halves","ceil","index","ProgressIndicator","T0","root","points","centre","angle","sin","cos","_c","stylex.props","props"],"sources":["../../../src/components/progress-indicator/index.tsx"],"sourcesContent":["'use client';\n\nimport type { ReactNode, RefAttributes } from 'react';\nimport type { ProgressBarRenderProps, ProgressBarProps as RACProgressBarProps } from 'react-aria-components';\nimport * as stylex from '@stylexjs/stylex';\nimport { ProgressBar } from 'react-aria-components';\nimport type { IndicatorTone } from '../../indicator/styles';\nimport { IndicatorLabels, IndicatorLine } from '../../indicator';\nimport { indicatorStyles } from '../../indicator/styles';\nimport { mergeStatefulStyles } from '../../styles/merge';\nimport '../../tokens/design.tokens.stylex';\nimport { colors, motion, radii } from '../../tokens/design.tokens.stylex';\n\n// The progress indicators page's indicator, as a line or a ring, in either\n// of the page's two shapes, flat and wavy. Both carry the three parts the\n// page's anatomy names — the active indicator in primary, the track in\n// secondary container, and, on the line, the stop indicator in primary at\n// the end — at the page's 4dp thickness, with the 4dp gap its measurements\n// give either side of the track. The flat ring is the page's default 40dp of\n// the four sizes it draws, and the wavy ring the 48dp its wave needs room\n// for.\n//\n// The determinate line is a row of those parts: the active indicator takes\n// the value's share of what the gaps and the stop leave, and the track takes\n// the rest — see `activeAt` in src/indicator/styles.ts. The\n// determinate ring is two arcs of one circle, cut by the dash pattern: the\n// active arc runs from the top for its share of the circumference, and the\n// track picks up 4dp past it and stops 4dp before it comes back round,\n// which is the same gap measured along the curve.\n//\n// The animations are Material's own rather than something assembled from\n// the motion tokens: an indeterminate indicator is a piece of choreography,\n// and one written from scratch reads as a different component beside a\n// Material app. Material Web and Angular Material both descend from the\n// same implementation and agree on every number, so the numbers here are\n// theirs — the line's two bars and their four keyframe sets, the buffer's\n// scrolling dots, the ring's 1333ms arc, its four-arc cycle and its 1568ms\n// rotation, and the 250ms and 500ms a determinate value moves over.\n//\n// Two things are decided differently, both after reading the two of them.\n//\n// The ring is one dashed arc rather than two halves. Material Web draws it\n// as a pair of bordered half-circles, Angular as a pair of clipped SVG\n// circles with a patch over the seam between them; both constructions exist\n// to work around that split, and a single arc whose dash pattern is\n// animated needs neither and shares its geometry with the determinate ring.\n// The three effects it composes are still theirs: the arc grows and shrinks\n// over the arc's duration, its start travels the circle over four of those,\n// and the whole thing turns over the rotation's.\n//\n// Under `prefers-reduced-motion` the motion slows rather than stopping,\n// which is Angular's answer and the better one: an indicator that freezes\n// stops saying the work is going on, and a frozen arc caught at its short\n// end reads as broken. The multipliers are Angular's — two for the line,\n// and a quarter more for the ring.\n//\n// The wavy shape draws the active indicator as a wave and leaves the track\n// and the stop flat, as the page does. Its numbers are Material's own, from\n// its Compose and Android components: on the line a 3dp amplitude, a 40dp\n// wavelength and a 10dp row, with a 20dp wavelength while indeterminate; on\n// the ring a 1.6dp amplitude and a 15dp wavelength, rounded to a whole\n// number of waves so the wave closes on itself. A determinate wave lies flat\n// up to a tenth of the way and from 95% on, which is Material's rule too: a\n// wave too short to hold a crest reads as a wobble, and one about to finish\n// settles into the line it ends as.\n//\n// The wave is drawn over the flat drawing rather than in place of it, and\n// the two are crossfaded as the value crosses those bounds. The flat drawing\n// is also what a reader who has asked for reduced motion sees, since a wave\n// is motion even standing still, and what a line wider than `WAVE_REACH` is\n// drawn as. The line's wave is a path of that fixed length, cut to the value\n// by a dash written against the row's own width in container query units,\n// `100cqi`, so nothing has to measure the row before the wave can be drawn.\n//\n// React Aria's `ProgressBar` is the root: it carries the role, the value and\n// its text, and reports the percentage and whether it is indeterminate as\n// render state, which is what everything here is drawn from.\n\n// The circle the arcs are cut from. The radius is the diameter less the\n// stroke, halved, so the stroke sits inside the 40dp box rather than\n// straddling its edge.\n//\n// The thickness and the gap are the same 4dp the shared line is drawn at,\n// written again rather than imported from `src/indicator/styles`: StyleX\n// evaluates the values inside `stylex.create` and `stylex.keyframes` as it\n// compiles, and will not follow an import to a module that is not a theme\n// to reach one — an imported constant fails the transform outright.\nconst CIRCULAR_SIZE = 40;\n// The same value as a length, hoisted rather than built at the parameter.\n// The compiler has no safe reordering for a template literal, so one written\n// as a default parameter skips the whole component around it — which the\n// panic threshold this lands beside turns into a build failure.\nconst CIRCULAR_SIZE_PX = `${CIRCULAR_SIZE}px`;\nconst THICKNESS = 4;\nconst GAP = 4;\nconst RADIUS = (CIRCULAR_SIZE - THICKNESS) / 2;\nconst CIRCUMFERENCE = 2 * Math.PI * RADIUS;\n\n// Windows High Contrast and the rest of the forced-colours modes. Spelled\n// here rather than imported, for the reason src/field/styles.ts records: the\n// StyleX compiler resolves a constant across files only out of a `.stylex.ts`\n// module, and the generated one holds design tokens rather than queries.\nconst FORCED_COLORS = '@media (forced-colors: active)';\n\n// The ring's timings. The arc is 1333ms; a full cycle is four of them; and\n// the rotation is the arc scaled by 360/306, which is the arc's start\n// rotation plus the circle less the arc's size.\nconst ARC_MS = 1333;\nconst CYCLE_MS = ARC_MS * 4;\nconst ROTATE_MS = Math.round(ARC_MS * 360 / 306);\nconst RING_EASING = 'cubic-bezier(0.4, 0, 0.2, 1)';\n\n// The line's own: 2s for an indeterminate pass, and the 250ms the buffer's\n// dots take to scroll one pitch. What a determinate value moves over is the\n// shared line's, since a meter moves the same way.\nconst INDETERMINATE_MS = 2000;\nconst BUFFER_MS = 250;\n\n// What `prefers-reduced-motion` slows each shape by.\nconst LINE_SLOWDOWN = 2;\nconst RING_SLOWDOWN = 1.25;\n\n// The wavy line: the wave's amplitude either side of the middle, its two\n// wavelengths, and the row it is drawn in, which is the amplitude either side\n// plus the stroke. `WAVE_REACH` is how far the wave runs, and a row wider\n// than that draws flat. The easing is the shared line's, written again for\n// the reason the thickness is.\nconst WAVE_AMPLITUDE = 3;\nconst WAVE_WAVELENGTH = 40;\nconst INDETERMINATE_WAVELENGTH = 20;\nconst WAVE_HEIGHT = WAVE_AMPLITUDE * 2 + THICKNESS;\nconst WAVE_REACH = 2048;\nconst DETERMINATE_EASING = 'cubic-bezier(0.4, 0, 0.6, 1)';\n\n// Where a determinate wave stands up and where it lies down again, as\n// percentages of the way.\nconst WAVE_FROM = 10;\nconst WAVE_UNTIL = 95;\n\n// The wavy ring: the 48dp box, the amplitude, and the circle the wave runs\n// round, pulled in by the amplitude so its crests stay inside the box. The\n// wave count is the wavelength's share of that circle, rounded — nine.\nconst WAVY_SIZE = 48;\nconst WAVY_SIZE_PX = `${WAVY_SIZE}px`;\nconst RING_AMPLITUDE = 1.6;\nconst RING_WAVELENGTH = 15;\nconst WAVY_RADIUS = (WAVY_SIZE - THICKNESS) / 2 - RING_AMPLITUDE;\nconst WAVY_CIRCUMFERENCE = 2 * Math.PI * WAVY_RADIUS;\nconst RING_WAVES = Math.round(WAVY_CIRCUMFERENCE / RING_WAVELENGTH);\nconst REDUCED_MOTION = '@media (prefers-reduced-motion: reduce)';\nconst TOO_WIDE = `@container (inline-size > ${WAVE_REACH}px)`;\n\n// The paths the waves are drawn along, built once.\nconst DETERMINATE_WAVE = linearWave(WAVE_WAVELENGTH);\nconst INDETERMINATE_WAVE = linearWave(INDETERMINATE_WAVELENGTH);\nconst RING_WAVE = ringWave();\n\n// The two bars of the indeterminate line, translated and scaled at once.\nconst primaryTranslate = \"x1pch1fy-B\";\nconst primaryScale = \"xxyp5q1-B\";\nconst secondaryTranslate = \"xzo9tdn-B\";\nconst secondaryScale = \"x1w7bnrt-B\";\n\n// The buffer's dots scroll by one pitch of the pattern and start again.\nconst buffering = \"x19sykc1-B\";\n\n// The arc's own length, written against a path the circle normalises to 100\n// with `pathLength`, so these are percentages of the circumference rather\n// than lengths StyleX would have to work out.\n//\n// Material contracts to 10 degrees of turn and grows to 270. The 270 is 75\n// of the circumference and is written as it is; the 10 is not, because the\n// page's rounded ends change what a short dash draws. A round cap adds half\n// the stroke at each end, so a 10-degree dash on the 40dp ring is 3px of\n// path inside a 7px capsule of 4px stroke — a dot rather than the sliver\n// Material's square-cut ends give at the same angle. 8 is the shortest the\n// cap still draws as an arc, and it is the floor for that reason rather\n// than because the page names it.\nconst expandArc = \"x1t81ys1-B\";\n\n// Where the arc starts. Material turns it in eight increments of 135 degrees\n// rather than at a constant rate, each eased with the same curve the arc's\n// growth uses, so it settles at each position and springs to the next; three\n// full turns over the cycle, under the rotation's own single turn. The\n// numbers here are those angles along a path of 100: 135 degrees is 37.5 of\n// it, and 1080 degrees is 300.\nconst travelArc = \"x26nhu8-B\";\nconst spin = \"x1fy8ia8-B\";\n\n// The indeterminate line's two bars, as dashes along the wave. A bar's\n// translation is where its dash starts, so it moves the dash's offset, and\n// its scale is how long the dash is, so it moves the dash's length; both are\n// the bar keyframes above, at their times and on their curves, turned from\n// shares of the row into lengths of it. The offset is the bar's distance\n// before the row's start, which is where its keyframes put it: the primary\n// bar sits 145.167% back and travels 200.611% of the row, the secondary\n// 54.8889% back and travels 160.278%. The gap after the dash is four rows\n// long, so the dash after it never reaches the row.\nconst primaryWaveOffset = \"x1kfhhp5-B\";\nconst primaryWaveLength = \"x1yi1oyw-B\";\nconst secondaryWaveOffset = \"x18qdip-B\";\nconst secondaryWaveLength = \"x1b9nlqo-B\";\nconst _temp = {\n kZKoxP: \"xyq6l7l\",\n kzqmXN: \"x1uyokj7\",\n \"$$css\": true\n};\nconst _temp2 = {\n kzqmXN: \"x1uyokj7\",\n \"$$css\": true\n};\nconst _temp3 = {\n k5rJSQ: \"xqmdeo6\",\n \"$$css\": true\n};\nconst styles = {\n activeFade: {\n k1ekBW: \"x7x1mir\",\n $$css: true\n },\n activeUnderWave: {\n kSiTet: \"xg01cxk x19xn7b2 x16dpw5u\",\n k1ekBW: \"x7x1mir\",\n $$css: true\n },\n arcActive: {\n kjVXCG: \"x1i9vjva\",\n $$css: true\n },\n arcFade: {\n k1ekBW: \"x1t9qjwo\",\n $$css: true\n },\n arcIndeterminate: {\n kkDQuc: \"x12dwrod\",\n k44tkh: \"xxx5gdc\",\n ko0y90: \"x77zgwx\",\n kKVMdj: \"x14p4i3i\",\n kyAemX: \"x1582zw4\",\n kjVXCG: \"x1i9vjva\",\n k1ekBW: \"x13b0p5u\",\n $$css: true\n },\n arcMotion: {\n k6CgDc: \"x12w9bfk\",\n kIyJzY: \"xd6oih7\",\n k1ekBW: \"xg0bdzq\",\n kAMwcw: \"x4ognrn\",\n $$css: true\n },\n arcTrack: {\n kjVXCG: \"xynoiew\",\n $$css: true\n },\n circular: {\n kB7OPa: \"x9f619\",\n k1xSpc: \"x1lliihq\",\n k3aq6I: \"x9tu13d\",\n $$css: true\n },\n circularIndeterminate: {\n kkDQuc: \"x7hzzi\",\n k44tkh: \"x11c9iw4\",\n ko0y90: \"xa4qsjk\",\n kKVMdj: \"xpedhrg\",\n kyAemX: \"x1esw782\",\n k3aq6I: \"x1c071of\",\n $$css: true\n },\n circularSize: (size: string) => [_temp, {\n \"--x-blockSize\": (val => typeof val === \"number\" ? val + \"px\" : val != null ? val : undefined)(size),\n \"--x-inlineSize\": (val => typeof val === \"number\" ? val + \"px\" : val != null ? val : undefined)(size)\n }],\n flatUnderWave: {\n kSiTet: \"xg01cxk x16dpw5u\",\n $$css: true\n },\n indeterminateBarInner: {\n kWkggS: \"xnety89 x1jzqe4\",\n kaIpWk: \"x1dkaolv\",\n kB7OPa: \"x9f619\",\n kpwlN0: \"x10a8y8t\",\n kVAEAm: \"x10l6tqk\",\n $$css: true\n },\n indeterminateTrack: {\n kWkggS: \"x15dekr4\",\n kaIpWk: \"x1dkaolv\",\n kpwlN0: \"x10a8y8t\",\n kjBf7l: \"x3teovq\",\n kInvED: \"xvr1dqx\",\n k3XXqK: \"x815t2r\",\n kMeerF: \"xcthrzx\",\n kVAEAm: \"x10l6tqk\",\n $$css: true\n },\n primaryBarInner: {\n kkDQuc: \"xy02sl2\",\n k44tkh: \"x1c74tu6\",\n ko0y90: \"xa4qsjk\",\n kKVMdj: \"xkj56kq\",\n kyAemX: \"x1esw782\",\n $$css: true\n },\n primaryWave: {\n k44tkh: \"xy7unhy\",\n ko0y90: \"x77zgwx\",\n kKVMdj: \"x15en9ga\",\n kyAemX: \"xlges3w\",\n kjVXCG: \"x1i9vjva\",\n $$css: true\n },\n ringWave: {\n k1xSpc: \"xkio4u3\",\n $$css: true\n },\n rootCircular: {\n kGNEyG: \"x1cy8zhl\",\n kzqmXN: \"x14atkfc\",\n $$css: true\n },\n secondaryBarInner: {\n kkDQuc: \"xy02sl2\",\n k44tkh: \"x1c74tu6\",\n ko0y90: \"xa4qsjk\",\n kKVMdj: \"xnb0dd2\",\n kyAemX: \"x1esw782\",\n $$css: true\n },\n secondaryWave: {\n k44tkh: \"xy7unhy\",\n ko0y90: \"x77zgwx\",\n kKVMdj: \"x1sz9pa8\",\n kyAemX: \"xlges3w\",\n kjVXCG: \"x1i9vjva\",\n $$css: true\n },\n trackBuffered: {\n kWkggS: \"x15dekr4\",\n kZKoxP: \"x5yr21d\",\n kB7OPa: \"x9f619\",\n kmuXW: \"x2lah0s\",\n $$css: true\n },\n trackBufferedAt: (share: number) => [_temp2, {\n \"--x-inlineSize\": (val => typeof val === \"number\" ? val + \"px\" : val != null ? val : undefined)(`${share}%`)\n }],\n waveAt: (percentage: number) => [_temp3, {\n \"--x-strokeDasharray\": `max(0px, (100cqi - ${GAP * 2 + THICKNESS}px) * ${percentage / 100} - ${THICKNESS}px) ${WAVE_REACH * 2}px` != null ? `max(0px, (100cqi - ${GAP * 2 + THICKNESS}px) * ${percentage / 100} - ${THICKNESS}px) ${WAVE_REACH * 2}px` : undefined\n }],\n waveFlat: {\n kSiTet: \"xg01cxk\",\n $$css: true\n },\n waveMotion: {\n k6CgDc: \"x12w9bfk\",\n kjVXCG: \"x1i9vjva\",\n kIyJzY: \"xioksi3\",\n k1ekBW: \"xvfbvx2\",\n kAMwcw: \"x16pyfke\",\n $$css: true\n }\n};\ntype ProgressIndicatorProps = {\n /**\n * How far the work is loaded ahead of the value — a video's buffered\n * seconds, a queue's fetched pages. Read on the same scale as `value`: the\n * track is solid up to it and dotted beyond. Ignored while the indicator\n * is indeterminate, and left out for work with nothing to buffer.\n */\n buffer?: number;\n /** A function may compute the class from the indicator's render state. */\n className?: RACProgressBarProps['className'];\n /**\n * How wide the ring is drawn, as a CSS length. Everything inside scales\n * with it, so `1em` gives a ring the size of the type around it. Ignored\n * by the line, which fills the width it is given.\n *\n * A length rather than a step of the size scale: a ring sized to the type\n * around it is what the prop is for, and no fixed scale gives that.\n * @default '40px', or '48px' for the wavy ring\n */\n diameter?: string;\n /**\n * What the work is, shown above the indicator. A screen reader reads it as\n * the indicator's name; an indicator whose surroundings name it takes\n * `aria-label` instead and leaves this out.\n */\n label?: ReactNode;\n /**\n * The page's two shapes. `wavy` draws the active indicator as a wave,\n * which lies flat near either end of a determinate value, and leaves the\n * track and the stop flat; the wavy ring is 48dp across rather than 40.\n * Under `prefers-reduced-motion` a wavy indicator is drawn flat.\n * @default 'flat'\n */\n shape?: ProgressIndicatorShape;\n /**\n * Whether the value is shown beside the label. Ignored while the indicator\n * is indeterminate, which has no value to show.\n * @default false\n */\n showValue?: boolean;\n /** A function may compute the style from the indicator's render state. */\n style?: RACProgressBarProps['style'];\n /**\n * Which colours it is drawn in. `primary` is the page's own pair — the\n * active indicator in primary over a secondary container track — and\n * `inherit` takes the colour around it, for an indicator inside something\n * that already has one, such as a button, where primary would be the fill.\n * @default 'primary'\n */\n tone?: ProgressIndicatorTone;\n /**\n * The line the page draws, or the ring: `linear` fills the width it is\n * given, `circular` is 40dp across.\n * @default 'linear'\n */\n variant?: ProgressIndicatorVariant;\n} & Omit<RACProgressBarProps, 'children' | 'className' | 'style'>;\ntype ProgressIndicatorShape = 'flat' | 'wavy';\n\n// The two of the shared line's four tones an indicator draws. The other two\n// say how a measurement reads, which is a meter's business rather than a\n// running task's.\ntype ProgressIndicatorTone = Extract<IndicatorTone, 'inherit' | 'primary'>;\ntype ProgressIndicatorVariant = 'circular' | 'linear';\n\n// The dashes that cut the two arcs out of one circle. The active arc runs\n// from the top for its share of the circumference; the track picks up 4dp\n// after it and stops 4dp before it comes back round, which is the page's gap\n// measured along the curve.\nfunction arcsFor(percentage: number | undefined, circumference: number) {\n const active = (percentage ?? 0) / 100 * circumference;\n const track = Math.max(0, circumference - active - 2 * GAP);\n return {\n active: {\n strokeDasharray: `${active} ${circumference}`,\n strokeDashoffset: 0\n },\n track: {\n strokeDasharray: `${track} ${circumference}`,\n strokeDashoffset: -(active + GAP)\n }\n };\n}\n\n// How much of the track the buffer covers. The buffer is read on the value's\n// scale, and the track holds what the value has not taken, so the solid part\n// is the buffer's share of that remainder.\nfunction bufferShare(buffer: number | undefined, percentage: number | undefined, minValue: number, maxValue: number) {\n if (buffer === undefined) {\n return undefined;\n }\n const value = percentage ?? 0;\n const range = maxValue - minValue;\n const buffered = range === 0 ? 0 : (buffer - minValue) / range * 100;\n const remaining = 100 - value;\n if (remaining <= 0) {\n return 0;\n }\n return Math.min(100, Math.max(0, (buffered - value) / remaining * 100));\n}\nfunction CircularTrack({\n diameter,\n isIndeterminate,\n percentage,\n shape,\n tone\n}: {\n diameter: string;\n isIndeterminate: boolean;\n percentage: number | undefined;\n shape: ProgressIndicatorShape;\n tone: ProgressIndicatorTone;\n}) {\n const inherit = tone === 'inherit';\n const wavy = shape === 'wavy';\n const size = wavy ? WAVY_SIZE : CIRCULAR_SIZE;\n const radius = wavy ? WAVY_RADIUS : RADIUS;\n const circumference = wavy ? WAVY_CIRCUMFERENCE : CIRCUMFERENCE;\n const arcs = arcsFor(percentage, circumference);\n const waving = wavy && (isIndeterminate || isWaving(percentage));\n return <svg aria-hidden=\"true\" viewBox={`0 0 ${size} ${size}`} {...stylex.props(styles.circular, styles.circularSize(diameter), isIndeterminate && styles.circularIndeterminate)}>\n {isIndeterminate ? null : <circle cx={size / 2} cy={size / 2} fill=\"none\" r={radius} strokeDasharray={arcs.track.strokeDasharray} strokeDashoffset={arcs.track.strokeDashoffset} strokeLinecap=\"round\" strokeWidth={THICKNESS} {...stylex.props(styles.arcMotion, styles.arcTrack, inherit && indicatorStyles.inheritTrack)} />}\n <circle cx={size / 2} cy={size / 2} fill=\"none\" pathLength={isIndeterminate ? 100 : undefined} r={radius} strokeDasharray={isIndeterminate ? undefined : arcs.active.strokeDasharray} strokeDashoffset={isIndeterminate ? undefined : arcs.active.strokeDashoffset} strokeLinecap=\"round\" strokeWidth={THICKNESS} {...stylex.props(isIndeterminate ? styles.arcIndeterminate : styles.arcMotion, isIndeterminate ? null : styles.arcActive, inherit && indicatorStyles.inheritActive, wavy && !isIndeterminate && styles.arcFade, waving && styles.flatUnderWave)} />\n {wavy ?\n // The wave, over the flat arc and cut by the same dashes. Measured\n // as the circle it runs round, so a length along it is a share of\n // the way round.\n <path d={RING_WAVE} fill=\"none\" pathLength={isIndeterminate ? 100 : circumference} strokeDasharray={isIndeterminate ? undefined : arcs.active.strokeDasharray} strokeLinecap=\"round\" strokeWidth={THICKNESS} {...stylex.props(isIndeterminate ? styles.arcIndeterminate : styles.arcMotion, isIndeterminate ? null : [styles.arcActive, styles.arcFade], inherit && indicatorStyles.inheritActive, styles.ringWave, !waving && styles.waveFlat)} /> : null}\n </svg>;\n}\n\n// What the indicator draws, from React Aria's render state. Built by a call\n// rather than written inline at the prop, which is what react-perf's\n// no-new-function-as-prop is after; the React Compiler memoises the result\n// on its inputs.\nfunction indicatorContent(label: ReactNode, showValue: boolean, variant: ProgressIndicatorVariant, buffer: number | undefined, minValue: number, maxValue: number, diameter: string, shape: ProgressIndicatorShape, tone: ProgressIndicatorTone) {\n return (state: ProgressBarRenderProps) => <>\n <IndicatorLabels label={label} value={showValue && !state.isIndeterminate ? state.valueText : undefined} />\n {variant === 'circular' ? <CircularTrack diameter={diameter} isIndeterminate={state.isIndeterminate} percentage={state.percentage} shape={shape} tone={tone} /> : <LinearTrack buffer={bufferShare(buffer, state.percentage, minValue, maxValue)} isIndeterminate={state.isIndeterminate} percentage={state.percentage} shape={shape} tone={tone} />}\n </>;\n}\n\n// Whether a determinate wave stands at this value — see `WAVE_FROM`.\nfunction isWaving(percentage: number | undefined) {\n const value = percentage ?? 0;\n return value > WAVE_FROM && value < WAVE_UNTIL;\n}\nfunction LinearTrack({\n buffer,\n isIndeterminate,\n percentage,\n shape,\n tone\n}: {\n buffer: number | undefined;\n isIndeterminate: boolean;\n percentage: number | undefined;\n shape: ProgressIndicatorShape;\n tone: ProgressIndicatorTone;\n}) {\n const inherit = tone === 'inherit';\n const wavy = shape === 'wavy';\n if (isIndeterminate) {\n const bars = <div className=\"xqu0tyb x1dkaolv x9f619 xh8yej3 xb3r6kr x1n2onr6 x19axjrm x1c071of\">\n <span {...stylex.props(styles.indeterminateTrack, inherit && indicatorStyles.inheritTrack)} />\n <span {...{\n 0: {\n className: \"xqu0tyb x9f619 xh8yej3 x13vifvy x10l6tqk x1nf803f xy02sl2 x1c74tu6 xa4qsjk x4hg7df x1esw782 xoia761\"\n },\n 1: {\n className: \"xqu0tyb x9f619 xh8yej3 x13vifvy x10l6tqk x1nf803f xy02sl2 x1c74tu6 xa4qsjk x4hg7df x1esw782 xoia761 xg01cxk x19xn7b2 x16dpw5u\"\n }\n }[!!wavy << 0]}>\n <span {...stylex.props(styles.indeterminateBarInner, styles.primaryBarInner, inherit && indicatorStyles.inheritActive)} />\n </span>\n <span {...{\n 0: {\n className: \"xqu0tyb x9f619 xh8yej3 x13vifvy x10l6tqk x1nf803f xy02sl2 x1c74tu6 xa4qsjk x1pdi2bj x1esw782 xnsac6p\"\n },\n 1: {\n className: \"xqu0tyb x9f619 xh8yej3 x13vifvy x10l6tqk x1nf803f xy02sl2 x1c74tu6 xa4qsjk x1pdi2bj x1esw782 xnsac6p xg01cxk x19xn7b2 x16dpw5u\"\n }\n }[!!wavy << 0]}>\n <span {...stylex.props(styles.indeterminateBarInner, styles.secondaryBarInner, inherit && indicatorStyles.inheritActive)} />\n </span>\n </div>;\n if (!wavy) {\n return bars;\n }\n return <div className=\"x6s0dn4 x170jfvy x9f619 x12h1iku x78zum5 xh8yej3 x1n2onr6\">\n {bars}\n <svg aria-hidden=\"true\" className=\"x5yr21d x9f619 x1lliihq x1r7bp8 xkio4u3 xh8yej3 x13vifvy xu96u03 xb3r6kr x47corl x10l6tqk x19axjrm x1c071of\">\n <path d={INDETERMINATE_WAVE.path} fill=\"none\" pathLength={INDETERMINATE_WAVE.extent} strokeLinecap=\"round\" strokeWidth={THICKNESS} {...stylex.props(styles.primaryWave, inherit && indicatorStyles.inheritActive)} />\n <path d={INDETERMINATE_WAVE.path} fill=\"none\" pathLength={INDETERMINATE_WAVE.extent} strokeLinecap=\"round\" strokeWidth={THICKNESS} {...stylex.props(styles.secondaryWave, inherit && indicatorStyles.inheritActive)} />\n </svg>\n </div>;\n }\n const waving = wavy && isWaving(percentage);\n const line = <IndicatorLine activeStyle={waving ? styles.activeUnderWave : wavy ? styles.activeFade : null} percentage={percentage ?? 0} tone={tone}>\n {buffer === undefined ? undefined : <>\n <span {...stylex.props(styles.trackBuffered, styles.trackBufferedAt(buffer), inherit && indicatorStyles.inheritTrack)} />\n <span {...{\n 0: {\n className: \"x114jyov xs4xyr0 xa4qsjk xwx18z9 x1esw782 x1d6qlk4 x1w3jsh0 xwj9l49 x5yr21d x9f619 x1iyjqo2 xeuugli\"\n },\n 1: {\n className: \"x114jyov xs4xyr0 xa4qsjk xwx18z9 x1esw782 x1w3jsh0 xwj9l49 x5yr21d x9f619 x1iyjqo2 xeuugli x1larodg\"\n }\n }[!!inherit << 0]} />\n </>}\n </IndicatorLine>;\n if (!wavy) {\n return line;\n }\n return <div className=\"x6s0dn4 x170jfvy x9f619 x12h1iku x78zum5 xh8yej3 x1n2onr6\">\n {line}\n <svg aria-hidden=\"true\" className=\"x5yr21d x9f619 x1lliihq x1r7bp8 xkio4u3 xh8yej3 x13vifvy xu96u03 xb3r6kr x47corl x10l6tqk x19axjrm x1c071of\">\n <path d={DETERMINATE_WAVE.path} fill=\"none\" pathLength={DETERMINATE_WAVE.extent} strokeLinecap=\"round\" strokeWidth={THICKNESS} {...stylex.props(styles.waveMotion, styles.waveAt(percentage ?? 0), !waving && styles.waveFlat, inherit && indicatorStyles.inheritActive)} />\n </svg>\n </div>;\n}\n\n// A wave along the line, `wavelength` apart and `WAVE_AMPLITUDE` either side\n// of the middle of its row, from the half stroke a round cap needs at the\n// start to past `WAVE_REACH`. Each half wave is one cubic whose control\n// points sit 4/(3π) of the way in from either end at 4/3 of the amplitude,\n// which crests at the amplitude and leaves the middle at a sine's own slope;\n// `s` mirrors the last control point, so every half wave after the first is\n// the same short command with its sign flipped. `extent` is how far it runs\n// across, which the path is measured in.\nfunction linearWave(wavelength: number) {\n const half = wavelength / 2;\n const inset = round(4 / (3 * Math.PI) * half);\n const lift = round(4 / 3 * WAVE_AMPLITUDE);\n const halves = Math.ceil(WAVE_REACH / half) + 1;\n let path = `M${THICKNESS / 2} ${WAVE_HEIGHT / 2}c${inset} ${-lift} ${round(half - inset)} ${-lift} ${half} 0`;\n for (let index = 1; index < halves; index++) {\n path += `s${round(half - inset)} ${index % 2 === 0 ? -lift : lift} ${half} 0`;\n }\n return {\n extent: halves * half,\n path\n };\n}\n\n/**\n * Progress through a task, as a line or a ring. Its value is React Aria's:\n * pass `value` between `minValue` and `maxValue`, or leave `value` out and\n * set `isIndeterminate` for work whose length is not known. `formatOptions`\n * says how the value reads, in the locale the page is in, and `buffer` marks\n * how far the work is loaded ahead of it.\n *\n * The call site's `className` and `style` land on the indicator as a whole,\n * which is the element a layout positions.\n */\nfunction ProgressIndicator({\n buffer,\n diameter,\n label,\n maxValue = 100,\n minValue = 0,\n shape = 'flat',\n showValue = false,\n tone = 'primary',\n variant = 'linear',\n ...props\n}: ProgressIndicatorProps & RefAttributes<HTMLDivElement>) {\n return <ProgressBar maxValue={maxValue} minValue={minValue} {...props} {...mergeStatefulStyles(stylex.props(indicatorStyles.root, variant === 'circular' && styles.rootCircular), props)}>\n {indicatorContent(label, showValue, variant, buffer, minValue, maxValue, diameter ?? (shape === 'wavy' ? WAVY_SIZE_PX : CIRCULAR_SIZE_PX), shape, tone)}\n </ProgressBar>;\n}\n\n// The wavy ring's path: `RING_WAVES` crests round the circle the wave runs\n// round, as 20 points to a wave, starting at three o'clock and running\n// clockwise as the circle's own dashes do.\nfunction ringWave() {\n const points = RING_WAVES * 20;\n const centre = WAVY_SIZE / 2;\n let path = '';\n for (let index = 0; index < points; index++) {\n const angle = index / points * 2 * Math.PI;\n const radius = WAVY_RADIUS + RING_AMPLITUDE * Math.sin(RING_WAVES * angle);\n path += `${index === 0 ? 'M' : 'L'}${round(centre + radius * Math.cos(angle))} ${round(centre + radius * Math.sin(angle))}`;\n }\n return `${path}Z`;\n}\n\n// Three decimal places, which keeps the paths short without moving a point\n// by anything a screen could show.\nfunction round(value: number) {\n return Math.round(value * 1000) / 1000;\n}\nexport type { ProgressIndicatorProps, ProgressIndicatorShape, ProgressIndicatorTone, ProgressIndicatorVariant };\nexport default ProgressIndicator;"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["c","_c","ReactNode","RefAttributes","ProgressBarRenderProps","ProgressBarProps","RACProgressBarProps","stylex","ProgressBar","IndicatorTone","IndicatorLabels","IndicatorLine","indicatorStyles","mergeStatefulStyles","colors","motion","radii","CIRCULAR_SIZE","CIRCULAR_SIZE_PX","THICKNESS","GAP","RADIUS","CIRCUMFERENCE","Math","PI","FORCED_COLORS","ARC_MS","CYCLE_MS","ROTATE_MS","round","RING_EASING","INDETERMINATE_MS","BUFFER_MS","LINE_SLOWDOWN","RING_SLOWDOWN","WAVE_AMPLITUDE","WAVE_WAVELENGTH","INDETERMINATE_WAVELENGTH","WAVE_HEIGHT","WAVE_REACH","DETERMINATE_EASING","WAVE_FROM","WAVE_UNTIL","WAVY_SIZE","WAVY_SIZE_PX","RING_AMPLITUDE","RING_WAVELENGTH","WAVY_RADIUS","WAVY_CIRCUMFERENCE","RING_WAVES","REDUCED_MOTION","TOO_WIDE","DETERMINATE_WAVE","linearWave","INDETERMINATE_WAVE","RING_WAVE","ringWave","primaryTranslate","primaryScale","secondaryTranslate","secondaryScale","buffering","expandArc","travelArc","spin","primaryWaveOffset","primaryWaveLength","secondaryWaveOffset","secondaryWaveLength","_temp","kZKoxP","kzqmXN","_temp2","_temp3","k5rJSQ","styles","activeFade","k1ekBW","$$css","activeUnderWave","kSiTet","arcActive","kjVXCG","arcFade","arcIndeterminate","kkDQuc","k44tkh","ko0y90","kKVMdj","kyAemX","arcMotion","k6CgDc","kIyJzY","kAMwcw","arcTrack","circular","kB7OPa","k1xSpc","k3aq6I","circularIndeterminate","circularSize","size","val","undefined","flatUnderWave","indeterminateBarInner","kWkggS","kaIpWk","kpwlN0","kVAEAm","indeterminateTrack","kjBf7l","kInvED","k3XXqK","kMeerF","primaryBarInner","primaryWave","rootCircular","kGNEyG","secondaryBarInner","secondaryWave","trackBuffered","kmuXW","trackBufferedAt","share","waveAt","percentage","waveFlat","waveMotion","ProgressIndicatorProps","buffer","className","diameter","label","shape","ProgressIndicatorShape","showValue","style","tone","ProgressIndicatorTone","variant","ProgressIndicatorVariant","Omit","Extract","arcsFor","circumference","active","track","max","strokeDasharray","strokeDashoffset","bufferShare","minValue","maxValue","value","range","buffered","remaining","min","CircularTrack","t0","$","isIndeterminate","inherit","wavy","radius","t1","arcs","t2","isWaving","waving","t3","t4","props","t5","inheritTrack","t6","t7","t8","t9","t10","t11","inheritActive","t12","t13","t14","indicatorContent","state","valueText","LinearTrack","Symbol","for","0","1","bars","t15","path","extent","t16","t17","t18","t19","line","wavelength","half","inset","lift","halves","ceil","index","ProgressIndicator","T0","root","points","centre","angle","sin","cos","_c","stylex.props","props"],"sources":["../../../src/components/progress-indicator/index.tsx"],"sourcesContent":["'use client';\n\nimport type { ReactNode, RefAttributes } from 'react';\nimport type { ProgressBarRenderProps, ProgressBarProps as RACProgressBarProps } from 'react-aria-components';\nimport * as stylex from '@stylexjs/stylex';\nimport { ProgressBar } from 'react-aria-components';\nimport type { IndicatorTone } from '../../indicator/styles';\nimport { IndicatorLabels, IndicatorLine } from '../../indicator';\nimport { indicatorStyles } from '../../indicator/styles';\nimport { mergeStatefulStyles } from '../../styles/merge';\nimport '../../tokens/design.tokens.stylex';\nimport { colors, motion, radii } from '../../tokens/design.tokens.stylex';\n\n// The progress indicators page's indicator, as a line or a ring, in either\n// of the page's two shapes, flat and wavy. Both carry the three parts the\n// page's anatomy names — the active indicator in primary, the track in\n// secondary container, and, on the line, the stop indicator in primary at\n// the end — at the page's 4dp thickness, with the 4dp gap its measurements\n// give either side of the track. The flat ring is the page's default 40dp of\n// the four sizes it draws, and the wavy ring the 48dp its wave needs room\n// for.\n//\n// The determinate line is a row of those parts: the active indicator takes\n// the value's share of what the gaps and the stop leave, and the track takes\n// the rest — see `activeAt` in src/indicator/styles.ts. The\n// determinate ring is two arcs of one circle, cut by the dash pattern: the\n// active arc runs from the top for its share of the circumference, and the\n// track picks up 4dp past it and stops 4dp before it comes back round,\n// which is the same gap measured along the curve.\n//\n// The animations are Material's own rather than something assembled from\n// the motion tokens: an indeterminate indicator is a piece of choreography,\n// and one written from scratch reads as a different component beside a\n// Material app. Material Web and Angular Material both descend from the\n// same implementation and agree on every number, so the numbers here are\n// theirs — the line's two bars and their four keyframe sets, the buffer's\n// scrolling dots, the ring's 1333ms arc, its four-arc cycle and its 1568ms\n// rotation, and the 250ms and 500ms a determinate value moves over.\n//\n// Two things are decided differently, both after reading the two of them.\n//\n// The ring is one dashed arc rather than two halves. Material Web draws it\n// as a pair of bordered half-circles, Angular as a pair of clipped SVG\n// circles with a patch over the seam between them; both constructions exist\n// to work around that split, and a single arc whose dash pattern is\n// animated needs neither and shares its geometry with the determinate ring.\n// The three effects it composes are still theirs: the arc grows and shrinks\n// over the arc's duration, its start travels the circle over four of those,\n// and the whole thing turns over the rotation's.\n//\n// Under `prefers-reduced-motion` the motion slows rather than stopping,\n// which is Angular's answer and the better one: an indicator that freezes\n// stops saying the work is going on, and a frozen arc caught at its short\n// end reads as broken. The multipliers are Angular's — two for the line,\n// and a quarter more for the ring.\n//\n// The wavy shape draws the active indicator as a wave and leaves the track\n// and the stop flat, as the page does. Its numbers are Material's own, from\n// its Compose and Android components: on the line a 3dp amplitude, a 40dp\n// wavelength and a 10dp row, with a 20dp wavelength while indeterminate; on\n// the ring a 1.6dp amplitude and a 15dp wavelength, rounded to a whole\n// number of waves so the wave closes on itself. A determinate wave lies flat\n// up to a tenth of the way and from 95% on, which is Material's rule too: a\n// wave too short to hold a crest reads as a wobble, and one about to finish\n// settles into the line it ends as.\n//\n// The wave is drawn over the flat drawing rather than in place of it, and\n// the two are crossfaded as the value crosses those bounds. The flat drawing\n// is also what a reader who has asked for reduced motion sees, since a wave\n// is motion even standing still, and what a line wider than `WAVE_REACH` is\n// drawn as. The line's wave is a path of that fixed length, cut to the value\n// by a dash written against the row's own width in container query units,\n// `100cqi`, so nothing has to measure the row before the wave can be drawn.\n//\n// React Aria's `ProgressBar` is the root: it carries the role, the value and\n// its text, and reports the percentage and whether it is indeterminate as\n// render state, which is what everything here is drawn from.\n\n// The circle the arcs are cut from. The radius is the diameter less the\n// stroke, halved, so the stroke sits inside the 40dp box rather than\n// straddling its edge.\n//\n// The thickness and the gap are the same 4dp the shared line is drawn at,\n// written again rather than imported from `src/indicator/styles`: StyleX\n// evaluates the values inside `stylex.create` and `stylex.keyframes` as it\n// compiles, and will not follow an import to a module that is not a theme\n// to reach one — an imported constant fails the transform outright.\nconst CIRCULAR_SIZE = 40;\n// The same value as a length, hoisted rather than built at the parameter.\n// The compiler has no safe reordering for a template literal, so one written\n// as a default parameter skips the whole component around it — which the\n// panic threshold this lands beside turns into a build failure.\nconst CIRCULAR_SIZE_PX = `${CIRCULAR_SIZE}px`;\nconst THICKNESS = 4;\nconst GAP = 4;\nconst RADIUS = (CIRCULAR_SIZE - THICKNESS) / 2;\nconst CIRCUMFERENCE = 2 * Math.PI * RADIUS;\n\n// Windows High Contrast and the rest of the forced-colours modes. Spelled\n// here rather than imported, for the reason src/field/styles.ts records: the\n// StyleX compiler resolves a constant across files only out of a `.stylex.ts`\n// module, and the generated one holds design tokens rather than queries.\nconst FORCED_COLORS = '@media (forced-colors: active)';\n\n// The ring's timings. The arc is 1333ms; a full cycle is four of them; and\n// the rotation is the arc scaled by 360/306, which is the arc's start\n// rotation plus the circle less the arc's size.\nconst ARC_MS = 1333;\nconst CYCLE_MS = ARC_MS * 4;\nconst ROTATE_MS = Math.round(ARC_MS * 360 / 306);\nconst RING_EASING = 'cubic-bezier(0.4, 0, 0.2, 1)';\n\n// The line's own: 2s for an indeterminate pass, and the 250ms the buffer's\n// dots take to scroll one pitch. What a determinate value moves over is the\n// shared line's, since a meter moves the same way.\nconst INDETERMINATE_MS = 2000;\nconst BUFFER_MS = 250;\n\n// What `prefers-reduced-motion` slows each shape by.\nconst LINE_SLOWDOWN = 2;\nconst RING_SLOWDOWN = 1.25;\n\n// The wavy line: the wave's amplitude either side of the middle, its two\n// wavelengths, and the row it is drawn in, which is the amplitude either side\n// plus the stroke. `WAVE_REACH` is how far the wave runs, and a row wider\n// than that draws flat. The easing is the shared line's, written again for\n// the reason the thickness is.\nconst WAVE_AMPLITUDE = 3;\nconst WAVE_WAVELENGTH = 40;\nconst INDETERMINATE_WAVELENGTH = 20;\nconst WAVE_HEIGHT = WAVE_AMPLITUDE * 2 + THICKNESS;\nconst WAVE_REACH = 2048;\nconst DETERMINATE_EASING = 'cubic-bezier(0.4, 0, 0.6, 1)';\n\n// Where a determinate wave stands up and where it lies down again, as\n// percentages of the way.\nconst WAVE_FROM = 10;\nconst WAVE_UNTIL = 95;\n\n// The wavy ring: the 48dp box, the amplitude, and the circle the wave runs\n// round, pulled in by the amplitude so its crests stay inside the box. The\n// wave count is the wavelength's share of that circle, rounded — nine.\nconst WAVY_SIZE = 48;\nconst WAVY_SIZE_PX = `${WAVY_SIZE}px`;\nconst RING_AMPLITUDE = 1.6;\nconst RING_WAVELENGTH = 15;\nconst WAVY_RADIUS = (WAVY_SIZE - THICKNESS) / 2 - RING_AMPLITUDE;\nconst WAVY_CIRCUMFERENCE = 2 * Math.PI * WAVY_RADIUS;\nconst RING_WAVES = Math.round(WAVY_CIRCUMFERENCE / RING_WAVELENGTH);\nconst REDUCED_MOTION = '@media (prefers-reduced-motion: reduce)';\nconst TOO_WIDE = `@container (inline-size > ${WAVE_REACH}px)`;\n\n// The paths the waves are drawn along, built once.\nconst DETERMINATE_WAVE = linearWave(WAVE_WAVELENGTH);\nconst INDETERMINATE_WAVE = linearWave(INDETERMINATE_WAVELENGTH);\nconst RING_WAVE = ringWave();\n\n// The two bars of the indeterminate line, translated and scaled at once.\nconst primaryTranslate = \"x1pch1fy-B\";\nconst primaryScale = \"xxyp5q1-B\";\nconst secondaryTranslate = \"xzo9tdn-B\";\nconst secondaryScale = \"x1w7bnrt-B\";\n\n// The buffer's dots scroll by one pitch of the pattern and start again.\nconst buffering = \"x19sykc1-B\";\n\n// The arc's own length, written against a path the circle normalises to 100\n// with `pathLength`, so these are percentages of the circumference rather\n// than lengths StyleX would have to work out.\n//\n// Material contracts to 10 degrees of turn and grows to 270. The 270 is 75\n// of the circumference and is written as it is; the 10 is not, because the\n// page's rounded ends change what a short dash draws. A round cap adds half\n// the stroke at each end, so a 10-degree dash on the 40dp ring is 3px of\n// path inside a 7px capsule of 4px stroke — a dot rather than the sliver\n// Material's square-cut ends give at the same angle. 8 is the shortest the\n// cap still draws as an arc, and it is the floor for that reason rather\n// than because the page names it.\nconst expandArc = \"x1t81ys1-B\";\n\n// Where the arc starts. Material turns it in eight increments of 135 degrees\n// rather than at a constant rate, each eased with the same curve the arc's\n// growth uses, so it settles at each position and springs to the next; three\n// full turns over the cycle, under the rotation's own single turn. The\n// numbers here are those angles along a path of 100: 135 degrees is 37.5 of\n// it, and 1080 degrees is 300.\nconst travelArc = \"x26nhu8-B\";\nconst spin = \"x1fy8ia8-B\";\n\n// The indeterminate line's two bars, as dashes along the wave. A bar's\n// translation is where its dash starts, so it moves the dash's offset, and\n// its scale is how long the dash is, so it moves the dash's length; both are\n// the bar keyframes above, at their times and on their curves, turned from\n// shares of the row into lengths of it. The offset is the bar's distance\n// before the row's start, which is where its keyframes put it: the primary\n// bar sits 145.167% back and travels 200.611% of the row, the secondary\n// 54.8889% back and travels 160.278%. The gap after the dash is four rows\n// long, so the dash after it never reaches the row.\nconst primaryWaveOffset = \"x1kfhhp5-B\";\nconst primaryWaveLength = \"x1yi1oyw-B\";\nconst secondaryWaveOffset = \"x18qdip-B\";\nconst secondaryWaveLength = \"x1b9nlqo-B\";\nconst _temp = {\n kZKoxP: \"xyq6l7l\",\n kzqmXN: \"x1uyokj7\",\n \"$$css\": true\n};\nconst _temp2 = {\n kzqmXN: \"x1uyokj7\",\n \"$$css\": true\n};\nconst _temp3 = {\n k5rJSQ: \"xqmdeo6\",\n \"$$css\": true\n};\nconst styles = {\n activeFade: {\n k1ekBW: \"x7x1mir\",\n $$css: true\n },\n activeUnderWave: {\n kSiTet: \"xg01cxk x19xn7b2 x16dpw5u\",\n k1ekBW: \"x7x1mir\",\n $$css: true\n },\n arcActive: {\n kjVXCG: \"x1i9vjva xbabvq0\",\n $$css: true\n },\n arcFade: {\n k1ekBW: \"x1t9qjwo\",\n $$css: true\n },\n arcIndeterminate: {\n kkDQuc: \"x12dwrod\",\n k44tkh: \"xxx5gdc\",\n ko0y90: \"x77zgwx\",\n kKVMdj: \"x14p4i3i\",\n kyAemX: \"x1582zw4\",\n kjVXCG: \"x1i9vjva xbabvq0\",\n k1ekBW: \"x13b0p5u\",\n $$css: true\n },\n arcMotion: {\n k6CgDc: \"x12w9bfk\",\n kIyJzY: \"xd6oih7\",\n k1ekBW: \"xg0bdzq\",\n kAMwcw: \"x4ognrn\",\n $$css: true\n },\n arcTrack: {\n kjVXCG: \"xynoiew x8jos32\",\n $$css: true\n },\n circular: {\n kB7OPa: \"x9f619\",\n k1xSpc: \"x1lliihq\",\n k3aq6I: \"x9tu13d\",\n $$css: true\n },\n circularIndeterminate: {\n kkDQuc: \"x7hzzi\",\n k44tkh: \"x11c9iw4\",\n ko0y90: \"xa4qsjk\",\n kKVMdj: \"xpedhrg\",\n kyAemX: \"x1esw782\",\n k3aq6I: \"x1c071of\",\n $$css: true\n },\n circularSize: (size: string) => [_temp, {\n \"--x-blockSize\": (val => typeof val === \"number\" ? val + \"px\" : val != null ? val : undefined)(size),\n \"--x-inlineSize\": (val => typeof val === \"number\" ? val + \"px\" : val != null ? val : undefined)(size)\n }],\n flatUnderWave: {\n kSiTet: \"xg01cxk x16dpw5u\",\n $$css: true\n },\n indeterminateBarInner: {\n kWkggS: \"xnety89 x1jzqe4\",\n kaIpWk: \"x1dkaolv\",\n kB7OPa: \"x9f619\",\n kpwlN0: \"x10a8y8t\",\n kVAEAm: \"x10l6tqk\",\n $$css: true\n },\n indeterminateTrack: {\n kWkggS: \"x15dekr4\",\n kaIpWk: \"x1dkaolv\",\n kpwlN0: \"x10a8y8t\",\n kjBf7l: \"x3teovq\",\n kInvED: \"xvr1dqx\",\n k3XXqK: \"x815t2r\",\n kMeerF: \"xcthrzx\",\n kVAEAm: \"x10l6tqk\",\n $$css: true\n },\n primaryBarInner: {\n kkDQuc: \"xy02sl2\",\n k44tkh: \"x1c74tu6\",\n ko0y90: \"xa4qsjk\",\n kKVMdj: \"xkj56kq\",\n kyAemX: \"x1esw782\",\n $$css: true\n },\n primaryWave: {\n k44tkh: \"xy7unhy\",\n ko0y90: \"x77zgwx\",\n kKVMdj: \"x15en9ga\",\n kyAemX: \"xlges3w\",\n kjVXCG: \"x1i9vjva xbabvq0\",\n $$css: true\n },\n ringWave: {\n k1xSpc: \"xkio4u3\",\n $$css: true\n },\n rootCircular: {\n kGNEyG: \"x1cy8zhl\",\n kzqmXN: \"x14atkfc\",\n $$css: true\n },\n secondaryBarInner: {\n kkDQuc: \"xy02sl2\",\n k44tkh: \"x1c74tu6\",\n ko0y90: \"xa4qsjk\",\n kKVMdj: \"xnb0dd2\",\n kyAemX: \"x1esw782\",\n $$css: true\n },\n secondaryWave: {\n k44tkh: \"xy7unhy\",\n ko0y90: \"x77zgwx\",\n kKVMdj: \"x1sz9pa8\",\n kyAemX: \"xlges3w\",\n kjVXCG: \"x1i9vjva xbabvq0\",\n $$css: true\n },\n trackBuffered: {\n kWkggS: \"x15dekr4\",\n kZKoxP: \"x5yr21d\",\n kB7OPa: \"x9f619\",\n kmuXW: \"x2lah0s\",\n $$css: true\n },\n trackBufferedAt: (share: number) => [_temp2, {\n \"--x-inlineSize\": (val => typeof val === \"number\" ? val + \"px\" : val != null ? val : undefined)(`${share}%`)\n }],\n waveAt: (percentage: number) => [_temp3, {\n \"--x-strokeDasharray\": `max(0px, (100cqi - ${GAP * 2 + THICKNESS}px) * ${percentage / 100} - ${THICKNESS}px) ${WAVE_REACH * 2}px` != null ? `max(0px, (100cqi - ${GAP * 2 + THICKNESS}px) * ${percentage / 100} - ${THICKNESS}px) ${WAVE_REACH * 2}px` : undefined\n }],\n waveFlat: {\n kSiTet: \"xg01cxk\",\n $$css: true\n },\n waveMotion: {\n k6CgDc: \"x12w9bfk\",\n kjVXCG: \"x1i9vjva xbabvq0\",\n kIyJzY: \"xioksi3\",\n k1ekBW: \"xvfbvx2\",\n kAMwcw: \"x16pyfke\",\n $$css: true\n }\n};\ntype ProgressIndicatorProps = {\n /**\n * How far the work is loaded ahead of the value — a video's buffered\n * seconds, a queue's fetched pages. Read on the same scale as `value`: the\n * track is solid up to it and dotted beyond. Ignored while the indicator\n * is indeterminate, and left out for work with nothing to buffer.\n */\n buffer?: number;\n /** A function may compute the class from the indicator's render state. */\n className?: RACProgressBarProps['className'];\n /**\n * How wide the ring is drawn, as a CSS length. Everything inside scales\n * with it, so `1em` gives a ring the size of the type around it. Ignored\n * by the line, which fills the width it is given.\n *\n * A length rather than a step of the size scale: a ring sized to the type\n * around it is what the prop is for, and no fixed scale gives that.\n * @default '40px', or '48px' for the wavy ring\n */\n diameter?: string;\n /**\n * What the work is, shown above the indicator. A screen reader reads it as\n * the indicator's name; an indicator whose surroundings name it takes\n * `aria-label` instead and leaves this out.\n */\n label?: ReactNode;\n /**\n * The page's two shapes. `wavy` draws the active indicator as a wave,\n * which lies flat near either end of a determinate value, and leaves the\n * track and the stop flat; the wavy ring is 48dp across rather than 40.\n * Under `prefers-reduced-motion` a wavy indicator is drawn flat.\n * @default 'flat'\n */\n shape?: ProgressIndicatorShape;\n /**\n * Whether the value is shown beside the label. Ignored while the indicator\n * is indeterminate, which has no value to show.\n * @default false\n */\n showValue?: boolean;\n /** A function may compute the style from the indicator's render state. */\n style?: RACProgressBarProps['style'];\n /**\n * Which colours it is drawn in. `primary` is the page's own pair — the\n * active indicator in primary over a secondary container track — and\n * `inherit` takes the colour around it, for an indicator inside something\n * that already has one, such as a button, where primary would be the fill.\n * @default 'primary'\n */\n tone?: ProgressIndicatorTone;\n /**\n * The line the page draws, or the ring: `linear` fills the width it is\n * given, `circular` is 40dp across.\n * @default 'linear'\n */\n variant?: ProgressIndicatorVariant;\n} & Omit<RACProgressBarProps, 'children' | 'className' | 'style'>;\ntype ProgressIndicatorShape = 'flat' | 'wavy';\n\n// The two of the shared line's four tones an indicator draws. The other two\n// say how a measurement reads, which is a meter's business rather than a\n// running task's.\ntype ProgressIndicatorTone = Extract<IndicatorTone, 'inherit' | 'primary'>;\ntype ProgressIndicatorVariant = 'circular' | 'linear';\n\n// The dashes that cut the two arcs out of one circle. The active arc runs\n// from the top for its share of the circumference; the track picks up 4dp\n// after it and stops 4dp before it comes back round, which is the page's gap\n// measured along the curve.\nfunction arcsFor(percentage: number | undefined, circumference: number) {\n const active = (percentage ?? 0) / 100 * circumference;\n const track = Math.max(0, circumference - active - 2 * GAP);\n return {\n active: {\n strokeDasharray: `${active} ${circumference}`,\n strokeDashoffset: 0\n },\n track: {\n strokeDasharray: `${track} ${circumference}`,\n strokeDashoffset: -(active + GAP)\n }\n };\n}\n\n// How much of the track the buffer covers. The buffer is read on the value's\n// scale, and the track holds what the value has not taken, so the solid part\n// is the buffer's share of that remainder.\nfunction bufferShare(buffer: number | undefined, percentage: number | undefined, minValue: number, maxValue: number) {\n if (buffer === undefined) {\n return undefined;\n }\n const value = percentage ?? 0;\n const range = maxValue - minValue;\n const buffered = range === 0 ? 0 : (buffer - minValue) / range * 100;\n const remaining = 100 - value;\n if (remaining <= 0) {\n return 0;\n }\n return Math.min(100, Math.max(0, (buffered - value) / remaining * 100));\n}\nfunction CircularTrack({\n diameter,\n isIndeterminate,\n percentage,\n shape,\n tone\n}: {\n diameter: string;\n isIndeterminate: boolean;\n percentage: number | undefined;\n shape: ProgressIndicatorShape;\n tone: ProgressIndicatorTone;\n}) {\n const inherit = tone === 'inherit';\n const wavy = shape === 'wavy';\n const size = wavy ? WAVY_SIZE : CIRCULAR_SIZE;\n const radius = wavy ? WAVY_RADIUS : RADIUS;\n const circumference = wavy ? WAVY_CIRCUMFERENCE : CIRCUMFERENCE;\n const arcs = arcsFor(percentage, circumference);\n const waving = wavy && (isIndeterminate || isWaving(percentage));\n return <svg aria-hidden=\"true\" viewBox={`0 0 ${size} ${size}`} {...stylex.props(styles.circular, styles.circularSize(diameter), isIndeterminate && styles.circularIndeterminate)}>\n {isIndeterminate ? null : <circle cx={size / 2} cy={size / 2} fill=\"none\" r={radius} strokeDasharray={arcs.track.strokeDasharray} strokeDashoffset={arcs.track.strokeDashoffset} strokeLinecap=\"round\" strokeWidth={THICKNESS} {...stylex.props(styles.arcMotion, styles.arcTrack, inherit && indicatorStyles.inheritTrack)} />}\n <circle cx={size / 2} cy={size / 2} fill=\"none\" pathLength={isIndeterminate ? 100 : undefined} r={radius} strokeDasharray={isIndeterminate ? undefined : arcs.active.strokeDasharray} strokeDashoffset={isIndeterminate ? undefined : arcs.active.strokeDashoffset} strokeLinecap=\"round\" strokeWidth={THICKNESS} {...stylex.props(isIndeterminate ? styles.arcIndeterminate : styles.arcMotion, isIndeterminate ? null : styles.arcActive, inherit && indicatorStyles.inheritActive, wavy && !isIndeterminate && styles.arcFade, waving && styles.flatUnderWave)} />\n {wavy ?\n // The wave, over the flat arc and cut by the same dashes. Measured\n // as the circle it runs round, so a length along it is a share of\n // the way round.\n <path d={RING_WAVE} fill=\"none\" pathLength={isIndeterminate ? 100 : circumference} strokeDasharray={isIndeterminate ? undefined : arcs.active.strokeDasharray} strokeLinecap=\"round\" strokeWidth={THICKNESS} {...stylex.props(isIndeterminate ? styles.arcIndeterminate : styles.arcMotion, isIndeterminate ? null : [styles.arcActive, styles.arcFade], inherit && indicatorStyles.inheritActive, styles.ringWave, !waving && styles.waveFlat)} /> : null}\n </svg>;\n}\n\n// What the indicator draws, from React Aria's render state. Built by a call\n// rather than written inline at the prop, which is what react-perf's\n// no-new-function-as-prop is after; the React Compiler memoises the result\n// on its inputs.\nfunction indicatorContent(label: ReactNode, showValue: boolean, variant: ProgressIndicatorVariant, buffer: number | undefined, minValue: number, maxValue: number, diameter: string, shape: ProgressIndicatorShape, tone: ProgressIndicatorTone) {\n return (state: ProgressBarRenderProps) => <>\n <IndicatorLabels label={label} value={showValue && !state.isIndeterminate ? state.valueText : undefined} />\n {variant === 'circular' ? <CircularTrack diameter={diameter} isIndeterminate={state.isIndeterminate} percentage={state.percentage} shape={shape} tone={tone} /> : <LinearTrack buffer={bufferShare(buffer, state.percentage, minValue, maxValue)} isIndeterminate={state.isIndeterminate} percentage={state.percentage} shape={shape} tone={tone} />}\n </>;\n}\n\n// Whether a determinate wave stands at this value — see `WAVE_FROM`.\nfunction isWaving(percentage: number | undefined) {\n const value = percentage ?? 0;\n return value > WAVE_FROM && value < WAVE_UNTIL;\n}\nfunction LinearTrack({\n buffer,\n isIndeterminate,\n percentage,\n shape,\n tone\n}: {\n buffer: number | undefined;\n isIndeterminate: boolean;\n percentage: number | undefined;\n shape: ProgressIndicatorShape;\n tone: ProgressIndicatorTone;\n}) {\n const inherit = tone === 'inherit';\n const wavy = shape === 'wavy';\n if (isIndeterminate) {\n const bars = <div className=\"xqu0tyb x1dkaolv x9f619 xh8yej3 xb3r6kr x1n2onr6 x19axjrm x1c071of\">\n <span {...stylex.props(styles.indeterminateTrack, inherit && indicatorStyles.inheritTrack)} />\n <span {...{\n 0: {\n className: \"xqu0tyb x9f619 xh8yej3 x13vifvy x10l6tqk x1nf803f xy02sl2 x1c74tu6 xa4qsjk x4hg7df x1esw782 xoia761\"\n },\n 1: {\n className: \"xqu0tyb x9f619 xh8yej3 x13vifvy x10l6tqk x1nf803f xy02sl2 x1c74tu6 xa4qsjk x4hg7df x1esw782 xoia761 xg01cxk x19xn7b2 x16dpw5u\"\n }\n }[!!wavy << 0]}>\n <span {...stylex.props(styles.indeterminateBarInner, styles.primaryBarInner, inherit && indicatorStyles.inheritActive)} />\n </span>\n <span {...{\n 0: {\n className: \"xqu0tyb x9f619 xh8yej3 x13vifvy x10l6tqk x1nf803f xy02sl2 x1c74tu6 xa4qsjk x1pdi2bj x1esw782 xnsac6p\"\n },\n 1: {\n className: \"xqu0tyb x9f619 xh8yej3 x13vifvy x10l6tqk x1nf803f xy02sl2 x1c74tu6 xa4qsjk x1pdi2bj x1esw782 xnsac6p xg01cxk x19xn7b2 x16dpw5u\"\n }\n }[!!wavy << 0]}>\n <span {...stylex.props(styles.indeterminateBarInner, styles.secondaryBarInner, inherit && indicatorStyles.inheritActive)} />\n </span>\n </div>;\n if (!wavy) {\n return bars;\n }\n return <div className=\"x6s0dn4 x170jfvy x9f619 x12h1iku x78zum5 xh8yej3 x1n2onr6\">\n {bars}\n <svg aria-hidden=\"true\" className=\"x5yr21d x9f619 x1lliihq x1r7bp8 xkio4u3 xh8yej3 x13vifvy xu96u03 xb3r6kr x47corl x10l6tqk x19axjrm x1c071of\">\n <path d={INDETERMINATE_WAVE.path} fill=\"none\" pathLength={INDETERMINATE_WAVE.extent} strokeLinecap=\"round\" strokeWidth={THICKNESS} {...stylex.props(styles.primaryWave, inherit && indicatorStyles.inheritActive)} />\n <path d={INDETERMINATE_WAVE.path} fill=\"none\" pathLength={INDETERMINATE_WAVE.extent} strokeLinecap=\"round\" strokeWidth={THICKNESS} {...stylex.props(styles.secondaryWave, inherit && indicatorStyles.inheritActive)} />\n </svg>\n </div>;\n }\n const waving = wavy && isWaving(percentage);\n const line = <IndicatorLine activeStyle={waving ? styles.activeUnderWave : wavy ? styles.activeFade : null} percentage={percentage ?? 0} tone={tone}>\n {buffer === undefined ? undefined : <>\n <span {...stylex.props(styles.trackBuffered, styles.trackBufferedAt(buffer), inherit && indicatorStyles.inheritTrack)} />\n <span {...{\n 0: {\n className: \"x114jyov xs4xyr0 xa4qsjk xwx18z9 x1esw782 x1d6qlk4 x1w3jsh0 xwj9l49 x5yr21d x9f619 x1iyjqo2 xeuugli\"\n },\n 1: {\n className: \"x114jyov xs4xyr0 xa4qsjk xwx18z9 x1esw782 x1w3jsh0 xwj9l49 x5yr21d x9f619 x1iyjqo2 xeuugli x1larodg\"\n }\n }[!!inherit << 0]} />\n </>}\n </IndicatorLine>;\n if (!wavy) {\n return line;\n }\n return <div className=\"x6s0dn4 x170jfvy x9f619 x12h1iku x78zum5 xh8yej3 x1n2onr6\">\n {line}\n <svg aria-hidden=\"true\" className=\"x5yr21d x9f619 x1lliihq x1r7bp8 xkio4u3 xh8yej3 x13vifvy xu96u03 xb3r6kr x47corl x10l6tqk x19axjrm x1c071of\">\n <path d={DETERMINATE_WAVE.path} fill=\"none\" pathLength={DETERMINATE_WAVE.extent} strokeLinecap=\"round\" strokeWidth={THICKNESS} {...stylex.props(styles.waveMotion, styles.waveAt(percentage ?? 0), !waving && styles.waveFlat, inherit && indicatorStyles.inheritActive)} />\n </svg>\n </div>;\n}\n\n// A wave along the line, `wavelength` apart and `WAVE_AMPLITUDE` either side\n// of the middle of its row, from the half stroke a round cap needs at the\n// start to past `WAVE_REACH`. Each half wave is one cubic whose control\n// points sit 4/(3π) of the way in from either end at 4/3 of the amplitude,\n// which crests at the amplitude and leaves the middle at a sine's own slope;\n// `s` mirrors the last control point, so every half wave after the first is\n// the same short command with its sign flipped. `extent` is how far it runs\n// across, which the path is measured in.\nfunction linearWave(wavelength: number) {\n const half = wavelength / 2;\n const inset = round(4 / (3 * Math.PI) * half);\n const lift = round(4 / 3 * WAVE_AMPLITUDE);\n const halves = Math.ceil(WAVE_REACH / half) + 1;\n let path = `M${THICKNESS / 2} ${WAVE_HEIGHT / 2}c${inset} ${-lift} ${round(half - inset)} ${-lift} ${half} 0`;\n for (let index = 1; index < halves; index++) {\n path += `s${round(half - inset)} ${index % 2 === 0 ? -lift : lift} ${half} 0`;\n }\n return {\n extent: halves * half,\n path\n };\n}\n\n/**\n * Progress through a task, as a line or a ring. Its value is React Aria's:\n * pass `value` between `minValue` and `maxValue`, or leave `value` out and\n * set `isIndeterminate` for work whose length is not known. `formatOptions`\n * says how the value reads, in the locale the page is in, and `buffer` marks\n * how far the work is loaded ahead of it.\n *\n * The call site's `className` and `style` land on the indicator as a whole,\n * which is the element a layout positions.\n */\nfunction ProgressIndicator({\n buffer,\n diameter,\n label,\n maxValue = 100,\n minValue = 0,\n shape = 'flat',\n showValue = false,\n tone = 'primary',\n variant = 'linear',\n ...props\n}: ProgressIndicatorProps & RefAttributes<HTMLDivElement>) {\n return <ProgressBar maxValue={maxValue} minValue={minValue} {...props} {...mergeStatefulStyles(stylex.props(indicatorStyles.root, variant === 'circular' && styles.rootCircular), props)}>\n {indicatorContent(label, showValue, variant, buffer, minValue, maxValue, diameter ?? (shape === 'wavy' ? WAVY_SIZE_PX : CIRCULAR_SIZE_PX), shape, tone)}\n </ProgressBar>;\n}\n\n// The wavy ring's path: `RING_WAVES` crests round the circle the wave runs\n// round, as 20 points to a wave, starting at three o'clock and running\n// clockwise as the circle's own dashes do.\nfunction ringWave() {\n const points = RING_WAVES * 20;\n const centre = WAVY_SIZE / 2;\n let path = '';\n for (let index = 0; index < points; index++) {\n const angle = index / points * 2 * Math.PI;\n const radius = WAVY_RADIUS + RING_AMPLITUDE * Math.sin(RING_WAVES * angle);\n path += `${index === 0 ? 'M' : 'L'}${round(centre + radius * Math.cos(angle))} ${round(centre + radius * Math.sin(angle))}`;\n }\n return `${path}Z`;\n}\n\n// Three decimal places, which keeps the paths short without moving a point\n// by anything a screen could show.\nfunction round(value: number) {\n return Math.round(value * 1000) / 1000;\n}\nexport type { ProgressIndicatorProps, ProgressIndicatorShape, ProgressIndicatorTone, ProgressIndicatorVariant };\nexport default ProgressIndicator;"],"mappings":"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"}
@@ -3,10 +3,10 @@ import { props } from "../../node_modules/@stylexjs/stylex/lib/es/stylex.js";
3
3
  import { mergeStatefulStyles } from "../../styles/merge.js";
4
4
  import { focus } from "../../styles/focus.js";
5
5
  import { useRipple } from "../../hooks/useRipple.js";
6
+ import { groupStyles } from "../../field/styles.js";
6
7
  import { controlStyles } from "../../control/styles.js";
7
- import { ControlLabel } from "../../control/index.js";
8
+ import { ControlDescription, ControlLabel } from "../../control/index.js";
8
9
  import { invalidFrom, useFieldValidationBehavior } from "../../field/root.js";
9
- import { groupStyles } from "../../field/styles.js";
10
10
  import { FieldLabel, FieldMessage } from "../../field/index.js";
11
11
  import { c } from "react/compiler-runtime";
12
12
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -22,7 +22,7 @@ const styles = {
22
22
  $$css: true
23
23
  },
24
24
  toneDisabled: {
25
- kMwMTN: "x1gpw424",
25
+ kMwMTN: "x1gpw424 x1bhcspo",
26
26
  $$css: true
27
27
  },
28
28
  toneSelected: {
@@ -113,11 +113,11 @@ function groupContent(label, children, description, error, horizontal) {
113
113
  * which is the element a layout positions.
114
114
  */
115
115
  function Radio(t0) {
116
- const $ = c(14);
117
- const { children, description, ...props$2 } = t0;
116
+ const $ = c(13);
117
+ const { children, description, ...props$1 } = t0;
118
118
  const ripple = useRipple();
119
119
  const T0 = RadioField;
120
- const t1 = mergeStatefulStyles(props(controlStyles.field), props$2);
120
+ const t1 = mergeStatefulStyles(props(controlStyles.field), props$1);
121
121
  let t2;
122
122
  if ($[0] !== children || $[1] !== ripple) {
123
123
  t2 = buttonContent(children, ripple);
@@ -135,37 +135,26 @@ function Radio(t0) {
135
135
  $[4] = t3;
136
136
  } else t3 = $[4];
137
137
  let t4;
138
- if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
139
- t4 = props(controlStyles.messages);
140
- $[5] = t4;
141
- } else t4 = $[5];
138
+ if ($[5] !== description) {
139
+ t4 = /* @__PURE__ */ jsx(ControlDescription, { children: description });
140
+ $[5] = description;
141
+ $[6] = t4;
142
+ } else t4 = $[6];
142
143
  let t5;
143
- if ($[6] !== description) {
144
- t5 = /* @__PURE__ */ jsx("div", {
145
- ...t4,
146
- children: /* @__PURE__ */ jsx(FieldMessage, {
147
- description,
148
- inset: false
149
- })
150
- });
151
- $[6] = description;
152
- $[7] = t5;
153
- } else t5 = $[7];
154
- let t6;
155
- if ($[8] !== T0 || $[9] !== props$2 || $[10] !== t1 || $[11] !== t3 || $[12] !== t5) {
156
- t6 = /* @__PURE__ */ jsxs(T0, {
157
- ...props$2,
144
+ if ($[7] !== T0 || $[8] !== props$1 || $[9] !== t1 || $[10] !== t3 || $[11] !== t4) {
145
+ t5 = /* @__PURE__ */ jsxs(T0, {
146
+ ...props$1,
158
147
  ...t1,
159
- children: [t3, t5]
148
+ children: [t3, t4]
160
149
  });
161
- $[8] = T0;
162
- $[9] = props$2;
163
- $[10] = t1;
164
- $[11] = t3;
150
+ $[7] = T0;
151
+ $[8] = props$1;
152
+ $[9] = t1;
153
+ $[10] = t3;
154
+ $[11] = t4;
165
155
  $[12] = t5;
166
- $[13] = t6;
167
- } else t6 = $[13];
168
- return t6;
156
+ } else t5 = $[12];
157
+ return t5;
169
158
  }
170
159
  /**
171
160
  * A labelled set of radio buttons with one selected value between them. The
@@ -180,7 +169,7 @@ function Radio(t0) {
180
169
  */
181
170
  function RadioGroup$1(t0) {
182
171
  const $ = c(16);
183
- const { children, description, error, label, orientation: t1, ...props$1 } = t0;
172
+ const { children, description, error, label, orientation: t1, ...props$2 } = t0;
184
173
  const orientation = t1 === void 0 ? "vertical" : t1;
185
174
  const validationBehavior = useFieldValidationBehavior();
186
175
  const T0 = RadioGroup;
@@ -190,7 +179,7 @@ function RadioGroup$1(t0) {
190
179
  $[0] = error;
191
180
  $[1] = t2;
192
181
  } else t2 = $[1];
193
- const t3 = mergeStatefulStyles(props(groupStyles.root), props$1);
182
+ const t3 = mergeStatefulStyles(props(groupStyles.root), props$2);
194
183
  const t4 = orientation === "horizontal";
195
184
  let t5;
196
185
  if ($[2] !== children || $[3] !== description || $[4] !== error || $[5] !== label || $[6] !== t4) {
@@ -203,18 +192,18 @@ function RadioGroup$1(t0) {
203
192
  $[7] = t5;
204
193
  } else t5 = $[7];
205
194
  let t6;
206
- if ($[8] !== T0 || $[9] !== orientation || $[10] !== props$1 || $[11] !== t2 || $[12] !== t3 || $[13] !== t5 || $[14] !== validationBehavior) {
195
+ if ($[8] !== T0 || $[9] !== orientation || $[10] !== props$2 || $[11] !== t2 || $[12] !== t3 || $[13] !== t5 || $[14] !== validationBehavior) {
207
196
  t6 = /* @__PURE__ */ jsx(T0, {
208
197
  isInvalid: t2,
209
198
  orientation,
210
199
  validationBehavior,
211
- ...props$1,
200
+ ...props$2,
212
201
  ...t3,
213
202
  children: t5
214
203
  });
215
204
  $[8] = T0;
216
205
  $[9] = orientation;
217
- $[10] = props$1;
206
+ $[10] = props$2;
218
207
  $[11] = t2;
219
208
  $[12] = t3;
220
209
  $[13] = t5;