@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,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a node of an org chart and a row of an org table both say.
|
|
3
|
+
*
|
|
4
|
+
* ONE COMPONENT, BECAUSE IT WAS ALWAYS ONE THING. A chart node and a table row
|
|
5
|
+
* state the same four facts about the same organization: a mark for what kind
|
|
6
|
+
* of thing this is, its name, the word under the name saying that kind out
|
|
7
|
+
* loud, and the slot a push arrives in. They were written twice, under two
|
|
8
|
+
* class prefixes, and measured declaration by declaration the two stylesheets
|
|
9
|
+
* agreed on 38 of the 62 declarations they set across the six elements they
|
|
10
|
+
* both draw. Seventeen of the 24 that differed are one difference restated: A
|
|
11
|
+
* CHART NODE IS A BOX AS WIDE AS ITS OWN NAME AND A TABLE ROW IS A LINE IN A
|
|
12
|
+
* COLUMN. So the layout is the parameter and nothing else is. The other seven
|
|
13
|
+
* were the same rule written two ways, which is where both defects lived.
|
|
14
|
+
*
|
|
15
|
+
* WHAT THE LAYOUT DECIDES, and the whole of it:
|
|
16
|
+
* - the name and its caption are CENTRED in a node and RANGED LEFT in a row,
|
|
17
|
+
* because a node is read as a box and a column is read down its leading
|
|
18
|
+
* edge: names centred in a column are a column nobody can scan;
|
|
19
|
+
* - the mark's zone is a large control step in a node and a small one in a
|
|
20
|
+
* row, and the mark inside it takes the step that half-fills or
|
|
21
|
+
* three-quarter-fills whichever zone it is in;
|
|
22
|
+
* - the push slot keeps a FIXED room in a node, because a node is
|
|
23
|
+
* `width: max-content` and a slot that grew with its content would relay
|
|
24
|
+
* the whole chart, and is content-sized in a row, where the grid already
|
|
25
|
+
* decides the column;
|
|
26
|
+
* - the ink comes from whatever publishes it: a chart card publishes its own
|
|
27
|
+
* tone, and the table publishes the row's (`OrgTable.css`).
|
|
28
|
+
*
|
|
29
|
+
* THE NODE LAYOUT RENDERS NO WRAPPER, and cannot. `TreeCanvas`'s `node`
|
|
30
|
+
* appearance makes the element the caller spreads `ctx.item` on the flex row
|
|
31
|
+
* that lays the three zones out, so the zones have to be ITS children: a
|
|
32
|
+
* wrapper of this component's own would leave the chart laying out one box
|
|
33
|
+
* with everything inside it. The row layout does render one, because a table
|
|
34
|
+
* cell has nothing playing that part and because the row's tone has to be
|
|
35
|
+
* carried somewhere. That is why the base rules in `OrgLabel.css` are the
|
|
36
|
+
* NODE's and `--row` overrides them, rather than a neutral base and a modifier
|
|
37
|
+
* each: there is no element in a node layout for a modifier to sit on.
|
|
38
|
+
*
|
|
39
|
+
* TWO ALIASES KEEP THE OLD NAMES. `OrgNodeLabel` and `OrgTableName` are this
|
|
40
|
+
* component with the layout filled in, so no call site changed when the two
|
|
41
|
+
* became one.
|
|
42
|
+
*/
|
|
43
|
+
import type { ReactNode } from 'react';
|
|
44
|
+
import type { TreeCardTone } from '../TreeCanvas/index.js';
|
|
45
|
+
/**
|
|
46
|
+
* Which of the two things this label is: a card in a chart, or a line in a
|
|
47
|
+
* grid of them.
|
|
48
|
+
*/
|
|
49
|
+
export type OrgLabelLayout = 'node' | 'row';
|
|
50
|
+
/** What both layouts say, in the order they say it. */
|
|
51
|
+
export interface OrgLabelContent {
|
|
52
|
+
/** The mark in the leading zone: a glyph, a brand mark, an image. */
|
|
53
|
+
icon?: ReactNode | undefined;
|
|
54
|
+
/**
|
|
55
|
+
* A ring around that mark.
|
|
56
|
+
*
|
|
57
|
+
* `dashed` is the boundary something standing for somebody outside the
|
|
58
|
+
* system wears, the same mark a dashed card and a dashed row carry. The
|
|
59
|
+
* BOUNDARY says it rather than a hue, so it reads to somebody who cannot
|
|
60
|
+
* separate hues at all.
|
|
61
|
+
*/
|
|
62
|
+
iconRing?: 'none' | 'dashed' | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* How big the mark is drawn in its zone, as a proportion of the zone rather
|
|
65
|
+
* than as a size: `md` half-fills it, `lg` fills three quarters.
|
|
66
|
+
*
|
|
67
|
+
* `md` is what a container takes (a company, a unit, a group) and `lg` is
|
|
68
|
+
* for the mark that stands for the THING the chart is about, so a reader
|
|
69
|
+
* tells one from the other at the far end of a chart without reading either
|
|
70
|
+
* caption. The zone itself does not change either way, so this moves
|
|
71
|
+
* nothing: only what is drawn inside it.
|
|
72
|
+
*/
|
|
73
|
+
iconSize?: 'md' | 'lg' | undefined;
|
|
74
|
+
/** The name, which takes the width the two fixed zones leave and truncates. */
|
|
75
|
+
name: ReactNode;
|
|
76
|
+
/** What kind of thing this is: "Department", "Human seat", "Crewlet agent". */
|
|
77
|
+
caption?: ReactNode | undefined;
|
|
78
|
+
/**
|
|
79
|
+
* Fixed-size marks riding the caption line, each one a glyph with an
|
|
80
|
+
* accessible name of its own. Anything that would change size belongs in
|
|
81
|
+
* `trailing`, which has a slot kept for it.
|
|
82
|
+
*/
|
|
83
|
+
captionMarks?: ReactNode | undefined;
|
|
84
|
+
/**
|
|
85
|
+
* The slot on the name's line for what arrives from a push: a live state, a
|
|
86
|
+
* count.
|
|
87
|
+
*
|
|
88
|
+
* ASKING FOR IT IS WHAT RESERVES THE ROOM, in a node. The slot is a fixed
|
|
89
|
+
* width there, so what a push delivers cannot change the node's measured
|
|
90
|
+
* size; a node that can never carry one passes nothing here and is drawn
|
|
91
|
+
* with no slot at all, which is the console chart's own node.
|
|
92
|
+
*/
|
|
93
|
+
trailing?: ReactNode | undefined;
|
|
94
|
+
/**
|
|
95
|
+
* Added to the outermost element this layout HAS: the row's own wrapper, and
|
|
96
|
+
* in a node the text column, which is the outermost element a layout that
|
|
97
|
+
* renders no wrapper can offer.
|
|
98
|
+
*/
|
|
99
|
+
className?: string | undefined;
|
|
100
|
+
}
|
|
101
|
+
export interface OrgLabelNodeProps extends OrgLabelContent {
|
|
102
|
+
layout?: 'node' | undefined;
|
|
103
|
+
/**
|
|
104
|
+
* Refused on a node, because a node has no element to carry it. A chart card
|
|
105
|
+
* publishes its own tone to everything inside it (`TreeCanvas.css`), which
|
|
106
|
+
* is where a node's ink comes from; there is nothing here to tone.
|
|
107
|
+
*/
|
|
108
|
+
tone?: never | undefined;
|
|
109
|
+
}
|
|
110
|
+
export interface OrgLabelRowProps extends OrgLabelContent {
|
|
111
|
+
layout: 'row';
|
|
112
|
+
/** The row's hue, which its mark and its name are drawn in. */
|
|
113
|
+
tone?: TreeCardTone | undefined;
|
|
114
|
+
}
|
|
115
|
+
export type OrgLabelProps = OrgLabelNodeProps | OrgLabelRowProps;
|
|
116
|
+
/** The mark, the name and the caption of an org chart node or an org table row. */
|
|
117
|
+
export declare function OrgLabel(props: OrgLabelProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* What a node of an org chart and a row of an org table both say
|
|
3
|
+
* (OrgLabel.tsx).
|
|
4
|
+
*
|
|
5
|
+
* THE BASE RULES ARE THE NODE'S, AND `--row` OVERRIDES THEM. Not a neutral
|
|
6
|
+
* base with a modifier each, which is the shape this would take anywhere else:
|
|
7
|
+
* a node layout renders no wrapper at all (the chart lays out the zones
|
|
8
|
+
* itself, so they have to be its own children), so there is no element in a
|
|
9
|
+
* node for a modifier class to sit on. The node is therefore what a rule with
|
|
10
|
+
* no modifier draws, and every `--row` rule below is one of the seventeen
|
|
11
|
+
* declarations the two surfaces genuinely disagreed about.
|
|
12
|
+
*
|
|
13
|
+
* NOTHING HERE CHOOSES A COLOUR FOR A ROW. A node's ink is the chart card's
|
|
14
|
+
* own tone, published to everything inside the card, and read here with the
|
|
15
|
+
* chart's neutral ink as the fallback. A row's is the table's, which is a
|
|
16
|
+
* system of six hues this file knows nothing about: `OrgTable.css` points the
|
|
17
|
+
* row's mark and name at it, beside the rules that produce it.
|
|
18
|
+
*
|
|
19
|
+
* Every measurement is a proportion of the console org chart this package is
|
|
20
|
+
* drawn to match, taken up by the ratio between its 10px name and the smallest
|
|
21
|
+
* name step in this type scale, and then snapped to the token nearest the
|
|
22
|
+
* result.
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
/* ---- The mark's zone ----------------------------------------------------- */
|
|
26
|
+
|
|
27
|
+
/*
|
|
28
|
+
* A FIXED ZONE, so the name beside it starts in the same place on every node
|
|
29
|
+
* and every row. `align-self: stretch` is the node's: the zone is as tall as
|
|
30
|
+
* the card's first rank, which is what centres a mark against a name that has
|
|
31
|
+
* a caption under it.
|
|
32
|
+
*/
|
|
33
|
+
.crewlet-org-label__icon {
|
|
34
|
+
display: inline-flex;
|
|
35
|
+
flex: none;
|
|
36
|
+
align-items: center;
|
|
37
|
+
justify-content: center;
|
|
38
|
+
width: var(--size-control-lg);
|
|
39
|
+
align-self: stretch;
|
|
40
|
+
font-size: var(--font-size-xl);
|
|
41
|
+
line-height: 1;
|
|
42
|
+
color: var(--crewlet-tree-canvas-card-accent, var(--color-text-tertiary));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/*
|
|
46
|
+
* A MARK THE SIZE OF WHAT IT STANDS FOR. The console chart draws a company and
|
|
47
|
+
* a unit at half its icon zone and an AGENT at three quarters of it, which is
|
|
48
|
+
* what lets a reader tell an agent seat from a unit at the far end of a chart
|
|
49
|
+
* without reading either caption. Drawn at one step for all three, the hue and
|
|
50
|
+
* the caption were carrying that difference alone. The zone does not change,
|
|
51
|
+
* so nothing here moves a node: only what is drawn in it.
|
|
52
|
+
*/
|
|
53
|
+
.crewlet-org-label__icon--lg {
|
|
54
|
+
font-size: var(--font-size-3xl);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/*
|
|
58
|
+
* THE ZONE IS ONE INK, and the mark in it takes that ink whatever it arrived
|
|
59
|
+
* painted in. A glyph already inherits, but a brand mark or an illustration
|
|
60
|
+
* carries its own fill, and on a toned node that is the one mark on the whole
|
|
61
|
+
* node still drawn in somebody else's colour: a rose node with a purple figure
|
|
62
|
+
* in its corner. Stated as the zone's own rule rather than asked of each
|
|
63
|
+
* caller, because the zone is what decides that a node is drawn in one colour.
|
|
64
|
+
*/
|
|
65
|
+
.crewlet-org-label__icon svg,
|
|
66
|
+
.crewlet-org-label__icon svg g,
|
|
67
|
+
.crewlet-org-label__icon svg path {
|
|
68
|
+
/* THE INK AS WELL AS THE FILL, which is what made the rule above true. A
|
|
69
|
+
mark may publish its own hue as a `color` on its own root (the Crewlet
|
|
70
|
+
figure does, from the brand token), and `currentcolor` under that root
|
|
71
|
+
then resolves to THAT: the fill was overridden and landed on exactly the
|
|
72
|
+
purple it started from, on every agent seat of a toned chart. The table
|
|
73
|
+
had the fill alone and therefore the same defect; one rule now answers for
|
|
74
|
+
both surfaces. */
|
|
75
|
+
color: inherit;
|
|
76
|
+
fill: currentColor;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/*
|
|
80
|
+
* THE DASHED RING is the boundary something standing for somebody outside the
|
|
81
|
+
* system wears, around the mark rather than instead of it: the card's own edge
|
|
82
|
+
* and the row's own mark carry the same dash, and the two together are what a
|
|
83
|
+
* reader recognises without reading a word.
|
|
84
|
+
*/
|
|
85
|
+
.crewlet-org-label__icon--dashed {
|
|
86
|
+
position: relative;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.crewlet-org-label__icon--dashed::before {
|
|
90
|
+
content: '';
|
|
91
|
+
position: absolute;
|
|
92
|
+
width: var(--size-target-min);
|
|
93
|
+
height: var(--size-target-min);
|
|
94
|
+
border: 1px dashed var(--color-border-hover);
|
|
95
|
+
border-radius: var(--radius-circle);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/* ---- The name and its caption -------------------------------------------- */
|
|
99
|
+
|
|
100
|
+
/*
|
|
101
|
+
* CENTRED IN WHAT THE TWO FIXED ZONES LEAVE. Centred rather than ranged left
|
|
102
|
+
* because the zones are fixed: a name ranged left starts under the mark's
|
|
103
|
+
* right edge and a short one leaves the node looking like a label with an
|
|
104
|
+
* empty half. A ROW ranges left instead, below.
|
|
105
|
+
*/
|
|
106
|
+
.crewlet-org-label__text {
|
|
107
|
+
display: flex;
|
|
108
|
+
flex: 1;
|
|
109
|
+
flex-direction: column;
|
|
110
|
+
align-items: center;
|
|
111
|
+
justify-content: center;
|
|
112
|
+
min-width: 0;
|
|
113
|
+
text-align: center;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/*
|
|
117
|
+
* ONE LINE, ALWAYS. A name that wrapped would make the node a rank taller,
|
|
118
|
+
* which is a new layout for the whole chart, and would make one row of the
|
|
119
|
+
* table two ranks and push its rhythm off. The name truncates instead.
|
|
120
|
+
*/
|
|
121
|
+
.crewlet-org-label__name {
|
|
122
|
+
max-width: 100%;
|
|
123
|
+
overflow: hidden;
|
|
124
|
+
font-size: var(--font-size-compact);
|
|
125
|
+
font-weight: var(--font-weight-medium);
|
|
126
|
+
line-height: var(--font-line-height-tight);
|
|
127
|
+
color: var(--crewlet-tree-canvas-card-ink, var(--color-text-primary));
|
|
128
|
+
text-overflow: ellipsis;
|
|
129
|
+
white-space: nowrap;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/*
|
|
133
|
+
* THE CAPTION RECEDES BEHIND THE NAME, and on a toned node or a toned row it
|
|
134
|
+
* recedes in the neutral ink rather than in the hue.
|
|
135
|
+
*
|
|
136
|
+
* TWO REASONS, and either one is enough. It is a WORD, so it is read rather
|
|
137
|
+
* than made out, and the hue's own step measures 4.2:1 on both these grounds:
|
|
138
|
+
* over the floor for a drawing and under it for text. And the one word that
|
|
139
|
+
* names what a thing IS was drawn in two colours across the two surfaces of
|
|
140
|
+
* one page. The smallest step in this scale is 11px against the console
|
|
141
|
+
* chart's 7 on a 10px name, so the caption cannot recede by size here; it
|
|
142
|
+
* recedes by ink.
|
|
143
|
+
*/
|
|
144
|
+
.crewlet-org-label__caption {
|
|
145
|
+
display: flex;
|
|
146
|
+
max-width: 100%;
|
|
147
|
+
align-items: center;
|
|
148
|
+
justify-content: center;
|
|
149
|
+
gap: var(--spacing-1);
|
|
150
|
+
min-width: 0;
|
|
151
|
+
font-size: var(--font-size-2xs);
|
|
152
|
+
line-height: var(--font-line-height-tight);
|
|
153
|
+
color: var(--color-text-tertiary);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.crewlet-org-label__kind {
|
|
157
|
+
overflow: hidden;
|
|
158
|
+
text-overflow: ellipsis;
|
|
159
|
+
white-space: nowrap;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/*
|
|
163
|
+
* THE WIRING MARKS ride the caption as glyphs. Each is named for a reader who
|
|
164
|
+
* cannot see it and titled for one who can, and each keeps its size, so the
|
|
165
|
+
* node is the same height with three of them as with none.
|
|
166
|
+
*
|
|
167
|
+
* EVERY CHILD BUT THE WORD, which is the form the table arrived at and the
|
|
168
|
+
* chart did not: a mark arrives as a bare glyph or as a glyph inside a span
|
|
169
|
+
* that names it, and a rule reaching only the bare one let a named mark shrink
|
|
170
|
+
* with the strip around it. The word is the one child that may shrink, because
|
|
171
|
+
* it is the one that truncates.
|
|
172
|
+
*/
|
|
173
|
+
.crewlet-org-label__caption > * {
|
|
174
|
+
flex: none;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
.crewlet-org-label__caption svg {
|
|
178
|
+
font-size: var(--font-size-xs);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
.crewlet-org-label__caption > .crewlet-org-label__kind {
|
|
182
|
+
flex: 0 1 auto;
|
|
183
|
+
min-width: 0;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/* ---- The slot a push arrives in ------------------------------------------ */
|
|
187
|
+
|
|
188
|
+
/*
|
|
189
|
+
* IT HOLDS ITS ROOM EMPTY, so a live state that changes twice a tool-loop
|
|
190
|
+
* round and a count that leaves while a check is out and comes back with its
|
|
191
|
+
* answer both change a word and never a measured size.
|
|
192
|
+
*
|
|
193
|
+
* A FIXED WIDTH, NOT A FLOOR. A `min-width` of one spacing step was not that
|
|
194
|
+
* promise: a node is `width: max-content`, so a badge arriving made the card
|
|
195
|
+
* 35px wider and relaid the chart, and a state that changed only its word
|
|
196
|
+
* ("idle" to "working") moved the node too. The slot is the same width whether
|
|
197
|
+
* it holds two marks, one or none, and anything wider is clipped inside it
|
|
198
|
+
* rather than pushing the card out. The room is one CONTROL STEP, which two
|
|
199
|
+
* fixed marks and the gap between them fit in (a state's dot and a count), and
|
|
200
|
+
* the slot is that plus its own separation either side.
|
|
201
|
+
*
|
|
202
|
+
* AND IT IS SEPARATED FROM THE NAME. The row this sits in has no gap (the
|
|
203
|
+
* zones either side of the name are fixed and the name is centred between
|
|
204
|
+
* them), so without this the name's box ended exactly where the badge's began.
|
|
205
|
+
*/
|
|
206
|
+
.crewlet-org-label__trailing {
|
|
207
|
+
display: inline-flex;
|
|
208
|
+
flex: none;
|
|
209
|
+
align-items: center;
|
|
210
|
+
justify-content: flex-end;
|
|
211
|
+
gap: var(--spacing-1);
|
|
212
|
+
width: calc(var(--size-control-lg) + var(--spacing-2) + var(--spacing-1));
|
|
213
|
+
overflow: hidden;
|
|
214
|
+
padding-right: var(--spacing-1);
|
|
215
|
+
padding-left: var(--spacing-2);
|
|
216
|
+
white-space: nowrap;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/* ---- The row layout ------------------------------------------------------ */
|
|
220
|
+
|
|
221
|
+
/*
|
|
222
|
+
* A ROW IS A LINE IN A COLUMN, and every rule from here down is one of the
|
|
223
|
+
* seventeen declarations that follow from that.
|
|
224
|
+
*
|
|
225
|
+
* IT FILLS THE CELL IT IS IN. At `0 1 auto` the group was as wide as its own
|
|
226
|
+
* name, so the text column had nothing to grow into and the slot sat wherever
|
|
227
|
+
* that name ended: two seats' live states never lined up, and the name never
|
|
228
|
+
* truncated because it never ran out of room.
|
|
229
|
+
*/
|
|
230
|
+
.crewlet-org-label--row {
|
|
231
|
+
display: flex;
|
|
232
|
+
flex: 1 1 auto;
|
|
233
|
+
align-items: center;
|
|
234
|
+
gap: var(--spacing-2);
|
|
235
|
+
min-width: 0;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
/*
|
|
239
|
+
* HALF THE NODE'S ZONE, and the mark inside it half-fills or three-quarter-
|
|
240
|
+
* fills that, which is the same proportion the chart draws at its own size.
|
|
241
|
+
* `align-self` goes back to the wrapper's own centring: a row is one rank, so
|
|
242
|
+
* there is no second line for a stretched zone to centre a mark against.
|
|
243
|
+
*/
|
|
244
|
+
.crewlet-org-label--row .crewlet-org-label__icon {
|
|
245
|
+
width: var(--size-control-sm);
|
|
246
|
+
align-self: auto;
|
|
247
|
+
font-size: var(--font-size-md);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
.crewlet-org-label--row .crewlet-org-label__icon--lg {
|
|
251
|
+
font-size: var(--font-size-xl);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
/*
|
|
255
|
+
* RANGED LEFT, where a node centres. They say the same things about the same
|
|
256
|
+
* thing, but a chart node is a box as wide as its own name, where a column of
|
|
257
|
+
* rows is read down its leading edge: names centred in a column are a column
|
|
258
|
+
* nobody can scan.
|
|
259
|
+
*/
|
|
260
|
+
.crewlet-org-label--row .crewlet-org-label__text {
|
|
261
|
+
align-items: stretch;
|
|
262
|
+
justify-content: flex-start;
|
|
263
|
+
text-align: start;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
.crewlet-org-label--row .crewlet-org-label__caption {
|
|
267
|
+
max-width: none;
|
|
268
|
+
justify-content: flex-start;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
/*
|
|
272
|
+
* AND THE NAME IS BOUNDED BY THE CELL RATHER THAN BY ITSELF. A node is as wide
|
|
273
|
+
* as its own name up to the chart's ceiling, so the name is capped at the
|
|
274
|
+
* width it was given; a row's column is already a fixed width, and a cap of
|
|
275
|
+
* its own would stop the name using the room the grid handed it.
|
|
276
|
+
*/
|
|
277
|
+
.crewlet-org-label--row .crewlet-org-label__name {
|
|
278
|
+
max-width: none;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
/*
|
|
282
|
+
* THE SLOT IS CONTENT-SIZED IN A ROW. The fixed room above exists because a
|
|
283
|
+
* node is measured and relaid whenever its size changes; a row sits in a grid
|
|
284
|
+
* that has already decided the column, so a slot holding its own width there
|
|
285
|
+
* would be a second, smaller column inside the first.
|
|
286
|
+
*/
|
|
287
|
+
.crewlet-org-label--row .crewlet-org-label__trailing {
|
|
288
|
+
justify-content: flex-start;
|
|
289
|
+
width: auto;
|
|
290
|
+
overflow: visible;
|
|
291
|
+
padding-right: 0;
|
|
292
|
+
padding-left: 0;
|
|
293
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What an org chart node carries, beyond what it says.
|
|
3
|
+
*
|
|
4
|
+
* THE CHART DRAWS THE NODE, THIS DRAWS WHAT HANGS OFF IT. `TreeCanvas` owns
|
|
5
|
+
* the node's frame, its zones, the tone it may be tinted with, the actions
|
|
6
|
+
* column and the control under it. What a node SAYS, which is the part a table
|
|
7
|
+
* row says in the same words, is `OrgLabel`: the mark, the name, the caption
|
|
8
|
+
* under it and the slot a push arrives in were written once for each surface
|
|
9
|
+
* and are written once for both now, with `OrgNodeLabel` below the name a
|
|
10
|
+
* chart caller keeps using.
|
|
11
|
+
*
|
|
12
|
+
* WHAT IS LEFT HERE IS WHAT ONLY A NODE HAS. A row of a table has no disclosure
|
|
13
|
+
* on its leading edge, because a grid indents instead, and no strip along its
|
|
14
|
+
* bottom edge stating who leads the unit, because a column already says that
|
|
15
|
+
* on its own. Both are drawn as SIBLINGS of what the chart spreads `ctx.item`
|
|
16
|
+
* on rather than inside it, which is why each is a component rather than a
|
|
17
|
+
* slot: a tree's items hold nothing focusable.
|
|
18
|
+
*/
|
|
19
|
+
import type { HTMLAttributes, ReactNode } from 'react';
|
|
20
|
+
import { type OrgLabelContent } from '../OrgLabel/index.js';
|
|
21
|
+
/**
|
|
22
|
+
* What a node says, which is what a ROW of the table beside it says too:
|
|
23
|
+
* `OrgLabel`, with the layout filled in.
|
|
24
|
+
*
|
|
25
|
+
* KEPT AS A NAME OF ITS OWN because a chart node is what a caller of this
|
|
26
|
+
* folder is drawing, and `OrgLabel layout="node"` at every call site would be
|
|
27
|
+
* the parameter repeated rather than a component named after its job. It adds
|
|
28
|
+
* nothing and takes nothing away: the props are the shared ones exactly.
|
|
29
|
+
*/
|
|
30
|
+
export type OrgNodeLabelProps = OrgLabelContent;
|
|
31
|
+
/** The icon, name and caption of an org chart node. */
|
|
32
|
+
export declare function OrgNodeLabel(props: OrgNodeLabelProps): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
export interface OrgNodeDisclosureProps extends HTMLAttributes<HTMLDivElement> {
|
|
34
|
+
/** The control itself, named and carrying `tabIndex={-1}`. */
|
|
35
|
+
children: ReactNode;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The control that opens and closes what hangs under a node, on its LEADING
|
|
39
|
+
* EDGE.
|
|
40
|
+
*
|
|
41
|
+
* NOT ON THE BRANCH, which is the one place it must never be. What hangs under
|
|
42
|
+
* a node is the control that ADDS a child, on the node's own axis, and it is
|
|
43
|
+
* the only thing there: a second control beside it is two controls fighting
|
|
44
|
+
* for one place, and an add pill that splits open covers whatever was next to
|
|
45
|
+
* it. So a chart that can collapse puts the disclosure where every hierarchy a
|
|
46
|
+
* reader has used puts one, at the start of the row, and the branch keeps the
|
|
47
|
+
* add alone.
|
|
48
|
+
*
|
|
49
|
+
* BESIDE THE TREEITEM, NOT INSIDE IT, which is why this is a component of its
|
|
50
|
+
* own rather than a slot on the label. A tree's items hold nothing focusable:
|
|
51
|
+
* a control inside one is a control the tree pattern cannot navigate to and a
|
|
52
|
+
* screen reader reading element by element meets as a stray button. Drawn as
|
|
53
|
+
* part of the label it was inside the element the chart spreads `ctx.item` on,
|
|
54
|
+
* however it was marked. Render it as a SIBLING of that element, exactly where
|
|
55
|
+
* `ctx.actions` goes, and the chart's node appearance places it on the card's
|
|
56
|
+
* boundary from there; it hides itself, as that strip does.
|
|
57
|
+
*
|
|
58
|
+
* IT COSTS A READER NOTHING. Expansion is on the treeitem ITSELF, as
|
|
59
|
+
* `aria-expanded` and the Right and Left arrows, so what is hidden here is a
|
|
60
|
+
* DUPLICATE of something already reachable rather than a way in. Name the
|
|
61
|
+
* control anyway: "Collapse Engineering" is the tooltip a pointer gets.
|
|
62
|
+
*
|
|
63
|
+
* AND A PRESS IN IT BELONGS TO THE NODE. Every other control a chart draws
|
|
64
|
+
* hands its press to the treeitem, so that what holds focus afterwards is
|
|
65
|
+
* always a node a screen reader can announce and the arrows can move from; a
|
|
66
|
+
* disclosure that kept the focus on itself would leave it on an element the
|
|
67
|
+
* tree cannot navigate to and no reader can hear. This takes the chart's own
|
|
68
|
+
* press props and spreads them, which is exactly how the strip under a card
|
|
69
|
+
* takes them: the component owns what cannot be forgotten (the class, the
|
|
70
|
+
* hiding) and the caller passes the one thing only the chart knows, which id
|
|
71
|
+
* this is.
|
|
72
|
+
*/
|
|
73
|
+
export declare function OrgNodeDisclosure({ children, className, ...rest }: OrgNodeDisclosureProps): import("react/jsx-runtime").JSX.Element;
|
|
74
|
+
export interface OrgNodeLeadProps {
|
|
75
|
+
/**
|
|
76
|
+
* Nothing is set, so the pill is drawn as the outline of one: a unit with no
|
|
77
|
+
* lead is a fact about the organization and a blank strip says nothing.
|
|
78
|
+
*/
|
|
79
|
+
empty?: boolean | undefined;
|
|
80
|
+
/**
|
|
81
|
+
* The clear control, drawn inside the pill's right end.
|
|
82
|
+
*
|
|
83
|
+
* ONE PRESS to say this unit has no lead, which is what the console chart's
|
|
84
|
+
* own X does. It is quiet until the node is reached, like every other
|
|
85
|
+
* control on a node, and it is reached by FOCUS as well as by the pointer:
|
|
86
|
+
* the chart's own reveal rule covers it (`TreeCanvas.css`). Pass a named
|
|
87
|
+
* control, never a bare glyph: "Clear the lead of Engineering" is what a
|
|
88
|
+
* reader who cannot see which node this is hears.
|
|
89
|
+
*/
|
|
90
|
+
clear?: ReactNode | undefined;
|
|
91
|
+
children: ReactNode;
|
|
92
|
+
className?: string | undefined;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* A unit's lead, along the bottom edge of its node.
|
|
96
|
+
*
|
|
97
|
+
* IT STAYS DRAWN, where the controls that edit the node do not: who leads a
|
|
98
|
+
* unit is a FACT ABOUT THE ORGANIZATION rather than a tool for changing it,
|
|
99
|
+
* and a chart that hid it until the pointer arrived would be a chart you could
|
|
100
|
+
* not read the leads off. Separated from the name above by a hairline, so the
|
|
101
|
+
* node reads as a thing with a lead rather than as two lines of text.
|
|
102
|
+
*/
|
|
103
|
+
export declare function OrgNodeLead({ empty, clear, children, className }: OrgNodeLeadProps): import("react/jsx-runtime").JSX.Element;
|