@crewlethq/ui 0.55.0 → 0.56.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.
- package/README.md +87 -4
- package/dist/Accordion/index.js +2 -2
- package/dist/AgentHandoffPanel/index.js +14 -9
- package/dist/AppShell/AppShell.d.ts +74 -1
- package/dist/AppShell/ResizeHandle.d.ts +74 -0
- package/dist/AppShell/index.d.ts +7 -2
- package/dist/AppShell/index.js +6 -4
- package/dist/AppShell/regions.d.ts +34 -0
- package/dist/AppShell/storedWidth.d.ts +47 -0
- package/dist/{AppShell-5LPXYUV3.css → AppShell-ZVCJRGXH.css} +172 -1
- package/dist/ArrangeFrame/index.js +2 -2
- package/dist/ArrangeList/index.js +5 -5
- package/dist/ArtifactBar/ArtifactBar.d.ts +13 -2
- package/dist/ArtifactBar/index.js +9 -8
- package/dist/{ArtifactBar-UMZCTARR.css → ArtifactBar-LEBMR35Y.css} +19 -1
- package/dist/ArtifactCard/index.js +6 -6
- package/dist/ArtifactNameCell/ArtifactNameCell.d.ts +7 -1
- package/dist/ArtifactNameCell/index.js +1 -1
- package/dist/ArtifactPanel/ArtifactPanel.d.ts +11 -17
- package/dist/ArtifactPanel/index.d.ts +3 -0
- package/dist/ArtifactPanel/index.js +8 -2
- package/dist/ArtifactPanel-TN4FFK2F.css +43 -0
- package/dist/AvatarPicker/index.js +9 -8
- package/dist/Button/index.js +2 -1
- package/dist/{Button-UWKBTKYD.css → Button-VXJ7M5XF.css} +9 -32
- package/dist/Canvas/index.js +5 -4
- package/dist/CanvasBoard/index.js +7 -6
- package/dist/CanvasToolbar/index.js +6 -5
- package/dist/ChangeList/ChangeList.d.ts +114 -0
- package/dist/ChangeList/index.d.ts +3 -0
- package/dist/ChangeList/index.js +10 -0
- package/dist/ChangeList-CB2DLR5S.css +151 -0
- package/dist/ChatThread/ChatThread.d.ts +53 -0
- package/dist/ChatThread/index.d.ts +3 -0
- package/dist/ChatThread/index.js +6 -0
- package/dist/ChatThread-52KMDXHB.css +58 -0
- package/dist/Checkbox/index.js +4 -4
- package/dist/CodeBlock/index.js +5 -4
- package/dist/ColorField/index.js +4 -4
- package/dist/ColorSwatch/index.js +5 -4
- package/dist/Combobox/index.js +5 -5
- package/dist/CommandPalette/index.js +9 -8
- package/dist/CommentThread/index.js +9 -7
- package/dist/Composer/Composer.d.ts +39 -2
- package/dist/Composer/index.js +5 -4
- package/dist/Composer-JSGTOW3F.css +192 -0
- package/dist/ConfirmField/index.js +4 -4
- package/dist/ConflictNote/index.js +3 -2
- package/dist/ContrastHelp/index.js +2 -2
- package/dist/Copyable/index.js +4 -3
- package/dist/DataGrid/driving.d.ts +48 -0
- package/dist/DataGrid/index.d.ts +2 -0
- package/dist/DataGrid/index.js +8 -7
- package/dist/DataTable/index.js +10 -9
- package/dist/DataView/index.js +14 -13
- package/dist/DatasetSource/index.js +2 -2
- package/dist/DateTimePicker/index.js +4 -3
- package/dist/DiffList/DiffList.d.ts +12 -3
- package/dist/DiffList/index.d.ts +1 -1
- package/dist/DiffList/index.js +1 -1
- package/dist/{DiffList-3EX64AAE.css → DiffList-GE6YBRLJ.css} +53 -0
- package/dist/Disclosure/anatomy.d.ts +14 -1
- package/dist/Disclosure/index.js +2 -2
- package/dist/{Disclosure-P4FH3C35.css → Disclosure-FVMA4RW2.css} +36 -0
- package/dist/DocTabsEditor/index.js +8 -7
- package/dist/DownloadButton/DownloadButton.d.ts +21 -4
- package/dist/DownloadButton/index.d.ts +1 -1
- package/dist/DownloadButton/index.js +4 -3
- package/dist/EditingStatus/index.js +2 -2
- package/dist/{Editor-GNKMX3VF.js → Editor-X2J47LPD.js} +7 -6
- package/dist/EntityList/EntityList.d.ts +37 -0
- package/dist/EntityList/index.d.ts +3 -0
- package/dist/EntityList/index.js +10 -0
- package/dist/EntityList-XIICECVC.css +55 -0
- package/dist/ErrorBoundary/index.js +3 -2
- package/dist/FileDrop/index.js +3 -2
- package/dist/FollowBanner/index.js +3 -2
- package/dist/HuePicker/index.js +8 -7
- package/dist/IconButton/IconButton.d.ts +6 -1
- package/dist/IconButton/index.js +1 -1
- package/dist/{IconButton-K24JQHLF.css → IconButton-6WA7UEBJ.css} +44 -21
- package/dist/IconTile/IconTile.d.ts +8 -2
- package/dist/IconTile/index.js +1 -1
- package/dist/{IconTile-4GNWTLAW.css → IconTile-G52XZVR4.css} +3 -0
- package/dist/InlineEditor/index.js +6 -5
- package/dist/Input/index.js +3 -3
- package/dist/LinkInterstitial/index.js +6 -5
- package/dist/ListInput/index.js +7 -6
- package/dist/LogoSlot/index.js +4 -3
- package/dist/MarkdownEditor/index.js +8 -7
- package/dist/Menu/index.js +4 -3
- package/dist/MergeConflicts/index.js +8 -7
- package/dist/MessageBubble/MessageBubble.d.ts +34 -0
- package/dist/MessageBubble/index.d.ts +3 -0
- package/dist/MessageBubble/index.js +2 -0
- package/dist/MessageBubble-GKO6X3QG.css +71 -0
- package/dist/Modal/index.js +5 -4
- package/dist/OpenInAppCard/OpenInAppCard.d.ts +44 -0
- package/dist/OpenInAppCard/index.d.ts +3 -0
- package/dist/OpenInAppCard/index.js +15 -0
- package/dist/OpenInAppCard-CKHCK7DO.css +24 -0
- package/dist/OrgTable/index.js +3 -3
- package/dist/PeekRail/PeekHost.d.ts +90 -0
- package/dist/PeekRail/PeekRail.d.ts +83 -0
- package/dist/PeekRail/activation.d.ts +30 -0
- package/dist/PeekRail/index.d.ts +8 -0
- package/dist/PeekRail/index.js +8 -0
- package/dist/PeekRail-4L5YUQMW.css +95 -0
- package/dist/PeopleRail/index.js +4 -3
- package/dist/PinTile/index.js +2 -2
- package/dist/PresenterView/index.js +5 -4
- package/dist/PrincipalPicker/index.js +6 -6
- package/dist/ProposalCard/ProposalCard.d.ts +134 -0
- package/dist/ProposalCard/index.d.ts +3 -0
- package/dist/ProposalCard/index.js +17 -0
- package/dist/ProposalCard-HLB3FNLA.css +19 -0
- package/dist/ReceiptStrip/ReceiptStrip.d.ts +66 -0
- package/dist/ReceiptStrip/index.d.ts +3 -0
- package/dist/ReceiptStrip/index.js +5 -0
- package/dist/ReceiptStrip-IIRKRTBG.css +93 -0
- package/dist/RefusalCard/RefusalCard.d.ts +34 -0
- package/dist/RefusalCard/index.d.ts +3 -0
- package/dist/RefusalCard/index.js +10 -0
- package/dist/RefusalCard-UM67F5HB.css +8 -0
- package/dist/RelativeTime/clock.d.ts +0 -6
- package/dist/RelativeTime/index.js +1 -1
- package/dist/ResizeHandle-2UNSZ4ZQ.css +59 -0
- package/dist/ResultTableCard/ResultTableCard.d.ts +64 -0
- package/dist/ResultTableCard/index.d.ts +3 -0
- package/dist/ResultTableCard/index.js +16 -0
- package/dist/ResultTableCard-HZRUDNTX.css +40 -0
- package/dist/ReviewList/index.js +2 -2
- package/dist/RichEditor/index.js +3 -2
- package/dist/RunChip/RunChip.d.ts +53 -0
- package/dist/RunChip/index.d.ts +3 -0
- package/dist/RunChip/index.js +10 -0
- package/dist/RunChip-I2S4VZ3R.css +43 -0
- package/dist/SandboxedFrame/index.js +3 -2
- package/dist/SegmentedControl/index.js +7 -6
- package/dist/SelectionBar/index.js +4 -3
- package/dist/SendButton/SendButton.d.ts +38 -0
- package/dist/SendButton/index.d.ts +2 -0
- package/dist/SendButton/index.js +4 -0
- package/dist/SetupWizard/index.js +6 -5
- package/dist/ShareDialog/index.js +8 -7
- package/dist/SheetColumnEditor/index.js +13 -12
- package/dist/SheetGrid/index.js +7 -6
- package/dist/SidePanel/SidePanel.d.ts +137 -0
- package/dist/SidePanel/SidePanelBase.d.ts +59 -0
- package/dist/SidePanel/index.d.ts +5 -0
- package/dist/SidePanel/index.js +11 -0
- package/dist/SidePanel-ERBUIELD.css +235 -0
- package/dist/SlideCompare/index.js +3 -2
- package/dist/SlideFilmstrip/index.js +7 -6
- package/dist/SlideNav/index.js +2 -2
- package/dist/Spinner/Spinner.d.ts +35 -0
- package/dist/Spinner/index.d.ts +3 -0
- package/dist/Spinner/index.js +2 -0
- package/dist/Spinner-XZ2TVYE5.css +46 -0
- package/dist/StatusCard/StatusCard.d.ts +59 -0
- package/dist/StatusCard/index.d.ts +3 -0
- package/dist/StatusCard/index.js +9 -0
- package/dist/StatusCard-6RPEE6UU.css +62 -0
- package/dist/StepList-A4YVU4JI.css +119 -0
- package/dist/Stepper/StepList.d.ts +72 -0
- package/dist/Stepper/index.d.ts +3 -0
- package/dist/Stepper/index.js +2 -1
- package/dist/SuggestionRow/SuggestionRow.d.ts +45 -0
- package/dist/SuggestionRow/index.d.ts +3 -0
- package/dist/SuggestionRow/index.js +3 -0
- package/dist/SuggestionRow-OKBGNHSS.css +102 -0
- package/dist/Switcher/index.js +9 -8
- package/dist/Table/Table.d.ts +23 -2
- package/dist/Table/index.d.ts +1 -1
- package/dist/Table/index.js +1 -1
- package/dist/{Table-TGCS4C3F.css → Table-RUYMMWXT.css} +49 -0
- package/dist/TableCells/index.js +2 -2
- package/dist/Tabs/index.js +6 -5
- package/dist/TagsInput/index.js +4 -4
- package/dist/ThemeGallery/index.js +2 -2
- package/dist/ThemeSwitcher/index.js +8 -7
- package/dist/ThemeToggle/index.js +2 -2
- package/dist/TimeRangePicker/TimeRangePicker.d.ts +121 -0
- package/dist/TimeRangePicker/index.d.ts +2 -0
- package/dist/TimeRangePicker/index.js +23 -0
- package/dist/TimeWindowPicker/index.js +8 -7
- package/dist/Toaster/Toaster.d.ts +27 -3
- package/dist/Toaster/index.d.ts +2 -2
- package/dist/Toaster/index.js +1 -1
- package/dist/{Toaster-C6BQ7L6I.css → Toaster-MX7TBMC3.css} +32 -11
- package/dist/TreeCanvas/index.js +6 -5
- package/dist/TreeGrid/index.js +2 -2
- package/dist/VersionCompare/index.js +9 -8
- package/dist/VersionTimeline/index.js +4 -3
- package/dist/WidgetFrame/index.js +2 -2
- package/dist/{chunk-KHKZPZHO.js → chunk-272Y3YMV.js} +3 -3
- package/dist/{chunk-LACA4JGC.js → chunk-2BQYODY3.js} +1 -1
- package/dist/{chunk-CCPOLCZL.js → chunk-2TTFDRR3.js} +2 -2
- package/dist/{chunk-4BJK7FE5.js → chunk-3EYSYEXP.js} +1 -1
- package/dist/chunk-3LI4TRUR.js +22 -0
- package/dist/{chunk-ATCHK6LC.js → chunk-3NQS6KYG.js} +1 -1
- package/dist/{chunk-V2N3BMOT.js → chunk-45KMH3E3.js} +11 -4
- package/dist/{chunk-ZMBPEHYH.js → chunk-4CBGIRVU.js} +1 -1
- package/dist/{chunk-DFW5PDU5.js → chunk-4OINEWR4.js} +1 -1
- package/dist/{chunk-5XKI4ITH.js → chunk-56P72ZBE.js} +4 -4
- package/dist/{chunk-J24Q4HTD.js → chunk-5NT6OIPP.js} +13 -3
- package/dist/{chunk-O2KT7HBD.js → chunk-5OMV75GE.js} +3 -3
- package/dist/{chunk-6RMZH7P7.js → chunk-672GLRBU.js} +2 -2
- package/dist/{chunk-MFXN46NN.js → chunk-67F2AM4R.js} +3 -3
- package/dist/{chunk-NQCY44B3.js → chunk-67MW366X.js} +2 -2
- package/dist/{chunk-URV6MGWT.js → chunk-6KLK7E76.js} +2 -2
- package/dist/{chunk-ZFM5L7M4.js → chunk-6NJW5KSX.js} +2 -2
- package/dist/{chunk-A4GFEMVI.js → chunk-6T6V5565.js} +1 -1
- package/dist/{chunk-THDGBD6Y.js → chunk-AKFHMLEX.js} +1 -1
- package/dist/{chunk-CNGHOTHV.js → chunk-AWSFK2IK.js} +2 -2
- package/dist/{chunk-HQJ24WPM.js → chunk-AZ5BKSGV.js} +1 -1
- package/dist/chunk-BLPT6GHV.js +31 -0
- package/dist/chunk-C3FX7ZSU.js +30 -0
- package/dist/{chunk-LDGQIDIZ.js → chunk-CGT4R7LW.js} +64 -2
- package/dist/{chunk-DM4JG4M5.js → chunk-D5OSP3KI.js} +3 -3
- package/dist/{chunk-BTHQFWMG.js → chunk-DOPPU6TZ.js} +4 -4
- package/dist/{chunk-AC22RZKC.js → chunk-DRT4L4WC.js} +17 -5
- package/dist/chunk-E4DZOE55.js +162 -0
- package/dist/chunk-EA23JG6R.js +9 -0
- package/dist/{chunk-WHL3XZCK.js → chunk-EBG3V4MK.js} +6 -6
- package/dist/{chunk-5JDHMDMQ.js → chunk-EDNZHW4K.js} +57 -7
- package/dist/{chunk-E6HXFFWO.js → chunk-EGL24VY5.js} +2 -2
- package/dist/{chunk-7SHAFLEX.js → chunk-ES4HR34Y.js} +2 -2
- package/dist/chunk-EVWTLFKI.js +102 -0
- package/dist/chunk-FA44M2YT.js +25 -0
- package/dist/{chunk-LKBZV5IT.js → chunk-FLTMDSC3.js} +1 -1
- package/dist/{chunk-XANKR3EP.js → chunk-FXQLNETQ.js} +2 -2
- package/dist/{chunk-G22NPQG4.js → chunk-GCASX3FD.js} +4 -4
- package/dist/{chunk-OGXHZHRX.js → chunk-GG4QZWMQ.js} +2 -2
- package/dist/{chunk-XP7EXNKF.js → chunk-GPW4M4OI.js} +2 -2
- package/dist/chunk-GZMEWWXW.js +78 -0
- package/dist/{chunk-OG6CL3EB.js → chunk-HD4QJ2SI.js} +3 -2
- package/dist/{chunk-SYY26XBX.js → chunk-HGCDJOEF.js} +2 -2
- package/dist/chunk-HGYHWWA5.js +54 -0
- package/dist/{chunk-ZS63CFDO.js → chunk-HL4CPLEK.js} +7 -7
- package/dist/{chunk-BEHFTRMZ.js → chunk-HNK43Z3P.js} +23 -5
- package/dist/{chunk-UO7JZVCO.js → chunk-HVEDVKXL.js} +1 -1
- package/dist/{chunk-FS4IH7VB.js → chunk-I7VG6RQE.js} +2 -2
- package/dist/{chunk-3RCHEFIL.js → chunk-ICJRP6QW.js} +2 -2
- package/dist/{chunk-YRIZAIU6.js → chunk-IDQBSMMZ.js} +2 -2
- package/dist/chunk-JILNCBBS.js +27 -0
- package/dist/{chunk-W5GM452Z.js → chunk-JJ3NOBJ6.js} +5 -5
- package/dist/chunk-JLRXCKTS.js +97 -0
- package/dist/{chunk-OJCVVCAZ.js → chunk-JMMS2PQU.js} +1 -1
- package/dist/{chunk-IVAR7NRW.js → chunk-JS2TRHBF.js} +3 -3
- package/dist/{chunk-3CZ7XAVY.js → chunk-KS7YIJ4S.js} +10 -6
- package/dist/{chunk-MU5KH3JF.js → chunk-LQ6AGUDL.js} +2 -2
- package/dist/chunk-LXYSWQNE.js +214 -0
- package/dist/{chunk-EKLEYNGR.js → chunk-MYX4XABB.js} +3 -3
- package/dist/{chunk-PM3JVNRY.js → chunk-N3ISZVLK.js} +1 -1
- package/dist/chunk-NEHSV55H.js +119 -0
- package/dist/{chunk-LLHO4FJK.js → chunk-NHJQXDHA.js} +1 -1
- package/dist/{chunk-NTZQN7OR.js → chunk-NI7WUPH3.js} +2 -2
- package/dist/{chunk-F6CKQX5D.js → chunk-NK3D66PB.js} +2 -2
- package/dist/{chunk-RHPBTE3F.js → chunk-NQGZRMUG.js} +1 -1
- package/dist/chunk-NVZCANJ5.js +3 -0
- package/dist/{chunk-RRO7UEYU.js → chunk-OHBXOEP3.js} +1 -1
- package/dist/{chunk-USVUSO3S.js → chunk-OHG7762N.js} +1 -1
- package/dist/{chunk-OBUQVGEG.js → chunk-OJ2QULVH.js} +1 -1
- package/dist/{chunk-ITTECHM4.js → chunk-OOZ5AGPS.js} +5 -5
- package/dist/{chunk-BZXY2L2D.js → chunk-OYAXKHVW.js} +1 -1
- package/dist/{chunk-WQQ5T5SA.js → chunk-OZIBNFLO.js} +1 -1
- package/dist/{chunk-DFK5EQTU.js → chunk-PDTEPN4D.js} +1 -1
- package/dist/chunk-PIYJNCN7.js +124 -0
- package/dist/{chunk-ZVV2VERB.js → chunk-Q6R6EUQ4.js} +3 -3
- package/dist/chunk-QYEOGGVS.js +161 -0
- package/dist/{chunk-NWGGH2LN.js → chunk-QZ4B72FP.js} +3 -3
- package/dist/chunk-RV2FGESF.js +98 -0
- package/dist/{chunk-TQ3C3Q7V.js → chunk-S5C64PTT.js} +1 -1
- package/dist/chunk-SDSBVVLL.js +45 -0
- package/dist/{chunk-ZNOXQACX.js → chunk-T4D7RZNI.js} +2 -2
- package/dist/{chunk-TDVPYBNL.js → chunk-TA72CURM.js} +1 -1
- package/dist/{chunk-WXOYHVWG.js → chunk-TD3UHDFY.js} +4 -4
- package/dist/{chunk-H7FUQCQY.js → chunk-TDQZ4LB5.js} +8 -6
- package/dist/chunk-TFGCNBWP.js +64 -0
- package/dist/{chunk-TMM32U7D.js → chunk-TKS7FTTO.js} +2 -2
- package/dist/{chunk-NKHS2RQ2.js → chunk-U5PJSGHG.js} +1 -1
- package/dist/{chunk-7CGPPAYR.js → chunk-UV4LOQ3E.js} +1 -1
- package/dist/{chunk-34ANLQW2.js → chunk-UVYGMCJ4.js} +173 -8
- package/dist/{chunk-ON2E46DX.js → chunk-VRNUKH2W.js} +1 -1
- package/dist/{chunk-XX2VQE55.js → chunk-WBRC3MNE.js} +1 -1
- package/dist/chunk-WDIVALLP.js +51 -0
- package/dist/{chunk-QMIWMLFI.js → chunk-WOW5SCEK.js} +1 -1
- package/dist/chunk-XODESBSR.js +250 -0
- package/dist/chunk-XQI2OUV4.js +59 -0
- package/dist/{chunk-EJWPYEG4.js → chunk-XRZGGB6I.js} +1 -1
- package/dist/{chunk-34C7NYIQ.js → chunk-Y73BQL74.js} +1 -1
- package/dist/{chunk-KIRQZG3G.js → chunk-YCGZK2E4.js} +1 -1
- package/dist/{chunk-5TK3C6RG.js → chunk-YCZ2FBKA.js} +1 -1
- package/dist/{chunk-TV2QW6GX.js → chunk-YEURM24I.js} +3 -3
- package/dist/{chunk-IW55G7XG.js → chunk-YNRKVY7X.js} +11 -1
- package/dist/chunk-YY445YFQ.js +55 -0
- package/dist/{chunk-LFHCXZO5.js → chunk-Z3GDMNMU.js} +3 -3
- package/dist/{chunk-LQPU5O3B.js → chunk-Z7PJF6F3.js} +3 -3
- package/dist/{chunk-HDHL773Z.js → chunk-ZH4MJM73.js} +1 -1
- package/dist/generated/index.d.ts +17 -0
- package/dist/generated/index.js +141 -122
- package/dist/index.js +141 -122
- package/dist/styles.css +1877 -218
- package/dist/utils/index.js +1 -1
- package/dist/utils/useDownload.d.ts +6 -0
- package/package.json +3 -3
- package/dist/ArtifactPanel-KKUUIPEU.css +0 -159
- package/dist/Composer-TXULCPPV.css +0 -99
- package/dist/chunk-4E5MWUUJ.js +0 -48
- package/dist/chunk-FZVJDJFN.js +0 -54
- package/dist/chunk-IXJHTFXG.js +0 -17
- package/dist/chunk-NBDN5JZV.js +0 -123
- package/dist/{chunk-UTESMBPL.js → chunk-ESUZ27TS.js} +1 -1
- /package/dist/{chunk-55MPFB2U.js → chunk-EWTPXRRM.js} +0 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { type HTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Where one step of a request stands. Unlike a `Stepper`'s position against
|
|
4
|
+
* one current step, every step carries its own state, because the steps of a
|
|
5
|
+
* request finish, fail or are refused on their own: `running` while it works,
|
|
6
|
+
* `done`, `failed` (the system could not do it), `refused` (the person's own
|
|
7
|
+
* access does not allow it), `stopped` (the person stopped the request before
|
|
8
|
+
* it finished) and `waiting` (it waits on the person's approval).
|
|
9
|
+
*/
|
|
10
|
+
export type StepState = 'running' | 'done' | 'failed' | 'refused' | 'stopped' | 'waiting';
|
|
11
|
+
export declare const STEP_STATES: readonly ["running", "done", "failed", "refused", "stopped", "waiting"];
|
|
12
|
+
/** The words each state is said with, after the step's own words: "Read token spend by agent, Done". */
|
|
13
|
+
export type StepStateLabels = Record<StepState, string>;
|
|
14
|
+
export declare const STEP_STATE_LABELS: StepStateLabels;
|
|
15
|
+
export interface StepStateMarkProps {
|
|
16
|
+
state: StepState;
|
|
17
|
+
className?: string | undefined;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* A state's mark in its 16px box: the 14px glyph, or the spinner at the same
|
|
21
|
+
* size while it runs, so nothing moves when the ring becomes a check. Running
|
|
22
|
+
* takes the secondary ink, done the success ink, failed the danger ink,
|
|
23
|
+
* waiting the warning ink, and refused and stopped the tertiary ink. One
|
|
24
|
+
* mark for a request's steps and for the request's own state (`RunChip`),
|
|
25
|
+
* which is what makes them one column.
|
|
26
|
+
*/
|
|
27
|
+
export declare function StepStateMark({ state, className }: StepStateMarkProps): import("react").JSX.Element;
|
|
28
|
+
/** One step of a request. */
|
|
29
|
+
export interface StepListStep {
|
|
30
|
+
/** What tells two steps apart, unique within the list. */
|
|
31
|
+
id: string;
|
|
32
|
+
/** What the step does, in plain words: "Read token spend by agent". */
|
|
33
|
+
label: ReactNode;
|
|
34
|
+
state: StepState;
|
|
35
|
+
/** How long it took, already formatted: "0.4s". Drawn in the mono face at the end of the label's line. */
|
|
36
|
+
duration?: string | undefined;
|
|
37
|
+
/**
|
|
38
|
+
* What the step asked for, in the mono face under the label: the tool and
|
|
39
|
+
* the request it made (`get_spend · GET /tokens/breakdown?group=seat`). A
|
|
40
|
+
* string breaks only at a space or after `/`, `?` or `&`, never inside a
|
|
41
|
+
* name such as `sign-in`, and wraps inside a piece only when that piece is
|
|
42
|
+
* wider than the line. A node is drawn as given.
|
|
43
|
+
*/
|
|
44
|
+
detail?: ReactNode;
|
|
45
|
+
}
|
|
46
|
+
export interface StepListProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
|
|
47
|
+
steps: readonly StepListStep[];
|
|
48
|
+
/** Names the list for a screen reader: "Steps". REQUIRED, for `Stepper`'s reason. */
|
|
49
|
+
label: string;
|
|
50
|
+
/** A line above the steps, such as "1 of 2 done". Left out, none is drawn. */
|
|
51
|
+
summary?: ReactNode;
|
|
52
|
+
/** The words each state is said with. */
|
|
53
|
+
labels?: Partial<StepStateLabels> | undefined;
|
|
54
|
+
}
|
|
55
|
+
/** A request's detail, cut into the pieces a line may break between. */
|
|
56
|
+
export declare function stepDetailPieces(text: string): string[];
|
|
57
|
+
/**
|
|
58
|
+
* The steps a request took, each with its own state, its duration and what it
|
|
59
|
+
* asked for: the list a run chip opens (`RunChip`).
|
|
60
|
+
*
|
|
61
|
+
* ONE STATE COLUMN. Every step's mark sits in the same 16px box, as tall as
|
|
62
|
+
* the label's first line, so the mark and the duration stay on that line
|
|
63
|
+
* however far the detail under it wraps, and the request's own mark in the
|
|
64
|
+
* chip above stands in the same column.
|
|
65
|
+
*
|
|
66
|
+
* AN ORDERED LIST, because the order is what happened. Each state is also
|
|
67
|
+
* said in words after the step's label, because the mark is a picture of it.
|
|
68
|
+
*
|
|
69
|
+
* ON THE INSET GROUND, with no edge: it is a well inside the thread rather
|
|
70
|
+
* than a card of its own.
|
|
71
|
+
*/
|
|
72
|
+
export declare function StepList({ steps, label, summary, labels: overrides, className, ...rest }: StepListProps): import("react").JSX.Element;
|
package/dist/Stepper/index.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import './Stepper.css';
|
|
2
|
+
import './StepList.css';
|
|
2
3
|
export { Stepper } from './Stepper.js';
|
|
3
4
|
export type { StepperOrientation, StepperProps, StepperStatus, StepperStep, StepperTone } from './Stepper.js';
|
|
5
|
+
export { STEP_STATE_LABELS, STEP_STATES, StepList, StepStateMark, stepDetailPieces } from './StepList.js';
|
|
6
|
+
export type { StepListProps, StepListStep, StepState, StepStateLabels, StepStateMarkProps } from './StepList.js';
|
package/dist/Stepper/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export { Stepper } from '../chunk-
|
|
1
|
+
export { STEP_STATES, STEP_STATE_LABELS, StepList, StepStateMark, Stepper, stepDetailPieces } from '../chunk-CGT4R7LW.js';
|
|
2
2
|
import '../chunk-WIATRXEJ.js';
|
|
3
|
+
import '../chunk-EA23JG6R.js';
|
|
3
4
|
import '../chunk-BZFWDIV6.js';
|
|
4
5
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { type ButtonHTMLAttributes, type HTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
export interface SuggestionRowProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onSelect' | 'children'> {
|
|
3
|
+
/** The intent's glyph, at 14px in the tertiary ink: `coins` for spend, `pause` for pausing an agent. */
|
|
4
|
+
icon: ReactNode;
|
|
5
|
+
/** The question or the start of a request: "What are my agents doing now?", "Pause an agent…". */
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
/** One fact under the words: "Agent CTO on ENG-133, Agent PM on PM-37". */
|
|
8
|
+
detail?: ReactNode;
|
|
9
|
+
/** A count at the row's end, as a `Tag`: how many are waiting. */
|
|
10
|
+
count?: ReactNode;
|
|
11
|
+
/** Draws a chevron at the row's end, for a row that opens something (a list of what is waiting). */
|
|
12
|
+
chevron?: boolean | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* The row starts a request rather than asking a question: it fills the
|
|
15
|
+
* message box with its words for the person to finish, and sends nothing.
|
|
16
|
+
* Said to assistive technology after its words (`fillsLabel`), since the
|
|
17
|
+
* ellipsis that shows it is easy to miss.
|
|
18
|
+
*/
|
|
19
|
+
fills?: boolean | undefined;
|
|
20
|
+
/** Said after a filling row's words. ", fills the message box" by default. */
|
|
21
|
+
fillsLabel?: string | undefined;
|
|
22
|
+
onSelect: () => void;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* A suggested question or request, as a row: the intent's glyph, the words,
|
|
26
|
+
* an optional fact under them, and an optional count and chevron at the end.
|
|
27
|
+
*
|
|
28
|
+
* A ROW, NOT A CHIP. It is the list row's grammar (the medium row height, a
|
|
29
|
+
* spacing step by a step and a half, the inset focus ring), so a column of
|
|
30
|
+
* suggestions reads as a list a person scans, and the same row stands plain
|
|
31
|
+
* on a page or divided inside a card (`SuggestionList divided`).
|
|
32
|
+
*/
|
|
33
|
+
export declare function SuggestionRow({ icon, children, detail, count, chevron, fills, fillsLabel, onSelect, className, type, ...rest }: SuggestionRowProps): import("react").JSX.Element;
|
|
34
|
+
export interface SuggestionListProps extends HTMLAttributes<HTMLUListElement> {
|
|
35
|
+
/**
|
|
36
|
+
* Draws the rows inside a card, divided by hairlines, for the block that
|
|
37
|
+
* leads (what needs the person); plain rows have no box, for the block that
|
|
38
|
+
* is optional. One hairline for the urgent block, none for the rest.
|
|
39
|
+
*/
|
|
40
|
+
divided?: boolean | undefined;
|
|
41
|
+
/** The `SuggestionRow`s. Each is put in its own list item. */
|
|
42
|
+
children: ReactNode;
|
|
43
|
+
}
|
|
44
|
+
/** A column of suggestions: a list, each row in its own item, plain or divided in a card. */
|
|
45
|
+
export declare function SuggestionList({ divided, className, children, ...rest }: SuggestionListProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* A suggestion, in the list row's grammar: the medium row height, a spacing
|
|
3
|
+
* step by a step and a half, the hover tint, and the inset focus ring that a
|
|
4
|
+
* row inside a clipped card can still show.
|
|
5
|
+
*/
|
|
6
|
+
.crewlet-suggestion-list {
|
|
7
|
+
display: flex;
|
|
8
|
+
flex-direction: column;
|
|
9
|
+
min-width: 0;
|
|
10
|
+
margin: 0;
|
|
11
|
+
padding: 0;
|
|
12
|
+
list-style: none;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.crewlet-suggestion-list--divided {
|
|
16
|
+
overflow: hidden;
|
|
17
|
+
border: 1px solid var(--color-border-default);
|
|
18
|
+
border-radius: var(--radius-lg);
|
|
19
|
+
background: var(--color-surface-subtle);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.crewlet-suggestion-list--divided > .crewlet-suggestion-list__item + .crewlet-suggestion-list__item {
|
|
23
|
+
border-top: 1px solid var(--color-border-default);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.crewlet-suggestion-row {
|
|
27
|
+
display: flex;
|
|
28
|
+
align-items: center;
|
|
29
|
+
gap: var(--spacing-3);
|
|
30
|
+
width: 100%;
|
|
31
|
+
min-width: 0;
|
|
32
|
+
min-height: var(--size-row-md);
|
|
33
|
+
padding: var(--spacing-2) var(--spacing-3);
|
|
34
|
+
border: 0;
|
|
35
|
+
border-radius: var(--radius-xs);
|
|
36
|
+
background: none;
|
|
37
|
+
color: var(--color-text-primary);
|
|
38
|
+
font: inherit;
|
|
39
|
+
text-align: left;
|
|
40
|
+
cursor: pointer;
|
|
41
|
+
transition: background var(--motion-duration-fast) var(--motion-easing-default);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.crewlet-suggestion-list--divided .crewlet-suggestion-row {
|
|
45
|
+
border-radius: 0;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.crewlet-suggestion-row:hover {
|
|
49
|
+
background: var(--color-surface-hover);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.crewlet-suggestion-row:focus-visible {
|
|
53
|
+
outline: 2px solid var(--color-focus);
|
|
54
|
+
outline-offset: var(--size-focus-ring-inset-offset);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.crewlet-suggestion-row:disabled {
|
|
58
|
+
cursor: not-allowed;
|
|
59
|
+
color: var(--color-text-tertiary);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.crewlet-suggestion-row:disabled:hover {
|
|
63
|
+
background: none;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.crewlet-suggestion-row__icon {
|
|
67
|
+
display: inline-flex;
|
|
68
|
+
flex: none;
|
|
69
|
+
color: var(--color-text-tertiary);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.crewlet-suggestion-row__icon .crewlet-glyph {
|
|
73
|
+
width: var(--font-size-sm);
|
|
74
|
+
height: var(--font-size-sm);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.crewlet-suggestion-row__words {
|
|
78
|
+
display: flex;
|
|
79
|
+
flex: 1 1 auto;
|
|
80
|
+
flex-direction: column;
|
|
81
|
+
min-width: 0;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.crewlet-suggestion-row__detail {
|
|
85
|
+
font-size: var(--font-size-xs);
|
|
86
|
+
color: var(--color-text-tertiary);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.crewlet-suggestion-row__trail {
|
|
90
|
+
display: inline-flex;
|
|
91
|
+
flex: none;
|
|
92
|
+
align-items: center;
|
|
93
|
+
gap: var(--spacing-2);
|
|
94
|
+
margin-inline-start: auto;
|
|
95
|
+
color: var(--color-text-tertiary);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
@media (prefers-reduced-motion: reduce) {
|
|
99
|
+
.crewlet-suggestion-row {
|
|
100
|
+
transition: none;
|
|
101
|
+
}
|
|
102
|
+
}
|
package/dist/Switcher/index.js
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
export { Switcher } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { Switcher } from '../chunk-67F2AM4R.js';
|
|
2
|
+
import '../chunk-QZ4B72FP.js';
|
|
3
3
|
import '../chunk-7KHM2FZH.js';
|
|
4
4
|
import '../chunk-KHJIEPZV.js';
|
|
5
5
|
import '../chunk-FYTIJM2T.js';
|
|
6
6
|
import '../chunk-TEUQWOWZ.js';
|
|
7
|
-
import '../chunk-
|
|
8
|
-
import '../chunk-OMV5W53A.js';
|
|
9
|
-
import '../chunk-XANKR3EP.js';
|
|
7
|
+
import '../chunk-FXQLNETQ.js';
|
|
10
8
|
import '../chunk-XCUUI7E7.js';
|
|
11
9
|
import '../chunk-PQADV6P6.js';
|
|
12
|
-
import '../chunk-
|
|
10
|
+
import '../chunk-RSAQOKH3.js';
|
|
11
|
+
import '../chunk-RTPQDNW3.js';
|
|
12
|
+
import '../chunk-HD4QJ2SI.js';
|
|
13
|
+
import '../chunk-EA23JG6R.js';
|
|
14
|
+
import '../chunk-OMV5W53A.js';
|
|
13
15
|
import '../chunk-H5XTJ7GJ.js';
|
|
14
|
-
import '../chunk-
|
|
16
|
+
import '../chunk-2BQYODY3.js';
|
|
15
17
|
import '../chunk-NUZHC6MM.js';
|
|
16
|
-
import '../chunk-RSAQOKH3.js';
|
|
17
18
|
import '../chunk-BZFWDIV6.js';
|
|
18
19
|
import '../chunk-ODEQTPFM.js';
|
package/dist/Table/Table.d.ts
CHANGED
|
@@ -22,10 +22,31 @@ export interface TableActionButton {
|
|
|
22
22
|
label: ReactNode;
|
|
23
23
|
onClick: () => void;
|
|
24
24
|
}
|
|
25
|
+
/** Which edge a column's cells stand against: `start` for words, `end` for figures. */
|
|
26
|
+
export type TableColumnAlign = 'start' | 'end';
|
|
25
27
|
export interface TableProps {
|
|
26
28
|
headers: ReactNode[];
|
|
27
29
|
/** One array per row, in the header's own order. Cells may be any node. */
|
|
28
30
|
data: ReactNode[][];
|
|
31
|
+
/**
|
|
32
|
+
* Each column's edge, in the header's order: `end` for a column of figures,
|
|
33
|
+
* so the numbers and their heading line up on the right. Left out, every
|
|
34
|
+
* column starts.
|
|
35
|
+
*/
|
|
36
|
+
align?: readonly TableColumnAlign[] | undefined;
|
|
37
|
+
/**
|
|
38
|
+
* A last row that sums the rows above it ("Total", "7,840,000", "100%"),
|
|
39
|
+
* fenced from them by a rule and set at medium weight. Its first cell heads
|
|
40
|
+
* the row, so a screen reader hears "Total" with each figure in it.
|
|
41
|
+
*/
|
|
42
|
+
footer?: readonly ReactNode[] | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Draws the table's own frame (the edge, the corner and the panel ground).
|
|
45
|
+
* `false` for a table that fills a card, which already has an edge: a card
|
|
46
|
+
* never holds a second bordered box. Its outer cells then take the card's
|
|
47
|
+
* own inset.
|
|
48
|
+
*/
|
|
49
|
+
framed?: boolean | undefined;
|
|
29
50
|
/**
|
|
30
51
|
* What the table is about, rendered as its `<caption>`.
|
|
31
52
|
*
|
|
@@ -36,7 +57,7 @@ export interface TableProps {
|
|
|
36
57
|
caption?: ReactNode;
|
|
37
58
|
captionHidden?: boolean;
|
|
38
59
|
emptyMessage?: ReactNode;
|
|
39
|
-
actionButton?: TableActionButton;
|
|
60
|
+
actionButton?: TableActionButton | undefined;
|
|
40
61
|
/**
|
|
41
62
|
* How tall the rows may get before they scroll, as a CSS length.
|
|
42
63
|
*
|
|
@@ -48,4 +69,4 @@ export interface TableProps {
|
|
|
48
69
|
maxHeight?: string;
|
|
49
70
|
className?: string;
|
|
50
71
|
}
|
|
51
|
-
export declare const Table: ({ headers, data, caption, captionHidden, emptyMessage, actionButton, maxHeight, className, }: TableProps) => import("react").JSX.Element;
|
|
72
|
+
export declare const Table: ({ headers, data, caption, captionHidden, emptyMessage, actionButton, maxHeight, align, footer, framed, className, }: TableProps) => import("react").JSX.Element;
|
package/dist/Table/index.d.ts
CHANGED
package/dist/Table/index.js
CHANGED
|
@@ -118,6 +118,55 @@
|
|
|
118
118
|
* a control.
|
|
119
119
|
*/
|
|
120
120
|
|
|
121
|
+
/* A column of figures stands against the end, its heading over its numbers. */
|
|
122
|
+
.crewlet-table__table .crewlet-table__cell--end {
|
|
123
|
+
text-align: right;
|
|
124
|
+
font-variant-numeric: tabular-nums;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/*
|
|
128
|
+
* THE TOTAL ROW, fenced from the rows it sums by the same hairline and set at
|
|
129
|
+
* medium weight. Its first cell heads the row, so it is a th and is reset to
|
|
130
|
+
* the body's register rather than the header's micro-label.
|
|
131
|
+
*/
|
|
132
|
+
.crewlet-table__table tfoot th,
|
|
133
|
+
.crewlet-table__table tfoot td {
|
|
134
|
+
position: static;
|
|
135
|
+
height: var(--size-row-md);
|
|
136
|
+
padding: var(--spacing-2) var(--spacing-3);
|
|
137
|
+
border-top: 1px solid var(--color-border-default);
|
|
138
|
+
border-bottom: none;
|
|
139
|
+
background: none;
|
|
140
|
+
font-size: inherit;
|
|
141
|
+
font-weight: var(--font-weight-medium);
|
|
142
|
+
letter-spacing: normal;
|
|
143
|
+
text-transform: none;
|
|
144
|
+
text-align: left;
|
|
145
|
+
color: var(--color-text-primary);
|
|
146
|
+
vertical-align: middle;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/*
|
|
150
|
+
* IN A CARD, the card is the frame: no edge, corner or ground of the table's
|
|
151
|
+
* own, and the outer cells take the card's 16px inset so every row lines up
|
|
152
|
+
* with the card's title.
|
|
153
|
+
*/
|
|
154
|
+
.crewlet-table--flush {
|
|
155
|
+
background: none;
|
|
156
|
+
border: none;
|
|
157
|
+
border-radius: 0;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.crewlet-table--flush .crewlet-table__table th:first-child,
|
|
161
|
+
.crewlet-table--flush .crewlet-table__table td:first-child {
|
|
162
|
+
padding-left: var(--spacing-4);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.crewlet-table--flush .crewlet-table__table th:last-child,
|
|
166
|
+
.crewlet-table--flush .crewlet-table__table td:last-child {
|
|
167
|
+
padding-right: var(--spacing-4);
|
|
168
|
+
}
|
|
169
|
+
|
|
121
170
|
.crewlet-table__empty {
|
|
122
171
|
padding: var(--spacing-7) var(--spacing-3);
|
|
123
172
|
text-align: center;
|
package/dist/TableCells/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { TABLE_TAGS_CELL_LABELS, TableDateCell, TableEntityCell, TableKeyCell, TableNumberCell, TableStatusCell, TableTagsCell, TableTextCell } from '../chunk-
|
|
1
|
+
export { TABLE_TAGS_CELL_LABELS, TableDateCell, TableEntityCell, TableKeyCell, TableNumberCell, TableStatusCell, TableTagsCell, TableTextCell } from '../chunk-3EYSYEXP.js';
|
|
2
2
|
import '../chunk-FBSEJO2C.js';
|
|
3
3
|
import '../chunk-KYIAFNU7.js';
|
|
4
4
|
import '../chunk-WIATRXEJ.js';
|
|
5
|
-
import '../chunk-
|
|
5
|
+
import '../chunk-KS7YIJ4S.js';
|
|
6
6
|
import '../chunk-EUCC37WY.js';
|
|
7
7
|
import '../chunk-5AQBPHZD.js';
|
|
8
8
|
import '../chunk-PZKHBB7D.js';
|
package/dist/Tabs/index.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
export { TabPanel, Tabs, tabId } from '../chunk-
|
|
1
|
+
export { TabPanel, Tabs, tabId } from '../chunk-I7VG6RQE.js';
|
|
2
2
|
import '../chunk-WIATRXEJ.js';
|
|
3
3
|
import '../chunk-EGMQURBR.js';
|
|
4
|
-
import '../chunk-
|
|
4
|
+
import '../chunk-BHHIIK3M.js';
|
|
5
|
+
import '../chunk-TKS7FTTO.js';
|
|
6
|
+
import '../chunk-HD4QJ2SI.js';
|
|
7
|
+
import '../chunk-EA23JG6R.js';
|
|
5
8
|
import '../chunk-OMV5W53A.js';
|
|
6
9
|
import '../chunk-2YTOOH3A.js';
|
|
7
|
-
import '../chunk-BHHIIK3M.js';
|
|
8
|
-
import '../chunk-OG6CL3EB.js';
|
|
9
10
|
import '../chunk-H5XTJ7GJ.js';
|
|
10
|
-
import '../chunk-
|
|
11
|
+
import '../chunk-2BQYODY3.js';
|
|
11
12
|
import '../chunk-NUZHC6MM.js';
|
|
12
13
|
import '../chunk-BZFWDIV6.js';
|
|
13
14
|
import '../chunk-ODEQTPFM.js';
|
package/dist/TagsInput/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export { TagsInput } from '../chunk-
|
|
2
|
-
import '../chunk-KYIAFNU7.js';
|
|
1
|
+
export { TagsInput } from '../chunk-JS2TRHBF.js';
|
|
3
2
|
import '../chunk-7KHM2FZH.js';
|
|
3
|
+
import '../chunk-KYIAFNU7.js';
|
|
4
4
|
import '../chunk-WIATRXEJ.js';
|
|
5
|
+
import '../chunk-RSAQOKH3.js';
|
|
5
6
|
import '../chunk-OMV5W53A.js';
|
|
6
7
|
import '../chunk-H5XTJ7GJ.js';
|
|
7
|
-
import '../chunk-
|
|
8
|
+
import '../chunk-2BQYODY3.js';
|
|
8
9
|
import '../chunk-NUZHC6MM.js';
|
|
9
|
-
import '../chunk-RSAQOKH3.js';
|
|
10
10
|
import '../chunk-BZFWDIV6.js';
|
|
11
11
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { ThemeGallery } from '../chunk-
|
|
1
|
+
export { ThemeGallery } from '../chunk-ESUZ27TS.js';
|
|
2
2
|
import '../chunk-MNFU2RNT.js';
|
|
3
|
-
import '../chunk-KYIAFNU7.js';
|
|
4
3
|
import '../chunk-7KHM2FZH.js';
|
|
4
|
+
import '../chunk-KYIAFNU7.js';
|
|
5
5
|
import '../chunk-WIATRXEJ.js';
|
|
6
6
|
import '../chunk-EGMQURBR.js';
|
|
7
7
|
import '../chunk-H5XTJ7GJ.js';
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
export { DensitySwitcher, ThemeSwitcher } from '../chunk-
|
|
1
|
+
export { DensitySwitcher, ThemeSwitcher } from '../chunk-S5C64PTT.js';
|
|
2
2
|
export { applyStoredPreferences, resolveTheme, useDensityPreference, useSystemTheme, useThemePreference } from '../chunk-Z24ZUSTX.js';
|
|
3
3
|
export { DENSITY_PREFERENCES, PALETTE_ID, THEME_PREFERENCES, applyDensity, applyPalette, applyTheme, isDensityPreference, isPaletteId, isThemePreference } from '../chunk-ZXXDZJQN.js';
|
|
4
4
|
import '../chunk-OOC7Q67K.js';
|
|
5
|
-
import '../chunk-
|
|
6
|
-
import '../chunk-
|
|
5
|
+
import '../chunk-AWSFK2IK.js';
|
|
6
|
+
import '../chunk-I7VG6RQE.js';
|
|
7
7
|
import '../chunk-WIATRXEJ.js';
|
|
8
8
|
import '../chunk-EGMQURBR.js';
|
|
9
|
-
import '../chunk-
|
|
9
|
+
import '../chunk-BHHIIK3M.js';
|
|
10
|
+
import '../chunk-TKS7FTTO.js';
|
|
11
|
+
import '../chunk-HD4QJ2SI.js';
|
|
12
|
+
import '../chunk-EA23JG6R.js';
|
|
10
13
|
import '../chunk-OMV5W53A.js';
|
|
11
14
|
import '../chunk-2YTOOH3A.js';
|
|
12
|
-
import '../chunk-BHHIIK3M.js';
|
|
13
|
-
import '../chunk-OG6CL3EB.js';
|
|
14
15
|
import '../chunk-H5XTJ7GJ.js';
|
|
15
|
-
import '../chunk-
|
|
16
|
+
import '../chunk-2BQYODY3.js';
|
|
16
17
|
import '../chunk-NUZHC6MM.js';
|
|
17
18
|
import '../chunk-BZFWDIV6.js';
|
|
18
19
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { ThemeToggle } from '../chunk-
|
|
1
|
+
export { ThemeToggle } from '../chunk-N3ISZVLK.js';
|
|
2
2
|
import '../chunk-Z24ZUSTX.js';
|
|
3
3
|
import '../chunk-ZXXDZJQN.js';
|
|
4
|
-
import '../chunk-
|
|
4
|
+
import '../chunk-2BQYODY3.js';
|
|
5
5
|
import '../chunk-BZFWDIV6.js';
|
|
6
6
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The windows a screen offers, as one row of choices, and a window of the
|
|
3
|
+
* reader's own behind Custom.
|
|
4
|
+
*
|
|
5
|
+
* # Beside `TimeWindowPicker`, not instead of it
|
|
6
|
+
*
|
|
7
|
+
* Both choose a window of time; they are two shapes of that choice, and the
|
|
8
|
+
* shape is the screen's. This one is INLINE: every window the screen can
|
|
9
|
+
* answer is a segment in the toolbar, one press away and always in view,
|
|
10
|
+
* which is right for a screen whose reader moves between "1h" and "7d" all
|
|
11
|
+
* day (a live strip, a spend chart, an event log). `TimeWindowPicker` is a
|
|
12
|
+
* TRIGGER that opens a panel of presets, a custom duration and a calendar,
|
|
13
|
+
* which is right where the window is set once and the toolbar has no room.
|
|
14
|
+
*
|
|
15
|
+
* Their values differ for the same reason: this one never interprets a
|
|
16
|
+
* window. The screen's own vocabulary is its options (`1h`, `today`, `7d`,
|
|
17
|
+
* whatever the screen calls them), and a custom window is handed back as the
|
|
18
|
+
* two strings the reader typed, for the screen to read on its own clock: an
|
|
19
|
+
* operator's company day starts at midnight in the company's zone, which no
|
|
20
|
+
* shared value model can know. `TimeWindowPicker` resolves its own value on
|
|
21
|
+
* the reader's clock or UTC.
|
|
22
|
+
*
|
|
23
|
+
* # What it guarantees
|
|
24
|
+
*
|
|
25
|
+
* The options are drawn in the order given, so two screens offering
|
|
26
|
+
* overlapping sets read left to right the same way. The custom window's
|
|
27
|
+
* tooltip carries the chosen interval rather than its label, since two
|
|
28
|
+
* timestamps do not fit in a segment and a segment whose width changed with
|
|
29
|
+
* its value would reflow the toolbar every time. The dialog is prefilled with
|
|
30
|
+
* the window on screen, because a reader opening it almost always wants to
|
|
31
|
+
* move one edge. Each way the two fields can be wrong is its own sentence,
|
|
32
|
+
* and Apply is the form's submit button, so Enter in either field applies.
|
|
33
|
+
*/
|
|
34
|
+
/** The value that stands for a window of the reader's own. An option may not use it. */
|
|
35
|
+
export declare const TIME_RANGE_CUSTOM = "custom";
|
|
36
|
+
export type TimeRangeCustomValue = typeof TIME_RANGE_CUSTOM;
|
|
37
|
+
/** One window the screen offers. */
|
|
38
|
+
export interface TimeRangeOption<V extends string> {
|
|
39
|
+
/** The screen's own name for it: `1h`, `today`, `7d`. */
|
|
40
|
+
value: V;
|
|
41
|
+
/** What the segment says: "1h", "Today". */
|
|
42
|
+
label: string;
|
|
43
|
+
/** What it means, as its tooltip: "The last hour". */
|
|
44
|
+
title?: string | undefined;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* How a custom window is named.
|
|
48
|
+
*
|
|
49
|
+
* - `instants`: two moments to the minute, `YYYY-MM-DDTHH:MM`; the end comes
|
|
50
|
+
* after the start.
|
|
51
|
+
* - `days`: two whole days, `YYYY-MM-DD`, both inclusive; the last is on or
|
|
52
|
+
* after the first. For a screen whose answer has no unit smaller than a
|
|
53
|
+
* day, where minutes would offer a precision the answer cannot have.
|
|
54
|
+
*/
|
|
55
|
+
export type TimeRangeCustomMode = 'instants' | 'days';
|
|
56
|
+
export interface TimeRangeCustom {
|
|
57
|
+
mode: TimeRangeCustomMode;
|
|
58
|
+
/**
|
|
59
|
+
* The Custom segment's tooltip: the window chosen, while one is ("Apr 3 to
|
|
60
|
+
* Apr 9"), or what pressing it does.
|
|
61
|
+
*/
|
|
62
|
+
title: string;
|
|
63
|
+
/** The first field's value when the dialog opens: the start of the window on screen. */
|
|
64
|
+
start: string;
|
|
65
|
+
/** The second field's: its end. */
|
|
66
|
+
end: string;
|
|
67
|
+
/**
|
|
68
|
+
* The sentence under the first field, which both fields are measured in:
|
|
69
|
+
* "In your time zone.", "Company days, in Europe/Berlin."
|
|
70
|
+
*/
|
|
71
|
+
helper?: string | undefined;
|
|
72
|
+
/**
|
|
73
|
+
* A check of the screen's own, run once both fields are well formed and in
|
|
74
|
+
* order: the window as the screen's clock reads it. A sentence refuses it;
|
|
75
|
+
* nothing (or an empty string) accepts it.
|
|
76
|
+
*/
|
|
77
|
+
validate?: ((start: string, end: string) => string | undefined) | undefined;
|
|
78
|
+
/** The two fields, as typed, once the window is accepted. */
|
|
79
|
+
onApply: (start: string, end: string) => void;
|
|
80
|
+
}
|
|
81
|
+
/** Every string the picker renders on its own. */
|
|
82
|
+
export interface TimeRangePickerLabels {
|
|
83
|
+
custom: string;
|
|
84
|
+
dialogTitle: string;
|
|
85
|
+
start: string;
|
|
86
|
+
end: string;
|
|
87
|
+
firstDay: string;
|
|
88
|
+
lastDay: string;
|
|
89
|
+
cancel: string;
|
|
90
|
+
apply: string;
|
|
91
|
+
startNotInstant: string;
|
|
92
|
+
endNotInstant: string;
|
|
93
|
+
endNotAfterStart: string;
|
|
94
|
+
firstNotDay: string;
|
|
95
|
+
lastNotDay: string;
|
|
96
|
+
lastBeforeFirst: string;
|
|
97
|
+
}
|
|
98
|
+
export declare const TIME_RANGE_PICKER_LABELS: TimeRangePickerLabels;
|
|
99
|
+
export interface TimeRangePickerProps<V extends string> {
|
|
100
|
+
/** The windows this screen can answer, in the order a reader reads them. */
|
|
101
|
+
options: readonly TimeRangeOption<V>[];
|
|
102
|
+
/** The window on screen: one of the options, or `TIME_RANGE_CUSTOM` for a window of the reader's own. */
|
|
103
|
+
value: V | TimeRangeCustomValue;
|
|
104
|
+
/** One of the options was chosen. */
|
|
105
|
+
onChange: (value: V) => void;
|
|
106
|
+
/** Offers a window of the reader's own, behind a Custom segment. */
|
|
107
|
+
custom?: TimeRangeCustom | undefined;
|
|
108
|
+
/** Names the group. */
|
|
109
|
+
label?: string | undefined;
|
|
110
|
+
labels?: Partial<TimeRangePickerLabels> | undefined;
|
|
111
|
+
className?: string | undefined;
|
|
112
|
+
}
|
|
113
|
+
/** A field's value as a sortable key, or null where it is not the shape the mode asks for. */
|
|
114
|
+
export declare function timeRangeFieldKey(value: string, mode: TimeRangeCustomMode): string | null;
|
|
115
|
+
/**
|
|
116
|
+
* Why a custom window is refused, or an empty string where it is accepted.
|
|
117
|
+
* Each way the fields can be wrong is its own sentence: "Invalid" over a form
|
|
118
|
+
* of two fields tells a reader to check both.
|
|
119
|
+
*/
|
|
120
|
+
export declare function timeRangeProblem(start: string, end: string, mode: TimeRangeCustomMode, labels?: TimeRangePickerLabels, validate?: (start: string, end: string) => string | undefined): string;
|
|
121
|
+
export declare function TimeRangePicker<V extends string>({ options, value, onChange, custom, label, labels, className, }: TimeRangePickerProps<V>): import("react").JSX.Element;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { TIME_RANGE_CUSTOM, TIME_RANGE_PICKER_LABELS, TimeRangePicker, timeRangeFieldKey, timeRangeProblem, } from './TimeRangePicker.js';
|
|
2
|
+
export type { TimeRangeCustom, TimeRangeCustomMode, TimeRangeCustomValue, TimeRangeOption, TimeRangePickerLabels, TimeRangePickerProps, } from './TimeRangePicker.js';
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export { TIME_RANGE_CUSTOM, TIME_RANGE_PICKER_LABELS, TimeRangePicker, timeRangeFieldKey, timeRangeProblem } from '../chunk-QYEOGGVS.js';
|
|
2
|
+
import '../chunk-QZ4B72FP.js';
|
|
3
|
+
import '../chunk-BPCY7ZID.js';
|
|
4
|
+
import '../chunk-OOC7Q67K.js';
|
|
5
|
+
import '../chunk-AWSFK2IK.js';
|
|
6
|
+
import '../chunk-I7VG6RQE.js';
|
|
7
|
+
import '../chunk-WIATRXEJ.js';
|
|
8
|
+
import '../chunk-EGMQURBR.js';
|
|
9
|
+
import '../chunk-FXQLNETQ.js';
|
|
10
|
+
import '../chunk-XCUUI7E7.js';
|
|
11
|
+
import '../chunk-BHHIIK3M.js';
|
|
12
|
+
import '../chunk-PQADV6P6.js';
|
|
13
|
+
import '../chunk-RSAQOKH3.js';
|
|
14
|
+
import '../chunk-TKS7FTTO.js';
|
|
15
|
+
import '../chunk-HD4QJ2SI.js';
|
|
16
|
+
import '../chunk-EA23JG6R.js';
|
|
17
|
+
import '../chunk-OMV5W53A.js';
|
|
18
|
+
import '../chunk-2YTOOH3A.js';
|
|
19
|
+
import '../chunk-H5XTJ7GJ.js';
|
|
20
|
+
import '../chunk-2BQYODY3.js';
|
|
21
|
+
import '../chunk-NUZHC6MM.js';
|
|
22
|
+
import '../chunk-BZFWDIV6.js';
|
|
23
|
+
import '../chunk-ODEQTPFM.js';
|