@crewlethq/ui 0.2.0 → 0.4.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 +1714 -14
- package/dist/Accordion/Accordion.d.ts +54 -0
- package/dist/Accordion/index.d.ts +4 -0
- package/dist/Accordion/index.js +6 -0
- package/dist/Accordion-ZI2WLD5C.css +87 -0
- package/dist/AddPill/AddPill.d.ts +114 -0
- package/dist/AddPill/index.d.ts +3 -0
- package/dist/AddPill/index.js +3 -0
- package/dist/AddPill-DFWXYLIQ.css +434 -0
- package/dist/Announcer/Announcer.d.ts +15 -0
- package/dist/Announcer/index.d.ts +2 -0
- package/dist/Announcer/index.js +3 -0
- package/dist/AppShell/AppShell.d.ts +193 -0
- package/dist/AppShell/index.d.ts +3 -0
- package/dist/AppShell/index.js +6 -0
- package/dist/AppShell-NVE6LHNI.css +395 -0
- package/dist/Avatar/Avatar.d.ts +104 -0
- package/dist/Avatar/index.d.ts +3 -0
- package/dist/Avatar/index.js +2 -0
- package/dist/Avatar-P2KRQM2B.css +156 -0
- package/dist/BrandLockup/BrandLockup.d.ts +41 -0
- package/dist/BrandLockup/index.d.ts +3 -0
- package/dist/BrandLockup/index.js +2 -0
- package/dist/BrandLockup-6ISDEHPJ.css +108 -0
- package/dist/Button/Button.d.ts +88 -0
- package/dist/Button/index.d.ts +3 -0
- package/dist/Button/index.js +3 -0
- package/dist/Button-D4J6B4MA.css +302 -0
- package/dist/CalendarGrid/CalendarGrid.d.ts +87 -0
- package/dist/CalendarGrid/index.d.ts +3 -0
- package/dist/CalendarGrid/index.js +2 -0
- package/dist/CalendarGrid-V6TQ5QKS.css +128 -0
- package/dist/Callout/Callout.d.ts +47 -0
- package/dist/Callout/index.d.ts +3 -0
- package/dist/Callout/index.js +2 -0
- package/dist/Callout-S7QDWHDL.css +111 -0
- package/dist/Canvas/Canvas.d.ts +234 -0
- package/dist/Canvas/geometry.d.ts +249 -0
- package/dist/Canvas/index.d.ts +5 -0
- package/dist/Canvas/index.js +8 -0
- package/dist/Canvas/layerNode.d.ts +20 -0
- package/dist/Canvas-Q6JETCWR.css +315 -0
- package/dist/Card/Card.d.ts +164 -0
- package/dist/Card/headerSlot.d.ts +65 -0
- package/dist/Card/index.d.ts +5 -0
- package/dist/Card/index.js +6 -0
- package/dist/Card-RLR254LD.css +450 -0
- package/dist/Charts/ActivityStrip.d.ts +45 -0
- package/dist/Charts/BarList.d.ts +51 -0
- package/dist/Charts/Legend.d.ts +32 -0
- package/dist/Charts/StackedBar.d.ts +38 -0
- package/dist/Charts/TimeSeries.d.ts +92 -0
- package/dist/Charts/dataColor.d.ts +20 -0
- package/dist/Charts/index.d.ts +12 -0
- package/dist/Charts/index.js +3 -0
- package/dist/Charts-D7G2BSXH.css +277 -0
- package/dist/Checkbox/Checkbox.d.ts +45 -0
- package/dist/Checkbox/index.d.ts +3 -0
- package/dist/Checkbox/index.js +2 -0
- package/dist/Checkbox-VGW26YLQ.css +111 -0
- package/dist/CodeBlock/CodeBlock.d.ts +119 -0
- package/dist/CodeBlock/index.d.ts +3 -0
- package/dist/CodeBlock/index.js +7 -0
- package/dist/CodeBlock-GYNJ2HI6.css +188 -0
- package/dist/Combobox/Combobox.d.ts +89 -0
- package/dist/Combobox/index.d.ts +3 -0
- package/dist/Combobox/index.js +8 -0
- package/dist/Combobox-4FUVYIE7.css +80 -0
- package/dist/CommandPalette/CommandPalette.d.ts +77 -0
- package/dist/CommandPalette/index.d.ts +3 -0
- package/dist/CommandPalette/index.js +11 -0
- package/dist/CommandPalette-CSJDUCQA.css +115 -0
- package/dist/Container/Container.d.ts +17 -0
- package/dist/Container/index.d.ts +3 -0
- package/dist/Container/index.js +2 -0
- package/dist/Container-3TSKMGNI.css +52 -0
- package/dist/Copyable/CopyButton.d.ts +64 -0
- package/dist/Copyable/Copyable.d.ts +42 -0
- package/dist/Copyable/index.d.ts +5 -0
- package/dist/Copyable/index.js +6 -0
- package/dist/Copyable-5PNRFOLS.css +125 -0
- package/dist/Count/Count.d.ts +24 -0
- package/dist/Count/index.d.ts +3 -0
- package/dist/Count/index.js +3 -0
- package/dist/Count-ZVCJ6VPD.css +20 -0
- package/dist/DataTable/CopyableCell.d.ts +12 -0
- package/dist/DataTable/DataTable.d.ts +615 -0
- package/dist/DataTable/RowActionsMenu.d.ts +7 -0
- package/dist/DataTable/index.d.ts +7 -0
- package/dist/DataTable/index.js +14 -0
- package/dist/DataTable-ITNACQ2X.css +2020 -0
- package/dist/DataView/DataView.d.ts +109 -0
- package/dist/DataView/DataViewToolbar.d.ts +87 -0
- package/dist/DataView/FilterAxisBar.d.ts +103 -0
- package/dist/DataView/columns.d.ts +35 -0
- package/dist/DataView/filters.d.ts +184 -0
- package/dist/DataView/index.d.ts +11 -0
- package/dist/DataView/index.js +25 -0
- package/dist/DataView-256YF32J.css +441 -0
- package/dist/DateTimePicker/DateTimePicker.d.ts +91 -0
- package/dist/DateTimePicker/index.d.ts +3 -0
- package/dist/DateTimePicker/index.js +9 -0
- package/dist/DateTimePicker-22VNXRWC.css +199 -0
- package/dist/DescriptionList/DescriptionList.d.ts +36 -0
- package/dist/DescriptionList/index.d.ts +3 -0
- package/dist/DescriptionList/index.js +2 -0
- package/dist/DescriptionList-YYY3V3O6.css +59 -0
- package/dist/DiffList/DiffList.d.ts +47 -0
- package/dist/DiffList/index.d.ts +3 -0
- package/dist/DiffList/index.js +3 -0
- package/dist/DiffList-3EX64AAE.css +94 -0
- package/dist/Disclosure/Disclosure.d.ts +56 -0
- package/dist/Disclosure/anatomy.d.ts +43 -0
- package/dist/Disclosure/index.d.ts +5 -0
- package/dist/Disclosure/index.js +6 -0
- package/dist/Disclosure-VKBJJIZ7.css +176 -0
- package/dist/EmptyState/EmptyState.d.ts +39 -0
- package/dist/EmptyState/index.d.ts +3 -0
- package/dist/EmptyState/index.js +3 -0
- package/dist/EmptyState-C6HRBGT7.css +73 -0
- package/dist/EmptyValue/EmptyValue.d.ts +31 -0
- package/dist/EmptyValue/index.d.ts +3 -0
- package/dist/EmptyValue/index.js +3 -0
- package/dist/EmptyValue-4B6ODXHT.css +12 -0
- package/dist/EntityChip/EntityChip.d.ts +40 -0
- package/dist/EntityChip/index.d.ts +3 -0
- package/dist/EntityChip/index.js +3 -0
- package/dist/EntityChip-LUCPZBBG.css +64 -0
- package/dist/ErrorBoundary/ErrorBoundary.d.ts +58 -0
- package/dist/ErrorBoundary/index.d.ts +3 -0
- package/dist/ErrorBoundary/index.js +4 -0
- package/dist/ErrorBoundary-ME36CQTA.css +59 -0
- package/dist/Eyebrow/Eyebrow.d.ts +18 -0
- package/dist/Eyebrow/index.d.ts +3 -0
- package/dist/Eyebrow/index.js +2 -0
- package/dist/Eyebrow-5NREGHQH.css +46 -0
- package/dist/FilterChip/FilterChip.d.ts +100 -0
- package/dist/FilterChip/index.d.ts +3 -0
- package/dist/FilterChip/index.js +3 -0
- package/dist/FilterChip-GTGLLOXE.css +107 -0
- package/dist/Fullscreen/index.d.ts +2 -0
- package/dist/Fullscreen/index.js +1 -0
- package/dist/Fullscreen/useFullscreen.d.ts +32 -0
- package/dist/IconButton/IconButton.d.ts +45 -0
- package/dist/IconButton/index.d.ts +3 -0
- package/dist/IconButton/index.js +3 -0
- package/dist/IconButton-VQGNMJDI.css +158 -0
- package/dist/ImageUpload/ImageUpload.d.ts +37 -0
- package/dist/ImageUpload/index.d.ts +3 -0
- package/dist/ImageUpload/index.js +3 -0
- package/dist/ImageUpload-HKFIZR6D.css +193 -0
- package/dist/InlineCode/InlineCode.d.ts +37 -0
- package/dist/InlineCode/index.d.ts +3 -0
- package/dist/InlineCode/index.js +2 -0
- package/dist/InlineCode-6WSR5COL.css +65 -0
- package/dist/Input/FormField.d.ts +61 -0
- package/dist/Input/FormRow.d.ts +6 -0
- package/dist/Input/FormSection.d.ts +28 -0
- package/dist/Input/Input.d.ts +98 -0
- package/dist/Input/Label.d.ts +31 -0
- package/dist/Input/ReadOnlyField.d.ts +30 -0
- package/dist/Input/Textarea.d.ts +16 -0
- package/dist/Input/index.d.ts +15 -0
- package/dist/Input/index.js +5 -0
- package/dist/Input-2PU5CPKK.css +616 -0
- package/dist/Kbd/Kbd.d.ts +40 -0
- package/dist/Kbd/index.d.ts +3 -0
- package/dist/Kbd/index.js +3 -0
- package/dist/Kbd-W66MXQI5.css +61 -0
- package/dist/Layer/LayerHost.d.ts +23 -0
- package/dist/Layer/index.d.ts +7 -0
- package/dist/Layer/index.js +3 -0
- package/dist/Layer/place.d.ts +63 -0
- package/dist/Layer/stack.d.ts +159 -0
- package/dist/Layer-NAFSGCFA.css +23 -0
- package/dist/Layout/Layout.d.ts +104 -0
- package/dist/Layout/index.d.ts +3 -0
- package/dist/Layout/index.js +2 -0
- package/dist/Layout-2ZCV3IGF.css +171 -0
- package/dist/Link/Link.d.ts +45 -0
- package/dist/Link/index.d.ts +3 -0
- package/dist/Link/index.js +3 -0
- package/dist/Link-6BEFNMN2.css +80 -0
- package/dist/List/List.d.ts +73 -0
- package/dist/List/index.d.ts +3 -0
- package/dist/List/index.js +3 -0
- package/dist/List-XTHESXLR.css +161 -0
- package/dist/ListInput/ListInput.d.ts +68 -0
- package/dist/ListInput/index.d.ts +3 -0
- package/dist/ListInput/index.js +10 -0
- package/dist/ListInput-O7LJKOIG.css +147 -0
- package/dist/Listbox/index.d.ts +5 -0
- package/dist/Listbox/index.js +2 -0
- package/dist/Listbox/useListbox.d.ts +97 -0
- package/dist/Listbox/useOptionKeys.d.ts +64 -0
- package/dist/Listbox-X2DOTSQA.css +110 -0
- package/dist/Menu/Menu.d.ts +118 -0
- package/dist/Menu/index.d.ts +3 -0
- package/dist/Menu/index.js +7 -0
- package/dist/Menu-6DE7I66I.css +222 -0
- package/dist/Meter/Meter.d.ts +126 -0
- package/dist/Meter/index.d.ts +3 -0
- package/dist/Meter/index.js +3 -0
- package/dist/Meter-SKOOXQBC.css +87 -0
- package/dist/Modal/ConfirmModal.d.ts +74 -0
- package/dist/Modal/Modal.d.ts +154 -0
- package/dist/Modal/index.d.ts +5 -0
- package/dist/Modal/index.js +8 -0
- package/dist/Modal-XYQJ4BL6.css +484 -0
- package/dist/NewItemsNotice/NewItemsNotice.d.ts +28 -0
- package/dist/NewItemsNotice/index.d.ts +3 -0
- package/dist/NewItemsNotice/index.js +4 -0
- package/dist/NewItemsNotice-T4DSSPVV.css +60 -0
- package/dist/OrgLabel/OrgLabel.d.ts +117 -0
- package/dist/OrgLabel/index.d.ts +3 -0
- package/dist/OrgLabel/index.js +2 -0
- package/dist/OrgLabel-D7U6QJZD.css +293 -0
- package/dist/OrgNode/OrgNode.d.ts +103 -0
- package/dist/OrgNode/index.d.ts +3 -0
- package/dist/OrgNode/index.js +3 -0
- package/dist/OrgNode-BT7T2Q2X.css +214 -0
- package/dist/OrgTable/OrgTable.d.ts +113 -0
- package/dist/OrgTable/index.d.ts +3 -0
- package/dist/OrgTable/index.js +11 -0
- package/dist/OrgTable-VWMFC3TB.css +360 -0
- package/dist/PageHeader/PageHeader.d.ts +35 -0
- package/dist/PageHeader/index.d.ts +3 -0
- package/dist/PageHeader/index.js +3 -0
- package/dist/PageHeader-6EYWQXRE.css +88 -0
- package/dist/Popover/Popover.d.ts +91 -0
- package/dist/Popover/index.d.ts +3 -0
- package/dist/Popover/index.js +4 -0
- package/dist/Popover-WJGCF3ZQ.css +185 -0
- package/dist/PricingCard/PricingCard.d.ts +56 -0
- package/dist/PricingCard/index.d.ts +3 -0
- package/dist/PricingCard/index.js +4 -0
- package/dist/PricingCard-JFI7RYXP.css +278 -0
- package/dist/Prose/Prose.d.ts +33 -0
- package/dist/Prose/index.d.ts +3 -0
- package/dist/Prose/index.js +2 -0
- package/dist/Prose-BTXNFT2Q.css +99 -0
- package/dist/RelativeTime/RelativeTime.d.ts +31 -0
- package/dist/RelativeTime/clock.d.ts +9 -0
- package/dist/RelativeTime/format.d.ts +38 -0
- package/dist/RelativeTime/index.d.ts +6 -0
- package/dist/RelativeTime/index.js +4 -0
- package/dist/RelativeTime-EBAQPGO2.css +10 -0
- package/dist/SearchTrigger/SearchTrigger.d.ts +29 -0
- package/dist/SearchTrigger/index.d.ts +3 -0
- package/dist/SearchTrigger/index.js +2 -0
- package/dist/SearchTrigger-QXOYAUUY.css +79 -0
- package/dist/Section/Section.d.ts +41 -0
- package/dist/Section/index.d.ts +3 -0
- package/dist/Section/index.js +3 -0
- package/dist/Section-QRUPRIQ2.css +127 -0
- package/dist/SegmentedControl/SegmentedControl.d.ts +101 -0
- package/dist/SegmentedControl/index.d.ts +4 -0
- package/dist/SegmentedControl/index.js +5 -0
- package/dist/SegmentedControl-X3BI3XU4.css +68 -0
- package/dist/Select/Select.d.ts +153 -0
- package/dist/Select/index.d.ts +3 -0
- package/dist/Select/index.js +5 -0
- package/dist/Select-2X77FSWR.css +350 -0
- package/dist/Shortcut/index.d.ts +2 -0
- package/dist/Shortcut/index.js +4 -0
- package/dist/Shortcut/useShortcut.d.ts +68 -0
- package/dist/SidebarNav/SidebarNav.d.ts +117 -0
- package/dist/SidebarNav/index.d.ts +3 -0
- package/dist/SidebarNav/index.js +3 -0
- package/dist/SidebarNav-QGSFKZYA.css +319 -0
- package/dist/Skeleton/Skeleton.d.ts +50 -0
- package/dist/Skeleton/index.d.ts +3 -0
- package/dist/Skeleton/index.js +3 -0
- package/dist/Skeleton-V735HRGM.css +421 -0
- package/dist/StatCard/StatCard.d.ts +56 -0
- package/dist/StatCard/index.d.ts +3 -0
- package/dist/StatCard/index.js +3 -0
- package/dist/StatCard-KYPKZUWX.css +111 -0
- package/dist/StatGroup/StatGroup.d.ts +20 -0
- package/dist/StatGroup/index.d.ts +3 -0
- package/dist/StatGroup/index.js +2 -0
- package/dist/StatGroup-TGB6AEKM.css +80 -0
- package/dist/StatusDot/StatusDot.d.ts +25 -0
- package/dist/StatusDot/index.d.ts +3 -0
- package/dist/StatusDot/index.js +2 -0
- package/dist/StatusDot-HA2L2FSX.css +84 -0
- package/dist/Switch/Switch.d.ts +38 -0
- package/dist/Switch/index.d.ts +3 -0
- package/dist/Switch/index.js +2 -0
- package/dist/Switch-U4OWK4CL.css +169 -0
- package/dist/Table/Table.d.ts +51 -0
- package/dist/Table/index.d.ts +3 -0
- package/dist/Table/index.js +3 -0
- package/dist/Table-MDOLVUAW.css +159 -0
- package/dist/Tabs/Tabs.d.ts +97 -0
- package/dist/Tabs/index.d.ts +3 -0
- package/dist/Tabs/index.js +4 -0
- package/dist/Tabs/roving.d.ts +67 -0
- package/dist/Tabs-VLICJFVB.css +275 -0
- package/dist/Tag/Tag.d.ts +107 -0
- package/dist/Tag/index.d.ts +3 -0
- package/dist/Tag/index.js +3 -0
- package/dist/Tag-VNZEYLB6.css +406 -0
- package/dist/TagGroup/TagGroup.d.ts +41 -0
- package/dist/TagGroup/index.d.ts +3 -0
- package/dist/TagGroup/index.js +4 -0
- package/dist/TagGroup-APC2EFH4.css +75 -0
- package/dist/TagsInput/TagsInput.d.ts +112 -0
- package/dist/TagsInput/index.d.ts +3 -0
- package/dist/TagsInput/index.js +10 -0
- package/dist/TagsInput-W4P36PRJ.css +168 -0
- package/dist/Text/Text.d.ts +67 -0
- package/dist/Text/index.d.ts +3 -0
- package/dist/Text/index.js +2 -0
- package/dist/Text-XIPYYZX2.css +154 -0
- package/dist/ThemeSwitcher/ThemeSwitcher.d.ts +47 -0
- package/dist/ThemeSwitcher/index.d.ts +4 -0
- package/dist/ThemeSwitcher/index.js +6 -0
- package/dist/ThemeSwitcher/preferences.d.ts +51 -0
- package/dist/TimeWindowPicker/TimeWindowPicker.d.ts +231 -0
- package/dist/TimeWindowPicker/index.d.ts +3 -0
- package/dist/TimeWindowPicker/index.js +13 -0
- package/dist/TimeWindowPicker/mask.d.ts +82 -0
- package/dist/TimeWindowPicker-7I7KWCMU.css +403 -0
- package/dist/Timeline/Timeline.d.ts +51 -0
- package/dist/Timeline/index.d.ts +3 -0
- package/dist/Timeline/index.js +3 -0
- package/dist/Timeline-27SYKOFX.css +144 -0
- package/dist/Toaster/Toaster.d.ts +108 -0
- package/dist/Toaster/index.d.ts +3 -0
- package/dist/Toaster/index.js +5 -0
- package/dist/Toaster-NVDCEIP5.css +306 -0
- package/dist/Toolbar/Toolbar.d.ts +62 -0
- package/dist/Toolbar/index.d.ts +3 -0
- package/dist/Toolbar/index.js +4 -0
- package/dist/Toolbar-IP6LXN45.css +48 -0
- package/dist/Tooltip/Tooltip.d.ts +51 -0
- package/dist/Tooltip/index.d.ts +3 -0
- package/dist/Tooltip/index.js +4 -0
- package/dist/Tooltip-LKQF7CE4.css +71 -0
- package/dist/Tree/index.d.ts +8 -0
- package/dist/Tree/index.js +1 -0
- package/dist/Tree/layout.d.ts +160 -0
- package/dist/Tree/model.d.ts +110 -0
- package/dist/Tree/useMeasuredSizes.d.ts +61 -0
- package/dist/Tree/useTreeState.d.ts +89 -0
- package/dist/TreeCanvas/TreeCanvas.d.ts +384 -0
- package/dist/TreeCanvas/index.d.ts +3 -0
- package/dist/TreeCanvas/index.js +10 -0
- package/dist/TreeCanvas/motion.d.ts +59 -0
- package/dist/TreeCanvas-WBNQPHC7.css +1098 -0
- package/dist/TreeGrid/TreeGrid.d.ts +142 -0
- package/dist/TreeGrid/index.d.ts +3 -0
- package/dist/TreeGrid/index.js +8 -0
- package/dist/TreeGrid-NSW7VMOX.css +132 -0
- package/dist/VisuallyHidden/VisuallyHidden.d.ts +23 -0
- package/dist/VisuallyHidden/index.d.ts +3 -0
- package/dist/VisuallyHidden/index.js +2 -0
- package/dist/VisuallyHidden-L552H7OA.css +21 -0
- package/dist/chunk-22O7LAW2.js +41 -0
- package/dist/chunk-23DHIMJA.js +38 -0
- package/dist/chunk-2EOKFKHX.js +263 -0
- package/dist/chunk-2HQR4U4D.js +143 -0
- package/dist/chunk-2PRH365R.js +74 -0
- package/dist/chunk-2ZQMA2WB.js +57 -0
- package/dist/chunk-34VGEDVV.js +907 -0
- package/dist/chunk-3CZ7XAVY.js +139 -0
- package/dist/chunk-3EYF6HKB.js +135 -0
- package/dist/chunk-3QRYCPXQ.js +116 -0
- package/dist/chunk-3ZP55QZE.js +40 -0
- package/dist/chunk-53DVJCVW.js +14 -0
- package/dist/chunk-5C5YMZQU.js +51 -0
- package/dist/chunk-5EKIWVOR.js +132 -0
- package/dist/chunk-5KPQ6D7N.js +54 -0
- package/dist/chunk-5SDBMKUO.js +297 -0
- package/dist/chunk-5VNUYO76.js +62 -0
- package/dist/chunk-5WS6L6FA.js +114 -0
- package/dist/chunk-6ZFVFA56.js +108 -0
- package/dist/chunk-7EM5T4ME.js +39 -0
- package/dist/chunk-7FZ53WDJ.js +163 -0
- package/dist/chunk-7HPRF5XN.js +525 -0
- package/dist/chunk-7RPGY3JE.js +43 -0
- package/dist/chunk-A2UXBCLO.js +48 -0
- package/dist/chunk-AV2DXAEL.js +27 -0
- package/dist/chunk-BHHIIK3M.js +17 -0
- package/dist/chunk-BZFWDIV6.js +9 -0
- package/dist/chunk-BZYDZBAN.js +123 -0
- package/dist/chunk-CMEE37QJ.js +628 -0
- package/dist/chunk-D35VTV2Z.js +106 -0
- package/dist/chunk-DD5BBGBE.js +162 -0
- package/dist/chunk-EN6K2IFA.js +256 -0
- package/dist/chunk-ESCO4XYW.js +144 -0
- package/dist/chunk-EUCC37WY.js +14 -0
- package/dist/chunk-EV6IMYJ6.js +62 -0
- package/dist/chunk-F27EPQ7D.js +68 -0
- package/dist/chunk-F4PJZ4ED.js +245 -0
- package/dist/chunk-F6OE5FH3.js +49 -0
- package/dist/chunk-FBZAKNSX.js +263 -0
- package/dist/chunk-FEFTGVMF.js +46 -0
- package/dist/chunk-GTOUGQQK.js +147 -0
- package/dist/chunk-GXQ3B46I.js +216 -0
- package/dist/chunk-H4FBTAYS.js +130 -0
- package/dist/chunk-HOXGBLEY.js +37 -0
- package/dist/chunk-HQNHV7D6.js +54 -0
- package/dist/chunk-HZ5XZNPS.js +98 -0
- package/dist/chunk-IAJLHVUA.js +28 -0
- package/dist/chunk-IJ7QXNIJ.js +1 -0
- package/dist/chunk-ITHXJHBB.js +280 -0
- package/dist/chunk-JCSA3XVH.js +32 -0
- package/dist/chunk-KLJCCMF3.js +97 -0
- package/dist/chunk-LWKJQTOM.js +77 -0
- package/dist/chunk-MNAXYY3R.js +215 -0
- package/dist/chunk-NDCATSW7.js +229 -0
- package/dist/chunk-NN62JQLR.js +29 -0
- package/dist/chunk-NPZY6YYL.js +251 -0
- package/dist/chunk-NTRZGNEX.js +529 -0
- package/dist/chunk-O6232G37.js +273 -0
- package/dist/chunk-O67VF5MS.js +58 -0
- package/dist/chunk-ODEQTPFM.js +6 -0
- package/dist/chunk-OFHBK7RI.js +498 -0
- package/dist/chunk-PNFASD6F.js +98 -0
- package/dist/chunk-PQADV6P6.js +19 -0
- package/dist/chunk-PZSWF74H.js +15 -0
- package/dist/chunk-Q4ZPPART.js +26 -0
- package/dist/chunk-QEUY3A5P.js +186 -0
- package/dist/chunk-QNCVHRZL.js +17 -0
- package/dist/chunk-QVE4GJAT.js +15 -0
- package/dist/chunk-QYOFACSP.js +36 -0
- package/dist/chunk-RA2ULG6H.js +29 -0
- package/dist/chunk-RDGD7Z7I.js +350 -0
- package/dist/chunk-RK4XPHVG.js +16 -0
- package/dist/chunk-RSAQOKH3.js +38 -0
- package/dist/chunk-S2XHHEW4.js +84 -0
- package/dist/chunk-S4GZWSKR.js +137 -0
- package/dist/chunk-SFZOKW2G.js +52 -0
- package/dist/chunk-UG46QBLT.js +325 -0
- package/dist/chunk-UOGSZKLT.js +134 -0
- package/dist/chunk-V2XMNLMS.js +52 -0
- package/dist/chunk-W4ENKCXJ.js +40 -0
- package/dist/chunk-W5J7R5EB.js +107 -0
- package/dist/chunk-WNI2WSJF.js +27 -0
- package/dist/chunk-WOYYD2YR.js +823 -0
- package/dist/chunk-WQX73TWF.js +1652 -0
- package/dist/chunk-XDTYBF2F.js +36 -0
- package/dist/chunk-XN4JBAN3.js +32 -0
- package/dist/chunk-XV6WRMBC.js +211 -0
- package/dist/chunk-YLYOWZ4V.js +33 -0
- package/dist/chunk-YODNNSZL.js +63 -0
- package/dist/chunk-ZCR6YGQ4.js +1 -0
- package/dist/chunk-ZFATEERP.js +144 -0
- package/dist/generated/index.d.ts +83 -0
- package/dist/generated/index.js +91 -0
- package/dist/index.d.ts +1 -1217
- package/dist/index.js +91 -4518
- package/dist/styles.css +14898 -4274
- package/dist/utils/cx.d.ts +10 -0
- package/dist/utils/headingLevel.d.ts +16 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.js +4 -0
- package/dist/utils/tone.d.ts +25 -0
- package/dist/utils/useClipboard.d.ts +82 -0
- package/package.json +18 -10
- package/scripts/bundle-css.mjs +25 -0
- package/scripts/check-css-literals.mjs +166 -0
- package/scripts/check-css-variables.mjs +184 -0
- package/scripts/check-css.mjs +27 -0
- package/scripts/css-source.mjs +67 -0
- package/scripts/write-barrel.mjs +60 -0
- package/dist/Accordion-NIMJQIOI.css +0 -88
- package/dist/AppShell-ZW3NSFBP.css +0 -51
- package/dist/Avatar-V6NG6Q45.css +0 -67
- package/dist/Button-XGCTXXYP.css +0 -174
- package/dist/Callout-LEGDIMAM.css +0 -52
- package/dist/Card-BOZGBML7.css +0 -86
- package/dist/Checkbox-OCUICIIZ.css +0 -58
- package/dist/CodeBlock-IEMBNIQC.css +0 -90
- package/dist/Container-LTKBA2FW.css +0 -21
- package/dist/Copyable-IB57OTHZ.css +0 -123
- package/dist/DataTable-3GALZUW2.css +0 -1593
- package/dist/DateTimePicker-NMSSGVPK.css +0 -312
- package/dist/Eyebrow-AVBORAS2.css +0 -30
- package/dist/IconButton-GB4PJDG2.css +0 -82
- package/dist/ImageUpload-3HQDF2KC.css +0 -158
- package/dist/Input-ZHUTN7CU.css +0 -210
- package/dist/Kbd-Q77CDZY7.css +0 -23
- package/dist/Modal-FJVG66S4.css +0 -138
- package/dist/Popover-FUFULUE2.css +0 -123
- package/dist/PricingCard-NKYV3JHA.css +0 -238
- package/dist/Section-665ZIPG6.css +0 -20
- package/dist/Select-GPRF7PRB.css +0 -294
- package/dist/Skeleton-3WEFLRDN.css +0 -378
- package/dist/StatCard-RTJIVTRB.css +0 -50
- package/dist/Table-AR3TRY2E.css +0 -89
- package/dist/Tabs-XZ4JIH3E.css +0 -153
- package/dist/Tag-R5QDJLYJ.css +0 -163
- package/dist/TimeWindowPicker-L3G5Q7UT.css +0 -629
- package/dist/Toaster-2O65VOR4.css +0 -264
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* TimeWindowPicker: one trigger over one panel.
|
|
3
|
+
*
|
|
4
|
+
* The trigger takes the same geometry as a Select and a DateTimePicker, so the
|
|
5
|
+
* three line up in a filter bar. The panel is a RAIL of named windows beside
|
|
6
|
+
* the calendars, rather than two tabs with one of them hidden: the windows a
|
|
7
|
+
* reader picks by name are the road, and the absolute range is the turning off
|
|
8
|
+
* it, so both are on screen at once and each shows what the other chose.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
.crewlet-time-window {
|
|
12
|
+
display: inline-flex;
|
|
13
|
+
align-items: center;
|
|
14
|
+
gap: var(--spacing-2);
|
|
15
|
+
width: 100%;
|
|
16
|
+
min-height: var(--size-control-md);
|
|
17
|
+
/* The side inset only: see DateTimePicker's own trigger. */
|
|
18
|
+
padding: 0 var(--spacing-2) 0 var(--spacing-3);
|
|
19
|
+
background: var(--color-surface-subtle);
|
|
20
|
+
border: 1px solid var(--color-border-control);
|
|
21
|
+
border-radius: var(--radius-md);
|
|
22
|
+
color: var(--color-text-primary);
|
|
23
|
+
font-family: inherit;
|
|
24
|
+
font-size: var(--font-size-compact);
|
|
25
|
+
text-align: left;
|
|
26
|
+
cursor: pointer;
|
|
27
|
+
transition: border-color var(--motion-duration-fast) var(--motion-easing-default);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.crewlet-time-window--sm {
|
|
31
|
+
min-height: var(--size-control-sm);
|
|
32
|
+
padding: 0 var(--spacing-2);
|
|
33
|
+
font-size: var(--font-size-xs);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.crewlet-time-window:hover:not(:disabled) {
|
|
37
|
+
border-color: var(--color-border-hover);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.crewlet-time-window:focus-visible,
|
|
41
|
+
.crewlet-time-window.is-open {
|
|
42
|
+
outline: 2px solid var(--color-focus);
|
|
43
|
+
outline-offset: 2px;
|
|
44
|
+
border-color: var(--color-focus);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.crewlet-time-window.is-disabled,
|
|
48
|
+
.crewlet-time-window:disabled {
|
|
49
|
+
opacity: 0.55;
|
|
50
|
+
cursor: not-allowed;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/* Decoration, as every glyph that repeats what the control already says. */
|
|
54
|
+
svg.crewlet-time-window__icon,
|
|
55
|
+
svg.crewlet-time-window__chevron {
|
|
56
|
+
color: var(--color-text-muted);
|
|
57
|
+
flex-shrink: 0;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.crewlet-time-window__label {
|
|
61
|
+
flex: 1;
|
|
62
|
+
min-width: 0;
|
|
63
|
+
overflow: hidden;
|
|
64
|
+
text-overflow: ellipsis;
|
|
65
|
+
white-space: nowrap;
|
|
66
|
+
font-variant-numeric: tabular-nums;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.crewlet-time-window__label.is-placeholder {
|
|
70
|
+
color: var(--color-text-tertiary);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/* ─── The panel ──────────────────────────────────────────────── */
|
|
74
|
+
|
|
75
|
+
/*
|
|
76
|
+
* SIZED BY WHAT IS IN IT, not to a number. A calendar's width is seven control
|
|
77
|
+
* squares, and a control square is a different size at each density, so a panel
|
|
78
|
+
* pinned to one width is a panel with a hole in it at compact and a wrapped
|
|
79
|
+
* week at comfortable. The max-width is the only number, and it is the window's.
|
|
80
|
+
*/
|
|
81
|
+
.crewlet-time-window__popover {
|
|
82
|
+
padding: 0;
|
|
83
|
+
/* A window picker is one fixed-size thing: shown whole, or not shown. */
|
|
84
|
+
overflow: visible;
|
|
85
|
+
width: max-content;
|
|
86
|
+
max-width: calc(100vw - var(--spacing-8));
|
|
87
|
+
max-height: none;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.crewlet-time-window__panel {
|
|
91
|
+
display: grid;
|
|
92
|
+
grid-template-columns: auto;
|
|
93
|
+
gap: var(--spacing-4);
|
|
94
|
+
padding: var(--spacing-3);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.crewlet-time-window__panel--both {
|
|
98
|
+
grid-template-columns: auto auto;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/* ─── The rail of named windows ──────────────────────────────── */
|
|
102
|
+
|
|
103
|
+
.crewlet-time-window__relative {
|
|
104
|
+
display: flex;
|
|
105
|
+
flex-direction: column;
|
|
106
|
+
gap: var(--spacing-2);
|
|
107
|
+
min-width: 0;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.crewlet-time-window__rail {
|
|
111
|
+
display: flex;
|
|
112
|
+
flex-direction: column;
|
|
113
|
+
gap: 1px;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/*
|
|
117
|
+
* A window on the rail is a MENU ROW, drawn the way every other row of choices
|
|
118
|
+
* in the package is drawn: one line, the row corner, the tick in the accent ink
|
|
119
|
+
* for the one that is on and the hover tint for the one under the pointer. The
|
|
120
|
+
* two are different facts about different rows, so they are never the same
|
|
121
|
+
* paint.
|
|
122
|
+
*/
|
|
123
|
+
.crewlet-time-window__preset {
|
|
124
|
+
display: flex;
|
|
125
|
+
align-items: center;
|
|
126
|
+
gap: var(--spacing-2);
|
|
127
|
+
min-height: var(--size-row-sm);
|
|
128
|
+
padding: 0 var(--spacing-2);
|
|
129
|
+
background: transparent;
|
|
130
|
+
border: none;
|
|
131
|
+
border-radius: var(--radius-xs);
|
|
132
|
+
color: var(--color-text-secondary);
|
|
133
|
+
font: inherit;
|
|
134
|
+
font-size: var(--font-size-compact);
|
|
135
|
+
text-align: left;
|
|
136
|
+
white-space: nowrap;
|
|
137
|
+
cursor: pointer;
|
|
138
|
+
transition:
|
|
139
|
+
background-color var(--motion-duration-fast) var(--motion-easing-default),
|
|
140
|
+
color var(--motion-duration-fast) var(--motion-easing-default);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.crewlet-time-window__preset:hover {
|
|
144
|
+
background: var(--color-surface-hover);
|
|
145
|
+
color: var(--color-text-primary);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.crewlet-time-window__preset.is-active {
|
|
149
|
+
color: var(--color-text-primary);
|
|
150
|
+
font-weight: var(--font-weight-medium);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.crewlet-time-window__preset:focus-visible {
|
|
154
|
+
outline: 2px solid var(--color-focus);
|
|
155
|
+
/* Drawn inside: the rail is a column in a grid with a panel edge beside it,
|
|
156
|
+
and an outset ring on the last row is clipped by it. */
|
|
157
|
+
outline-offset: var(--size-focus-ring-inset-offset);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/* Held, rather than dropped, so the labels do not step sideways as the
|
|
161
|
+
choice moves down the rail. */
|
|
162
|
+
svg.crewlet-time-window__tick {
|
|
163
|
+
flex-shrink: 0;
|
|
164
|
+
visibility: hidden;
|
|
165
|
+
color: var(--color-brand-accent-ink);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.crewlet-time-window__preset.is-active svg.crewlet-time-window__tick {
|
|
169
|
+
visibility: visible;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
.crewlet-time-window__preset-label {
|
|
173
|
+
min-width: 0;
|
|
174
|
+
overflow: hidden;
|
|
175
|
+
text-overflow: ellipsis;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.crewlet-time-window__custom {
|
|
179
|
+
display: flex;
|
|
180
|
+
flex-direction: column;
|
|
181
|
+
gap: var(--spacing-1);
|
|
182
|
+
padding-top: var(--spacing-2);
|
|
183
|
+
border-top: 1px solid var(--color-border-default);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
.crewlet-time-window__custom-label {
|
|
187
|
+
font-size: var(--font-size-2xs);
|
|
188
|
+
font-weight: var(--font-weight-medium);
|
|
189
|
+
letter-spacing: var(--font-letter-spacing-wide);
|
|
190
|
+
text-transform: uppercase;
|
|
191
|
+
color: var(--color-text-tertiary);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.crewlet-time-window__custom-row {
|
|
195
|
+
display: flex;
|
|
196
|
+
align-items: center;
|
|
197
|
+
gap: var(--spacing-2);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/* ─── The absolute range ─────────────────────────────────────── */
|
|
201
|
+
|
|
202
|
+
.crewlet-time-window__absolute {
|
|
203
|
+
display: flex;
|
|
204
|
+
flex-direction: column;
|
|
205
|
+
gap: var(--spacing-3);
|
|
206
|
+
min-width: 0;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.crewlet-time-window__absolute-head {
|
|
210
|
+
display: flex;
|
|
211
|
+
align-items: center;
|
|
212
|
+
justify-content: space-between;
|
|
213
|
+
gap: var(--spacing-3);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
.crewlet-time-window__absolute-title {
|
|
217
|
+
font-size: var(--font-size-2xs);
|
|
218
|
+
font-weight: var(--font-weight-medium);
|
|
219
|
+
letter-spacing: var(--font-letter-spacing-wide);
|
|
220
|
+
text-transform: uppercase;
|
|
221
|
+
color: var(--color-text-tertiary);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.crewlet-time-window__tz {
|
|
225
|
+
flex: 0 0 auto;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
.crewlet-time-window__calendars {
|
|
229
|
+
display: grid;
|
|
230
|
+
grid-template-columns: auto auto;
|
|
231
|
+
gap: var(--spacing-4);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
.crewlet-time-window__calendar {
|
|
235
|
+
display: flex;
|
|
236
|
+
flex-direction: column;
|
|
237
|
+
gap: var(--spacing-1);
|
|
238
|
+
min-width: 0;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
.crewlet-time-window__calendar-head {
|
|
242
|
+
display: flex;
|
|
243
|
+
align-items: center;
|
|
244
|
+
justify-content: space-between;
|
|
245
|
+
gap: var(--spacing-1);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
.crewlet-time-window__calendar-title {
|
|
249
|
+
font-size: var(--font-size-compact);
|
|
250
|
+
font-weight: var(--font-weight-semibold);
|
|
251
|
+
color: var(--color-text-primary);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
.crewlet-time-window__fields {
|
|
255
|
+
display: grid;
|
|
256
|
+
grid-template-columns: 1fr 1fr;
|
|
257
|
+
gap: var(--spacing-3);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
.crewlet-time-window__field {
|
|
261
|
+
display: flex;
|
|
262
|
+
flex-direction: column;
|
|
263
|
+
gap: var(--spacing-1);
|
|
264
|
+
min-width: 0;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
.crewlet-time-window__field-label {
|
|
268
|
+
font-size: var(--font-size-2xs);
|
|
269
|
+
font-weight: var(--font-weight-medium);
|
|
270
|
+
letter-spacing: var(--font-letter-spacing-wide);
|
|
271
|
+
text-transform: uppercase;
|
|
272
|
+
color: var(--color-text-tertiary);
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
.crewlet-time-window__field-row {
|
|
276
|
+
display: flex;
|
|
277
|
+
gap: var(--spacing-2);
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
/* ─── The masked boxes ───────────────────────────────────────── */
|
|
281
|
+
|
|
282
|
+
/*
|
|
283
|
+
* The value and the shape still to be filled sit side by side in one box, in
|
|
284
|
+
* the same mono face at the same size, so the two read as one string. The
|
|
285
|
+
* remainder is a PICTURE: it is aria-hidden, because a reader hearing "Y Y Y
|
|
286
|
+
* Y slash M M" is being read a template rather than a value.
|
|
287
|
+
*/
|
|
288
|
+
.crewlet-time-window__masked {
|
|
289
|
+
display: inline-flex;
|
|
290
|
+
align-items: center;
|
|
291
|
+
flex: 1;
|
|
292
|
+
min-width: 0;
|
|
293
|
+
min-height: var(--size-control-sm);
|
|
294
|
+
padding: 0 var(--spacing-2);
|
|
295
|
+
background: var(--color-surface-subtle);
|
|
296
|
+
border: 1px solid var(--color-border-control);
|
|
297
|
+
border-radius: var(--radius-md);
|
|
298
|
+
font-family: var(--font-family-mono);
|
|
299
|
+
font-size: var(--font-size-compact);
|
|
300
|
+
font-variant-numeric: tabular-nums;
|
|
301
|
+
transition: border-color var(--motion-duration-fast) var(--motion-easing-default);
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
.crewlet-time-window__masked:focus-within {
|
|
305
|
+
outline: 2px solid transparent;
|
|
306
|
+
outline-offset: 2px;
|
|
307
|
+
border-color: var(--color-focus);
|
|
308
|
+
box-shadow: var(--shadow-focus);
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
.crewlet-time-window__masked-input {
|
|
312
|
+
min-width: 0;
|
|
313
|
+
/* The `size` attribute the component sets is what holds the width open in
|
|
314
|
+
every engine; this narrows it to the text where it is supported. */
|
|
315
|
+
width: auto;
|
|
316
|
+
field-sizing: content;
|
|
317
|
+
padding: 0;
|
|
318
|
+
background: transparent;
|
|
319
|
+
border: none;
|
|
320
|
+
outline: none;
|
|
321
|
+
font: inherit;
|
|
322
|
+
color: var(--color-text-primary);
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
.crewlet-time-window__masked-input[aria-invalid='true'] {
|
|
326
|
+
color: var(--color-feedback-danger-ink);
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
.crewlet-time-window__masked-rest {
|
|
330
|
+
color: var(--color-text-tertiary);
|
|
331
|
+
pointer-events: none;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
/* ─── The footer ─────────────────────────────────────────────── */
|
|
335
|
+
|
|
336
|
+
/*
|
|
337
|
+
* WHAT IS SELECTED, and what to do about it, on one line under both columns.
|
|
338
|
+
* The sentence is first because it is the answer to the question the panel was
|
|
339
|
+
* opened to ask, and the buttons are what a reader reaches for after reading
|
|
340
|
+
* it.
|
|
341
|
+
*/
|
|
342
|
+
.crewlet-time-window__footer {
|
|
343
|
+
grid-column: 1 / -1;
|
|
344
|
+
display: flex;
|
|
345
|
+
align-items: center;
|
|
346
|
+
justify-content: space-between;
|
|
347
|
+
gap: var(--spacing-3);
|
|
348
|
+
padding-top: var(--spacing-2);
|
|
349
|
+
border-top: 1px solid var(--color-border-default);
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
.crewlet-time-window__summary {
|
|
353
|
+
flex: 1;
|
|
354
|
+
min-width: 0;
|
|
355
|
+
margin: 0;
|
|
356
|
+
font-size: var(--font-size-xs);
|
|
357
|
+
color: var(--color-text-tertiary);
|
|
358
|
+
font-variant-numeric: tabular-nums;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
.crewlet-time-window__actions {
|
|
362
|
+
display: flex;
|
|
363
|
+
align-items: center;
|
|
364
|
+
gap: var(--spacing-2);
|
|
365
|
+
flex-shrink: 0;
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
/*
|
|
369
|
+
* One column on a narrow window: the rail over the calendars, and the two
|
|
370
|
+
* months stacked. The panel is as wide as its content, so without this the
|
|
371
|
+
* only thing a phone-sized window could do with it is clip it.
|
|
372
|
+
*/
|
|
373
|
+
@media (max-width: 768px) {
|
|
374
|
+
.crewlet-time-window__panel--both,
|
|
375
|
+
.crewlet-time-window__calendars,
|
|
376
|
+
.crewlet-time-window__fields {
|
|
377
|
+
grid-template-columns: 1fr;
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
.crewlet-time-window__footer {
|
|
381
|
+
flex-direction: column;
|
|
382
|
+
align-items: flex-start;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
/*
|
|
386
|
+
* One column is a tall column, and a panel taller than the window puts Apply
|
|
387
|
+
* below the fold of a surface the page cannot scroll: the reader can change
|
|
388
|
+
* the window and never commit it. So here, and only here, the panel takes
|
|
389
|
+
* back the scrolling every other popover in the package does.
|
|
390
|
+
*/
|
|
391
|
+
.crewlet-time-window__popover {
|
|
392
|
+
max-height: calc(100vh - var(--spacing-10));
|
|
393
|
+
overflow: auto;
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
@media (prefers-reduced-motion: reduce) {
|
|
398
|
+
.crewlet-time-window,
|
|
399
|
+
.crewlet-time-window__masked,
|
|
400
|
+
.crewlet-time-window__preset {
|
|
401
|
+
transition: none;
|
|
402
|
+
}
|
|
403
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { type HTMLAttributes, type LiHTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
export type TimelineItemState =
|
|
3
|
+
/** Done, or simply past. */
|
|
4
|
+
'default'
|
|
5
|
+
/** This step failed. */
|
|
6
|
+
| 'danger'
|
|
7
|
+
/** This step is where the work is now. */
|
|
8
|
+
| 'active';
|
|
9
|
+
export interface TimelineProps extends HTMLAttributes<HTMLOListElement> {
|
|
10
|
+
/**
|
|
11
|
+
* The word read before an item's number. "Round" makes the hidden label
|
|
12
|
+
* "Round 3", which is what a reader listening to a long ledger needs.
|
|
13
|
+
*/
|
|
14
|
+
itemLabel?: string | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* Tints every other item on the inset surface. Two steps, alternating: it
|
|
17
|
+
* separates adjacent blocks without claiming a meaning.
|
|
18
|
+
*/
|
|
19
|
+
alternating?: boolean | undefined;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* A numbered sequence of steps, each bracketed by its own rail.
|
|
23
|
+
*
|
|
24
|
+
* THE RAIL BRACKETS AN ITEM, it does not connect siblings. Drawn between items
|
|
25
|
+
* instead, a sequence of one gets no rail at all, which is the common case and
|
|
26
|
+
* the one a reader complained about: a bare numeral in the gutter beside a
|
|
27
|
+
* flat stack of look-alike rows. Bounded to its own item, every step is
|
|
28
|
+
* delimited and the ledger still ends where its last step's content ends.
|
|
29
|
+
*/
|
|
30
|
+
export declare function Timeline({ itemLabel, alternating, className, children, ...rest }: TimelineProps): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
export declare namespace Timeline {
|
|
32
|
+
var Item: typeof TimelineItem;
|
|
33
|
+
}
|
|
34
|
+
export interface TimelineItemProps extends LiHTMLAttributes<HTMLLIElement> {
|
|
35
|
+
state?: TimelineItemState | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* What the node draws. The item's own number by default, which is what a
|
|
38
|
+
* numbered ledger wants; a glyph where the step has an identity of its own.
|
|
39
|
+
*/
|
|
40
|
+
marker?: ReactNode;
|
|
41
|
+
/** Overrides the hidden label, for a step whose name is not its number. */
|
|
42
|
+
label?: string | undefined;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* One step.
|
|
46
|
+
*
|
|
47
|
+
* Its rail runs from under the node to the bottom of THIS item's content, on
|
|
48
|
+
* every item including the last, so appending one changes nothing about the
|
|
49
|
+
* items already drawn.
|
|
50
|
+
*/
|
|
51
|
+
export declare function TimelineItem({ state, marker, label, className, children, ...rest }: TimelineItemProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* A numbered ledger: a node per step, a rail bracketing that step's content.
|
|
3
|
+
*
|
|
4
|
+
* TWO DEVICES, TWO JOBS. The alternating tint separates adjacent blocks; the
|
|
5
|
+
* rail bounds one. Drawn the other way round, as a connector strictly BETWEEN
|
|
6
|
+
* steps, a ledger of one step got neither, and it rendered as a bare numeral
|
|
7
|
+
* in the gutter beside a flat stack of look-alike rows.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
.crewlet-timeline {
|
|
11
|
+
/* The node's diameter, which the rail's offset and its left edge both read
|
|
12
|
+
off, so moving the node is one edit rather than three. */
|
|
13
|
+
--crewlet-timeline-node-size: 18px;
|
|
14
|
+
--crewlet-timeline-pulse-period: 1.8s;
|
|
15
|
+
display: flex;
|
|
16
|
+
flex-direction: column;
|
|
17
|
+
margin: 0;
|
|
18
|
+
padding: 0;
|
|
19
|
+
list-style: none;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/*
|
|
23
|
+
* The block padding separates one step from the next, and it has to beat the
|
|
24
|
+
* gap INSIDE a step by enough to read as a different kind of boundary.
|
|
25
|
+
*/
|
|
26
|
+
.crewlet-timeline__item {
|
|
27
|
+
display: grid;
|
|
28
|
+
grid-template-columns: var(--crewlet-timeline-node-size) minmax(0, 1fr);
|
|
29
|
+
gap: var(--spacing-2);
|
|
30
|
+
padding: var(--spacing-3) var(--spacing-2) var(--spacing-3) 0;
|
|
31
|
+
/* The well's radius, which is what every inset block on a screen is drawn
|
|
32
|
+
at. A step tighter here made a tinted step read as a chip. */
|
|
33
|
+
border-radius: var(--radius-md);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/*
|
|
37
|
+
* Two steps, alternating: enough to separate adjacent blocks, not enough to
|
|
38
|
+
* claim a meaning. The inset surface rather than a second grey step, because
|
|
39
|
+
* two adjacent surface steps are nearly the same colour in the dark theme.
|
|
40
|
+
*/
|
|
41
|
+
.crewlet-timeline--alternating .crewlet-timeline__item:nth-child(even) {
|
|
42
|
+
background: var(--color-surface-inset);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.crewlet-timeline__rail {
|
|
46
|
+
position: relative;
|
|
47
|
+
display: flex;
|
|
48
|
+
justify-content: center;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.crewlet-timeline__node {
|
|
52
|
+
display: flex;
|
|
53
|
+
align-items: center;
|
|
54
|
+
justify-content: center;
|
|
55
|
+
flex: none;
|
|
56
|
+
position: relative;
|
|
57
|
+
width: var(--crewlet-timeline-node-size);
|
|
58
|
+
height: var(--crewlet-timeline-node-size);
|
|
59
|
+
margin-top: 2px;
|
|
60
|
+
border-radius: var(--radius-pill);
|
|
61
|
+
background: var(--color-surface-inset);
|
|
62
|
+
border: 1px solid var(--color-border-default);
|
|
63
|
+
color: var(--color-text-tertiary);
|
|
64
|
+
font-size: var(--font-size-2xs);
|
|
65
|
+
font-weight: var(--font-weight-medium);
|
|
66
|
+
font-variant-numeric: tabular-nums;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/*
|
|
70
|
+
* From just under the node to the bottom of THIS step's content, on every
|
|
71
|
+
* step including the last. Starting it clear of the node left a detached dash
|
|
72
|
+
* on a step only one row tall.
|
|
73
|
+
*/
|
|
74
|
+
.crewlet-timeline__rail::after {
|
|
75
|
+
content: '';
|
|
76
|
+
position: absolute;
|
|
77
|
+
left: calc(50% - 1px);
|
|
78
|
+
top: calc(var(--crewlet-timeline-node-size) + 4px);
|
|
79
|
+
bottom: 0;
|
|
80
|
+
width: 2px;
|
|
81
|
+
border-radius: var(--radius-pill);
|
|
82
|
+
/* The default border step, not the subtle one: this line is the thing that
|
|
83
|
+
says which blocks are one step, and a rule a reader has to look for is not
|
|
84
|
+
doing that job. */
|
|
85
|
+
background: var(--color-border-default);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.crewlet-timeline__body {
|
|
89
|
+
display: flex;
|
|
90
|
+
flex-direction: column;
|
|
91
|
+
gap: var(--spacing-2);
|
|
92
|
+
min-width: 0;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/*
|
|
96
|
+
* A step that failed. The one other colour the ledger carries, and it is
|
|
97
|
+
* earned: scanning nine steps for where it went wrong is the actual question a
|
|
98
|
+
* reader brings to a stuck run.
|
|
99
|
+
*/
|
|
100
|
+
.crewlet-timeline__item--danger .crewlet-timeline__node {
|
|
101
|
+
border-color: var(--color-feedback-danger-line);
|
|
102
|
+
background: var(--color-feedback-danger-soft);
|
|
103
|
+
color: var(--color-feedback-danger-ink);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/* The step in flight. The accent is the one colour that means "where it is". */
|
|
107
|
+
.crewlet-timeline__item--active .crewlet-timeline__node {
|
|
108
|
+
border-color: var(--color-brand-accent);
|
|
109
|
+
background: var(--color-brand-accent-soft);
|
|
110
|
+
color: var(--color-brand-accent-ink);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.crewlet-timeline__item--active .crewlet-timeline__node::before {
|
|
114
|
+
content: '';
|
|
115
|
+
position: absolute;
|
|
116
|
+
width: var(--crewlet-timeline-node-size);
|
|
117
|
+
height: var(--crewlet-timeline-node-size);
|
|
118
|
+
border-radius: var(--radius-pill);
|
|
119
|
+
border: 1px solid var(--color-brand-accent);
|
|
120
|
+
animation: crewlet-timeline-pulse var(--crewlet-timeline-pulse-period) var(--motion-easing-out) infinite;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
@keyframes crewlet-timeline-pulse {
|
|
124
|
+
0% {
|
|
125
|
+
opacity: 0.7;
|
|
126
|
+
transform: scale(1);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
100% {
|
|
130
|
+
opacity: 0;
|
|
131
|
+
transform: scale(1.9);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/*
|
|
136
|
+
* A live indicator that will not stop is exactly what this setting is for, so
|
|
137
|
+
* it stops rather than slowing. The node keeps its accent ring, so the step in
|
|
138
|
+
* flight is still the one that looks different.
|
|
139
|
+
*/
|
|
140
|
+
@media (prefers-reduced-motion: reduce) {
|
|
141
|
+
.crewlet-timeline__item--active .crewlet-timeline__node::before {
|
|
142
|
+
animation: none;
|
|
143
|
+
}
|
|
144
|
+
}
|