@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,67 @@
|
|
|
1
|
+
// What both CSS checks read, so the two cannot come to disagree about which
|
|
2
|
+
// files they cover or where a finding is.
|
|
3
|
+
//
|
|
4
|
+
// Comments are BLANKED rather than removed, so a line number in a finding is
|
|
5
|
+
// the line a person will open, and so prose about a rule is never mistaken for
|
|
6
|
+
// the rule being broken: `check-css-variables` had already caught a stylesheet
|
|
7
|
+
// whose own header explained why a style element is forbidden.
|
|
8
|
+
|
|
9
|
+
import { readdirSync, readFileSync, statSync } from 'node:fs';
|
|
10
|
+
import { join, relative } from 'node:path';
|
|
11
|
+
|
|
12
|
+
export function sourceFiles(directory, extensions = /\.(css|tsx?)$/) {
|
|
13
|
+
const found = [];
|
|
14
|
+
for (const entry of readdirSync(directory, { withFileTypes: true })) {
|
|
15
|
+
const path = join(directory, entry.name);
|
|
16
|
+
if (entry.isDirectory()) found.push(...sourceFiles(path, extensions));
|
|
17
|
+
else if (extensions.test(entry.name)) found.push(path);
|
|
18
|
+
}
|
|
19
|
+
return found;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function withoutComments(text, isStylesheet) {
|
|
23
|
+
const pattern = isStylesheet ? /\/\*[\s\S]*?\*\//g : /\/\*[\s\S]*?\*\/|\/\/[^\n]*/g;
|
|
24
|
+
return text.replace(pattern, (comment) => comment.replace(/[^\n]/g, ' '));
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export function lineOf(text, index) {
|
|
28
|
+
return text.slice(0, index).split('\n').length;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/** Every file under the given roots, with its comments blanked. */
|
|
32
|
+
export function readSources(roots, base, extensions) {
|
|
33
|
+
const files = [];
|
|
34
|
+
for (const root of roots) {
|
|
35
|
+
if (!statSync(root).isDirectory()) throw new Error(`${root} is not a directory`);
|
|
36
|
+
for (const path of sourceFiles(root, extensions)) {
|
|
37
|
+
const raw = readFileSync(path, 'utf8');
|
|
38
|
+
files.push({
|
|
39
|
+
path,
|
|
40
|
+
where: relative(base, path),
|
|
41
|
+
isStylesheet: path.endsWith('.css'),
|
|
42
|
+
text: withoutComments(raw, path.endsWith('.css')),
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return files;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/** Every rule body in a stylesheet, with its selector and its start offset. */
|
|
50
|
+
export function rules(text) {
|
|
51
|
+
const found = [];
|
|
52
|
+
const pattern = /([^{}]+)\{([^{}]*)\}/g;
|
|
53
|
+
for (const match of text.matchAll(pattern)) {
|
|
54
|
+
found.push({ selector: match[1].trim(), body: match[2], index: match.index });
|
|
55
|
+
}
|
|
56
|
+
return found;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export function report(name, problems, checked) {
|
|
60
|
+
if (problems.length > 0) {
|
|
61
|
+
console.error(`${name} failed:\n${problems.map((problem) => ` ${problem}`).join('\n')}`);
|
|
62
|
+
process.exitCode = 1;
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
console.warn(`[ui] ${name}: ${checked}`);
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// Writes src/generated/index.ts: one re-export line per component folder.
|
|
2
|
+
//
|
|
3
|
+
// WHY IT IS GENERATED. The root barrel is the one file every component folder
|
|
4
|
+
// has to touch, and eight people adding components at once is eight conflicts
|
|
5
|
+
// in it. Generated from the folder list, nobody edits it: a folder with an
|
|
6
|
+
// index.ts is exported, a folder without one is not, and the order is the
|
|
7
|
+
// filesystem's rather than an argument.
|
|
8
|
+
//
|
|
9
|
+
// It runs before tsup, before typecheck and before lint, because all three
|
|
10
|
+
// read src/index.ts, which is nothing but a re-export of this file.
|
|
11
|
+
|
|
12
|
+
import { readdirSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
|
|
13
|
+
import { dirname, join, resolve } from 'node:path';
|
|
14
|
+
import { fileURLToPath } from 'node:url';
|
|
15
|
+
|
|
16
|
+
const packageRoot = resolve(dirname(fileURLToPath(import.meta.url)), '..');
|
|
17
|
+
const sourceRoot = join(packageRoot, 'src');
|
|
18
|
+
const out = join(sourceRoot, 'generated', 'index.ts');
|
|
19
|
+
|
|
20
|
+
/** Every folder directly under src/ that publishes an index.ts. */
|
|
21
|
+
export function componentFolders(root = sourceRoot) {
|
|
22
|
+
return readdirSync(root, { withFileTypes: true })
|
|
23
|
+
.filter((entry) => entry.isDirectory() && entry.name !== 'generated')
|
|
24
|
+
.map((entry) => entry.name)
|
|
25
|
+
.filter((name) => {
|
|
26
|
+
try {
|
|
27
|
+
readdirSync(join(root, name));
|
|
28
|
+
} catch {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
return readdirSync(join(root, name)).includes('index.ts');
|
|
32
|
+
})
|
|
33
|
+
.sort();
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export function barrelSource(folders) {
|
|
37
|
+
return [
|
|
38
|
+
'// Generated by scripts/write-barrel.mjs from the folders under src/. Do not edit.',
|
|
39
|
+
...folders.map((name) => `export * from '../${name}/index.js';`),
|
|
40
|
+
'',
|
|
41
|
+
].join('\n');
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function main() {
|
|
45
|
+
const folders = componentFolders();
|
|
46
|
+
const text = barrelSource(folders);
|
|
47
|
+
mkdirSync(dirname(out), { recursive: true });
|
|
48
|
+
let current = null;
|
|
49
|
+
try {
|
|
50
|
+
current = readFileSync(out, 'utf8');
|
|
51
|
+
} catch {
|
|
52
|
+
// Not written yet, which is every clean checkout.
|
|
53
|
+
}
|
|
54
|
+
// Only when it changed: an unconditional write restarts every watcher
|
|
55
|
+
// looking at src/ on each build.
|
|
56
|
+
if (current !== text) writeFileSync(out, text);
|
|
57
|
+
console.warn(`[ui] barrel exports ${folders.length} component folders`);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (process.argv[1] && import.meta.url === `file://${process.argv[1]}`) main();
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Accordion, a stacked disclosure list for FAQs and dense settings. One
|
|
3
|
-
* hairline rule between items, a chevron that rotates on open, and a panel
|
|
4
|
-
* that is fully removed from the a11y tree when collapsed.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
.crewlet-accordion {
|
|
8
|
-
display: flex;
|
|
9
|
-
flex-direction: column;
|
|
10
|
-
border-top: 1px solid var(--color-border-default);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
.crewlet-accordion__item {
|
|
14
|
-
border-bottom: 1px solid var(--color-border-default);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
.crewlet-accordion__heading {
|
|
18
|
-
margin: 0;
|
|
19
|
-
font: inherit;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
.crewlet-accordion__trigger {
|
|
23
|
-
display: flex;
|
|
24
|
-
align-items: center;
|
|
25
|
-
justify-content: space-between;
|
|
26
|
-
gap: var(--spacing-4);
|
|
27
|
-
width: 100%;
|
|
28
|
-
padding: var(--spacing-5) 0;
|
|
29
|
-
background: none;
|
|
30
|
-
border: none;
|
|
31
|
-
cursor: pointer;
|
|
32
|
-
text-align: left;
|
|
33
|
-
color: var(--color-text-primary);
|
|
34
|
-
font-family: var(--font-family-display);
|
|
35
|
-
font-size: var(--font-size-lg);
|
|
36
|
-
font-weight: var(--font-weight-medium);
|
|
37
|
-
line-height: var(--font-line-height-snug);
|
|
38
|
-
transition: color var(--motion-duration-base) var(--motion-easing-out);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
.crewlet-accordion__trigger:hover {
|
|
42
|
-
color: var(--color-brand-accent);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
.crewlet-accordion__trigger:focus-visible {
|
|
46
|
-
outline: none;
|
|
47
|
-
box-shadow: var(--shadow-focus);
|
|
48
|
-
border-radius: var(--radius-sm);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
.crewlet-accordion__item.is-disabled .crewlet-accordion__trigger {
|
|
52
|
-
cursor: not-allowed;
|
|
53
|
-
color: var(--color-text-muted);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
.crewlet-accordion__title {
|
|
57
|
-
min-width: 0;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
.crewlet-accordion__icon {
|
|
61
|
-
flex-shrink: 0;
|
|
62
|
-
font-size: 24px;
|
|
63
|
-
color: var(--color-text-tertiary);
|
|
64
|
-
transition: transform var(--motion-duration-base) var(--motion-easing-out);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
.crewlet-accordion__item.is-open .crewlet-accordion__icon {
|
|
68
|
-
transform: rotate(180deg);
|
|
69
|
-
color: var(--color-brand-accent);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
.crewlet-accordion__panel {
|
|
73
|
-
color: var(--color-text-secondary);
|
|
74
|
-
font-size: var(--font-size-md);
|
|
75
|
-
line-height: var(--font-line-height-relaxed, 1.7);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
.crewlet-accordion__panel-inner {
|
|
79
|
-
padding: 0 0 var(--spacing-5);
|
|
80
|
-
max-width: 68ch;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
@media (prefers-reduced-motion: reduce) {
|
|
84
|
-
.crewlet-accordion__icon,
|
|
85
|
-
.crewlet-accordion__trigger {
|
|
86
|
-
transition: none;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AppShell, layout shell for console apps.
|
|
3
|
-
*
|
|
4
|
-
* Passive composition: the sidebar and topbar slots position
|
|
5
|
-
* themselves (typically `position: fixed`); AppShell only reserves
|
|
6
|
-
* the gutters the fixed elements overlay via margin / padding on
|
|
7
|
-
* the content column, so an application can adopt the shell without
|
|
8
|
-
* restyling a sidebar or header it already positions itself.
|
|
9
|
-
*
|
|
10
|
-
* Layout dimensions are exposed as CSS custom properties on the
|
|
11
|
-
* root so styles inside slot children can read them.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
.crewlet-app-shell {
|
|
15
|
-
display: flex;
|
|
16
|
-
height: 100vh;
|
|
17
|
-
overflow-x: hidden;
|
|
18
|
-
overflow-y: visible;
|
|
19
|
-
--crewlet-app-shell-sidebar-width: 280px;
|
|
20
|
-
--crewlet-app-shell-topbar-height: 64px;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
.crewlet-app-shell__column {
|
|
24
|
-
flex: 1;
|
|
25
|
-
min-width: 0;
|
|
26
|
-
display: flex;
|
|
27
|
-
flex-direction: column;
|
|
28
|
-
margin-left: var(--crewlet-app-shell-sidebar-width);
|
|
29
|
-
padding-top: var(--crewlet-app-shell-topbar-height);
|
|
30
|
-
height: 100vh;
|
|
31
|
-
overflow-x: hidden;
|
|
32
|
-
overflow-y: visible;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
.crewlet-app-shell__main {
|
|
36
|
-
flex: 1;
|
|
37
|
-
padding: 40px 0;
|
|
38
|
-
overflow-y: auto;
|
|
39
|
-
overflow-x: visible;
|
|
40
|
-
min-height: 0;
|
|
41
|
-
/*
|
|
42
|
-
* Reserve space for the vertical scrollbar on every page so the
|
|
43
|
-
* tab strip, headers, and content stay anchored at the same x
|
|
44
|
-
* position when navigating between a tall page (long form, large
|
|
45
|
-
* table) and a short page (a card or two). Without this gutter,
|
|
46
|
-
* the scrollbar appears or disappears between routes and shifts
|
|
47
|
-
* every element horizontally by the scrollbar's width, which
|
|
48
|
-
* reads as the page "jumping" on every navigation.
|
|
49
|
-
*/
|
|
50
|
-
scrollbar-gutter: stable;
|
|
51
|
-
}
|
package/dist/Avatar-V6NG6Q45.css
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Avatar, round identity badge.
|
|
3
|
-
*
|
|
4
|
-
* The initials fallback
|
|
5
|
-
* uses the defined brand-accent surface and its paired on-brand text token so
|
|
6
|
-
* the dark, light, and system themes all keep an accessible contrast ratio.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
.crewlet-avatar {
|
|
10
|
-
display: inline-flex;
|
|
11
|
-
align-items: center;
|
|
12
|
-
justify-content: center;
|
|
13
|
-
flex-shrink: 0;
|
|
14
|
-
overflow: hidden;
|
|
15
|
-
object-fit: cover;
|
|
16
|
-
font-family: var(--font-family-sans);
|
|
17
|
-
font-weight: 600;
|
|
18
|
-
line-height: 1;
|
|
19
|
-
user-select: none;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/* Shape modifiers. "circle" is the round identity badge; "square" keeps
|
|
23
|
-
rounded corners (matching the Card radius) so wide marks such as company
|
|
24
|
-
logos are not cropped into a circle. */
|
|
25
|
-
.crewlet-avatar--circle {
|
|
26
|
-
border-radius: var(--radius-circle, 50%);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
.crewlet-avatar--square {
|
|
30
|
-
border-radius: var(--radius-lg, 12px);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.crewlet-avatar--image {
|
|
34
|
-
display: block;
|
|
35
|
-
object-fit: cover;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
.crewlet-avatar--fallback {
|
|
39
|
-
background: var(--color-brand-accent);
|
|
40
|
-
color: var(--color-text-on-brand);
|
|
41
|
-
text-transform: uppercase;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/*
|
|
45
|
-
* Identity tints. When a colorSeed is supplied, the initials fallback picks
|
|
46
|
-
* one of these fixed backgrounds by a stable hash of the seed, so each
|
|
47
|
-
* identity keeps a distinct, consistent colour across the product (agent
|
|
48
|
-
* rosters, member lists). The palette is chosen for a legible contrast ratio
|
|
49
|
-
* against white initials (overridable through --crewlet-avatar-tint-fg),
|
|
50
|
-
* and each tint overrides the plain
|
|
51
|
-
* brand-accent fallback above. Ordering matters: these rules follow
|
|
52
|
-
* .crewlet-avatar--fallback so the tint wins at equal specificity.
|
|
53
|
-
*/
|
|
54
|
-
.crewlet-avatar--tint {
|
|
55
|
-
color: var(--crewlet-avatar-tint-fg, #ffffff);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
.crewlet-avatar--tint-0 { background: #2563eb; }
|
|
59
|
-
.crewlet-avatar--tint-1 { background: #7c3aed; }
|
|
60
|
-
.crewlet-avatar--tint-2 { background: #c026d3; }
|
|
61
|
-
.crewlet-avatar--tint-3 { background: #db2777; }
|
|
62
|
-
.crewlet-avatar--tint-4 { background: #dc2626; }
|
|
63
|
-
.crewlet-avatar--tint-5 { background: #ea580c; }
|
|
64
|
-
.crewlet-avatar--tint-6 { background: #ca8a04; }
|
|
65
|
-
.crewlet-avatar--tint-7 { background: #16a34a; }
|
|
66
|
-
.crewlet-avatar--tint-8 { background: #0d9488; }
|
|
67
|
-
.crewlet-avatar--tint-9 { background: #0284c7; }
|
package/dist/Button-XGCTXXYP.css
DELETED
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Button styles. Colour properties go through the @crewlethq/tokens
|
|
3
|
-
* variables so the dark, light and system themes pick up the right
|
|
4
|
-
* palette without a per-theme rule here.
|
|
5
|
-
*
|
|
6
|
-
* Each size fixes a min-height (28, 32 and 44px) so a row of mixed
|
|
7
|
-
* buttons, with and without icons, keeps one height. IconButton's
|
|
8
|
-
* 28px size matches the small button, so check the IconButton and
|
|
9
|
-
* toolbar stories in Storybook when you change a size.
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
.crewlet-btn {
|
|
13
|
-
display: inline-flex;
|
|
14
|
-
align-items: center;
|
|
15
|
-
justify-content: center;
|
|
16
|
-
gap: 6px;
|
|
17
|
-
border: 1px solid transparent;
|
|
18
|
-
border-radius: 8px;
|
|
19
|
-
font-family: var(--font-family-sans);
|
|
20
|
-
font-weight: 600;
|
|
21
|
-
letter-spacing: -0.005em;
|
|
22
|
-
text-decoration: none;
|
|
23
|
-
white-space: nowrap;
|
|
24
|
-
cursor: pointer;
|
|
25
|
-
transition: background 150ms ease, color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
.crewlet-btn:focus-visible {
|
|
29
|
-
outline: none;
|
|
30
|
-
box-shadow: var(--shadow-focus, 0 0 0 3px rgba(84, 105, 212, 0.32));
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.crewlet-btn:disabled {
|
|
34
|
-
opacity: 0.4;
|
|
35
|
-
cursor: not-allowed;
|
|
36
|
-
pointer-events: none;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/* ── Sizes (padding + font + min-height) ─────────────────────────── */
|
|
40
|
-
.crewlet-btn--small { padding: 5px 12px; font-size: 12px; min-height: 28px; }
|
|
41
|
-
.crewlet-btn--medium { padding: 7px 14px; font-size: 13px; min-height: 32px; }
|
|
42
|
-
.crewlet-btn--large { padding: 9px 18px; font-size: 15px; min-height: 44px; }
|
|
43
|
-
|
|
44
|
-
/* ── Shape modifiers ────────────────────────────────────────────── */
|
|
45
|
-
.crewlet-btn--square { border-radius: 8px; }
|
|
46
|
-
.crewlet-btn--pill { border-radius: 100px; gap: 6px; }
|
|
47
|
-
|
|
48
|
-
.crewlet-btn--pill.crewlet-btn--small { padding: 6px 16px; }
|
|
49
|
-
.crewlet-btn--pill.crewlet-btn--medium { padding: 9px 22px; }
|
|
50
|
-
.crewlet-btn--pill.crewlet-btn--large { padding: 11px 28px; }
|
|
51
|
-
|
|
52
|
-
/*
|
|
53
|
-
* Pill buttons paired with Material Symbols icons read better when
|
|
54
|
-
* the icon drops from its default 20px to 16px so "← Back" / "Next →"
|
|
55
|
-
* pairs sit as a unit.
|
|
56
|
-
*/
|
|
57
|
-
.crewlet-btn--pill .material-symbols-outlined {
|
|
58
|
-
font-size: 16px;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/* ── Primary: solid white CTA, black text (dark theme); flips to
|
|
62
|
-
black-on-white in the light theme through the token overrides. ── */
|
|
63
|
-
.crewlet-btn--primary {
|
|
64
|
-
background: var(--color-brand-primary, #ffffff);
|
|
65
|
-
color: var(--color-text-on-brand, #000000);
|
|
66
|
-
border-color: var(--color-brand-primary, #ffffff);
|
|
67
|
-
}
|
|
68
|
-
.crewlet-btn--primary:hover:not(:disabled) {
|
|
69
|
-
background: var(--color-brand-primary-hover, rgba(255, 255, 255, 0.9));
|
|
70
|
-
border-color: var(--color-brand-primary-hover, rgba(255, 255, 255, 0.9));
|
|
71
|
-
}
|
|
72
|
-
.crewlet-btn--primary:active:not(:disabled) {
|
|
73
|
-
background: var(--color-brand-primary-active, rgba(255, 255, 255, 0.82));
|
|
74
|
-
border-color: var(--color-brand-primary-active, rgba(255, 255, 255, 0.82));
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/* ── Secondary: ghost with visible border. ──────────────────────── */
|
|
78
|
-
.crewlet-btn--secondary {
|
|
79
|
-
background: var(--color-surface-subtle);
|
|
80
|
-
color: var(--color-text-primary);
|
|
81
|
-
border-color: var(--color-border-default);
|
|
82
|
-
}
|
|
83
|
-
.crewlet-btn--secondary:hover:not(:disabled) {
|
|
84
|
-
background: var(--color-surface-elevated, var(--color-surface-subtle));
|
|
85
|
-
border-color: var(--color-border-strong);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
/* ── Outline: lavender accent. Branded secondary CTA. ───────────── */
|
|
89
|
-
.crewlet-btn--outline {
|
|
90
|
-
background: transparent;
|
|
91
|
-
color: var(--color-brand-accent, #5469d4);
|
|
92
|
-
border-color: var(--color-brand-accent, #5469d4);
|
|
93
|
-
}
|
|
94
|
-
.crewlet-btn--outline:hover:not(:disabled) {
|
|
95
|
-
background: var(--color-brand-accent-soft, rgba(84, 105, 212, 0.10));
|
|
96
|
-
border-color: var(--color-brand-accent, #5469d4);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
/* ── Tertiary: borderless ghost. ─────────────────────────────────── */
|
|
100
|
-
.crewlet-btn--tertiary {
|
|
101
|
-
background: transparent;
|
|
102
|
-
color: var(--color-text-secondary);
|
|
103
|
-
border-color: transparent;
|
|
104
|
-
}
|
|
105
|
-
.crewlet-btn--tertiary:hover:not(:disabled) {
|
|
106
|
-
background: var(--color-surface-elevated, var(--color-surface-subtle));
|
|
107
|
-
color: var(--color-text-primary);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/* ── Accent: solid brand accent CTA. Used when the page already has
|
|
111
|
-
a white "primary" and a branded "yes do this" still belongs on
|
|
112
|
-
the surface, for example the action inside a toast. ────────── */
|
|
113
|
-
.crewlet-btn--accent {
|
|
114
|
-
background: var(--color-brand-accent, #5469d4);
|
|
115
|
-
color: #ffffff;
|
|
116
|
-
border-color: var(--color-brand-accent, #5469d4);
|
|
117
|
-
}
|
|
118
|
-
.crewlet-btn--accent:hover:not(:disabled) {
|
|
119
|
-
background: var(--color-brand-accent-hover, #6478e0);
|
|
120
|
-
border-color: var(--color-brand-accent-hover, #6478e0);
|
|
121
|
-
}
|
|
122
|
-
.crewlet-btn--accent:active:not(:disabled) {
|
|
123
|
-
background: var(--color-brand-accent-active, #4a5cc2);
|
|
124
|
-
border-color: var(--color-brand-accent-active, #4a5cc2);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
/* ── Danger: solid red for destructive confirmation. ────────────── */
|
|
128
|
-
.crewlet-btn--danger {
|
|
129
|
-
background: var(--color-feedback-danger, #f43f5e);
|
|
130
|
-
color: #ffffff;
|
|
131
|
-
border-color: var(--color-feedback-danger, #f43f5e);
|
|
132
|
-
}
|
|
133
|
-
.crewlet-btn--danger:hover:not(:disabled) {
|
|
134
|
-
background: var(--color-feedback-danger-hover, #e11d48);
|
|
135
|
-
border-color: var(--color-feedback-danger-hover, #e11d48);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
.crewlet-btn__icon { display: inline-flex; align-items: center; }
|
|
139
|
-
.crewlet-btn__label { display: inline-flex; align-items: center; }
|
|
140
|
-
|
|
141
|
-
/*
|
|
142
|
-
* Pending state. The spinner takes the leading icon's place so the
|
|
143
|
-
* label neither moves nor changes width when an action starts, which is
|
|
144
|
-
* what makes a button feel like it is working rather than replaced.
|
|
145
|
-
*/
|
|
146
|
-
.crewlet-btn__spinner {
|
|
147
|
-
display: inline-block;
|
|
148
|
-
width: 1em;
|
|
149
|
-
height: 1em;
|
|
150
|
-
border: 2px solid currentColor;
|
|
151
|
-
border-right-color: transparent;
|
|
152
|
-
border-radius: 50%;
|
|
153
|
-
opacity: 0.7;
|
|
154
|
-
animation: crewlet-btn-spin 0.6s linear infinite;
|
|
155
|
-
flex: none;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
@keyframes crewlet-btn-spin {
|
|
159
|
-
to { transform: rotate(360deg); }
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
/* A disabled button already reads as unavailable; a loading one should
|
|
163
|
-
still read as this button, mid-action. */
|
|
164
|
-
.crewlet-btn--loading {
|
|
165
|
-
cursor: progress;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
/* A spinner that cannot spin should not pretend to. The ring still
|
|
169
|
-
reads as pending without the motion. */
|
|
170
|
-
@media (prefers-reduced-motion: reduce) {
|
|
171
|
-
.crewlet-btn__spinner {
|
|
172
|
-
animation: none;
|
|
173
|
-
}
|
|
174
|
-
}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Callout, inline status banner. One tinted surface per feedback
|
|
3
|
-
* tone, readable on dark surfaces without stealing focus from the
|
|
4
|
-
* content it annotates.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
.crewlet-callout {
|
|
8
|
-
display: flex;
|
|
9
|
-
align-items: flex-start;
|
|
10
|
-
gap: 10px;
|
|
11
|
-
border: 1px solid;
|
|
12
|
-
border-radius: 10px;
|
|
13
|
-
padding: 12px 16px;
|
|
14
|
-
font-size: 13px;
|
|
15
|
-
line-height: 1.5;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
.crewlet-callout__icon {
|
|
19
|
-
display: inline-flex;
|
|
20
|
-
margin-top: 1px;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
.crewlet-callout__content { min-width: 0; }
|
|
24
|
-
|
|
25
|
-
.crewlet-callout__title {
|
|
26
|
-
font-weight: 600;
|
|
27
|
-
margin-right: 6px;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
.crewlet-callout--info {
|
|
31
|
-
border-color: color-mix(in srgb, var(--color-feedback-info) 30%, transparent);
|
|
32
|
-
background: color-mix(in srgb, var(--color-feedback-info) 9%, transparent);
|
|
33
|
-
color: color-mix(in srgb, var(--color-feedback-info) 55%, var(--color-text-primary));
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.crewlet-callout--success {
|
|
37
|
-
border-color: color-mix(in srgb, var(--color-feedback-success) 32%, transparent);
|
|
38
|
-
background: color-mix(in srgb, var(--color-feedback-success) 9%, transparent);
|
|
39
|
-
color: color-mix(in srgb, var(--color-feedback-success) 55%, var(--color-text-primary));
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
.crewlet-callout--warning {
|
|
43
|
-
border-color: color-mix(in srgb, var(--color-feedback-warning) 32%, transparent);
|
|
44
|
-
background: color-mix(in srgb, var(--color-feedback-warning) 9%, transparent);
|
|
45
|
-
color: color-mix(in srgb, var(--color-feedback-warning) 60%, var(--color-text-primary));
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
.crewlet-callout--danger {
|
|
49
|
-
border-color: color-mix(in srgb, var(--color-feedback-danger) 30%, transparent);
|
|
50
|
-
background: color-mix(in srgb, var(--color-feedback-danger) 9%, transparent);
|
|
51
|
-
color: color-mix(in srgb, var(--color-feedback-danger) 45%, var(--color-text-primary));
|
|
52
|
-
}
|
package/dist/Card-BOZGBML7.css
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Card, surface primitive with optional Header / Body / Footer slots.
|
|
3
|
-
* The 12px radius is shared with PricingCard so a card grid and a plain
|
|
4
|
-
* card read as one family on the same page.
|
|
5
|
-
*
|
|
6
|
-
* Variants: default sits one step above the page on the subtle surface,
|
|
7
|
-
* subtle sits flush with the page background behind its border,
|
|
8
|
-
* outlined is transparent with a strong border, and elevated lifts off
|
|
9
|
-
* the page with the elevated surface and a shadow.
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
.crewlet-card {
|
|
13
|
-
background-color: var(--color-surface-subtle);
|
|
14
|
-
border: 1px solid var(--color-border-default);
|
|
15
|
-
border-radius: 12px;
|
|
16
|
-
color: var(--color-text-primary);
|
|
17
|
-
display: flex;
|
|
18
|
-
flex-direction: column;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
.crewlet-card--default { background-color: var(--color-surface-subtle); }
|
|
22
|
-
.crewlet-card--subtle { background-color: var(--color-surface-background); }
|
|
23
|
-
.crewlet-card--outlined {
|
|
24
|
-
background-color: transparent;
|
|
25
|
-
border-color: var(--color-border-strong);
|
|
26
|
-
}
|
|
27
|
-
.crewlet-card--elevated {
|
|
28
|
-
background-color: var(--color-surface-elevated, var(--color-surface-subtle));
|
|
29
|
-
box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
.crewlet-card--p-sm { padding: 12px 16px; }
|
|
33
|
-
.crewlet-card--p-md { padding: 20px 24px; }
|
|
34
|
-
.crewlet-card--p-lg { padding: 24px 28px; }
|
|
35
|
-
|
|
36
|
-
.crewlet-card.is-interactive {
|
|
37
|
-
cursor: pointer;
|
|
38
|
-
transition: border-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
|
|
39
|
-
}
|
|
40
|
-
.crewlet-card.is-interactive:hover {
|
|
41
|
-
border-color: var(--color-border-strong);
|
|
42
|
-
transform: translateY(-1px);
|
|
43
|
-
box-shadow: 0 4px 18px rgba(0, 0, 0, 0.25);
|
|
44
|
-
}
|
|
45
|
-
.crewlet-card.is-interactive:focus-visible {
|
|
46
|
-
outline: none;
|
|
47
|
-
box-shadow: var(--shadow-focus, 0 0 0 3px rgba(84, 105, 212, 0.32));
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
.crewlet-card__header {
|
|
51
|
-
display: flex;
|
|
52
|
-
align-items: center;
|
|
53
|
-
justify-content: space-between;
|
|
54
|
-
gap: 16px;
|
|
55
|
-
margin-bottom: 16px;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
.crewlet-card__body {
|
|
59
|
-
display: flex;
|
|
60
|
-
flex-direction: column;
|
|
61
|
-
gap: 12px;
|
|
62
|
-
min-height: 0;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
.crewlet-card__footer {
|
|
66
|
-
display: flex;
|
|
67
|
-
justify-content: flex-end;
|
|
68
|
-
gap: 8px;
|
|
69
|
-
margin-top: 16px;
|
|
70
|
-
padding-top: 16px;
|
|
71
|
-
border-top: 1px solid var(--color-border-default);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
.crewlet-card__title {
|
|
75
|
-
font-size: 15px;
|
|
76
|
-
font-weight: 600;
|
|
77
|
-
color: var(--color-text-primary);
|
|
78
|
-
margin: 0;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
.crewlet-card__description {
|
|
82
|
-
font-size: 13px;
|
|
83
|
-
color: var(--color-text-secondary);
|
|
84
|
-
margin: 0;
|
|
85
|
-
line-height: 1.5;
|
|
86
|
-
}
|