@kanso-labs/kanso-ui 0.43.7 → 0.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/README.md +1 -0
  2. package/dist/calendar/index.js +34 -10
  3. package/dist/calendar/index.js.map +1 -1
  4. package/dist/calendar/styles.js +30 -0
  5. package/dist/calendar/styles.js.map +1 -1
  6. package/dist/chip/index.js +27 -18
  7. package/dist/chip/index.js.map +1 -1
  8. package/dist/chip/label.js +32 -0
  9. package/dist/chip/label.js.map +1 -0
  10. package/dist/chip/styles.js +32 -2
  11. package/dist/chip/styles.js.map +1 -1
  12. package/dist/collection/text.js +24 -3
  13. package/dist/collection/text.js.map +1 -1
  14. package/dist/components/button/index.js.map +1 -1
  15. package/dist/components/calendar/index.d.ts +8 -1
  16. package/dist/components/calendar/index.js +129 -73
  17. package/dist/components/calendar/index.js.map +1 -1
  18. package/dist/components/checkbox/index.js +29 -30
  19. package/dist/components/checkbox/index.js.map +1 -1
  20. package/dist/components/checkbox-group/index.js +4 -2
  21. package/dist/components/checkbox-group/index.js.map +1 -1
  22. package/dist/components/chip/index.js +1 -1
  23. package/dist/components/chip/index.js.map +1 -1
  24. package/dist/components/chip-group/index.d.ts +35 -5
  25. package/dist/components/chip-group/index.js +137 -97
  26. package/dist/components/chip-group/index.js.map +1 -1
  27. package/dist/components/copy-field/index.js +1 -1
  28. package/dist/components/copy-field/index.js.map +1 -1
  29. package/dist/components/currency/index.d.ts +64 -6
  30. package/dist/components/currency/index.js +117 -40
  31. package/dist/components/currency/index.js.map +1 -1
  32. package/dist/components/date-picker/index.js +1 -1
  33. package/dist/components/dialog/index.d.ts +3 -1
  34. package/dist/components/dialog/index.js +121 -81
  35. package/dist/components/dialog/index.js.map +1 -1
  36. package/dist/components/disclosure-group/index.js +1 -1
  37. package/dist/components/disclosure-group/index.js.map +1 -1
  38. package/dist/components/icon-button/index.js +18 -1
  39. package/dist/components/icon-button/index.js.map +1 -1
  40. package/dist/components/index.d.ts +2 -2
  41. package/dist/components/keycap/index.d.ts +3 -0
  42. package/dist/components/keycap/index.js +30 -44
  43. package/dist/components/keycap/index.js.map +1 -1
  44. package/dist/components/list/index.d.ts +16 -2
  45. package/dist/components/list/index.js +124 -69
  46. package/dist/components/list/index.js.map +1 -1
  47. package/dist/components/list-detail/index.d.ts +11 -3
  48. package/dist/components/list-detail/index.js +13 -6
  49. package/dist/components/list-detail/index.js.map +1 -1
  50. package/dist/components/list-item/index.d.ts +16 -1
  51. package/dist/components/list-item/index.js.map +1 -1
  52. package/dist/components/menu/index.d.ts +6 -2
  53. package/dist/components/menu/index.js +22 -15
  54. package/dist/components/menu/index.js.map +1 -1
  55. package/dist/components/meter/index.d.ts +4 -1
  56. package/dist/components/meter/index.js +6 -0
  57. package/dist/components/meter/index.js.map +1 -1
  58. package/dist/components/navigation-bar/index.d.ts +14 -4
  59. package/dist/components/navigation-bar/index.js +77 -50
  60. package/dist/components/navigation-bar/index.js.map +1 -1
  61. package/dist/components/navigation-rail/index.d.ts +3 -2
  62. package/dist/components/navigation-rail/index.js +59 -52
  63. package/dist/components/navigation-rail/index.js.map +1 -1
  64. package/dist/components/navigation-tree/index.js +4 -1
  65. package/dist/components/navigation-tree/index.js.map +1 -1
  66. package/dist/components/number-field/index.d.ts +3 -2
  67. package/dist/components/number-field/index.js +91 -115
  68. package/dist/components/number-field/index.js.map +1 -1
  69. package/dist/components/popover/index.d.ts +3 -1
  70. package/dist/components/popover/index.js +102 -100
  71. package/dist/components/popover/index.js.map +1 -1
  72. package/dist/components/progress-indicator/index.d.ts +4 -2
  73. package/dist/components/progress-indicator/index.js +4 -3
  74. package/dist/components/progress-indicator/index.js.map +1 -1
  75. package/dist/components/radio-group/index.js +34 -24
  76. package/dist/components/radio-group/index.js.map +1 -1
  77. package/dist/components/search-field/index.d.ts +11 -1
  78. package/dist/components/search-field/index.js +32 -28
  79. package/dist/components/search-field/index.js.map +1 -1
  80. package/dist/components/segmented-button/index.d.ts +9 -2
  81. package/dist/components/segmented-button/index.js +1 -1
  82. package/dist/components/segmented-button/index.js.map +1 -1
  83. package/dist/components/separator/index.d.ts +19 -7
  84. package/dist/components/separator/index.js +36 -13
  85. package/dist/components/separator/index.js.map +1 -1
  86. package/dist/components/sheet/index.js +72 -61
  87. package/dist/components/sheet/index.js.map +1 -1
  88. package/dist/components/snackbar/index.d.ts +4 -1
  89. package/dist/components/snackbar/index.js +140 -55
  90. package/dist/components/snackbar/index.js.map +1 -1
  91. package/dist/components/stack/index.d.ts +6 -3
  92. package/dist/components/stack/index.js +48 -31
  93. package/dist/components/stack/index.js.map +1 -1
  94. package/dist/components/switch/index.d.ts +16 -6
  95. package/dist/components/switch/index.js +115 -62
  96. package/dist/components/switch/index.js.map +1 -1
  97. package/dist/components/text-area/index.d.ts +10 -1
  98. package/dist/components/text-area/index.js +21 -19
  99. package/dist/components/text-area/index.js.map +1 -1
  100. package/dist/components/text-field/index.d.ts +16 -2
  101. package/dist/components/text-field/index.js +49 -43
  102. package/dist/components/text-field/index.js.map +1 -1
  103. package/dist/components/time-picker/index.js +42 -38
  104. package/dist/components/time-picker/index.js.map +1 -1
  105. package/dist/components/tooltip/index.d.ts +3 -1
  106. package/dist/components/tooltip/index.js.map +1 -1
  107. package/dist/components/tree/index.d.ts +15 -3
  108. package/dist/components/tree/index.js +41 -28
  109. package/dist/components/tree/index.js.map +1 -1
  110. package/dist/control/index.js +26 -23
  111. package/dist/control/index.js.map +1 -1
  112. package/dist/control/styles.js +8 -1
  113. package/dist/control/styles.js.map +1 -1
  114. package/dist/field/index.js +149 -131
  115. package/dist/field/index.js.map +1 -1
  116. package/dist/field/styles.js +14 -1
  117. package/dist/field/styles.js.map +1 -1
  118. package/dist/glyphs/index.js +37 -1
  119. package/dist/glyphs/index.js.map +1 -1
  120. package/dist/hooks/useClippedTitle.js +44 -0
  121. package/dist/hooks/useClippedTitle.js.map +1 -0
  122. package/dist/hooks/useRipple.js +6 -5
  123. package/dist/hooks/useRipple.js.map +1 -1
  124. package/dist/hooks/useScrollStop.js +133 -0
  125. package/dist/hooks/useScrollStop.js.map +1 -0
  126. package/dist/i18n/index.js +1 -0
  127. package/dist/i18n/index.js.map +1 -1
  128. package/dist/i18n/messages.js +34 -0
  129. package/dist/i18n/messages.js.map +1 -1
  130. package/dist/index.d.ts +2 -2
  131. package/dist/indicator/index.js +18 -16
  132. package/dist/indicator/index.js.map +1 -1
  133. package/dist/indicator/styles.js +3 -0
  134. package/dist/indicator/styles.js.map +1 -1
  135. package/dist/keycap/context.js +7 -0
  136. package/dist/keycap/context.js.map +1 -0
  137. package/dist/navigation/index.d.ts +16 -2
  138. package/dist/navigation/index.js +145 -44
  139. package/dist/navigation/index.js.map +1 -1
  140. package/dist/navigation/styles.js +79 -16
  141. package/dist/navigation/styles.js.map +1 -1
  142. package/dist/overlay/modal.js +7 -0
  143. package/dist/overlay/modal.js.map +1 -0
  144. package/dist/row/index.js +92 -89
  145. package/dist/row/index.js.map +1 -1
  146. package/dist/row/styles.js +24 -1
  147. package/dist/row/styles.js.map +1 -1
  148. package/dist/styles/overlay.d.ts +6 -2
  149. package/dist/styles/overlay.js +9 -1
  150. package/dist/styles/overlay.js.map +1 -1
  151. package/dist/styles.css +177 -20
  152. package/dist/theme-scope.d.ts +5 -1
  153. package/dist/theme-scope.js +100 -51
  154. package/dist/theme-scope.js.map +1 -1
  155. package/dist/tokens/design.tokens.stylex.js.map +1 -1
  156. package/package.json +21 -20
  157. package/dist/hooks/useScrollable.js +0 -69
  158. package/dist/hooks/useScrollable.js.map +0 -1
@@ -145,8 +145,9 @@ const styles = {
145
145
  $$css: true
146
146
  },
147
147
  rootCircular: {
148
- kGNEyG: "x1cy8zhl",
148
+ k1xSpc: "x3nfvp2",
149
149
  kzqmXN: "x14atkfc",
150
+ kXLuUW: "xxymvpz",
150
151
  $$css: true
151
152
  },
152
153
  secondaryBarInner: {
@@ -533,8 +534,8 @@ function LinearTrack(t0) {
533
534
  let t4;
534
535
  if ($[41] !== buffer || $[42] !== inherit) {
535
536
  t4 = buffer === void 0 ? void 0 : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("span", { ...props(styles.trackBuffered, styles.trackBufferedAt(buffer), inherit && indicatorStyles.inheritTrack) }), /* @__PURE__ */ jsx("span", { ...{
536
- 0: { className: "x114jyov xs4xyr0 xa4qsjk xwx18z9 x1esw782 x1d6qlk4 x1w3jsh0 xwj9l49 x5yr21d x9f619 x1iyjqo2 xeuugli" },
537
- 1: { className: "x114jyov xs4xyr0 xa4qsjk xwx18z9 x1esw782 x1w3jsh0 xwj9l49 x5yr21d x9f619 x1iyjqo2 xeuugli x1larodg" }
537
+ 0: { className: "xs4xyr0 xa4qsjk xwx18z9 x1aquc0h x1esw782 x1d6qlk4 x1w3jsh0 xwj9l49 x5yr21d x9f619 x1iyjqo2 xeuugli" },
538
+ 1: { className: "xs4xyr0 xa4qsjk xwx18z9 x1aquc0h x1esw782 x1w3jsh0 xwj9l49 x5yr21d x9f619 x1iyjqo2 xeuugli x1larodg" }
538
539
  }[!!inherit << 0] })] });
539
540
  $[41] = buffer;
540
541
  $[42] = inherit;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","ReactNode","RefAttributes","ProgressBarRenderProps","ProgressBarProps","RACProgressBarProps","stylex","ProgressBar","IndicatorTone","IndicatorLabels","IndicatorLine","indicatorStyles","mergeStatefulStyles","colors","motion","radii","CIRCULAR_SIZE","CIRCULAR_SIZE_PX","THICKNESS","GAP","RADIUS","CIRCUMFERENCE","Math","PI","FORCED_COLORS","ARC_MS","CYCLE_MS","ROTATE_MS","round","RING_EASING","INDETERMINATE_MS","BUFFER_MS","LINE_SLOWDOWN","RING_SLOWDOWN","WAVE_AMPLITUDE","WAVE_WAVELENGTH","INDETERMINATE_WAVELENGTH","WAVE_HEIGHT","WAVE_REACH","DETERMINATE_EASING","WAVE_FROM","WAVE_UNTIL","WAVY_SIZE","WAVY_SIZE_PX","RING_AMPLITUDE","RING_WAVELENGTH","WAVY_RADIUS","WAVY_CIRCUMFERENCE","RING_WAVES","REDUCED_MOTION","TOO_WIDE","DETERMINATE_WAVE","linearWave","INDETERMINATE_WAVE","RING_WAVE","ringWave","primaryTranslate","primaryScale","secondaryTranslate","secondaryScale","buffering","expandArc","travelArc","spin","primaryWaveOffset","primaryWaveLength","secondaryWaveOffset","secondaryWaveLength","_temp","kZKoxP","kzqmXN","_temp2","_temp3","k5rJSQ","styles","activeFade","k1ekBW","$$css","activeUnderWave","kSiTet","arcActive","kjVXCG","arcFade","arcIndeterminate","kkDQuc","k44tkh","ko0y90","kKVMdj","kyAemX","arcMotion","k6CgDc","kIyJzY","kAMwcw","arcTrack","circular","kB7OPa","k1xSpc","k3aq6I","circularIndeterminate","circularSize","size","val","undefined","flatUnderWave","indeterminateBarInner","kWkggS","kaIpWk","kpwlN0","kVAEAm","indeterminateTrack","kjBf7l","kInvED","k3XXqK","kMeerF","primaryBarInner","primaryWave","rootCircular","kGNEyG","secondaryBarInner","secondaryWave","trackBuffered","kmuXW","trackBufferedAt","share","waveAt","percentage","waveFlat","waveMotion","ProgressIndicatorProps","buffer","className","diameter","label","shape","ProgressIndicatorShape","showValue","style","tone","ProgressIndicatorTone","variant","ProgressIndicatorVariant","Omit","Extract","arcsFor","circumference","active","track","max","strokeDasharray","strokeDashoffset","bufferShare","minValue","maxValue","value","range","buffered","remaining","min","CircularTrack","t0","$","isIndeterminate","inherit","wavy","radius","t1","arcs","t2","isWaving","waving","t3","t4","props","t5","inheritTrack","t6","t7","t8","t9","t10","t11","inheritActive","t12","t13","t14","indicatorContent","state","valueText","LinearTrack","Symbol","for","0","1","bars","t15","path","extent","t16","t17","t18","t19","line","wavelength","half","inset","lift","halves","ceil","index","ProgressIndicator","T0","root","points","centre","angle","sin","cos","_c","stylex.props","props"],"sources":["../../../src/components/progress-indicator/index.tsx"],"sourcesContent":["'use client';\n\nimport type { ReactNode, RefAttributes } from 'react';\nimport type { ProgressBarRenderProps, ProgressBarProps as RACProgressBarProps } from 'react-aria-components';\nimport * as stylex from '@stylexjs/stylex';\nimport { ProgressBar } from 'react-aria-components';\nimport type { IndicatorTone } from '../../indicator/styles';\nimport { IndicatorLabels, IndicatorLine } from '../../indicator';\nimport { indicatorStyles } from '../../indicator/styles';\nimport { mergeStatefulStyles } from '../../styles/merge';\nimport '../../tokens/design.tokens.stylex';\nimport { colors, motion, radii } from '../../tokens/design.tokens.stylex';\n\n// The progress indicators page's indicator, as a line or a ring, in either\n// of the page's two shapes, flat and wavy. Both carry the three parts the\n// page's anatomy names — the active indicator in primary, the track in\n// secondary container, and, on the line, the stop indicator in primary at\n// the end — at the page's 4dp thickness, with the 4dp gap its measurements\n// give either side of the track. The flat ring is the page's default 40dp of\n// the four sizes it draws, and the wavy ring the 48dp its wave needs room\n// for.\n//\n// The determinate line is a row of those parts: the active indicator takes\n// the value's share of what the gaps and the stop leave, and the track takes\n// the rest — see `activeAt` in src/indicator/styles.ts. The\n// determinate ring is two arcs of one circle, cut by the dash pattern: the\n// active arc runs from the top for its share of the circumference, and the\n// track picks up 4dp past it and stops 4dp before it comes back round,\n// which is the same gap measured along the curve.\n//\n// The animations are Material's own rather than something assembled from\n// the motion tokens: an indeterminate indicator is a piece of choreography,\n// and one written from scratch reads as a different component beside a\n// Material app. Material Web and Angular Material both descend from the\n// same implementation and agree on every number, so the numbers here are\n// theirs — the line's two bars and their four keyframe sets, the buffer's\n// scrolling dots, the ring's 1333ms arc, its four-arc cycle and its 1568ms\n// rotation, and the 250ms and 500ms a determinate value moves over.\n//\n// Two things are decided differently, both after reading the two of them.\n//\n// The ring is one dashed arc rather than two halves. Material Web draws it\n// as a pair of bordered half-circles, Angular as a pair of clipped SVG\n// circles with a patch over the seam between them; both constructions exist\n// to work around that split, and a single arc whose dash pattern is\n// animated needs neither and shares its geometry with the determinate ring.\n// The three effects it composes are still theirs: the arc grows and shrinks\n// over the arc's duration, its start travels the circle over four of those,\n// and the whole thing turns over the rotation's.\n//\n// Under `prefers-reduced-motion` the motion slows rather than stopping,\n// which is Angular's answer and the better one: an indicator that freezes\n// stops saying the work is going on, and a frozen arc caught at its short\n// end reads as broken. The multipliers are Angular's — two for the line,\n// and a quarter more for the ring.\n//\n// The wavy shape draws the active indicator as a wave and leaves the track\n// and the stop flat, as the page does. Its numbers are Material's own, from\n// its Compose and Android components: on the line a 3dp amplitude, a 40dp\n// wavelength and a 10dp row, with a 20dp wavelength while indeterminate; on\n// the ring a 1.6dp amplitude and a 15dp wavelength, rounded to a whole\n// number of waves so the wave closes on itself. A determinate wave lies flat\n// up to a tenth of the way and from 95% on, which is Material's rule too: a\n// wave too short to hold a crest reads as a wobble, and one about to finish\n// settles into the line it ends as.\n//\n// The wave is drawn over the flat drawing rather than in place of it, and\n// the two are crossfaded as the value crosses those bounds. The flat drawing\n// is also what a reader who has asked for reduced motion sees, since a wave\n// is motion even standing still, and what a line wider than `WAVE_REACH` is\n// drawn as. The line's wave is a path of that fixed length, cut to the value\n// by a dash written against the row's own width in container query units,\n// `100cqi`, so nothing has to measure the row before the wave can be drawn.\n//\n// React Aria's `ProgressBar` is the root: it carries the role, the value and\n// its text, and reports the percentage and whether it is indeterminate as\n// render state, which is what everything here is drawn from.\n\n// The circle the arcs are cut from. The radius is the diameter less the\n// stroke, halved, so the stroke sits inside the 40dp box rather than\n// straddling its edge.\n//\n// The thickness and the gap are the same 4dp the shared line is drawn at,\n// written again rather than imported from `src/indicator/styles`: StyleX\n// evaluates the values inside `stylex.create` and `stylex.keyframes` as it\n// compiles, and will not follow an import to a module that is not a theme\n// to reach one — an imported constant fails the transform outright.\nconst CIRCULAR_SIZE = 40;\n// The same value as a length, hoisted rather than built at the parameter.\n// The compiler has no safe reordering for a template literal, so one written\n// as a default parameter skips the whole component around it — which the\n// panic threshold this lands beside turns into a build failure.\nconst CIRCULAR_SIZE_PX = `${CIRCULAR_SIZE}px`;\nconst THICKNESS = 4;\nconst GAP = 4;\nconst RADIUS = (CIRCULAR_SIZE - THICKNESS) / 2;\nconst CIRCUMFERENCE = 2 * Math.PI * RADIUS;\n\n// Windows High Contrast and the rest of the forced-colours modes. Spelled\n// here rather than imported, for the reason src/field/styles.ts records: the\n// StyleX compiler resolves a constant across files only out of a `.stylex.ts`\n// module, and the generated one holds design tokens rather than queries.\nconst FORCED_COLORS = '@media (forced-colors: active)';\n\n// The ring's timings. The arc is 1333ms; a full cycle is four of them; and\n// the rotation is the arc scaled by 360/306, which is the arc's start\n// rotation plus the circle less the arc's size.\nconst ARC_MS = 1333;\nconst CYCLE_MS = ARC_MS * 4;\nconst ROTATE_MS = Math.round(ARC_MS * 360 / 306);\nconst RING_EASING = 'cubic-bezier(0.4, 0, 0.2, 1)';\n\n// The line's own: 2s for an indeterminate pass, and the 250ms the buffer's\n// dots take to scroll one pitch. What a determinate value moves over is the\n// shared line's, since a meter moves the same way.\nconst INDETERMINATE_MS = 2000;\nconst BUFFER_MS = 250;\n\n// What `prefers-reduced-motion` slows each shape by.\nconst LINE_SLOWDOWN = 2;\nconst RING_SLOWDOWN = 1.25;\n\n// The wavy line: the wave's amplitude either side of the middle, its two\n// wavelengths, and the row it is drawn in, which is the amplitude either side\n// plus the stroke. `WAVE_REACH` is how far the wave runs, and a row wider\n// than that draws flat. The easing is the shared line's, written again for\n// the reason the thickness is.\nconst WAVE_AMPLITUDE = 3;\nconst WAVE_WAVELENGTH = 40;\nconst INDETERMINATE_WAVELENGTH = 20;\nconst WAVE_HEIGHT = WAVE_AMPLITUDE * 2 + THICKNESS;\nconst WAVE_REACH = 2048;\nconst DETERMINATE_EASING = 'cubic-bezier(0.4, 0, 0.6, 1)';\n\n// Where a determinate wave stands up and where it lies down again, as\n// percentages of the way.\nconst WAVE_FROM = 10;\nconst WAVE_UNTIL = 95;\n\n// The wavy ring: the 48dp box, the amplitude, and the circle the wave runs\n// round, pulled in by the amplitude so its crests stay inside the box. The\n// wave count is the wavelength's share of that circle, rounded — nine.\nconst WAVY_SIZE = 48;\nconst WAVY_SIZE_PX = `${WAVY_SIZE}px`;\nconst RING_AMPLITUDE = 1.6;\nconst RING_WAVELENGTH = 15;\nconst WAVY_RADIUS = (WAVY_SIZE - THICKNESS) / 2 - RING_AMPLITUDE;\nconst WAVY_CIRCUMFERENCE = 2 * Math.PI * WAVY_RADIUS;\nconst RING_WAVES = Math.round(WAVY_CIRCUMFERENCE / RING_WAVELENGTH);\nconst REDUCED_MOTION = '@media (prefers-reduced-motion: reduce)';\nconst TOO_WIDE = `@container (inline-size > ${WAVE_REACH}px)`;\n\n// The paths the waves are drawn along, built once.\nconst DETERMINATE_WAVE = linearWave(WAVE_WAVELENGTH);\nconst INDETERMINATE_WAVE = linearWave(INDETERMINATE_WAVELENGTH);\nconst RING_WAVE = ringWave();\n\n// The two bars of the indeterminate line, translated and scaled at once.\nconst primaryTranslate = \"x1pch1fy-B\";\nconst primaryScale = \"xxyp5q1-B\";\nconst secondaryTranslate = \"xzo9tdn-B\";\nconst secondaryScale = \"x1w7bnrt-B\";\n\n// The buffer's dots scroll by one pitch of the pattern and start again.\nconst buffering = \"x19sykc1-B\";\n\n// The arc's own length, written against a path the circle normalises to 100\n// with `pathLength`, so these are percentages of the circumference rather\n// than lengths StyleX would have to work out.\n//\n// Material contracts to 10 degrees of turn and grows to 270. The 270 is 75\n// of the circumference and is written as it is; the 10 is not, because the\n// page's rounded ends change what a short dash draws. A round cap adds half\n// the stroke at each end, so a 10-degree dash on the 40dp ring is 3px of\n// path inside a 7px capsule of 4px stroke — a dot rather than the sliver\n// Material's square-cut ends give at the same angle. 8 is the shortest the\n// cap still draws as an arc, and it is the floor for that reason rather\n// than because the page names it.\n//\n// Each pattern's dash and gap sum to the circle's 100, at every step of the\n// interpolation between them, so the pattern repeats exactly once round\n// the ring. A dash does not wrap past the start of a closed path, so with a\n// longer period — the dash and a gap of 100 — an arc that had travelled late\n// round the ring was cut off at the path's end, down to a dot, and grew back\n// from somewhere else. And the 100 is what makes `travelArc`'s last offset,\n// -300, the same position as its first, so the loop has no seam.\nconst expandArc = \"x17j028-B\";\n\n// Where the arc starts. Material turns it in eight increments of 135 degrees\n// rather than at a constant rate, each eased with the same curve the arc's\n// growth uses, so it settles at each position and springs to the next; three\n// full turns over the cycle, under the rotation's own single turn. The\n// numbers here are those angles along a path of 100: 135 degrees is 37.5 of\n// it, and 1080 degrees is 300.\nconst travelArc = \"x26nhu8-B\";\nconst spin = \"x1fy8ia8-B\";\n\n// The indeterminate line's two bars, as dashes along the wave. A bar's\n// translation is where its dash starts, so it moves the dash's offset, and\n// its scale is how long the dash is, so it moves the dash's length; both are\n// the bar keyframes above, at their times and on their curves, turned from\n// shares of the row into lengths of it. The offset is the bar's distance\n// before the row's start, which is where its keyframes put it: the primary\n// bar sits 145.167% back and travels 200.611% of the row, the secondary\n// 54.8889% back and travels 160.278%. The gap after the dash is four rows\n// long, so the dash after it never reaches the row.\nconst primaryWaveOffset = \"x1kfhhp5-B\";\nconst primaryWaveLength = \"x1yi1oyw-B\";\nconst secondaryWaveOffset = \"x18qdip-B\";\nconst secondaryWaveLength = \"x1b9nlqo-B\";\nconst _temp = {\n kZKoxP: \"xyq6l7l\",\n kzqmXN: \"x1uyokj7\",\n \"$$css\": true\n};\nconst _temp2 = {\n kzqmXN: \"x1uyokj7\",\n \"$$css\": true\n};\nconst _temp3 = {\n k5rJSQ: \"xqmdeo6\",\n \"$$css\": true\n};\nconst styles = {\n activeFade: {\n k1ekBW: \"x7x1mir\",\n $$css: true\n },\n activeUnderWave: {\n kSiTet: \"xg01cxk x19xn7b2 x16dpw5u\",\n k1ekBW: \"x7x1mir\",\n $$css: true\n },\n arcActive: {\n kjVXCG: \"x1i9vjva xbabvq0\",\n $$css: true\n },\n arcFade: {\n k1ekBW: \"x1t9qjwo\",\n $$css: true\n },\n arcIndeterminate: {\n kkDQuc: \"x12dwrod\",\n k44tkh: \"xxx5gdc\",\n ko0y90: \"x77zgwx\",\n kKVMdj: \"xz09zy6\",\n kyAemX: \"x1582zw4\",\n kjVXCG: \"x1i9vjva xbabvq0\",\n k1ekBW: \"x13b0p5u\",\n $$css: true\n },\n arcMotion: {\n k6CgDc: \"x12w9bfk\",\n kIyJzY: \"xd6oih7\",\n k1ekBW: \"xg0bdzq\",\n kAMwcw: \"x4ognrn\",\n $$css: true\n },\n arcTrack: {\n kjVXCG: \"xynoiew x8jos32\",\n $$css: true\n },\n circular: {\n kB7OPa: \"x9f619\",\n k1xSpc: \"x1lliihq\",\n k3aq6I: \"x9tu13d\",\n $$css: true\n },\n circularIndeterminate: {\n kkDQuc: \"x7hzzi\",\n k44tkh: \"x11c9iw4\",\n ko0y90: \"xa4qsjk\",\n kKVMdj: \"xpedhrg\",\n kyAemX: \"x1esw782\",\n k3aq6I: \"x1c071of\",\n $$css: true\n },\n circularSize: (size: string) => [_temp, {\n \"--x-blockSize\": (val => typeof val === \"number\" ? val + \"px\" : val != null ? val : undefined)(size),\n \"--x-inlineSize\": (val => typeof val === \"number\" ? val + \"px\" : val != null ? val : undefined)(size)\n }],\n flatUnderWave: {\n kSiTet: \"xg01cxk x16dpw5u\",\n $$css: true\n },\n indeterminateBarInner: {\n kWkggS: \"xnety89 x1jzqe4\",\n kaIpWk: \"x1dkaolv\",\n kB7OPa: \"x9f619\",\n kpwlN0: \"x10a8y8t\",\n kVAEAm: \"x10l6tqk\",\n $$css: true\n },\n indeterminateTrack: {\n kWkggS: \"x15dekr4\",\n kaIpWk: \"x1dkaolv\",\n kpwlN0: \"x10a8y8t\",\n kjBf7l: \"x3teovq\",\n kInvED: \"xvr1dqx\",\n k3XXqK: \"x815t2r\",\n kMeerF: \"xcthrzx\",\n kVAEAm: \"x10l6tqk\",\n $$css: true\n },\n primaryBarInner: {\n kkDQuc: \"xy02sl2\",\n k44tkh: \"x1c74tu6\",\n ko0y90: \"xa4qsjk\",\n kKVMdj: \"xkj56kq\",\n kyAemX: \"x1esw782\",\n $$css: true\n },\n primaryWave: {\n k44tkh: \"xy7unhy\",\n ko0y90: \"x77zgwx\",\n kKVMdj: \"x15en9ga\",\n kyAemX: \"xlges3w\",\n kjVXCG: \"x1i9vjva xbabvq0\",\n $$css: true\n },\n ringWave: {\n k1xSpc: \"xkio4u3\",\n $$css: true\n },\n rootCircular: {\n kGNEyG: \"x1cy8zhl\",\n kzqmXN: \"x14atkfc\",\n $$css: true\n },\n secondaryBarInner: {\n kkDQuc: \"xy02sl2\",\n k44tkh: \"x1c74tu6\",\n ko0y90: \"xa4qsjk\",\n kKVMdj: \"xnb0dd2\",\n kyAemX: \"x1esw782\",\n $$css: true\n },\n secondaryWave: {\n k44tkh: \"xy7unhy\",\n ko0y90: \"x77zgwx\",\n kKVMdj: \"x1sz9pa8\",\n kyAemX: \"xlges3w\",\n kjVXCG: \"x1i9vjva xbabvq0\",\n $$css: true\n },\n trackBuffered: {\n kWkggS: \"x15dekr4\",\n kZKoxP: \"x5yr21d\",\n kB7OPa: \"x9f619\",\n kmuXW: \"x2lah0s\",\n $$css: true\n },\n trackBufferedAt: (share: number) => [_temp2, {\n \"--x-inlineSize\": (val => typeof val === \"number\" ? val + \"px\" : val != null ? val : undefined)(`${share}%`)\n }],\n waveAt: (percentage: number) => [_temp3, {\n \"--x-strokeDasharray\": `max(0px, (100cqi - ${GAP * 2 + THICKNESS}px) * ${percentage / 100} - ${THICKNESS}px) ${WAVE_REACH * 2}px` != null ? `max(0px, (100cqi - ${GAP * 2 + THICKNESS}px) * ${percentage / 100} - ${THICKNESS}px) ${WAVE_REACH * 2}px` : undefined\n }],\n waveFlat: {\n kSiTet: \"xg01cxk\",\n $$css: true\n },\n waveMotion: {\n k6CgDc: \"x12w9bfk\",\n kjVXCG: \"x1i9vjva xbabvq0\",\n kIyJzY: \"xioksi3\",\n k1ekBW: \"xvfbvx2\",\n kAMwcw: \"x16pyfke\",\n $$css: true\n }\n};\ntype ProgressIndicatorProps = {\n /**\n * How far the work is loaded ahead of the value — a video's buffered\n * seconds, a queue's fetched pages. Read on the same scale as `value`: the\n * track is solid up to it and dotted beyond. Ignored while the indicator\n * is indeterminate, and left out for work with nothing to buffer.\n */\n buffer?: number;\n /** A function may compute the class from the indicator's render state. */\n className?: RACProgressBarProps['className'];\n /**\n * How wide the ring is drawn, as a CSS length. Everything inside scales\n * with it, so `1em` gives a ring the size of the type around it. Ignored\n * by the line, which fills the width it is given.\n *\n * A length rather than a step of the size scale: a ring sized to the type\n * around it is what the prop is for, and no fixed scale gives that.\n * @default '40px', or '48px' for the wavy ring\n */\n diameter?: string;\n /**\n * What the work is, shown above the indicator. A screen reader reads it as\n * the indicator's name; an indicator whose surroundings name it takes\n * `aria-label` instead and leaves this out.\n */\n label?: ReactNode;\n /**\n * The page's two shapes. `wavy` draws the active indicator as a wave,\n * which lies flat near either end of a determinate value, and leaves the\n * track and the stop flat; the wavy ring is 48dp across rather than 40.\n * Under `prefers-reduced-motion` a wavy indicator is drawn flat.\n * @default 'flat'\n */\n shape?: ProgressIndicatorShape;\n /**\n * Whether the value is shown beside the label. Ignored while the indicator\n * is indeterminate, which has no value to show.\n * @default false\n */\n showValue?: boolean;\n /** A function may compute the style from the indicator's render state. */\n style?: RACProgressBarProps['style'];\n /**\n * Which colours it is drawn in. `primary` is the page's own pair — the\n * active indicator in primary over a secondary container track — and\n * `inherit` takes the colour around it, for an indicator inside something\n * that already has one, such as a button, where primary would be the fill.\n * @default 'primary'\n */\n tone?: ProgressIndicatorTone;\n /**\n * The line the page draws, or the ring: `linear` fills the width it is\n * given, `circular` is 40dp across.\n * @default 'linear'\n */\n variant?: ProgressIndicatorVariant;\n} & Omit<RACProgressBarProps, 'children' | 'className' | 'style'>;\ntype ProgressIndicatorShape = 'flat' | 'wavy';\n\n// The two of the shared line's four tones an indicator draws. The other two\n// say how a measurement reads, which is a meter's business rather than a\n// running task's.\ntype ProgressIndicatorTone = Extract<IndicatorTone, 'inherit' | 'primary'>;\ntype ProgressIndicatorVariant = 'circular' | 'linear';\n\n// The dashes that cut the two arcs out of one circle. The active arc runs\n// from the top for its share of the circumference; the track picks up 4dp\n// after it and stops 4dp before it comes back round, which is the page's gap\n// measured along the curve.\nfunction arcsFor(percentage: number | undefined, circumference: number) {\n const active = (percentage ?? 0) / 100 * circumference;\n const track = Math.max(0, circumference - active - 2 * GAP);\n return {\n active: {\n strokeDasharray: `${active} ${circumference}`,\n strokeDashoffset: 0\n },\n track: {\n strokeDasharray: `${track} ${circumference}`,\n strokeDashoffset: -(active + GAP)\n }\n };\n}\n\n// How much of the track the buffer covers. The buffer is read on the value's\n// scale, and the track holds what the value has not taken, so the solid part\n// is the buffer's share of that remainder.\nfunction bufferShare(buffer: number | undefined, percentage: number | undefined, minValue: number, maxValue: number) {\n if (buffer === undefined) {\n return undefined;\n }\n const value = percentage ?? 0;\n const range = maxValue - minValue;\n const buffered = range === 0 ? 0 : (buffer - minValue) / range * 100;\n const remaining = 100 - value;\n if (remaining <= 0) {\n return 0;\n }\n return Math.min(100, Math.max(0, (buffered - value) / remaining * 100));\n}\nfunction CircularTrack({\n diameter,\n isIndeterminate,\n percentage,\n shape,\n tone\n}: {\n diameter: string;\n isIndeterminate: boolean;\n percentage: number | undefined;\n shape: ProgressIndicatorShape;\n tone: ProgressIndicatorTone;\n}) {\n const inherit = tone === 'inherit';\n const wavy = shape === 'wavy';\n const size = wavy ? WAVY_SIZE : CIRCULAR_SIZE;\n const radius = wavy ? WAVY_RADIUS : RADIUS;\n const circumference = wavy ? WAVY_CIRCUMFERENCE : CIRCUMFERENCE;\n const arcs = arcsFor(percentage, circumference);\n const waving = wavy && (isIndeterminate || isWaving(percentage));\n return <svg aria-hidden=\"true\" viewBox={`0 0 ${size} ${size}`} {...stylex.props(styles.circular, styles.circularSize(diameter), isIndeterminate && styles.circularIndeterminate)}>\n {isIndeterminate ? null : <circle cx={size / 2} cy={size / 2} fill=\"none\" r={radius} strokeDasharray={arcs.track.strokeDasharray} strokeDashoffset={arcs.track.strokeDashoffset} strokeLinecap=\"round\" strokeWidth={THICKNESS} {...stylex.props(styles.arcMotion, styles.arcTrack, inherit && indicatorStyles.inheritTrack)} />}\n <circle cx={size / 2} cy={size / 2} fill=\"none\" pathLength={isIndeterminate ? 100 : undefined} r={radius} strokeDasharray={isIndeterminate ? undefined : arcs.active.strokeDasharray} strokeDashoffset={isIndeterminate ? undefined : arcs.active.strokeDashoffset} strokeLinecap=\"round\" strokeWidth={THICKNESS} {...stylex.props(isIndeterminate ? styles.arcIndeterminate : styles.arcMotion, isIndeterminate ? null : styles.arcActive, inherit && indicatorStyles.inheritActive, wavy && !isIndeterminate && styles.arcFade, waving && styles.flatUnderWave)} />\n {wavy ?\n // The wave, over the flat arc and cut by the same dashes. Measured\n // as the circle it runs round, so a length along it is a share of\n // the way round.\n <path d={RING_WAVE} fill=\"none\" pathLength={isIndeterminate ? 100 : circumference} strokeDasharray={isIndeterminate ? undefined : arcs.active.strokeDasharray} strokeLinecap=\"round\" strokeWidth={THICKNESS} {...stylex.props(isIndeterminate ? styles.arcIndeterminate : styles.arcMotion, isIndeterminate ? null : [styles.arcActive, styles.arcFade], inherit && indicatorStyles.inheritActive, styles.ringWave, !waving && styles.waveFlat)} /> : null}\n </svg>;\n}\n\n// What the indicator draws, from React Aria's render state. Built by a call\n// rather than written inline at the prop, which is what react-perf's\n// no-new-function-as-prop is after; the React Compiler memoises the result\n// on its inputs.\nfunction indicatorContent(label: ReactNode, showValue: boolean, variant: ProgressIndicatorVariant, buffer: number | undefined, minValue: number, maxValue: number, diameter: string, shape: ProgressIndicatorShape, tone: ProgressIndicatorTone) {\n return (state: ProgressBarRenderProps) => <>\n <IndicatorLabels label={label} value={showValue && !state.isIndeterminate ? state.valueText : undefined} />\n {variant === 'circular' ? <CircularTrack diameter={diameter} isIndeterminate={state.isIndeterminate} percentage={state.percentage} shape={shape} tone={tone} /> : <LinearTrack buffer={bufferShare(buffer, state.percentage, minValue, maxValue)} isIndeterminate={state.isIndeterminate} percentage={state.percentage} shape={shape} tone={tone} />}\n </>;\n}\n\n// Whether a determinate wave stands at this value — see `WAVE_FROM`.\nfunction isWaving(percentage: number | undefined) {\n const value = percentage ?? 0;\n return value > WAVE_FROM && value < WAVE_UNTIL;\n}\nfunction LinearTrack({\n buffer,\n isIndeterminate,\n percentage,\n shape,\n tone\n}: {\n buffer: number | undefined;\n isIndeterminate: boolean;\n percentage: number | undefined;\n shape: ProgressIndicatorShape;\n tone: ProgressIndicatorTone;\n}) {\n const inherit = tone === 'inherit';\n const wavy = shape === 'wavy';\n if (isIndeterminate) {\n const bars = <div className=\"xqu0tyb x1dkaolv x9f619 xh8yej3 xb3r6kr x1n2onr6 x19axjrm x1c071of\">\n <span {...stylex.props(styles.indeterminateTrack, inherit && indicatorStyles.inheritTrack)} />\n <span {...{\n 0: {\n className: \"xqu0tyb x9f619 xh8yej3 x13vifvy x10l6tqk x1nf803f xy02sl2 x1c74tu6 xa4qsjk x4hg7df x1esw782 xoia761\"\n },\n 1: {\n className: \"xqu0tyb x9f619 xh8yej3 x13vifvy x10l6tqk x1nf803f xy02sl2 x1c74tu6 xa4qsjk x4hg7df x1esw782 xoia761 xg01cxk x19xn7b2 x16dpw5u\"\n }\n }[!!wavy << 0]}>\n <span {...stylex.props(styles.indeterminateBarInner, styles.primaryBarInner, inherit && indicatorStyles.inheritActive)} />\n </span>\n <span {...{\n 0: {\n className: \"xqu0tyb x9f619 xh8yej3 x13vifvy x10l6tqk x1nf803f xy02sl2 x1c74tu6 xa4qsjk x1pdi2bj x1esw782 xnsac6p\"\n },\n 1: {\n className: \"xqu0tyb x9f619 xh8yej3 x13vifvy x10l6tqk x1nf803f xy02sl2 x1c74tu6 xa4qsjk x1pdi2bj x1esw782 xnsac6p xg01cxk x19xn7b2 x16dpw5u\"\n }\n }[!!wavy << 0]}>\n <span {...stylex.props(styles.indeterminateBarInner, styles.secondaryBarInner, inherit && indicatorStyles.inheritActive)} />\n </span>\n </div>;\n if (!wavy) {\n return bars;\n }\n return <div className=\"x6s0dn4 x170jfvy x9f619 x12h1iku x78zum5 xh8yej3 x1n2onr6\">\n {bars}\n <svg aria-hidden=\"true\" className=\"x5yr21d x9f619 x1lliihq x1r7bp8 xkio4u3 xh8yej3 x13vifvy xu96u03 xb3r6kr x47corl x10l6tqk x19axjrm x1c071of\">\n <path d={INDETERMINATE_WAVE.path} fill=\"none\" pathLength={INDETERMINATE_WAVE.extent} strokeLinecap=\"round\" strokeWidth={THICKNESS} {...stylex.props(styles.primaryWave, inherit && indicatorStyles.inheritActive)} />\n <path d={INDETERMINATE_WAVE.path} fill=\"none\" pathLength={INDETERMINATE_WAVE.extent} strokeLinecap=\"round\" strokeWidth={THICKNESS} {...stylex.props(styles.secondaryWave, inherit && indicatorStyles.inheritActive)} />\n </svg>\n </div>;\n }\n const waving = wavy && isWaving(percentage);\n const line = <IndicatorLine activeStyle={waving ? styles.activeUnderWave : wavy ? styles.activeFade : null} percentage={percentage ?? 0} tone={tone}>\n {buffer === undefined ? undefined : <>\n <span {...stylex.props(styles.trackBuffered, styles.trackBufferedAt(buffer), inherit && indicatorStyles.inheritTrack)} />\n <span {...{\n 0: {\n className: \"x114jyov xs4xyr0 xa4qsjk xwx18z9 x1esw782 x1d6qlk4 x1w3jsh0 xwj9l49 x5yr21d x9f619 x1iyjqo2 xeuugli\"\n },\n 1: {\n className: \"x114jyov xs4xyr0 xa4qsjk xwx18z9 x1esw782 x1w3jsh0 xwj9l49 x5yr21d x9f619 x1iyjqo2 xeuugli x1larodg\"\n }\n }[!!inherit << 0]} />\n </>}\n </IndicatorLine>;\n if (!wavy) {\n return line;\n }\n return <div className=\"x6s0dn4 x170jfvy x9f619 x12h1iku x78zum5 xh8yej3 x1n2onr6\">\n {line}\n <svg aria-hidden=\"true\" className=\"x5yr21d x9f619 x1lliihq x1r7bp8 xkio4u3 xh8yej3 x13vifvy xu96u03 xb3r6kr x47corl x10l6tqk x19axjrm x1c071of\">\n <path d={DETERMINATE_WAVE.path} fill=\"none\" pathLength={DETERMINATE_WAVE.extent} strokeLinecap=\"round\" strokeWidth={THICKNESS} {...stylex.props(styles.waveMotion, styles.waveAt(percentage ?? 0), !waving && styles.waveFlat, inherit && indicatorStyles.inheritActive)} />\n </svg>\n </div>;\n}\n\n// A wave along the line, `wavelength` apart and `WAVE_AMPLITUDE` either side\n// of the middle of its row, from the half stroke a round cap needs at the\n// start to past `WAVE_REACH`. Each half wave is one cubic whose control\n// points sit 4/(3π) of the way in from either end at 4/3 of the amplitude,\n// which crests at the amplitude and leaves the middle at a sine's own slope;\n// `s` mirrors the last control point, so every half wave after the first is\n// the same short command with its sign flipped. `extent` is how far it runs\n// across, which the path is measured in.\nfunction linearWave(wavelength: number) {\n const half = wavelength / 2;\n const inset = round(4 / (3 * Math.PI) * half);\n const lift = round(4 / 3 * WAVE_AMPLITUDE);\n const halves = Math.ceil(WAVE_REACH / half) + 1;\n let path = `M${THICKNESS / 2} ${WAVE_HEIGHT / 2}c${inset} ${-lift} ${round(half - inset)} ${-lift} ${half} 0`;\n for (let index = 1; index < halves; index++) {\n path += `s${round(half - inset)} ${index % 2 === 0 ? -lift : lift} ${half} 0`;\n }\n return {\n extent: halves * half,\n path\n };\n}\n\n/**\n * Progress through a task, as a line or a ring. Its value is React Aria's:\n * pass `value` between `minValue` and `maxValue`, or leave `value` out and\n * set `isIndeterminate` for work whose length is not known. `formatOptions`\n * says how the value reads, in the locale the page is in, and `buffer` marks\n * how far the work is loaded ahead of it.\n *\n * The call site's `className` and `style` land on the indicator as a whole,\n * which is the element a layout positions.\n */\nfunction ProgressIndicator({\n buffer,\n diameter,\n label,\n maxValue = 100,\n minValue = 0,\n shape = 'flat',\n showValue = false,\n tone = 'primary',\n variant = 'linear',\n ...props\n}: ProgressIndicatorProps & RefAttributes<HTMLDivElement>) {\n return <ProgressBar maxValue={maxValue} minValue={minValue} {...props} {...mergeStatefulStyles(stylex.props(indicatorStyles.root, variant === 'circular' && styles.rootCircular), props)}>\n {indicatorContent(label, showValue, variant, buffer, minValue, maxValue, diameter ?? (shape === 'wavy' ? WAVY_SIZE_PX : CIRCULAR_SIZE_PX), shape, tone)}\n </ProgressBar>;\n}\n\n// The wavy ring's path: `RING_WAVES` crests round the circle the wave runs\n// round, as 20 points to a wave, starting at three o'clock and running\n// clockwise as the circle's own dashes do.\nfunction ringWave() {\n const points = RING_WAVES * 20;\n const centre = WAVY_SIZE / 2;\n let path = '';\n for (let index = 0; index < points; index++) {\n const angle = index / points * 2 * Math.PI;\n const radius = WAVY_RADIUS + RING_AMPLITUDE * Math.sin(RING_WAVES * angle);\n path += `${index === 0 ? 'M' : 'L'}${round(centre + radius * Math.cos(angle))} ${round(centre + radius * Math.sin(angle))}`;\n }\n return `${path}Z`;\n}\n\n// Three decimal places, which keeps the paths short without moving a point\n// by anything a screen could show.\nfunction round(value: number) {\n return Math.round(value * 1000) / 1000;\n}\nexport type { ProgressIndicatorProps, ProgressIndicatorShape, ProgressIndicatorTone, ProgressIndicatorVariant };\nexport default ProgressIndicator;"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["c","_c","ReactNode","RefAttributes","ProgressBarRenderProps","ProgressBarProps","RACProgressBarProps","stylex","ProgressBar","IndicatorTone","IndicatorLabels","IndicatorLine","indicatorStyles","mergeStatefulStyles","colors","motion","radii","CIRCULAR_SIZE","CIRCULAR_SIZE_PX","THICKNESS","GAP","RADIUS","CIRCUMFERENCE","Math","PI","FORCED_COLORS","ARC_MS","CYCLE_MS","ROTATE_MS","round","RING_EASING","INDETERMINATE_MS","BUFFER_MS","LINE_SLOWDOWN","RING_SLOWDOWN","WAVE_AMPLITUDE","WAVE_WAVELENGTH","INDETERMINATE_WAVELENGTH","WAVE_HEIGHT","WAVE_REACH","DETERMINATE_EASING","WAVE_FROM","WAVE_UNTIL","WAVY_SIZE","WAVY_SIZE_PX","RING_AMPLITUDE","RING_WAVELENGTH","WAVY_RADIUS","WAVY_CIRCUMFERENCE","RING_WAVES","REDUCED_MOTION","TOO_WIDE","DETERMINATE_WAVE","linearWave","INDETERMINATE_WAVE","RING_WAVE","ringWave","primaryTranslate","primaryScale","secondaryTranslate","secondaryScale","buffering","expandArc","travelArc","spin","primaryWaveOffset","primaryWaveLength","secondaryWaveOffset","secondaryWaveLength","_temp","kZKoxP","kzqmXN","_temp2","_temp3","k5rJSQ","styles","activeFade","k1ekBW","$$css","activeUnderWave","kSiTet","arcActive","kjVXCG","arcFade","arcIndeterminate","kkDQuc","k44tkh","ko0y90","kKVMdj","kyAemX","arcMotion","k6CgDc","kIyJzY","kAMwcw","arcTrack","circular","kB7OPa","k1xSpc","k3aq6I","circularIndeterminate","circularSize","size","val","undefined","flatUnderWave","indeterminateBarInner","kWkggS","kaIpWk","kpwlN0","kVAEAm","indeterminateTrack","kjBf7l","kInvED","k3XXqK","kMeerF","primaryBarInner","primaryWave","rootCircular","kXLuUW","secondaryBarInner","secondaryWave","trackBuffered","kmuXW","trackBufferedAt","share","waveAt","percentage","waveFlat","waveMotion","ProgressIndicatorProps","buffer","className","diameter","label","shape","ProgressIndicatorShape","showValue","style","tone","ProgressIndicatorTone","variant","ProgressIndicatorVariant","Omit","Extract","arcsFor","circumference","active","track","max","strokeDasharray","strokeDashoffset","bufferShare","minValue","maxValue","value","range","buffered","remaining","min","CircularTrack","t0","$","isIndeterminate","inherit","wavy","radius","t1","arcs","t2","isWaving","waving","t3","t4","props","t5","inheritTrack","t6","t7","t8","t9","t10","t11","inheritActive","t12","t13","t14","indicatorContent","state","valueText","LinearTrack","Symbol","for","0","1","bars","t15","path","extent","t16","t17","t18","t19","line","wavelength","half","inset","lift","halves","ceil","index","ProgressIndicator","T0","root","points","centre","angle","sin","cos","_c","stylex.props","props"],"sources":["../../../src/components/progress-indicator/index.tsx"],"sourcesContent":["'use client';\n\nimport type { ReactNode, RefAttributes } from 'react';\nimport type { ProgressBarRenderProps, ProgressBarProps as RACProgressBarProps } from 'react-aria-components';\nimport * as stylex from '@stylexjs/stylex';\nimport { ProgressBar } from 'react-aria-components';\nimport type { IndicatorTone } from '../../indicator/styles';\nimport { IndicatorLabels, IndicatorLine } from '../../indicator';\nimport { indicatorStyles } from '../../indicator/styles';\nimport { mergeStatefulStyles } from '../../styles/merge';\nimport '../../tokens/design.tokens.stylex';\nimport { colors, motion, radii } from '../../tokens/design.tokens.stylex';\n\n// The progress indicators page's indicator, as a line or a ring, in either\n// of the page's two shapes, flat and wavy. Both carry the three parts the\n// page's anatomy names — the active indicator in primary, the track in\n// secondary container, and, on the line, the stop indicator in primary at\n// the end — at the page's 4dp thickness, with the 4dp gap its measurements\n// give either side of the track. The flat ring is the page's default 40dp of\n// the four sizes it draws, and the wavy ring the 48dp its wave needs room\n// for.\n//\n// The determinate line is a row of those parts: the active indicator takes\n// the value's share of what the gaps and the stop leave, and the track takes\n// the rest — see `activeAt` in src/indicator/styles.ts. The\n// determinate ring is two arcs of one circle, cut by the dash pattern: the\n// active arc runs from the top for its share of the circumference, and the\n// track picks up 4dp past it and stops 4dp before it comes back round,\n// which is the same gap measured along the curve.\n//\n// The animations are Material's own rather than something assembled from\n// the motion tokens: an indeterminate indicator is a piece of choreography,\n// and one written from scratch reads as a different component beside a\n// Material app. Material Web and Angular Material both descend from the\n// same implementation and agree on every number, so the numbers here are\n// theirs — the line's two bars and their four keyframe sets, the buffer's\n// scrolling dots, the ring's 1333ms arc, its four-arc cycle and its 1568ms\n// rotation, and the 250ms and 500ms a determinate value moves over.\n//\n// Two things are decided differently, both after reading the two of them.\n//\n// The ring is one dashed arc rather than two halves. Material Web draws it\n// as a pair of bordered half-circles, Angular as a pair of clipped SVG\n// circles with a patch over the seam between them; both constructions exist\n// to work around that split, and a single arc whose dash pattern is\n// animated needs neither and shares its geometry with the determinate ring.\n// The three effects it composes are still theirs: the arc grows and shrinks\n// over the arc's duration, its start travels the circle over four of those,\n// and the whole thing turns over the rotation's.\n//\n// Under `prefers-reduced-motion` the motion slows rather than stopping,\n// which is Angular's answer and the better one: an indicator that freezes\n// stops saying the work is going on, and a frozen arc caught at its short\n// end reads as broken. The multipliers are Angular's — two for the line,\n// and a quarter more for the ring. The buffer's dots are the exception and\n// stop: they are drawn on a determinate line, whose value is what says the\n// work is going on, so their movement tells a reader nothing and is only\n// movement.\n//\n// The wavy shape draws the active indicator as a wave and leaves the track\n// and the stop flat, as the page does. Its numbers are Material's own, from\n// its Compose and Android components: on the line a 3dp amplitude, a 40dp\n// wavelength and a 10dp row, with a 20dp wavelength while indeterminate; on\n// the ring a 1.6dp amplitude and a 15dp wavelength, rounded to a whole\n// number of waves so the wave closes on itself. A determinate wave lies flat\n// up to a tenth of the way and from 95% on, which is Material's rule too: a\n// wave too short to hold a crest reads as a wobble, and one about to finish\n// settles into the line it ends as.\n//\n// The wave is drawn over the flat drawing rather than in place of it, and\n// the two are crossfaded as the value crosses those bounds. The flat drawing\n// is also what a reader who has asked for reduced motion sees, since a wave\n// is motion even standing still, and what a line wider than `WAVE_REACH` is\n// drawn as. The line's wave is a path of that fixed length, cut to the value\n// by a dash written against the row's own width in container query units,\n// `100cqi`, so nothing has to measure the row before the wave can be drawn.\n//\n// React Aria's `ProgressBar` is the root: it carries the role, the value and\n// its text, and reports the percentage and whether it is indeterminate as\n// render state, which is what everything here is drawn from.\n\n// The circle the arcs are cut from. The radius is the diameter less the\n// stroke, halved, so the stroke sits inside the 40dp box rather than\n// straddling its edge.\n//\n// The thickness and the gap are the same 4dp the shared line is drawn at,\n// written again rather than imported from `src/indicator/styles`: StyleX\n// evaluates the values inside `stylex.create` and `stylex.keyframes` as it\n// compiles, and will not follow an import to a module that is not a theme\n// to reach one — an imported constant fails the transform outright.\nconst CIRCULAR_SIZE = 40;\n// The same value as a length, hoisted rather than built at the parameter.\n// The compiler has no safe reordering for a template literal, so one written\n// as a default parameter skips the whole component around it — which the\n// panic threshold this lands beside turns into a build failure.\nconst CIRCULAR_SIZE_PX = `${CIRCULAR_SIZE}px`;\nconst THICKNESS = 4;\nconst GAP = 4;\nconst RADIUS = (CIRCULAR_SIZE - THICKNESS) / 2;\nconst CIRCUMFERENCE = 2 * Math.PI * RADIUS;\n\n// Windows High Contrast and the rest of the forced-colours modes. Spelled\n// here rather than imported, for the reason src/field/styles.ts records: the\n// StyleX compiler resolves a constant across files only out of a `.stylex.ts`\n// module, and the generated one holds design tokens rather than queries.\nconst FORCED_COLORS = '@media (forced-colors: active)';\n\n// The ring's timings. The arc is 1333ms; a full cycle is four of them; and\n// the rotation is the arc scaled by 360/306, which is the arc's start\n// rotation plus the circle less the arc's size.\nconst ARC_MS = 1333;\nconst CYCLE_MS = ARC_MS * 4;\nconst ROTATE_MS = Math.round(ARC_MS * 360 / 306);\nconst RING_EASING = 'cubic-bezier(0.4, 0, 0.2, 1)';\n\n// The line's own: 2s for an indeterminate pass, and the 250ms the buffer's\n// dots take to scroll one pitch. What a determinate value moves over is the\n// shared line's, since a meter moves the same way.\nconst INDETERMINATE_MS = 2000;\nconst BUFFER_MS = 250;\n\n// What `prefers-reduced-motion` slows each indeterminate shape by.\nconst LINE_SLOWDOWN = 2;\nconst RING_SLOWDOWN = 1.25;\n\n// The wavy line: the wave's amplitude either side of the middle, its two\n// wavelengths, and the row it is drawn in, which is the amplitude either side\n// plus the stroke. `WAVE_REACH` is how far the wave runs, and a row wider\n// than that draws flat. The easing is the shared line's, written again for\n// the reason the thickness is.\nconst WAVE_AMPLITUDE = 3;\nconst WAVE_WAVELENGTH = 40;\nconst INDETERMINATE_WAVELENGTH = 20;\nconst WAVE_HEIGHT = WAVE_AMPLITUDE * 2 + THICKNESS;\nconst WAVE_REACH = 2048;\nconst DETERMINATE_EASING = 'cubic-bezier(0.4, 0, 0.6, 1)';\n\n// Where a determinate wave stands up and where it lies down again, as\n// percentages of the way.\nconst WAVE_FROM = 10;\nconst WAVE_UNTIL = 95;\n\n// The wavy ring: the 48dp box, the amplitude, and the circle the wave runs\n// round, pulled in by the amplitude so its crests stay inside the box. The\n// wave count is the wavelength's share of that circle, rounded — nine.\nconst WAVY_SIZE = 48;\nconst WAVY_SIZE_PX = `${WAVY_SIZE}px`;\nconst RING_AMPLITUDE = 1.6;\nconst RING_WAVELENGTH = 15;\nconst WAVY_RADIUS = (WAVY_SIZE - THICKNESS) / 2 - RING_AMPLITUDE;\nconst WAVY_CIRCUMFERENCE = 2 * Math.PI * WAVY_RADIUS;\nconst RING_WAVES = Math.round(WAVY_CIRCUMFERENCE / RING_WAVELENGTH);\nconst REDUCED_MOTION = '@media (prefers-reduced-motion: reduce)';\nconst TOO_WIDE = `@container (inline-size > ${WAVE_REACH}px)`;\n\n// The paths the waves are drawn along, built once.\nconst DETERMINATE_WAVE = linearWave(WAVE_WAVELENGTH);\nconst INDETERMINATE_WAVE = linearWave(INDETERMINATE_WAVELENGTH);\nconst RING_WAVE = ringWave();\n\n// The two bars of the indeterminate line, translated and scaled at once.\nconst primaryTranslate = \"x1pch1fy-B\";\nconst primaryScale = \"xxyp5q1-B\";\nconst secondaryTranslate = \"xzo9tdn-B\";\nconst secondaryScale = \"x1w7bnrt-B\";\n\n// The buffer's dots scroll by one pitch of the pattern and start again.\nconst buffering = \"x19sykc1-B\";\n\n// The arc's own length, written against a path the circle normalises to 100\n// with `pathLength`, so these are percentages of the circumference rather\n// than lengths StyleX would have to work out.\n//\n// Material contracts to 10 degrees of turn and grows to 270. The 270 is 75\n// of the circumference and is written as it is; the 10 is not, because the\n// page's rounded ends change what a short dash draws. A round cap adds half\n// the stroke at each end, so a 10-degree dash on the 40dp ring is 3px of\n// path inside a 7px capsule of 4px stroke — a dot rather than the sliver\n// Material's square-cut ends give at the same angle. 8 is the shortest the\n// cap still draws as an arc, and it is the floor for that reason rather\n// than because the page names it.\n//\n// Each pattern's dash and gap sum to the circle's 100, at every step of the\n// interpolation between them, so the pattern repeats exactly once round\n// the ring. A dash does not wrap past the start of a closed path, so with a\n// longer period — the dash and a gap of 100 — an arc that had travelled late\n// round the ring was cut off at the path's end, down to a dot, and grew back\n// from somewhere else. And the 100 is what makes `travelArc`'s last offset,\n// -300, the same position as its first, so the loop has no seam.\nconst expandArc = \"x17j028-B\";\n\n// Where the arc starts. Material turns it in eight increments of 135 degrees\n// rather than at a constant rate, each eased with the same curve the arc's\n// growth uses, so it settles at each position and springs to the next; three\n// full turns over the cycle, under the rotation's own single turn. The\n// numbers here are those angles along a path of 100: 135 degrees is 37.5 of\n// it, and 1080 degrees is 300.\nconst travelArc = \"x26nhu8-B\";\nconst spin = \"x1fy8ia8-B\";\n\n// The indeterminate line's two bars, as dashes along the wave. A bar's\n// translation is where its dash starts, so it moves the dash's offset, and\n// its scale is how long the dash is, so it moves the dash's length; both are\n// the bar keyframes above, at their times and on their curves, turned from\n// shares of the row into lengths of it. The offset is the bar's distance\n// before the row's start, which is where its keyframes put it: the primary\n// bar sits 145.167% back and travels 200.611% of the row, the secondary\n// 54.8889% back and travels 160.278%. The gap after the dash is four rows\n// long, so the dash after it never reaches the row.\nconst primaryWaveOffset = \"x1kfhhp5-B\";\nconst primaryWaveLength = \"x1yi1oyw-B\";\nconst secondaryWaveOffset = \"x18qdip-B\";\nconst secondaryWaveLength = \"x1b9nlqo-B\";\nconst _temp = {\n kZKoxP: \"xyq6l7l\",\n kzqmXN: \"x1uyokj7\",\n \"$$css\": true\n};\nconst _temp2 = {\n kzqmXN: \"x1uyokj7\",\n \"$$css\": true\n};\nconst _temp3 = {\n k5rJSQ: \"xqmdeo6\",\n \"$$css\": true\n};\nconst styles = {\n activeFade: {\n k1ekBW: \"x7x1mir\",\n $$css: true\n },\n activeUnderWave: {\n kSiTet: \"xg01cxk x19xn7b2 x16dpw5u\",\n k1ekBW: \"x7x1mir\",\n $$css: true\n },\n arcActive: {\n kjVXCG: \"x1i9vjva xbabvq0\",\n $$css: true\n },\n arcFade: {\n k1ekBW: \"x1t9qjwo\",\n $$css: true\n },\n arcIndeterminate: {\n kkDQuc: \"x12dwrod\",\n k44tkh: \"xxx5gdc\",\n ko0y90: \"x77zgwx\",\n kKVMdj: \"xz09zy6\",\n kyAemX: \"x1582zw4\",\n kjVXCG: \"x1i9vjva xbabvq0\",\n k1ekBW: \"x13b0p5u\",\n $$css: true\n },\n arcMotion: {\n k6CgDc: \"x12w9bfk\",\n kIyJzY: \"xd6oih7\",\n k1ekBW: \"xg0bdzq\",\n kAMwcw: \"x4ognrn\",\n $$css: true\n },\n arcTrack: {\n kjVXCG: \"xynoiew x8jos32\",\n $$css: true\n },\n circular: {\n kB7OPa: \"x9f619\",\n k1xSpc: \"x1lliihq\",\n k3aq6I: \"x9tu13d\",\n $$css: true\n },\n circularIndeterminate: {\n kkDQuc: \"x7hzzi\",\n k44tkh: \"x11c9iw4\",\n ko0y90: \"xa4qsjk\",\n kKVMdj: \"xpedhrg\",\n kyAemX: \"x1esw782\",\n k3aq6I: \"x1c071of\",\n $$css: true\n },\n circularSize: (size: string) => [_temp, {\n \"--x-blockSize\": (val => typeof val === \"number\" ? val + \"px\" : val != null ? val : undefined)(size),\n \"--x-inlineSize\": (val => typeof val === \"number\" ? val + \"px\" : val != null ? val : undefined)(size)\n }],\n flatUnderWave: {\n kSiTet: \"xg01cxk x16dpw5u\",\n $$css: true\n },\n indeterminateBarInner: {\n kWkggS: \"xnety89 x1jzqe4\",\n kaIpWk: \"x1dkaolv\",\n kB7OPa: \"x9f619\",\n kpwlN0: \"x10a8y8t\",\n kVAEAm: \"x10l6tqk\",\n $$css: true\n },\n indeterminateTrack: {\n kWkggS: \"x15dekr4\",\n kaIpWk: \"x1dkaolv\",\n kpwlN0: \"x10a8y8t\",\n kjBf7l: \"x3teovq\",\n kInvED: \"xvr1dqx\",\n k3XXqK: \"x815t2r\",\n kMeerF: \"xcthrzx\",\n kVAEAm: \"x10l6tqk\",\n $$css: true\n },\n primaryBarInner: {\n kkDQuc: \"xy02sl2\",\n k44tkh: \"x1c74tu6\",\n ko0y90: \"xa4qsjk\",\n kKVMdj: \"xkj56kq\",\n kyAemX: \"x1esw782\",\n $$css: true\n },\n primaryWave: {\n k44tkh: \"xy7unhy\",\n ko0y90: \"x77zgwx\",\n kKVMdj: \"x15en9ga\",\n kyAemX: \"xlges3w\",\n kjVXCG: \"x1i9vjva xbabvq0\",\n $$css: true\n },\n ringWave: {\n k1xSpc: \"xkio4u3\",\n $$css: true\n },\n rootCircular: {\n k1xSpc: \"x3nfvp2\",\n kzqmXN: \"x14atkfc\",\n kXLuUW: \"xxymvpz\",\n $$css: true\n },\n secondaryBarInner: {\n kkDQuc: \"xy02sl2\",\n k44tkh: \"x1c74tu6\",\n ko0y90: \"xa4qsjk\",\n kKVMdj: \"xnb0dd2\",\n kyAemX: \"x1esw782\",\n $$css: true\n },\n secondaryWave: {\n k44tkh: \"xy7unhy\",\n ko0y90: \"x77zgwx\",\n kKVMdj: \"x1sz9pa8\",\n kyAemX: \"xlges3w\",\n kjVXCG: \"x1i9vjva xbabvq0\",\n $$css: true\n },\n trackBuffered: {\n kWkggS: \"x15dekr4\",\n kZKoxP: \"x5yr21d\",\n kB7OPa: \"x9f619\",\n kmuXW: \"x2lah0s\",\n $$css: true\n },\n trackBufferedAt: (share: number) => [_temp2, {\n \"--x-inlineSize\": (val => typeof val === \"number\" ? val + \"px\" : val != null ? val : undefined)(`${share}%`)\n }],\n waveAt: (percentage: number) => [_temp3, {\n \"--x-strokeDasharray\": `max(0px, (100cqi - ${GAP * 2 + THICKNESS}px) * ${percentage / 100} - ${THICKNESS}px) ${WAVE_REACH * 2}px` != null ? `max(0px, (100cqi - ${GAP * 2 + THICKNESS}px) * ${percentage / 100} - ${THICKNESS}px) ${WAVE_REACH * 2}px` : undefined\n }],\n waveFlat: {\n kSiTet: \"xg01cxk\",\n $$css: true\n },\n waveMotion: {\n k6CgDc: \"x12w9bfk\",\n kjVXCG: \"x1i9vjva xbabvq0\",\n kIyJzY: \"xioksi3\",\n k1ekBW: \"xvfbvx2\",\n kAMwcw: \"x16pyfke\",\n $$css: true\n }\n};\ntype ProgressIndicatorProps = {\n /**\n * How far the work is loaded ahead of the value — a video's buffered\n * seconds, a queue's fetched pages. Read on the same scale as `value`: the\n * track is solid up to it and dotted beyond. Ignored while the indicator\n * is indeterminate, and left out for work with nothing to buffer.\n */\n buffer?: number;\n /** A function may compute the class from the indicator's render state. */\n className?: RACProgressBarProps['className'];\n /**\n * How wide the ring is drawn, as a CSS length. Everything inside scales\n * with it, so `1em` gives a ring the size of the type around it. Ignored\n * by the line, which fills the width it is given.\n *\n * A length rather than a step of the size scale: a ring sized to the type\n * around it is what the prop is for, and no fixed scale gives that.\n * @default '40px', or '48px' for the wavy ring\n */\n diameter?: string;\n /**\n * What the work is, shown above the indicator. A screen reader reads it as\n * the indicator's name; an indicator whose surroundings name it takes\n * `aria-label` instead and leaves this out.\n */\n label?: ReactNode;\n /**\n * The page's two shapes. `wavy` draws the active indicator as a wave,\n * which lies flat near either end of a determinate value, and leaves the\n * track and the stop flat; the wavy ring is 48dp across rather than 40.\n * Under `prefers-reduced-motion` a wavy indicator is drawn flat.\n * @default 'flat'\n */\n shape?: ProgressIndicatorShape;\n /**\n * Whether the value is shown at the end of the label's row. Ignored while\n * the indicator is indeterminate, which has no value to show. On a ring\n * the row sits above it, and the indicator is as wide as the wider of the\n * two.\n * @default false\n */\n showValue?: boolean;\n /** A function may compute the style from the indicator's render state. */\n style?: RACProgressBarProps['style'];\n /**\n * Which colours it is drawn in. `primary` is the page's own pair — the\n * active indicator in primary over a secondary container track — and\n * `inherit` takes the colour around it, for an indicator inside something\n * that already has one, such as a button, where primary would be the fill.\n * @default 'primary'\n */\n tone?: ProgressIndicatorTone;\n /**\n * The line the page draws, or the ring: `linear` fills the width it is\n * given, `circular` is 40dp across.\n * @default 'linear'\n */\n variant?: ProgressIndicatorVariant;\n} & Omit<RACProgressBarProps, 'children' | 'className' | 'style'>;\ntype ProgressIndicatorShape = 'flat' | 'wavy';\n\n// The two of the shared line's four tones an indicator draws. The other two\n// say how a measurement reads, which is a meter's business rather than a\n// running task's.\ntype ProgressIndicatorTone = Extract<IndicatorTone, 'inherit' | 'primary'>;\ntype ProgressIndicatorVariant = 'circular' | 'linear';\n\n// The dashes that cut the two arcs out of one circle. The active arc runs\n// from the top for its share of the circumference; the track picks up 4dp\n// after it and stops 4dp before it comes back round, which is the page's gap\n// measured along the curve.\nfunction arcsFor(percentage: number | undefined, circumference: number) {\n const active = (percentage ?? 0) / 100 * circumference;\n const track = Math.max(0, circumference - active - 2 * GAP);\n return {\n active: {\n strokeDasharray: `${active} ${circumference}`,\n strokeDashoffset: 0\n },\n track: {\n strokeDasharray: `${track} ${circumference}`,\n strokeDashoffset: -(active + GAP)\n }\n };\n}\n\n// How much of the track the buffer covers. The buffer is read on the value's\n// scale, and the track holds what the value has not taken, so the solid part\n// is the buffer's share of that remainder.\nfunction bufferShare(buffer: number | undefined, percentage: number | undefined, minValue: number, maxValue: number) {\n if (buffer === undefined) {\n return undefined;\n }\n const value = percentage ?? 0;\n const range = maxValue - minValue;\n const buffered = range === 0 ? 0 : (buffer - minValue) / range * 100;\n const remaining = 100 - value;\n if (remaining <= 0) {\n return 0;\n }\n return Math.min(100, Math.max(0, (buffered - value) / remaining * 100));\n}\nfunction CircularTrack({\n diameter,\n isIndeterminate,\n percentage,\n shape,\n tone\n}: {\n diameter: string;\n isIndeterminate: boolean;\n percentage: number | undefined;\n shape: ProgressIndicatorShape;\n tone: ProgressIndicatorTone;\n}) {\n const inherit = tone === 'inherit';\n const wavy = shape === 'wavy';\n const size = wavy ? WAVY_SIZE : CIRCULAR_SIZE;\n const radius = wavy ? WAVY_RADIUS : RADIUS;\n const circumference = wavy ? WAVY_CIRCUMFERENCE : CIRCUMFERENCE;\n const arcs = arcsFor(percentage, circumference);\n const waving = wavy && (isIndeterminate || isWaving(percentage));\n return <svg aria-hidden=\"true\" viewBox={`0 0 ${size} ${size}`} {...stylex.props(styles.circular, styles.circularSize(diameter), isIndeterminate && styles.circularIndeterminate)}>\n {isIndeterminate ? null : <circle cx={size / 2} cy={size / 2} fill=\"none\" r={radius} strokeDasharray={arcs.track.strokeDasharray} strokeDashoffset={arcs.track.strokeDashoffset} strokeLinecap=\"round\" strokeWidth={THICKNESS} {...stylex.props(styles.arcMotion, styles.arcTrack, inherit && indicatorStyles.inheritTrack)} />}\n <circle cx={size / 2} cy={size / 2} fill=\"none\" pathLength={isIndeterminate ? 100 : undefined} r={radius} strokeDasharray={isIndeterminate ? undefined : arcs.active.strokeDasharray} strokeDashoffset={isIndeterminate ? undefined : arcs.active.strokeDashoffset} strokeLinecap=\"round\" strokeWidth={THICKNESS} {...stylex.props(isIndeterminate ? styles.arcIndeterminate : styles.arcMotion, isIndeterminate ? null : styles.arcActive, inherit && indicatorStyles.inheritActive, wavy && !isIndeterminate && styles.arcFade, waving && styles.flatUnderWave)} />\n {wavy ?\n // The wave, over the flat arc and cut by the same dashes. Measured\n // as the circle it runs round, so a length along it is a share of\n // the way round.\n <path d={RING_WAVE} fill=\"none\" pathLength={isIndeterminate ? 100 : circumference} strokeDasharray={isIndeterminate ? undefined : arcs.active.strokeDasharray} strokeLinecap=\"round\" strokeWidth={THICKNESS} {...stylex.props(isIndeterminate ? styles.arcIndeterminate : styles.arcMotion, isIndeterminate ? null : [styles.arcActive, styles.arcFade], inherit && indicatorStyles.inheritActive, styles.ringWave, !waving && styles.waveFlat)} /> : null}\n </svg>;\n}\n\n// What the indicator draws, from React Aria's render state. Built by a call\n// rather than written inline at the prop, which is what react-perf's\n// no-new-function-as-prop is after; the React Compiler memoises the result\n// on its inputs.\nfunction indicatorContent(label: ReactNode, showValue: boolean, variant: ProgressIndicatorVariant, buffer: number | undefined, minValue: number, maxValue: number, diameter: string, shape: ProgressIndicatorShape, tone: ProgressIndicatorTone) {\n return (state: ProgressBarRenderProps) => <>\n <IndicatorLabels label={label} value={showValue && !state.isIndeterminate ? state.valueText : undefined} />\n {variant === 'circular' ? <CircularTrack diameter={diameter} isIndeterminate={state.isIndeterminate} percentage={state.percentage} shape={shape} tone={tone} /> : <LinearTrack buffer={bufferShare(buffer, state.percentage, minValue, maxValue)} isIndeterminate={state.isIndeterminate} percentage={state.percentage} shape={shape} tone={tone} />}\n </>;\n}\n\n// Whether a determinate wave stands at this value — see `WAVE_FROM`.\nfunction isWaving(percentage: number | undefined) {\n const value = percentage ?? 0;\n return value > WAVE_FROM && value < WAVE_UNTIL;\n}\nfunction LinearTrack({\n buffer,\n isIndeterminate,\n percentage,\n shape,\n tone\n}: {\n buffer: number | undefined;\n isIndeterminate: boolean;\n percentage: number | undefined;\n shape: ProgressIndicatorShape;\n tone: ProgressIndicatorTone;\n}) {\n const inherit = tone === 'inherit';\n const wavy = shape === 'wavy';\n if (isIndeterminate) {\n const bars = <div className=\"xqu0tyb x1dkaolv x9f619 xh8yej3 xb3r6kr x1n2onr6 x19axjrm x1c071of\">\n <span {...stylex.props(styles.indeterminateTrack, inherit && indicatorStyles.inheritTrack)} />\n <span {...{\n 0: {\n className: \"xqu0tyb x9f619 xh8yej3 x13vifvy x10l6tqk x1nf803f xy02sl2 x1c74tu6 xa4qsjk x4hg7df x1esw782 xoia761\"\n },\n 1: {\n className: \"xqu0tyb x9f619 xh8yej3 x13vifvy x10l6tqk x1nf803f xy02sl2 x1c74tu6 xa4qsjk x4hg7df x1esw782 xoia761 xg01cxk x19xn7b2 x16dpw5u\"\n }\n }[!!wavy << 0]}>\n <span {...stylex.props(styles.indeterminateBarInner, styles.primaryBarInner, inherit && indicatorStyles.inheritActive)} />\n </span>\n <span {...{\n 0: {\n className: \"xqu0tyb x9f619 xh8yej3 x13vifvy x10l6tqk x1nf803f xy02sl2 x1c74tu6 xa4qsjk x1pdi2bj x1esw782 xnsac6p\"\n },\n 1: {\n className: \"xqu0tyb x9f619 xh8yej3 x13vifvy x10l6tqk x1nf803f xy02sl2 x1c74tu6 xa4qsjk x1pdi2bj x1esw782 xnsac6p xg01cxk x19xn7b2 x16dpw5u\"\n }\n }[!!wavy << 0]}>\n <span {...stylex.props(styles.indeterminateBarInner, styles.secondaryBarInner, inherit && indicatorStyles.inheritActive)} />\n </span>\n </div>;\n if (!wavy) {\n return bars;\n }\n return <div className=\"x6s0dn4 x170jfvy x9f619 x12h1iku x78zum5 xh8yej3 x1n2onr6\">\n {bars}\n <svg aria-hidden=\"true\" className=\"x5yr21d x9f619 x1lliihq x1r7bp8 xkio4u3 xh8yej3 x13vifvy xu96u03 xb3r6kr x47corl x10l6tqk x19axjrm x1c071of\">\n <path d={INDETERMINATE_WAVE.path} fill=\"none\" pathLength={INDETERMINATE_WAVE.extent} strokeLinecap=\"round\" strokeWidth={THICKNESS} {...stylex.props(styles.primaryWave, inherit && indicatorStyles.inheritActive)} />\n <path d={INDETERMINATE_WAVE.path} fill=\"none\" pathLength={INDETERMINATE_WAVE.extent} strokeLinecap=\"round\" strokeWidth={THICKNESS} {...stylex.props(styles.secondaryWave, inherit && indicatorStyles.inheritActive)} />\n </svg>\n </div>;\n }\n const waving = wavy && isWaving(percentage);\n const line = <IndicatorLine activeStyle={waving ? styles.activeUnderWave : wavy ? styles.activeFade : null} percentage={percentage ?? 0} tone={tone}>\n {buffer === undefined ? undefined : <>\n <span {...stylex.props(styles.trackBuffered, styles.trackBufferedAt(buffer), inherit && indicatorStyles.inheritTrack)} />\n <span {...{\n 0: {\n className: \"xs4xyr0 xa4qsjk xwx18z9 x1aquc0h x1esw782 x1d6qlk4 x1w3jsh0 xwj9l49 x5yr21d x9f619 x1iyjqo2 xeuugli\"\n },\n 1: {\n className: \"xs4xyr0 xa4qsjk xwx18z9 x1aquc0h x1esw782 x1w3jsh0 xwj9l49 x5yr21d x9f619 x1iyjqo2 xeuugli x1larodg\"\n }\n }[!!inherit << 0]} />\n </>}\n </IndicatorLine>;\n if (!wavy) {\n return line;\n }\n return <div className=\"x6s0dn4 x170jfvy x9f619 x12h1iku x78zum5 xh8yej3 x1n2onr6\">\n {line}\n <svg aria-hidden=\"true\" className=\"x5yr21d x9f619 x1lliihq x1r7bp8 xkio4u3 xh8yej3 x13vifvy xu96u03 xb3r6kr x47corl x10l6tqk x19axjrm x1c071of\">\n <path d={DETERMINATE_WAVE.path} fill=\"none\" pathLength={DETERMINATE_WAVE.extent} strokeLinecap=\"round\" strokeWidth={THICKNESS} {...stylex.props(styles.waveMotion, styles.waveAt(percentage ?? 0), !waving && styles.waveFlat, inherit && indicatorStyles.inheritActive)} />\n </svg>\n </div>;\n}\n\n// A wave along the line, `wavelength` apart and `WAVE_AMPLITUDE` either side\n// of the middle of its row, from the half stroke a round cap needs at the\n// start to past `WAVE_REACH`. Each half wave is one cubic whose control\n// points sit 4/(3π) of the way in from either end at 4/3 of the amplitude,\n// which crests at the amplitude and leaves the middle at a sine's own slope;\n// `s` mirrors the last control point, so every half wave after the first is\n// the same short command with its sign flipped. `extent` is how far it runs\n// across, which the path is measured in.\nfunction linearWave(wavelength: number) {\n const half = wavelength / 2;\n const inset = round(4 / (3 * Math.PI) * half);\n const lift = round(4 / 3 * WAVE_AMPLITUDE);\n const halves = Math.ceil(WAVE_REACH / half) + 1;\n let path = `M${THICKNESS / 2} ${WAVE_HEIGHT / 2}c${inset} ${-lift} ${round(half - inset)} ${-lift} ${half} 0`;\n for (let index = 1; index < halves; index++) {\n path += `s${round(half - inset)} ${index % 2 === 0 ? -lift : lift} ${half} 0`;\n }\n return {\n extent: halves * half,\n path\n };\n}\n\n/**\n * Progress through a task, as a line or a ring. Its value is React Aria's:\n * pass `value` between `minValue` and `maxValue`, or leave `value` out and\n * set `isIndeterminate` for work whose length is not known. `formatOptions`\n * says how the value reads, in the locale the page is in, and `buffer` marks\n * how far the work is loaded ahead of it.\n *\n * The call site's `className` and `style` land on the indicator as a whole,\n * which is the element a layout positions.\n */\nfunction ProgressIndicator({\n buffer,\n diameter,\n label,\n maxValue = 100,\n minValue = 0,\n shape = 'flat',\n showValue = false,\n tone = 'primary',\n variant = 'linear',\n ...props\n}: ProgressIndicatorProps & RefAttributes<HTMLDivElement>) {\n return <ProgressBar maxValue={maxValue} minValue={minValue} {...props} {...mergeStatefulStyles(stylex.props(indicatorStyles.root, variant === 'circular' && styles.rootCircular), props)}>\n {indicatorContent(label, showValue, variant, buffer, minValue, maxValue, diameter ?? (shape === 'wavy' ? WAVY_SIZE_PX : CIRCULAR_SIZE_PX), shape, tone)}\n </ProgressBar>;\n}\n\n// The wavy ring's path: `RING_WAVES` crests round the circle the wave runs\n// round, as 20 points to a wave, starting at three o'clock and running\n// clockwise as the circle's own dashes do.\nfunction ringWave() {\n const points = RING_WAVES * 20;\n const centre = WAVY_SIZE / 2;\n let path = '';\n for (let index = 0; index < points; index++) {\n const angle = index / points * 2 * Math.PI;\n const radius = WAVY_RADIUS + RING_AMPLITUDE * Math.sin(RING_WAVES * angle);\n path += `${index === 0 ? 'M' : 'L'}${round(centre + radius * Math.cos(angle))} ${round(centre + radius * Math.sin(angle))}`;\n }\n return `${path}Z`;\n}\n\n// Three decimal places, which keeps the paths short without moving a point\n// by anything a screen could show.\nfunction round(value: number) {\n return Math.round(value * 1000) / 1000;\n}\nexport type { ProgressIndicatorProps, ProgressIndicatorShape, ProgressIndicatorTone, ProgressIndicatorVariant };\nexport default ProgressIndicator;"],"mappings":";;;;;;;;;AA0FA,MAAMiB,gBAAgB;AAKtB,MAAMC,mBAAmB,GAAGD,cAAa;AACzC,MAAME,YAAY;AAClB,MAAMC,MAAM;AACZ,MAAMC,SAAS;AACf,MAAMC,gBAAgB,IAAIC,KAAKC,KAAKH;AA+BpC,MAAMc,iBAAiB;AACvB,MAAMC,kBAAkB;AACxB,MAAMC,2BAA2B;AACjC,MAAMC,cAAcH;AACpB,MAAMI,aAAa;AAKnB,MAAME,YAAY;AAClB,MAAMC,aAAa;AAKnB,MAAMC,YAAY;AAClB,MAAMC,eAAe,GAAGD,UAAS;AACjC,MAAME,iBAAiB;AACvB,MAAMC,kBAAkB;AACxB,MAAMC,cAAc;AACpB,MAAMC,qBAAqB,IAAIzB,KAAKC,KAAKuB;AACzC,MAAME,aAAa1B,KAAKM,MAAMmB,qBAAqBF,eAAe;AAKlE,MAAMM,mBAAmBC,WAAWjB,eAAe;AACnD,MAAMkB,qBAAqBD,WAAWhB,wBAAwB;AAC9D,MAAMkB,YAAYC,SAAS;AAuD3B,MAAMa,QAAQ;CACZC,QAAQ;CACRC,QAAQ;CACR,SAAS;AACX;AACA,MAAMC,SAAS;CACbD,QAAQ;CACR,SAAS;AACX;AACA,MAAME,SAAS;CACbC,QAAQ;CACR,SAAS;AACX;AACA,MAAMC,SAAS;CACbC,YAAY;EACVC,QAAQ;EACRC,OAAO;CACT;CACAC,iBAAiB;EACfC,QAAQ;EACRH,QAAQ;EACRC,OAAO;CACT;CACAG,WAAW;EACTC,QAAQ;EACRJ,OAAO;CACT;CACAK,SAAS;EACPN,QAAQ;EACRC,OAAO;CACT;CACAM,kBAAkB;EAChBC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRP,QAAQ;EACRL,QAAQ;EACRC,OAAO;CACT;CACAY,WAAW;EACTC,QAAQ;EACRC,QAAQ;EACRf,QAAQ;EACRgB,QAAQ;EACRf,OAAO;CACT;CACAgB,UAAU;EACRZ,QAAQ;EACRJ,OAAO;CACT;CACAiB,UAAU;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRpB,OAAO;CACT;CACAqB,uBAAuB;EACrBd,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRS,QAAQ;EACRpB,OAAO;CACT;CACAsB,eAAeC,SAAiB,CAAChC,OAAO;EACtC,mBAAkBiC,QAAO,OAAOA,QAAQ,WAAWA,MAAM,OAAOA,OAAO,OAAOA,MAAMC,KAAAA,EAAAA,CAAWF,IAAI;EACnG,oBAAmBC,QAAO,OAAOA,QAAQ,WAAWA,MAAM,OAAOA,OAAO,OAAOA,MAAMC,KAAAA,EAAAA,CAAWF,IAAI;CACtG,CAAC;CACDG,eAAe;EACbxB,QAAQ;EACRF,OAAO;CACT;CACA2B,uBAAuB;EACrBC,QAAQ;EACRC,QAAQ;EACRX,QAAQ;EACRY,QAAQ;EACRC,QAAQ;EACR/B,OAAO;CACT;CACAgC,oBAAoB;EAClBJ,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRG,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRL,QAAQ;EACR/B,OAAO;CACT;CACAqC,iBAAiB;EACf9B,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRX,OAAO;CACT;CACAsC,aAAa;EACX9B,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRP,QAAQ;EACRJ,OAAO;CACT;CACAtB,UAAU;EACRyC,QAAQ;EACRnB,OAAO;CACT;CACAuC,cAAc;EACZpB,QAAQ;EACR1B,QAAQ;EACR+C,QAAQ;EACRxC,OAAO;CACT;CACAyC,mBAAmB;EACjBlC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRX,OAAO;CACT;CACA0C,eAAe;EACblC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRP,QAAQ;EACRJ,OAAO;CACT;CACA2C,eAAe;EACbf,QAAQ;EACRpC,QAAQ;EACR0B,QAAQ;EACR0B,OAAO;EACP5C,OAAO;CACT;CACA6C,kBAAkBC,UAAkB,CAACpD,QAAQ,EAC3C,oBAAmB8B,QAAO,OAAOA,QAAQ,WAAWA,MAAM,OAAOA,OAAO,OAAOA,MAAMC,KAAAA,EAAAA,CAAW,GAAGqB,MAAK,EAAG,EAC7G,CAAC;CACDC,SAASC,eAAuB,CAACrD,QAAQ,EACvC,uBAAuB,8BAAkDqD,aAAa,IAAG,KAAM3G,UAAS,MAAOoB,aAAa,EAAC,OAAQ,OAAO,8BAAkDuF,aAAa,IAAG,KAAM3G,UAAS,MAAOoB,aAAa,EAAC,MAAOgE,KAAAA,EAC3P,CAAC;CACDwB,UAAU;EACR/C,QAAQ;EACRF,OAAO;CACT;CACAkD,YAAY;EACVrC,QAAQ;EACRT,QAAQ;EACRU,QAAQ;EACRf,QAAQ;EACRgB,QAAQ;EACRf,OAAO;CACT;AACF;AAwEA,SAASkE,QAAQlB,YAAgCmB,eAAuB;CACtE,MAAMC,UAAUpB,cAAc,KAAK,MAAMmB;CACzC,MAAME,QAAQ5H,KAAK6H,IAAI,GAAGH,gBAAgBC,SAAS,CAAO;CAC1D,OAAO;EACLA,QAAQ;GACNG,iBAAiB,GAAGH,OAAM,GAAID;GAC9BK,kBAAkB;EACpB;EACAH,OAAO;GACLE,iBAAiB,GAAGF,MAAK,GAAIF;GAC7BK,kBAAkB,EAAEJ,SAAS9H;EAC/B;CACF;AACF;AAKA,SAASmI,YAAYrB,QAA4BJ,YAAgC0B,UAAkBC,UAAkB;CACnH,IAAIvB,WAAW3B,KAAAA,GACb;CAEF,MAAMmD,QAAQ5B,cAAc;CAC5B,MAAM6B,QAAQF,WAAWD;CACzB,MAAMI,WAAWD,UAAU,IAAI,KAAKzB,SAASsB,YAAYG,QAAQ;CACjE,MAAME,YAAY,MAAMH;CACxB,IAAIG,aAAa,GACf,OAAO;CAET,OAAOtI,KAAKuI,IAAI,KAAKvI,KAAK6H,IAAI,IAAIQ,WAAWF,SAASG,YAAY,GAAG,CAAC;AACxE;AACA,SAAAE,cAAAC,IAAA;CAAA,MAAAC,IAAAhK,EAAA,EAAA;CAAuB,MAAA,EAAAmI,UAAA8B,iBAAApC,YAAAQ,OAAAI,SAAAsB;CAarB,MAAAG,UAAgBzB,SAAS;CACzB,MAAA0B,OAAa9B,UAAU;CACvB,MAAAjC,OAAa+D,OAAAzH,YAAA1B;CACb,MAAAoJ,SAAeD,OAAArH,cAAA1B;CACf,MAAA4H,gBAAsBmB,OAAApH,qBAAA1B;CAA0C,IAAAgJ;CAAA,IAAAL,EAAA,OAAAhB,iBAAAgB,EAAA,OAAAnC,YAAA;EACnDwC,KAAAtB,QAAQlB,YAAYmB,aAAa;EAACgB,EAAA,KAAAhB;EAAAgB,EAAA,KAAAnC;EAAAmC,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAA/C,MAAAM,OAAaD;CAAmC,IAAAE;CAAA,IAAAP,EAAA,OAAAC,mBAAAD,EAAA,OAAAnC,cAAAmC,EAAA,OAAAG,MAAA;EACjCI,KAAAJ,SAASF,mBAAmBO,SAAS3C,UAAU;EAAEmC,EAAA,KAAAC;EAAAD,EAAA,KAAAnC;EAAAmC,EAAA,KAAAG;EAAAH,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAAhE,MAAAS,SAAeF;CACyB,MAAAG,KAAA,OAAOtE,KAAI,GAAIA;CAAM,IAAAuE;CAAA,IAAAX,EAAA,OAAA7B,YAAA6B,EAAA,OAAAC,iBAAA;EAAMU,KAAArK,MAAaoE,OAAMoB,UAAWpB,OAAMyB,aAAcgC,QAAQ,GAAG8B,mBAAmBvF,OAAMwB,qBAAsB;EAAC8D,EAAA,KAAA7B;EAAA6B,EAAA,KAAAC;EAAAD,EAAA,KAAAW;CAAA,OAAAA,KAAAX,EAAA;CAAA,IAAAa;CAAA,IAAAb,EAAA,QAAAM,QAAAN,EAAA,QAAAE,WAAAF,EAAA,QAAAC,mBAAAD,EAAA,QAAAI,UAAAJ,EAAA,QAAA5D,MAAA;EAC3KyE,KAAAZ,kBAAA,OAAyB,oBAAA,UAAA;GAAY,IAAA7D,OAAO;GAAO,IAAAA,OAAO;GAAQ,MAAA;GAAUgE,GAAAA;GAAyB,iBAAAE,KAAIpB,MAAME;GAAoC,kBAAAkB,KAAIpB,MAAMG;GAAiC,eAAA;GAAqBnI,aAAAA;GAAS,GAAMZ,MAAaoE,OAAMe,WAAYf,OAAMmB,UAAWqE,WAAWvJ,gBAAemK,YAAa;EAAC,CAAA;EAAId,EAAA,MAAAM;EAAAN,EAAA,MAAAE;EAAAF,EAAA,MAAAC;EAAAD,EAAA,MAAAI;EAAAJ,EAAA,MAAA5D;EAAA4D,EAAA,MAAAa;CAAA,OAAAA,KAAAb,EAAA;CACnT,MAAAe,KAAA3E,OAAO;CAAO,MAAA4E,KAAA5E,OAAO;CAA2B,MAAA6E,KAAAhB,kBAAA,MAAA3D,KAAAA;CAA+D,MAAA4E,KAAAjB,kBAAA3D,KAAAA,IAA8BgE,KAAIrB,OAAOG;CAAoC,MAAA+B,MAAAlB,kBAAA3D,KAAAA,IAA8BgE,KAAIrB,OAAOI;CAAiB,IAAA+B;CAAA,IAAApB,EAAA,QAAAE,WAAAF,EAAA,QAAAC,mBAAAD,EAAA,QAAAS,UAAAT,EAAA,QAAAG,MAAA;EAAoDiB,MAAA9K,MAAa2J,kBAAkBvF,OAAMS,mBAAoBT,OAAMe,WAAYwE,kBAAA,OAAyBvF,OAAMM,WAAYkF,WAAWvJ,gBAAe0K,eAAgBlB,QAAA,CAASF,mBAAmBvF,OAAMQ,SAAUuF,UAAU/F,OAAM6B,aAAc;EAACyD,EAAA,MAAAE;EAAAF,EAAA,MAAAC;EAAAD,EAAA,MAAAS;EAAAT,EAAA,MAAAG;EAAAH,EAAA,MAAAoB;CAAA,OAAAA,MAAApB,EAAA;CAAA,IAAAsB;CAAA,IAAAtB,EAAA,QAAAI,UAAAJ,EAAA,QAAAmB,OAAAnB,EAAA,QAAAoB,OAAApB,EAAA,QAAAe,MAAAf,EAAA,QAAAgB,MAAAhB,EAAA,QAAAiB,MAAAjB,EAAA,QAAAkB,IAAA;EAAjiBI,MAAA,oBAAA,UAAA;GAAY,IAAAP;GAAc,IAAAC;GAAe,MAAA;GAAmB,YAAAC;GAAsCb,GAAAA;GAAyB,iBAAAc;GAA6E,kBAAAC;GAA0E,eAAA;GAAqBjK,aAAAA;GAAS,GAAMkK;EAA2O,CAAA;EAAIpB,EAAA,MAAAI;EAAAJ,EAAA,MAAAmB;EAAAnB,EAAA,MAAAoB;EAAApB,EAAA,MAAAe;EAAAf,EAAA,MAAAgB;EAAAhB,EAAA,MAAAiB;EAAAjB,EAAA,MAAAkB;EAAAlB,EAAA,MAAAsB;CAAA,OAAAA,MAAAtB,EAAA;CAAA,IAAAuB;CAAA,IAAAvB,EAAA,QAAAM,QAAAN,EAAA,QAAAhB,iBAAAgB,EAAA,QAAAE,WAAAF,EAAA,QAAAC,mBAAAD,EAAA,QAAAS,UAAAT,EAAA,QAAAG,MAAA;EACpiBoB,MAAApB,OAIH,oBAAA,QAAA;GAAS7G,GAAAA;GAAgB,MAAA;GAAmB,YAAA2G,kBAAA,MAAAjB;GAAwD,iBAAAiB,kBAAA3D,KAAAA,IAA8BgE,KAAIrB,OAAOG;GAAgC,eAAA;GAAqBlI,aAAAA;GAAS,GAAMZ,MAAa2J,kBAAkBvF,OAAMS,mBAAoBT,OAAMe,WAAYwE,kBAAA,OAAA,CAA0BvF,OAAMM,WAAYN,OAAMQ,OAAQ,GAAGgF,WAAWvJ,gBAAe0K,eAAgB3G,OAAMnB,UAAW,CAACkH,UAAU/F,OAAMoD,QAAS;EAAC,CAAA,IAJ5a;EAIubkC,EAAA,MAAAM;EAAAN,EAAA,MAAAhB;EAAAgB,EAAA,MAAAE;EAAAF,EAAA,MAAAC;EAAAD,EAAA,MAAAS;EAAAT,EAAA,MAAAG;EAAAH,EAAA,MAAAuB;CAAA,OAAAA,MAAAvB,EAAA;CAAA,IAAAwB;CAAA,IAAAxB,EAAA,QAAAsB,OAAAtB,EAAA,QAAAuB,OAAAvB,EAAA,QAAAU,MAAAV,EAAA,QAAAW,MAAAX,EAAA,QAAAa,IAAA;EAPrbW,MAAA,qBAAA,OAAA;GAAiB,eAAA;GAAgB,SAAAd;GAAqB,GAAMC;GAA5D,UAAA;IACFE;IACDS;IACCC;GAKG;;EAAAvB,EAAA,MAAAsB;EAAAtB,EAAA,MAAAuB;EAAAvB,EAAA,MAAAU;EAAAV,EAAA,MAAAW;EAAAX,EAAA,MAAAa;EAAAb,EAAA,MAAAwB;CAAA,OAAAA,MAAAxB,EAAA;CAAA,OARDwB;AAQC;AAOV,SAASC,iBAAiBrD,OAAkBG,WAAoBI,SAAmCV,QAA4BsB,UAAkBC,UAAkBrB,UAAkBE,OAA+BI,MAA6B;CAC/O,QAAQiD,UAAkC,qBAAA,UAAA,EAAA,UAAA,CACtC,oBAAC,iBAAD;EAAwBtD;EAAO,OAAOG,aAAa,CAACmD,MAAMzB,kBAAkByB,MAAMC,YAAYrF,KAAAA;CAAU,CAAA,GACvGqC,YAAY,aAAa,oBAAC,eAAD;EAAyBR;EAAU,iBAAiBuD,MAAMzB;EAAiB,YAAYyB,MAAM7D;EAAmBQ;EAAaI;CAAK,CAAA,IAAM,oBAAC,aAAD;EAAa,QAAQa,YAAYrB,QAAQyD,MAAM7D,YAAY0B,UAAUC,QAAQ;EAAG,iBAAiBkC,MAAMzB;EAAiB,YAAYyB,MAAM7D;EAAmBQ;EAAaI;CAAK,CAAA,CACnV,EAAA,CAAA;AACJ;AAGA,SAAS+B,SAAS3C,YAAgC;CAChD,MAAM4B,QAAQ5B,cAAc;CAC5B,OAAO4B,QAAQjH,aAAaiH,QAAQhH;AACtC;AACA,SAAAmJ,YAAA7B,IAAA;CAAA,MAAAC,IAAAhK,EAAA,EAAA;CAAqB,MAAA,EAAAiI,QAAAgC,iBAAApC,YAAAQ,OAAAI,SAAAsB;CAanB,MAAAG,UAAgBzB,SAAS;CACzB,MAAA0B,OAAa9B,UAAU;CACvB,IAAI4B,iBAAe;EAAA,IAAAI;EAAA,IAAAL,EAAA,OAAAE,SAAA;GAEHG,KAAA/J,MAAaoE,OAAMmC,oBAAqBqD,WAAWvJ,gBAAemK,YAAa;GAACd,EAAA,KAAAE;GAAAF,EAAA,KAAAK;EAAA,OAAAA,KAAAL,EAAA;EAAA,IAAAO;EAAA,IAAAP,EAAA,OAAAK,IAAA;GAA1FE,KAAA,oBAAA,QAAA,EAA8F,GAApFF,GAAgF,CAAA;GAAIL,EAAA,KAAAK;GAAAL,EAAA,KAAAO;EAAA,OAAAA,KAAAP,EAAA;EAAA,IAAAU;EAAA,IAAAV,EAAA,OAAA6B,OAAAC,IAAA,2BAAA,GAAA;GACpFpB,KAAA;IAAAqB,GACP,EAAA7D,WACU,sGACb;IAAC8D,GACE,EAAA9D,WACU,gIACb;GACF;GAAC8B,EAAA,KAAAU;EAAA,OAAAA,KAAAV,EAAA;EAPW,MAAAW,KAAAD,GAOV,CAAC,CAACP,QAAQ;EAAE,IAAAU;EAAA,IAAAb,EAAA,OAAAE,SAAA;GACAW,KAAAvK,MAAaoE,OAAM8B,uBAAwB9B,OAAMwC,iBAAkBgD,WAAWvJ,gBAAe0K,aAAc;GAACrB,EAAA,KAAAE;GAAAF,EAAA,KAAAa;EAAA,OAAAA,KAAAb,EAAA;EAAA,IAAAe;EAAA,IAAAf,EAAA,OAAAa,IAAA;GAAtHE,KAAA,oBAAA,QAAA,EAA0H,GAAhHF,GAA4G,CAAA;GAAIb,EAAA,KAAAa;GAAAb,EAAA,KAAAe;EAAA,OAAAA,KAAAf,EAAA;EAAA,IAAAgB;EAAA,IAAAhB,EAAA,OAAAW,MAAAX,EAAA,QAAAe,IAAA;GAR5HC,KAAA,oBAAA,QAAA;IASO,GATGL;IAQRI,UAAAA;GACK,CAAA;GAAAf,EAAA,KAAAW;GAAAX,EAAA,MAAAe;GAAAf,EAAA,MAAAgB;EAAA,OAAAA,KAAAhB,EAAA;EAAA,IAAAiB;EAAA,IAAAjB,EAAA,QAAA6B,OAAAC,IAAA,2BAAA,GAAA;GACGb,KAAA;IAAAc,GACP,EAAA7D,WACU,uGACb;IAAC8D,GACE,EAAA9D,WACU,iIACb;GACF;GAAC8B,EAAA,MAAAiB;EAAA,OAAAA,KAAAjB,EAAA;EAPW,MAAAkB,KAAAD,GAOV,CAAC,CAACd,QAAQ;EAAE,IAAAgB;EAAA,IAAAnB,EAAA,QAAAE,SAAA;GACAiB,MAAA7K,MAAaoE,OAAM8B,uBAAwB9B,OAAM4C,mBAAoB4C,WAAWvJ,gBAAe0K,aAAc;GAACrB,EAAA,MAAAE;GAAAF,EAAA,MAAAmB;EAAA,OAAAA,MAAAnB,EAAA;EAAA,IAAAoB;EAAA,IAAApB,EAAA,QAAAmB,KAAA;GAAxHC,MAAA,oBAAA,QAAA,EAA4H,GAAlHD,IAA8G,CAAA;GAAInB,EAAA,MAAAmB;GAAAnB,EAAA,MAAAoB;EAAA,OAAAA,MAAApB,EAAA;EAAA,IAAAsB;EAAA,IAAAtB,EAAA,QAAAoB,OAAApB,EAAA,QAAAkB,IAAA;GAR9HI,MAAA,oBAAA,QAAA;IASO,GATGJ;IAQRE,UAAAA;GACK,CAAA;GAAApB,EAAA,MAAAoB;GAAApB,EAAA,MAAAkB;GAAAlB,EAAA,MAAAsB;EAAA,OAAAA,MAAAtB,EAAA;EAAA,IAAAuB;EAAA,IAAAvB,EAAA,QAAAsB,OAAAtB,EAAA,QAAAO,MAAAP,EAAA,QAAAgB,IAAA;GArBEO,MAAA,qBAAA,OAAA;IAAe,WAAA;IAAf,UAAA;KACThB;KACAS;KAUAM;IAUI;;GAAAtB,EAAA,MAAAsB;GAAAtB,EAAA,MAAAO;GAAAP,EAAA,MAAAgB;GAAAhB,EAAA,MAAAuB;EAAA,OAAAA,MAAAvB,EAAA;EAtBR,MAAAiC,OAAaV;EAuBb,IAAI,CAACpB,MAAI,OACA8B;EACR,IAAAT;EAAA,IAAAxB,EAAA,QAAAE,SAAA;GAI4IsB,MAAAlL,MAAaoE,OAAMyC,aAAc+C,WAAWvJ,gBAAe0K,aAAc;GAACrB,EAAA,MAAAE;GAAAF,EAAA,MAAAwB;EAAA,OAAAA,MAAAxB,EAAA;EAAA,IAAAkC;EAAA,IAAAlC,EAAA,QAAAwB,KAAA;GAAjNU,MAAA,oBAAA,QAAA;IAAS,GAAA7I,mBAAkB8I;IAAY,MAAA;IAAmB,YAAA9I,mBAAkB+I;IAAuB,eAAA;IAAqBlL,aAAAA;IAAS,GAAMsK;GAA0E,CAAA;GAAIxB,EAAA,MAAAwB;GAAAxB,EAAA,MAAAkC;EAAA,OAAAA,MAAAlC,EAAA;EAAA,IAAAqC;EAAA,IAAArC,EAAA,QAAAE,SAAA;GAC9EmC,MAAA/L,MAAaoE,OAAM6C,eAAgB2C,WAAWvJ,gBAAe0K,aAAc;GAACrB,EAAA,MAAAE;GAAAF,EAAA,MAAAqC;EAAA,OAAAA,MAAArC,EAAA;EAAA,IAAAsC;EAAA,IAAAtC,EAAA,QAAAqC,KAAA;GAAnNC,MAAA,oBAAA,QAAA;IAAS,GAAAjJ,mBAAkB8I;IAAY,MAAA;IAAmB,YAAA9I,mBAAkB+I;IAAuB,eAAA;IAAqBlL,aAAAA;IAAS,GAAMmL;GAA4E,CAAA;GAAIrC,EAAA,MAAAqC;GAAArC,EAAA,MAAAsC;EAAA,OAAAA,MAAAtC,EAAA;EAAA,IAAAuC;EAAA,IAAAvC,EAAA,QAAAkC,OAAAlC,EAAA,QAAAsC,KAAA;GAFzNC,MAAA,qBAAA,OAAA;IAAiB,eAAA;IAAiB,WAAA;IAAlC,UAAA,CACEL,KACAI,GACI;;GAAAtC,EAAA,MAAAkC;GAAAlC,EAAA,MAAAsC;GAAAtC,EAAA,MAAAuC;EAAA,OAAAA,MAAAvC,EAAA;EAAA,IAAAwC;EAAA,IAAAxC,EAAA,QAAAiC,QAAAjC,EAAA,QAAAuC,KAAA;GALHC,MAAA,qBAAA,OAAA;IAAe,WAAA;IAAf,UAAA,CACFP,MACDM,GAII;;GAAAvC,EAAA,MAAAiC;GAAAjC,EAAA,MAAAuC;GAAAvC,EAAA,MAAAwC;EAAA,OAAAA,MAAAxC,EAAA;EAAA,OANDwC;CAMC;CACT,IAAAnC;CAAA,IAAAL,EAAA,QAAAnC,cAAAmC,EAAA,QAAAG,MAAA;EACcE,KAAAF,QAAQK,SAAS3C,UAAU;EAACmC,EAAA,MAAAnC;EAAAmC,EAAA,MAAAG;EAAAH,EAAA,MAAAK;CAAA,OAAAA,KAAAL,EAAA;CAA3C,MAAAS,SAAeJ;CAC0B,MAAAE,KAAAE,SAAS/F,OAAMI,kBAAmBqF,OAAOzF,OAAMC,aAAb;CAA6C,MAAA+F,KAAA7C,cAAA;CAAe,IAAA8C;CAAA,IAAAX,EAAA,QAAA/B,UAAA+B,EAAA,QAAAE,SAAA;EAClIS,KAAA1C,WAAW3B,KAAAA,IAAXA,KAAAA,IAAA,qBAAA,UAAA,EAAA,UAAA,CACG,oBAAA,QAAA,EAAyH,GAA/GhG,MAAaoE,OAAM8C,eAAgB9C,OAAMgD,gBAAiBO,MAAM,GAAGiC,WAAWvJ,gBAAemK,YAAa,EAAC,CAAA,GACrH,oBAAA,QAAA,EAOiB,GAPP;GAAAiB,GACT,EAAA7D,WACU,sGACb;GAAC8D,GACE,EAAA9D,WACU,sGACb;EACF,EAAE,CAAC,CAACgC,WAAW,GAAE,CAAA,CAAI,EAAA,CAAA;EAChBF,EAAA,MAAA/B;EAAA+B,EAAA,MAAAE;EAAAF,EAAA,MAAAW;CAAA,OAAAA,KAAAX,EAAA;CAAA,IAAAa;CAAA,IAAAb,EAAA,QAAAO,MAAAP,EAAA,QAAAU,MAAAV,EAAA,QAAAW,MAAAX,EAAA,QAAAvB,MAAA;EAXIoC,KAAA,oBAAC,eAAD;GAA4B,aAAAN;GAA+E,YAAAG;GAAuBjC;GAC1IkC,UAAAA;EADsB,CAAA;EAYTX,EAAA,MAAAO;EAAAP,EAAA,MAAAU;EAAAV,EAAA,MAAAW;EAAAX,EAAA,MAAAvB;EAAAuB,EAAA,MAAAa;CAAA,OAAAA,KAAAb,EAAA;CAZlB,MAAAyC,OAAa5B;CAab,IAAI,CAACV,MAAI,OACAsC;CACR,IAAA1B;CAAA,IAAAf,EAAA,QAAAE,WAAAF,EAAA,QAAAnC,cAAAmC,EAAA,QAAAS,QAAA;EAIwIM,KAAAzK,MAAaoE,OAAMqD,YAAarD,OAAMkD,OAAQC,cAAA,CAAe,GAAG,CAAC4C,UAAU/F,OAAMoD,UAAWoC,WAAWvJ,gBAAe0K,aAAc;EAACrB,EAAA,MAAAE;EAAAF,EAAA,MAAAnC;EAAAmC,EAAA,MAAAS;EAAAT,EAAA,MAAAe;CAAA,OAAAA,KAAAf,EAAA;CAAA,IAAAgB;CAAA,IAAAhB,EAAA,QAAAe,IAAA;EAD1QC,KAAA,oBAAA,OAAA;GAAiB,eAAA;GAAiB,WAAA;GAChC,UAAA,oBAAA,QAAA;IAAS,GAAA7H,iBAAgBgJ;IAAY,MAAA;IAAmB,YAAAhJ,iBAAgBiJ;IAAuB,eAAA;IAAqBlL,aAAAA;IAAS,GAAM6J;GAAqI,CAAA;EACpQ,CAAA;EAAAf,EAAA,MAAAe;EAAAf,EAAA,MAAAgB;CAAA,OAAAA,KAAAhB,EAAA;CAAA,IAAAiB;CAAA,IAAAjB,EAAA,QAAAyC,QAAAzC,EAAA,QAAAgB,IAAA;EAJHC,KAAA,qBAAA,OAAA;GAAe,WAAA;GAAf,UAAA,CACFwB,MACDzB,EAGI;;EAAAhB,EAAA,MAAAyC;EAAAzC,EAAA,MAAAgB;EAAAhB,EAAA,MAAAiB;CAAA,OAAAA,KAAAjB,EAAA;CAAA,OALDiB;AAKC;AAWV,SAAS7H,WAAWsJ,YAAoB;CACtC,MAAMC,OAAOD,aAAa;CAC1B,MAAME,QAAQhL,MAAM,KAAK,IAAIN,KAAKC,MAAMoL,IAAI;CAC5C,MAAME,OAAOjL,MAAM,IAAI,IAAIM,cAAc;CACzC,MAAM4K,SAASxL,KAAKyL,KAAKzK,aAAaqK,IAAI,IAAI;CAC9C,IAAIR,OAAO,IAAIjL,YAAY,EAAC,GAAImB,cAAc,EAAC,GAAIuK,MAAK,GAAI,CAACC,KAAI,GAAIjL,MAAM+K,OAAOC,KAAK,EAAC,GAAI,CAACC,KAAI,GAAIF,KAAI;CACzG,KAAK,IAAIK,QAAQ,GAAGA,QAAQF,QAAQE,SAClCb,QAAQ,IAAIvK,MAAM+K,OAAOC,KAAK,EAAC,GAAII,QAAQ,MAAM,IAAI,CAACH,OAAOA,KAAI,GAAIF,KAAI;CAE3E,OAAO;EACLP,QAAQU,SAASH;EACjBR;CACF;AACF;;;;;;;;;;;AAYA,SAAAc,kBAAAlD,IAAA;CAAA,MAAAC,IAAAhK,EAAA,EAAA;CAAA,IAAAkN;CAAA,IAAAjF;CAAA,IAAAE;CAAA,IAAAC;CAAA,IAAAoB;CAAA,IAAAD;CAAA,IAAAlB;CAAA,IAAAE;CAAA,IAAA8B;CAAA,IAAAE;CAAA,IAAAG;CAAA,IAAAC;CAAA,IAAAlC;CAAA,IAAAE;CAAA,IAAAqB,EAAA,OAAAD,IAAA;EAA2B,MAAA,EAAA9B,QAAA4C,IAAA1C,UAAA4C,IAAA3C,OAAA4C,IAAAxB,UAAAyB,IAAA1B,UAAA2B,IAAA7C,OAAA8C,KAAA5C,WAAA6C,KAAA3C,MAAA6C,KAAA3C,SAAA4C,KAAA,GAAAX,YAAAb;EAAA9B,SAAA4C;EAAA1C,WAAA4C;EAAA3C,QAAA4C;EAIzBxB,WAAAyB,OAAA3E,KAAAA,IAAA,MAAA2E;EACA1B,WAAA2B,OAAA5E,KAAAA,IAAA,IAAA4E;EACA7C,QAAA8C,QAAA7E,KAAAA,IAAA,SAAA6E;EACA5C,YAAA6C,QAAA9E,KAAAA,IAAA,QAAA8E;EACA3C,OAAA6C,QAAAhF,KAAAA,IAAA,YAAAgF;EACA3C,UAAA4C,QAAAjF,KAAAA,IAAA,WAAAiF;EAGQ2B,KAAA3M;EAAsBiJ,KAAAA;EAAoBD,KAAAA;EAAcqB,KAAAA;EAAWD,KAAA/J,oBAAoBN,MAAaK,gBAAewM,MAAOxE,YAAY,cAAcjE,OAAM0C,YAAa,GAAGwD,OAAK;EAACZ,EAAA,KAAAD;EAAAC,EAAA,KAAAkD;EAAAlD,EAAA,KAAA/B;EAAA+B,EAAA,KAAA7B;EAAA6B,EAAA,KAAA5B;EAAA4B,EAAA,KAAAR;EAAAQ,EAAA,KAAAT;EAAAS,EAAA,KAAA3B;EAAA2B,EAAA,KAAAzB;EAAAyB,EAAA,KAAAK;EAAAL,EAAA,MAAAO;EAAAP,EAAA,MAAAU;EAAAV,EAAA,MAAAW;EAAAX,EAAA,MAAAvB;EAAAuB,EAAA,MAAArB;CAAA,OAAA;EAAAuE,KAAAlD,EAAA;EAAA/B,SAAA+B,EAAA;EAAA7B,WAAA6B,EAAA;EAAA5B,QAAA4B,EAAA;EAAAR,WAAAQ,EAAA;EAAAT,WAAAS,EAAA;EAAA3B,QAAA2B,EAAA;EAAAzB,YAAAyB,EAAA;EAAAK,KAAAL,EAAA;EAAAO,KAAAP,EAAA;EAAAU,KAAAV,EAAA;EAAAW,KAAAX,EAAA;EAAAvB,OAAAuB,EAAA;EAAArB,UAAAqB,EAAA;CAAA;CAC3G,MAAAa,KAAA1C,aAAaE,UAAU,SAAV1F,eAAA1B;CAAmD,IAAA8J;CAAA,IAAAf,EAAA,QAAA/B,UAAA+B,EAAA,QAAA5B,SAAA4B,EAAA,QAAAR,YAAAQ,EAAA,QAAAT,YAAAS,EAAA,QAAA3B,SAAA2B,EAAA,QAAAzB,aAAAyB,EAAA,QAAAa,MAAAb,EAAA,QAAAvB,QAAAuB,EAAA,QAAArB,SAAA;EAAxIoC,KAAAU,iBAAiBrD,OAAOG,WAAWI,SAASV,QAAQsB,UAAUC,UAAUqB,IAAkExC,OAAOI,IAAI;EAACuB,EAAA,MAAA/B;EAAA+B,EAAA,MAAA5B;EAAA4B,EAAA,MAAAR;EAAAQ,EAAA,MAAAT;EAAAS,EAAA,MAAA3B;EAAA2B,EAAA,MAAAzB;EAAAyB,EAAA,MAAAa;EAAAb,EAAA,MAAAvB;EAAAuB,EAAA,MAAArB;EAAAqB,EAAA,MAAAe;CAAA,OAAAA,KAAAf,EAAA;CAAA,IAAAgB;CAAA,IAAAhB,EAAA,QAAAkD,MAAAlD,EAAA,QAAAK,MAAAL,EAAA,QAAAO,MAAAP,EAAA,QAAAU,MAAAV,EAAA,QAAAW,MAAAX,EAAA,QAAAe,IAAA;EADpJC,KAAA,oBAAC,IAAD;GAAuBxB,UAAAA;GAAoBD,UAAAA;GAAQ,GAAMqB;GAAK,GAAMD;GACtEI,UAAAA;EADc,CAAA;EAEHf,EAAA,MAAAkD;EAAAlD,EAAA,MAAAK;EAAAL,EAAA,MAAAO;EAAAP,EAAA,MAAAU;EAAAV,EAAA,MAAAW;EAAAX,EAAA,MAAAe;EAAAf,EAAA,MAAAgB;CAAA,OAAAA,KAAAhB,EAAA;CAAA,OAFTgB;AAES;AAMlB,SAASzH,WAAW;CAClB,MAAM6J,SAASpK,aAAa;CAC5B,MAAMqK,SAAS3K,YAAY;CAC3B,IAAIyJ,OAAO;CACX,KAAK,IAAIa,QAAQ,GAAGA,QAAQI,QAAQJ,SAAS;EAC3C,MAAMM,QAAQN,QAAQI,SAAS,IAAI9L,KAAKC;EACxC,MAAM6I,SAAStH,cAAcF,iBAAiBtB,KAAKiM,IAAIvK,aAAasK,KAAK;EACzEnB,QAAQ,GAAGa,UAAU,IAAI,MAAM,MAAMpL,MAAMyL,SAASjD,SAAS9I,KAAKkM,IAAIF,KAAK,CAAC,EAAC,GAAI1L,MAAMyL,SAASjD,SAAS9I,KAAKiM,IAAID,KAAK,CAAC;CAC1H;CACA,OAAO,GAAGnB,KAAI;AAChB;AAIA,SAASvK,MAAM6H,OAAe;CAC5B,OAAOnI,KAAKM,MAAM6H,QAAQ,GAAI,IAAI;AACpC"}
@@ -17,6 +17,12 @@ const styles = {
17
17
  kMwMTN: "x1w5n3ug",
18
18
  $$css: true
19
19
  },
20
+ itemsHorizontal: {
21
+ k1C7PZ: "xpamuu5",
22
+ kXwgrk: "x1q0g3np",
23
+ kwnvtZ: "x1a02dak",
24
+ $$css: true
25
+ },
20
26
  toneActive: {
21
27
  kMwMTN: "x139gbkf",
22
28
  $$css: true
@@ -90,19 +96,23 @@ function groupContent(label, children, description, error, horizontal) {
90
96
  children: label
91
97
  }),
92
98
  /* @__PURE__ */ jsx("div", {
93
- ...{
94
- 0: { className: "x78zum5 xdt5ytf" },
95
- 1: { className: "x78zum5 xpamuu5 x1q0g3np x1a02dak" }
96
- }[!!horizontal << 0],
99
+ ...props(controlStyles.stack, horizontal && styles.itemsHorizontal),
97
100
  children
98
101
  }),
99
102
  /* @__PURE__ */ jsx(FieldMessage, {
100
103
  description,
101
104
  error,
102
- inset: false
105
+ inset: false,
106
+ isDisabled: state.isDisabled
103
107
  })
104
108
  ] });
105
109
  }
110
+ function optionContent(button, description) {
111
+ return ({ isDisabled }) => /* @__PURE__ */ jsxs(Fragment, { children: [button, /* @__PURE__ */ jsx(ControlDescription, {
112
+ isDisabled,
113
+ children: description
114
+ })] });
115
+ }
106
116
  /**
107
117
  * One option of a `RadioGroup`, with its label and optionally a description
108
118
  * under it. It names the entry it stands for with `value`; the selection is
@@ -114,10 +124,10 @@ function groupContent(label, children, description, error, horizontal) {
114
124
  */
115
125
  function Radio(t0) {
116
126
  const $ = c(13);
117
- const { children, description, ...props$2 } = t0;
127
+ const { children, description, ...props$1 } = t0;
118
128
  const ripple = useRipple();
119
129
  const T0 = RadioField;
120
- const t1 = mergeStatefulStyles(props(controlStyles.field), props$2);
130
+ const t1 = mergeStatefulStyles(props(controlStyles.field), props$1);
121
131
  let t2;
122
132
  if ($[0] !== children || $[1] !== ripple) {
123
133
  t2 = buttonContent(children, ripple);
@@ -135,22 +145,22 @@ function Radio(t0) {
135
145
  $[4] = t3;
136
146
  } else t3 = $[4];
137
147
  let t4;
138
- if ($[5] !== description) {
139
- t4 = /* @__PURE__ */ jsx(ControlDescription, { children: description });
148
+ if ($[5] !== description || $[6] !== t3) {
149
+ t4 = optionContent(t3, description);
140
150
  $[5] = description;
141
- $[6] = t4;
142
- } else t4 = $[6];
151
+ $[6] = t3;
152
+ $[7] = t4;
153
+ } else t4 = $[7];
143
154
  let t5;
144
- if ($[7] !== T0 || $[8] !== props$2 || $[9] !== t1 || $[10] !== t3 || $[11] !== t4) {
145
- t5 = /* @__PURE__ */ jsxs(T0, {
146
- ...props$2,
155
+ if ($[8] !== T0 || $[9] !== props$1 || $[10] !== t1 || $[11] !== t4) {
156
+ t5 = /* @__PURE__ */ jsx(T0, {
157
+ ...props$1,
147
158
  ...t1,
148
- children: [t3, t4]
159
+ children: t4
149
160
  });
150
- $[7] = T0;
151
- $[8] = props$2;
152
- $[9] = t1;
153
- $[10] = t3;
161
+ $[8] = T0;
162
+ $[9] = props$1;
163
+ $[10] = t1;
154
164
  $[11] = t4;
155
165
  $[12] = t5;
156
166
  } else t5 = $[12];
@@ -169,7 +179,7 @@ function Radio(t0) {
169
179
  */
170
180
  function RadioGroup$1(t0) {
171
181
  const $ = c(16);
172
- const { children, description, error, label, orientation: t1, ...props$1 } = t0;
182
+ const { children, description, error, label, orientation: t1, ...props$2 } = t0;
173
183
  const orientation = t1 === void 0 ? "vertical" : t1;
174
184
  const validationBehavior = useFieldValidationBehavior();
175
185
  const T0 = RadioGroup;
@@ -179,7 +189,7 @@ function RadioGroup$1(t0) {
179
189
  $[0] = error;
180
190
  $[1] = t2;
181
191
  } else t2 = $[1];
182
- const t3 = mergeStatefulStyles(props(groupStyles.root), props$1);
192
+ const t3 = mergeStatefulStyles(props(groupStyles.root), props$2);
183
193
  const t4 = orientation === "horizontal";
184
194
  let t5;
185
195
  if ($[2] !== children || $[3] !== description || $[4] !== error || $[5] !== label || $[6] !== t4) {
@@ -192,18 +202,18 @@ function RadioGroup$1(t0) {
192
202
  $[7] = t5;
193
203
  } else t5 = $[7];
194
204
  let t6;
195
- if ($[8] !== T0 || $[9] !== orientation || $[10] !== props$1 || $[11] !== t2 || $[12] !== t3 || $[13] !== t5 || $[14] !== validationBehavior) {
205
+ if ($[8] !== T0 || $[9] !== orientation || $[10] !== props$2 || $[11] !== t2 || $[12] !== t3 || $[13] !== t5 || $[14] !== validationBehavior) {
196
206
  t6 = /* @__PURE__ */ jsx(T0, {
197
207
  isInvalid: t2,
198
208
  orientation,
199
209
  validationBehavior,
200
- ...props$1,
210
+ ...props$2,
201
211
  ...t3,
202
212
  children: t5
203
213
  });
204
214
  $[8] = T0;
205
215
  $[9] = orientation;
206
- $[10] = props$1;
216
+ $[10] = props$2;
207
217
  $[11] = t2;
208
218
  $[12] = t3;
209
219
  $[13] = t5;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","ReactNode","RefAttributes","RadioGroupProps","RACRadioGroupProps","RadioButtonRenderProps","RadioFieldProps","RadioGroupRenderProps","stylex","RadioGroup","RACRadioGroup","RadioButton","RadioField","ControlDescription","ControlLabel","controlStyles","FieldLabel","FieldMessage","invalidFrom","useFieldValidationBehavior","groupStyles","fieldGroupStyles","useRipple","focus","mergeStatefulStyles","colors","motion","radii","spacing","stateLayerOpacity","FORCED_COLORS","styles","control","kMwMTN","$$css","toneActive","toneDisabled","toneSelected","hoverLayers","selected","kWkggS","unselected","focusLayers","pressedLayers","children","description","error","label","Omit","RadioProps","Ripple","ReturnType","HTMLSpanElement","buttonContent","ripple","state","interactive","isDisabled","isReadOnly","tone","isSelected","active","isHovered","isPressed","isFocusVisible","handlers","props","disc","controlReadOnly","controlDisabled","ringVisible","className","surface","groupContent","horizontal","isRequired","Radio","t0","$","T0","t1","field","t2","t3","t4","t5","orientation","undefined","validationBehavior","root","t6","stylex.props","_c","props","RadioGroup","RACRadioGroup","fieldGroupStyles"],"sources":["../../../src/components/radio-group/index.tsx"],"sourcesContent":["'use client';\n\nimport type { ReactNode, RefAttributes } from 'react';\nimport type { RadioGroupProps as RACRadioGroupProps, RadioButtonRenderProps, RadioFieldProps, RadioGroupRenderProps } from 'react-aria-components';\nimport * as stylex from '@stylexjs/stylex';\nimport { RadioGroup as RACRadioGroup, RadioButton, RadioField } from 'react-aria-components';\nimport { ControlDescription, ControlLabel } from '../../control';\nimport { controlStyles } from '../../control/styles';\nimport { FieldLabel, FieldMessage } from '../../field';\nimport { invalidFrom, useFieldValidationBehavior } from '../../field/root';\nimport { groupStyles as fieldGroupStyles } from '../../field/styles';\nimport { useRipple } from '../../hooks/useRipple';\nimport { focus } from '../../styles/focus';\nimport { mergeStatefulStyles } from '../../styles/merge';\nimport '../../tokens/design.tokens.stylex';\nimport { colors, motion, radii, spacing, stateLayerOpacity } from '../../tokens/design.tokens.stylex';\n\n// The radio button page: a 20dp ring inside a 40dp state layer, with a 48dp\n// target. Unselected, the ring is 2dp of on surface variant that turns on\n// surface while hovered, pressed or focused; selected, the ring and the 10dp\n// dot inside it are primary. Disabled is on surface at the disabled opacity\n// for both. The state layer is on surface over an unselected button and\n// primary over a selected one while hovered, and the two swap once pressed.\n// The page draws no error state for the button itself: an invalid group\n// says so through its label and message, and the buttons keep their colours.\n//\n// Two components from one module, since neither means anything without the\n// other: a radio button is a member of a group, and the group is what holds\n// the value. React Aria's `RadioGroup` is the group, a div with the label,\n// description and error slots; `RadioField` is one button's root, a div with\n// its description slot; and `RadioButton` is the label around the visually\n// hidden input, whose children draw the button from the render state React\n// Aria hands them. The field is the same two-column grid Checkbox uses, with\n// the label `display: contents` so the description lines up under the text.\n//\n// The adjacent label is body-large on surface, which the page keeps the same\n// whether or not the button is selected.\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 styles = {\n control: {\n kMwMTN: \"x1w5n3ug\",\n $$css: true\n },\n toneActive: {\n kMwMTN: \"x139gbkf\",\n $$css: true\n },\n toneDisabled: {\n kMwMTN: \"x1gpw424 x1bhcspo\",\n $$css: true\n },\n toneSelected: {\n kMwMTN: \"x1mxwv8y\",\n $$css: true\n }\n};\n\n// The state layer follows the button: on surface over an unselected one and\n// primary over a selected one while hovered, the two swapped once pressed.\nconst hoverLayers = {\n selected: {\n kWkggS: \"x659ado\",\n $$css: true\n },\n unselected: {\n kWkggS: \"x1b18xnh\",\n $$css: true\n }\n};\n\n// A keyboard's focus draws the hover layer's colour at the focus opacity.\nconst focusLayers = {\n selected: {\n kWkggS: \"x1sog3nf\",\n $$css: true\n },\n unselected: {\n kWkggS: \"xwqhyid\",\n $$css: true\n }\n};\nconst pressedLayers = {\n selected: {\n kWkggS: \"xjeeohs\",\n $$css: true\n },\n unselected: {\n kWkggS: \"x1dvjsmr\",\n $$css: true\n }\n};\ntype RadioGroupProps = {\n /** The radio buttons, each with a `value` of its own. */\n children?: ReactNode;\n /**\n * A hint under the group. Replaced by `error` when there is one, so the\n * two never stack.\n */\n description?: string;\n /**\n * The problem with the current selection, in words. Its presence is what\n * puts the group in its error state — the message, the label's colour and\n * `aria-invalid` on the group all follow from it.\n *\n * Outside a `Form` the message line arrives with the message, so the\n * field grows when this does and moves what is under it. A `Form` holds\n * that space from the start; so does a permanent `description`.\n */\n error?: string;\n /**\n * What the group is for. Required rather than optional: a set of radio\n * buttons with no name is a set a screen reader cannot introduce.\n */\n label: string;\n} & Omit<RACRadioGroupProps, 'children' | 'isInvalid' | 'validationBehavior'>;\ntype RadioProps = Omit<RadioFieldProps, 'children'> & {\n /**\n * The label, beside the button. A button that a row labels some other way\n * leaves it out and passes `aria-label` instead.\n *\n * A link or a button in it acts on its own, as in a native label, and\n * leaves the selection as it was. A press anywhere else in the label\n * selects this option.\n */\n children?: ReactNode;\n /** A hint under the label, read with the button. */\n description?: string;\n};\ntype Ripple = ReturnType<typeof useRipple<HTMLSpanElement>>;\n\n// What the label draws, chosen from the render state React Aria hands it.\n// Built by a call rather than written inline at the prop, which is what\n// react-perf's no-new-function-as-prop is after; the React Compiler memoises\n// the result on its inputs. The ripple's handlers and surface go on the\n// control while the button can change, and are left off while it cannot,\n// since a press that changes nothing should not look like one.\nfunction buttonContent(children: ReactNode, ripple: Ripple) {\n return (state: RadioButtonRenderProps) => {\n const interactive = !state.isDisabled && !state.isReadOnly;\n const tone = state.isSelected ? 'selected' : 'unselected';\n const active = state.isHovered || state.isPressed || state.isFocusVisible;\n return <>\n <span {...interactive ? ripple.handlers : {}} {...stylex.props(controlStyles.disc, styles.control, state.isSelected && styles.toneSelected, !state.isSelected && interactive && active && styles.toneActive, state.isDisabled && styles.toneDisabled, state.isReadOnly && controlStyles.controlReadOnly, state.isDisabled && controlStyles.controlDisabled, interactive && state.isHovered && hoverLayers[tone], interactive && state.isFocusVisible && focusLayers[tone], interactive && state.isPressed && pressedLayers[tone], state.isFocusVisible && focus.ringVisible)}>\n <span className=\"x12w9bfk x6s0dn4 x1qx5ct2 x1r7ld26 x16fbrrb x1y0btm7 xdh2fpr x9f619 x78zum5 xw4jnvo xl56j7k x1qno0dh xshfolx xpc4ca7\">\n {state.isSelected ? <span {...{\n 0: {\n className: \"xtwfq29 x1jzqe4 x170jfvy x16fbrrb x1fsd2vl\"\n },\n 1: {\n className: \"x170jfvy x16fbrrb x1fsd2vl xtwfq29 x1o55y2u\"\n }\n }[!!state.isDisabled << 0]} /> : null}\n </span>\n {interactive ? ripple.surface : null}\n </span>\n <ControlLabel state={state}>{children}</ControlLabel>\n </>;\n };\n}\n\n// The group's parts, from its render state: the label's colour follows\n// disabled and invalid the way a field's follows its box.\nfunction groupContent(label: string, children: ReactNode, description: string | undefined, error: string | undefined, horizontal: boolean) {\n return (state: RadioGroupRenderProps) => <>\n <FieldLabel isRequired={state.isRequired} state={state} variant=\"group\">\n {label}\n </FieldLabel>\n <div {...{\n 0: {\n className: \"x78zum5 xdt5ytf\"\n },\n 1: {\n className: \"x78zum5 xpamuu5 x1q0g3np x1a02dak\"\n }\n }[!!horizontal << 0]}>\n {children}\n </div>\n <FieldMessage description={description} error={error} inset={false} />\n </>;\n}\n\n/**\n * One option of a `RadioGroup`, with its label and optionally a description\n * under it. It names the entry it stands for with `value`; the selection is\n * the group's. Rendered on its own, outside a group, it has no state to\n * belong to.\n *\n * The call site's `className` and `style` land on the option as a whole,\n * which is the element a layout positions.\n */\nfunction Radio({\n children,\n description,\n ...props\n}: RadioProps & RefAttributes<HTMLDivElement>) {\n const ripple = useRipple<HTMLSpanElement>();\n return <RadioField {...props} {...mergeStatefulStyles(stylex.props(controlStyles.field), props)}>\n <RadioButton className=\"xjp7ctv\">\n {buttonContent(children, ripple)}\n </RadioButton>\n <ControlDescription>{description}</ControlDescription>\n </RadioField>;\n}\n\n/**\n * A labelled set of radio buttons with one selected value between them. The\n * value is React Aria's: pass `value` with `onChange` to control it, or\n * `defaultValue` to let the group keep its own, and each `Radio` inside\n * names the entry it stands for. Arrow keys move the selection; disabled,\n * read-only and the error state reach every button from here, and\n * `orientation=\"horizontal\"` lays the buttons along a line.\n *\n * The call site's `className` and `style` land on the group as a whole,\n * which is the element a layout positions.\n */\nfunction RadioGroup({\n children,\n description,\n error,\n label,\n orientation = 'vertical',\n ...props\n}: RadioGroupProps & RefAttributes<HTMLDivElement>) {\n const validationBehavior = useFieldValidationBehavior();\n return <RACRadioGroup isInvalid={invalidFrom(error)} orientation={orientation} validationBehavior={validationBehavior} {...props} {...mergeStatefulStyles(stylex.props(fieldGroupStyles.root), props)}>\n {groupContent(label, children, description, error, orientation === 'horizontal')}\n </RACRadioGroup>;\n}\nexport type { RadioGroupProps, RadioProps };\nexport { Radio };\nexport default RadioGroup;"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["c","_c","ReactNode","RefAttributes","RadioGroupProps","RACRadioGroupProps","RadioButtonRenderProps","RadioFieldProps","RadioFieldRenderProps","RadioGroupRenderProps","stylex","RadioGroup","RACRadioGroup","RadioButton","RadioField","ControlDescription","ControlLabel","controlStyles","FieldLabel","FieldMessage","invalidFrom","useFieldValidationBehavior","groupStyles","fieldGroupStyles","useRipple","focus","mergeStatefulStyles","colors","motion","radii","spacing","stateLayerOpacity","FORCED_COLORS","styles","control","kMwMTN","$$css","itemsHorizontal","k1C7PZ","kXwgrk","kwnvtZ","toneActive","toneDisabled","toneSelected","hoverLayers","selected","kWkggS","unselected","focusLayers","pressedLayers","children","description","error","label","Omit","RadioProps","Ripple","ReturnType","HTMLSpanElement","buttonContent","ripple","state","interactive","isDisabled","isReadOnly","tone","isSelected","active","isHovered","isPressed","isFocusVisible","handlers","props","disc","controlReadOnly","controlDisabled","ringVisible","className","surface","groupContent","horizontal","isRequired","stack","optionContent","button","Radio","t0","$","T0","t1","field","t2","t3","t4","t5","orientation","undefined","validationBehavior","root","t6","stylex.props","_c","props","RadioGroup","RACRadioGroup","fieldGroupStyles"],"sources":["../../../src/components/radio-group/index.tsx"],"sourcesContent":["'use client';\n\nimport type { ReactNode, RefAttributes } from 'react';\nimport type { RadioGroupProps as RACRadioGroupProps, RadioButtonRenderProps, RadioFieldProps, RadioFieldRenderProps, RadioGroupRenderProps } from 'react-aria-components';\nimport * as stylex from '@stylexjs/stylex';\nimport { RadioGroup as RACRadioGroup, RadioButton, RadioField } from 'react-aria-components';\nimport { ControlDescription, ControlLabel } from '../../control';\nimport { controlStyles } from '../../control/styles';\nimport { FieldLabel, FieldMessage } from '../../field';\nimport { invalidFrom, useFieldValidationBehavior } from '../../field/root';\nimport { groupStyles as fieldGroupStyles } from '../../field/styles';\nimport { useRipple } from '../../hooks/useRipple';\nimport { focus } from '../../styles/focus';\nimport { mergeStatefulStyles } from '../../styles/merge';\nimport '../../tokens/design.tokens.stylex';\nimport { colors, motion, radii, spacing, stateLayerOpacity } from '../../tokens/design.tokens.stylex';\n\n// The radio button page: a 20dp ring inside a 40dp state layer, with a 48dp\n// target. Unselected, the ring is 2dp of on surface variant that turns on\n// surface while hovered, pressed or focused; selected, the ring and the 10dp\n// dot inside it are primary. Disabled is on surface at the disabled opacity\n// for both. The state layer is on surface over an unselected button and\n// primary over a selected one while hovered, and the two swap once pressed.\n// The page draws no error state for the button itself: an invalid group\n// says so through its label and message, and the buttons keep their colours.\n//\n// Two components from one module, since neither means anything without the\n// other: a radio button is a member of a group, and the group is what holds\n// the value. React Aria's `RadioGroup` is the group, a div with the label,\n// description and error slots; `RadioField` is one button's root, a div with\n// its description slot; and `RadioButton` is the label around the visually\n// hidden input, whose children draw the button from the render state React\n// Aria hands them. The field is the same two-column grid Checkbox uses, with\n// the label `display: contents` so the description lines up under the text.\n//\n// The adjacent label is body-large on surface, which the page keeps the same\n// whether or not the button is selected.\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 styles = {\n control: {\n kMwMTN: \"x1w5n3ug\",\n $$css: true\n },\n itemsHorizontal: {\n k1C7PZ: \"xpamuu5\",\n kXwgrk: \"x1q0g3np\",\n kwnvtZ: \"x1a02dak\",\n $$css: true\n },\n toneActive: {\n kMwMTN: \"x139gbkf\",\n $$css: true\n },\n toneDisabled: {\n kMwMTN: \"x1gpw424 x1bhcspo\",\n $$css: true\n },\n toneSelected: {\n kMwMTN: \"x1mxwv8y\",\n $$css: true\n }\n};\n\n// The state layer follows the button: on surface over an unselected one and\n// primary over a selected one while hovered, the two swapped once pressed.\nconst hoverLayers = {\n selected: {\n kWkggS: \"x659ado\",\n $$css: true\n },\n unselected: {\n kWkggS: \"x1b18xnh\",\n $$css: true\n }\n};\n\n// A keyboard's focus draws the hover layer's colour at the focus opacity.\nconst focusLayers = {\n selected: {\n kWkggS: \"x1sog3nf\",\n $$css: true\n },\n unselected: {\n kWkggS: \"xwqhyid\",\n $$css: true\n }\n};\nconst pressedLayers = {\n selected: {\n kWkggS: \"xjeeohs\",\n $$css: true\n },\n unselected: {\n kWkggS: \"x1dvjsmr\",\n $$css: true\n }\n};\ntype RadioGroupProps = {\n /** The radio buttons, each with a `value` of its own. */\n children?: ReactNode;\n /**\n * A hint under the group. Replaced by `error` when there is one, so the\n * two never stack.\n */\n description?: string;\n /**\n * The problem with the current selection, in words. Its presence is what\n * puts the group in its error state — the message, the label's colour and\n * `aria-invalid` on the group all follow from it.\n *\n * Outside a `Form` the message line arrives with the message, so the\n * field grows when this does and moves what is under it. A `Form` holds\n * that space from the start; so does a permanent `description`.\n */\n error?: string;\n /**\n * What the group is for. Required rather than optional: a set of radio\n * buttons with no name is a set a screen reader cannot introduce.\n */\n label: string;\n} & Omit<RACRadioGroupProps, 'children' | 'isInvalid' | 'validationBehavior'>;\ntype RadioProps = Omit<RadioFieldProps, 'children'> & {\n /**\n * The label, beside the button. A button that a row labels some other way\n * leaves it out and passes `aria-label` instead.\n *\n * A link or a button in it acts on its own, as in a native label, and\n * leaves the selection as it was. A press anywhere else in the label\n * selects this option.\n */\n children?: ReactNode;\n /** A hint under the label, read with the button. */\n description?: string;\n};\ntype Ripple = ReturnType<typeof useRipple<HTMLSpanElement>>;\n\n// What the label draws, chosen from the render state React Aria hands it.\n// Built by a call rather than written inline at the prop, which is what\n// react-perf's no-new-function-as-prop is after; the React Compiler memoises\n// the result on its inputs. The ripple's handlers and surface go on the\n// control while the button can change, and are left off while it cannot,\n// since a press that changes nothing should not look like one.\nfunction buttonContent(children: ReactNode, ripple: Ripple) {\n return (state: RadioButtonRenderProps) => {\n const interactive = !state.isDisabled && !state.isReadOnly;\n const tone = state.isSelected ? 'selected' : 'unselected';\n const active = state.isHovered || state.isPressed || state.isFocusVisible;\n return <>\n <span {...interactive ? ripple.handlers : {}} {...stylex.props(controlStyles.disc, styles.control, state.isSelected && styles.toneSelected, !state.isSelected && interactive && active && styles.toneActive, state.isDisabled && styles.toneDisabled, state.isReadOnly && controlStyles.controlReadOnly, state.isDisabled && controlStyles.controlDisabled, interactive && state.isHovered && hoverLayers[tone], interactive && state.isFocusVisible && focusLayers[tone], interactive && state.isPressed && pressedLayers[tone], state.isFocusVisible && focus.ringVisible)}>\n <span className=\"x12w9bfk x6s0dn4 x1qx5ct2 x1r7ld26 x16fbrrb x1y0btm7 xdh2fpr x9f619 x78zum5 xw4jnvo xl56j7k x1qno0dh xshfolx xpc4ca7\">\n {state.isSelected ? <span {...{\n 0: {\n className: \"xtwfq29 x1jzqe4 x170jfvy x16fbrrb x1fsd2vl\"\n },\n 1: {\n className: \"x170jfvy x16fbrrb x1fsd2vl xtwfq29 x1o55y2u\"\n }\n }[!!state.isDisabled << 0]} /> : null}\n </span>\n {interactive ? ripple.surface : null}\n </span>\n <ControlLabel state={state}>{children}</ControlLabel>\n </>;\n };\n}\n\n// The group's parts, from its render state: the label's colour follows\n// disabled and invalid the way a field's follows its box.\nfunction groupContent(label: string, children: ReactNode, description: string | undefined, error: string | undefined, horizontal: boolean) {\n return (state: RadioGroupRenderProps) => <>\n <FieldLabel isRequired={state.isRequired} state={state} variant=\"group\">\n {label}\n </FieldLabel>\n <div {...stylex.props(controlStyles.stack, horizontal && styles.itemsHorizontal)}>\n {children}\n </div>\n <FieldMessage description={description} error={error} inset={false} isDisabled={state.isDisabled} />\n </>;\n}\n\n// The option's button and its description, from the option's render state:\n// the description fades with the option whether the option is disabled by\n// itself or by its group, as its label does.\nfunction optionContent(button: ReactNode, description: string | undefined) {\n return ({\n isDisabled\n }: RadioFieldRenderProps) => <>\n {button}\n <ControlDescription isDisabled={isDisabled}>\n {description}\n </ControlDescription>\n </>;\n}\n\n/**\n * One option of a `RadioGroup`, with its label and optionally a description\n * under it. It names the entry it stands for with `value`; the selection is\n * the group's. Rendered on its own, outside a group, it has no state to\n * belong to.\n *\n * The call site's `className` and `style` land on the option as a whole,\n * which is the element a layout positions.\n */\nfunction Radio({\n children,\n description,\n ...props\n}: RadioProps & RefAttributes<HTMLDivElement>) {\n const ripple = useRipple<HTMLSpanElement>();\n return <RadioField {...props} {...mergeStatefulStyles(stylex.props(controlStyles.field), props)}>\n {optionContent(<RadioButton className=\"xjp7ctv\">\n {buttonContent(children, ripple)}\n </RadioButton>, description)}\n </RadioField>;\n}\n\n/**\n * A labelled set of radio buttons with one selected value between them. The\n * value is React Aria's: pass `value` with `onChange` to control it, or\n * `defaultValue` to let the group keep its own, and each `Radio` inside\n * names the entry it stands for. Arrow keys move the selection; disabled,\n * read-only and the error state reach every button from here, and\n * `orientation=\"horizontal\"` lays the buttons along a line.\n *\n * The call site's `className` and `style` land on the group as a whole,\n * which is the element a layout positions.\n */\nfunction RadioGroup({\n children,\n description,\n error,\n label,\n orientation = 'vertical',\n ...props\n}: RadioGroupProps & RefAttributes<HTMLDivElement>) {\n const validationBehavior = useFieldValidationBehavior();\n return <RACRadioGroup isInvalid={invalidFrom(error)} orientation={orientation} validationBehavior={validationBehavior} {...props} {...mergeStatefulStyles(stylex.props(fieldGroupStyles.root), props)}>\n {groupContent(label, children, description, error, orientation === 'horizontal')}\n </RACRadioGroup>;\n}\nexport type { RadioGroupProps, RadioProps };\nexport { Radio };\nexport default RadioGroup;"],"mappings":"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"}
@@ -13,6 +13,16 @@ type SearchFieldProps$1 = {
13
13
  * the two never stack.
14
14
  */
15
15
  description?: string;
16
+ /**
17
+ * The action an on-screen keyboard labels its Enter key with. A search
18
+ * field asks for Search, which iOS otherwise shows only for a search input
19
+ * inside a form with an action, so a field submitted through `onSubmit`
20
+ * alone gets it too. Inside an `Autocomplete` the field takes the Go key
21
+ * React Aria gives it there, for the option Enter picks.
22
+ *
23
+ * @default 'search'
24
+ */
25
+ enterKeyHint?: SearchFieldProps['enterKeyHint'];
16
26
  /**
17
27
  * The problem with the current value, in words. Its presence is what puts
18
28
  * the field in its error state — the message and `aria-invalid` follow
@@ -49,7 +59,7 @@ type SearchFieldProps$1 = {
49
59
  * around them is the search page's rather than the box the other fields
50
60
  * share.
51
61
  */
52
- declare function SearchField$1({ clearLabel, description, error, inputRef, isDisabled, label, placeholder, ...props }: RefAttributes<HTMLDivElement> & SearchFieldProps$1): import("react").JSX.Element;
62
+ declare function SearchField$1({ clearLabel, description, enterKeyHint, error, inputRef, isDisabled, label, placeholder, ...props }: RefAttributes<HTMLDivElement> & SearchFieldProps$1): import("react").JSX.Element;
53
63
  //#endregion
54
64
  export { type SearchFieldProps$1 as SearchFieldProps, SearchField$1 as default };
55
65
  //# sourceMappingURL=index.d.ts.map