@crewlethq/ui 0.2.0 → 0.3.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 +142 -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-AHX3Q2JD.css +428 -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 +60 -0
- package/dist/CodeBlock/index.d.ts +3 -0
- package/dist/CodeBlock/index.js +7 -0
- package/dist/CodeBlock-U2W6NNVC.css +153 -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 +54 -0
- package/dist/Copyable/Copyable.d.ts +34 -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 +68 -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 +49 -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 +68 -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 +138 -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 +36 -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-2PRH365R.js +74 -0
- package/dist/chunk-2ZQMA2WB.js +57 -0
- package/dist/chunk-3CZ7XAVY.js +139 -0
- package/dist/chunk-3EYF6HKB.js +135 -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-5IMACPJS.js +495 -0
- package/dist/chunk-5KPQ6D7N.js +54 -0
- package/dist/chunk-5SDBMKUO.js +297 -0
- package/dist/chunk-5WS6L6FA.js +114 -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-ARMRX2YV.js +96 -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-D3OADIM6.js +112 -0
- package/dist/chunk-DD5BBGBE.js +162 -0
- package/dist/chunk-EHMQQHYR.js +1652 -0
- package/dist/chunk-EN6K2IFA.js +256 -0
- package/dist/chunk-EPOOQZYA.js +118 -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-G2QFRTJ2.js +823 -0
- package/dist/chunk-GHYY2WPF.js +907 -0
- package/dist/chunk-GTOUGQQK.js +147 -0
- package/dist/chunk-GUIF6Q6N.js +143 -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-HTDFCRJZ.js +92 -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-LGCPQIOZ.js +49 -0
- package/dist/chunk-LWKJQTOM.js +77 -0
- package/dist/chunk-MNAXYY3R.js +215 -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-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-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-T7FKOJKW.js +221 -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-V663QU4R.js +51 -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-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-YMWONFSI.js +170 -0
- package/dist/chunk-ZCR6YGQ4.js +1 -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 +14841 -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 +30 -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,199 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* DateTimePicker: a Select-shaped trigger over a calendar dialog.
|
|
3
|
+
*
|
|
4
|
+
* The trigger borrows the Select's geometry so a date box and a picker line
|
|
5
|
+
* up in the same toolbar; the panel holds the shared CalendarGrid, so the
|
|
6
|
+
* month looks and behaves the same here as in every other picker.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
.crewlet-datetime {
|
|
10
|
+
width: 100%;
|
|
11
|
+
display: inline-flex;
|
|
12
|
+
align-items: center;
|
|
13
|
+
gap: var(--spacing-2);
|
|
14
|
+
min-height: var(--size-control-md);
|
|
15
|
+
/* The side inset only: the control's own height is what makes the row, so a
|
|
16
|
+
date box, the select beside it and the button beside that are one
|
|
17
|
+
height. */
|
|
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-datetime--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-datetime:hover:not(:disabled) {
|
|
37
|
+
border-color: var(--color-border-hover);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/*
|
|
41
|
+
* Focus and open are drawn alike, and the ring is an OUTLINE: forced-colors
|
|
42
|
+
* mode drops every box-shadow and keeps outlines, so a ring drawn as a shadow
|
|
43
|
+
* disappears for exactly the readers who most need one.
|
|
44
|
+
*/
|
|
45
|
+
.crewlet-datetime:focus-visible,
|
|
46
|
+
.crewlet-datetime.is-open {
|
|
47
|
+
outline: 2px solid var(--color-focus);
|
|
48
|
+
outline-offset: 2px;
|
|
49
|
+
border-color: var(--color-focus);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.crewlet-datetime.is-disabled,
|
|
53
|
+
.crewlet-datetime:disabled {
|
|
54
|
+
opacity: 0.55;
|
|
55
|
+
cursor: not-allowed;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/* Both glyphs are DECORATION and take the decoration step: the calendar says
|
|
59
|
+
a second time what the value beside it already reads as a date, and the
|
|
60
|
+
chevron what the control's own role already says. */
|
|
61
|
+
svg.crewlet-datetime__icon,
|
|
62
|
+
svg.crewlet-datetime__chevron {
|
|
63
|
+
color: var(--color-text-muted);
|
|
64
|
+
flex-shrink: 0;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.crewlet-datetime__label {
|
|
68
|
+
flex: 1;
|
|
69
|
+
min-width: 0;
|
|
70
|
+
overflow: hidden;
|
|
71
|
+
text-overflow: ellipsis;
|
|
72
|
+
white-space: nowrap;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.crewlet-datetime__label.is-placeholder {
|
|
76
|
+
color: var(--color-text-tertiary);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/* ─── The panel ──────────────────────────────────────────────── */
|
|
80
|
+
|
|
81
|
+
.crewlet-datetime__popover {
|
|
82
|
+
--crewlet-datetime-panel-min-width: 288px;
|
|
83
|
+
|
|
84
|
+
padding: 0;
|
|
85
|
+
/*
|
|
86
|
+
* The shared popover rule caps its height and scrolls what overflows, which
|
|
87
|
+
* put the time row under the fold. A calendar is one fixed-size thing: it is
|
|
88
|
+
* shown whole or it is not shown.
|
|
89
|
+
*/
|
|
90
|
+
overflow: visible;
|
|
91
|
+
min-width: var(--crewlet-datetime-panel-min-width);
|
|
92
|
+
max-width: none;
|
|
93
|
+
max-height: none;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/*
|
|
97
|
+
* The width belongs to the PANEL, not to the overlay around it: drawn inline
|
|
98
|
+
* inside somebody else's popover (a filter chip's editor), the panel is the
|
|
99
|
+
* only element there is, and a calendar squeezed into a narrower host is a
|
|
100
|
+
* calendar with its weeks wrapped.
|
|
101
|
+
*/
|
|
102
|
+
.crewlet-datetime__panel {
|
|
103
|
+
--crewlet-datetime-panel-min-width: 288px;
|
|
104
|
+
|
|
105
|
+
display: flex;
|
|
106
|
+
flex-direction: column;
|
|
107
|
+
gap: var(--spacing-2);
|
|
108
|
+
padding: var(--spacing-3);
|
|
109
|
+
min-width: var(--crewlet-datetime-panel-min-width);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.crewlet-datetime__nav {
|
|
113
|
+
display: flex;
|
|
114
|
+
align-items: center;
|
|
115
|
+
gap: var(--spacing-1);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.crewlet-datetime__title {
|
|
119
|
+
flex: 1;
|
|
120
|
+
text-align: center;
|
|
121
|
+
font-size: var(--font-size-compact);
|
|
122
|
+
font-weight: var(--font-weight-semibold);
|
|
123
|
+
color: var(--color-text-primary);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.crewlet-datetime__time {
|
|
127
|
+
display: flex;
|
|
128
|
+
align-items: center;
|
|
129
|
+
gap: var(--spacing-1);
|
|
130
|
+
padding-top: var(--spacing-2);
|
|
131
|
+
border-top: 1px solid var(--color-border-default);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.crewlet-datetime__time-label {
|
|
135
|
+
flex: 1;
|
|
136
|
+
font-size: var(--font-size-xs);
|
|
137
|
+
color: var(--color-text-tertiary);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.crewlet-datetime__time-sep {
|
|
141
|
+
color: var(--color-text-tertiary);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.crewlet-datetime__time-input {
|
|
145
|
+
--crewlet-datetime-time-width: 44px;
|
|
146
|
+
|
|
147
|
+
width: var(--crewlet-datetime-time-width);
|
|
148
|
+
min-height: var(--size-control-sm);
|
|
149
|
+
padding: 0 var(--spacing-1);
|
|
150
|
+
text-align: center;
|
|
151
|
+
font-family: var(--font-family-mono);
|
|
152
|
+
font-size: var(--font-size-compact);
|
|
153
|
+
font-variant-numeric: tabular-nums;
|
|
154
|
+
color: var(--color-text-primary);
|
|
155
|
+
background: var(--color-surface-subtle);
|
|
156
|
+
border: 1px solid var(--color-border-control);
|
|
157
|
+
/* A box is a box: the corner every field in the package wears. */
|
|
158
|
+
border-radius: var(--radius-md);
|
|
159
|
+
outline: none;
|
|
160
|
+
/* The native spinner is the platform's, not the theme's, and it halves the
|
|
161
|
+
room a two-digit value has. The arrow keys still step the value. */
|
|
162
|
+
appearance: textfield;
|
|
163
|
+
-moz-appearance: textfield;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.crewlet-datetime__time-input::-webkit-outer-spin-button,
|
|
167
|
+
.crewlet-datetime__time-input::-webkit-inner-spin-button {
|
|
168
|
+
-webkit-appearance: none;
|
|
169
|
+
margin: 0;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
.crewlet-datetime__time-input:focus-visible {
|
|
173
|
+
outline: 2px solid var(--color-focus);
|
|
174
|
+
outline-offset: 2px;
|
|
175
|
+
border-color: var(--color-focus);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.crewlet-datetime__footer {
|
|
179
|
+
display: flex;
|
|
180
|
+
align-items: center;
|
|
181
|
+
justify-content: space-between;
|
|
182
|
+
gap: var(--spacing-2);
|
|
183
|
+
padding-top: var(--spacing-2);
|
|
184
|
+
border-top: 1px solid var(--color-border-default);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/* Now and Clear are both about the VALUE, so they sit together at the far end
|
|
188
|
+
from Done, which is about the panel. */
|
|
189
|
+
.crewlet-datetime__shortcuts {
|
|
190
|
+
display: flex;
|
|
191
|
+
align-items: center;
|
|
192
|
+
gap: var(--spacing-1);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
@media (prefers-reduced-motion: reduce) {
|
|
196
|
+
.crewlet-datetime {
|
|
197
|
+
transition: none;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
/** One pair, as a tuple: the term and what it is. */
|
|
3
|
+
export type DescriptionListEntry = readonly [term: ReactNode, detail: ReactNode];
|
|
4
|
+
export interface DescriptionListProps extends HTMLAttributes<HTMLDListElement> {
|
|
5
|
+
/** Tightens the rhythm for a panel that carries a dozen pairs. */
|
|
6
|
+
dense?: boolean | undefined;
|
|
7
|
+
/**
|
|
8
|
+
* The pairs. Given as tuples so a caller can build them from a record
|
|
9
|
+
* without inventing a key for each one; `DescriptionList.Item` children are
|
|
10
|
+
* the other form, for a pair whose detail is a component.
|
|
11
|
+
*/
|
|
12
|
+
items?: readonly DescriptionListEntry[] | undefined;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Metadata: a term and what it is, several times over.
|
|
16
|
+
*
|
|
17
|
+
* NOT A LAYOUT. It is a `dl`, so a screen reader announces "3 items" and pairs
|
|
18
|
+
* each term with its own detail, and a reader can move between them as a list.
|
|
19
|
+
* That promise is the reason to reach for it, and the reason not to: a panel
|
|
20
|
+
* with two columns of unrelated content is a grid, not a description list, and
|
|
21
|
+
* spelling it as one tells a reader something untrue about what they are
|
|
22
|
+
* looking at.
|
|
23
|
+
*
|
|
24
|
+
* Each pair is wrapped in a `div`, which HTML allows inside a `dl` and which
|
|
25
|
+
* is what lets one pair be one grid row.
|
|
26
|
+
*/
|
|
27
|
+
export declare function DescriptionList({ dense, items, className, children, ...rest }: DescriptionListProps): import("react/jsx-runtime").JSX.Element;
|
|
28
|
+
export declare namespace DescriptionList {
|
|
29
|
+
var Item: typeof DescriptionListItem;
|
|
30
|
+
}
|
|
31
|
+
export interface DescriptionListItemProps extends HTMLAttributes<HTMLDivElement> {
|
|
32
|
+
/** What the value is called. */
|
|
33
|
+
term: ReactNode;
|
|
34
|
+
}
|
|
35
|
+
/** One term and its detail. */
|
|
36
|
+
export declare function DescriptionListItem({ term, className, children, ...rest }: DescriptionListItemProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Metadata pairs on one grid.
|
|
3
|
+
*
|
|
4
|
+
* The term track is `minmax(120px, max-content)`: wide enough that short terms
|
|
5
|
+
* line up with each other, and free to grow for a long one rather than
|
|
6
|
+
* wrapping it into two lines beside a one-word value.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
.crewlet-description-list {
|
|
10
|
+
display: grid;
|
|
11
|
+
grid-template-columns: minmax(120px, max-content) 1fr;
|
|
12
|
+
gap: var(--spacing-2) var(--spacing-4);
|
|
13
|
+
margin: 0;
|
|
14
|
+
font-size: var(--font-size-compact);
|
|
15
|
+
align-items: baseline;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/*
|
|
19
|
+
* A pair is one grid row. `display: contents` is what puts the term and the
|
|
20
|
+
* detail on the list's OWN tracks: wrapped in a div that participates in the
|
|
21
|
+
* grid, every pair would be one cell and nothing would line up.
|
|
22
|
+
*/
|
|
23
|
+
.crewlet-description-list__pair {
|
|
24
|
+
display: contents;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.crewlet-description-list__term {
|
|
28
|
+
color: var(--color-text-tertiary);
|
|
29
|
+
font-size: var(--font-size-xs);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.crewlet-description-list__detail {
|
|
33
|
+
margin: 0;
|
|
34
|
+
min-width: 0;
|
|
35
|
+
color: var(--color-text-primary);
|
|
36
|
+
/* An id, a path or a URL is one unbreakable word to a line breaker, and this
|
|
37
|
+
is where those are shown. */
|
|
38
|
+
overflow-wrap: anywhere;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.crewlet-description-list--dense {
|
|
42
|
+
gap: var(--spacing-1) var(--spacing-3);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/*
|
|
46
|
+
* Narrow: the term over its detail. Two columns at this width leave a value
|
|
47
|
+
* column too narrow for the values it carries, which is worse than a taller
|
|
48
|
+
* list.
|
|
49
|
+
*/
|
|
50
|
+
@media (max-width: 480px) {
|
|
51
|
+
.crewlet-description-list {
|
|
52
|
+
grid-template-columns: 1fr;
|
|
53
|
+
gap: var(--spacing-1);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.crewlet-description-list__detail {
|
|
57
|
+
margin-bottom: var(--spacing-2);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
/** What happened to one path between two documents. */
|
|
3
|
+
export type DiffKind = 'added' | 'removed' | 'changed';
|
|
4
|
+
export interface DiffRow {
|
|
5
|
+
kind: DiffKind;
|
|
6
|
+
/** Where in the document, such as `roles.planner.model`. */
|
|
7
|
+
path: ReactNode;
|
|
8
|
+
/** What was there. Read for a removal, and for the left half of a change. */
|
|
9
|
+
from?: ReactNode;
|
|
10
|
+
/** What is there now. Read for an addition, and for the right half. */
|
|
11
|
+
to?: ReactNode;
|
|
12
|
+
}
|
|
13
|
+
export interface DiffListLabels {
|
|
14
|
+
added: string;
|
|
15
|
+
removed: string;
|
|
16
|
+
changed: string;
|
|
17
|
+
/** Joins the two halves of a change, where the arrow is drawn. */
|
|
18
|
+
to: string;
|
|
19
|
+
}
|
|
20
|
+
export declare const DIFF_LIST_LABELS: DiffListLabels;
|
|
21
|
+
export interface DiffListProps {
|
|
22
|
+
rows: DiffRow[];
|
|
23
|
+
/** What an empty diff says. Two identical documents are a fact, not a gap. */
|
|
24
|
+
emptyMessage?: ReactNode;
|
|
25
|
+
labels?: Partial<DiffListLabels>;
|
|
26
|
+
className?: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The difference between two documents, one path per row.
|
|
30
|
+
*
|
|
31
|
+
* COLOUR IS NEVER THE ONLY SIGNAL, and a diff is where that rule is easiest
|
|
32
|
+
* to break: green, red and amber rows read perfectly until somebody cannot
|
|
33
|
+
* tell them apart, which is one reader in twelve. Every row therefore carries
|
|
34
|
+
* its glyph AND its word, the word is in the accessibility tree rather than
|
|
35
|
+
* in a title, and the tint behind it is the third carrier rather than the
|
|
36
|
+
* first.
|
|
37
|
+
*
|
|
38
|
+
* AND THE ARROW IS NOT THE WORD EITHER. A change reads "from this to that";
|
|
39
|
+
* drawn, that is a glyph between two values, and a screen reader is given the
|
|
40
|
+
* word "to" in its place, because an arrow is announced as anything from
|
|
41
|
+
* "right arrow" to nothing at all.
|
|
42
|
+
*
|
|
43
|
+
* Monospace, because what a row holds is a path and two values out of a
|
|
44
|
+
* configuration document, where an aligned column of characters is the whole
|
|
45
|
+
* point and a proportional face makes two nearly-identical values look alike.
|
|
46
|
+
*/
|
|
47
|
+
export declare function DiffList({ rows, emptyMessage, labels: overrides, className }: DiffListProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/* DiffList: one path per row, with its mark, its word and its tint.
|
|
2
|
+
|
|
3
|
+
The tint is the soft step of the state the row is in and the text is the
|
|
4
|
+
matching ink step, which is the pairing the palette suite measures: a fill
|
|
5
|
+
is never text and an ink step is never a background. */
|
|
6
|
+
/*
|
|
7
|
+
* HALF A STEP, between the rows and inside them. A diff row is a LINE OF A
|
|
8
|
+
* DOCUMENT rather than an item in a list: at the full 4px step a fifty-line
|
|
9
|
+
* diff gained two hundred pixels of nothing, and the tint that groups the
|
|
10
|
+
* added lines together stopped reading as a block. It is written as half the
|
|
11
|
+
* smallest step rather than as 2px so it still scales with the density
|
|
12
|
+
* setting, which is the whole reason the scale exists.
|
|
13
|
+
*/
|
|
14
|
+
.crewlet-diff-list {
|
|
15
|
+
display: flex;
|
|
16
|
+
flex-direction: column;
|
|
17
|
+
gap: calc(var(--spacing-1) / 2);
|
|
18
|
+
margin: 0;
|
|
19
|
+
padding: 0;
|
|
20
|
+
list-style: none;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.crewlet-diff-list__row {
|
|
24
|
+
display: grid;
|
|
25
|
+
grid-template-columns: auto minmax(0, 200px) minmax(0, 1fr);
|
|
26
|
+
align-items: baseline;
|
|
27
|
+
gap: var(--spacing-2);
|
|
28
|
+
padding: calc(var(--spacing-1) / 2) var(--spacing-2);
|
|
29
|
+
border-radius: var(--radius-xs);
|
|
30
|
+
font-family: var(--font-family-mono);
|
|
31
|
+
font-size: var(--font-size-2xs);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* THE SERVER'S OWN WORDS: a change is added, removed or changed. The rules
|
|
35
|
+
this replaces read add, remove and replace, which no answer has ever
|
|
36
|
+
carried, so every diff row rendered untinted. */
|
|
37
|
+
.crewlet-diff-list__row--added {
|
|
38
|
+
background: var(--color-feedback-success-soft);
|
|
39
|
+
color: var(--color-feedback-success-ink);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.crewlet-diff-list__row--removed {
|
|
43
|
+
background: var(--color-feedback-danger-soft);
|
|
44
|
+
color: var(--color-feedback-danger-ink);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.crewlet-diff-list__row--changed {
|
|
48
|
+
background: var(--color-feedback-warning-soft);
|
|
49
|
+
color: var(--color-feedback-warning-ink);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.crewlet-diff-list__mark {
|
|
53
|
+
display: inline-flex;
|
|
54
|
+
align-items: center;
|
|
55
|
+
/* The glyph carries the row's own ink, so the mark and its words read as
|
|
56
|
+
one thing rather than as a grey icon beside coloured text. */
|
|
57
|
+
color: inherit;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.crewlet-diff-list__path,
|
|
61
|
+
.crewlet-diff-list__value {
|
|
62
|
+
overflow: hidden;
|
|
63
|
+
text-overflow: ellipsis;
|
|
64
|
+
white-space: nowrap;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.crewlet-diff-list__value {
|
|
68
|
+
display: flex;
|
|
69
|
+
align-items: center;
|
|
70
|
+
gap: var(--spacing-1);
|
|
71
|
+
min-width: 0;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/* THE OLD VALUE IS NOT DIMMED. It read at 0.75 opacity, which took the ink
|
|
75
|
+
this file pairs with its tint down to between 3.28:1 and 4.24:1 in light,
|
|
76
|
+
under the 4.5:1 the pairing exists to clear, and the value being replaced
|
|
77
|
+
is exactly the one a reader checks the new one against. The arrow, the word
|
|
78
|
+
"to" and the order are what say which half is which. */
|
|
79
|
+
.crewlet-diff-list__from,
|
|
80
|
+
.crewlet-diff-list__to {
|
|
81
|
+
overflow: hidden;
|
|
82
|
+
text-overflow: ellipsis;
|
|
83
|
+
white-space: nowrap;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.crewlet-diff-list__arrow {
|
|
87
|
+
flex: none;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.crewlet-diff-list__empty {
|
|
91
|
+
margin: 0;
|
|
92
|
+
font-size: var(--font-size-compact);
|
|
93
|
+
color: var(--color-text-tertiary);
|
|
94
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { type HTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
import { type DisclosureHeadingLevel } from './anatomy.js';
|
|
3
|
+
export type DisclosureVariant =
|
|
4
|
+
/** A section of the page that happens to be folded. */
|
|
5
|
+
'default'
|
|
6
|
+
/**
|
|
7
|
+
* An ASIDE: what was considered rather than what was decided. A rule down
|
|
8
|
+
* its edge lets a reader skip the whole block by its shape rather than by
|
|
9
|
+
* reading it.
|
|
10
|
+
*/
|
|
11
|
+
| 'aside';
|
|
12
|
+
export type DisclosureSize = 'default' | 'compact';
|
|
13
|
+
export interface DisclosureProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title' | 'onToggle'> {
|
|
14
|
+
/** The always-visible words. */
|
|
15
|
+
title: ReactNode;
|
|
16
|
+
/** A fact inside the trigger: a duration, a model, a status word. */
|
|
17
|
+
meta?: ReactNode;
|
|
18
|
+
/** How many of something the section holds. */
|
|
19
|
+
count?: number | string | undefined;
|
|
20
|
+
/** Sets the title in the mono face. */
|
|
21
|
+
mono?: boolean | undefined;
|
|
22
|
+
/** Controls beside the trigger, outside the button. */
|
|
23
|
+
actions?: ReactNode;
|
|
24
|
+
/** Controlled open state. */
|
|
25
|
+
open?: boolean | undefined;
|
|
26
|
+
/** Uncontrolled initial state. */
|
|
27
|
+
defaultOpen?: boolean | undefined;
|
|
28
|
+
onOpenChange?: ((open: boolean) => void) | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Mount the children only while open. For a section whose content is
|
|
31
|
+
* expensive: a syntax-highlighted record, a chart, a request nobody has
|
|
32
|
+
* asked for. Closed again, the children unmount and their state goes with
|
|
33
|
+
* them, which is the trade.
|
|
34
|
+
*/
|
|
35
|
+
lazy?: boolean | undefined;
|
|
36
|
+
variant?: DisclosureVariant | undefined;
|
|
37
|
+
size?: DisclosureSize | undefined;
|
|
38
|
+
/**
|
|
39
|
+
* The heading the trigger is wrapped in. Defaults to the level the
|
|
40
|
+
* surrounding surface declares, so the same section is an `h3` on a page
|
|
41
|
+
* under an `h2` and an `h2` inside a dialog. `none` leaves the button
|
|
42
|
+
* unwrapped, for a disclosure that is not a section of anything.
|
|
43
|
+
*/
|
|
44
|
+
headingLevel?: DisclosureHeadingLevel | undefined;
|
|
45
|
+
children?: ReactNode;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* A labelled section the reader opens.
|
|
49
|
+
*
|
|
50
|
+
* NOT A BARE `details`. That element draws the platform's own marker instead
|
|
51
|
+
* of the chevron every other expander here uses, takes none of the hover,
|
|
52
|
+
* inset or type of this one, and cannot carry a count, a fact or a set of
|
|
53
|
+
* controls outside its summary. Two expanders that behave the same and look
|
|
54
|
+
* different is the specific thing a component library exists to stop.
|
|
55
|
+
*/
|
|
56
|
+
export declare function Disclosure({ title, meta, count, mono, actions, open: controlledOpen, defaultOpen, onOpenChange, lazy, variant, size, headingLevel, className, children, ...rest }: DisclosureProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { KeyboardEventHandler, ReactNode } from 'react';
|
|
2
|
+
import { type HeadingLevel } from '../utils/headingLevel.js';
|
|
3
|
+
/** The level a disclosure's trigger is wrapped in, or no heading at all. */
|
|
4
|
+
export type DisclosureHeadingLevel = HeadingLevel | 'none';
|
|
5
|
+
export interface DisclosureAnatomyProps {
|
|
6
|
+
open: boolean;
|
|
7
|
+
onToggle: () => void;
|
|
8
|
+
/** The always-visible words. */
|
|
9
|
+
title: ReactNode;
|
|
10
|
+
/**
|
|
11
|
+
* A fact that belongs to the section, INSIDE the trigger: a duration, a
|
|
12
|
+
* model name. Text only, because it is part of the button's own name.
|
|
13
|
+
*/
|
|
14
|
+
meta?: ReactNode;
|
|
15
|
+
/** How many of something the section holds. */
|
|
16
|
+
count?: number | string | undefined;
|
|
17
|
+
/** Sets the title in the mono face: a tool name, a config path. */
|
|
18
|
+
mono?: boolean | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* Controls that belong to the section, rendered BESIDE the trigger and
|
|
21
|
+
* outside it. A button nested inside a button is not a thing, and pressing a
|
|
22
|
+
* copy control must not also collapse the thing it just copied.
|
|
23
|
+
*/
|
|
24
|
+
actions?: ReactNode;
|
|
25
|
+
disabled?: boolean | undefined;
|
|
26
|
+
headingLevel: DisclosureHeadingLevel;
|
|
27
|
+
triggerId: string;
|
|
28
|
+
panelId: string;
|
|
29
|
+
/** The owning component's own class on the button, so its look can differ. */
|
|
30
|
+
triggerClassName?: string | undefined;
|
|
31
|
+
onKeyDown?: KeyboardEventHandler<HTMLButtonElement> | undefined;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* The bar every disclosure in this package is built from: a chevron, the
|
|
35
|
+
* section's words, an optional fact and count inside the button, and the
|
|
36
|
+
* section's own controls outside it.
|
|
37
|
+
*
|
|
38
|
+
* ONE IMPLEMENTATION, because `Accordion.Item` and `Disclosure` are the same
|
|
39
|
+
* control with different state models: one belongs to a stack that opens one
|
|
40
|
+
* item at a time, the other stands alone. Written twice, the two came to
|
|
41
|
+
* disagree about where the actions go, which is the half that matters.
|
|
42
|
+
*/
|
|
43
|
+
export declare function DisclosureAnatomy({ open, onToggle, title, meta, count, mono, actions, disabled, headingLevel, triggerId, panelId, triggerClassName, onKeyDown, }: DisclosureAnatomyProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import './Disclosure.css';
|
|
2
|
+
export { Disclosure } from './Disclosure.js';
|
|
3
|
+
export type { DisclosureProps, DisclosureVariant, DisclosureSize } from './Disclosure.js';
|
|
4
|
+
export { DisclosureAnatomy } from './anatomy.js';
|
|
5
|
+
export type { DisclosureAnatomyProps, DisclosureHeadingLevel } from './anatomy.js';
|