@12-apps/ui 6.92.2 → 6.93.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 (145) hide show
  1. package/components-catalog.md +1 -1
  2. package/dist/_internal/components/data-display/Alert/Alert.js +2 -2
  3. package/dist/_internal/components/data-display/Avatar/Avatar.js +3 -3
  4. package/dist/_internal/components/data-display/Avatar/Avatar.view.js +2 -2
  5. package/dist/_internal/components/data-display/CardKit/card-actions-context.js +3 -3
  6. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +5 -5
  7. package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +1 -1
  8. package/dist/_internal/components/data-display/Chart/SpecChart.js +3 -3
  9. package/dist/_internal/components/data-display/Chart/chart-spec.js +2 -2
  10. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +9 -9
  11. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +16 -16
  12. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +1 -1
  13. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +1 -1
  14. package/dist/_internal/components/data-display/DataViews/base-list-card-layout.js +1 -1
  15. package/dist/_internal/components/data-display/DataViews/base-list-card.js +1 -1
  16. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +6 -6
  17. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +5 -5
  18. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +2 -2
  19. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +3 -3
  20. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +4 -4
  21. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +2 -2
  22. package/dist/_internal/components/data-display/DayRuler/DayRuler.js +6 -6
  23. package/dist/_internal/components/data-display/DayRuler/DayRuler.keyboard.js +2 -2
  24. package/dist/_internal/components/data-display/DayRuler/DayRuler.parts.js +2 -2
  25. package/dist/_internal/components/data-display/DayRuler/useRulerDrag.js +2 -2
  26. package/dist/_internal/components/data-display/HoverCard/HoverCard.js +1 -1
  27. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +5 -5
  28. package/dist/_internal/components/data-display/Lightbox/LightboxControls.js +2 -2
  29. package/dist/_internal/components/data-display/Lightbox/LightboxOverlay.js +3 -3
  30. package/dist/_internal/components/data-display/Lightbox/LightboxThumbnails.js +2 -2
  31. package/dist/_internal/components/data-display/RegionMap/RegionMap.js +2 -2
  32. package/dist/_internal/components/data-display/ScheduleGrid/ScheduleGrid.js +1 -1
  33. package/dist/_internal/components/data-display/Sheet/Sheet.hooks.js +2 -2
  34. package/dist/_internal/components/data-display/Sheet/Sheet.js +3 -3
  35. package/dist/_internal/components/data-display/Table/Table.js +3 -3
  36. package/dist/_internal/components/data-display/index.js +35 -35
  37. package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.js +3 -3
  38. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.frame.js +48 -0
  39. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.frame.js.map +1 -0
  40. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.js +6 -5
  41. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.overview.js +4 -4
  42. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.parts.js +3 -3
  43. package/dist/_internal/components/feedback/index.js +10 -9
  44. package/dist/_internal/components/index.js +44 -43
  45. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +4 -4
  46. package/dist/_internal/components/navigation/index.js +4 -4
  47. package/dist/_internal/user-avatar/user-avatar.js +4 -4
  48. package/dist/charts.js +6 -6
  49. package/dist/{chunk-DBPFKGXX.js → chunk-3YFDGFEK.js} +2 -2
  50. package/dist/{chunk-Y3F2F36I.js → chunk-4QGKR65P.js} +4 -4
  51. package/dist/{chunk-YE7M7URT.js → chunk-6D5AMANO.js} +2 -2
  52. package/dist/{chunk-UDBOGSFO.js → chunk-6HPVCDVU.js} +4 -4
  53. package/dist/{chunk-EOQ6EKTS.js → chunk-7XSCEHGA.js} +7 -7
  54. package/dist/{chunk-B5STMM3R.js → chunk-ALMGYCHY.js} +2 -2
  55. package/dist/{chunk-64UNVW6D.js → chunk-BP3ZKIPE.js} +4 -4
  56. package/dist/{chunk-OCT5VCLP.js → chunk-BQBEN44R.js} +2 -2
  57. package/dist/chunk-CPQJFHNZ.js +63 -0
  58. package/dist/chunk-CPQJFHNZ.js.map +1 -0
  59. package/dist/{chunk-Q3SILZTQ.js → chunk-E2UOEI7N.js} +2 -2
  60. package/dist/{chunk-DWH4TQXK.js → chunk-F5H3WDG7.js} +2 -2
  61. package/dist/{chunk-JVOEVTCZ.js → chunk-HQCZT6TO.js} +5 -5
  62. package/dist/{chunk-3I5PHWKQ.js → chunk-HSVSU7I2.js} +6 -6
  63. package/dist/{chunk-4QR7LM5F.js → chunk-JIEVKHOH.js} +2 -2
  64. package/dist/{chunk-FWTVIRZZ.js → chunk-JVQ56E3U.js} +6 -6
  65. package/dist/{chunk-YOLLISEY.js → chunk-JXK53XJW.js} +9 -9
  66. package/dist/{chunk-PCQ5JWLF.js → chunk-KPUUHAK6.js} +7 -7
  67. package/dist/{chunk-56JF5PZK.js → chunk-LYVTJLCF.js} +4 -4
  68. package/dist/{chunk-NXQ6PXLJ.js → chunk-LZ5PGB7U.js} +2 -2
  69. package/dist/{chunk-EKSJES5E.js → chunk-MAYAJXO6.js} +4 -4
  70. package/dist/{chunk-CNUO2BRV.js → chunk-MFX4ASX5.js} +3 -3
  71. package/dist/{chunk-5I75WRXT.js → chunk-N3GLX64O.js} +4 -4
  72. package/dist/{chunk-PEAUGQKU.js → chunk-NQCTANF3.js} +7 -7
  73. package/dist/{chunk-QE4KYG5I.js → chunk-OM6ZT64U.js} +5 -5
  74. package/dist/{chunk-W676GY42.js → chunk-P772HCHI.js} +4 -4
  75. package/dist/{chunk-VWRXSBT2.js → chunk-R52N5UCS.js} +2 -2
  76. package/dist/{chunk-FQNDJITD.js → chunk-RCTHCXS6.js} +2 -2
  77. package/dist/{chunk-WLLUARTC.js → chunk-T2G4LDU5.js} +2 -2
  78. package/dist/{chunk-D2JQF2WC.js → chunk-VJIJCLUX.js} +4 -4
  79. package/dist/{chunk-66VKX6JE.js → chunk-WJMSND5Q.js} +2 -2
  80. package/dist/{chunk-ZCNR4DN5.js → chunk-XBWW3QSI.js} +4 -4
  81. package/dist/{chunk-KQDBOZQE.js → chunk-XFZDO2KB.js} +2 -2
  82. package/dist/{chunk-BOADHYTA.js → chunk-YNZUYZ2O.js} +2 -2
  83. package/dist/{chunk-XRV4QFEQ.js → chunk-ZBUMGMWP.js} +83 -65
  84. package/dist/chunk-ZBUMGMWP.js.map +1 -0
  85. package/dist/data-display/Alert.js +2 -2
  86. package/dist/data-display/Avatar.js +3 -3
  87. package/dist/data-display/CardKit.js +10 -10
  88. package/dist/data-display/Chart.js +6 -6
  89. package/dist/data-display/DataViews.js +21 -21
  90. package/dist/data-display/DayRuler.js +6 -6
  91. package/dist/data-display/HoverCard.js +1 -1
  92. package/dist/data-display/Lightbox.js +5 -5
  93. package/dist/data-display/RegionMap.js +2 -2
  94. package/dist/data-display/ScheduleGrid.js +5 -5
  95. package/dist/data-display/Sheet.js +3 -3
  96. package/dist/data-display/Table.js +3 -3
  97. package/dist/feedback/ConfirmAction.js +3 -3
  98. package/dist/feedback/NotificationStatusNotice.js +3 -3
  99. package/dist/feedback/SequenceResolver.js +6 -5
  100. package/dist/navigation/AppHeader.js +4 -4
  101. package/dist/types/components/feedback/SequenceResolver/SequenceResolver.d.ts +55 -2
  102. package/dist/types/components/feedback/SequenceResolver/SequenceResolver.d.ts.map +1 -1
  103. package/dist/types/components/feedback/SequenceResolver/SequenceResolver.frame.d.ts +16 -0
  104. package/dist/types/components/feedback/SequenceResolver/SequenceResolver.frame.d.ts.map +1 -0
  105. package/dist/types/components/feedback/SequenceResolver/SequenceResolver.types.d.ts +10 -4
  106. package/dist/types/components/feedback/SequenceResolver/SequenceResolver.types.d.ts.map +1 -1
  107. package/dist/user-avatar.js +4 -4
  108. package/package.json +1 -1
  109. package/src/components/feedback/SequenceResolver/SequenceResolver.frame.tsx +71 -0
  110. package/src/components/feedback/SequenceResolver/SequenceResolver.md +2 -2
  111. package/src/components/feedback/SequenceResolver/SequenceResolver.tsx +122 -61
  112. package/src/components/feedback/SequenceResolver/SequenceResolver.types.ts +10 -4
  113. package/dist/chunk-XRV4QFEQ.js.map +0 -1
  114. /package/dist/{chunk-DBPFKGXX.js.map → chunk-3YFDGFEK.js.map} +0 -0
  115. /package/dist/{chunk-Y3F2F36I.js.map → chunk-4QGKR65P.js.map} +0 -0
  116. /package/dist/{chunk-YE7M7URT.js.map → chunk-6D5AMANO.js.map} +0 -0
  117. /package/dist/{chunk-UDBOGSFO.js.map → chunk-6HPVCDVU.js.map} +0 -0
  118. /package/dist/{chunk-EOQ6EKTS.js.map → chunk-7XSCEHGA.js.map} +0 -0
  119. /package/dist/{chunk-B5STMM3R.js.map → chunk-ALMGYCHY.js.map} +0 -0
  120. /package/dist/{chunk-64UNVW6D.js.map → chunk-BP3ZKIPE.js.map} +0 -0
  121. /package/dist/{chunk-OCT5VCLP.js.map → chunk-BQBEN44R.js.map} +0 -0
  122. /package/dist/{chunk-Q3SILZTQ.js.map → chunk-E2UOEI7N.js.map} +0 -0
  123. /package/dist/{chunk-DWH4TQXK.js.map → chunk-F5H3WDG7.js.map} +0 -0
  124. /package/dist/{chunk-JVOEVTCZ.js.map → chunk-HQCZT6TO.js.map} +0 -0
  125. /package/dist/{chunk-3I5PHWKQ.js.map → chunk-HSVSU7I2.js.map} +0 -0
  126. /package/dist/{chunk-4QR7LM5F.js.map → chunk-JIEVKHOH.js.map} +0 -0
  127. /package/dist/{chunk-FWTVIRZZ.js.map → chunk-JVQ56E3U.js.map} +0 -0
  128. /package/dist/{chunk-YOLLISEY.js.map → chunk-JXK53XJW.js.map} +0 -0
  129. /package/dist/{chunk-PCQ5JWLF.js.map → chunk-KPUUHAK6.js.map} +0 -0
  130. /package/dist/{chunk-56JF5PZK.js.map → chunk-LYVTJLCF.js.map} +0 -0
  131. /package/dist/{chunk-NXQ6PXLJ.js.map → chunk-LZ5PGB7U.js.map} +0 -0
  132. /package/dist/{chunk-EKSJES5E.js.map → chunk-MAYAJXO6.js.map} +0 -0
  133. /package/dist/{chunk-CNUO2BRV.js.map → chunk-MFX4ASX5.js.map} +0 -0
  134. /package/dist/{chunk-5I75WRXT.js.map → chunk-N3GLX64O.js.map} +0 -0
  135. /package/dist/{chunk-PEAUGQKU.js.map → chunk-NQCTANF3.js.map} +0 -0
  136. /package/dist/{chunk-QE4KYG5I.js.map → chunk-OM6ZT64U.js.map} +0 -0
  137. /package/dist/{chunk-W676GY42.js.map → chunk-P772HCHI.js.map} +0 -0
  138. /package/dist/{chunk-VWRXSBT2.js.map → chunk-R52N5UCS.js.map} +0 -0
  139. /package/dist/{chunk-FQNDJITD.js.map → chunk-RCTHCXS6.js.map} +0 -0
  140. /package/dist/{chunk-WLLUARTC.js.map → chunk-T2G4LDU5.js.map} +0 -0
  141. /package/dist/{chunk-D2JQF2WC.js.map → chunk-VJIJCLUX.js.map} +0 -0
  142. /package/dist/{chunk-66VKX6JE.js.map → chunk-WJMSND5Q.js.map} +0 -0
  143. /package/dist/{chunk-ZCNR4DN5.js.map → chunk-XBWW3QSI.js.map} +0 -0
  144. /package/dist/{chunk-KQDBOZQE.js.map → chunk-XFZDO2KB.js.map} +0 -0
  145. /package/dist/{chunk-BOADHYTA.js.map → chunk-YNZUYZ2O.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/feedback/SequenceResolver/SequenceResolver.tsx"],"sourcesContent":["'use client';\n\nimport { useTheme } from '@mui/material/styles/index.js';\nimport useMediaQuery from '@mui/material/useMediaQuery/index.js';\nimport React, { useCallback, useEffect, useId, useRef, useState } from 'react';\n\nimport { canReturn, currentOf, jumpTargetOf, positionOf, progressOf, summaryOf, type RunState } from './sequence-model';\nimport {\n SequenceDoneBody,\n SequenceIntroBody,\n SequenceStepBody,\n} from './SequenceResolver.parts';\nimport { SequenceOverviewBody } from './SequenceResolver.overview';\nimport { ResolverFrame } from './SequenceResolver.frame';\nimport { SEQUENCE_METRICS } from './SequenceResolver.metrics';\nimport type {\n SequenceItem,\n SequenceOverviewCategory,\n SequenceResolverProps,\n SequenceStep,\n SequenceStepApi,\n} from './SequenceResolver.types';\nimport { useSequenceRun, type SequenceRun } from './useSequenceRun';\n\n/** What the header's label says on the screen showing. */\nfunction headerLabelOf<I extends SequenceItem, R>(\n props: SequenceResolverProps<I, R>,\n run: RunState<I, R>,\n current: I | undefined,\n): string {\n const { labels } = props;\n if (props.intro) return labels.introStep;\n if (!current) return labels.doneStep;\n return labels.step(positionOf(run), summaryOf(run).total, current);\n}\n\n/** The header's back button, once a previous step exists and the host allows it. */\nfunction backOf<I extends SequenceItem, R>(props: SequenceResolverProps<I, R>, state: SequenceRun<I, R>) {\n const { intro, labels, canGoBack = true } = props;\n if (intro || !canGoBack || !canReturn(state.run)) return undefined;\n return { label: labels.back, accessible: labels.backAccessible, onClick: state.back, disabled: state.busy };\n}\n\ninterface OverviewState {\n /** The overview is on screen instead of the step. */\n shown: boolean;\n /** The header's \"Ver todos (N)\", while there is a step and more than one problem. */\n button?: { label: string; onClick: () => void; disabled: boolean };\n canPick: (category: SequenceOverviewCategory) => boolean;\n pick: (category: SequenceOverviewCategory) => void;\n hide: () => void;\n /** The overview's title (in the header row): focus goes to it when it opens. */\n titleRef: React.RefObject<HTMLHeadingElement | null>;\n}\n\n/**\n * \"Ver todos\" inside the run: whether it shows, its header button, and its\n * picks. Opening it changes nothing in the run; a pick jumps; \"continue\"\n * returns to the step it left. Every opening of the resolver starts closed.\n */\nfunction useOverview<I extends SequenceItem, R>(\n props: SequenceResolverProps<I, R>,\n state: SequenceRun<I, R>,\n current: I | undefined,\n open: boolean,\n): OverviewState {\n const [shown, setShown] = useState(false);\n const [wasOpen, setWasOpen] = useState(open);\n const titleRef = useRef<HTMLHeadingElement | null>(null);\n if (wasOpen !== open) {\n setWasOpen(open);\n if (shown) setShown(false);\n }\n const { overview } = props;\n const total = summaryOf(state.run).total;\n const available = Boolean(overview && current && total > 1);\n const hide = (): void => setShown(false);\n return {\n shown: shown && available,\n button:\n available && overview\n ? { label: overview.label(total), onClick: () => setShown(true), disabled: state.busy }\n : undefined,\n canPick: (category) => jumpTargetOf(state.run, category.keys) !== undefined,\n pick: (category) => {\n const target = jumpTargetOf(state.run, category.keys);\n if (target === undefined) return;\n state.jumpTo(target);\n setShown(false);\n category.onPick?.();\n },\n hide,\n titleRef,\n };\n}\n\n/** What the host's `renderStep` gets: the run's verbs, `busy`, and the props for its title. */\nfunction stepApiOf<I extends SequenceItem, R>(\n state: SequenceRun<I, R>,\n titleProps: SequenceStepApi<R>['titleProps'],\n): SequenceStepApi<R> {\n return { resolve: state.resolve, skip: state.skip, back: state.back, jumpTo: state.jumpTo, busy: state.busy, titleProps };\n}\n\ninterface HeaderInputs<I extends SequenceItem, R> {\n props: SequenceResolverProps<I, R>;\n state: SequenceRun<I, R>;\n current: I | undefined;\n overview: OverviewState;\n titleId: string;\n}\n\n/** The header's back, \"Ver todos\" and label — or, over the overview, its title and close alone. */\nfunction headerOf<I extends SequenceItem, R>(inputs: HeaderInputs<I, R>) {\n const { props, state, current, overview, titleId } = inputs;\n const run = state.run;\n const base = { label: headerLabelOf(props, run, current), progress: props.intro ? 0 : progressOf(run) };\n if (overview.shown && props.overview) {\n return { ...base, title: { id: titleId, text: props.overview.title, ref: overview.titleRef } };\n }\n return { ...base, back: backOf(props, state), seeAll: overview.button };\n}\n\ninterface BodyProps<I extends SequenceItem, R> {\n props: SequenceResolverProps<I, R>;\n state: SequenceRun<I, R>;\n current: I | undefined;\n /** The step on screen, rendered once by the resolver (it also reads `canGoBack` from it). */\n step: SequenceStep | undefined;\n overview: OverviewState;\n titleId: string;\n stepTitleRef: React.RefObject<HTMLElement | null>;\n touch: boolean;\n testId: string;\n close: () => void;\n}\n\n/** The intro, the step on screen, or the end screen. */\nfunction SequenceBody<I extends SequenceItem, R>(body: BodyProps<I, R>): React.JSX.Element {\n const { props, state, current, step, overview, titleId, stepTitleRef, touch, testId, close } = body;\n if (props.intro) {\n return <SequenceIntroBody intro={props.intro} titleId={titleId} testId={testId} screenKey=\"intro\" />;\n }\n const stepBody =\n current && step ? (\n <SequenceStepBody\n key={`step:${current.key}`}\n step={step}\n skip={{ label: props.labels.skip, onClick: state.skip }}\n busy={state.busy}\n error={state.error}\n touch={touch}\n testId={testId}\n screenKey={`step:${current.key}`}\n titleRef={stepTitleRef}\n hidden={overview.shown}\n />\n ) : null;\n if (overview.shown && props.overview) {\n // The step stays mounted under the overview, so a half-filled answer survives \"continue\".\n return (\n <>\n <SequenceOverviewBody\n key=\"overview\"\n categories={props.overview.categories}\n canPick={overview.canPick}\n onPick={overview.pick}\n pickLabel={props.overview.pickLabel}\n continueLabel={props.overview.continueLabel}\n onContinue={overview.hide}\n titleRef={overview.titleRef}\n touch={touch}\n testId={testId}\n />\n {stepBody}\n </>\n );\n }\n if (stepBody) return <>{stepBody}</>;\n // `done: null`: no end screen — the resolver is closing over its last step (see `useExitScreen`).\n if (props.done === null) return <></>;\n const summary = summaryOf(state.run);\n return (\n <SequenceDoneBody\n done={typeof props.done === 'function' ? props.done(summary) : props.done}\n titleId={titleId}\n error={state.error}\n touch={touch}\n onConfirm={close}\n testId={testId}\n screenKey=\"done\"\n />\n );\n}\n\n/**\n * With `done: null`, the run's end closes the resolver: `onClose(summary)`\n * once, when the queue runs out while it is open and past the intro. Returns\n * whether the run has ended that way, so the dialog starts closing in the same\n * render (and keeps its last screen for the exit, see `useExitScreen`).\n *\n * `fired` makes it once per ending: StrictMode replays a mount's effects, and\n * a resolver mounted open over an empty queue would otherwise close twice. It\n * resets when the run is live again (a reopening, a queue that grew back).\n */\nfunction useCloseAtEnd(ended: boolean, close: () => void): boolean {\n const closeRef = useRef(close);\n const fired = useRef(false);\n useEffect(() => {\n closeRef.current = close;\n });\n useEffect(() => {\n if (!ended) {\n fired.current = false;\n return;\n }\n if (fired.current) return;\n fired.current = true;\n closeRef.current();\n }, [ended]);\n return ended;\n}\n\nexport interface Screen {\n header: ReturnType<typeof headerOf>;\n body: React.JSX.Element;\n}\n\n/**\n * What the dialog shows. While a step is on screen, that screen — and it is\n * kept: when the run ends with `done: null` the dialog closes in that same\n * render, and its exit transition (a fade, the sheet sliding down) plays over\n * the LAST step as it was — its label, Back, progress and body — rather than\n * an empty, collapsed \"done\" paper — also once the host turns `open` off from\n * `onClose`. Back is inert during the exit.\n */\nfunction useExitScreen(live: Screen, input: { open: boolean; hasStep: boolean; closesAtEnd: boolean }): Screen {\n const { open, hasStep, closesAtEnd } = input;\n const last = useRef<Screen | null>(null);\n const wasOpen = useRef(open);\n // A new opening is a new run: the last one's screen is not kept into it.\n if (open && !wasOpen.current) last.current = null;\n wasOpen.current = open;\n if (!closesAtEnd) return live;\n if (open && hasStep) {\n last.current = live;\n return live;\n }\n // Ended (or closed by the host after `onClose`): the exit plays over the last step.\n const kept = last.current;\n if (!kept) return live;\n const { header } = kept;\n if (!('back' in header) || !header.back) return kept;\n return { ...kept, header: { ...header, back: { ...header.back, onClick: () => undefined } } };\n}\n\ninterface RunEnding<I extends SequenceItem> {\n current: I | undefined;\n close: () => void;\n /** The run ended with `done: null`: the dialog is closing. */\n ended: boolean;\n /** The kept last step is playing its exit. */\n exiting: boolean;\n}\n\nfunction useRunEnding<I extends SequenceItem, R>(\n props: SequenceResolverProps<I, R>,\n state: SequenceRun<I, R>,\n): RunEnding<I> {\n const { open, onClose, intro } = props;\n const { run } = state;\n const current = intro ? undefined : currentOf(run);\n const close = (): void => onClose(summaryOf(run));\n const closesAtEnd = props.done === null && !intro;\n const ended = useCloseAtEnd(open && closesAtEnd && !current, close);\n return { current, close, ended, exiting: ended || (!open && closesAtEnd) };\n}\n\n/**\n * Resolve a queue of problems one at a time, in ONE dialog whose body is\n * replaced step by step: a header with \"‹ Back\", the step's label and close,\n * a progress bar, the host's step, and an end screen (FUT-3671) — or none,\n * with `done: null`: the run's end closes it (FUT-3833).\n *\n * A centred `Dialog` from the `sm` breakpoint up; the `Dialog` inset\n * bottom-sheet variant below it, never taller than 95% of the viewport. Either\n * way the paper scrolls inside the viewport, so a long step is never cut off.\n *\n * The component owns the run — which step is on screen, what was answered or\n * skipped, where Back returns to — and nothing about the domain: every step\n * body, every word and every server call is the host's.\n */\nexport function SequenceResolver<I extends SequenceItem, R = unknown>(\n props: SequenceResolverProps<I, R>,\n): React.JSX.Element {\n const { open, intro, labels } = props;\n const testId = props.dataTestId ?? 'sequence-resolver';\n const theme = useTheme();\n const touch = useMediaQuery(theme.breakpoints.down(SEQUENCE_METRICS.sheetBreakpoint));\n const titleId = `${useId()}-title`;\n const stepTitleRef = useRef<HTMLElement | null>(null);\n const titleRef = useCallback((node: HTMLElement | null) => {\n stepTitleRef.current = node;\n }, []);\n\n // Read when an answer is recorded: the step on screen's own `canGoBack`.\n const stepAllowsBack = useRef(true);\n const state = useSequenceRun<I, R>({\n open,\n active: open && !intro,\n queue: props.queue,\n initialKey: props.initialKey,\n onBack: props.onBack,\n failed: labels.failed,\n stepAllowsBack: () => stepAllowsBack.current,\n });\n const ending = useRunEnding(props, state);\n const { current, close } = ending;\n const overview = useOverview(props, state, current, open);\n // Under the overview the step is kept but hidden, and the overview's title names the dialog.\n const titleProps = { id: overview.shown ? `${titleId}-kept` : titleId, tabIndex: -1, ref: titleRef } as const;\n const step = current ? props.renderStep(current, stepApiOf(state, titleProps)) : undefined;\n stepAllowsBack.current = step?.canGoBack !== false;\n const screen = useExitScreen(\n {\n header: headerOf({ props, state, current, overview, titleId }),\n body: (\n <SequenceBody\n props={props}\n state={state}\n current={current}\n step={step}\n overview={overview}\n titleId={titleId}\n stepTitleRef={stepTitleRef}\n touch={touch}\n testId={testId}\n close={close}\n />\n ),\n },\n { open, hasStep: current !== undefined && step !== undefined, closesAtEnd: props.done === null && !intro },\n );\n\n return (\n <ResolverFrame\n shown={open && !ending.ended}\n exiting={ending.exiting}\n touch={touch}\n titleId={titleId}\n testId={testId}\n labels={labels}\n screen={screen}\n close={close}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,SAAS,gBAAgB;AACzB,OAAO,mBAAmB;AAC1B,SAAgB,aAAa,WAAW,OAAO,QAAQ,gBAAgB;AAyI5D,SAoBL,UApBK,KAoBL,YApBK;AApHX,SAAS,cACP,OACA,KACA,SACQ;AACR,QAAM,EAAE,OAAO,IAAI;AACnB,MAAI,MAAM,MAAO,QAAO,OAAO;AAC/B,MAAI,CAAC,QAAS,QAAO,OAAO;AAC5B,SAAO,OAAO,KAAK,WAAW,GAAG,GAAG,UAAU,GAAG,EAAE,OAAO,OAAO;AACnE;AAGA,SAAS,OAAkC,OAAoC,OAA0B;AACvG,QAAM,EAAE,OAAO,QAAQ,YAAY,KAAK,IAAI;AAC5C,MAAI,SAAS,CAAC,aAAa,CAAC,UAAU,MAAM,GAAG,EAAG,QAAO;AACzD,SAAO,EAAE,OAAO,OAAO,MAAM,YAAY,OAAO,gBAAgB,SAAS,MAAM,MAAM,UAAU,MAAM,KAAK;AAC5G;AAmBA,SAAS,YACP,OACA,OACA,SACA,MACe;AACf,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,KAAK;AACxC,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,IAAI;AAC3C,QAAM,WAAW,OAAkC,IAAI;AACvD,MAAI,YAAY,MAAM;AACpB,eAAW,IAAI;AACf,QAAI,MAAO,UAAS,KAAK;AAAA,EAC3B;AACA,QAAM,EAAE,SAAS,IAAI;AACrB,QAAM,QAAQ,UAAU,MAAM,GAAG,EAAE;AACnC,QAAM,YAAY,QAAQ,YAAY,WAAW,QAAQ,CAAC;AAC1D,QAAM,OAAO,MAAY,SAAS,KAAK;AACvC,SAAO;AAAA,IACL,OAAO,SAAS;AAAA,IAChB,QACE,aAAa,WACT,EAAE,OAAO,SAAS,MAAM,KAAK,GAAG,SAAS,MAAM,SAAS,IAAI,GAAG,UAAU,MAAM,KAAK,IACpF;AAAA,IACN,SAAS,CAAC,aAAa,aAAa,MAAM,KAAK,SAAS,IAAI,MAAM;AAAA,IAClE,MAAM,CAAC,aAAa;AAClB,YAAM,SAAS,aAAa,MAAM,KAAK,SAAS,IAAI;AACpD,UAAI,WAAW,OAAW;AAC1B,YAAM,OAAO,MAAM;AACnB,eAAS,KAAK;AACd,eAAS,SAAS;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAGA,SAAS,UACP,OACA,YACoB;AACpB,SAAO,EAAE,SAAS,MAAM,SAAS,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,QAAQ,MAAM,QAAQ,MAAM,MAAM,MAAM,WAAW;AAC1H;AAWA,SAAS,SAAoC,QAA4B;AACvE,QAAM,EAAE,OAAO,OAAO,SAAS,UAAU,QAAQ,IAAI;AACrD,QAAM,MAAM,MAAM;AAClB,QAAM,OAAO,EAAE,OAAO,cAAc,OAAO,KAAK,OAAO,GAAG,UAAU,MAAM,QAAQ,IAAI,WAAW,GAAG,EAAE;AACtG,MAAI,SAAS,SAAS,MAAM,UAAU;AACpC,WAAO,EAAE,GAAG,MAAM,OAAO,EAAE,IAAI,SAAS,MAAM,MAAM,SAAS,OAAO,KAAK,SAAS,SAAS,EAAE;AAAA,EAC/F;AACA,SAAO,EAAE,GAAG,MAAM,MAAM,OAAO,OAAO,KAAK,GAAG,QAAQ,SAAS,OAAO;AACxE;AAiBA,SAAS,aAAwC,MAA0C;AACzF,QAAM,EAAE,OAAO,OAAO,SAAS,MAAM,UAAU,SAAS,cAAc,OAAO,QAAQ,MAAM,IAAI;AAC/F,MAAI,MAAM,OAAO;AACf,WAAO,oBAAC,qBAAkB,OAAO,MAAM,OAAO,SAAkB,QAAgB,WAAU,SAAQ;AAAA,EACpG;AACA,QAAM,WACJ,WAAW,OACT;AAAA,IAAC;AAAA;AAAA,MAEC;AAAA,MACA,MAAM,EAAE,OAAO,MAAM,OAAO,MAAM,SAAS,MAAM,KAAK;AAAA,MACtD,MAAM,MAAM;AAAA,MACZ,OAAO,MAAM;AAAA,MACb;AAAA,MACA;AAAA,MACA,WAAW,QAAQ,QAAQ,GAAG;AAAA,MAC9B,UAAU;AAAA,MACV,QAAQ,SAAS;AAAA;AAAA,IATZ,QAAQ,QAAQ,GAAG;AAAA,EAU1B,IACE;AACN,MAAI,SAAS,SAAS,MAAM,UAAU;AAEpC,WACE,iCACE;AAAA;AAAA,QAAC;AAAA;AAAA,UAEC,YAAY,MAAM,SAAS;AAAA,UAC3B,SAAS,SAAS;AAAA,UAClB,QAAQ,SAAS;AAAA,UACjB,WAAW,MAAM,SAAS;AAAA,UAC1B,eAAe,MAAM,SAAS;AAAA,UAC9B,YAAY,SAAS;AAAA,UACrB,UAAU,SAAS;AAAA,UACnB;AAAA,UACA;AAAA;AAAA,QATI;AAAA,MAUN;AAAA,MACC;AAAA,OACH;AAAA,EAEJ;AACA,MAAI,SAAU,QAAO,gCAAG,oBAAS;AAEjC,MAAI,MAAM,SAAS,KAAM,QAAO,gCAAE;AAClC,QAAM,UAAU,UAAU,MAAM,GAAG;AACnC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAM,OAAO,MAAM,SAAS,aAAa,MAAM,KAAK,OAAO,IAAI,MAAM;AAAA,MACrE;AAAA,MACA,OAAO,MAAM;AAAA,MACb;AAAA,MACA,WAAW;AAAA,MACX;AAAA,MACA,WAAU;AAAA;AAAA,EACZ;AAEJ;AAYA,SAAS,cAAc,OAAgB,OAA4B;AACjE,QAAM,WAAW,OAAO,KAAK;AAC7B,QAAM,QAAQ,OAAO,KAAK;AAC1B,YAAU,MAAM;AACd,aAAS,UAAU;AAAA,EACrB,CAAC;AACD,YAAU,MAAM;AACd,QAAI,CAAC,OAAO;AACV,YAAM,UAAU;AAChB;AAAA,IACF;AACA,QAAI,MAAM,QAAS;AACnB,UAAM,UAAU;AAChB,aAAS,QAAQ;AAAA,EACnB,GAAG,CAAC,KAAK,CAAC;AACV,SAAO;AACT;AAeA,SAAS,cAAc,MAAc,OAA0E;AAC7G,QAAM,EAAE,MAAM,SAAS,YAAY,IAAI;AACvC,QAAM,OAAO,OAAsB,IAAI;AACvC,QAAM,UAAU,OAAO,IAAI;AAE3B,MAAI,QAAQ,CAAC,QAAQ,QAAS,MAAK,UAAU;AAC7C,UAAQ,UAAU;AAClB,MAAI,CAAC,YAAa,QAAO;AACzB,MAAI,QAAQ,SAAS;AACnB,SAAK,UAAU;AACf,WAAO;AAAA,EACT;AAEA,QAAM,OAAO,KAAK;AAClB,MAAI,CAAC,KAAM,QAAO;AAClB,QAAM,EAAE,OAAO,IAAI;AACnB,MAAI,EAAE,UAAU,WAAW,CAAC,OAAO,KAAM,QAAO;AAChD,SAAO,EAAE,GAAG,MAAM,QAAQ,EAAE,GAAG,QAAQ,MAAM,EAAE,GAAG,OAAO,MAAM,SAAS,MAAM,OAAU,EAAE,EAAE;AAC9F;AAWA,SAAS,aACP,OACA,OACc;AACd,QAAM,EAAE,MAAM,SAAS,MAAM,IAAI;AACjC,QAAM,EAAE,IAAI,IAAI;AAChB,QAAM,UAAU,QAAQ,SAAY,UAAU,GAAG;AACjD,QAAM,QAAQ,MAAY,QAAQ,UAAU,GAAG,CAAC;AAChD,QAAM,cAAc,MAAM,SAAS,QAAQ,CAAC;AAC5C,QAAM,QAAQ,cAAc,QAAQ,eAAe,CAAC,SAAS,KAAK;AAClE,SAAO,EAAE,SAAS,OAAO,OAAO,SAAS,SAAU,CAAC,QAAQ,YAAa;AAC3E;AAgBO,SAAS,iBACd,OACmB;AACnB,QAAM,EAAE,MAAM,OAAO,OAAO,IAAI;AAChC,QAAM,SAAS,MAAM,cAAc;AACnC,QAAM,QAAQ,SAAS;AACvB,QAAM,QAAQ,cAAc,MAAM,YAAY,KAAK,iBAAiB,eAAe,CAAC;AACpF,QAAM,UAAU,GAAG,MAAM,CAAC;AAC1B,QAAM,eAAe,OAA2B,IAAI;AACpD,QAAM,WAAW,YAAY,CAAC,SAA6B;AACzD,iBAAa,UAAU;AAAA,EACzB,GAAG,CAAC,CAAC;AAGL,QAAM,iBAAiB,OAAO,IAAI;AAClC,QAAM,QAAQ,eAAqB;AAAA,IACjC;AAAA,IACA,QAAQ,QAAQ,CAAC;AAAA,IACjB,OAAO,MAAM;AAAA,IACb,YAAY,MAAM;AAAA,IAClB,QAAQ,MAAM;AAAA,IACd,QAAQ,OAAO;AAAA,IACf,gBAAgB,MAAM,eAAe;AAAA,EACvC,CAAC;AACD,QAAM,SAAS,aAAa,OAAO,KAAK;AACxC,QAAM,EAAE,SAAS,MAAM,IAAI;AAC3B,QAAM,WAAW,YAAY,OAAO,OAAO,SAAS,IAAI;AAExD,QAAM,aAAa,EAAE,IAAI,SAAS,QAAQ,GAAG,OAAO,UAAU,SAAS,UAAU,IAAI,KAAK,SAAS;AACnG,QAAM,OAAO,UAAU,MAAM,WAAW,SAAS,UAAU,OAAO,UAAU,CAAC,IAAI;AACjF,iBAAe,UAAU,MAAM,cAAc;AAC7C,QAAM,SAAS;AAAA,IACb;AAAA,MACE,QAAQ,SAAS,EAAE,OAAO,OAAO,SAAS,UAAU,QAAQ,CAAC;AAAA,MAC7D,MACE;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,MACF;AAAA,IAEJ;AAAA,IACA,EAAE,MAAM,SAAS,YAAY,UAAa,SAAS,QAAW,aAAa,MAAM,SAAS,QAAQ,CAAC,MAAM;AAAA,EAC3G;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAO,QAAQ,CAAC,OAAO;AAAA,MACvB,SAAS,OAAO;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -1,10 +1,10 @@
1
1
  import "../chunk-NUGT7LMR.js";
2
2
  import {
3
3
  Alert
4
- } from "../chunk-PEAUGQKU.js";
4
+ } from "../chunk-NQCTANF3.js";
5
+ import "../chunk-L5RS6QAT.js";
5
6
  import "../chunk-QXUXO22M.js";
6
7
  import "../chunk-7HZ36QDH.js";
7
- import "../chunk-L5RS6QAT.js";
8
8
  import "../chunk-L7VH6IMR.js";
9
9
  import "../chunk-5ZY3IIIG.js";
10
10
  import "../chunk-TYJR4GOF.js";
@@ -2,11 +2,11 @@ import "../chunk-UDQSIRAP.js";
2
2
  import {
3
3
  Avatar,
4
4
  AvatarGroup
5
- } from "../chunk-4QR7LM5F.js";
6
- import "../chunk-EOQ6EKTS.js";
5
+ } from "../chunk-JIEVKHOH.js";
6
+ import "../chunk-7XSCEHGA.js";
7
+ import "../chunk-MTEQEPNY.js";
7
8
  import "../chunk-6ZZGK5DT.js";
8
9
  import "../chunk-3ZVUNSFF.js";
9
- import "../chunk-MTEQEPNY.js";
10
10
  import "../chunk-XOXXG7Q5.js";
11
11
  import "../chunk-XJAD6E3V.js";
12
12
  import "../chunk-F5H2ZXST.js";
@@ -1,3 +1,6 @@
1
+ import {
2
+ useRemoveConfirm
3
+ } from "../chunk-3YFDGFEK.js";
1
4
  import {
2
5
  rowActionsToMenuItems
3
6
  } from "../chunk-ZBXG6RVJ.js";
@@ -8,34 +11,31 @@ import {
8
11
  Ledger,
9
12
  TagList
10
13
  } from "../chunk-JOKWTRWL.js";
14
+ import {
15
+ CardActionsProvider,
16
+ useCardActions
17
+ } from "../chunk-RCTHCXS6.js";
11
18
  import {
12
19
  CardKebab
13
20
  } from "../chunk-R2ODLE6G.js";
14
21
  import {
15
22
  useRowConfirm
16
23
  } from "../chunk-N557OEZR.js";
17
- import {
18
- useRemoveConfirm
19
- } from "../chunk-DBPFKGXX.js";
20
- import {
21
- CardActionsProvider,
22
- useCardActions
23
- } from "../chunk-FQNDJITD.js";
24
24
  import "../chunk-WVML3ENZ.js";
25
25
  import "../chunk-AY5GKCH7.js";
26
26
  import "../chunk-XCBQXSTR.js";
27
27
  import "../chunk-T5RFH2T5.js";
28
- import "../chunk-BNBWUXT3.js";
29
28
  import "../chunk-ALOEOGQV.js";
29
+ import "../chunk-BNBWUXT3.js";
30
30
  import "../chunk-7W5X3KQ2.js";
31
31
  import "../chunk-EMYESBIT.js";
32
32
  import "../chunk-LZRVUOMU.js";
33
33
  import "../chunk-EEB66IVH.js";
34
34
  import "../chunk-NUGT7LMR.js";
35
- import "../chunk-PEAUGQKU.js";
35
+ import "../chunk-NQCTANF3.js";
36
+ import "../chunk-L5RS6QAT.js";
36
37
  import "../chunk-QXUXO22M.js";
37
38
  import "../chunk-7HZ36QDH.js";
38
- import "../chunk-L5RS6QAT.js";
39
39
  import "../chunk-L7VH6IMR.js";
40
40
  import "../chunk-2IBFEHIX.js";
41
41
  import "../chunk-ZYZPSBNQ.js";
@@ -1,7 +1,7 @@
1
1
  import "../chunk-5KLSLD72.js";
2
2
  import {
3
3
  SpecChart
4
- } from "../chunk-VWRXSBT2.js";
4
+ } from "../chunk-R52N5UCS.js";
5
5
  import {
6
6
  Chart
7
7
  } from "../chunk-5357QUVE.js";
@@ -10,7 +10,11 @@ import {
10
10
  ChartSpecError,
11
11
  parseChartSpec,
12
12
  specToChartProps
13
- } from "../chunk-JVOEVTCZ.js";
13
+ } from "../chunk-HQCZT6TO.js";
14
+ import {
15
+ chartValueFormatter,
16
+ formatChartValue
17
+ } from "../chunk-6GPNZSAE.js";
14
18
  import {
15
19
  getChartSpecRenderer,
16
20
  getRegisteredChartSpecTypes,
@@ -27,10 +31,6 @@ import {
27
31
  ChartTooltipContent
28
32
  } from "../chunk-RIRTW5EU.js";
29
33
  import "../chunk-TCWISGSS.js";
30
- import {
31
- chartValueFormatter,
32
- formatChartValue
33
- } from "../chunk-6GPNZSAE.js";
34
34
  import "../chunk-B7ZHEOQQ.js";
35
35
  import "../chunk-BRHRK7BK.js";
36
36
  import "../chunk-25MSGLNU.js";
@@ -1,44 +1,45 @@
1
+ import {
2
+ BaseCard
3
+ } from "../chunk-MBMZNSBP.js";
1
4
  import {
2
5
  DataViewsTableBase
3
- } from "../chunk-3I5PHWKQ.js";
6
+ } from "../chunk-HSVSU7I2.js";
4
7
  import "../chunk-YNVTUQ5B.js";
5
8
  import {
6
9
  DataViewsGrid
7
- } from "../chunk-CNUO2BRV.js";
10
+ } from "../chunk-MFX4ASX5.js";
8
11
  import {
9
12
  BaseListCard
10
13
  } from "../chunk-IWSTMVCA.js";
11
14
  import "../chunk-E6K2UZGR.js";
12
15
  import "../chunk-QO7UJXXO.js";
13
16
  import "../chunk-UMOHHWXY.js";
17
+ import "../chunk-KLCSVYHL.js";
14
18
  import "../chunk-CSJ7WNXU.js";
15
19
  import "../chunk-2JCRNWHE.js";
16
- import {
17
- BaseCard
18
- } from "../chunk-MBMZNSBP.js";
19
- import "../chunk-KLCSVYHL.js";
20
+ import "../chunk-ZOLAYP2D.js";
20
21
  import {
21
22
  DragContainerProvider,
22
23
  DropIndicator,
23
24
  useDragItem
24
25
  } from "../chunk-K4EKTMTC.js";
25
- import "../chunk-ZOLAYP2D.js";
26
- import "../chunk-KQDBOZQE.js";
26
+ import "../chunk-XFZDO2KB.js";
27
27
  import "../chunk-FYUNROLW.js";
28
28
  import "../chunk-MKVDHR3B.js";
29
- import "../chunk-QE4KYG5I.js";
29
+ import "../chunk-OM6ZT64U.js";
30
30
  import "../chunk-T7OIVPCO.js";
31
+ import "../chunk-F5H3WDG7.js";
32
+ import "../chunk-VJIJCLUX.js";
33
+ import "../chunk-AJ6KFHEE.js";
31
34
  import "../chunk-X3AFXHY5.js";
32
35
  import "../chunk-XNAI7QGU.js";
33
36
  import {
34
37
  DataViewsBoard
35
38
  } from "../chunk-7TCOYCD7.js";
36
39
  import "../chunk-4ZQQUICR.js";
40
+ import "../chunk-AT6UKTH4.js";
37
41
  import "../chunk-XZFTRGRW.js";
38
42
  import "../chunk-WWH674WU.js";
39
- import "../chunk-DWH4TQXK.js";
40
- import "../chunk-D2JQF2WC.js";
41
- import "../chunk-AJ6KFHEE.js";
42
43
  import "../chunk-KYUEO2IO.js";
43
44
  import "../chunk-GZOW6HNN.js";
44
45
  import "../chunk-3WYEENUH.js";
@@ -49,14 +50,14 @@ import "../chunk-2FKWKLSC.js";
49
50
  import "../chunk-YOPMXGHY.js";
50
51
  import "../chunk-CBOB5AV6.js";
51
52
  import "../chunk-HRES2S3Q.js";
52
- import "../chunk-AT6UKTH4.js";
53
53
  import "../chunk-5YDS6HO3.js";
54
54
  import "../chunk-OY437NRJ.js";
55
55
  import "../chunk-ACBHZG3Z.js";
56
56
  import "../chunk-K6VEN5VN.js";
57
57
  import "../chunk-O5UGAL2V.js";
58
58
  import "../chunk-GCZJH4XL.js";
59
- import "../chunk-66VKX6JE.js";
59
+ import "../chunk-G6EJLEVV.js";
60
+ import "../chunk-WJMSND5Q.js";
60
61
  import "../chunk-I4DG3PP4.js";
61
62
  import "../chunk-K7IDOTSU.js";
62
63
  import "../chunk-5M4TYFR3.js";
@@ -69,6 +70,7 @@ import "../chunk-WSAUWJFO.js";
69
70
  import "../chunk-YEGZIYVM.js";
70
71
  import "../chunk-YLGY3D52.js";
71
72
  import "../chunk-4IE66GY2.js";
73
+ import "../chunk-DUVH273U.js";
72
74
  import {
73
75
  DEFAULT_RAILS,
74
76
  ListCardGroup,
@@ -84,12 +86,12 @@ import {
84
86
  } from "../chunk-F5S5UFGD.js";
85
87
  import "../chunk-ZMUXC3VB.js";
86
88
  import "../chunk-2MT6VSS2.js";
87
- import "../chunk-G6EJLEVV.js";
88
89
  import "../chunk-B2JSUFDX.js";
89
90
  import "../chunk-DZEC6RFM.js";
90
- import "../chunk-ZCNR4DN5.js";
91
+ import "../chunk-XBWW3QSI.js";
91
92
  import "../chunk-FF22F7FA.js";
92
93
  import "../chunk-YGQX7BNI.js";
94
+ import "../chunk-LLZWB32X.js";
93
95
  import {
94
96
  DataViewsScopeTabs,
95
97
  assertNoScopePillOverlap,
@@ -97,14 +99,12 @@ import {
97
99
  } from "../chunk-PL2AB5HJ.js";
98
100
  import "../chunk-UKNMPGEM.js";
99
101
  import "../chunk-IMLIIW77.js";
100
- import "../chunk-LLZWB32X.js";
101
102
  import "../chunk-OOLES6RR.js";
102
103
  import {
103
104
  CARD_ASPECT_RATIOS,
104
105
  DATA_VIEWS_LAYOUTS,
105
106
  toSavedViewSummary
106
107
  } from "../chunk-HLYYB4O5.js";
107
- import "../chunk-DUVH273U.js";
108
108
  import {
109
109
  DataViewsCopyProvider,
110
110
  useDataViewsCopy
@@ -197,8 +197,8 @@ import "../chunk-JZRSHDNY.js";
197
197
  import "../chunk-YKQA4NPM.js";
198
198
  import "../chunk-XCBQXSTR.js";
199
199
  import "../chunk-T5RFH2T5.js";
200
- import "../chunk-BNBWUXT3.js";
201
200
  import "../chunk-ALOEOGQV.js";
201
+ import "../chunk-BNBWUXT3.js";
202
202
  import "../chunk-7W5X3KQ2.js";
203
203
  import "../chunk-EMYESBIT.js";
204
204
  import "../chunk-LZRVUOMU.js";
@@ -224,10 +224,10 @@ import "../chunk-LL2BWQPM.js";
224
224
  import "../chunk-SNCSGLJ6.js";
225
225
  import "../chunk-UMICTXMP.js";
226
226
  import "../chunk-NUGT7LMR.js";
227
- import "../chunk-PEAUGQKU.js";
227
+ import "../chunk-NQCTANF3.js";
228
+ import "../chunk-L5RS6QAT.js";
228
229
  import "../chunk-QXUXO22M.js";
229
230
  import "../chunk-7HZ36QDH.js";
230
- import "../chunk-L5RS6QAT.js";
231
231
  import "../chunk-L7VH6IMR.js";
232
232
  import "../chunk-2IBFEHIX.js";
233
233
  import "../chunk-ZYZPSBNQ.js";
@@ -1,26 +1,26 @@
1
1
  import "../chunk-M6K6PCOS.js";
2
2
  import {
3
3
  DayRuler
4
- } from "../chunk-PCQ5JWLF.js";
5
- import "../chunk-UDBOGSFO.js";
4
+ } from "../chunk-KPUUHAK6.js";
5
+ import "../chunk-4QGKR65P.js";
6
+ import "../chunk-6HPVCDVU.js";
6
7
  import "../chunk-OJZLFFG4.js";
7
8
  import {
8
9
  DAY_RULER_LABELS
9
10
  } from "../chunk-EZBBLLEU.js";
10
11
  import "../chunk-F2ZUUEXC.js";
11
12
  import "../chunk-ZHCZOPKE.js";
12
- import "../chunk-Y3F2F36I.js";
13
13
  import "../chunk-YMYJO2CZ.js";
14
- import "../chunk-EKSJES5E.js";
15
- import "../chunk-7ZQ3KQ7J.js";
14
+ import "../chunk-MAYAJXO6.js";
16
15
  import "../chunk-LE5JYNR7.js";
16
+ import "../chunk-7ZQ3KQ7J.js";
17
17
  import "../chunk-RYJ6XGFA.js";
18
+ import "../chunk-35HMJQLO.js";
18
19
  import "../chunk-TZ44F6W7.js";
19
20
  import "../chunk-A5OERY43.js";
20
21
  import "../chunk-4HK4FVMV.js";
21
22
  import "../chunk-3R6BR22L.js";
22
23
  import "../chunk-YE44HUFF.js";
23
- import "../chunk-35HMJQLO.js";
24
24
  import "../chunk-LL2BWQPM.js";
25
25
  import "../chunk-TZ23DNKY.js";
26
26
  import "../chunk-7ZADLRLP.js";
@@ -3,9 +3,9 @@ import {
3
3
  HoverCard
4
4
  } from "../chunk-YBAK2WN5.js";
5
5
  import "../chunk-ABF64CAQ.js";
6
+ import "../chunk-ZHV7TCAC.js";
6
7
  import "../chunk-Z3USLQQT.js";
7
8
  import "../chunk-NRIV2CQ2.js";
8
- import "../chunk-ZHV7TCAC.js";
9
9
  import "../chunk-HPK33ACY.js";
10
10
  import "../chunk-XJAD6E3V.js";
11
11
  import "../chunk-F5H2ZXST.js";
@@ -1,18 +1,18 @@
1
1
  import "../chunk-UM35GGCS.js";
2
2
  import {
3
3
  Lightbox_default
4
- } from "../chunk-FWTVIRZZ.js";
4
+ } from "../chunk-JVQ56E3U.js";
5
5
  import "../chunk-UOS7DEQZ.js";
6
- import "../chunk-64UNVW6D.js";
6
+ import "../chunk-BP3ZKIPE.js";
7
7
  import "../chunk-SYGM4SHY.js";
8
- import "../chunk-WLLUARTC.js";
8
+ import "../chunk-T2G4LDU5.js";
9
9
  import "../chunk-RBGUS7WO.js";
10
10
  import "../chunk-IOCY5G43.js";
11
- import "../chunk-W676GY42.js";
11
+ import "../chunk-P772HCHI.js";
12
+ import "../chunk-TEQYTEM2.js";
12
13
  import "../chunk-HZBDTPPV.js";
13
14
  import "../chunk-WZERH7E3.js";
14
15
  import "../chunk-VQU3CBAL.js";
15
- import "../chunk-TEQYTEM2.js";
16
16
  import "../chunk-XJAD6E3V.js";
17
17
  import "../chunk-F5H2ZXST.js";
18
18
  import "../chunk-N3GAFIXG.js";
@@ -1,7 +1,8 @@
1
1
  import "../chunk-DY2I6LMX.js";
2
2
  import {
3
3
  RegionMap
4
- } from "../chunk-5I75WRXT.js";
4
+ } from "../chunk-N3GLX64O.js";
5
+ import "../chunk-BRZKOUEL.js";
5
6
  import "../chunk-PBRCKHN3.js";
6
7
  import "../chunk-NGXL4R54.js";
7
8
  import "../chunk-J3AWGTJY.js";
@@ -15,7 +16,6 @@ import {
15
16
  hitRegion,
16
17
  projectionAt
17
18
  } from "../chunk-COOSJKZL.js";
18
- import "../chunk-BRZKOUEL.js";
19
19
  import "../chunk-PUFA7FQ7.js";
20
20
  import "../chunk-B7ZHEOQQ.js";
21
21
  import "../chunk-BRHRK7BK.js";
@@ -1,12 +1,12 @@
1
1
  import "../chunk-ESOM4KVQ.js";
2
- import {
3
- SCHEDULE_GRID_LABELS
4
- } from "../chunk-DDGYTY4E.js";
5
- import "../chunk-LVZYKETN.js";
6
2
  import {
7
3
  ScheduleGrid
8
4
  } from "../chunk-D7R6SRJB.js";
9
5
  import "../chunk-E73C73UD.js";
6
+ import {
7
+ SCHEDULE_GRID_LABELS
8
+ } from "../chunk-DDGYTY4E.js";
9
+ import "../chunk-LVZYKETN.js";
10
10
  import "../chunk-ZHKCE5LR.js";
11
11
  import "../chunk-NMXYHPOG.js";
12
12
  import "../chunk-5MXVKZKZ.js";
@@ -15,12 +15,12 @@ import "../chunk-5EP37B4F.js";
15
15
  import "../chunk-WBMLMLXP.js";
16
16
  import "../chunk-E6UMTR2G.js";
17
17
  import "../chunk-RYJ6XGFA.js";
18
+ import "../chunk-35HMJQLO.js";
18
19
  import "../chunk-TZ44F6W7.js";
19
20
  import "../chunk-A5OERY43.js";
20
21
  import "../chunk-4HK4FVMV.js";
21
22
  import "../chunk-3R6BR22L.js";
22
23
  import "../chunk-YE44HUFF.js";
23
- import "../chunk-35HMJQLO.js";
24
24
  import "../chunk-LL2BWQPM.js";
25
25
  import "../chunk-TZ23DNKY.js";
26
26
  import "../chunk-7ZADLRLP.js";
@@ -1,7 +1,7 @@
1
1
  import "../chunk-ITACE45O.js";
2
2
  import {
3
3
  Sheet
4
- } from "../chunk-NXQ6PXLJ.js";
4
+ } from "../chunk-LZ5PGB7U.js";
5
5
  import "../chunk-E5OBAS3U.js";
6
6
  import "../chunk-3ROCD7XF.js";
7
7
  import {
@@ -10,9 +10,9 @@ import {
10
10
  SheetHeader,
11
11
  SheetOverlay
12
12
  } from "../chunk-NASLJO2R.js";
13
- import "../chunk-56JF5PZK.js";
14
- import "../chunk-IM4DMKH4.js";
13
+ import "../chunk-LYVTJLCF.js";
15
14
  import "../chunk-CRN4KKNI.js";
15
+ import "../chunk-IM4DMKH4.js";
16
16
  import "../chunk-XOXXG7Q5.js";
17
17
  import "../chunk-HPK33ACY.js";
18
18
  import "../chunk-B7ZHEOQQ.js";
@@ -1,12 +1,12 @@
1
1
  import "../chunk-WG2WFANT.js";
2
2
  import {
3
3
  Table
4
- } from "../chunk-YOLLISEY.js";
4
+ } from "../chunk-JXK53XJW.js";
5
+ import "../chunk-L5KPBMMF.js";
5
6
  import "../chunk-BVHIKXCN.js";
6
7
  import "../chunk-RZSMRBOX.js";
7
- import "../chunk-XIXR2L3L.js";
8
- import "../chunk-L5KPBMMF.js";
9
8
  import "../chunk-Y3DV7LGC.js";
9
+ import "../chunk-XIXR2L3L.js";
10
10
  import "../chunk-LL2BWQPM.js";
11
11
  import "../chunk-XOXXG7Q5.js";
12
12
  import "../chunk-O6MJWHU5.js";
@@ -2,12 +2,12 @@ import "../chunk-XCBQXSTR.js";
2
2
  import {
3
3
  createConfirmButton
4
4
  } from "../chunk-T5RFH2T5.js";
5
- import {
6
- ConfirmAction
7
- } from "../chunk-BNBWUXT3.js";
8
5
  import {
9
6
  withConfirmation
10
7
  } from "../chunk-ALOEOGQV.js";
8
+ import {
9
+ ConfirmAction
10
+ } from "../chunk-BNBWUXT3.js";
11
11
  import {
12
12
  ConfirmActionDialog
13
13
  } from "../chunk-7W5X3KQ2.js";
@@ -1,16 +1,16 @@
1
1
  import "../chunk-JQRKXMSH.js";
2
2
  import {
3
3
  NotificationStatusNotice
4
- } from "../chunk-BOADHYTA.js";
4
+ } from "../chunk-YNZUYZ2O.js";
5
5
  import "../chunk-55FFONIV.js";
6
6
  import {
7
7
  detectNotificationBrowser,
8
8
  notificationUnblockSteps
9
9
  } from "../chunk-L7BRU4UF.js";
10
- import "../chunk-PEAUGQKU.js";
10
+ import "../chunk-NQCTANF3.js";
11
+ import "../chunk-L5RS6QAT.js";
11
12
  import "../chunk-QXUXO22M.js";
12
13
  import "../chunk-7HZ36QDH.js";
13
- import "../chunk-L5RS6QAT.js";
14
14
  import "../chunk-L7VH6IMR.js";
15
15
  import "../chunk-5ZY3IIIG.js";
16
16
  import "../chunk-YOXYSAUI.js";
@@ -1,9 +1,10 @@
1
1
  import "../chunk-TWAKMV5B.js";
2
2
  import {
3
3
  SequenceResolver
4
- } from "../chunk-XRV4QFEQ.js";
5
- import "../chunk-YE7M7URT.js";
6
- import "../chunk-OCT5VCLP.js";
4
+ } from "../chunk-ZBUMGMWP.js";
5
+ import "../chunk-6D5AMANO.js";
6
+ import "../chunk-BQBEN44R.js";
7
+ import "../chunk-CPQJFHNZ.js";
7
8
  import "../chunk-JO6D7YGN.js";
8
9
  import "../chunk-2ORD2FMN.js";
9
10
  import "../chunk-2SRWPNQ7.js";
@@ -23,10 +24,10 @@ import "../chunk-AL5E624U.js";
23
24
  import "../chunk-GYXUCS37.js";
24
25
  import "../chunk-LV7LSPBF.js";
25
26
  import "../chunk-NUGT7LMR.js";
26
- import "../chunk-PEAUGQKU.js";
27
+ import "../chunk-NQCTANF3.js";
28
+ import "../chunk-L5RS6QAT.js";
27
29
  import "../chunk-QXUXO22M.js";
28
30
  import "../chunk-7HZ36QDH.js";
29
- import "../chunk-L5RS6QAT.js";
30
31
  import "../chunk-L7VH6IMR.js";
31
32
  import "../chunk-5ZY3IIIG.js";
32
33
  import "../chunk-BA4RHQ3B.js";
@@ -17,14 +17,14 @@ import {
17
17
  } from "../chunk-IQU4HKND.js";
18
18
  import {
19
19
  AppHeaderDetails
20
- } from "../chunk-B5STMM3R.js";
21
- import "../chunk-NXQ6PXLJ.js";
20
+ } from "../chunk-ALMGYCHY.js";
21
+ import "../chunk-LZ5PGB7U.js";
22
22
  import "../chunk-E5OBAS3U.js";
23
23
  import "../chunk-3ROCD7XF.js";
24
24
  import "../chunk-NASLJO2R.js";
25
- import "../chunk-56JF5PZK.js";
26
- import "../chunk-IM4DMKH4.js";
25
+ import "../chunk-LYVTJLCF.js";
27
26
  import "../chunk-CRN4KKNI.js";
27
+ import "../chunk-IM4DMKH4.js";
28
28
  import "../chunk-TJUWSQYQ.js";
29
29
  import "../chunk-DAFFZED3.js";
30
30
  import "../chunk-5UX5QAFJ.js";
@@ -1,9 +1,61 @@
1
1
  import React from 'react';
2
- import type { SequenceItem, SequenceResolverProps } from './SequenceResolver.types';
2
+ import type { SequenceItem, SequenceOverviewCategory, SequenceResolverProps } from './SequenceResolver.types';
3
+ import { type SequenceRun } from './useSequenceRun';
4
+ interface OverviewState {
5
+ /** The overview is on screen instead of the step. */
6
+ shown: boolean;
7
+ /** The header's "Ver todos (N)", while there is a step and more than one problem. */
8
+ button?: {
9
+ label: string;
10
+ onClick: () => void;
11
+ disabled: boolean;
12
+ };
13
+ canPick: (category: SequenceOverviewCategory) => boolean;
14
+ pick: (category: SequenceOverviewCategory) => void;
15
+ hide: () => void;
16
+ /** The overview's title (in the header row): focus goes to it when it opens. */
17
+ titleRef: React.RefObject<HTMLHeadingElement | null>;
18
+ }
19
+ interface HeaderInputs<I extends SequenceItem, R> {
20
+ props: SequenceResolverProps<I, R>;
21
+ state: SequenceRun<I, R>;
22
+ current: I | undefined;
23
+ overview: OverviewState;
24
+ titleId: string;
25
+ }
26
+ /** The header's back, "Ver todos" and label — or, over the overview, its title and close alone. */
27
+ declare function headerOf<I extends SequenceItem, R>(inputs: HeaderInputs<I, R>): {
28
+ title: {
29
+ id: string;
30
+ text: string;
31
+ ref: React.RefObject<HTMLHeadingElement | null>;
32
+ };
33
+ label: string;
34
+ progress: number;
35
+ } | {
36
+ back: {
37
+ label: string;
38
+ accessible: string | undefined;
39
+ onClick: () => void;
40
+ disabled: boolean;
41
+ } | undefined;
42
+ seeAll: {
43
+ label: string;
44
+ onClick: () => void;
45
+ disabled: boolean;
46
+ } | undefined;
47
+ label: string;
48
+ progress: number;
49
+ };
50
+ export interface Screen {
51
+ header: ReturnType<typeof headerOf>;
52
+ body: React.JSX.Element;
53
+ }
3
54
  /**
4
55
  * Resolve a queue of problems one at a time, in ONE dialog whose body is
5
56
  * replaced step by step: a header with "‹ Back", the step's label and close,
6
- * a progress bar, the host's step, and an end screen (FUT-3671).
57
+ * a progress bar, the host's step, and an end screen (FUT-3671) — or none,
58
+ * with `done: null`: the run's end closes it (FUT-3833).
7
59
  *
8
60
  * A centred `Dialog` from the `sm` breakpoint up; the `Dialog` inset
9
61
  * bottom-sheet variant below it, never taller than 95% of the viewport. Either
@@ -14,4 +66,5 @@ import type { SequenceItem, SequenceResolverProps } from './SequenceResolver.typ
14
66
  * body, every word and every server call is the host's.
15
67
  */
16
68
  export declare function SequenceResolver<I extends SequenceItem, R = unknown>(props: SequenceResolverProps<I, R>): React.JSX.Element;
69
+ export {};
17
70
  //# sourceMappingURL=SequenceResolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SequenceResolver.d.ts","sourceRoot":"","sources":["../../../../../src/components/feedback/SequenceResolver/SequenceResolver.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAapE,OAAO,KAAK,EACV,YAAY,EAEZ,qBAAqB,EAGtB,MAAM,0BAA0B,CAAC;AAyLlC;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,GAAG,OAAO,EAClE,KAAK,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,GACjC,KAAK,CAAC,GAAG,CAAC,OAAO,CAuEnB"}
1
+ {"version":3,"file":"SequenceResolver.d.ts","sourceRoot":"","sources":["../../../../../src/components/feedback/SequenceResolver/SequenceResolver.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA0D,MAAM,OAAO,CAAC;AAW/E,OAAO,KAAK,EACV,YAAY,EACZ,wBAAwB,EACxB,qBAAqB,EAGtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAqBpE,UAAU,aAAa;IACrB,qDAAqD;IACrD,KAAK,EAAE,OAAO,CAAC;IACf,qFAAqF;IACrF,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IACnE,OAAO,EAAE,CAAC,QAAQ,EAAE,wBAAwB,KAAK,OAAO,CAAC;IACzD,IAAI,EAAE,CAAC,QAAQ,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACnD,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,gFAAgF;IAChF,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;CACtD;AAmDD,UAAU,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC;IAC9C,KAAK,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,KAAK,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzB,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC;IACvB,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,mGAAmG;AACnG,iBAAS,QAAQ,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;;;;;;;;;;;;;;;;eAlEnD,MAAM;iBAAW,MAAM,IAAI;kBAAY,OAAO;;;;EA0EjE;AAsGD,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;IACpC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;CACzB;AAoDD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,GAAG,OAAO,EAClE,KAAK,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,GACjC,KAAK,CAAC,GAAG,CAAC,OAAO,CA8DnB"}
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import type { SequenceResolverLabels } from './SequenceResolver.types';
3
+ import type { Screen } from './SequenceResolver';
4
+ export interface ResolverFrameProps {
5
+ shown: boolean;
6
+ /** The kept last step is playing its exit: a picture, nothing on it acts. */
7
+ exiting: boolean;
8
+ touch: boolean;
9
+ titleId: string;
10
+ testId: string;
11
+ labels: SequenceResolverLabels;
12
+ screen: Screen;
13
+ close: () => void;
14
+ }
15
+ export declare function ResolverFrame(props: ResolverFrameProps): React.JSX.Element;
16
+ //# sourceMappingURL=SequenceResolver.frame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SequenceResolver.frame.d.ts","sourceRoot":"","sources":["../../../../../src/components/feedback/SequenceResolver/SequenceResolver.frame.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAejD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,6EAA6E;IAC7E,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,sBAAsB,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAOD,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA+B1E"}