@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":["FocusEvent","HTMLAttributes","ReactNode","Ref","RefAttributes","ButtonProps","GroupProps","GroupRenderProps","InputProps","InputRenderProps","LabelProps","TextAreaProps","stylex","createContext","useContext","FieldError","FieldErrorContext","Group","Input","InputContext","Label","Button","RACButton","SelectStateContext","Text","TextArea","TextAreaContext","TextContext","useLocale","useSlottedContext","VisuallyHidden","useMessages","mergeStatefulStyles","mergeStyles","useInsideForm","fieldChromeStyles","groupStyles","BoxControl","label","BoxLabel","underLabel","FieldBoxProps","children","floatingLabel","isPopulated","isRequired","leading","multiline","ref","HTMLDivElement","trailing","trigger","variant","FieldVariant","Omit","FieldInputProps","numeric","prefix","suffix","FieldLabelProps","state","Partial","FieldLabelState","FieldLabelVariant","Pick","FieldMessageProps","characterCount","characterLimitLabel","description","error","errorId","inset","maxLength","FieldTextAreaProps","autosize","FieldTriggerProps","FieldValueProps","HTMLElement","isFocused","isPlaceholder","OUTSIDE_BOX","BOX_CONTROLS","filled","fixed","floating","outlined","Record","BoxContext","boxContent","BoxContent","t0","$","_c","read","useFieldPopulated","populated","floated","isFocusWithin","t1","t2","props","outline","undefined","outlineLeading","outlineTrailing","outlineFocused","outlineNotch","outlineNotchOpen","REQUIRED_MARK","t3","isDisabled","icon","iconMultiline","iconOutlined","iconDisabled","t4","column","columnFloating","columnDisabledFloating","columnDisabled","t5","boxLabel","boxLabelFloated","boxLabelOutlined","boxLabelOutlinedFloated","t6","t7","t8","isInvalid","iconError","t9","boxStyles","box","boxFloating","boxFixed","boxMultiline","boxLeading","boxTrailing","boxOutlined","boxOutlinedFloating","boxOutlinedMultiline","boxOutlinedError","boxError","isHovered","boxOutlinedErrorHovered","boxOutlinedHovered","boxOutlinedDisabled","boxDisabled","FieldBox","T0","t10","t11","t12","FieldInput","placeholder","input","inputUnderLabel","inputUnderFloatingLabel","inputDisabled","control","Symbol","for","affixLine","affix","FieldSegments","segments","returnToStart","FieldTextArea","context","value","textArea","textAreaAutosize","autosizeCell","replica","FieldTrigger","FieldValue","hidden","valuePlaceholder","valuePlaceholderHidden","event","currentTarget","contains","relatedTarget","scrollLeft","select","selectionManager","selectedKeys","size","String","length","NO_STATE","FieldLabel","labelDisabled","labelError","labelFocused","FieldMessage","validation","invalid","locale","messages","insideForm","text","characterLimit","limit","hint","message","described","errorSlot","slots","errorMessage","messageError","messageStyles","written","messageLine","messageInset","counter","countIn","counterFormatters","Map","Intl","NumberFormat","formatter","get","set","format","_c","stylex.props","props","RACButton"],"sources":["../../src/field/index.tsx"],"sourcesContent":["import type { FocusEvent, HTMLAttributes, ReactNode, Ref, RefAttributes } from 'react';\nimport type { ButtonProps, GroupProps, GroupRenderProps, InputProps, InputRenderProps, LabelProps, TextAreaProps } from 'react-aria-components';\nimport * as stylex from '@stylexjs/stylex';\nimport { createContext, useContext } from 'react';\nimport { FieldError, FieldErrorContext, Group, Input, InputContext, Label, Button as RACButton, SelectStateContext, Text, TextArea, TextAreaContext, TextContext, useLocale, useSlottedContext, VisuallyHidden } from 'react-aria-components';\nimport { useMessages } from '../i18n';\nimport { mergeStatefulStyles, mergeStyles } from '../styles/merge';\nimport { useInsideForm } from './root';\nimport { fieldChromeStyles, groupStyles } from './styles';\n\n// The chrome every field shares: the filled box with its label at the top, the\n// control inside it, and the line of supporting text under it. TextField drew\n// all of it on its own until the coverage plan brought a dozen more fields,\n// each of which would otherwise have written the same box a second time.\n//\n// Not a component of the library's own and not exported. Each field is still\n// React Aria's field component — TextField, NumberField, DateField — and these\n// are the parts it renders inside, which is what keeps the label association,\n// the description and error wiring, and validation on React Aria's side.\n//\n// Neither the notch nor the label can select on the state that drives them.\n// Both are children of the box and the state is the box's, and the filled\n// label reads it in CSS only because it changes type alone, which the box\n// hands down inherited — where the notch changes what it holds and the\n// label changes where it sits, and neither of those inherits. So the box's\n// content computes that state in React instead: focus from the box's own\n// render state, and a value from the control's context, which is where the\n// character counter reads it too. The border's colour is the box's,\n// inherited, which is what carries the hover, focus, error and disabled\n// roles to it.\n\n// What a control needs to know about the box around it: how the label is\n// drawn, and whether the control clears it with a margin — it does under\n// the filled box's label, and not under the outlined box's, whose label\n// sits on the outline rather than over the value.\ninterface BoxControl {\n label: BoxLabel;\n underLabel: boolean;\n}\n\n// How the box draws its label, for the control inside it — see the context\n// below.\ntype BoxLabel = 'fixed' | 'floating' | 'none';\ntype FieldBoxProps = {\n children?: ReactNode;\n /**\n * Whether the label sits in the empty box and floats to the top once the\n * field is focused or holds a value, as the text fields page draws it.\n * `false` keeps it small at the top in every state.\n * @default true\n */\n floatingLabel?: boolean;\n /**\n * Whether the control is holding anything, for a field whose control the\n * chrome cannot ask. It reads an input, a text area and a select's own\n * state; a control that is none of those — a token field's editable area,\n * say — says so here, and the floating label floats on it.\n */\n isPopulated?: boolean;\n /**\n * Whether the field must be filled, which marks its label with an\n * asterisk. The field passes its own `isRequired` on, since the group the\n * box is reports none.\n * @default false\n */\n isRequired?: boolean;\n /** What the field is for. */\n label: string;\n /** An icon at the start of the box, before the label and the control. */\n leading?: ReactNode;\n /**\n * Whether the box takes its height from the control inside it rather\n * than the page's 56dp, for a text area.\n * @default false\n */\n multiline?: boolean;\n /**\n * The box's own element. A field whose box is what something else is\n * anchored to needs it — a select's list is positioned against the box and\n * takes its width from it, which is what makes the two the same width.\n */\n ref?: Ref<HTMLDivElement>;\n /** An icon at the end of the box, after the control. */\n trailing?: ReactNode;\n /**\n * A press target covering the whole box, for a field whose box opens\n * something rather than taking a keystroke — {@link FieldTrigger}. Drawn\n * in the box itself rather than in the column the label and the control\n * share, so the padding and the icons open it too.\n */\n trigger?: ReactNode;\n /**\n * The filled box, or the outlined one: no fill, an outline that thickens\n * and takes the primary role while focused, and the label cutting it once\n * it floats.\n * @default 'filled'\n */\n variant?: FieldVariant;\n} & Omit<GroupProps, 'children'>;\n\n// `prefix` is also an HTML attribute — the RDFa one, which nothing here\n// wants — and React's element types carry it as a string, so it is left out\n// of the props taken from React Aria to make room for the affix.\ntype FieldInputProps = Omit<InputProps, 'prefix'> & {\n /**\n * Renders the value in the mono face with tabular figures, for amounts and\n * other numbers meant to be compared down a column.\n * @default false\n */\n numeric?: boolean;\n /**\n * Text before the value on its line, shown while the field is focused or\n * holds a value.\n */\n prefix?: ReactNode;\n /**\n * Text after the value on its line, shown while the field is focused or\n * holds a value.\n */\n suffix?: ReactNode;\n};\ntype FieldLabelProps = LabelProps & {\n /**\n * Whether the field must be filled, which ends the label in an asterisk in\n * the label's own colour.\n * @default false\n */\n isRequired?: boolean;\n /**\n * The states the colour follows. Disabled wins over error, and error over\n * focus, so a focused invalid field keeps its error colour.\n */\n state?: Partial<FieldLabelState>;\n /**\n * Where the label sits. `field` is inside a box, positioned and typed by\n * whatever renders it. `group` is above a group of controls, which has no\n * box to float a label in, so this one carries its type itself.\n * @default 'field'\n */\n variant?: FieldLabelVariant;\n};\ntype FieldLabelState = Pick<GroupRenderProps, 'isDisabled' | 'isFocusWithin' | 'isInvalid'>;\ntype FieldLabelVariant = 'field' | 'group';\ninterface FieldMessageProps {\n /**\n * Whether to count the characters the control holds at the end of the\n * line, against `maxLength` where there is one. The count is read off the\n * field's own input or text area context, and written in the locale's\n * digits and grouping.\n * @default false\n */\n characterCount?: boolean;\n /**\n * How the limit is said to a screen reader, where there is a `maxLength`.\n * It is read with the field on focus rather than as the value changes, so\n * it names the limit and not what is left of it. Left out, it is the\n * sentence for it in the I18nProvider's locale — \"Up to 20 characters\" in\n * English, singular for a limit of one.\n */\n characterLimitLabel?: string | undefined;\n /**\n * A hint shown under the field. Replaced by `error` when there is one, so\n * the two never stack.\n */\n description?: string | undefined;\n /** The problem with the current value, in words. */\n error?: string | undefined;\n /**\n * The id the error takes, for a field that points `aria-describedby` at it\n * itself because its React Aria component generates no error id of its\n * own. Used only where the message is written out rather than slotted.\n */\n errorId?: string | undefined;\n /**\n * Whether the line is indented to a box's inline padding, so it starts\n * where a value above it does. Off for a field with no box to line up with.\n * @default true\n */\n inset?: boolean;\n /** The limit the count is shown against. */\n maxLength?: number | undefined;\n}\ntype FieldTextAreaProps = TextAreaProps & {\n /**\n * Whether the control grows with the text it holds, from the rows it asks\n * for. Off, it keeps its rows and scrolls.\n * @default false\n */\n autosize?: boolean;\n};\ntype FieldTriggerProps = ButtonProps;\ntype FieldValueProps = HTMLAttributes<HTMLElement> & {\n /**\n * Whether the field has focus. A hidden placeholder appears while it does,\n * the way an input's does.\n * @default false\n */\n isFocused?: boolean;\n /**\n * Whether nothing has been chosen yet, so what is drawn is the placeholder\n * rather than a value.\n * @default false\n */\n isPlaceholder?: boolean;\n};\ntype FieldVariant = 'filled' | 'outlined';\n\n// A control under a floating label carries a placeholder so the box can\n// tell when it is populated, shown only while focused. The default is what\n// a control rendered outside any box gets — a search bar's, which has no\n// label over it and shows its placeholder in every state. The four a box\n// provides are hoisted so each is one stable object.\nconst OUTSIDE_BOX: BoxControl = {\n label: 'none',\n underLabel: false\n};\nconst BOX_CONTROLS = {\n filled: {\n fixed: {\n label: 'fixed',\n underLabel: true\n },\n floating: {\n label: 'floating',\n underLabel: true\n }\n },\n outlined: {\n fixed: {\n label: 'fixed',\n underLabel: false\n },\n floating: {\n label: 'floating',\n underLabel: false\n }\n }\n} satisfies Record<FieldVariant, Record<'fixed' | 'floating', BoxControl>>;\nconst BoxContext = createContext<BoxControl>(OUTSIDE_BOX);\n\n// Written as calls rather than function literals at the prop, which is what\n// react-perf's no-new-function-as-prop is after; the React Compiler memoises\n// each result on its inputs.\nfunction boxContent(label: string, children: ReactNode, floatingLabel: boolean, isPopulated: boolean | undefined, isRequired: boolean, leading: ReactNode, multiline: boolean, trailing: ReactNode, trigger: ReactNode, variant: FieldVariant) {\n return (state: GroupRenderProps) => <BoxContent floatingLabel={floatingLabel} isPopulated={isPopulated} isRequired={isRequired} label={label} leading={leading} multiline={multiline} state={state} trailing={trailing} trigger={trigger} variant={variant}>\n {children}\n </BoxContent>;\n}\n\n/**\n * What a box holds: its icons, its label and the control between them, plus\n * the outline when it has one. A component rather than the render function\n * itself, so it can read whether the control holds a value — which is what\n * the outlined box's notch and label follow, and what CSS cannot express\n * for them. See the outlined variant's note above.\n */\nfunction BoxContent({\n children,\n floatingLabel,\n isPopulated,\n isRequired,\n label,\n leading,\n multiline,\n state,\n trailing,\n trigger,\n variant\n}: {\n children: ReactNode;\n floatingLabel: boolean;\n isPopulated: boolean | undefined;\n isRequired: boolean;\n label: string;\n leading: ReactNode;\n multiline: boolean;\n state: GroupRenderProps;\n trailing: ReactNode;\n trigger: ReactNode;\n variant: FieldVariant;\n}) {\n const read = useFieldPopulated();\n const populated = isPopulated ?? read;\n const outlined = variant === 'outlined';\n const floated = !floatingLabel || state.isFocusWithin || populated;\n return <BoxContext value={BOX_CONTROLS[variant][floatingLabel ? 'floating' : 'fixed']}>\n {outlined ? <fieldset aria-hidden=\"true\" {...stylex.props(fieldChromeStyles.outline, leading !== undefined && fieldChromeStyles.outlineLeading, trailing !== undefined && fieldChromeStyles.outlineTrailing, state.isFocusWithin && fieldChromeStyles.outlineFocused)}>\n <legend {...stylex.props(fieldChromeStyles.outlineNotch, floated && fieldChromeStyles.outlineNotchOpen)}>\n {floated ? <>\n {label}\n {isRequired ? REQUIRED_MARK : null}\n </> : null}\n </legend>\n </fieldset> : null}\n {trigger}\n {leading === undefined ? null : <span {...stylex.props(fieldChromeStyles.icon, multiline && fieldChromeStyles.iconMultiline, outlined && fieldChromeStyles.iconOutlined, state.isDisabled && fieldChromeStyles.iconDisabled)}>\n {leading}\n </span>}\n <div {...stylex.props(fieldChromeStyles.column, floatingLabel && fieldChromeStyles.columnFloating, state.isDisabled && (floatingLabel ? fieldChromeStyles.columnDisabledFloating : fieldChromeStyles.columnDisabled))}>\n <FieldLabel isRequired={isRequired} state={state} {...stylex.props(fieldChromeStyles.boxLabel, floatingLabel && floated && fieldChromeStyles.boxLabelFloated, outlined && fieldChromeStyles.boxLabelOutlined, outlined && floated && fieldChromeStyles.boxLabelOutlinedFloated)}>\n {label}\n </FieldLabel>\n {children}\n </div>\n {trailing === undefined ? null : <span {...stylex.props(fieldChromeStyles.icon, multiline && fieldChromeStyles.iconMultiline, outlined && fieldChromeStyles.iconOutlined, state.isInvalid && fieldChromeStyles.iconError, state.isDisabled && fieldChromeStyles.iconDisabled)}>\n {trailing}\n </span>}\n </BoxContext>;\n}\nfunction boxStyles(floatingLabel: boolean, multiline: boolean, leading: boolean, trailing: boolean, variant: FieldVariant) {\n const outlined = variant === 'outlined';\n return (state: GroupRenderProps) => stylex.props(fieldChromeStyles.box, floatingLabel ? fieldChromeStyles.boxFloating : fieldChromeStyles.boxFixed, multiline && fieldChromeStyles.boxMultiline, leading && fieldChromeStyles.boxLeading, trailing && fieldChromeStyles.boxTrailing, outlined && fieldChromeStyles.boxOutlined, outlined && floatingLabel && fieldChromeStyles.boxOutlinedFloating, outlined && multiline && fieldChromeStyles.boxOutlinedMultiline, state.isInvalid && (outlined ? fieldChromeStyles.boxOutlinedError : fieldChromeStyles.boxError), outlined && state.isHovered && (state.isInvalid ? fieldChromeStyles.boxOutlinedErrorHovered : fieldChromeStyles.boxOutlinedHovered), state.isDisabled && (outlined ? fieldChromeStyles.boxOutlinedDisabled : fieldChromeStyles.boxDisabled));\n}\n\n/**\n * The box a control sits in, filled or outlined, with its label. React\n * Aria's `Group`, so\n * the field around it hands down `isDisabled` and `isInvalid` through context\n * and the box reports focus within it as render state, which is what the\n * label's colour follows. A field that provides no group context — one built\n * on a button rather than an input — passes the two states itself.\n */\nfunction FieldBox({\n children,\n floatingLabel = true,\n isPopulated,\n isRequired = false,\n label,\n leading,\n multiline = false,\n trailing,\n trigger,\n variant = 'filled',\n ...props\n}: FieldBoxProps) {\n return <Group {...props} {...mergeStatefulStyles(boxStyles(floatingLabel, multiline, leading !== undefined, trailing !== undefined, variant), props)}>\n {boxContent(label, children, floatingLabel, isPopulated, isRequired, leading, multiline, trailing, trigger, variant)}\n </Group>;\n}\n\n/**\n * A field's text control, in a {@link FieldBox} or on its own. React Aria's\n * `Input`, which takes its label association, value and validation from the\n * field around it and reports its disabled state as render state.\n *\n * In a box it clears the label at the top, and under a floating label it\n * always carries a placeholder, since that is what the box reads to tell a\n * populated control from an empty one: its own where it was given one, a\n * blank otherwise. Outside a box it has no label over it and shows the\n * placeholder it was given in every state.\n */\nfunction FieldInput({\n numeric = false,\n placeholder,\n prefix,\n suffix,\n ...props\n}: FieldInputProps & RefAttributes<HTMLInputElement>) {\n const box = useContext(BoxContext);\n const control = <Input placeholder={placeholder ?? (box.label === 'floating' ? ' ' : undefined)} {...props} {...mergeStatefulStyles((state: InputRenderProps) => stylex.props(fieldChromeStyles.input, box.underLabel && fieldChromeStyles.inputUnderLabel, box.label === 'floating' && fieldChromeStyles.inputUnderFloatingLabel, numeric && fieldChromeStyles.numeric, state.isDisabled && fieldChromeStyles.inputDisabled), props)} />;\n if (prefix === undefined && suffix === undefined) {\n return control;\n }\n return <span {...stylex.props(fieldChromeStyles.affixLine)}>\n {prefix === undefined ? null : <span {...stylex.props(fieldChromeStyles.affix, box.underLabel && fieldChromeStyles.inputUnderLabel)}>\n {prefix}\n </span>}\n {control}\n {suffix === undefined ? null : <span {...stylex.props(fieldChromeStyles.affix, box.underLabel && fieldChromeStyles.inputUnderLabel)}>\n {suffix}\n </span>}\n </span>;\n}\n\n/**\n * A date or a time's segments, in a {@link FieldBox}: React Aria's\n * `DateInput`, or the group holding a range's two. This is what carries the\n * control's type and its place on the line, clearing the label at the top,\n * as {@link FieldValue} does for a value that was chosen.\n *\n * A typed value longer than its box behaves as an input's text does. It is\n * clipped rather than cut short, since every segment on the line is still a\n * place to type. The browser scrolls whichever segment has focus into view,\n * as it scrolls to an input's caret. And when focus leaves the segments the\n * line goes back to its start, as an input's text does on blur, so a value\n * at rest reads from its beginning rather than from wherever it was left.\n */\nfunction FieldSegments({\n children\n}: {\n children: ReactNode;\n}) {\n const box = useContext(BoxContext);\n return <span onBlur={returnToStart} {...stylex.props(fieldChromeStyles.input, fieldChromeStyles.segments, box.underLabel && fieldChromeStyles.inputUnderLabel)}>\n {children}\n </span>;\n}\n\n/**\n * A field's multi-line text control, in a {@link FieldBox} drawn `multiline`.\n * React Aria's `TextArea`, with the same label association, value and\n * validation {@link FieldInput} takes from the field around it, and the same\n * placeholder under a floating label.\n *\n * Given `autosize` it grows with its text from the rows it asks for. The\n * value it grows to fit is read off the field's context rather than\n * measured: the box holds a hidden replica of it in the control's own type,\n * in the same grid cell as the control, and the cell is as tall as whichever\n * of the two is taller.\n */\nfunction FieldTextArea({\n autosize = false,\n placeholder,\n ...props\n}: FieldTextAreaProps & RefAttributes<HTMLTextAreaElement>) {\n const box = useContext(BoxContext);\n const context = useSlottedContext(TextAreaContext);\n const value = typeof context?.value === 'string' ? context.value : '';\n const control = <TextArea placeholder={placeholder ?? (box.label === 'floating' ? ' ' : undefined)} {...props} {...mergeStatefulStyles((state: InputRenderProps) => stylex.props(fieldChromeStyles.input, box.underLabel && fieldChromeStyles.inputUnderLabel, box.label === 'floating' && fieldChromeStyles.inputUnderFloatingLabel, fieldChromeStyles.textArea, autosize && fieldChromeStyles.textAreaAutosize, autosize && fieldChromeStyles.autosizeCell, state.isDisabled && fieldChromeStyles.inputDisabled), props)} />;\n if (!autosize) {\n return control;\n }\n\n // A trailing space keeps a final line break of the value as a line of the\n // replica, which is how the control renders it.\n return <div {...stylex.props(fieldChromeStyles.autosize)}>\n {control}\n <div aria-hidden=\"true\" {...stylex.props(fieldChromeStyles.input, box.underLabel && fieldChromeStyles.inputUnderLabel, fieldChromeStyles.replica, fieldChromeStyles.autosizeCell)}>\n {value}{' '}\n </div>\n </div>;\n}\n\n/**\n * The press target over a {@link FieldBox} whose whole surface opens\n * something — a select's list, a picker's calendar. React Aria's `Button`,\n * which takes the trigger's props from the field around it through context.\n *\n * It covers the box rather than sitting on its value's line, so the box's\n * own padding opens the field too. It draws nothing: the box already carries\n * the fill, the underline and the focus indicator, and it lights up while\n * this has focus because the indicator follows focus within.\n */\nfunction FieldTrigger(props: FieldTriggerProps) {\n return <RACButton {...props} {...mergeStatefulStyles(stylex.props(fieldChromeStyles.trigger), props)} />;\n}\n\n/**\n * A field's value where it was chosen rather than typed, in a\n * {@link FieldBox}. Put React Aria's own element inside it — a select's\n * `SelectValue` — and this is what carries the input's type and its place on\n * the line, clearing the label at the top and truncating rather than\n * wrapping. A date or a time is typed, segment by segment, and takes\n * {@link FieldSegments} instead.\n *\n * The wrapper is the styled one rather than React Aria's element, because\n * this is the box's flex item: styling the element inside instead left it\n * sizing itself against a parent that had already shrink-wrapped to it.\n *\n * `isPlaceholder` says nothing has been chosen, which takes the muted role;\n * under a floating label it is hidden until the field is focused, exactly as\n * an input's placeholder is.\n */\nfunction FieldValue({\n isFocused = false,\n isPlaceholder = false,\n ...props\n}: FieldValueProps) {\n const box = useContext(BoxContext);\n const hidden = isPlaceholder && box.label === 'floating' && !isFocused;\n return <span {...props} {...mergeStyles(stylex.props(fieldChromeStyles.input, fieldChromeStyles.value, box.underLabel && fieldChromeStyles.inputUnderLabel, isPlaceholder && fieldChromeStyles.valuePlaceholder, hidden && fieldChromeStyles.valuePlaceholderHidden), props)} />;\n}\n\n// Back to the start of the line once focus has left every segment on it —\n// not while it moves from one segment to the next. The start is 0 in either\n// writing direction: a right-to-left line scrolls towards negative values.\nfunction returnToStart(event: FocusEvent<HTMLElement>) {\n if (!event.currentTarget.contains(event.relatedTarget)) {\n event.currentTarget.scrollLeft = 0;\n }\n}\nfunction useFieldPopulated() {\n const input = useSlottedContext(InputContext);\n const textArea = useSlottedContext(TextAreaContext);\n // A field whose value is chosen rather than typed holds no input at all,\n // so being populated is a question for its own state — without this a\n // select's floating label never floats, however much is chosen.\n const select = useContext(SelectStateContext);\n if (select !== null) {\n return select.selectionManager.selectedKeys.size > 0;\n }\n const value = input?.value ?? textArea?.value ?? '';\n return String(value).length > 0;\n}\n\n/**\n * Whether the control in this box is holding anything, read off React\n * Aria's context for whichever control the field renders. The filled box\n * reads the same thing in CSS through `:placeholder-shown`; this is for\n * what CSS cannot express — see the outlined variant's note above.\n */\n/**\n * A field's label: the colour alone, positioned and given its type by whatever\n * renders it. React Aria's `Label`, which the field around it associates with\n * its control through context.\n */\n// Hoisted rather than written as the parameter's default, which would be a\n// new object on every render.\nconst NO_STATE: Partial<FieldLabelState> = {};\n\n// The asterisk after a required field's label, which is how the text fields\n// page marks one, and Material Design's own web text field draws it unless\n// told not to. Hidden from assistive technology: the control already says it\n// is required, and read out as well the label would end in \"star\". It is in\n// the label rather than beside it, so it floats and takes the label's colour\n// with it — the error role once the field is invalid.\nconst REQUIRED_MARK = <span aria-hidden=\"true\">*</span>;\nfunction FieldLabel({\n children,\n isRequired = false,\n state = NO_STATE,\n variant = 'field',\n ...props\n}: FieldLabelProps) {\n const {\n isDisabled = false,\n isFocusWithin = false,\n isInvalid = false\n } = state;\n return <Label {...props} {...mergeStyles(stylex.props(fieldChromeStyles.label, variant === 'group' && groupStyles.label, isDisabled && fieldChromeStyles.labelDisabled, isInvalid && fieldChromeStyles.labelError, !isDisabled && !isInvalid && isFocusWithin && fieldChromeStyles.labelFocused), props)}>\n {children}\n {isRequired ? REQUIRED_MARK : null}\n </Label>;\n}\n\n/**\n * The line under a field: the error while there is one, the description\n * otherwise. The error goes through React Aria's `FieldError`, which renders\n * only while the field is invalid and falls back to whatever validation\n * errors the field carries when no message is given — which is how a `Form`\n * with server-side errors, or the browser's own, reaches it without any\n * field changing. The description steps aside for those too, which is what\n * the field's validation state is read for.\n */\nfunction FieldMessage({\n characterCount = false,\n characterLimitLabel,\n description,\n error,\n errorId,\n inset = true,\n maxLength\n}: FieldMessageProps) {\n const validation = useContext(FieldErrorContext);\n const invalid = error !== undefined || (validation?.isInvalid ?? false);\n const {\n locale\n } = useLocale();\n const messages = useMessages();\n const input = useSlottedContext(InputContext);\n const textArea = useSlottedContext(TextAreaContext);\n const insideForm = useInsideForm();\n // Read directly rather than through `useSlottedContext`, which throws for\n // a missing slot exactly as `Text` does — the throw is the thing being\n // avoided. What it is for is below, at `written`.\n const text = useContext(TextContext);\n\n // The limit, in words, for the description React Aria reads out with the\n // field. `maxLength` alone reaches the control as the native attribute,\n // which is not reliably announced, and the count beside the message is\n // hidden — so without this a reader is never told there is a limit.\n const limit = maxLength === undefined ? undefined : characterLimitLabel ?? messages.characterLimit(maxLength);\n const hidden = limit === undefined ? null : <VisuallyHidden elementType=\"span\">\n <Text slot=\"description\">{limit}</Text>\n </VisuallyHidden>;\n\n // Nothing to say, and nowhere a message could arrive from: the field ends\n // at its control. Inside a form the line is drawn anyway, empty, since a\n // form is where a message appears after the fact — a server's answer, or\n // the browser's own on submit — and every field below this one would\n // otherwise move by the line's height when it does.\n //\n // A limit to announce leaves on its own rather than bringing the line with\n // it. The line is one line of type plus the 4dp above it, so drawing it\n // for something nobody can see would make a field with a limit taller than\n // the same field without one.\n if (!invalid && description === undefined && !characterCount && !insideForm) {\n return hidden;\n }\n const value = input?.value ?? textArea?.value ?? '';\n const length = String(value).length;\n const hint = invalid ? undefined : description;\n\n // One slotted description, never two. React Aria hands every element in\n // its description slot the same generated id, so a second one puts a\n // duplicate id in the document and axe fails the story. The limit rides\n // inside the hint where there is one, and carries the whole slot where\n // there is not — hidden either way, since the count already draws it.\n //\n // Hidden by clipping rather than by leaving it out of the row, and the\n // difference is a gap: the row is a flex line with 16dp between its parts,\n // and an element with no width is still a part. Clipping takes it out of\n // flow, so a field with a limit and no hint has the line it had before.\n const described = hint === undefined ? hidden : <Text slot=\"description\" {...stylex.props(fieldChromeStyles.message)}>\n {hint}\n {limit === undefined ? null :\n // The space is load-bearing: a description is read as the text\n // content of one element, and two spans run together without it.\n <VisuallyHidden elementType=\"span\">{` ${limit}`}</VisuallyHidden>}\n </Text>;\n\n // Outside a field that validates there is nothing to hand React Aria's\n // `FieldError`, and it draws nothing without it — a group of chips is a\n // group rather than a form control, so the error it was given is written\n // out instead.\n //\n // Through the group's error slot where there is one, which is what makes\n // the message reach a screen reader at all: React Aria generates the id\n // its `aria-describedby` points at up front, then keeps it only while\n // something in the document carries it, so an element outside the slot is\n // drawn and never announced. The description beside it has always gone\n // through its own slot, which is why that half worked.\n //\n // Not every group has one. `TagGroup` wires up a description and an error;\n // `TokenField` wires up a description alone and generates no error id at\n // all, so the field names the message itself with `errorId` and points its\n // editable area at it — see TokenField.\n const errorSlot = text !== null && typeof text === 'object' && 'slots' in text && text.slots?.errorMessage !== undefined;\n const messageStyles = stylex.props(fieldChromeStyles.message, fieldChromeStyles.messageError);\n const written = errorSlot ? <Text slot=\"errorMessage\" {...messageStyles}>\n {error}\n </Text> : <span id={errorId} {...messageStyles}>\n {error}\n </span>;\n return <div {...stylex.props(fieldChromeStyles.message, fieldChromeStyles.messageLine, inset && fieldChromeStyles.messageInset)}>\n {validation === null && error !== undefined ? written : <FieldError {...stylex.props(fieldChromeStyles.message, fieldChromeStyles.messageError)}>\n {error}\n </FieldError>}\n {described}\n {characterCount ?\n // Hidden from the tree, and the limit above is why. A count is the\n // one piece of supporting text that changes on every keystroke, and\n // a screen reader reading it back at that rate is worse than not\n // hearing it — the limit said once on focus is what a reader needs,\n // and this is the same fact drawn for whoever is looking.\n <span aria-hidden=\"true\" {...stylex.props(fieldChromeStyles.message, fieldChromeStyles.counter, invalid && fieldChromeStyles.messageError)}>\n {countIn(locale, length, maxLength)}\n </span> : null}\n </div>;\n}\n\n// The count in the reader's digits and grouping, as React Aria writes a\n// number field's value and a meter's percentage beside it — Arabic-Indic\n// under ar-EG, `1 200` under fr-FR, and `1,200` in English. One formatter per\n// locale, for the reason Currency keeps its own: building one is about ten\n// times dearer than reusing it, and the count changes on every keystroke.\nconst counterFormatters = new Map<string, Intl.NumberFormat>();\nfunction countIn(locale: string, length: number, maxLength: number | undefined) {\n let formatter = counterFormatters.get(locale);\n if (formatter === undefined) {\n formatter = new Intl.NumberFormat(locale);\n counterFormatters.set(locale, formatter);\n }\n return maxLength === undefined ? formatter.format(length) : `${formatter.format(length)}/${formatter.format(maxLength)}`;\n}\nexport type { FieldBoxProps, FieldInputProps, FieldLabelProps, FieldLabelState, FieldLabelVariant, FieldMessageProps, FieldTextAreaProps, FieldVariant };\nexport { FieldBox, FieldInput, FieldLabel, FieldMessage, FieldSegments, FieldTextArea, FieldTrigger, FieldValue };"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["FocusEvent","HTMLAttributes","PointerEvent","ReactNode","Ref","RefAttributes","ButtonProps","GroupProps","GroupRenderProps","InputProps","InputRenderProps","LabelProps","TextAreaProps","stylex","createContext","useContext","FieldError","FieldErrorContext","Group","Input","InputContext","Label","Button","RACButton","SelectStateContext","Text","TextArea","TextAreaContext","TextContext","useLocale","useSlottedContext","VisuallyHidden","useMessages","mergeStatefulStyles","mergeStyles","useInsideForm","fieldChromeStyles","groupStyles","BoxControl","label","BoxLabel","underLabel","FieldBoxProps","children","floatingLabel","isFocused","isPopulated","isRequired","leading","multiline","ref","HTMLDivElement","trailing","trigger","variant","FieldVariant","Omit","FieldInputProps","numeric","prefix","suffix","FieldLabelProps","state","Partial","FieldLabelState","FieldLabelVariant","Pick","FieldMessageProps","characterCount","characterLimitLabel","description","error","errorId","inset","maxLength","FieldTextAreaProps","autosize","FieldTriggerProps","FieldValueProps","HTMLElement","isPlaceholder","OUTSIDE_BOX","BOX_CONTROLS","filled","fixed","floating","outlined","Record","BoxContext","boxContent","BoxContent","t0","$","_c","read","useFieldPopulated","populated","focused","isFocusWithin","floated","t1","t2","props","outline","undefined","outlineLeading","outlineTrailing","outlineFocused","outlineNotch","outlineNotchOpen","REQUIRED_MARK","t3","isDisabled","icon","iconMultiline","iconOutlined","iconDisabled","t4","column","columnFloating","columnDisabledFloating","columnDisabled","t5","withFocus","t6","boxLabel","boxLabelFloated","boxLabelOutlined","boxLabelOutlinedFloated","t7","t8","t9","isInvalid","iconError","t10","boxStyles","box","boxFloating","boxFixed","boxMultiline","boxLeading","boxTrailing","boxOutlined","boxOutlinedFloating","boxOutlinedMultiline","boxOutlinedError","boxError","isHovered","boxOutlinedErrorHovered","boxOutlinedHovered","focusedStyle","boxOutlinedDisabled","boxDisabled","FieldBox","T0","t11","t12","t13","t14","focusesControl","onPointerDown","PRESSABLE","FieldInput","placeholder","input","inputUnderLabel","inputUnderFloatingLabel","inputDisabled","control","Symbol","for","affixLine","affix","FieldSegments","segments","returnToStart","FieldTextArea","context","value","textArea","textAreaAutosize","autosizeCell","replica","FieldTrigger","FieldValue","hidden","valuePlaceholder","valuePlaceholderHidden","invalid","boxOutlinedErrorFocused","boxOutlinedFocused","boxErrorFocused","boxFocused","CONTROL","event","defaultPrevented","button","target","Element","closest","currentTarget","querySelector","matches","preventDefault","focus","contains","relatedTarget","scrollLeft","select","selectionManager","selectedKeys","size","String","length","NO_STATE","FieldLabel","labelDisabled","labelError","labelFocused","FieldMessage","validation","locale","messages","insideForm","text","characterLimit","limit","hint","message","described","errorSlot","slots","errorMessage","messageError","messageStyles","written","messageLine","messageInset","counter","countIn","counterFormatters","Map","Intl","NumberFormat","formatter","get","set","format","_c","stylex.props","props","RACButton"],"sources":["../../src/field/index.tsx"],"sourcesContent":["import type { FocusEvent, HTMLAttributes, PointerEvent, ReactNode, Ref, RefAttributes } from 'react';\nimport type { ButtonProps, GroupProps, GroupRenderProps, InputProps, InputRenderProps, LabelProps, TextAreaProps } from 'react-aria-components';\nimport * as stylex from '@stylexjs/stylex';\nimport { createContext, useContext } from 'react';\nimport { FieldError, FieldErrorContext, Group, Input, InputContext, Label, Button as RACButton, SelectStateContext, Text, TextArea, TextAreaContext, TextContext, useLocale, useSlottedContext, VisuallyHidden } from 'react-aria-components';\nimport { useMessages } from '../i18n';\nimport { mergeStatefulStyles, mergeStyles } from '../styles/merge';\nimport { useInsideForm } from './root';\nimport { fieldChromeStyles, groupStyles } from './styles';\n\n// The chrome every field shares: the filled box with its label at the top, the\n// control inside it, and the line of supporting text under it. TextField drew\n// all of it on its own until the coverage plan brought a dozen more fields,\n// each of which would otherwise have written the same box a second time.\n//\n// Not a component of the library's own and not exported. Each field is still\n// React Aria's field component — TextField, NumberField, DateField — and these\n// are the parts it renders inside, which is what keeps the label association,\n// the description and error wiring, and validation on React Aria's side.\n//\n// Neither the notch nor the label can select on the state that drives them.\n// Both are children of the box and the state is the box's, and the filled\n// label reads it in CSS only because it changes type alone, which the box\n// hands down inherited — where the notch changes what it holds and the\n// label changes where it sits, and neither of those inherits. So the box's\n// content computes that state in React instead: focus from the box's own\n// render state, and a value from the control's context, which is where the\n// character counter reads it too. The border's colour is the box's,\n// inherited, which is what carries the hover, focus, error and disabled\n// roles to it.\n\n// What a control needs to know about the box around it: how the label is\n// drawn, and whether the control clears it with a margin — it does under\n// the filled box's label, and not under the outlined box's, whose label\n// sits on the outline rather than over the value.\ninterface BoxControl {\n label: BoxLabel;\n underLabel: boolean;\n}\n\n// How the box draws its label, for the control inside it — see the context\n// below.\ntype BoxLabel = 'fixed' | 'floating' | 'none';\ntype FieldBoxProps = {\n children?: ReactNode;\n /**\n * Whether the label sits in the empty box and floats to the top once the\n * field is focused or holds a value, as the text fields page draws it.\n * `false` keeps it small at the top in every state.\n * @default true\n */\n floatingLabel?: boolean;\n /**\n * Whether the field holds focus somewhere the box cannot see, so the box\n * draws its focused state — the floated label, the focused indicator and\n * the label's colour — without focus inside it. A select's open list is\n * the case: opening it moves focus into the list, on an overlay outside\n * the box, and left to `:focus-within` the label fell back onto the\n * placeholder the select still showed.\n * @default false\n */\n isFocused?: boolean;\n /**\n * Whether the control is holding anything, for a field whose control the\n * chrome cannot ask. It reads an input, a text area and a select's own\n * state; a control that is none of those — a token field's editable area,\n * say — says so here, and the floating label floats on it.\n */\n isPopulated?: boolean;\n /**\n * Whether the field must be filled, which marks its label with an\n * asterisk. The field passes its own `isRequired` on, since the group the\n * box is reports none.\n * @default false\n */\n isRequired?: boolean;\n /** What the field is for. */\n label: string;\n /** An icon at the start of the box, before the label and the control. */\n leading?: ReactNode;\n /**\n * Whether the box takes its height from the control inside it rather\n * than the page's 56dp, for a text area.\n * @default false\n */\n multiline?: boolean;\n /**\n * The box's own element. A field whose box is what something else is\n * anchored to needs it — a select's list is positioned against the box and\n * takes its width from it, which is what makes the two the same width.\n */\n ref?: Ref<HTMLDivElement>;\n /** An icon at the end of the box, after the control. */\n trailing?: ReactNode;\n /**\n * A press target covering the whole box, for a field whose box opens\n * something rather than taking a keystroke — {@link FieldTrigger}. Drawn\n * in the box itself rather than in the column the label and the control\n * share, so the padding and the icons open it too.\n */\n trigger?: ReactNode;\n /**\n * The filled box, or the outlined one: no fill, an outline that thickens\n * and takes the primary role while focused, and the label cutting it once\n * it floats.\n * @default 'filled'\n */\n variant?: FieldVariant;\n} & Omit<GroupProps, 'children'>;\n\n// `prefix` is also an HTML attribute — the RDFa one, which nothing here\n// wants — and React's element types carry it as a string, so it is left out\n// of the props taken from React Aria to make room for the affix.\ntype FieldInputProps = Omit<InputProps, 'prefix'> & {\n /**\n * Renders the value in the mono face with tabular figures, for amounts and\n * other numbers meant to be compared down a column.\n * @default false\n */\n numeric?: boolean;\n /**\n * Text before the value on its line, shown while the field is focused or\n * holds a value.\n */\n prefix?: ReactNode;\n /**\n * Text after the value on its line, shown while the field is focused or\n * holds a value.\n */\n suffix?: ReactNode;\n};\ntype FieldLabelProps = LabelProps & {\n /**\n * Whether the field must be filled, which ends the label in an asterisk in\n * the label's own colour.\n * @default false\n */\n isRequired?: boolean;\n /**\n * The states the colour follows. Disabled wins over error, and error over\n * focus, so a focused invalid field keeps its error colour.\n */\n state?: Partial<FieldLabelState>;\n /**\n * Where the label sits. `field` is inside a box, positioned and typed by\n * whatever renders it. `group` is above a group of controls, which has no\n * box to float a label in, so this one carries its type itself.\n * @default 'field'\n */\n variant?: FieldLabelVariant;\n};\ntype FieldLabelState = Pick<GroupRenderProps, 'isDisabled' | 'isFocusWithin' | 'isInvalid'>;\ntype FieldLabelVariant = 'field' | 'group';\ninterface FieldMessageProps {\n /**\n * Whether to count the characters the control holds at the end of the\n * line, against `maxLength` where there is one. The count is read off the\n * field's own input or text area context, and written in the locale's\n * digits and grouping.\n * @default false\n */\n characterCount?: boolean;\n /**\n * How the limit is said to a screen reader, where there is a `maxLength`.\n * It is read with the field on focus rather than as the value changes, so\n * it names the limit and not what is left of it. Left out, it is the\n * sentence for it in the I18nProvider's locale — \"Up to 20 characters\" in\n * English, singular for a limit of one.\n */\n characterLimitLabel?: string | undefined;\n /**\n * A hint shown under the field. Replaced by `error` when there is one, so\n * the two never stack.\n */\n description?: string | undefined;\n /** The problem with the current value, in words. */\n error?: string | undefined;\n /**\n * The id the error takes, for a field that points `aria-describedby` at it\n * itself because its React Aria component generates no error id of its\n * own. Used only where the message is written out rather than slotted.\n */\n errorId?: string | undefined;\n /**\n * Whether the line is indented to a box's inline padding, so it starts\n * where a value above it does. Off for a field with no box to line up with.\n * @default true\n */\n inset?: boolean;\n /** The limit the count is shown against. */\n maxLength?: number | undefined;\n}\ntype FieldTextAreaProps = TextAreaProps & {\n /**\n * Whether the control grows with the text it holds, from the rows it asks\n * for. Off, it keeps its rows and scrolls.\n * @default false\n */\n autosize?: boolean;\n};\ntype FieldTriggerProps = ButtonProps;\ntype FieldValueProps = HTMLAttributes<HTMLElement> & {\n /**\n * Whether the field has focus. A hidden placeholder appears while it does,\n * the way an input's does.\n * @default false\n */\n isFocused?: boolean;\n /**\n * Whether nothing has been chosen yet, so what is drawn is the placeholder\n * rather than a value.\n * @default false\n */\n isPlaceholder?: boolean;\n};\ntype FieldVariant = 'filled' | 'outlined';\n\n// A control under a floating label carries a placeholder so the box can\n// tell when it is populated, shown only while focused. The default is what\n// a control rendered outside any box gets — a search bar's, which has no\n// label over it and shows its placeholder in every state. The four a box\n// provides are hoisted so each is one stable object.\nconst OUTSIDE_BOX: BoxControl = {\n label: 'none',\n underLabel: false\n};\nconst BOX_CONTROLS = {\n filled: {\n fixed: {\n label: 'fixed',\n underLabel: true\n },\n floating: {\n label: 'floating',\n underLabel: true\n }\n },\n outlined: {\n fixed: {\n label: 'fixed',\n underLabel: false\n },\n floating: {\n label: 'floating',\n underLabel: false\n }\n }\n} satisfies Record<FieldVariant, Record<'fixed' | 'floating', BoxControl>>;\nconst BoxContext = createContext<BoxControl>(OUTSIDE_BOX);\n\n// Written as calls rather than function literals at the prop, which is what\n// react-perf's no-new-function-as-prop is after; the React Compiler memoises\n// each result on its inputs.\nfunction boxContent(label: string, children: ReactNode, floatingLabel: boolean, isFocused: boolean, isPopulated: boolean | undefined, isRequired: boolean, leading: ReactNode, multiline: boolean, trailing: ReactNode, trigger: ReactNode, variant: FieldVariant) {\n return (state: GroupRenderProps) => <BoxContent floatingLabel={floatingLabel} isFocused={isFocused} isPopulated={isPopulated} isRequired={isRequired} label={label} leading={leading} multiline={multiline} state={state} trailing={trailing} trigger={trigger} variant={variant}>\n {children}\n </BoxContent>;\n}\n\n/**\n * What a box holds: its icons, its label and the control between them, plus\n * the outline when it has one. A component rather than the render function\n * itself, so it can read whether the control holds a value — which is what\n * the outlined box's notch and label follow, and what CSS cannot express\n * for them. See the outlined variant's note above.\n */\nfunction BoxContent({\n children,\n floatingLabel,\n isFocused,\n isPopulated,\n isRequired,\n label,\n leading,\n multiline,\n state,\n trailing,\n trigger,\n variant\n}: {\n children: ReactNode;\n floatingLabel: boolean;\n isFocused: boolean;\n isPopulated: boolean | undefined;\n isRequired: boolean;\n label: string;\n leading: ReactNode;\n multiline: boolean;\n state: GroupRenderProps;\n trailing: ReactNode;\n trigger: ReactNode;\n variant: FieldVariant;\n}) {\n const read = useFieldPopulated();\n const populated = isPopulated ?? read;\n const outlined = variant === 'outlined';\n const focused = state.isFocusWithin || isFocused;\n const floated = !floatingLabel || focused || populated;\n return <BoxContext value={BOX_CONTROLS[variant][floatingLabel ? 'floating' : 'fixed']}>\n {outlined ? <fieldset aria-hidden=\"true\" {...stylex.props(fieldChromeStyles.outline, leading !== undefined && fieldChromeStyles.outlineLeading, trailing !== undefined && fieldChromeStyles.outlineTrailing, focused && fieldChromeStyles.outlineFocused)}>\n <legend {...stylex.props(fieldChromeStyles.outlineNotch, floated && fieldChromeStyles.outlineNotchOpen)}>\n {floated ? <>\n {label}\n {isRequired ? REQUIRED_MARK : null}\n </> : null}\n </legend>\n </fieldset> : null}\n {trigger}\n {leading === undefined ? null : <span {...stylex.props(fieldChromeStyles.icon, multiline && fieldChromeStyles.iconMultiline, outlined && fieldChromeStyles.iconOutlined, state.isDisabled && fieldChromeStyles.iconDisabled)}>\n {leading}\n </span>}\n <div {...stylex.props(fieldChromeStyles.column, floatingLabel && fieldChromeStyles.columnFloating, state.isDisabled && (floatingLabel ? fieldChromeStyles.columnDisabledFloating : fieldChromeStyles.columnDisabled))}>\n <FieldLabel isRequired={isRequired} state={withFocus(state, focused)} {...stylex.props(fieldChromeStyles.boxLabel, floatingLabel && floated && fieldChromeStyles.boxLabelFloated, outlined && fieldChromeStyles.boxLabelOutlined, outlined && floated && fieldChromeStyles.boxLabelOutlinedFloated)}>\n {label}\n </FieldLabel>\n {children}\n </div>\n {trailing === undefined ? null : <span {...stylex.props(fieldChromeStyles.icon, multiline && fieldChromeStyles.iconMultiline, outlined && fieldChromeStyles.iconOutlined, state.isInvalid && fieldChromeStyles.iconError, state.isDisabled && fieldChromeStyles.iconDisabled)}>\n {trailing}\n </span>}\n </BoxContext>;\n}\nfunction boxStyles(floatingLabel: boolean, isFocused: boolean, multiline: boolean, leading: boolean, trailing: boolean, variant: FieldVariant) {\n const outlined = variant === 'outlined';\n return (state: GroupRenderProps) => stylex.props(fieldChromeStyles.box, floatingLabel ? fieldChromeStyles.boxFloating : fieldChromeStyles.boxFixed, multiline && fieldChromeStyles.boxMultiline, leading && fieldChromeStyles.boxLeading, trailing && fieldChromeStyles.boxTrailing, outlined && fieldChromeStyles.boxOutlined, outlined && floatingLabel && fieldChromeStyles.boxOutlinedFloating, outlined && multiline && fieldChromeStyles.boxOutlinedMultiline, state.isInvalid && (outlined ? fieldChromeStyles.boxOutlinedError : fieldChromeStyles.boxError), outlined && state.isHovered && (state.isInvalid ? fieldChromeStyles.boxOutlinedErrorHovered : fieldChromeStyles.boxOutlinedHovered), isFocused && focusedStyle(outlined, state.isInvalid), state.isDisabled && (outlined ? fieldChromeStyles.boxOutlinedDisabled : fieldChromeStyles.boxDisabled));\n}\n\n/**\n * The box a control sits in, filled or outlined, with its label. React\n * Aria's `Group`, so\n * the field around it hands down `isDisabled` and `isInvalid` through context\n * and the box reports focus within it as render state, which is what the\n * label's colour follows. A field that provides no group context — one built\n * on a button rather than an input — passes the two states itself.\n */\nfunction FieldBox({\n children,\n floatingLabel = true,\n isFocused = false,\n isPopulated,\n isRequired = false,\n label,\n leading,\n multiline = false,\n trailing,\n trigger,\n variant = 'filled',\n ...props\n}: FieldBoxProps) {\n return <Group {...props}\n // A box with a press target of its own has it covering the box, so it\n // is only a box without one that answers a press itself.\n onPointerDown={trigger === undefined ? focusesControl(props.onPointerDown) : props.onPointerDown} {...mergeStatefulStyles(boxStyles(floatingLabel, isFocused, multiline, leading !== undefined, trailing !== undefined, variant), props)}>\n {boxContent(label, children, floatingLabel, isFocused, isPopulated, isRequired, leading, multiline, trailing, trigger, variant)}\n </Group>;\n}\n\n// What a press inside a box leaves to the element it lands on: anything that\n// acts on a press of its own, and the control itself, where the browser\n// places the caret.\nconst PRESSABLE = 'a, button, input, textarea, select, [role=\"button\"], [contenteditable=\"true\"]';\n\n/**\n * A field's text control, in a {@link FieldBox} or on its own. React Aria's\n * `Input`, which takes its label association, value and validation from the\n * field around it and reports its disabled state as render state.\n *\n * In a box it clears the label at the top, and under a floating label it\n * always carries a placeholder, since that is what the box reads to tell a\n * populated control from an empty one: its own where it was given one, a\n * blank otherwise. Outside a box it has no label over it and shows the\n * placeholder it was given in every state.\n */\nfunction FieldInput({\n numeric = false,\n placeholder,\n prefix,\n suffix,\n ...props\n}: FieldInputProps & RefAttributes<HTMLInputElement>) {\n const box = useContext(BoxContext);\n const control = <Input placeholder={placeholder ?? (box.label === 'floating' ? ' ' : undefined)} {...props} {...mergeStatefulStyles((state: InputRenderProps) => stylex.props(fieldChromeStyles.input, box.underLabel && fieldChromeStyles.inputUnderLabel, box.label === 'floating' && fieldChromeStyles.inputUnderFloatingLabel, numeric && fieldChromeStyles.numeric, state.isDisabled && fieldChromeStyles.inputDisabled), props)} />;\n if (prefix === undefined && suffix === undefined) {\n return control;\n }\n return <span {...stylex.props(fieldChromeStyles.affixLine)}>\n {prefix === undefined ? null : <span {...stylex.props(fieldChromeStyles.affix, box.underLabel && fieldChromeStyles.inputUnderLabel)}>\n {prefix}\n </span>}\n {control}\n {suffix === undefined ? null : <span {...stylex.props(fieldChromeStyles.affix, box.underLabel && fieldChromeStyles.inputUnderLabel)}>\n {suffix}\n </span>}\n </span>;\n}\n\n/**\n * A date or a time's segments, in a {@link FieldBox}: React Aria's\n * `DateInput`, or the group holding a range's two. This is what carries the\n * control's type and its place on the line, clearing the label at the top,\n * as {@link FieldValue} does for a value that was chosen.\n *\n * A typed value longer than its box behaves as an input's text does. It is\n * clipped rather than cut short, since every segment on the line is still a\n * place to type. The browser scrolls whichever segment has focus into view,\n * as it scrolls to an input's caret. And when focus leaves the segments the\n * line goes back to its start, as an input's text does on blur, so a value\n * at rest reads from its beginning rather than from wherever it was left.\n */\nfunction FieldSegments({\n children\n}: {\n children: ReactNode;\n}) {\n const box = useContext(BoxContext);\n return <span onBlur={returnToStart} {...stylex.props(fieldChromeStyles.input, fieldChromeStyles.segments, box.underLabel && fieldChromeStyles.inputUnderLabel)}>\n {children}\n </span>;\n}\n\n/**\n * A field's multi-line text control, in a {@link FieldBox} drawn `multiline`.\n * React Aria's `TextArea`, with the same label association, value and\n * validation {@link FieldInput} takes from the field around it, and the same\n * placeholder under a floating label.\n *\n * Given `autosize` it grows with its text from the rows it asks for. The\n * value it grows to fit is read off the field's context rather than\n * measured: the box holds a hidden replica of it in the control's own type,\n * in the same grid cell as the control, and the cell is as tall as whichever\n * of the two is taller.\n */\nfunction FieldTextArea({\n autosize = false,\n placeholder,\n ...props\n}: FieldTextAreaProps & RefAttributes<HTMLTextAreaElement>) {\n const box = useContext(BoxContext);\n const context = useSlottedContext(TextAreaContext);\n const value = typeof context?.value === 'string' ? context.value : '';\n const control = <TextArea placeholder={placeholder ?? (box.label === 'floating' ? ' ' : undefined)} {...props} {...mergeStatefulStyles((state: InputRenderProps) => stylex.props(fieldChromeStyles.input, box.underLabel && fieldChromeStyles.inputUnderLabel, box.label === 'floating' && fieldChromeStyles.inputUnderFloatingLabel, fieldChromeStyles.textArea, autosize && fieldChromeStyles.textAreaAutosize, autosize && fieldChromeStyles.autosizeCell, state.isDisabled && fieldChromeStyles.inputDisabled), props)} />;\n if (!autosize) {\n return control;\n }\n\n // A trailing space keeps a final line break of the value as a line of the\n // replica, which is how the control renders it.\n return <div {...stylex.props(fieldChromeStyles.autosize)}>\n {control}\n <div aria-hidden=\"true\" {...stylex.props(fieldChromeStyles.input, box.underLabel && fieldChromeStyles.inputUnderLabel, fieldChromeStyles.replica, fieldChromeStyles.autosizeCell)}>\n {value}{' '}\n </div>\n </div>;\n}\n\n/**\n * The press target over a {@link FieldBox} whose whole surface opens\n * something — a select's list, a picker's calendar. React Aria's `Button`,\n * which takes the trigger's props from the field around it through context.\n *\n * It covers the box rather than sitting on its value's line, so the box's\n * own padding opens the field too. It draws nothing: the box already carries\n * the fill, the underline and the focus indicator, and it lights up while\n * this has focus because the indicator follows focus within.\n */\nfunction FieldTrigger(props: FieldTriggerProps) {\n return <RACButton {...props} {...mergeStatefulStyles(stylex.props(fieldChromeStyles.trigger), props)} />;\n}\n\n/**\n * A field's value where it was chosen rather than typed, in a\n * {@link FieldBox}. Put React Aria's own element inside it — a select's\n * `SelectValue` — and this is what carries the input's type and its place on\n * the line, clearing the label at the top and truncating rather than\n * wrapping. A date or a time is typed, segment by segment, and takes\n * {@link FieldSegments} instead.\n *\n * The wrapper is the styled one rather than React Aria's element, because\n * this is the box's flex item: styling the element inside instead left it\n * sizing itself against a parent that had already shrink-wrapped to it.\n *\n * `isPlaceholder` says nothing has been chosen, which takes the muted role;\n * under a floating label it is hidden until the field is focused, exactly as\n * an input's placeholder is.\n */\nfunction FieldValue({\n isFocused = false,\n isPlaceholder = false,\n ...props\n}: FieldValueProps) {\n const box = useContext(BoxContext);\n const hidden = isPlaceholder && box.label === 'floating' && !isFocused;\n return <span {...props} {...mergeStyles(stylex.props(fieldChromeStyles.input, fieldChromeStyles.value, box.underLabel && fieldChromeStyles.inputUnderLabel, isPlaceholder && fieldChromeStyles.valuePlaceholder, hidden && fieldChromeStyles.valuePlaceholderHidden), props)} />;\n}\n\n// What `:focus-within` draws on the box, for a box told it is focused — see\n// `isFocused`. The error's own colour wins over primary, as it does there.\nfunction focusedStyle(outlined: boolean, invalid: boolean) {\n if (outlined) {\n return invalid ? fieldChromeStyles.boxOutlinedErrorFocused : fieldChromeStyles.boxOutlinedFocused;\n }\n return invalid ? fieldChromeStyles.boxErrorFocused : fieldChromeStyles.boxFocused;\n}\n\n// What a press on the box focuses: the field's text control, or the first\n// editable element where the control is not an input — a token field's\n// editable area, a date field's first segment. Never the hidden input a\n// segmented field carries its value to a form in.\nconst CONTROL = 'input:not([type=\"hidden\"]), textarea, [contenteditable=\"true\"]';\n\n/**\n * The box's press handler: a press anywhere on the box focuses the control\n * in it, as the whole of a native text field's box does. The box is 56dp\n * and the control's line 24dp of it, so the padding above and below the\n * line, the padding at either end and the icons were dead to a press —\n * nothing took focus, and nothing said why. Built by a call rather than\n * written at the prop, which is what react-perf's no-new-function-as-prop is\n * after; the React Compiler memoises it on the call site's own handler,\n * which runs first.\n */\nfunction focusesControl(onPointerDown: ((event: PointerEvent<HTMLDivElement>) => void) | undefined) {\n return (event: PointerEvent<HTMLDivElement>) => {\n onPointerDown?.(event);\n if (event.defaultPrevented || event.button !== 0 || !(event.target instanceof Element) || event.target.closest(PRESSABLE) !== null) {\n return;\n }\n const control = event.currentTarget.querySelector<HTMLElement>(CONTROL);\n if (control === null || control.matches(':disabled')) {\n return;\n }\n // Held, so the press does not move focus to the page on its way down\n // and away from the control the line below hands it to.\n event.preventDefault();\n control.focus();\n };\n}\n\n// Back to the start of the line once focus has left every segment on it —\n// not while it moves from one segment to the next. The start is 0 in either\n// writing direction: a right-to-left line scrolls towards negative values.\nfunction returnToStart(event: FocusEvent<HTMLElement>) {\n if (!event.currentTarget.contains(event.relatedTarget)) {\n event.currentTarget.scrollLeft = 0;\n }\n}\nfunction useFieldPopulated() {\n const input = useSlottedContext(InputContext);\n const textArea = useSlottedContext(TextAreaContext);\n // A field whose value is chosen rather than typed holds no input at all,\n // so being populated is a question for its own state — without this a\n // select's floating label never floats, however much is chosen.\n const select = useContext(SelectStateContext);\n if (select !== null) {\n return select.selectionManager.selectedKeys.size > 0;\n }\n const value = input?.value ?? textArea?.value ?? '';\n return String(value).length > 0;\n}\n\n// The box's render state with focus as the box draws it, for its label,\n// whose colour follows focus. Built by a call rather than written at the\n// prop, which is what react-perf's no-new-object-as-prop is after.\nfunction withFocus(state: GroupRenderProps, focused: boolean) {\n return focused === state.isFocusWithin ? state : {\n ...state,\n isFocusWithin: focused\n };\n}\n\n/**\n * Whether the control in this box is holding anything, read off React\n * Aria's context for whichever control the field renders. The filled box\n * reads the same thing in CSS through `:placeholder-shown`; this is for\n * what CSS cannot express — see the outlined variant's note above.\n */\n/**\n * A field's label: the colour alone, positioned and given its type by whatever\n * renders it. React Aria's `Label`, which the field around it associates with\n * its control through context.\n */\n// Hoisted rather than written as the parameter's default, which would be a\n// new object on every render.\nconst NO_STATE: Partial<FieldLabelState> = {};\n\n// The asterisk after a required field's label, which is how the text fields\n// page marks one, and Material Design's own web text field draws it unless\n// told not to. Hidden from assistive technology: the control already says it\n// is required, and read out as well the label would end in \"star\". It is in\n// the label rather than beside it, so it floats and takes the label's colour\n// with it — the error role once the field is invalid.\nconst REQUIRED_MARK = <span aria-hidden=\"true\">*</span>;\nfunction FieldLabel({\n children,\n isRequired = false,\n state = NO_STATE,\n variant = 'field',\n ...props\n}: FieldLabelProps) {\n const {\n isDisabled = false,\n isFocusWithin = false,\n isInvalid = false\n } = state;\n return <Label {...props} {...mergeStyles(stylex.props(fieldChromeStyles.label, variant === 'group' && groupStyles.label, isDisabled && fieldChromeStyles.labelDisabled, isInvalid && fieldChromeStyles.labelError, !isDisabled && !isInvalid && isFocusWithin && fieldChromeStyles.labelFocused), props)}>\n {children}\n {isRequired ? REQUIRED_MARK : null}\n </Label>;\n}\n\n/**\n * The line under a field: the error while there is one, the description\n * otherwise. The error goes through React Aria's `FieldError`, which renders\n * only while the field is invalid and falls back to whatever validation\n * errors the field carries when no message is given — which is how a `Form`\n * with server-side errors, or the browser's own, reaches it without any\n * field changing. The description steps aside for those too, which is what\n * the field's validation state is read for.\n */\nfunction FieldMessage({\n characterCount = false,\n characterLimitLabel,\n description,\n error,\n errorId,\n inset = true,\n maxLength\n}: FieldMessageProps) {\n const validation = useContext(FieldErrorContext);\n const invalid = error !== undefined || (validation?.isInvalid ?? false);\n const {\n locale\n } = useLocale();\n const messages = useMessages();\n const input = useSlottedContext(InputContext);\n const textArea = useSlottedContext(TextAreaContext);\n const insideForm = useInsideForm();\n // Read directly rather than through `useSlottedContext`, which throws for\n // a missing slot exactly as `Text` does — the throw is the thing being\n // avoided. What it is for is below, at `written`.\n const text = useContext(TextContext);\n\n // The limit, in words, for the description React Aria reads out with the\n // field. `maxLength` alone reaches the control as the native attribute,\n // which is not reliably announced, and the count beside the message is\n // hidden — so without this a reader is never told there is a limit.\n const limit = maxLength === undefined ? undefined : characterLimitLabel ?? messages.characterLimit(maxLength);\n const hidden = limit === undefined ? null : <VisuallyHidden elementType=\"span\">\n <Text slot=\"description\">{limit}</Text>\n </VisuallyHidden>;\n\n // Nothing to say, and nowhere a message could arrive from: the field ends\n // at its control. Inside a form the line is drawn anyway, empty, since a\n // form is where a message appears after the fact — a server's answer, or\n // the browser's own on submit — and every field below this one would\n // otherwise move by the line's height when it does.\n //\n // A limit to announce leaves on its own rather than bringing the line with\n // it. The line is one line of type plus the 4dp above it, so drawing it\n // for something nobody can see would make a field with a limit taller than\n // the same field without one.\n if (!invalid && description === undefined && !characterCount && !insideForm) {\n return hidden;\n }\n const value = input?.value ?? textArea?.value ?? '';\n const length = String(value).length;\n const hint = invalid ? undefined : description;\n\n // One slotted description, never two. React Aria hands every element in\n // its description slot the same generated id, so a second one puts a\n // duplicate id in the document and axe fails the story. The limit rides\n // inside the hint where there is one, and carries the whole slot where\n // there is not — hidden either way, since the count already draws it.\n //\n // Hidden by clipping rather than by leaving it out of the row, and the\n // difference is a gap: the row is a flex line with 16dp between its parts,\n // and an element with no width is still a part. Clipping takes it out of\n // flow, so a field with a limit and no hint has the line it had before.\n const described = hint === undefined ? hidden : <Text slot=\"description\" {...stylex.props(fieldChromeStyles.message)}>\n {hint}\n {limit === undefined ? null :\n // The space is load-bearing: a description is read as the text\n // content of one element, and two spans run together without it.\n <VisuallyHidden elementType=\"span\">{` ${limit}`}</VisuallyHidden>}\n </Text>;\n\n // Outside a field that validates there is nothing to hand React Aria's\n // `FieldError`, and it draws nothing without it — a group of chips is a\n // group rather than a form control, so the error it was given is written\n // out instead.\n //\n // Through the group's error slot where there is one, which is what makes\n // the message reach a screen reader at all: React Aria generates the id\n // its `aria-describedby` points at up front, then keeps it only while\n // something in the document carries it, so an element outside the slot is\n // drawn and never announced. The description beside it has always gone\n // through its own slot, which is why that half worked.\n //\n // Not every group has one. `TagGroup` wires up a description and an error;\n // `TokenField` wires up a description alone and generates no error id at\n // all, so the field names the message itself with `errorId` and points its\n // editable area at it — see TokenField.\n const errorSlot = text !== null && typeof text === 'object' && 'slots' in text && text.slots?.errorMessage !== undefined;\n const messageStyles = stylex.props(fieldChromeStyles.message, fieldChromeStyles.messageError);\n const written = errorSlot ? <Text slot=\"errorMessage\" {...messageStyles}>\n {error}\n </Text> : <span id={errorId} {...messageStyles}>\n {error}\n </span>;\n return <div {...stylex.props(fieldChromeStyles.message, fieldChromeStyles.messageLine, inset && fieldChromeStyles.messageInset)}>\n {validation === null && error !== undefined ? written : <FieldError {...stylex.props(fieldChromeStyles.message, fieldChromeStyles.messageError)}>\n {error}\n </FieldError>}\n {described}\n {characterCount ?\n // Hidden from the tree, and the limit above is why. A count is the\n // one piece of supporting text that changes on every keystroke, and\n // a screen reader reading it back at that rate is worse than not\n // hearing it — the limit said once on focus is what a reader needs,\n // and this is the same fact drawn for whoever is looking.\n <span aria-hidden=\"true\" {...stylex.props(fieldChromeStyles.message, fieldChromeStyles.counter, invalid && fieldChromeStyles.messageError)}>\n {countIn(locale, length, maxLength)}\n </span> : null}\n </div>;\n}\n\n// The count in the reader's digits and grouping, as React Aria writes a\n// number field's value and a meter's percentage beside it — Arabic-Indic\n// under ar-EG, `1 200` under fr-FR, and `1,200` in English. One formatter per\n// locale, for the reason Currency keeps its own: building one is about ten\n// times dearer than reusing it, and the count changes on every keystroke.\nconst counterFormatters = new Map<string, Intl.NumberFormat>();\nfunction countIn(locale: string, length: number, maxLength: number | undefined) {\n let formatter = counterFormatters.get(locale);\n if (formatter === undefined) {\n formatter = new Intl.NumberFormat(locale);\n counterFormatters.set(locale, formatter);\n }\n return maxLength === undefined ? formatter.format(length) : `${formatter.format(length)}/${formatter.format(maxLength)}`;\n}\nexport type { FieldBoxProps, FieldInputProps, FieldLabelProps, FieldLabelState, FieldLabelVariant, FieldMessageProps, FieldTextAreaProps, FieldVariant };\nexport { FieldBox, FieldInput, FieldLabel, FieldMessage, FieldSegments, FieldTextArea, FieldTrigger, FieldValue };"],"mappings":"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"}
@@ -44,6 +44,7 @@ const fieldChromeStyles = {
44
44
  krdFHd: "xzcck0f",
45
45
  kGVxlE: "x89kqus x18rfq6m",
46
46
  kB7OPa: "x9f619",
47
+ kkrTdU: "x1ed109x",
47
48
  k1xSpc: "x78zum5",
48
49
  kOIVth: "xxj4525",
49
50
  kjBf7l: "x1x84bn5",
@@ -63,12 +64,18 @@ const fieldChromeStyles = {
63
64
  kWkggS: "xepofeg",
64
65
  kL6WhQ: "x1fxan2a",
65
66
  kGVxlE: "x1pqbjc1",
67
+ kkrTdU: "xt0e3qv",
66
68
  $$css: true
67
69
  },
68
70
  boxError: {
69
71
  kGVxlE: "x1lxxh4i x1d6xoej",
70
72
  $$css: true
71
73
  },
74
+ boxErrorFocused: {
75
+ kGVxlE: "xb0slzl",
76
+ k3XXqK: "x815t2r",
77
+ $$css: true
78
+ },
72
79
  boxFixed: {
73
80
  kMv6JI: "xp6n8n2",
74
81
  kGuDYH: "xkucv67",
@@ -85,6 +92,11 @@ const fieldChromeStyles = {
85
92
  kLWn49: "xsv50tp x1f5c3pk x1mv3dpe",
86
93
  $$css: true
87
94
  },
95
+ boxFocused: {
96
+ kGVxlE: "xra6ydt",
97
+ k3XXqK: "x815t2r",
98
+ $$css: true
99
+ },
88
100
  boxLabel: {
89
101
  kB7OPa: "x9f619",
90
102
  k87sOh: "x13vifvy",
@@ -141,12 +153,18 @@ const fieldChromeStyles = {
141
153
  kWkggS: "xjbqb8w",
142
154
  kGVxlE: "x1gnnqk1",
143
155
  kMwMTN: "x1ldq0ta x1bhcspo",
156
+ kkrTdU: "xt0e3qv",
144
157
  $$css: true
145
158
  },
146
159
  boxOutlinedError: {
147
160
  kMwMTN: "x4ii1qj",
148
161
  $$css: true
149
162
  },
163
+ boxOutlinedErrorFocused: {
164
+ kMwMTN: "x4ii1qj",
165
+ k3XXqK: "x815t2r",
166
+ $$css: true
167
+ },
150
168
  boxOutlinedErrorHovered: {
151
169
  kMwMTN: "x12voer2 x16elhoc",
152
170
  $$css: true
@@ -155,6 +173,11 @@ const fieldChromeStyles = {
155
173
  kLWn49: "xsv50tp x1f5c3pk x1rzm7h7",
156
174
  $$css: true
157
175
  },
176
+ boxOutlinedFocused: {
177
+ kMwMTN: "x1mxwv8y",
178
+ k3XXqK: "x815t2r",
179
+ $$css: true
180
+ },
158
181
  boxOutlinedHovered: {
159
182
  kMwMTN: "x158cnre x139gbkf",
160
183
  $$css: true
@@ -264,7 +287,7 @@ const fieldChromeStyles = {
264
287
  $$css: true
265
288
  },
266
289
  labelDisabled: {
267
- kMwMTN: "x1xj74d8",
290
+ kMwMTN: "x1xj74d8 x1bhcspo",
268
291
  $$css: true
269
292
  },
270
293
  labelError: {
@@ -388,6 +411,7 @@ const fieldChromeStyles = {
388
411
  k3XXqK: "x1t137rt",
389
412
  kmVPX3: "x1717udv",
390
413
  kVAEAm: "x10l6tqk",
414
+ kY2c9j: "x1vjfegm",
391
415
  $$css: true
392
416
  },
393
417
  value: {
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","names":["stylex","colors","motion","radii","spacing","stateLayerOpacity","typography","FORCED_COLORS","BOX_BLOCK_SIZE","sm","bodySmallLineHeight","bodyLargeLineHeight","BOX_OUTLINED_BLOCK_SIZE","lg","fieldChromeStyles","affix","k6CgDc","kmuXW","kMv6JI","kGuDYH","k63SB2","kb6lSQ","kLWn49","kIyJzY","k1ekBW","kAMwcw","khDVqt","$$css","affixLine","kGNEyG","k1xSpc","kOIVth","autosize","autosizeCell","kJuA4N","box","kWkggS","kZKoxP","kfdmCh","kt9PQ7","kT0f0o","kVL7Gh","kfmiAY","krdFHd","kGVxlE","kB7OPa","kjBf7l","kInvED","k3XXqK","kMeerF","kGO01o","kLKAdn","kg3NbH","kVAEAm","boxDisabled","kL6WhQ","boxError","boxFixed","boxFloating","boxLabel","k87sOh","kLqNvP","ks0D6T","kVQacm","kg5iWk","boxLabelFloated","boxLabelOutlined","boxLabelOutlinedFloated","boxLeading","kZCmMZ","boxMultiline","kAzted","boxOutlined","kMwMTN","boxOutlinedDisabled","boxOutlinedError","boxOutlinedErrorHovered","boxOutlinedFloating","boxOutlinedHovered","boxOutlinedMultiline","boxTrailing","kwRFfy","column","kzQI83","k7Eaqz","columnDisabled","columnDisabledFloating","columnFloating","counter","kcqcaj","keTefX","icon","kSGwAc","kjj79g","keoZOQ","iconDisabled","iconError","iconMultiline","k1K539","iconOutlined","input","k8Qsv1","kMzoRj","kzqmXN","kmVPX3","inputDisabled","inputUnderFloatingLabel","inputUnderLabel","label","labelDisabled","labelError","labelFocused","message","kqGvvJ","messageError","messageInset","kUOVxO","messageLine","numeric","outline","kVAM5u","kaIpWk","ksu8eU","kpwlN0","kogj98","k8WAf4","kfzvcC","outlineFocused","outlineLeading","outlineNotch","k33iCy","outlineNotchOpen","outlineTrailing","replica","kHjlTd","segments","textArea","kHenm0","textAreaAutosize","trigger","kkrTdU","value","valuePlaceholder","valuePlaceholderHidden","groupStyles","root","kXwgrk"],"sources":["../../src/field/styles.ts"],"sourcesContent":["import * as stylex from '@stylexjs/stylex';\nimport '../tokens/design.tokens.stylex';\nimport { colors, motion, radii, spacing, stateLayerOpacity, typography } from '../tokens/design.tokens.stylex';\n\n// Windows High Contrast and the rest of the forced-colours modes. Declared\n// here rather than imported from src/styles/ripple.ts, which spells the same\n// query: the StyleX compiler resolves a constant across files only out of a\n// `.stylex.ts` module, and the one this repository has is generated from the\n// design tokens, where a user-preference query does not belong beside the\n// window size classes.\nconst FORCED_COLORS = '@media (forced-colors: active)';\n\n// What the box is tall enough for, rather than the 56dp the text fields page\n// draws it at. The page's number is the sum of these under the default\n// tokens, and stating it instead made the box right only there: a theme with\n// a longer body line — `Editorial` in src/theming/themes.ts, at body-small\n// 20 and body-large 28 on a 10dp `sm` — needs 68, and in a fixed 56 the\n// value's line ran past the underline with nothing left beneath it.\n//\n// The filled box holds its padding twice over, the floated label's line and\n// the control's; the outlined box holds its own padding twice and the\n// control's line alone, since its label sits on the outline rather than\n// above the value. The two agree at 56 under the default tokens, which is\n// what keeps the default stories' snapshots where they are.\n//\n// The resting label's line is written against the same expressions below, so\n// one derivation feeds both the box and the label that centres in it.\nconst BOX_BLOCK_SIZE = `calc(2 * ${spacing.sm} + ${typography.bodySmallLineHeight} + ${typography.bodyLargeLineHeight})`;\nconst BOX_OUTLINED_BLOCK_SIZE = `calc(2 * ${spacing.lg} + ${typography.bodyLargeLineHeight})`;\n\n// The chrome's styles. Apart from the parts in ./index.tsx so that file\n// exports components alone, which is what keeps fast refresh working for it —\n// the same reason ./root.ts gives for the root style beside it.\n//\n// The focus indicator is an inset box-shadow on the bottom edge rather than a\n// border that thickens. A real border going 1px -> 2px on focus grows the\n// box, which pushes every sibling below it down by a pixel — so a form\n// twitches each time focus moves between its fields. A shadow is drawn inside\n// the box and changes nothing about its size.\n//\n// The label floats, as the text fields page draws it: body-large and centred\n// in an empty, unfocused box, body-small at the top once the field is focused\n// or holds a value. `floatingLabel={false}` keeps it small at the top in\n// every state instead.\n//\n// Where the label sits depends on the box's state, and a child cannot select\n// on its parent's state while the box can select on its own. So the label's\n// type is set on the box and inherited: the box changes the font size and\n// line height it hands down when focus is within it, or when its control\n// shows something other than its placeholder, and the label transitions\n// between the two. Resting, the line is the box less its padding, which is\n// what centres the label without a position to move — the move to the top is\n// a change of type alone. The control sets its own type, so none of this\n// reaches it.\n//\n// The label's colour follows the control's focus the same way: the box is\n// React Aria's Group, which reports focus within it as render state, and the\n// label takes `labelFocused` from that.\n//\n// The box is a row: an icon slot at either end, if the field has one, with\n// the label and control between them. The page gives the icons 24dp, 12dp\n// from the box's edge and 16dp from the text, centred in the box's height;\n// the slot cancels the box's top padding and stretches to its full height,\n// so it centres whatever it holds — a 24dp icon, or an icon button around\n// one. The label and the control sit in a column of their own, which is\n// what the label is positioned against, so it moves past a leading icon\n// with the text.\n//\n// A prefix or suffix sits on the control's line, in the control's type and\n// the muted role, and shows only while the field is focused or holds a\n// value, as the placeholder does — at rest the label is where it would be.\n// It is the column's colour it takes, inherited, since the column can\n// select on its own focus and content and the affix cannot select on\n// either.\n//\n// The outlined variant is the page's outlined text field: no fill, a 1dp\n// outline in the outline role with 4dp corners all round, 2dp and primary\n// while focused, on surface while hovered, the error role with an error,\n// and the label cutting the outline once it floats, with the page's 4dp\n// beside it. The value is centred, 16dp from the top and bottom, and the\n// label rests on its line and moves up onto the outline — a move, where the\n// filled label only changes type.\n//\n// The outline is a fieldset laid over the box: a browser draws a fieldset's\n// border around its legend, so a legend holding a copy of the label, in the\n// label's floated type, is what cuts the outline to the label's width with\n// nothing measured. Empty, it cuts nothing, which is the closed notch.\nconst fieldChromeStyles = {\n affix: {\n k6CgDc: \"x12w9bfk\",\n kmuXW: \"x2lah0s\",\n kMv6JI: \"x16svsjw\",\n kGuDYH: \"x1848etk\",\n k63SB2: \"x1c52epr\",\n kb6lSQ: \"x1qn8t5l\",\n kLWn49: \"xh7dzej\",\n kIyJzY: \"xkzkux9\",\n k1ekBW: \"xt3l3uh\",\n kAMwcw: \"xpc4ca7\",\n khDVqt: \"xuxw1ft\",\n $$css: true\n },\n affixLine: {\n kGNEyG: \"x1pha0wt\",\n k1xSpc: \"x78zum5\",\n kOIVth: \"x14qo01y\",\n $$css: true\n },\n autosize: {\n k1xSpc: \"xrvj5dj\",\n $$css: true\n },\n autosizeCell: {\n kJuA4N: \"x1b1wf8y\",\n $$css: true\n },\n box: {\n k6CgDc: \"x12w9bfk\",\n kGNEyG: \"x1cy8zhl\",\n kWkggS: \"x1rrhr5q\",\n kZKoxP: \"x4v968r\",\n kfdmCh: \"xe3zi7u\",\n kt9PQ7: \"x15anc7y\",\n kT0f0o: \"x16uus16\",\n kVL7Gh: \"xbiv7yw\",\n kfmiAY: \"xirz1nw\",\n krdFHd: \"xzcck0f\",\n kGVxlE: \"x89kqus x18rfq6m\",\n kB7OPa: \"x9f619\",\n k1xSpc: \"x78zum5\",\n kOIVth: \"xxj4525\",\n kjBf7l: \"x1x84bn5\",\n kInvED: \"x12iqurn\",\n k3XXqK: \"xi9ts3s\",\n kMeerF: \"x1jrff4x\",\n kGO01o: \"x18d9i69\",\n kLKAdn: \"xi7mcox\",\n kg3NbH: \"x790zyz\",\n kVAEAm: \"x1n2onr6\",\n kIyJzY: \"x1qno0dh\",\n k1ekBW: \"xkdsq27\",\n kAMwcw: \"xpc4ca7\",\n $$css: true\n },\n boxDisabled: {\n kWkggS: \"xepofeg\",\n kL6WhQ: \"x1fxan2a\",\n kGVxlE: \"x1pqbjc1\",\n $$css: true\n },\n boxError: {\n kGVxlE: \"x1lxxh4i x1d6xoej\",\n $$css: true\n },\n boxFixed: {\n kMv6JI: \"xp6n8n2\",\n kGuDYH: \"xkucv67\",\n k63SB2: \"x14hhc5u\",\n kb6lSQ: \"x12utw95\",\n kLWn49: \"xvzb9hk\",\n $$css: true\n },\n boxFloating: {\n kMv6JI: \"x1ps135g xnc7ww3 x16svsjw\",\n kGuDYH: \"x52kfa xys1t9b x1848etk\",\n k63SB2: \"xz4f7ai xn9xqko x1c52epr\",\n kb6lSQ: \"x19wmx12 x1t00fh7 x1qn8t5l\",\n kLWn49: \"xsv50tp x1f5c3pk x1mv3dpe\",\n $$css: true\n },\n boxLabel: {\n kB7OPa: \"x9f619\",\n k87sOh: \"x13vifvy\",\n kLqNvP: \"x1o0tod\",\n ks0D6T: \"x193iq5w\",\n kVQacm: \"xb3r6kr\",\n kVAEAm: \"x10l6tqk\",\n kg5iWk: \"xlyipyv\",\n khDVqt: \"xuxw1ft\",\n $$css: true\n },\n boxLabelFloated: {\n kMv6JI: \"x1yicsit\",\n kGuDYH: \"x1b35g6e\",\n k63SB2: \"x9d6959\",\n kb6lSQ: \"xwth0xh\",\n kLWn49: \"xybisxh\",\n $$css: true\n },\n boxLabelOutlined: {\n kLqNvP: \"x10k232c\",\n ks0D6T: \"x35j8wb\",\n kg3NbH: \"ximhkdq\",\n $$css: true\n },\n boxLabelOutlinedFloated: {\n k87sOh: \"x1qjp6zz\",\n $$css: true\n },\n boxLeading: {\n kZCmMZ: \"xwde665\",\n $$css: true\n },\n boxMultiline: {\n kZKoxP: \"xt7dq6l\",\n kAzted: \"x9ep9ug\",\n kGO01o: \"xqf7pud\",\n $$css: true\n },\n boxOutlined: {\n kWkggS: \"xjbqb8w\",\n kZKoxP: \"xnqhc4v\",\n kfdmCh: \"xs07zst\",\n kT0f0o: \"x4gcak0\",\n kVL7Gh: \"xqs30sb\",\n kGVxlE: \"x1gnnqk1\",\n kMwMTN: \"x158cnre x1sa41d3\",\n kGO01o: \"xzfxn0k\",\n kLKAdn: \"x1clyivc\",\n kVAEAm: \"x1n2onr6\",\n $$css: true\n },\n boxOutlinedDisabled: {\n kWkggS: \"xjbqb8w\",\n kGVxlE: \"x1gnnqk1\",\n kMwMTN: \"x1ldq0ta x1bhcspo\",\n $$css: true\n },\n boxOutlinedError: {\n kMwMTN: \"x4ii1qj\",\n $$css: true\n },\n boxOutlinedErrorHovered: {\n kMwMTN: \"x12voer2 x16elhoc\",\n $$css: true\n },\n boxOutlinedFloating: {\n kLWn49: \"xsv50tp x1f5c3pk x1rzm7h7\",\n $$css: true\n },\n boxOutlinedHovered: {\n kMwMTN: \"x158cnre x139gbkf\",\n $$css: true\n },\n boxOutlinedMultiline: {\n kZKoxP: \"xt7dq6l\",\n kAzted: \"xnqs80d\",\n $$css: true\n },\n boxTrailing: {\n kwRFfy: \"xk163s\",\n $$css: true\n },\n column: {\n kMwMTN: \"x1w5n3ug\",\n kzQI83: \"x1iyjqo2\",\n k7Eaqz: \"xeuugli\",\n kVAEAm: \"x1n2onr6\",\n $$css: true\n },\n columnDisabled: {\n kMwMTN: \"x1xj74d8\",\n $$css: true\n },\n columnDisabledFloating: {\n kMwMTN: \"xspc5gk x19co3pv\",\n $$css: true\n },\n columnFloating: {\n kMwMTN: \"x1dfuzvz x6phwhp x19co3pv\",\n $$css: true\n },\n counter: {\n kmuXW: \"x2lah0s\",\n kcqcaj: \"xss6m8b\",\n keTefX: \"xvc5jky\",\n khDVqt: \"xuxw1ft\",\n $$css: true\n },\n icon: {\n k6CgDc: \"x12w9bfk\",\n kGNEyG: \"x6s0dn4\",\n kSGwAc: \"xkh2ocl\",\n kMwMTN: \"x1w5n3ug\",\n k1xSpc: \"x78zum5\",\n kmuXW: \"x2lah0s\",\n kGuDYH: \"x1pvqxga\",\n kjj79g: \"xl56j7k\",\n keoZOQ: \"x1motrhk\",\n kIyJzY: \"xkzkux9\",\n k1ekBW: \"xt3l3uh\",\n kAMwcw: \"xpc4ca7\",\n $$css: true\n },\n iconDisabled: {\n kMwMTN: \"x1xj74d8\",\n $$css: true\n },\n iconError: {\n kMwMTN: \"x4ii1qj\",\n $$css: true\n },\n iconMultiline: {\n k1K539: \"x14yxyxb\",\n $$css: true\n },\n iconOutlined: {\n k1K539: \"xs1qnrw\",\n keoZOQ: \"x17v9ssf\",\n $$css: true\n },\n input: {\n k8Qsv1: \"x1hgeflb\",\n kWkggS: \"xjbqb8w\",\n kMzoRj: \"xc342km\",\n kB7OPa: \"x9f619\",\n kMwMTN: \"x139gbkf\",\n kMv6JI: \"x16svsjw\",\n kGuDYH: \"x1848etk\",\n k63SB2: \"x1c52epr\",\n kzqmXN: \"xh8yej3\",\n kb6lSQ: \"x1qn8t5l\",\n kLWn49: \"xh7dzej\",\n k3XXqK: \"x1t137rt\",\n kmVPX3: \"x1717udv\",\n $$css: true\n },\n inputDisabled: {\n k8Qsv1: \"x7ip5l3\",\n kMwMTN: \"x1xj74d8\",\n $$css: true\n },\n inputUnderFloatingLabel: {\n k8Qsv1: \"x1mvm7v4 xxqzaim\",\n $$css: true\n },\n inputUnderLabel: {\n keoZOQ: \"xwuztrq\",\n $$css: true\n },\n label: {\n k6CgDc: \"x12w9bfk\",\n kMwMTN: \"x1w5n3ug\",\n kIyJzY: \"xkzkux9\",\n k1ekBW: \"xixa3zk\",\n kAMwcw: \"xpc4ca7\",\n $$css: true\n },\n labelDisabled: {\n kMwMTN: \"x1xj74d8\",\n $$css: true\n },\n labelError: {\n kMwMTN: \"x4ii1qj\",\n $$css: true\n },\n labelFocused: {\n kMwMTN: \"x1mxwv8y\",\n $$css: true\n },\n message: {\n kMwMTN: \"x1w5n3ug\",\n kMv6JI: \"x1yicsit\",\n kGuDYH: \"x1b35g6e\",\n k63SB2: \"x9d6959\",\n kb6lSQ: \"xwth0xh\",\n kLWn49: \"xybisxh\",\n kqGvvJ: \"x10im51j\",\n $$css: true\n },\n messageError: {\n kMwMTN: \"x4ii1qj\",\n $$css: true\n },\n messageInset: {\n kUOVxO: \"xboopgi\",\n $$css: true\n },\n messageLine: {\n kGNEyG: \"x1pha0wt\",\n k1xSpc: \"x78zum5\",\n kOIVth: \"xxj4525\",\n keoZOQ: \"x1y88zpp\",\n kAzted: \"x17jz683\",\n $$css: true\n },\n numeric: {\n kMv6JI: \"xbppi91\",\n kcqcaj: \"xss6m8b\",\n $$css: true\n },\n outline: {\n k6CgDc: \"x12w9bfk\",\n kVAM5u: \"x1r7ld26\",\n kaIpWk: \"x1tfhd1\",\n ksu8eU: \"x1y0btm7\",\n kMzoRj: \"xmkeg23\",\n kB7OPa: \"x9f619\",\n kMv6JI: \"x1yicsit\",\n kGuDYH: \"x1b35g6e\",\n k63SB2: \"x9d6959\",\n kpwlN0: \"x10a8y8t\",\n kb6lSQ: \"xwth0xh\",\n kogj98: \"x1ghz6dp\",\n k7Eaqz: \"xeuugli\",\n k8WAf4: \"xt970qd\",\n kg3NbH: \"x1mhv0kc\",\n kfzvcC: \"x47corl\",\n kVAEAm: \"x10l6tqk\",\n kIyJzY: \"x1qno0dh\",\n k1ekBW: \"x1aqzbqr\",\n kAMwcw: \"xpc4ca7\",\n $$css: true\n },\n outlineFocused: {\n kMzoRj: \"xdh2fpr\",\n $$css: true\n },\n outlineLeading: {\n kZCmMZ: \"x167ah0f\",\n $$css: true\n },\n outlineNotch: {\n kZKoxP: \"xqtp20y\",\n kB7OPa: \"x9f619\",\n kLWn49: \"x14ju556\",\n ks0D6T: \"x193iq5w\",\n kVQacm: \"xb3r6kr\",\n kmVPX3: \"x1717udv\",\n k33iCy: \"xlshs6z\",\n khDVqt: \"xuxw1ft\",\n $$css: true\n },\n outlineNotchOpen: {\n kg3NbH: \"ximhkdq\",\n $$css: true\n },\n outlineTrailing: {\n kwRFfy: \"x3o381d\",\n $$css: true\n },\n replica: {\n kHjlTd: \"x1mzt3pk\",\n k33iCy: \"xlshs6z\",\n khDVqt: \"x126k92a\",\n $$css: true\n },\n segments: {\n kGNEyG: \"x6s0dn4\",\n k1xSpc: \"x78zum5\",\n kVQacm: \"xb3r6kr\",\n khDVqt: \"xuxw1ft\",\n $$css: true\n },\n textArea: {\n k1xSpc: \"x1lliihq\",\n kVQacm: \"xysyzu8\",\n kHenm0: \"xtt52l0\",\n $$css: true\n },\n textAreaAutosize: {\n kVQacm: \"xb3r6kr\",\n $$css: true\n },\n trigger: {\n kWkggS: \"xjbqb8w\",\n kMzoRj: \"xc342km\",\n kB7OPa: \"x9f619\",\n kkrTdU: \"x1ypdohk\",\n kpwlN0: \"x10a8y8t\",\n k3XXqK: \"x1t137rt\",\n kmVPX3: \"x1717udv\",\n kVAEAm: \"x10l6tqk\",\n $$css: true\n },\n value: {\n kGNEyG: \"x6s0dn4\",\n k1xSpc: \"x78zum5\",\n kVQacm: \"xb3r6kr\",\n kg5iWk: \"xlyipyv\",\n khDVqt: \"xuxw1ft\",\n $$css: true\n },\n valuePlaceholder: {\n kMwMTN: \"x1w5n3ug\",\n $$css: true\n },\n valuePlaceholderHidden: {\n kMwMTN: \"x19co3pv\",\n $$css: true\n }\n};\n\n// The chrome a label sitting above a group takes, rather than inside a box.\n// CheckboxGroup, ChipGroup, RadioGroup, Slider and ColorSlider each wrote both\n// of these out: the type override on the label, and the column its label and\n// control sit in.\n//\n// The label is label-large, the role a field's label takes at rest, since a\n// group has no box to float it in.\n//\n// The two sliders compose an inline size of their own on the root, since a\n// slider fills the width it is given where a group of controls does not.\nconst groupStyles = {\n label: {\n kMv6JI: \"xkknnkr\",\n kGuDYH: \"x14zspaw\",\n k63SB2: \"x1v9cpvo\",\n kb6lSQ: \"x155f00i\",\n kLWn49: \"x1lz68p4\",\n $$css: true\n },\n root: {\n kB7OPa: \"x9f619\",\n k1xSpc: \"x78zum5\",\n kXwgrk: \"xdt5ytf\",\n kOIVth: \"xzoy561\",\n $$css: true\n }\n};\nexport { fieldChromeStyles, groupStyles };"],"mappings":"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"}
1
+ {"version":3,"file":"styles.js","names":["stylex","colors","motion","radii","spacing","stateLayerOpacity","typography","FORCED_COLORS","BOX_BLOCK_SIZE","sm","bodySmallLineHeight","bodyLargeLineHeight","BOX_OUTLINED_BLOCK_SIZE","lg","fieldChromeStyles","affix","k6CgDc","kmuXW","kMv6JI","kGuDYH","k63SB2","kb6lSQ","kLWn49","kIyJzY","k1ekBW","kAMwcw","khDVqt","$$css","affixLine","kGNEyG","k1xSpc","kOIVth","autosize","autosizeCell","kJuA4N","box","kWkggS","kZKoxP","kfdmCh","kt9PQ7","kT0f0o","kVL7Gh","kfmiAY","krdFHd","kGVxlE","kB7OPa","kkrTdU","kjBf7l","kInvED","k3XXqK","kMeerF","kGO01o","kLKAdn","kg3NbH","kVAEAm","boxDisabled","kL6WhQ","boxError","boxErrorFocused","boxFixed","boxFloating","boxFocused","boxLabel","k87sOh","kLqNvP","ks0D6T","kVQacm","kg5iWk","boxLabelFloated","boxLabelOutlined","boxLabelOutlinedFloated","boxLeading","kZCmMZ","boxMultiline","kAzted","boxOutlined","kMwMTN","boxOutlinedDisabled","boxOutlinedError","boxOutlinedErrorFocused","boxOutlinedErrorHovered","boxOutlinedFloating","boxOutlinedFocused","boxOutlinedHovered","boxOutlinedMultiline","boxTrailing","kwRFfy","column","kzQI83","k7Eaqz","columnDisabled","columnDisabledFloating","columnFloating","counter","kcqcaj","keTefX","icon","kSGwAc","kjj79g","keoZOQ","iconDisabled","iconError","iconMultiline","k1K539","iconOutlined","input","k8Qsv1","kMzoRj","kzqmXN","kmVPX3","inputDisabled","inputUnderFloatingLabel","inputUnderLabel","label","labelDisabled","labelError","labelFocused","message","kqGvvJ","messageError","messageInset","kUOVxO","messageLine","numeric","outline","kVAM5u","kaIpWk","ksu8eU","kpwlN0","kogj98","k8WAf4","kfzvcC","outlineFocused","outlineLeading","outlineNotch","k33iCy","outlineNotchOpen","outlineTrailing","replica","kHjlTd","segments","textArea","kHenm0","textAreaAutosize","trigger","kY2c9j","value","valuePlaceholder","valuePlaceholderHidden","groupStyles","root","kXwgrk"],"sources":["../../src/field/styles.ts"],"sourcesContent":["import * as stylex from '@stylexjs/stylex';\nimport '../tokens/design.tokens.stylex';\nimport { colors, motion, radii, spacing, stateLayerOpacity, typography } from '../tokens/design.tokens.stylex';\n\n// Windows High Contrast and the rest of the forced-colours modes. Declared\n// here rather than imported from src/styles/ripple.ts, which spells the same\n// query: the StyleX compiler resolves a constant across files only out of a\n// `.stylex.ts` module, and the one this repository has is generated from the\n// design tokens, where a user-preference query does not belong beside the\n// window size classes.\nconst FORCED_COLORS = '@media (forced-colors: active)';\n\n// What the box is tall enough for, rather than the 56dp the text fields page\n// draws it at. The page's number is the sum of these under the default\n// tokens, and stating it instead made the box right only there: a theme with\n// a longer body line — `Editorial` in src/theming/themes.ts, at body-small\n// 20 and body-large 28 on a 10dp `sm` — needs 68, and in a fixed 56 the\n// value's line ran past the underline with nothing left beneath it.\n//\n// The filled box holds its padding twice over, the floated label's line and\n// the control's; the outlined box holds its own padding twice and the\n// control's line alone, since its label sits on the outline rather than\n// above the value. The two agree at 56 under the default tokens, which is\n// what keeps the default stories' snapshots where they are.\n//\n// The resting label's line is written against the same expressions below, so\n// one derivation feeds both the box and the label that centres in it.\nconst BOX_BLOCK_SIZE = `calc(2 * ${spacing.sm} + ${typography.bodySmallLineHeight} + ${typography.bodyLargeLineHeight})`;\nconst BOX_OUTLINED_BLOCK_SIZE = `calc(2 * ${spacing.lg} + ${typography.bodyLargeLineHeight})`;\n\n// The chrome's styles. Apart from the parts in ./index.tsx so that file\n// exports components alone, which is what keeps fast refresh working for it —\n// the same reason ./root.ts gives for the root style beside it.\n//\n// The focus indicator is an inset box-shadow on the bottom edge rather than a\n// border that thickens. A real border going 1px -> 2px on focus grows the\n// box, which pushes every sibling below it down by a pixel — so a form\n// twitches each time focus moves between its fields. A shadow is drawn inside\n// the box and changes nothing about its size.\n//\n// The label floats, as the text fields page draws it: body-large and centred\n// in an empty, unfocused box, body-small at the top once the field is focused\n// or holds a value. `floatingLabel={false}` keeps it small at the top in\n// every state instead.\n//\n// Where the label sits depends on the box's state, and a child cannot select\n// on its parent's state while the box can select on its own. So the label's\n// type is set on the box and inherited: the box changes the font size and\n// line height it hands down when focus is within it, or when its control\n// shows something other than its placeholder, and the label transitions\n// between the two. Resting, the line is the box less its padding, which is\n// what centres the label without a position to move — the move to the top is\n// a change of type alone. The control sets its own type, so none of this\n// reaches it.\n//\n// The label's colour follows the control's focus the same way: the box is\n// React Aria's Group, which reports focus within it as render state, and the\n// label takes `labelFocused` from that.\n//\n// The box is a row: an icon slot at either end, if the field has one, with\n// the label and control between them. The page gives the icons 24dp, 12dp\n// from the box's edge and 16dp from the text, centred in the box's height;\n// the slot cancels the box's top padding and stretches to its full height,\n// so it centres whatever it holds — a 24dp icon, or an icon button around\n// one. The label and the control sit in a column of their own, which is\n// what the label is positioned against, so it moves past a leading icon\n// with the text.\n//\n// A prefix or suffix sits on the control's line, in the control's type and\n// the muted role, and shows only while the field is focused or holds a\n// value, as the placeholder does — at rest the label is where it would be.\n// It is the column's colour it takes, inherited, since the column can\n// select on its own focus and content and the affix cannot select on\n// either.\n//\n// The outlined variant is the page's outlined text field: no fill, a 1dp\n// outline in the outline role with 4dp corners all round, 2dp and primary\n// while focused, on surface while hovered, the error role with an error,\n// and the label cutting the outline once it floats, with the page's 4dp\n// beside it. The value is centred, 16dp from the top and bottom, and the\n// label rests on its line and moves up onto the outline — a move, where the\n// filled label only changes type.\n//\n// The outline is a fieldset laid over the box: a browser draws a fieldset's\n// border around its legend, so a legend holding a copy of the label, in the\n// label's floated type, is what cuts the outline to the label's width with\n// nothing measured. Empty, it cuts nothing, which is the closed notch.\nconst fieldChromeStyles = {\n affix: {\n k6CgDc: \"x12w9bfk\",\n kmuXW: \"x2lah0s\",\n kMv6JI: \"x16svsjw\",\n kGuDYH: \"x1848etk\",\n k63SB2: \"x1c52epr\",\n kb6lSQ: \"x1qn8t5l\",\n kLWn49: \"xh7dzej\",\n kIyJzY: \"xkzkux9\",\n k1ekBW: \"xt3l3uh\",\n kAMwcw: \"xpc4ca7\",\n khDVqt: \"xuxw1ft\",\n $$css: true\n },\n affixLine: {\n kGNEyG: \"x1pha0wt\",\n k1xSpc: \"x78zum5\",\n kOIVth: \"x14qo01y\",\n $$css: true\n },\n autosize: {\n k1xSpc: \"xrvj5dj\",\n $$css: true\n },\n autosizeCell: {\n kJuA4N: \"x1b1wf8y\",\n $$css: true\n },\n box: {\n k6CgDc: \"x12w9bfk\",\n kGNEyG: \"x1cy8zhl\",\n kWkggS: \"x1rrhr5q\",\n kZKoxP: \"x4v968r\",\n kfdmCh: \"xe3zi7u\",\n kt9PQ7: \"x15anc7y\",\n kT0f0o: \"x16uus16\",\n kVL7Gh: \"xbiv7yw\",\n kfmiAY: \"xirz1nw\",\n krdFHd: \"xzcck0f\",\n kGVxlE: \"x89kqus x18rfq6m\",\n kB7OPa: \"x9f619\",\n kkrTdU: \"x1ed109x\",\n k1xSpc: \"x78zum5\",\n kOIVth: \"xxj4525\",\n kjBf7l: \"x1x84bn5\",\n kInvED: \"x12iqurn\",\n k3XXqK: \"xi9ts3s\",\n kMeerF: \"x1jrff4x\",\n kGO01o: \"x18d9i69\",\n kLKAdn: \"xi7mcox\",\n kg3NbH: \"x790zyz\",\n kVAEAm: \"x1n2onr6\",\n kIyJzY: \"x1qno0dh\",\n k1ekBW: \"xkdsq27\",\n kAMwcw: \"xpc4ca7\",\n $$css: true\n },\n boxDisabled: {\n kWkggS: \"xepofeg\",\n kL6WhQ: \"x1fxan2a\",\n kGVxlE: \"x1pqbjc1\",\n kkrTdU: \"xt0e3qv\",\n $$css: true\n },\n boxError: {\n kGVxlE: \"x1lxxh4i x1d6xoej\",\n $$css: true\n },\n boxErrorFocused: {\n kGVxlE: \"xb0slzl\",\n k3XXqK: \"x815t2r\",\n $$css: true\n },\n boxFixed: {\n kMv6JI: \"xp6n8n2\",\n kGuDYH: \"xkucv67\",\n k63SB2: \"x14hhc5u\",\n kb6lSQ: \"x12utw95\",\n kLWn49: \"xvzb9hk\",\n $$css: true\n },\n boxFloating: {\n kMv6JI: \"x1ps135g xnc7ww3 x16svsjw\",\n kGuDYH: \"x52kfa xys1t9b x1848etk\",\n k63SB2: \"xz4f7ai xn9xqko x1c52epr\",\n kb6lSQ: \"x19wmx12 x1t00fh7 x1qn8t5l\",\n kLWn49: \"xsv50tp x1f5c3pk x1mv3dpe\",\n $$css: true\n },\n boxFocused: {\n kGVxlE: \"xra6ydt\",\n k3XXqK: \"x815t2r\",\n $$css: true\n },\n boxLabel: {\n kB7OPa: \"x9f619\",\n k87sOh: \"x13vifvy\",\n kLqNvP: \"x1o0tod\",\n ks0D6T: \"x193iq5w\",\n kVQacm: \"xb3r6kr\",\n kVAEAm: \"x10l6tqk\",\n kg5iWk: \"xlyipyv\",\n khDVqt: \"xuxw1ft\",\n $$css: true\n },\n boxLabelFloated: {\n kMv6JI: \"x1yicsit\",\n kGuDYH: \"x1b35g6e\",\n k63SB2: \"x9d6959\",\n kb6lSQ: \"xwth0xh\",\n kLWn49: \"xybisxh\",\n $$css: true\n },\n boxLabelOutlined: {\n kLqNvP: \"x10k232c\",\n ks0D6T: \"x35j8wb\",\n kg3NbH: \"ximhkdq\",\n $$css: true\n },\n boxLabelOutlinedFloated: {\n k87sOh: \"x1qjp6zz\",\n $$css: true\n },\n boxLeading: {\n kZCmMZ: \"xwde665\",\n $$css: true\n },\n boxMultiline: {\n kZKoxP: \"xt7dq6l\",\n kAzted: \"x9ep9ug\",\n kGO01o: \"xqf7pud\",\n $$css: true\n },\n boxOutlined: {\n kWkggS: \"xjbqb8w\",\n kZKoxP: \"xnqhc4v\",\n kfdmCh: \"xs07zst\",\n kT0f0o: \"x4gcak0\",\n kVL7Gh: \"xqs30sb\",\n kGVxlE: \"x1gnnqk1\",\n kMwMTN: \"x158cnre x1sa41d3\",\n kGO01o: \"xzfxn0k\",\n kLKAdn: \"x1clyivc\",\n kVAEAm: \"x1n2onr6\",\n $$css: true\n },\n boxOutlinedDisabled: {\n kWkggS: \"xjbqb8w\",\n kGVxlE: \"x1gnnqk1\",\n kMwMTN: \"x1ldq0ta x1bhcspo\",\n kkrTdU: \"xt0e3qv\",\n $$css: true\n },\n boxOutlinedError: {\n kMwMTN: \"x4ii1qj\",\n $$css: true\n },\n boxOutlinedErrorFocused: {\n kMwMTN: \"x4ii1qj\",\n k3XXqK: \"x815t2r\",\n $$css: true\n },\n boxOutlinedErrorHovered: {\n kMwMTN: \"x12voer2 x16elhoc\",\n $$css: true\n },\n boxOutlinedFloating: {\n kLWn49: \"xsv50tp x1f5c3pk x1rzm7h7\",\n $$css: true\n },\n boxOutlinedFocused: {\n kMwMTN: \"x1mxwv8y\",\n k3XXqK: \"x815t2r\",\n $$css: true\n },\n boxOutlinedHovered: {\n kMwMTN: \"x158cnre x139gbkf\",\n $$css: true\n },\n boxOutlinedMultiline: {\n kZKoxP: \"xt7dq6l\",\n kAzted: \"xnqs80d\",\n $$css: true\n },\n boxTrailing: {\n kwRFfy: \"xk163s\",\n $$css: true\n },\n column: {\n kMwMTN: \"x1w5n3ug\",\n kzQI83: \"x1iyjqo2\",\n k7Eaqz: \"xeuugli\",\n kVAEAm: \"x1n2onr6\",\n $$css: true\n },\n columnDisabled: {\n kMwMTN: \"x1xj74d8\",\n $$css: true\n },\n columnDisabledFloating: {\n kMwMTN: \"xspc5gk x19co3pv\",\n $$css: true\n },\n columnFloating: {\n kMwMTN: \"x1dfuzvz x6phwhp x19co3pv\",\n $$css: true\n },\n counter: {\n kmuXW: \"x2lah0s\",\n kcqcaj: \"xss6m8b\",\n keTefX: \"xvc5jky\",\n khDVqt: \"xuxw1ft\",\n $$css: true\n },\n icon: {\n k6CgDc: \"x12w9bfk\",\n kGNEyG: \"x6s0dn4\",\n kSGwAc: \"xkh2ocl\",\n kMwMTN: \"x1w5n3ug\",\n k1xSpc: \"x78zum5\",\n kmuXW: \"x2lah0s\",\n kGuDYH: \"x1pvqxga\",\n kjj79g: \"xl56j7k\",\n keoZOQ: \"x1motrhk\",\n kIyJzY: \"xkzkux9\",\n k1ekBW: \"xt3l3uh\",\n kAMwcw: \"xpc4ca7\",\n $$css: true\n },\n iconDisabled: {\n kMwMTN: \"x1xj74d8\",\n $$css: true\n },\n iconError: {\n kMwMTN: \"x4ii1qj\",\n $$css: true\n },\n iconMultiline: {\n k1K539: \"x14yxyxb\",\n $$css: true\n },\n iconOutlined: {\n k1K539: \"xs1qnrw\",\n keoZOQ: \"x17v9ssf\",\n $$css: true\n },\n input: {\n k8Qsv1: \"x1hgeflb\",\n kWkggS: \"xjbqb8w\",\n kMzoRj: \"xc342km\",\n kB7OPa: \"x9f619\",\n kMwMTN: \"x139gbkf\",\n kMv6JI: \"x16svsjw\",\n kGuDYH: \"x1848etk\",\n k63SB2: \"x1c52epr\",\n kzqmXN: \"xh8yej3\",\n kb6lSQ: \"x1qn8t5l\",\n kLWn49: \"xh7dzej\",\n k3XXqK: \"x1t137rt\",\n kmVPX3: \"x1717udv\",\n $$css: true\n },\n inputDisabled: {\n k8Qsv1: \"x7ip5l3\",\n kMwMTN: \"x1xj74d8\",\n $$css: true\n },\n inputUnderFloatingLabel: {\n k8Qsv1: \"x1mvm7v4 xxqzaim\",\n $$css: true\n },\n inputUnderLabel: {\n keoZOQ: \"xwuztrq\",\n $$css: true\n },\n label: {\n k6CgDc: \"x12w9bfk\",\n kMwMTN: \"x1w5n3ug\",\n kIyJzY: \"xkzkux9\",\n k1ekBW: \"xixa3zk\",\n kAMwcw: \"xpc4ca7\",\n $$css: true\n },\n labelDisabled: {\n kMwMTN: \"x1xj74d8 x1bhcspo\",\n $$css: true\n },\n labelError: {\n kMwMTN: \"x4ii1qj\",\n $$css: true\n },\n labelFocused: {\n kMwMTN: \"x1mxwv8y\",\n $$css: true\n },\n message: {\n kMwMTN: \"x1w5n3ug\",\n kMv6JI: \"x1yicsit\",\n kGuDYH: \"x1b35g6e\",\n k63SB2: \"x9d6959\",\n kb6lSQ: \"xwth0xh\",\n kLWn49: \"xybisxh\",\n kqGvvJ: \"x10im51j\",\n $$css: true\n },\n messageError: {\n kMwMTN: \"x4ii1qj\",\n $$css: true\n },\n messageInset: {\n kUOVxO: \"xboopgi\",\n $$css: true\n },\n messageLine: {\n kGNEyG: \"x1pha0wt\",\n k1xSpc: \"x78zum5\",\n kOIVth: \"xxj4525\",\n keoZOQ: \"x1y88zpp\",\n kAzted: \"x17jz683\",\n $$css: true\n },\n numeric: {\n kMv6JI: \"xbppi91\",\n kcqcaj: \"xss6m8b\",\n $$css: true\n },\n outline: {\n k6CgDc: \"x12w9bfk\",\n kVAM5u: \"x1r7ld26\",\n kaIpWk: \"x1tfhd1\",\n ksu8eU: \"x1y0btm7\",\n kMzoRj: \"xmkeg23\",\n kB7OPa: \"x9f619\",\n kMv6JI: \"x1yicsit\",\n kGuDYH: \"x1b35g6e\",\n k63SB2: \"x9d6959\",\n kpwlN0: \"x10a8y8t\",\n kb6lSQ: \"xwth0xh\",\n kogj98: \"x1ghz6dp\",\n k7Eaqz: \"xeuugli\",\n k8WAf4: \"xt970qd\",\n kg3NbH: \"x1mhv0kc\",\n kfzvcC: \"x47corl\",\n kVAEAm: \"x10l6tqk\",\n kIyJzY: \"x1qno0dh\",\n k1ekBW: \"x1aqzbqr\",\n kAMwcw: \"xpc4ca7\",\n $$css: true\n },\n outlineFocused: {\n kMzoRj: \"xdh2fpr\",\n $$css: true\n },\n outlineLeading: {\n kZCmMZ: \"x167ah0f\",\n $$css: true\n },\n outlineNotch: {\n kZKoxP: \"xqtp20y\",\n kB7OPa: \"x9f619\",\n kLWn49: \"x14ju556\",\n ks0D6T: \"x193iq5w\",\n kVQacm: \"xb3r6kr\",\n kmVPX3: \"x1717udv\",\n k33iCy: \"xlshs6z\",\n khDVqt: \"xuxw1ft\",\n $$css: true\n },\n outlineNotchOpen: {\n kg3NbH: \"ximhkdq\",\n $$css: true\n },\n outlineTrailing: {\n kwRFfy: \"x3o381d\",\n $$css: true\n },\n replica: {\n kHjlTd: \"x1mzt3pk\",\n k33iCy: \"xlshs6z\",\n khDVqt: \"x126k92a\",\n $$css: true\n },\n segments: {\n kGNEyG: \"x6s0dn4\",\n k1xSpc: \"x78zum5\",\n kVQacm: \"xb3r6kr\",\n khDVqt: \"xuxw1ft\",\n $$css: true\n },\n textArea: {\n k1xSpc: \"x1lliihq\",\n kVQacm: \"xysyzu8\",\n kHenm0: \"xtt52l0\",\n $$css: true\n },\n textAreaAutosize: {\n kVQacm: \"xb3r6kr\",\n $$css: true\n },\n trigger: {\n kWkggS: \"xjbqb8w\",\n kMzoRj: \"xc342km\",\n kB7OPa: \"x9f619\",\n kkrTdU: \"x1ypdohk\",\n kpwlN0: \"x10a8y8t\",\n k3XXqK: \"x1t137rt\",\n kmVPX3: \"x1717udv\",\n kVAEAm: \"x10l6tqk\",\n kY2c9j: \"x1vjfegm\",\n $$css: true\n },\n value: {\n kGNEyG: \"x6s0dn4\",\n k1xSpc: \"x78zum5\",\n kVQacm: \"xb3r6kr\",\n kg5iWk: \"xlyipyv\",\n khDVqt: \"xuxw1ft\",\n $$css: true\n },\n valuePlaceholder: {\n kMwMTN: \"x1w5n3ug\",\n $$css: true\n },\n valuePlaceholderHidden: {\n kMwMTN: \"x19co3pv\",\n $$css: true\n }\n};\n\n// The chrome a label sitting above a group takes, rather than inside a box.\n// CheckboxGroup, ChipGroup, RadioGroup, Slider and ColorSlider each wrote both\n// of these out: the type override on the label, and the column its label and\n// control sit in.\n//\n// The label is label-large, the role a field's label takes at rest, since a\n// group has no box to float it in.\n//\n// The two sliders compose an inline size of their own on the root, since a\n// slider fills the width it is given where a group of controls does not.\nconst groupStyles = {\n label: {\n kMv6JI: \"xkknnkr\",\n kGuDYH: \"x14zspaw\",\n k63SB2: \"x1v9cpvo\",\n kb6lSQ: \"x155f00i\",\n kLWn49: \"x1lz68p4\",\n $$css: true\n },\n root: {\n kB7OPa: \"x9f619\",\n k1xSpc: \"x78zum5\",\n kXwgrk: \"xdt5ytf\",\n kOIVth: \"xzoy561\",\n $$css: true\n }\n};\nexport { fieldChromeStyles, groupStyles };"],"mappings":"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"}
@@ -19,12 +19,12 @@ const indicatorStyles = {
19
19
  activeAt: (percentage) => [_temp, { "--x-inlineSize": ((val) => typeof val === "number" ? val + "px" : val != null ? val : void 0)(`calc((100% - 12px) * ${percentage / 100})`) }],
20
20
  inheritActive: {
21
21
  kWkggS: "xtwfq29 x1jzqe4",
22
- kjVXCG: "x73je2i",
22
+ kjVXCG: "x73je2i xbabvq0",
23
23
  $$css: true
24
24
  },
25
25
  inheritTrack: {
26
26
  kWkggS: "xtp5tyh",
27
- kjVXCG: "xy3ggvv",
27
+ kjVXCG: "xy3ggvv x8jos32",
28
28
  $$css: true
29
29
  },
30
30
  label: {
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","names":["stylex","colors","motion","radii","spacing","typography","THICKNESS","GAP","DETERMINATE_EASING","IndicatorTone","FORCED_COLORS","_temp","kzqmXN","indicatorStyles","active","k6CgDc","kWkggS","kZKoxP","kaIpWk","kB7OPa","kmuXW","kIyJzY","k1ekBW","kAMwcw","$$css","activeAt","percentage","val","undefined","inheritActive","kjVXCG","inheritTrack","label","kMwMTN","kMv6JI","kGuDYH","k63SB2","kb6lSQ","kLWn49","labels","kGNEyG","k1xSpc","kOIVth","kjj79g","line","negativeActive","positiveActive","root","kXwgrk","stop","track","kzQI83","k7Eaqz","kjBf7l","kInvED","k3XXqK","kMeerF","kVQacm","trackSolid"],"sources":["../../src/indicator/styles.ts"],"sourcesContent":["import * as stylex from '@stylexjs/stylex';\nimport '../tokens/design.tokens.stylex';\nimport { colors, motion, radii, spacing, typography } from '../tokens/design.tokens.stylex';\n\n// The line the progress indicators page draws, and the label row above it,\n// shared by the two components that draw one: ProgressIndicator, which adds\n// the ring and the two indeterminate presentations on top, and Meter, which\n// is this and nothing else.\n//\n// The page's anatomy names three parts — the active indicator in primary,\n// the track in secondary container, and the stop indicator in primary at the\n// end — at 4dp thick with 4dp between them. The row is a flex line and the\n// two gaps are its `gap`. The active indicator takes the value's share of\n// what the two gaps and the stop leave, and the track takes the rest, so the\n// stop ends the row at every value.\n//\n// Under forced colours every part here is a background, which that mode\n// paints in a system colour, so the line drew nothing at all. The active\n// indicator and the stop take `Highlight` there, as the slider's filled part\n// does, and the track keeps a `CanvasText` edge, drawn as an outline inside\n// it so it takes no room from the line.\n//\n// `tone` is the line's colour. `primary` is the page's own pair, and it is\n// what a progress indicator draws. `negative` and `positive` swap the active\n// indicator and the stop indicator alone, leaving the track in secondary\n// container, so a column of meters reads as one scale with bars of different\n// colours rather than as several unrelated gauges. `inherit` instead takes\n// the colour around it for both, and gives the track a quarter of it, which\n// is what makes a ring legible inside a filled button, where the page's\n// primary is the button's own fill.\n//\n// Apart from ./index.tsx so that file exports components alone, which is\n// what keeps fast refresh working for it.\n\n/** The thickness of every part, and the room the page leaves between them. */\nexport const THICKNESS = 4;\nexport const GAP = 4;\n\n/**\n * What the page gives a value that changes to move over. The duration is the\n * motion scale's own step rather than a constant beside it — src/tokens/\n * values.ts keeps a number in JS only where one has to reach\n * `element.animate()` or a timer, and nothing here does.\n */\nexport const DETERMINATE_EASING = 'cubic-bezier(0.4, 0, 0.6, 1)';\nexport type IndicatorTone = 'inherit' | 'negative' | 'positive' | 'primary';\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)';\nconst _temp = {\n kzqmXN: \"x1uyokj7\",\n \"$$css\": true\n};\nexport const indicatorStyles = {\n active: {\n k6CgDc: \"x12w9bfk\",\n kWkggS: \"xnety89 x1jzqe4\",\n kZKoxP: \"x5yr21d\",\n kaIpWk: \"x1dkaolv\",\n kB7OPa: \"x9f619\",\n kmuXW: \"x2lah0s\",\n kIyJzY: \"xioksi3\",\n k1ekBW: \"x1j4rzew\",\n kAMwcw: \"x16pyfke\",\n $$css: true\n },\n activeAt: (percentage: number) => [_temp, {\n \"--x-inlineSize\": (val => typeof val === \"number\" ? val + \"px\" : val != null ? val : undefined)(`calc((100% - ${GAP * 2 + THICKNESS}px) * ${percentage / 100})`)\n }],\n inheritActive: {\n kWkggS: \"xtwfq29 x1jzqe4\",\n kjVXCG: \"x73je2i\",\n $$css: true\n },\n inheritTrack: {\n kWkggS: \"xtp5tyh\",\n kjVXCG: \"xy3ggvv\",\n $$css: true\n },\n label: {\n kB7OPa: \"x9f619\",\n kMwMTN: \"x1w5n3ug\",\n kMv6JI: \"xkknnkr\",\n kGuDYH: \"x14zspaw\",\n k63SB2: \"x1v9cpvo\",\n kb6lSQ: \"x155f00i\",\n kLWn49: \"x1lz68p4\",\n $$css: true\n },\n labels: {\n kGNEyG: \"x1pha0wt\",\n kB7OPa: \"x9f619\",\n k1xSpc: \"x78zum5\",\n kOIVth: \"x126z3so\",\n kjj79g: \"x1qughib\",\n $$css: true\n },\n line: {\n kGNEyG: \"x6s0dn4\",\n kZKoxP: \"xqu0tyb\",\n kB7OPa: \"x9f619\",\n k1xSpc: \"x78zum5\",\n kOIVth: \"x1jnr06f\",\n kzqmXN: \"xh8yej3\",\n $$css: true\n },\n negativeActive: {\n kWkggS: \"xmjwayr x1jzqe4\",\n $$css: true\n },\n positiveActive: {\n kWkggS: \"x1xov01w x1jzqe4\",\n $$css: true\n },\n root: {\n kB7OPa: \"x9f619\",\n k1xSpc: \"x78zum5\",\n kXwgrk: \"xdt5ytf\",\n kOIVth: \"xzoy561\",\n kzqmXN: \"xh8yej3\",\n $$css: true\n },\n stop: {\n kWkggS: \"xnety89 x1jzqe4\",\n kZKoxP: \"xqu0tyb\",\n kaIpWk: \"x16fbrrb\",\n kB7OPa: \"x9f619\",\n kmuXW: \"x2lah0s\",\n kzqmXN: \"x51ohtg\",\n $$css: true\n },\n track: {\n kZKoxP: \"x5yr21d\",\n kaIpWk: \"x1dkaolv\",\n kB7OPa: \"x9f619\",\n k1xSpc: \"x78zum5\",\n kzQI83: \"x1iyjqo2\",\n k7Eaqz: \"xeuugli\",\n kjBf7l: \"x3teovq\",\n kInvED: \"xvr1dqx\",\n k3XXqK: \"x815t2r\",\n kMeerF: \"xcthrzx\",\n kVQacm: \"xb3r6kr\",\n $$css: true\n },\n trackSolid: {\n kWkggS: \"x15dekr4\",\n $$css: true\n }\n};"],"mappings":";AAoDA,MAAMW,QAAQ;CACZC,QAAQ;CACR,SAAS;AACX;AACA,MAAaC,kBAAkB;CAC7BC,QAAQ;EACNC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,OAAO;EACPC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,OAAO;CACT;CACAC,WAAWC,eAAuB,CAACf,OAAO,EACxC,oBAAmBgB,QAAO,OAAOA,QAAQ,WAAWA,MAAM,OAAOA,OAAO,OAAOA,MAAMC,KAAAA,EAAAA,CAAW,wBAA4CF,aAAa,IAAG,EAAG,EACjK,CAAC;CACDG,eAAe;EACbb,QAAQ;EACRc,QAAQ;EACRN,OAAO;CACT;CACAO,cAAc;EACZf,QAAQ;EACRc,QAAQ;EACRN,OAAO;CACT;CACAQ,OAAO;EACLb,QAAQ;EACRc,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRd,OAAO;CACT;CACAe,QAAQ;EACNC,QAAQ;EACRrB,QAAQ;EACRsB,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRnB,OAAO;CACT;CACAoB,MAAM;EACJJ,QAAQ;EACRvB,QAAQ;EACRE,QAAQ;EACRsB,QAAQ;EACRC,QAAQ;EACR9B,QAAQ;EACRY,OAAO;CACT;CACAqB,gBAAgB;EACd7B,QAAQ;EACRQ,OAAO;CACT;CACAsB,gBAAgB;EACd9B,QAAQ;EACRQ,OAAO;CACT;CACAuB,MAAM;EACJ5B,QAAQ;EACRsB,QAAQ;EACRO,QAAQ;EACRN,QAAQ;EACR9B,QAAQ;EACRY,OAAO;CACT;CACAyB,MAAM;EACJjC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,OAAO;EACPR,QAAQ;EACRY,OAAO;CACT;CACA0B,OAAO;EACLjC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRsB,QAAQ;EACRU,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRjC,OAAO;CACT;CACAkC,YAAY;EACV1C,QAAQ;EACRQ,OAAO;CACT;AACF"}
1
+ {"version":3,"file":"styles.js","names":["stylex","colors","motion","radii","spacing","typography","THICKNESS","GAP","DETERMINATE_EASING","IndicatorTone","FORCED_COLORS","_temp","kzqmXN","indicatorStyles","active","k6CgDc","kWkggS","kZKoxP","kaIpWk","kB7OPa","kmuXW","kIyJzY","k1ekBW","kAMwcw","$$css","activeAt","percentage","val","undefined","inheritActive","kjVXCG","inheritTrack","label","kMwMTN","kMv6JI","kGuDYH","k63SB2","kb6lSQ","kLWn49","labels","kGNEyG","k1xSpc","kOIVth","kjj79g","line","negativeActive","positiveActive","root","kXwgrk","stop","track","kzQI83","k7Eaqz","kjBf7l","kInvED","k3XXqK","kMeerF","kVQacm","trackSolid"],"sources":["../../src/indicator/styles.ts"],"sourcesContent":["import * as stylex from '@stylexjs/stylex';\nimport '../tokens/design.tokens.stylex';\nimport { colors, motion, radii, spacing, typography } from '../tokens/design.tokens.stylex';\n\n// The line the progress indicators page draws, and the label row above it,\n// shared by the two components that draw one: ProgressIndicator, which adds\n// the ring and the two indeterminate presentations on top, and Meter, which\n// is this and nothing else.\n//\n// The page's anatomy names three parts — the active indicator in primary,\n// the track in secondary container, and the stop indicator in primary at the\n// end — at 4dp thick with 4dp between them. The row is a flex line and the\n// two gaps are its `gap`. The active indicator takes the value's share of\n// what the two gaps and the stop leave, and the track takes the rest, so the\n// stop ends the row at every value.\n//\n// Under forced colours every part here is a background, which that mode\n// paints in a system colour, so the line drew nothing at all. The active\n// indicator and the stop take `Highlight` there, as the slider's filled part\n// does, and the track keeps a `CanvasText` edge, drawn as an outline inside\n// it so it takes no room from the line.\n//\n// `tone` is the line's colour. `primary` is the page's own pair, and it is\n// what a progress indicator draws. `negative` and `positive` swap the active\n// indicator and the stop indicator alone, leaving the track in secondary\n// container, so a column of meters reads as one scale with bars of different\n// colours rather than as several unrelated gauges. `inherit` instead takes\n// the colour around it for both, and gives the track a quarter of it, which\n// is what makes a ring legible inside a filled button, where the page's\n// primary is the button's own fill.\n//\n// Apart from ./index.tsx so that file exports components alone, which is\n// what keeps fast refresh working for it.\n\n/** The thickness of every part, and the room the page leaves between them. */\nexport const THICKNESS = 4;\nexport const GAP = 4;\n\n/**\n * What the page gives a value that changes to move over. The duration is the\n * motion scale's own step rather than a constant beside it — src/tokens/\n * values.ts keeps a number in JS only where one has to reach\n * `element.animate()` or a timer, and nothing here does.\n */\nexport const DETERMINATE_EASING = 'cubic-bezier(0.4, 0, 0.6, 1)';\nexport type IndicatorTone = 'inherit' | 'negative' | 'positive' | 'primary';\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)';\nconst _temp = {\n kzqmXN: \"x1uyokj7\",\n \"$$css\": true\n};\nexport const indicatorStyles = {\n active: {\n k6CgDc: \"x12w9bfk\",\n kWkggS: \"xnety89 x1jzqe4\",\n kZKoxP: \"x5yr21d\",\n kaIpWk: \"x1dkaolv\",\n kB7OPa: \"x9f619\",\n kmuXW: \"x2lah0s\",\n kIyJzY: \"xioksi3\",\n k1ekBW: \"x1j4rzew\",\n kAMwcw: \"x16pyfke\",\n $$css: true\n },\n activeAt: (percentage: number) => [_temp, {\n \"--x-inlineSize\": (val => typeof val === \"number\" ? val + \"px\" : val != null ? val : undefined)(`calc((100% - ${GAP * 2 + THICKNESS}px) * ${percentage / 100})`)\n }],\n inheritActive: {\n kWkggS: \"xtwfq29 x1jzqe4\",\n kjVXCG: \"x73je2i xbabvq0\",\n $$css: true\n },\n inheritTrack: {\n kWkggS: \"xtp5tyh\",\n kjVXCG: \"xy3ggvv x8jos32\",\n $$css: true\n },\n label: {\n kB7OPa: \"x9f619\",\n kMwMTN: \"x1w5n3ug\",\n kMv6JI: \"xkknnkr\",\n kGuDYH: \"x14zspaw\",\n k63SB2: \"x1v9cpvo\",\n kb6lSQ: \"x155f00i\",\n kLWn49: \"x1lz68p4\",\n $$css: true\n },\n labels: {\n kGNEyG: \"x1pha0wt\",\n kB7OPa: \"x9f619\",\n k1xSpc: \"x78zum5\",\n kOIVth: \"x126z3so\",\n kjj79g: \"x1qughib\",\n $$css: true\n },\n line: {\n kGNEyG: \"x6s0dn4\",\n kZKoxP: \"xqu0tyb\",\n kB7OPa: \"x9f619\",\n k1xSpc: \"x78zum5\",\n kOIVth: \"x1jnr06f\",\n kzqmXN: \"xh8yej3\",\n $$css: true\n },\n negativeActive: {\n kWkggS: \"xmjwayr x1jzqe4\",\n $$css: true\n },\n positiveActive: {\n kWkggS: \"x1xov01w x1jzqe4\",\n $$css: true\n },\n root: {\n kB7OPa: \"x9f619\",\n k1xSpc: \"x78zum5\",\n kXwgrk: \"xdt5ytf\",\n kOIVth: \"xzoy561\",\n kzqmXN: \"xh8yej3\",\n $$css: true\n },\n stop: {\n kWkggS: \"xnety89 x1jzqe4\",\n kZKoxP: \"xqu0tyb\",\n kaIpWk: \"x16fbrrb\",\n kB7OPa: \"x9f619\",\n kmuXW: \"x2lah0s\",\n kzqmXN: \"x51ohtg\",\n $$css: true\n },\n track: {\n kZKoxP: \"x5yr21d\",\n kaIpWk: \"x1dkaolv\",\n kB7OPa: \"x9f619\",\n k1xSpc: \"x78zum5\",\n kzQI83: \"x1iyjqo2\",\n k7Eaqz: \"xeuugli\",\n kjBf7l: \"x3teovq\",\n kInvED: \"xvr1dqx\",\n k3XXqK: \"x815t2r\",\n kMeerF: \"xcthrzx\",\n kVQacm: \"xb3r6kr\",\n $$css: true\n },\n trackSolid: {\n kWkggS: \"x15dekr4\",\n $$css: true\n }\n};"],"mappings":";AAoDA,MAAMW,QAAQ;CACZC,QAAQ;CACR,SAAS;AACX;AACA,MAAaC,kBAAkB;CAC7BC,QAAQ;EACNC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,OAAO;EACPC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,OAAO;CACT;CACAC,WAAWC,eAAuB,CAACf,OAAO,EACxC,oBAAmBgB,QAAO,OAAOA,QAAQ,WAAWA,MAAM,OAAOA,OAAO,OAAOA,MAAMC,KAAAA,EAAAA,CAAW,wBAA4CF,aAAa,IAAG,EAAG,EACjK,CAAC;CACDG,eAAe;EACbb,QAAQ;EACRc,QAAQ;EACRN,OAAO;CACT;CACAO,cAAc;EACZf,QAAQ;EACRc,QAAQ;EACRN,OAAO;CACT;CACAQ,OAAO;EACLb,QAAQ;EACRc,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRd,OAAO;CACT;CACAe,QAAQ;EACNC,QAAQ;EACRrB,QAAQ;EACRsB,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRnB,OAAO;CACT;CACAoB,MAAM;EACJJ,QAAQ;EACRvB,QAAQ;EACRE,QAAQ;EACRsB,QAAQ;EACRC,QAAQ;EACR9B,QAAQ;EACRY,OAAO;CACT;CACAqB,gBAAgB;EACd7B,QAAQ;EACRQ,OAAO;CACT;CACAsB,gBAAgB;EACd9B,QAAQ;EACRQ,OAAO;CACT;CACAuB,MAAM;EACJ5B,QAAQ;EACRsB,QAAQ;EACRO,QAAQ;EACRN,QAAQ;EACR9B,QAAQ;EACRY,OAAO;CACT;CACAyB,MAAM;EACJjC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,OAAO;EACPR,QAAQ;EACRY,OAAO;CACT;CACA0B,OAAO;EACLjC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRsB,QAAQ;EACRU,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRjC,OAAO;CACT;CACAkC,YAAY;EACV1C,QAAQ;EACRQ,OAAO;CACT;AACF"}
@@ -2,6 +2,9 @@
2
2
  const markStyles = {
3
3
  base: {
4
4
  kGNEyG: "x6s0dn4",
5
+ kVAM5u: "x1w1tqly",
6
+ ksu8eU: "xx61lck",
7
+ kMzoRj: "x13rsnn2",
5
8
  kB7OPa: "x9f619",
6
9
  k1xSpc: "x3nfvp2",
7
10
  kmuXW: "x2lah0s",
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","names":["stylex","colors","radii","typography","markStyles","base","kGNEyG","kB7OPa","k1xSpc","kmuXW","kMv6JI","k63SB2","kjj79g","kVQacm","kfSwDN","$$css","circle","kaIpWk","contain","kVIFPx","cover","fallback","kZKoxP","kzqmXN","image","lg","kGuDYH","md","negative","kWkggS","kMwMTN","positive","primary","secondary","sm","square","tertiary","MarkSize","MarkTone"],"sources":["../../src/mark/styles.ts"],"sourcesContent":["import * as stylex from '@stylexjs/stylex';\nimport '../tokens/design.tokens.stylex';\nimport { colors, radii, typography } from '../tokens/design.tokens.stylex';\n\n// The box Avatar and ProductIcon draw in, shared so a person and a thing stay\n// the same three sizes in the same five tones, and so either can fill a\n// leading slot without moving what sits beside it. They differ in the two\n// ways that matter for a mark rather than a face, and those are the keys a\n// kind picks between in `./index.tsx`.\n//\n// A person is a circle with the photo cropped to fill it; a thing is a\n// rounded square with its mark letterboxed. A logo is drawn to its own\n// bounding box, so a circle crops the corners it was composed with, and\n// cropping a face loses nothing anyone minds where cropping a wordmark loses\n// the word. The cost of `contain` is letterboxing — a wide mark leaves space\n// above and below — and that is the right trade for a mark whose whole job\n// is to be recognised.\n//\n// That cost is also why a thing's tone tints the fallback rather than the\n// root. A mark letterboxed into the square does not cover it, and neither\n// does one drawn with transparency, so a tint on the root showed as a\n// coloured box around every logo that was not an opaque square. On the\n// fallback it is seen exactly when it is meant to be: while there is no\n// mark, or none has loaded. A photo covers the whole circle, so a person's\n// tone stays on the root.\n//\n// Tones are container/on-container pairs rather than one colour each, so the\n// initials are always a role's own foreground and can't end up unreadable on\n// a tint they were never paired with.\n//\n// Sizes carry their own type size but not their own weight or family: the\n// label face at medium weight holds across all three, so a large mark is\n// bigger initials rather than differently-styled ones.\n//\n// The three are the library's own rather than a spec page's — no Material\n// Design page gives a measurement for one in text; the lists page draws its\n// leading elements in a diagram and tabulates only their padding. So they are\n// stated against the scale the library already has. `md` is 40dp, which is\n// Button's and IconButton's own `md` height, so a mark and a control line up\n// in a row. `lg` is 56dp. `sm` is 36dp, between the 32dp a chip and an `xs`\n// control take and that 40dp default, for a row that wants a person smaller\n// than the button beside them.\nconst markStyles = {\n base: {\n kGNEyG: \"x6s0dn4\",\n kB7OPa: \"x9f619\",\n k1xSpc: \"x3nfvp2\",\n kmuXW: \"x2lah0s\",\n kMv6JI: \"xkknnkr\",\n k63SB2: \"x1bf3uqz\",\n kjj79g: \"xl56j7k\",\n kVQacm: \"xb3r6kr\",\n kfSwDN: \"x87ps6o\",\n $$css: true\n },\n circle: {\n kaIpWk: \"x16fbrrb\",\n $$css: true\n },\n contain: {\n kVIFPx: \"x19kjcj4\",\n $$css: true\n },\n cover: {\n kVIFPx: \"xl1xv1r\",\n $$css: true\n },\n fallback: {\n kGNEyG: \"x6s0dn4\",\n kZKoxP: \"x5yr21d\",\n k1xSpc: \"x78zum5\",\n kzqmXN: \"xh8yej3\",\n kjj79g: \"xl56j7k\",\n $$css: true\n },\n image: {\n kZKoxP: \"x5yr21d\",\n kzqmXN: \"xh8yej3\",\n $$css: true\n },\n lg: {\n kZKoxP: \"xnnlda6\",\n kGuDYH: \"x1848etk\",\n kzqmXN: \"x15yg21f\",\n $$css: true\n },\n md: {\n kZKoxP: \"x1vqgdyp\",\n kGuDYH: \"x14zspaw\",\n kzqmXN: \"x100vrsf\",\n $$css: true\n },\n negative: {\n kWkggS: \"xkz0cvf\",\n kMwMTN: \"xylzu7l\",\n $$css: true\n },\n positive: {\n kWkggS: \"xa3zu90\",\n kMwMTN: \"x1di7zbg\",\n $$css: true\n },\n primary: {\n kWkggS: \"xp89om9\",\n kMwMTN: \"xscdzaa\",\n $$css: true\n },\n secondary: {\n kWkggS: \"x15dekr4\",\n kMwMTN: \"x1sawysd\",\n $$css: true\n },\n sm: {\n kZKoxP: \"xc9qbxq\",\n kGuDYH: \"xkucv67\",\n kzqmXN: \"x14qfxbe\",\n $$css: true\n },\n square: {\n kaIpWk: \"x1xdvaa9\",\n $$css: true\n },\n tertiary: {\n kWkggS: \"xs6yvni\",\n kMwMTN: \"x3cbcwg\",\n $$css: true\n }\n};\ntype MarkSize = 'lg' | 'md' | 'sm';\ntype MarkTone = 'negative' | 'positive' | 'primary' | 'secondary' | 'tertiary';\nexport type { MarkSize, MarkTone };\nexport { markStyles };"],"mappings":";AA0CA,MAAMI,aAAa;CACjBC,MAAM;EACJC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,OAAO;EACPC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,OAAO;CACT;CACAC,QAAQ;EACNC,QAAQ;EACRF,OAAO;CACT;CACAG,SAAS;EACPC,QAAQ;EACRJ,OAAO;CACT;CACAK,OAAO;EACLD,QAAQ;EACRJ,OAAO;CACT;CACAM,UAAU;EACRf,QAAQ;EACRgB,QAAQ;EACRd,QAAQ;EACRe,QAAQ;EACRX,QAAQ;EACRG,OAAO;CACT;CACAS,OAAO;EACLF,QAAQ;EACRC,QAAQ;EACRR,OAAO;CACT;CACAU,IAAI;EACFH,QAAQ;EACRI,QAAQ;EACRH,QAAQ;EACRR,OAAO;CACT;CACAY,IAAI;EACFL,QAAQ;EACRI,QAAQ;EACRH,QAAQ;EACRR,OAAO;CACT;CACAa,UAAU;EACRC,QAAQ;EACRC,QAAQ;EACRf,OAAO;CACT;CACAgB,UAAU;EACRF,QAAQ;EACRC,QAAQ;EACRf,OAAO;CACT;CACAiB,SAAS;EACPH,QAAQ;EACRC,QAAQ;EACRf,OAAO;CACT;CACAkB,WAAW;EACTJ,QAAQ;EACRC,QAAQ;EACRf,OAAO;CACT;CACAmB,IAAI;EACFZ,QAAQ;EACRI,QAAQ;EACRH,QAAQ;EACRR,OAAO;CACT;CACAoB,QAAQ;EACNlB,QAAQ;EACRF,OAAO;CACT;CACAqB,UAAU;EACRP,QAAQ;EACRC,QAAQ;EACRf,OAAO;CACT;AACF"}
1
+ {"version":3,"file":"styles.js","names":["stylex","colors","radii","typography","FORCED_COLORS","markStyles","base","kGNEyG","kVAM5u","ksu8eU","kMzoRj","kB7OPa","k1xSpc","kmuXW","kMv6JI","k63SB2","kjj79g","kVQacm","kfSwDN","$$css","circle","kaIpWk","contain","kVIFPx","cover","fallback","kZKoxP","kzqmXN","image","lg","kGuDYH","md","negative","kWkggS","kMwMTN","positive","primary","secondary","sm","square","tertiary","MarkSize","MarkTone"],"sources":["../../src/mark/styles.ts"],"sourcesContent":["import * as stylex from '@stylexjs/stylex';\nimport '../tokens/design.tokens.stylex';\nimport { colors, radii, typography } from '../tokens/design.tokens.stylex';\n\n// The box Avatar and ProductIcon draw in, shared so a person and a thing stay\n// the same three sizes in the same five tones, and so either can fill a\n// leading slot without moving what sits beside it. They differ in the two\n// ways that matter for a mark rather than a face, and those are the keys a\n// kind picks between in `./index.tsx`.\n//\n// A person is a circle with the photo cropped to fill it; a thing is a\n// rounded square with its mark letterboxed. A logo is drawn to its own\n// bounding box, so a circle crops the corners it was composed with, and\n// cropping a face loses nothing anyone minds where cropping a wordmark loses\n// the word. The cost of `contain` is letterboxing — a wide mark leaves space\n// above and below — and that is the right trade for a mark whose whole job\n// is to be recognised.\n//\n// That cost is also why a thing's tone tints the fallback rather than the\n// root. A mark letterboxed into the square does not cover it, and neither\n// does one drawn with transparency, so a tint on the root showed as a\n// coloured box around every logo that was not an opaque square. On the\n// fallback it is seen exactly when it is meant to be: while there is no\n// mark, or none has loaded. A photo covers the whole circle, so a person's\n// tone stays on the root.\n//\n// Tones are container/on-container pairs rather than one colour each, so the\n// initials are always a role's own foreground and can't end up unreadable on\n// a tint they were never paired with.\n//\n// Sizes carry their own type size but not their own weight or family: the\n// label face at medium weight holds across all three, so a large mark is\n// bigger initials rather than differently-styled ones.\n//\n// The three are the library's own rather than a spec page's — no Material\n// Design page gives a measurement for one in text; the lists page draws its\n// leading elements in a diagram and tabulates only their padding. So they are\n// stated against the scale the library already has. `md` is 40dp, which is\n// Button's and IconButton's own `md` height, so a mark and a control line up\n// in a row. `lg` is 56dp. `sm` is 36dp, between the 32dp a chip and an `xs`\n// control take and that 40dp default, for a row that wants a person smaller\n// than the button beside them.\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)';\nconst markStyles = {\n base: {\n kGNEyG: \"x6s0dn4\",\n kVAM5u: \"x1w1tqly\",\n ksu8eU: \"xx61lck\",\n kMzoRj: \"x13rsnn2\",\n kB7OPa: \"x9f619\",\n k1xSpc: \"x3nfvp2\",\n kmuXW: \"x2lah0s\",\n kMv6JI: \"xkknnkr\",\n k63SB2: \"x1bf3uqz\",\n kjj79g: \"xl56j7k\",\n kVQacm: \"xb3r6kr\",\n kfSwDN: \"x87ps6o\",\n $$css: true\n },\n circle: {\n kaIpWk: \"x16fbrrb\",\n $$css: true\n },\n contain: {\n kVIFPx: \"x19kjcj4\",\n $$css: true\n },\n cover: {\n kVIFPx: \"xl1xv1r\",\n $$css: true\n },\n fallback: {\n kGNEyG: \"x6s0dn4\",\n kZKoxP: \"x5yr21d\",\n k1xSpc: \"x78zum5\",\n kzqmXN: \"xh8yej3\",\n kjj79g: \"xl56j7k\",\n $$css: true\n },\n image: {\n kZKoxP: \"x5yr21d\",\n kzqmXN: \"xh8yej3\",\n $$css: true\n },\n lg: {\n kZKoxP: \"xnnlda6\",\n kGuDYH: \"x1848etk\",\n kzqmXN: \"x15yg21f\",\n $$css: true\n },\n md: {\n kZKoxP: \"x1vqgdyp\",\n kGuDYH: \"x14zspaw\",\n kzqmXN: \"x100vrsf\",\n $$css: true\n },\n negative: {\n kWkggS: \"xkz0cvf\",\n kMwMTN: \"xylzu7l\",\n $$css: true\n },\n positive: {\n kWkggS: \"xa3zu90\",\n kMwMTN: \"x1di7zbg\",\n $$css: true\n },\n primary: {\n kWkggS: \"xp89om9\",\n kMwMTN: \"xscdzaa\",\n $$css: true\n },\n secondary: {\n kWkggS: \"x15dekr4\",\n kMwMTN: \"x1sawysd\",\n $$css: true\n },\n sm: {\n kZKoxP: \"xc9qbxq\",\n kGuDYH: \"xkucv67\",\n kzqmXN: \"x14qfxbe\",\n $$css: true\n },\n square: {\n kaIpWk: \"x1xdvaa9\",\n $$css: true\n },\n tertiary: {\n kWkggS: \"xs6yvni\",\n kMwMTN: \"x3cbcwg\",\n $$css: true\n }\n};\ntype MarkSize = 'lg' | 'md' | 'sm';\ntype MarkTone = 'negative' | 'positive' | 'primary' | 'secondary' | 'tertiary';\nexport type { MarkSize, MarkTone };\nexport { markStyles };"],"mappings":";AA+CA,MAAMK,aAAa;CACjBC,MAAM;EACJC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,OAAO;EACPC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,OAAO;CACT;CACAC,QAAQ;EACNC,QAAQ;EACRF,OAAO;CACT;CACAG,SAAS;EACPC,QAAQ;EACRJ,OAAO;CACT;CACAK,OAAO;EACLD,QAAQ;EACRJ,OAAO;CACT;CACAM,UAAU;EACRlB,QAAQ;EACRmB,QAAQ;EACRd,QAAQ;EACRe,QAAQ;EACRX,QAAQ;EACRG,OAAO;CACT;CACAS,OAAO;EACLF,QAAQ;EACRC,QAAQ;EACRR,OAAO;CACT;CACAU,IAAI;EACFH,QAAQ;EACRI,QAAQ;EACRH,QAAQ;EACRR,OAAO;CACT;CACAY,IAAI;EACFL,QAAQ;EACRI,QAAQ;EACRH,QAAQ;EACRR,OAAO;CACT;CACAa,UAAU;EACRC,QAAQ;EACRC,QAAQ;EACRf,OAAO;CACT;CACAgB,UAAU;EACRF,QAAQ;EACRC,QAAQ;EACRf,OAAO;CACT;CACAiB,SAAS;EACPH,QAAQ;EACRC,QAAQ;EACRf,OAAO;CACT;CACAkB,WAAW;EACTJ,QAAQ;EACRC,QAAQ;EACRf,OAAO;CACT;CACAmB,IAAI;EACFZ,QAAQ;EACRI,QAAQ;EACRH,QAAQ;EACRR,OAAO;CACT;CACAoB,QAAQ;EACNlB,QAAQ;EACRF,OAAO;CACT;CACAqB,UAAU;EACRP,QAAQ;EACRC,QAAQ;EACRf,OAAO;CACT;AACF"}